From a100affda25e47cc7fa177e311c6fe32a005b798 Mon Sep 17 00:00:00 2001 From: Ceikry Date: Thu, 26 Jan 2023 13:59:28 +0000 Subject: [PATCH] Repository reorganisation Unified kotlin and java into just src/main Unified the rs09 and core packages Took all content out of the core package, and placed it into the new content package Reorganised all source code relating to content to be easier to find and explore --- Server/pom.xml | 11 +- .../data}/BossKillCounter.java | 2 +- .../content/global => content/data}/Dyes.java | 2 +- .../data}/EnchantedJewellery.kt | 17 +- .../global => content/data}/GodBook.java | 2 +- .../global => content/data}/GodType.java | 6 +- .../global => content/data}/Lamps.java | 2 +- .../global => content/data}/LightSource.java | 2 +- .../content/global => content/data}/Meat.kt | 4 +- .../global => content/data}/RepairItem.java | 2 +- .../data/consumables}/Consumables.java | 794 ++++++------ .../effects/AchievementEffect.java | 4 +- .../consumables}/effects/DamageEffect.java | 4 +- .../effects/DraynorCabbageEffect.java | 4 +- .../effects/DwarvenRockCakeEffect.java | 4 +- .../consumables}/effects/EnergyEffect.java | 4 +- .../consumables}/effects/HealingEffect.java | 4 +- .../consumables}/effects/KebabEffect.java | 4 +- .../consumables}/effects/KegOfBeerEffect.kt | 7 +- .../consumables}/effects/MatureWmbEffect.java | 4 +- .../consumables}/effects/MultiEffect.java | 4 +- .../consumables}/effects/NettleTeaEffect.java | 4 +- .../consumables}/effects/PercentHeal.java | 4 +- .../effects/PercentageHealthEffect.java | 4 +- .../consumables}/effects/PoisonEffect.java | 4 +- .../effects/PoisonKarambwanEffect.java | 4 +- .../consumables}/effects/PrayerEffect.java | 4 +- .../effects/RandomEnergyEffect.java | 4 +- .../effects/RandomHealthEffect.java | 4 +- .../effects/RandomPrayerEffect.java | 4 +- .../effects/RandomSkillEffect.java | 4 +- .../effects/RemoveStateEffect.java | 4 +- .../consumables}/effects/RestoreEffect.java | 4 +- .../effects/RestoreSummoningSpecial.kt | 4 +- .../consumables}/effects/RockCakeEffect.java | 4 +- .../effects/SetAttributeEffect.java | 6 +- .../consumables}/effects/SkillEffect.java | 4 +- .../effects/SmellingUgthankiKebabEffect.java | 4 +- .../consumables}/effects/SummoningEffect.java | 4 +- .../effects/SuperKebabEffect.java | 4 +- .../effects/TroubleBrewingRumEffect.java | 4 +- .../effects/UgthankiKebabEffect.java | 4 +- .../effects/WizardsMindBombEffect.java | 4 +- .../data/skill}/SkillcapePerks.java | 2 +- .../data/skill}/SkillingPets.java | 4 +- .../data/skill}/SkillingTool.java | 2 +- .../data/tables}/AllotmentSeedDropTable.java | 10 +- .../data/tables}/BirdNest.java | 2 +- .../data/tables}/CELEMinorTable.java | 190 +-- .../data/tables}/GemDropTable.java | 10 +- .../data/tables}/HerbDropTable.java | 10 +- .../data/tables}/RareDropTable.java | 10 +- .../data/tables}/RareSeedDropTable.java | 10 +- .../data/tables}/UncommonSeedDropTable.java | 10 +- .../activity}/jobs/CancelJobDialogueFile.kt | 28 +- .../global/activity}/jobs/JobManager.kt | 12 +- .../global/activity}/jobs/JobType.kt | 2 +- .../jobs/WorkForInteractionListener.kt | 25 +- .../activity}/jobs/impl/GatheringJobs.kt | 2 +- .../global/activity}/jobs/impl/SlayingJobs.kt | 2 +- .../activity}/penguinhns/LarryHandler.kt | 15 +- .../activity}/penguinhns/NotebookHandler.kt | 2 +- .../activity}/penguinhns/PenguinHNSEvent.kt | 12 +- .../activity}/penguinhns/PenguinManager.kt | 6 +- .../activity}/penguinhns/PenguinSpawner.kt | 6 +- .../penguinhns/PenguinSpyingHandler.kt | 18 +- .../activity}/shootingstar/ShootingStar.kt | 14 +- .../shootingstar/ShootingStarMiningPulse.kt | 12 +- .../shootingstar/ShootingStarPlugin.kt | 24 +- .../shootingstar}/ShootingStarState.kt | 8 +- .../shootingstar/StarChartPlugin.java | 4 +- .../shootingstar/StarSpriteDialogue.kt | 65 +- .../global/activity}/ttrail/ClueLevel.java | 18 +- .../activity}/ttrail/ClueScrollPlugin.java | 4 +- .../ttrail/CoordinateCluePlugin.java | 2 +- .../ttrail/CoordinateClueScroll.java | 2 +- .../activity}/ttrail/EmoteCluePlugin.java | 4 +- .../activity}/ttrail/EmoteClueScroll.java | 2 +- .../activity}/ttrail/MapCluePlugin.java | 2 +- .../activity}/ttrail/MapClueScroll.java | 6 +- .../activity}/ttrail/SaradominWizardNPC.java | 8 +- .../ttrail/TreasureTrailManager.java | 8 +- .../activity}/ttrail/TreasureTrailPlugin.java | 6 +- .../global/activity}/ttrail/UriNPC.java | 6 +- .../activity}/ttrail/ZamorakWizardNPC.java | 4 +- .../global}/ame/RandomEventManager.kt | 52 +- .../global}/ame/RandomEventNPC.kt | 14 +- .../global}/ame/RandomEvents.kt | 30 +- .../ame/events/MysteriousOldManDialogue.kt | 11 +- .../global}/ame/events/MysteriousOldManNPC.kt | 6 +- .../ame/events/certer/CerterDialogue.kt | 15 +- .../ame/events/certer/CerterEventInterface.kt | 6 +- .../global}/ame/events/certer/CerterNPC.kt | 9 +- .../events/drilldemon/DrillDemonListeners.kt | 6 +- .../ame/events/drilldemon/DrillDemonUtils.kt | 8 +- .../drilldemon/SeargentDamienDefaultPlugin.kt | 10 +- .../drilldemon/SeargentDamienDialogue.kt | 25 +- .../events/drilldemon/SeargentDamienNPC.kt | 6 +- .../ame/events/evilchicken/EvilChickenNPC.kt | 8 +- .../global/ame/events/genie/GenieDialogue.kt | 16 + .../global}/ame/events/genie/GenieNPC.kt | 70 +- .../ame/events/rivertroll/RiverTrollRENPC.kt | 6 +- .../ame/events/rockgolem/RockGolemRENPC.kt | 14 +- .../sandwichlady/SandwichLadyDialogue.kt | 11 +- .../sandwichlady/SandwichLadyInterface.kt | 9 +- .../events/sandwichlady/SandwichLadyRENPC.kt | 6 +- .../global}/ame/events/shade/ShadeRENPC.kt | 14 +- .../ame/events/supriseexam/MordautDialogue.kt | 10 +- .../ame/events/supriseexam/SEDoorDialogue.kt | 6 +- .../events/supriseexam/SEPatternInterface.kt | 4 +- .../supriseexam/SupriseExamListeners.kt | 14 +- .../events/supriseexam/SurpriseExamUtils.kt | 4 +- .../ame/events/treespirit/TreeSpiritRENPC.kt | 14 +- .../global}/ame/events/zombie/ZombieRENPC.kt | 14 +- .../global/bots}/Adventurer.kt | 42 +- .../global/bots}/ChickenKiller.kt | 4 +- .../global/bots}/CoalMiner.kt | 12 +- .../global/bots}/CowKiller.kt | 7 +- .../global/bots}/DoublingMoney.kt | 17 +- .../global/bots}/DraynorFisher.kt | 5 +- .../global/bots}/DraynorWillows.kt | 9 +- .../global/bots}/FarmerThiever.kt | 9 +- .../global/bots}/FletchingBankstander.kt | 11 +- .../global/bots}/GenericSlayerBot.kt | 7 +- .../global/bots}/GlassBlowingBankstander.kt | 11 +- .../global/bots}/GnomeAgility.kt | 9 +- .../global/bots}/GnomeBowstring.kt | 12 +- .../global/bots}/GreenDragonKiller.kt | 21 +- .../global/bots}/Idler.kt | 4 +- .../global/bots}/LobsterCatcher.kt | 14 +- .../global/bots}/ManThiever.kt | 9 +- .../global/bots}/NonBankingMiner.kt | 11 +- .../global/bots}/SeersFlax.kt | 11 +- .../global/bots}/SeersMagicTrees.kt | 10 +- .../global/bots}/SharkCatcher.kt | 10 +- .../global/bots}/ShootingStarBot.kt | 11 +- .../global/bots}/VarrockEssenceMiner.kt | 9 +- .../global/bots}/VarrockSmither.kt | 9 +- .../global/dialogue}/BankDepositDialogue.kt | 12 +- .../global/dialogue}/BankHelpDialogue.kt | 12 +- .../global/dialogue}/BankerDialogue.kt | 66 +- .../global}/dialogue/FurTradePlugin.java | 4 +- .../dialogue}/GardenerDialoguePlugin.kt | 15 +- .../global}/dialogue/ManDialoguePlugin.java | 232 ++-- .../global}/dialogue/ShopkeeperDialogue.java | 4 +- .../global}/dialogue/TownCrierDialogue.java | 5 +- .../iface}/AgilityTicketInterface.java | 2 +- .../handlers/iface}/AutocastSelectPlugin.java | 2 +- .../iface}/BoltEnchantingInterface.java | 6 +- .../iface}/CharacterDesignInterface.java | 4 +- .../iface}/ChocatriceIncubationInterface.kt | 2 +- .../handlers/iface}/ClanInterfacePlugin.java | 6 +- .../handlers/iface}/CombatTabInterface.java | 6 +- .../handlers/iface}/CreditShopInterface.kt | 158 +-- .../iface}/CrystalKeyChestPlugin.java | 2 +- .../handlers/iface}/DeathInterfacePlugin.java | 2 +- .../global/handlers/iface}/EllisDialogue.java | 6 +- .../handlers/iface}/EmoteTabInterface.java | 2 +- .../handlers/iface}/EquipmentInterface.java | 10 +- .../handlers/iface}/ExperienceInterface.kt | 6 +- .../handlers/iface}/FairyRingInterface.kt | 15 +- .../handlers/iface}/FurClothingInterface.kt | 24 +- .../global/handlers/iface}/GameInterface.java | 4 +- .../handlers/iface}/GlassInterface.java | 7 +- .../handlers/iface}/GliderInterface.java | 8 +- .../handlers/iface}/HairDresserInterface.kt | 10 +- .../handlers/iface}/JewelleryInterface.java | 12 +- .../iface}/LeatherCraftInterface.java | 9 +- .../handlers/iface}/LeatherCraftPlugin.java | 6 +- .../handlers/iface}/LoginInterfacePlugin.java | 2 +- .../handlers/iface}/LogoutInterface.java | 4 +- .../handlers/iface}/MagicBookInterface.java | 14 +- .../handlers/iface}/MainGameInterface.kt | 8 +- .../handlers/iface}/MakeOverInterface.kt | 8 +- .../handlers/iface}/MusicTabInterface.java | 2 +- .../iface}/MysticStaffEnchantingPlugin.java | 2 +- .../handlers/iface}/NPCContactInterface.kt | 6 +- .../handlers/iface}/OrbViewingInterface.java | 6 +- .../iface}/PlayerExamineInterfacePlugin.java | 2 +- .../handlers/iface}/PrayerTabInterface.java | 2 +- .../handlers/iface}/PuppyInterfacePlugin.kt | 2 +- .../handlers/iface}/QuestTabInterface.java | 2 +- .../iface}/RequestAssistInterface.java | 2 +- .../global/handlers/iface}/RulesAndInfo.kt | 7 +- .../iface}/SawmillPlankInterface.java | 4 +- .../handlers/iface}/SettingTabInterface.java | 2 +- .../handlers/iface}/ShoppingPlugin.java | 2 +- .../handlers/iface}/SkillInterface.java | 2 +- .../handlers/iface}/SkillTabInterface.java | 6 +- .../handlers/iface}/SmeltingInterface.java | 9 +- .../handlers/iface}/SmithingInterface.java | 13 +- .../handlers/iface}/SpinningInterface.java | 9 +- .../handlers/iface}/TanningInterface.java | 7 +- .../handlers/iface}/TeleotherInterface.kt | 4 +- .../handlers/iface}/ThessaliaInterface.kt | 18 +- .../handlers/iface}/TradeInterfacePlugin.java | 4 +- .../handlers/iface}/WorldMapInterface.java | 2 +- .../iface}/bank/BankChargeInterface.kt | 9 +- .../iface}/bank/BankDepositBoxInterface.kt | 13 +- .../handlers/iface}/bank/BankInterface.kt | 15 +- .../iface/bank}/BankPinInterface.java | 2 +- .../global/handlers/iface/bank}/BankUtils.kt | 7 +- .../handlers/iface}/ge/ExchangeItemSets.kt | 10 +- .../iface/ge}/GrandExchangeInterface.java | 15 +- .../global/handlers/iface}/ge/StockMarket.kt | 16 +- .../global/handlers}/item/BirdNestPlugin.java | 4 +- .../global/handlers}/item/BookreadOption.java | 2 +- .../handlers}/item/BraceletOfClayPlugin.kt | 8 +- .../handlers}/item/CadavaPotionListener.kt | 6 +- .../global/handlers}/item/CasketPlugin.java | 8 +- .../item/ConsumableOptionPlugin.java | 6 +- .../handlers/item}/DestroyItemPlugin.java | 3 +- .../handlers}/item/DiangoItemPlugin.java | 2 +- .../item/DragonfireShieldPlugin.java | 10 +- .../handlers}/item/DrinkBlamishOilListener.kt | 10 +- .../global/handlers}/item/DustHandPlugin.java | 2 +- .../handlers}/item/EmptyOptionPlugin.java | 2 +- .../item/EnchantJewelleryTabOption.kt | 4 +- .../handlers/item/EnchantedGemListener.kt | 66 + .../item/EnchantedJewelleryListener.kt | 16 +- .../handlers}/item/ExplorersRingPlugin.kt | 28 +- .../handlers}/item/FaladorShieldPlugin.java | 6 +- .../global/handlers}/item/FishbowlPlugin.java | 8 +- .../handlers}/item/GnomeCopterPlugin.java | 2 +- .../handlers}/item/GnomecopterTicket.java | 2 +- .../global/handlers}/item/GodBookListeners.kt | 13 +- .../global/handlers}/item/GodBookPlugin.java | 390 +++--- .../item/GodswordDismantlePlugin.java | 2 +- .../handlers}/item/GrandSeedPodHandler.kt | 27 +- .../global/handlers}/item/HerbBoxPlugin.java | 2 +- .../item/HouseTeleTabOptionPlugin.java | 2 +- .../handlers}/item/ImplingJarListener.kt | 20 +- .../item/ItemQuestRequirementListener.kt | 7 +- .../handlers}/item/KeldagrimVotingBond.java | 8 +- .../global/handlers}/item/LampPlugin.java | 4 +- .../handlers}/item/MiningHelmetListener.kt | 10 +- .../handlers}/item/MorphItemPlugin.java | 6 +- .../handlers}/item/NewComerMapPlugin.java | 2 +- .../handlers}/item/NewsPaperPlugin.java | 2 +- .../global/handlers}/item/OysterPlugin.java | 2 +- .../global/handlers}/item/PetRock.kt | 19 +- .../global/handlers}/item/PickupPlugin.java | 4 +- .../global/handlers/item}/PlayerPeltables.kt | 10 +- .../handlers}/item/RingUnchargePlugin.java | 2 +- .../global/handlers}/item/RunePackPlugin.java | 2 +- .../handlers}/item/SilverSicklePlugin.java | 6 +- .../handlers}/item/SkullSceptreOption.java | 2 +- .../global/handlers/item}/SpadeDigListener.kt | 2 +- .../handlers}/item/SpadeDigOptionPlugin.java | 4 +- .../global/handlers}/item/StaffOfTheRaven.kt | 14 +- .../handlers}/item/StarterPackPlugin.java | 2 +- .../handlers}/item/TeleTabsOptionPlugin.java | 2 +- .../handlers}/item/TeleportCrystalPlugin.java | 4 +- .../handlers}/item/ToyHorseyListener.kt | 12 +- .../global/handlers}/item/ToyListeners.kt | 20 +- .../global/handlers/item}/book/GrimDiary.java | 10 +- .../item}/book/KeldagrimRuleBook.java | 8 +- .../item}/book/SecurityBookPlugin.java | 10 +- .../handlers/item}/book/StrongholdNotes.java | 8 +- .../equipment/BarrowsEquipmentRegister.kt | 3 +- .../item}/equipment/EquipmentDegrader.kt | 8 +- .../item}/equipment/PVPEquipmentRegister.kt | 3 +- .../brawling_gloves/BrawlingGloves.java | 2 +- .../BrawlingGlovesManager.java | 6 +- .../special/AncientMaceSpecialHandler.java | 4 +- .../special/BackstabSpecialHandler.java | 4 +- .../special/ChainhitSpecialHandler.java | 8 +- .../special}/ChinchompaSwingHandler.java | 4 +- .../special/CleaveSpecialHandler.java | 4 +- .../special/ClobberSpecialHandler.java | 4 +- .../DescentOfDarknessSpecialHandler.java | 4 +- .../special}/DragonfireSwingHandler.java | 6 +- .../special/EnergyDrainSpecialHandler.java | 4 +- .../special/ExcaliburSpecialHandler.java | 5 +- .../special/FeintSpecialHandler.java | 4 +- .../special/HealingBladeSpecialHandler.java | 4 +- .../special/IceCleaveSpecialHandler.java | 4 +- .../special/ImpaleSpecialHandler.java | 4 +- .../special/JudgementSpecialHandler.java | 4 +- .../special/LiquefySpecialHandler.kt | 4 +- .../special/PowershotSpecialHandler.java | 4 +- .../special/PowerstabSpecialHandler.java | 4 +- .../special/PunctureSpecialHandler.java | 4 +- .../special/QuickSmashSpecialHandler.java | 6 +- .../special/RampageSpecialHandler.java | 4 +- .../special}/SalamanderSwingHandler.kt | 8 +- .../special/SaradominsLightningHandler.java | 4 +- .../special/SeercullSpecialHandler.java | 4 +- .../special/SeverSpecialHandler.java | 4 +- .../special/ShatterSpecialHandler.java | 4 +- .../special/ShoveSpecialHandler.java | 4 +- .../special/SliceAndDiceSpecialHandler.java | 4 +- .../special/SmashSpecialHandler.java | 4 +- .../special/SnapshotSpecialHandler.java | 6 +- .../special/SnipeSpecialHandler.java | 4 +- .../special/SpearWallSpecialHandler.java | 4 +- .../special/SweepSpecialHandler.java | 6 +- .../special/WarstrikeSpecialHandler.java | 4 +- .../special/WeakenSpecialHandler.java | 4 +- .../item/toys/DiangoOptionHandler.java | 2 +- .../item/toys/DiangoReclaimInterface.java | 10 +- .../handlers}/item/toys/SnowGlobePlugin.java | 4 +- .../handlers}/item/withitem/CapeDyer.kt | 6 +- .../item/withitem/CrystalKeyCreateListener.kt | 12 +- .../item/withitem/DarkBowDyePlugin.java | 6 +- .../item/withitem/FirelighterPlugin.java | 2 +- .../item/withitem/FishfoodPlugin.java | 2 +- .../item/withitem/FruitCuttingPlugin.java | 6 +- .../withitem/GodswordHiltAttachPlugin.java | 2 +- .../item/withitem/GraniteMaulPlugin.java | 6 +- .../item/withitem/GraniteSplittingPlugin.java | 2 +- .../handlers}/item/withitem/HaySackOnSpear.kt | 10 +- .../item/withitem/ImpJarCreatePlugin.java | 2 +- .../item/withitem/KaramjanSilkPlugin.java | 2 +- .../item/withitem/LavaScalePlugin.java | 4 +- .../withitem/MakeGlassInterfacePlugin.java | 4 +- .../item/withitem/OilFishingRodListener.kt | 12 +- .../item/withitem/PoisonedWeaponListeners.kt | 12 +- .../item/withitem/SeasonedSardinePlugin.java | 2 +- .../item/withitem/SkullSceptrePlugin.java | 2 +- .../item/withitem/SoftclayPlugin.java | 6 +- .../handlers}/item/withitem/TOTTHelmOnCape.kt | 14 +- .../item/withitem/WaterSkinPlugin.java | 2 +- .../item/withitem/WatermelonOnSack.kt | 12 +- .../withnpc/ArchaeologicalExpertListener.kt | 11 +- .../handlers}/item/withnpc/BonesOnStrayDog.kt | 15 +- .../item/withnpc/CatOnArdougneCivilian.kt | 12 +- .../handlers}/item/withnpc/CiderOnForester.kt | 14 +- .../item/withnpc/FeedFaladorSheepdog.kt | 14 +- .../handlers}/item/withnpc/GCItemOnCat.kt | 18 +- .../item/withnpc/GertrudeCatUsePlugin.java | 4 +- .../handlers}/item/withnpc/HatEasterEgg.kt | 15 +- .../handlers}/item/withnpc/MistagEasterEgg.kt | 15 +- .../item/withnpc/PoisonChaliceOnKingArthur.kt | 21 +- .../handlers}/item/withnpc/RopeOnLadyKeli.kt | 10 +- .../item/withnpc/ZooknockListener.kt | 12 +- .../item/withobject/AmmoMouldOnFurnace.kt | 16 +- .../handlers}/item/withobject/AxeOnTree.kt | 18 +- .../withobject/CauldronOfThunderListener.kt | 14 +- .../item/withobject/ChestKeyListener.kt | 14 +- .../item/withobject/CoalTruckListener.kt | 8 +- .../item/withobject/DragonPlatebody.java | 5 + .../item/withobject/EctophialFillListener.kt | 8 +- .../item/withobject/FishEasterEgg.kt | 14 +- .../withobject/GWDEntranceRopeListener.kt | 10 +- .../withobject/HairdresserCheeseListener.kt | 8 +- .../handlers}/item/withobject/HatStand.kt | 13 +- .../item/withobject/IncubatorPlugin.java | 8 +- .../withobject/KaramjaBananaCrateListener.kt | 9 +- .../item/withobject/PoisonFountainListener.kt | 9 +- .../handlers}/item/withobject/SackOnHay.kt | 12 +- .../item/withobject/SandSourceListener.kt | 9 +- .../item/withobject/SapCollectListener.kt | 8 +- .../item/withobject/SmithingPlugin.java | 10 +- .../withobject/SpiritShieldBlessListener.kt | 10 +- .../item/withobject/SwampHoleRopeListener.kt | 8 +- .../item/withobject/WaterSourceListener.kt | 10 +- .../withplayer/ChristmasCrackerUsage.java | 2 +- .../item/withplayer/FieldRationUsage.java | 2 +- .../global/handlers}/npc/BankerNPC.kt | 10 +- .../handlers/npc}/ChromaticDragonNPC.java | 8 +- .../handlers/npc}/CowMilkingPlugin.java | 4 +- .../global/handlers/npc}/CowNPC.java | 5 +- .../global/handlers/npc}/DarkWizardNPC.java | 4 +- .../global/handlers}/npc/DecantListener.kt | 16 +- .../global/handlers/npc}/DuckNPC.java | 5 +- .../handlers/npc}/DummyAttackPlugin.java | 2 +- .../global/handlers/npc}/GuardNPC.java | 2 +- .../global/handlers}/npc/HairCutPlugin.java | 2 +- .../global/handlers/npc}/HighwayManNPC.java | 2 +- .../global/handlers/npc}/IceGiantNPC.java | 2 +- .../global/handlers/npc}/MetalDragonNPC.java | 10 +- .../global/handlers/npc}/MonkNPC.java | 6 +- .../handlers}/npc/NPCDepositListener.kt | 19 +- .../handlers}/npc/NPCDisturbPlugin.java | 2 +- .../global/handlers}/npc/NPCTalkListener.kt | 32 +- .../global/handlers/npc}/RatNPC.java | 2 +- .../global/handlers/npc}/SheepNPC.java | 118 +- .../global/handlers/npc}/ShopNPC.java | 2 +- .../handlers}/player/AttackOptionPlugin.java | 2 +- .../handlers}/player/ExamineOptionPlugin.java | 4 +- .../handlers}/player/FollowOptionPlugin.java | 2 +- .../player/LoginValidationPlugin.java | 6 +- .../global/handlers}/player/RequestOption.kt | 6 +- .../handlers/scenery}/BankBoothListener.kt | 17 +- .../handlers/scenery}/BankChestListener.kt | 8 +- .../scenery}/BankDepositBoxListener.kt | 8 +- .../handlers/scenery}/DoogleLeafPlugin.java | 2 +- .../handlers/scenery}/DoorManagingPlugin.java | 4 +- .../handlers/scenery}/FieldPickingPlugin.java | 4 +- .../handlers/scenery}/HaystackPlugin.java | 4 +- .../handlers/scenery}/JangerBerryPlugin.java | 4 +- .../scenery}/LadderManagingPlugin.java | 4 +- .../handlers/scenery}/LookAtOptionPlugin.java | 2 +- .../handlers/scenery}/MillingListener.kt | 6 +- .../handlers/scenery}/ModeratorObject.java | 4 +- .../handlers/scenery}/ReadSignPostPlugin.java | 2 +- .../handlers/scenery}/SearchOptionPlugin.java | 2 +- .../handlers/scenery}/SlashWebPlugin.java | 2 +- .../scenery}/SlayerDangerSignPlugin.java | 2 +- .../scenery}/SpinSpinningWheelPlugin.java | 2 +- .../scenery}/ThievingGuidePlugin.java | 4 +- .../global}/skill/AttackListener.kt | 8 +- .../global}/skill/agility/AgilityCourse.java | 2 +- .../global}/skill/agility/AgilityHandler.java | 6 +- .../skill/agility/AgilityShortcut.java | 2 +- .../skill/agility/BarbarianOutpostCourse.kt | 33 +- .../skill/agility/GnomeStrongholdCourse.kt | 36 +- .../global}/skill/agility/WildernessCourse.kt | 21 +- .../skill/agility/brimhaven/BladeTrap.java | 6 +- .../agility/brimhaven/BrimhavenArena.java | 6 +- .../agility/brimhaven/BrimhavenCourse.java | 6 +- .../skill/agility/brimhaven/DartTrap.java | 6 +- .../skill/agility/brimhaven/FloorSpikes.java | 6 +- .../skill/agility/brimhaven/PressurePad.java | 6 +- .../agility/brimhaven/SpinningBlades.java | 6 +- .../agility/pyramid/AgilityPyramidCourse.java | 12 +- .../agility/pyramid/AgilityPyramidZone.java | 2 +- .../skill/agility/pyramid/MovingBlockNPC.java | 6 +- .../skill/agility/pyramid/RollingBlock.java | 6 +- .../shortcuts/AlKharidPitShortcut.java | 4 +- .../agility/shortcuts/BarSqueezeShortcut.java | 6 +- .../agility/shortcuts/BasaltRockShortcut.kt | 28 +- .../shortcuts/CatherbyGrappleShortcut.kt | 26 +- .../shortcuts/CrumblingWallShortcut.java | 4 +- .../shortcuts/FaladorGrapplePlugin.java | 4 +- .../agility/shortcuts/FenceJumpShortcut.java | 6 +- .../agility/shortcuts/KaramjaGrapple.java | 4 +- .../agility/shortcuts/LogBalanceShortcut.java | 6 +- .../agility/shortcuts/MonkeyBarShortcut.java | 8 +- .../skill/agility/shortcuts/PipeShortcut.kt | 8 +- .../agility/shortcuts/RockClimbShortcut.kt | 4 +- .../skill/agility/shortcuts/RopeSwing.java | 4 +- .../shortcuts/SteppingStoneShortcut.kt | 2 +- .../agility/shortcuts/StileShortcut.java | 8 +- .../shortcuts/StrangeFloorShortcut.java | 6 +- .../agility/shortcuts/TunnelShortcut.java | 6 +- .../agility/shortcuts/WaterOrbGrapple.java | 4 +- .../agility/shortcuts/YanilleGrapple.java | 4 +- .../shortcuts/ZanarisSqueezeShortcut.java | 4 +- .../skill/construction/BuildHotspot.java | 2 +- .../skill/construction/BuildHotspotType.java | 2 +- .../skill/construction/BuildOptionPlugin.java | 11 +- .../skill/construction/BuildRoomDialogue.java | 6 +- .../skill/construction/BuildingUtils.java | 5 +- .../construction/ConstructionGuideBook.java | 12 +- .../construction/ConstructionInterface.java | 5 +- .../global}/skill/construction/CrestType.java | 2 +- .../skill/construction/Decoration.java | 3 +- .../skill/construction/EstateAgentDialogue.kt | 23 +- .../global}/skill/construction/Hotspot.kt | 4 +- .../skill/construction/HouseLocation.java | 2 +- .../skill/construction/HouseManager.java | 18 +- .../global}/skill/construction/HouseZone.java | 2 +- .../skill/construction/HousingStyle.java | 2 +- .../global}/skill/construction/NailType.java | 2 +- .../construction/PortalOptionPlugin.java | 12 +- .../skill/construction/RemovalDialogue.java | 7 +- .../global}/skill/construction/Room.java | 3 +- .../skill/construction/RoomProperties.java | 3 +- .../skill/construction/RoomTemplate.kt | 4 +- .../global}/skill/construction/Servant.java | 2 +- .../skill/construction/ServantType.java | 2 +- .../decoration/BeerBarrelPlugin.java | 2 +- .../decoration/ChairBenchPlugin.java | 4 +- .../decoration/ConstructionDoorPlugin.kt | 12 +- .../decoration/FireplacePlugin.java | 4 +- .../decoration/StaircasePlugin.java | 16 +- .../decoration/bedroom/ClockPlugin.java | 2 +- .../decoration/bedroom/ShavingStandHandler.kt | 2 +- .../decoration/bedroom/WardrobeHandler.kt | 2 +- .../decoration/chapel/BoneOfferPlugin.java | 6 +- .../decoration/chapel/BurnerListener.kt | 6 +- .../decoration/chapel/ShieldBlessingPlugin.kt | 2 +- .../decoration/combatroom/CombatRing.java | 2 +- .../decoration/costume/ToyBoxPlugin.kt | 4 +- .../decoration/kitchen/BeerBarrelPlugin.java | 2 +- .../decoration/kitchen/LarderPlugin.java | 6 +- .../decoration/kitchen/ShelfPlugin.java | 6 +- .../portalchamber/PortalChamberDialogue.kt | 10 +- .../portalchamber/PortalChamberPlugin.java | 14 +- .../decoration/questhall/MountedGlory.kt | 8 +- .../questhall/MountedGloryPlugin.java | 8 +- .../decoration/study/LecternPlugin.kt | 17 +- .../decoration/study/TelescopePlugin.kt | 6 +- .../decoration/workshop/ArmourStand.kt | 14 +- .../workshop/ClockmakersBenchPlugin.java | 12 +- .../decoration/workshop/ToolsPlugin.java | 8 +- .../npc/HouseServantDialogue.java | 16 +- .../construction/npc/HouseServantPlugin.java | 4 +- .../construction/npc/StonemasonPlugin.java | 2 +- .../skill/cooking/CakeMakingPlugin.java | 2 +- .../skill/cooking/ChocolateBarCutter.kt | 2 +- .../skill/cooking/CoconutMakePlugin.java | 2 +- .../global}/skill/cooking/CookableItems.java | 4 +- .../global}/skill/cooking/CookingDialogue.kt | 14 +- .../skill/cooking/CookingDialoguePlugin.java | 2 +- .../global}/skill/cooking/CookingPlugin.java | 2 +- .../global}/skill/cooking/CookingPulse.java | 0 .../skill/cooking/CookingRecipePlugin.java | 8 +- .../global}/skill/cooking/CookingRewrite.kt | 148 ++- .../skill/cooking/DoughMakingListener.kt | 12 +- .../cooking/FireOptionPotteryPlugin.java | 2 +- .../skill/cooking/IntentionalBurnPulse.java | 2 +- .../global}/skill/cooking/MakeStewPlugin.java | 2 +- .../skill/cooking/NettleTeaPlugin.java | 2 +- .../skill/cooking/NettleWaterPlugin.java | 2 +- .../skill/cooking/PieCookingPulse.java | 2 +- .../global}/skill/cooking/PieShellPlugin.java | 2 +- .../skill/cooking/PizzaCookingPulse.java | 2 +- .../skill/cooking/SaucyKebabListener.kt | 8 +- .../skill/cooking/SinewCookingPulse.java | 2 +- .../skill/cooking/SkeweredFoodPlugin.java | 2 +- .../skill/cooking/StandardCookingPulse.java | 6 +- .../skill/cooking/WatermelonSlicePlugin.java | 2 +- .../skill/cooking/WineFermentPlugin.java | 6 +- .../cooking/dairy}/DairyChurnDialogue.java | 5 +- .../dairy}/DairyChurnOptionPlugin.java | 2 +- .../skill/cooking/dairy/DairyChurnPulse.java | 2 +- .../skill/cooking/dairy/DairyProduct.java | 2 +- .../fermenting/WineFermentingPulse.java | 2 +- .../skill/cooking/recipe/OomlieWrap.java | 2 +- .../global}/skill/cooking/recipe/Recipe.java | 22 +- .../cooking/recipe/cake/ChocolateCake.java | 4 +- .../skill/cooking/recipe/pie/PieRecipe.java | 4 +- .../cooking/recipe/pie/impl/AdmiralPie.java | 4 +- .../cooking/recipe/pie/impl/ApplePie.java | 4 +- .../cooking/recipe/pie/impl/FishPie.java | 4 +- .../cooking/recipe/pie/impl/GardenPie.java | 4 +- .../cooking/recipe/pie/impl/MeatPie.java | 4 +- .../skill/cooking/recipe/pie/impl/MudPie.java | 4 +- .../cooking/recipe/pie/impl/RedberryPie.java | 4 +- .../cooking/recipe/pie/impl/SummerPie.java | 4 +- .../cooking/recipe/pie/impl/WildPie.java | 4 +- .../cooking/recipe/pizza/PizzaRecipe.java | 4 +- .../recipe/pizza/impl/AnchovyPizza.java | 4 +- .../cooking/recipe/pizza/impl/MeatPizza.java | 4 +- .../recipe/pizza/impl/PineapplePizza.java | 4 +- .../cooking/recipe/pizza/impl/PlainPizza.java | 4 +- .../cooking/recipe/potato/PotatoRecipe.java | 4 +- .../recipe/potato/impl/ButterPotato.java | 4 +- .../recipe/potato/impl/CheesePotato.java | 4 +- .../recipe/potato/impl/ChilliPotato.java | 4 +- .../cooking/recipe/potato/impl/EggPotato.java | 4 +- .../recipe/potato/impl/MushroomPotato.java | 4 +- .../recipe/potato/impl/TunaPotato.java | 4 +- .../cooking/recipe/stew/CurryRecipe.java | 4 +- .../skill/cooking/recipe/stew/StewRecipe.java | 4 +- .../cooking/recipe/topping/ToppingRecipe.java | 4 +- .../recipe/topping/impl/ChilliConCarne.java | 4 +- .../recipe/topping/impl/ChoppedOnion.java | 4 +- .../recipe/topping/impl/ChoppedTuna.java | 4 +- .../recipe/topping/impl/EggAndTomato.java | 4 +- .../recipe/topping/impl/MushroomAndOnion.java | 4 +- .../recipe/topping/impl/SlicedMushroom.java | 4 +- .../recipe/topping/impl/SpicySauce.java | 4 +- .../recipe/topping/impl/TunaAndCorn.java | 4 +- .../recipe/topping/impl/UncookedEgg.java | 4 +- .../skill/crafting/AmuletStringingPlugin.java | 4 +- .../global}/skill/crafting/BattleStaves.java | 2 +- .../skill/crafting/BattlestaveMakePlugin.java | 2 +- .../skill/crafting/ChiselLimestonePlugin.java | 4 +- .../global}/skill/crafting/GemCutPlugin.java | 10 +- .../global}/skill/crafting/GlassProduct.java | 2 +- .../skill/crafting/JewelleryCraftPlugin.java | 4 +- .../skill/crafting}/LeatherCraftDialogue.java | 15 +- .../skill/crafting/MoltenGlassMakePlugin.java | 2 +- .../global}/skill/crafting/PotteryPlugin.java | 12 +- .../skill/crafting/SnakeSkinPlugin.java | 10 +- .../skill/crafting/SnelmCraftPlugin.java | 2 +- .../skill/crafting/StitchCraftPlugin.java | 2 +- .../skill/crafting/StuddedArmourPlugin.java | 6 +- .../skill/crafting/TanningProduct.java | 2 +- .../skill/crafting/WeaveOptionPlugin.java | 6 +- .../crafting/armour/DragonCraftPulse.java | 4 +- .../skill/crafting/armour/HardCraftPulse.java | 2 +- .../crafting/armour/LeatherCrafting.java | 2 +- .../skill/crafting/armour/SnakeSkin.java | 2 +- .../skill/crafting/armour/SnakeSkinPulse.java | 2 +- .../skill/crafting/armour/SoftCraftPulse.java | 11 +- .../skill/crafting/gem/GemCutPulse.java | 2 +- .../global}/skill/crafting/gem/Gems.java | 2 +- .../crafting/jewellery/JewelleryCrafting.java | 2 +- .../crafting/jewellery/JewelleryPulse.java | 7 +- .../skill/crafting/leather/SpikyVambraces.kt | 6 +- .../crafting/lightsources/LanternCrafting.kt | 192 +-- .../lightsources/LightSourceExtinguisher.kt | 4 +- .../lightsources/LightSourceLighter.kt | 2 +- .../crafting/lightsources/LightSources.kt | 2 +- .../limestone/ChiselLimestonePulse.java | 2 +- .../crafting/pottery/FirePotteryPulse.java | 2 +- .../skill/crafting/pottery/PotteryItem.java | 2 +- .../skill/crafting/pottery/PotteryPulse.java | 2 +- .../crafting/silver/SilverCraftingListener.kt | 10 +- .../crafting/silver/SilverCraftingPulse.kt | 6 +- .../skill/crafting/silver/SilverProduct.kt | 2 +- .../silver/SilverStringingListener.kt | 10 +- .../skill/crafting/spinning/SpinningItem.java | 2 +- .../crafting/spinning/SpinningPulse.java | 2 +- .../global}/skill/farming/BasketsAndSacks.kt | 2 +- .../global}/skill/farming/CompostBin.kt | 5 +- .../skill/farming/CompostBinOptionHandler.kt | 2 +- .../global}/skill/farming/CompostBins.kt | 3 +- .../global}/skill/farming/CompostType.kt | 2 +- .../global}/skill/farming/CropHarvester.kt | 7 +- .../skill/farming/DigUpPatchDialogue.kt | 8 +- .../skill/farming/FarmerPayOptionDialogue.kt | 8 +- .../skill/farming/FarmerPayOptionHandler.kt | 10 +- .../global}/skill/farming/Farmers.kt | 2 +- .../global}/skill/farming/FarmingPatch.kt | 3 +- .../global/skill/farming}/FarmingPatchZone.kt | 12 +- .../global/skill/farming}/FarmingState.kt | 9 +- .../skill/farming/FruitAndBerryPicker.kt | 6 +- .../global}/skill/farming/HealthChecker.kt | 4 +- .../skill/farming/InspectionHandler.kt | 2 +- .../global}/skill/farming/LeprechaunNoter.kt | 75 +- .../global}/skill/farming/Patch.kt | 4 +- .../global}/skill/farming/PatchRaker.kt | 2 +- .../global}/skill/farming/PatchType.kt | 2 +- .../global}/skill/farming/Plantable.kt | 2 +- .../skill/farming/SackBasketOptionHandler.kt | 2 +- .../global}/skill/farming/SeedOnPlantPot.kt | 15 +- .../global}/skill/farming/Seedling.kt | 2 +- .../global/skill/farming}/SeedlingState.kt | 7 +- .../skill/farming/ToolLeprechaunHandler.kt | 6 +- .../skill/farming/ToolLeprechaunInterface.kt | 7 +- .../skill/farming/UseWithBinHandler.kt | 11 +- .../skill/farming/UseWithPatchHandler.kt | 13 +- .../firemaking/FireMakingOptionPlugin.kt | 6 +- .../skill/firemaking/FireMakingPulse.java | 6 +- .../skill/firemaking/LightLogPlugin.java | 2 +- .../global}/skill/firemaking/Log.java | 2 +- .../global}/skill/fishing/Fish.java | 2 +- .../global}/skill/fishing/FishSpots.java | 2 +- .../global/skill/fishing}/FishingNPC.java | 5 +- .../global}/skill/fishing/FishingOption.java | 3 +- .../global}/skill/fishing/FishingSpot.java | 2 +- .../skill/fletching/BoltCreatePlugin.java | 4 +- .../skill/fletching/BoltGemPlugin.java | 4 +- .../skill/fletching/DartCreatePlugin.java | 0 .../global}/skill/fletching/FletchItem.java | 0 .../global}/skill/fletching/FletchType.java | 0 .../global}/skill/fletching/Fletching.java | 2 +- .../skill/fletching/FletchingListeners.kt | 30 +- .../skill/fletching/FletchingPlugin.java | 10 +- .../skill/fletching/FletchingPulse.java | 2 +- .../skill/fletching/GemBoltPlugin.java | 10 +- .../fletching/items/arrow/ArrowHead.java | 0 .../fletching/items/arrow/ArrowHeadPulse.java | 6 +- .../items/arrow/HeadlessArrowPulse.java | 2 +- .../skill/fletching/items/bolts/Bolt.java | 0 .../fletching/items/bolts/BoltPulse.java | 6 +- .../skill/fletching/items/bow/StringBow.java | 0 .../fletching/items/bow/StringPulse.java | 4 +- .../items/crossbow/CrossbowPulse.java | 0 .../skill/fletching/items/crossbow/Limb.java | 2 +- .../fletching/items/crossbow/LimbPulse.kt | 6 +- .../fletching/items/crossbow/StringCross.java | 0 .../skill/fletching/items/darts/Dart.java | 2 +- .../fletching/items/darts/DartPulse.java | 4 +- .../skill/fletching/items/gem/Gem.java | 2 +- .../skill/fletching/items/gem/GemBolt.java | 0 .../fletching/items/gem/GemBoltCutPulse.kt | 4 +- .../fletching/items/gem/GemBoltPulse.java | 4 +- .../fletching/items/grapple/GrapplePulse.java | 2 +- .../gather/GatheringSkillOptionListeners.kt | 28 +- .../skill/gather/PickaxeRepairPlugin.kt | 2 +- .../skill/gather/SkillingResource.java | 8 +- .../skill/gather/fishing/FishingPulse.kt | 24 +- .../BarbFishInteractionListeners.kt | 8 +- .../fishing/barbfishing/BarbFishingPulse.kt | 4 +- .../fishing/barbfishing/FishCuttingPulse.kt | 2 +- .../fishing/barbfishing/KnifeWithFish.kt | 2 +- .../gather/fishing/barbfishing/SpotManager.kt | 14 +- .../skill/gather/mining/MiningNode.java | 6 +- .../skill/gather/mining/MiningSkillPulse.kt | 21 +- .../skill/gather/mining/ProspectListener.kt | 10 +- .../gather/woodcutting/WoodcuttingNode.java | 6 +- .../woodcutting/WoodcuttingSkillPulse.java | 22 +- .../skill/herblore/BarbarianMixPlugin.java | 2 +- .../skill/herblore/BarbarianPotion.java | 2 +- .../skill/herblore/FinishedPotion.java | 2 +- .../skill/herblore/FinishedPotionPlugin.java | 6 +- .../global}/skill/herblore/GenericPotion.java | 2 +- .../global}/skill/herblore/GrindItemPlugin.kt | 6 +- .../global}/skill/herblore/GrindingItem.java | 2 +- .../skill/herblore/HerbCleanPlugin.java | 6 +- .../global}/skill/herblore/HerbTarPlugin.java | 4 +- .../global}/skill/herblore/HerbTarPulse.java | 2 +- .../global}/skill/herblore/HerblorePulse.java | 282 ++--- .../global}/skill/herblore/Herbs.java | 2 +- .../skill/herblore/PotionDecantingPlugin.java | 2 +- .../skill/herblore/SwampToadPlugin.java | 2 +- .../global}/skill/herblore/Tars.java | 2 +- .../skill/herblore/UnfinishedPotion.java | 2 +- .../herblore/UnfinishedPotionPlugin.java | 6 +- .../global}/skill/hunter/BoxTrapNode.java | 2 +- .../global}/skill/hunter/DeadfallSetting.java | 4 +- .../skill/hunter/FalconryActivityPlugin.java | 10 +- .../global}/skill/hunter/HunterGear.java | 2 +- .../global}/skill/hunter/HunterManager.java | 12 +- .../global}/skill/hunter/HunterNPC.java | 11 +- .../global}/skill/hunter/HunterPlugin.java | 12 +- .../global}/skill/hunter/ImpBoxPlugin.java | 10 +- .../skill/hunter/ImpetuousImpulses.java | 10 +- .../global}/skill/hunter/ImplingNPC.java | 8 +- .../global}/skill/hunter/MagicBoxSetting.java | 2 +- .../global}/skill/hunter/NetTrapSetting.java | 2 +- .../global}/skill/hunter/TrapCreatePulse.java | 2 +- .../skill/hunter/TrapDismantlePulse.java | 4 +- .../global}/skill/hunter/TrapHook.java | 4 +- .../global}/skill/hunter/TrapNode.java | 4 +- .../global}/skill/hunter/TrapSetting.java | 4 +- .../global}/skill/hunter/TrapWrapper.java | 6 +- .../global}/skill/hunter/Traps.java | 4 +- .../global}/skill/hunter/bnet/BNetNode.java | 2 +- .../global}/skill/hunter/bnet/BNetPulse.java | 4 +- .../global}/skill/hunter/bnet/BNetTypes.java | 2 +- .../skill/hunter/bnet/ImplingNode.java | 2 +- .../skill/hunter/falconry/FalconCatch.java | 2 +- .../hunter/falconry/FalconryCatchPulse.java | 6 +- .../skill/hunter/pitfall/HunterPitfall.kt | 16 +- .../skill/hunter/tracking/CommonKebbitEast.kt | 2 +- .../skill/hunter/tracking/CommonKebbitWest.kt | 4 + .../skill/hunter/tracking/HunterTracking.kt | 6 +- .../hunter/tracking/PolarKebbitHunting.kt | 2 +- .../skill/hunter/tracking/TrailDefinition.kt | 2 +- .../global}/skill/magic/SpellListener.kt | 10 +- .../global}/skill/magic/SpellListeners.kt | 4 +- .../global}/skill/magic/SpellTablets.kt | 12 +- .../global}/skill/magic/SpellUtils.kt | 8 +- .../skill/magic}/SpellbookSwapDialogue.java | 3 +- .../global}/skill/magic/TeleportMethod.kt | 2 +- .../magic/ancient/AncientTeleportPlugin.java | 10 +- .../skill/magic/ancient}/BloodSpells.java | 8 +- .../skill/magic/ancient}/IceSpells.java | 10 +- .../skill/magic/ancient}/MiasmicSpells.java | 10 +- .../skill/magic/ancient}/ShadowSpells.java | 8 +- .../skill/magic/ancient}/SmokeSpells.java | 8 +- .../global}/skill/magic/lunar/DreamSpell.java | 10 +- .../magic/lunar/EnergyTransferSpell.java | 8 +- .../global}/skill/magic/lunar/HealSpell.java | 8 +- .../skill/magic/lunar/HumidifySpell.java | 8 +- .../skill/magic/lunar/HunterKitSpell.java | 9 +- .../global/skill/magic/lunar}/LunarData.kt | 2 +- .../skill/magic/lunar}/LunarListeners.kt | 35 +- .../skill/magic/lunar/MagicImbueSpell.java | 11 +- .../skill/magic/lunar/SpellbookSwapSpell.java | 10 +- .../skill/magic/lunar/StatBoostSpell.java | 14 +- .../skill/magic/lunar/StatRestoreSpell.java | 14 +- .../skill/magic/lunar/StatSpySpell.java | 8 +- .../skill/magic/lunar/VengeanceSpell.java | 10 +- .../global/skill/magic/modern}/AirSpell.java | 8 +- .../global/skill/magic/modern}/BindSpell.java | 10 +- .../skill/magic/modern}/ChargeOrbSpells.java | 6 +- .../skill/magic/modern}/ChargeSpell.java | 7 +- .../skill/magic/modern}/CrumbleUndead.java | 8 +- .../skill/magic/modern}/CurseSpells.java | 9 +- .../skill/magic/modern}/EarthSpell.java | 8 +- .../magic/modern}/EnchantCrossbowSpell.java | 5 +- .../global/skill/magic/modern}/FireSpell.java | 8 +- .../global/skill/magic/modern}/GodSpells.java | 8 +- .../magic/modern}/GodspellChargedState.kt | 8 +- .../magic/modern}/HouseTeleportPlugin.java | 7 +- .../global/skill/magic/modern}/IbanBlast.java | 8 +- .../global/skill/magic/modern}/MagicDart.java | 8 +- .../skill/magic/modern}/ModernListeners.kt | 76 +- .../skill/magic/modern}/SonicWaveSpell.java | 6 +- .../skill/magic/modern}/TeleblockSpell.java | 7 +- .../skill/magic/modern}/TeleotherSpells.java | 6 +- .../skill/magic/modern}/WaterSpell.java | 8 +- .../global}/skill/magic/spellconsts/Lunar.kt | 2 +- .../global}/skill/magic/spellconsts/Modern.kt | 2 +- .../skill/prayer/BoneBuryingOptionPlugin.java | 5 +- .../global/skill/prayer}/Bones.kt | 3 +- .../skill/prayer/PrayerAltarPlugin.java | 2 +- .../global}/skill/runecrafting/Altar.java | 2 +- .../skill/runecrafting/CombinationRune.java | 2 +- .../runecrafting/CombinationRunePlugin.java | 2 +- .../runecrafting}/EnchantTiaraDialogue.java | 9 +- .../runecrafting/EnchantTiaraPlugin.java | 2 +- .../skill/runecrafting/EnchantTiaraPulse.java | 2 +- .../skill/runecrafting/MysteriousRuin.java | 2 +- .../runecrafting/MysteriousRuinPlugin.java | 4 +- .../skill/runecrafting/PouchManager.kt | 4 +- .../global}/skill/runecrafting/Rune.java | 4 +- .../skill/runecrafting/RuneCraftPulse.java | 8 +- .../global}/skill/runecrafting/RunePouch.java | 4 +- .../skill/runecrafting/RunePouchPlugin.kt | 4 +- .../runecrafting/RunecraftingPlugin.java | 11 +- .../global}/skill/runecrafting/Talisman.java | 2 +- .../global}/skill/runecrafting/Tiara.java | 2 +- .../skill/runecrafting/TiaraPlugin.java | 2 +- .../skill/runecrafting/abyss/AbyssPlugin.kt | 24 +- .../skill/runecrafting/abyss/AbyssalNPC.java | 4 +- .../runecrafting/abyss/DarkMageDialogue.java | 4 +- .../abyss/ZamorakMageDialogue.java | 4 +- .../global}/skill/skillcapeperks/Skillcape.kt | 2 +- .../SkillcapeEquipmentPlugin.kt | 7 +- .../skillcapeperks/SkillcapeOperatePlugin.kt | 4 +- .../skill/skillcapeperks/SkillcapePerks.kt | 54 +- .../skill/slayer/AberrantSpectreNPC.java | 7 +- .../global}/skill/slayer/AbyssalDemonNPC.java | 10 +- .../global}/skill/slayer/BansheeNPC.java | 9 +- .../global}/skill/slayer/BasiliskNPC.java | 4 +- .../global}/skill/slayer/BrutalDragonNPC.java | 8 +- .../global}/skill/slayer/BugSwarmNPC.java | 2 +- .../skill/slayer/BuglanternPlugin.java | 2 +- .../global}/skill/slayer/CaveBugNPC.java | 2 +- .../global}/skill/slayer/CaveHorrorNPC.java | 7 +- .../global}/skill/slayer/CockatriceNPC.java | 4 +- .../skill/slayer/DesertLizardPlugin.java | 2 +- .../global}/skill/slayer/DustDevilNPC.java | 7 +- .../skill/slayer/FishingExplosivePlugin.java | 4 +- .../global}/skill/slayer/GargoyleNPC.java | 4 +- .../global}/skill/slayer/InfernalMageNPC.java | 4 +- .../global}/skill/slayer/KuraskNPC.java | 5 +- .../global}/skill/slayer/Master.java | 3 +- .../skill/slayer/MirrorShieldHandler.java | 5 +- .../skill/slayer/MithrilDragonNPC.java | 8 +- .../global}/skill/slayer/NechryaelNPC.java | 4 +- .../global}/skill/slayer/RockSlugPlugin.java | 4 +- .../skill/slayer/SkeletalWyvernNPC.java | 10 +- .../skill/slayer/SlayerEquipmentFlags.kt | 10 +- .../global}/skill/slayer/SlayerFlags.kt | 6 +- .../global}/skill/slayer/SlayerManager.kt | 18 +- .../skill/slayer/SlayerMasterDialogue.java | 15 +- .../global}/skill/slayer/SlayerPlugin.java | 8 +- .../skill/slayer/SlayerRewardPlugin.java | 5 +- .../skill/slayer/SlayerTowerPlugin.java | 4 +- .../global}/skill/slayer/SlayerTowerZone.java | 4 +- .../global}/skill/slayer/SlayerUtils.kt | 6 +- .../global}/skill/slayer/Tasks.java | 2 +- .../global}/skill/slayer/TurothNPC.java | 5 +- .../global}/skill/slayer/WaterFiendNPC.java | 6 +- .../skill/slayer/dungeon/AncientCavern.java | 10 +- .../slayer/dungeon/FremennikDungeon.java | 6 +- .../slayer/dungeon/LumbridgeDungeon.java | 8 +- .../skill/slayer/dungeon/SmokeDungeon.java | 8 +- .../slayer/dungeon/StrongholdSlayerCave.java | 2 +- .../global}/skill/slayer/unused-tasks | 0 .../global}/skill/smithing/BarType.java | 2 +- .../global}/skill/smithing/Bars.java | 2 +- .../skill/smithing}/DragonShieldDialogue.java | 3 +- .../skill/smithing/FurnaceOptionPlugin.java | 6 +- .../skill/smithing/SmithingBuilder.java | 4 +- .../global}/skill/smithing/SmithingPulse.java | 6 +- .../global}/skill/smithing/SmithingType.java | 2 +- .../global}/skill/smithing/smelting/Bar.java | 2 +- .../smithing/smelting/SmeltingPulse.java | 8 +- .../summoning/CarvedEvilTurnipListener.kt | 7 +- .../skill/summoning/ObeliskOptionPlugin.java | 4 +- .../summoning/SummoningCreationPlugin.java | 6 +- .../skill/summoning/SummoningCreator.java | 2 +- .../skill/summoning/SummoningPouch.java | 2 +- .../skill/summoning/SummoningScroll.java | 2 +- .../skill/summoning/SummoningTabListener.kt | 9 +- .../summoning/SummoningTrainingRoom.java | 16 +- .../summoning}/familiar/AbyssalLurkerNPC.java | 5 +- .../familiar/AbyssalParasiteNPC.java | 5 +- .../summoning}/familiar/AbyssalTitanNPC.java | 4 +- .../summoning}/familiar/AlbinoRatNPC.java | 5 +- .../summoning}/familiar/ArcticBearNPC.java | 4 +- .../familiar/BabyChinchompaNPC.java | 6 +- .../summoning}/familiar/BarkerToadNPC.java | 4 +- .../summoning/familiar}/BeaverDialogue.java | 4 +- .../skill/summoning}/familiar/BeaverNPC.java | 7 +- .../summoning}/familiar/BloatedLeechNPC.java | 4 +- .../skill/summoning}/familiar/BullAntNPC.java | 5 +- .../skill/summoning}/familiar/BunyipNPC.java | 14 +- .../skill/summoning/familiar/BurdenBeast.java | 6 +- .../familiar/BurdenContainerListener.java | 2 +- .../familiar/BurdenInterfacePlugin.java | 5 +- .../familiar/CockatriceFamiliarNPC.java | 9 +- .../summoning}/familiar/CompostMoundNPC.java | 15 +- .../summoning}/familiar/DesertWyrmNPC.java | 11 +- .../familiar}/DismissDialoguePlugin.java | 6 +- .../summoning}/familiar/DreadfowlNPC.java | 10 +- .../familiar/ElementalTitanNPC.java | 6 +- .../summoning}/familiar/EvilTurnipNPC.java | 5 +- .../skill/summoning/familiar/Familiar.java | 16 +- .../familiar}/FamiliarDialoguePlugin.java | 4 +- .../familiar/FamiliarFeedPlugin.java | 4 +- .../familiar/FamiliarItemOptionPlugin.java | 4 +- .../summoning/familiar/FamiliarManager.java | 14 +- .../familiar/FamiliarNPCOptionPlugin.java | 2 +- .../summoning/familiar/FamiliarSpecial.java | 2 +- .../summoning}/familiar/FireTitanNPC.java | 5 +- .../skill/summoning/familiar/Forager.java | 4 +- .../summoning}/familiar/ForgeRegentNPC.java | 12 +- .../summoning}/familiar/FruitBatNPC.java | 7 +- .../summoning}/familiar/GeyserTitanNPC.java | 4 +- .../familiar/GiantChinchompaNPC.java | 6 +- .../summoning}/familiar/GiantEntNPC.java | 9 +- .../summoning}/familiar/GraniteCrabNPC.java | 7 +- .../familiar/GraniteLobsterNPC.java | 7 +- .../summoning}/familiar/HoneyBadgerNPC.java | 4 +- .../skill/summoning}/familiar/HydraNPC.java | 8 +- .../skill/summoning}/familiar/IbisNPC.java | 9 +- .../summoning}/familiar/IceTitanNPC.java | 5 +- .../summoning}/familiar/IronTitanNPC.java | 6 +- .../summoning}/familiar/KalphiteNPC.java | 6 +- .../familiar/KaramthulhuOverlordNPC.java | 4 +- .../familiar}/LavaTitanDialogue.java | 4 +- .../summoning}/familiar/LavaTitanNPC.java | 4 +- .../familiar}/LavaTitanOptionPlugin.java | 2 +- .../skill/summoning}/familiar/MacawNPC.java | 13 +- .../skill/summoning}/familiar/MagpieNPC.java | 7 +- .../familiar/MinotaurFamiliarNPC.java | 8 +- .../summoning}/familiar/MossTitanNPC.java | 4 +- .../summoning}/familiar/ObsidianGolemNPC.java | 4 +- .../skill/summoning}/familiar/PackYakNPC.java | 9 +- .../summoning}/familiar/PrayingMantisNPC.java | 4 +- .../summoning}/familiar/PyreLordNPC.java | 14 +- .../familiar/RavenousLocustNPC.java | 8 +- .../familiar/RemoteViewDialogue.java | 9 +- .../summoning/familiar/RemoteViewer.java | 4 +- .../summoning}/familiar/SmokeDevilNPC.java | 4 +- .../summoning}/familiar/SnakelingNPC.java | 6 +- .../summoning}/familiar/SpiritCobraNPC.java | 4 +- .../familiar/SpiritDagannothNPC.java | 4 +- .../familiar}/SpiritGraahkDialogue.java | 4 +- .../summoning}/familiar/SpiritGraahkNPC.java | 4 +- .../familiar}/SpiritGraahkOptionPlugin.java | 2 +- .../summoning}/familiar/SpiritJellyNPC.java | 4 +- .../familiar/SpiritKalphiteNPC.java | 7 +- .../familiar}/SpiritKyattDialogue.java | 4 +- .../summoning}/familiar/SpiritKyattNPC.java | 4 +- .../familiar}/SpiritKyattOptionPlugin.java | 2 +- .../summoning}/familiar/SpiritLarupiaNPC.java | 4 +- .../familiar/SpiritMosquitoNPC.java | 4 +- .../familiar/SpiritPengatriceNPC.java | 4 +- .../familiar/SpiritScorpionNPC.java | 4 +- .../summoning}/familiar/SpiritSpiderNPC.java | 6 +- .../familiar/SpiritTerrorbirdNPC.java | 5 +- .../summoning}/familiar/SpiritTzKihNPC.java | 4 +- .../summoning}/familiar/SpiritWolfNPC.java | 10 +- .../summoning}/familiar/SteelTitanNPC.java | 6 +- .../summoning}/familiar/StrangerPlantNPC.java | 5 +- .../familiar/SummonFamiliarPlugin.java | 3 +- .../summoning}/familiar/SwampTitanNPC.java | 4 +- .../summoning}/familiar/TalonBeastNPC.java | 4 +- .../summoning}/familiar/ThornySnailNPC.java | 7 +- .../familiar/UnicornStallionNPC.java | 6 +- .../summoning}/familiar/VampireBatNPC.java | 4 +- .../skill/summoning}/familiar/VetionNPC.java | 4 +- .../summoning}/familiar/VoidFamiliarNPC.java | 9 +- .../summoning}/familiar/WarTortoiseNPC.java | 5 +- .../summoning}/familiar/WolpertingerNPC.java | 4 +- .../skill/summoning/pet/IncubatorEgg.java | 2 +- .../skill/summoning/pet}/IncubatorState.kt | 7 +- .../pet}/KittenInteractDialogue.java | 5 +- .../global}/skill/summoning/pet/Pet.java | 6 +- .../skill/summoning/pet/PetDetails.java | 6 +- .../global}/skill/summoning/pet/Pets.java | 2 +- .../skill/thieving/PickableDoorHandler.java | 4 +- .../global}/skill/thieving/Pickpockets.kt | 8 +- .../global}/skill/thieving/Stall.java | 2 +- .../skill/thieving/StallThiefPulse.java | 8 +- .../skill/thieving/ThievableChestPlugin.java | 4 +- .../skill/thieving/ThievingListeners.kt | 10 +- .../skill/thieving/ThievingOptionPlugin.java | 2 +- .../global/state}/DiseasedState.kt | 8 +- .../content/global/travel/EssenceTeleport.kt | 14 +- .../content/global/travel/canoe/Canoe.java | 2 +- .../travel/canoe}/CanoeInterfaceListeners.kt | 26 +- .../travel/canoe}/CanoeStationListener.kt | 16 +- .../global/travel/canoe}/CanoeUtils.kt | 7 +- .../travel/glider}/CaptainDalburDialogue.java | 5 +- .../global/travel/glider}/GliderPlugin.java | 4 +- .../global/travel/glider/GliderPulse.java | 2 +- .../content/global/travel/glider/Gliders.java | 2 +- .../travel/ship}/SeamanDialoguePlugin.java | 5 +- .../global/travel/ship/ShipCharter.java | 8 +- .../travel/ship}/ShipCharterInterface.java | 4 +- .../travel/ship}/ShipCharterNPCPlugin.java | 4 +- .../global/travel/ship/ShipTravelPulse.java | 2 +- .../content/global/travel/ship/Ships.java | 2 +- .../ship}/TraderCrewmemberDialogue.java | 6 +- .../travel/trees}/GnomeSpiritTreeListener.kt | 22 +- .../minigame}/allfiredup/AFUBeacon.kt | 12 +- .../minigame}/allfiredup/AFUBeaconHandler.kt | 47 +- .../allfiredup/AFURepairClimbHandler.kt | 18 +- .../minigame}/allfiredup/AFUSession.kt | 17 +- .../allfiredup/BeaconTenderDialogue.kt | 16 +- .../allfiredup/KingRoaldAFUMiniDialogue.kt | 8 +- .../barbassault/CaptainCainDialogue.kt | 67 + .../minigame}/barrows/BarrowBrother.java | 2 +- .../barrows/BarrowsActivityPlugin.java | 17 +- .../minigame}/barrows/BarrowsCrypt.java | 6 +- .../minigame}/barrows/BarrowsPuzzle.java | 2 +- .../minigame}/barrows/RewardChest.kt | 11 +- .../barrows/TunnelEntranceDialogue.java | 6 +- .../minigame}/blastfurnace/BlastFurnace.kt | 720 +++++------ .../BlastFurnaceInterfaceListener.kt | 142 +-- .../blastfurnace/BlastFurnaceListeners.kt | 768 ++++++------ .../minigame/blastfurnace}/BlastFurnaceOre.kt | 5 +- .../blastfurnace/BlastFurnaceZone.kt | 108 +- .../PhunnyGaugeTempInterfaceListener.kt | 47 +- .../bountyhunter/BHOptionHandler.java | 6 +- .../minigame}/bountyhunter/BHScoreBoard.java | 2 +- .../minigame}/bountyhunter/BountyEntry.java | 4 +- .../bountyhunter/BountyHunterActivity.java | 10 +- .../bountyhunter/BountyLocateSpell.java | 10 +- .../minigame}/bountyhunter/CraterType.java | 2 +- .../MaximillianSackvilleDialogue.kt | 44 +- .../minigame}/clanwars/CWChallengeOption.java | 4 +- .../clanwars/ClanWarsActivityPlugin.java | 10 +- .../clanwars/ClanWarsChallengeRoom.java | 4 +- .../content/minigame/duel/AfrahDialogue.kt | 174 +++ .../minigame}/duel/ChallengeOptionPlugin.java | 2 +- .../minigame}/duel/DuelArea.java | 10 +- .../minigame}/duel/DuelArenaActivity.java | 6 +- .../minigame}/duel/DuelComponentPlugin.java | 4 +- .../minigame}/duel/DuelReqModule.java | 2 +- .../minigame}/duel/DuelRule.java | 2 +- .../minigame}/duel/DuelSession.java | 12 +- .../minigame/duel}/MubarizDialogue.java | 4 +- .../minigame}/duel/StakeContainer.java | 2 +- .../minigame/duel}/ZahwaDialogue.java | 4 +- .../fishingtrawler/FishingTrawlerActivity.kt | 12 +- .../FishingTrawlerInteractionHandler.kt | 28 +- .../fishingtrawler/FishingTrawlerOverlay.kt | 4 +- .../FishingTrawlerRewardInterface.kt | 2 +- .../fishingtrawler/FishingTrawlerSession.kt | 25 +- .../minigame}/fishingtrawler/TrawlerLoot.kt | 4 +- .../minigame}/fog/FOGActivityPlugin.java | 6 +- .../minigame}/fog/FOGLobbyZone.java | 2 +- .../minigame}/fog/FOGPlayer.java | 2 +- .../minigame/fog}/FOGRewardsInterface.kt | 4 +- .../minigame}/fog/FOGWaitingZone.java | 2 +- .../minigame}/fog/FogInteractionHandler.kt | 14 +- .../minigame}/fog/ReggieDialogue.kt | 11 +- .../gnomecooking/DeliveryBoxHandler.kt | 2 +- .../gnomecooking/GCCompletionDialogue.kt | 15 +- .../gnomecooking/GCRewardTokenHandler.kt | 9 +- .../gnomecooking/GnomeCookingConstants.kt | 2 +- .../minigame}/gnomecooking/GnomeCookingJob.kt | 2 +- .../minigame}/gnomecooking/GnomeTipper.kt | 2 +- .../gnomecooking/battas/GnomeBattaCooker.kt | 4 +- .../battas/GnomeBattaDishFiller.kt | 2 +- .../battas/GnomeBattaGarnisher.kt | 2 +- .../battas/GnomeBattaInterface.kt | 2 +- .../battas/GnomeBattaPrepareHandler.kt | 2 +- .../gnomecooking/bowls/GnomeBowlCooker.kt | 4 +- .../gnomecooking/bowls/GnomeBowlGarnisher.kt | 2 +- .../gnomecooking/bowls/GnomeBowlInterface.kt | 2 +- .../bowls/GnomeBowlPrepareHandler.kt | 2 +- .../bowls/GnomebowlMouldFiller.kt | 2 +- .../gnomecooking/cocktails/CocktailCooker.kt | 4 +- .../cocktails/CocktailFinisher.kt | 2 +- .../cocktails/CocktailShakerHandler.kt | 2 +- .../cocktails/GnomeCocktailInterface.kt | 2 +- .../gnomecooking/cocktails/PourMixerPlugin.kt | 2 +- .../crunchies/GnomeCrunchyCooker.kt | 4 +- .../crunchies/GnomeCrunchyGarnisher.kt | 2 +- .../crunchies/GnomeCrunchyInterface.kt | 2 +- .../crunchies/GnomeCrunchyPrepareHandler.kt | 2 +- .../crunchies/GnomeCrunchyTrayFiller.kt | 2 +- .../magearena/ChamberGuardianDialogue.java | 6 +- .../minigame}/magearena/KolodionDialogue.java | 6 +- .../minigame}/magearena/KolodionNPC.java | 10 +- .../minigame}/magearena/KolodionSession.java | 4 +- .../minigame}/magearena/LundailDialogue.java | 6 +- .../minigame}/magearena/MageArenaNPC.java | 6 +- .../minigame}/magearena/MageArenaPlugin.java | 14 +- .../minigame}/magearena/MageArenaZone.java | 4 +- .../mta/AlchemyGuardianDialogue.java | 4 +- .../minigame}/mta/CharmedWarriorDialogue.java | 4 +- .../minigame}/mta/EnchantSpell.kt | 16 +- .../mta/EnchantmentGuardianDialogue.java | 4 +- .../mta/EntranceGuardianDialogue.java | 6 +- .../mta/GraveyardGuardianDialogue.java | 4 +- .../minigame}/mta/MTAListeners.kt | 33 +- .../minigame}/mta/MTAShop.java | 8 +- .../minigame}/mta/MTAType.java | 14 +- .../minigame}/mta/MTAZone.java | 4 +- .../mta/MageTrainingArenaPlugin.java | 10 +- .../minigame}/mta/MazeGuardianDialogue.java | 7 +- .../minigame}/mta/ProgressHatDialogue.java | 4 +- .../mta/RewardsGuardianDialogue.java | 4 +- .../minigame}/mta/TelekineticGrabSpell.java | 14 +- .../mta/TelekineticGuardianDialogue.java | 4 +- .../minigame}/mta/impl/AlchemistZone.java | 8 +- .../minigame}/mta/impl/EnchantingZone.java | 6 +- .../minigame}/mta/impl/GraveyardZone.java | 8 +- .../minigame}/mta/impl/TelekineticZone.java | 10 +- .../pestcontrol}/OutpostSquireDialogue.java | 3 +- .../minigame}/pestcontrol/PCIslandZone.java | 2 +- .../minigame}/pestcontrol/PCLanderZone.java | 2 +- .../pestcontrol/PCObjectHandler.java | 8 +- .../minigame}/pestcontrol/PCPortalNPC.java | 7 +- .../minigame}/pestcontrol/PCSquireNPC.java | 2 +- .../PestControlActivityPlugin.java | 14 +- .../pestcontrol/PestControlHelper.kt | 15 +- .../pestcontrol/PestControlSession.java | 6 +- .../pestcontrol/PestControlSquire.java | 4 +- .../minigame/pestcontrol}/SquireDialogue.java | 6 +- .../pestcontrol}/SquireMagicDialougue.java | 3 +- .../pestcontrol}/SquireTypeDialogue.java | 3 +- .../minigame}/pestcontrol/VoidSealPlugin.java | 4 +- .../minigame/pestcontrol/bots}/CombatState.kt | 9 +- .../bots}/CombatStateIntermediate.kt | 9 +- .../bots}/PestControlIntermediateBot.kt | 11 +- .../pestcontrol/bots}/PestControlNoviceBot.kt | 11 +- .../pestcontrol/monsters/PCBrawlerNPC.java | 18 +- .../pestcontrol/monsters/PCDefilerNPC.java | 8 +- .../pestcontrol/monsters/PCRavagerNPC.java | 6 +- .../pestcontrol/monsters/PCShifterNPC.java | 12 +- .../pestcontrol/monsters/PCSpinnerNPC.java | 6 +- .../pestcontrol/monsters/PCSplatterNPC.java | 6 +- .../pestcontrol/monsters/PCTorcherNPC.java | 12 +- .../reward/PCIslandOptionPlugin.java | 4 +- .../pestcontrol/reward/PCRewardInterface.java | 4 +- .../reward/VoidKnightDialogue.java | 4 +- .../puropuro/ElnockInquisitorDialogue.java | 12 +- .../puropuro/FairyAerykaDialogue.java | 4 +- .../minigame}/puropuro/ImpDefenderNPC.java | 8 +- .../minigame}/puropuro/PuroPuroPlugin.java | 6 +- .../puropuro/WanderingImplingDialogue.java | 4 +- .../pyramidplunder/GuardianMummyDialogue.kt | 74 ++ .../pyramidplunder/PharaohSceptre.kt | 22 +- .../minigame}/pyramidplunder/PlunderData.kt | 4 +- .../minigame}/pyramidplunder/PlunderUtils.kt | 4 +- .../pyramidplunder/PyramidPlunderMinigame.kt | 18 +- .../PyramidPlunderMummyNPC.java | 2 +- .../pyramidplunder/PyramidPlunderNPC.java | 4 +- .../PyramidPlunderSwarmNPC.java | 2 +- .../pyramidplunder}/RechargeSceptre.java | 4 +- .../SimonScepterInteraction.java | 2 +- .../minigame/sorceress}/DelMontyDialogue.java | 4 +- .../sorceress/GardenObjectsPlugin.kt | 32 +- .../sorceress}/SorcceresDialouge.java | 6 +- .../SorceressApprenticeDialogue.java | 8 +- .../sorceress}/SorceressApprenticePlugin.java | 4 +- .../sorceress}/SorceressElementalNPC.java | 6 +- .../sorceress/SorceressGardenObject.java | 4 +- .../minigame}/vinesweeper/Vinesweeper.kt | 38 +- .../vinesweeper/VinesweeperDialogues.kt | 6 +- .../burthorpe/dialogue}/AchiettiesDialogue.kt | 12 +- .../dialogue/AjjatDialoguePlugin.java | 5 +- .../burthorpe}/dialogue/AntonDialogue.java | 3 +- .../burthorpe}/dialogue/BreocaDialogue.java | 4 +- .../dialogue/BurthorpeSoldierDialogue.java | 4 +- .../burthorpe}/dialogue/CeolburgDialogue.java | 4 +- .../burthorpe}/dialogue/DenulthDialogue.java | 4 +- .../burthorpe}/dialogue/DunstanDialogue.java | 4 +- .../burthorpe}/dialogue/EadburgDialogue.java | 4 +- .../dialogue}/EmeraldBenedictDialogue.kt | 36 +- .../dialogue}/EmeraldBenedictListener.kt | 10 +- .../burthorpe}/dialogue/GamFredDialoue.java | 4 +- .../burthorpe}/dialogue/GhommalDialogue.java | 4 +- .../dialogue/HarrallakMenarous.java | 4 +- .../burthorpe}/dialogue/HildDialogue.java | 4 +- .../burthorpe}/dialogue/HistanDialogue.java | 4 +- .../burthorpe}/dialogue/HygdDialogue.java | 4 +- .../burthorpe/dialogue}/JadeDialogue.kt | 42 +- .../dialogue/KamfreenaDialogue.java | 3 +- .../burthorpe}/dialogue/LidioDialogue.java | 4 +- .../burthorpe}/dialogue/LillyDialogue.java | 4 +- .../dialogue/MartinThwaitDialogue.java | 6 +- .../burthorpe}/dialogue/OcaDialogue.java | 4 +- .../burthorpe}/dialogue/PendaDialogue.java | 4 +- .../burthorpe}/dialogue/ReffDialogue.java | 3 +- .../burthorpe}/dialogue/ServantDialogue.java | 4 +- .../burthorpe}/dialogue/ShanomiDialogue.java | 4 +- .../burthorpe}/dialogue/SloaneDialogue.java | 5 +- .../burthorpe/handlers}/AntonNPC.java | 2 +- .../handlers}/BurthorpeOptionPlugin.java | 4 +- .../burthorpe/handlers}/BurthorpePlugin.java | 4 +- .../handlers}/BurthorpeTrainNPC.java | 4 +- .../burthorpe/handlers}/HeroGuildPlugin.java | 10 +- .../burthorpe/handlers}/KamfreenaNPC.java | 2 +- .../burthorpe/handlers}/ShanomiNPC.java | 2 +- .../handlers}/wguild/WGuildListeners.kt | 7 +- .../handlers}/wguild/WarriorsGuild.java | 10 +- .../wguild/animator/AnimatedArmour.java | 8 +- .../wguild/animator/AnimationRoom.java | 4 +- .../handlers}/wguild/barrel/BarrelRoom.java | 6 +- .../wguild/catapult/CatapultRoom.java | 8 +- .../wguild/cyclopes/CyclopesRoom.java | 12 +- .../handlers}/wguild/dummy/DummyRoom.java | 4 +- .../handlers}/wguild/shot/ShotPutRoom.java | 12 +- .../asgarnia}/dialogue/CuffsDialogue.java | 4 +- .../asgarnia}/dialogue/GrimgnashDialogue.java | 4 +- .../asgarnia}/dialogue/IcyCavernDialogue.java | 3 +- .../asgarnia}/dialogue/JeffDialogue.java | 4 +- .../dialogue/LakkiDwarfDialogue.java | 4 +- .../dialogue/MasterCrafterDialogue.kt | 68 ++ .../asgarnia}/dialogue/NarfsDialogue.java | 4 +- .../asgarnia}/dialogue/OracleDialogue.java | 3 +- .../asgarnia}/dialogue/RustyDialogue.java | 4 +- .../asgarnia/dialogue/TannerDialogue.kt | 53 + .../asgarnia/dialogue/TheDoorDialogues.kt | 32 + .../asgarnia}/dialogue/ThuroDialogue.java | 4 +- .../dialogue/ZandarHorfyreDialogue.kt | 53 + .../dwarfmine/dialogue/DrogoDialogue.kt | 48 + .../dwarfmine}/dialogue/DrokarDialogue.java | 4 +- .../dialogue/DwarfShopDialogue.java | 4 +- .../dialogue/DwarvenMineGuardDialogue.kt | 44 + .../dwarfmine}/dialogue/HuraDialogue.java | 4 +- .../MiningSkillCapeDwarfDialogue.java | 4 +- .../dwarfmine/dialogue/NurmofDialogue.kt | 47 + .../dwarfmine}/dialogue/RoladDialogue.java | 4 +- .../dialogue/AmbassadorSpanfippleDialogue.kt | 62 + .../dialogue}/ApprenticeWorkmanDialogue.kt | 22 +- .../falador}/dialogue/CassieDialogue.java | 4 +- .../falador}/dialogue/ChemistDialogue.java | 5 +- .../falador}/dialogue/DoricDialogue.java | 6 +- .../falador/dialogue/DrunkenManDialogue.kt | 66 + .../dialogue/FaladorGardenerDialogue.java | 4 +- .../dialogue/FaladorManHouseDialogue.java | 4 +- .../dialogue/FaladorShopKeeperDialogue.java | 4 +- .../dialogue/FaladorSquireDialogue.java | 7 +- .../dialogue/FaladorWomenParkDialogue.java | 4 +- .../falador}/dialogue/FlynnDialogue.java | 4 +- .../dialogue/HairdresserDialogue.java | 4 +- .../falador}/dialogue/HerquinDialogue.java | 4 +- .../dialogue/LucyPartyRoomDialoguePlugin.java | 4 +- .../dialogue/MakeOverMageDialogue.java | 4 +- .../falador}/dialogue/MiningGuildDwarf.java | 4 +- .../dialogue/PartyPeteDialoguePlugin.java | 6 +- .../RisingSunInnBartenderDialogue.kt | 49 +- .../falador}/dialogue/SarahFarmingPlugin.java | 4 +- .../falador}/dialogue/SirReniteeDialogue.java | 6 +- .../dialogue/SirTiffyCashienDialogue.java | 4 +- .../falador}/dialogue/SirVyvinDialogue.java | 4 +- .../falador}/dialogue/WayneDialogue.java | 4 +- .../dialogue/WhiteKnightDialoguePlugin.java | 3 +- .../falador/dialogue/WorkmanDialogue.kt | 49 + .../dialogue}/WysonTheGardenerDialogue.kt | 11 +- .../falador/dialogue}/gardensupplier.java | 4 +- .../falador/diary}/FaladorAchievementDiary.kt | 42 +- .../falador/handlers}/FaladorNodePlugin.java | 7 +- .../falador/handlers}/GiantMoleNPC.java | 12 +- .../falador/handlers}/MiningGuildPlugin.java | 10 +- .../falador/handlers}/WantedPoster.java | 2 +- .../handlers}/partyroom/BalloonManager.java | 5 +- .../handlers}/partyroom/ChestViewer.java | 2 +- .../DropPartyLeverOptionPlugin.java | 4 +- .../handlers}/partyroom/PartyRoomPlugin.java | 10 +- .../asgarnia/falador/quest}/DoricsQuest.java | 2 +- .../falador/quest}/TheKnightsSword.java | 2 +- .../blackknightsfortress/BKCabbagePlugin.java | 2 +- .../BKFortressPlugin.java | 10 +- .../BKListenDialogue.java | 3 +- .../blackknightsfortress}/BlackKnightNPC.java | 2 +- .../BlackKnightsFortress.java | 4 +- .../FortressGuardDialogue.java | 6 +- .../SirAmikVarzeDialogue.java | 4 +- .../dialogue/GoblinVillageDialogue.java | 4 +- .../dialogue/GoblinVillageGuardDialogue.java | 3 +- .../handlers}/GoblinVillageNPC.java | 2 +- .../GoblinVillagePopulationPlugin.java | 2 +- .../goblindiplomacy/GDiplomacyCutscene.java | 16 +- .../goblindiplomacy/GoblinDiplomacy.java | 4 +- .../GoblinDiplomacyPlugin.java | 6 +- .../quest}/goblindiplomacy/GrubFoot.java | 2 +- .../goblindiplomacy/GrubfootDialogue.java | 4 +- .../handlers}/CraftingGuildListeners.kt | 17 +- .../handlers}/WineOfZamorakInteraction.kt | 10 +- .../portsarim}/dialogue/AhabDialogue.java | 4 +- .../portsarim}/dialogue/BettyDialogue.java | 4 +- .../portsarim}/dialogue/GerrantDialogue.java | 4 +- .../portsarim}/dialogue/GrumDialogue.java | 4 +- .../dialogue/JackSeagullDialogue.java | 4 +- .../portsarim}/dialogue/KlarenseDialogue.java | 4 +- .../dialogue/LongbowBenDialogue.java | 4 +- .../dialogue/MonkOfEntranaDialogue.java | 6 +- .../dialogue/PortSarimBartenderDialogue.java | 4 +- .../dialogue/PortSarimBrianDialogue.java | 4 +- .../dialogue/RedbeardFrankDialogue.java | 6 +- .../dialogue/TakiDwarfDialogue.java | 4 +- .../portsarim}/dialogue/WydinDialogue.java | 4 +- .../handlers}/AhabBeerInteraction.java | 4 +- .../handlers}/ElementalWizardNPC.java | 10 +- .../portsarim/handlers}/PortSarimPlugin.java | 4 +- .../handlers}/PortsObjectPlugin.java | 6 +- .../portsarim/handlers}/SeamanPlugin.java | 2 +- .../portsarim/handlers}/WydinDoorPlugin.java | 4 +- .../quest/piratestreasure}/GardenerNPC.java | 4 +- .../piratestreasure/PiratesTreasure.java | 4 +- .../PiratesTreasurePlugin.java | 6 +- .../dialogue/AnjaDialoguePlugin.java | 4 +- .../dialogue/BrianArcheryDialogue.java | 4 +- .../dialogue/HengelDialoguePlugin.java | 3 +- .../rimmington}/dialogue/HettyDialogue.java | 450 +++---- .../RimmingtonShopKeeperDialogue.java | 4 +- .../rimmington}/dialogue/RoomikDialogue.java | 4 +- .../quest/witchpotion}/WitchsPotion.java | 2 +- .../witchpotion}/WitchsPotionPlugin.java | 2 +- .../taverley}/dialogue/BernaldDialogue.java | 3 +- .../dialogue/BrianORichardDialogue.java | 4 +- .../taverley}/dialogue/JatixDialogue.java | 4 +- .../taverley}/dialogue/KaqemeexDialogue.java | 6 +- .../dialogue/PetshopOwnerTaverly.java | 4 +- .../dialogue/PikkupstixDialogue.java | 4 +- .../taverley}/dialogue/SanfewDialogue.java | 4 +- .../taverley}/dialogue/TeegidDialogue.java | 4 +- .../taverley}/dialogue/TostigDialogue.java | 4 +- .../taverley/dialogue/VelrakDialogue.kt | 63 + .../taverley/handlers}/ArmourSuitNPC.java | 4 +- .../handlers}/CrystalChestPlugin.java | 4 +- .../handlers}/CrystalKeyObjectPlugin.java | 2 +- .../handlers}/TaverleyDungeonListeners.kt | 19 +- .../handlers}/TaverlyDungeonPlugin.java | 4 +- .../taverley/quest}/DruidicRitual.java | 2 +- .../asgarnia/taverley/quest}/WolfWhistle.java | 2 +- .../quest}/witchshouse/BallInteraction.java | 8 +- .../quest}/witchshouse/BoyDialoguePlugin.java | 6 +- .../quest}/witchshouse/ExperimentSession.java | 2 +- .../taverley/quest}/witchshouse/MouseNPC.java | 4 +- .../quest}/witchshouse/NoraTHaggNPC.java | 6 +- .../quest}/witchshouse/WitchsDiaryBook.java | 12 +- .../witchshouse/WitchsExperimentNPC.java | 4 +- .../quest}/witchshouse/WitchsHouse.java | 2 +- .../quest}/witchshouse/WitchsHousePlugin.java | 6 +- .../dialogue/GWDKnightDialogue.java | 3 +- .../trollheim/handlers}/ThrowerTrollNPC.java | 2 +- .../trollheim/handlers}/TrollheimPlugin.java | 20 +- .../handlers}/gwd/EcumenicalKeyHandler.java | 0 .../gwd/GWDGraardorSwingHandler.java | 5 +- .../gwd/GWDKreeArraSwingHandler.java | 4 +- .../gwd/GWDTsutsarothSwingHandler.java | 4 +- .../handlers}/gwd/GWDZilyanaSwingHandler.java | 4 +- .../handlers}/gwd/GodWarsFaction.java | 8 +- .../handlers}/gwd/GodWarsMinionNPC.java | 4 +- .../trollheim/handlers}/gwd/GodWarsNPC.java | 8 +- .../handlers/gwd}/GodswordDialogue.java | 3 +- .../handlers}/gwd/GodwarsBossNPC.java | 10 +- .../handlers}/gwd/GodwarsEntranceHandler.java | 6 +- .../handlers}/gwd/GodwarsMapzone.java | 8 +- .../trollheim/handlers/gwd}/IcePathZone.java | 4 +- .../desert/alkharid/dialogue/AablaDialogue.kt | 48 + .../dialogue}/AlKharidHealListener.kt | 22 +- .../dialogue}/AlKharidShopKeeperDialogue.kt | 16 +- .../dialogue}/AlTheCamelDialogue.java | 6 +- .../dialogue}/AliMorrisaneDialogue.java | 4 +- .../alkharid/dialogue/AliTheFarmerDialogue.kt | 73 ++ .../desert/alkharid/dialogue/AliTheGuard.kt | 70 ++ .../dialogue/AliTheLeafletDropperDialogue.kt | 83 ++ .../dialogue}/AliTheLeafletDropperListener.kt | 21 +- .../alkharid/dialogue/AliTheSmithDialogue.kt | 68 ++ .../dialogue/BorderGuardDialogue.java | 5 +- .../alkharid}/dialogue/DommikDialogue.java | 4 +- .../dialogue/EllyTheCamelDialogue.java | 4 +- .../desert/alkharid/dialogue/FadliDialogue.kt | 70 ++ .../alkharid/dialogue}/GemTraderDialogue.kt | 8 +- .../alkharid}/dialogue/HassanDialogue.java | 4 +- .../alkharid/dialogue/JaraahDialogue.kt | 66 + .../alkharid}/dialogue/KarimDialogue.java | 4 +- .../alkharid}/dialogue/LouiLegsDialogue.java | 4 +- .../dialogue/OllieTheCamelDialogue.java | 4 +- .../alkharid}/dialogue/RanaelDialogue.java | 4 +- .../alkharid/dialogue/SabreenDialogue.kt | 48 + .../dialogue/SurgeonGeneralTafaniDialogue.kt | 70 ++ .../alkharid}/dialogue/ZekeDialogue.java | 4 +- .../handlers}/AlKharidStairsPlugin.kt | 8 +- .../alkharid/handlers}/AlKharidWarriorNPC.kt | 4 +- .../desert/alkharid/handlers}/TanningNPC.java | 4 +- .../princealirescue/LadyKeliDialogue.java | 6 +- .../quest}/princealirescue/LadyKeliNPC.java | 4 +- .../quest}/princealirescue/NedPARDialogue.kt | 9 +- .../princealirescue/PrinceAliRescue.java | 4 +- .../PrinceAliRescuePlugin.java | 6 +- .../quest}/princealirescue/WigDyePlugin.java | 2 +- .../bedabin/handlers}/BedabinPlugin.java | 2 +- .../desert}/dialogue/CamelDialoguePlugin.java | 4 +- .../desert}/dialogue/EblisDialogue.java | 3 +- .../desert}/dialogue/RugMerchantDialogue.java | 16 +- .../desert}/dialogue/ShantayDialogue.java | 6 +- .../region/desert}/dialogue/ShantayGuard.java | 10 +- .../desert}/dialogue/SimonTempleton.java | 5 +- .../region/desert/handlers}/DesertZone.java | 4 +- .../handlers}/KalphiteEntranceHandler.java | 4 +- .../desert/handlers}/KalphiteQueenNPC.java | 10 +- .../handlers}/KhardianDesertPlugin.java | 4 +- .../handlers}/KhardianInteractionPlugin.java | 2 +- .../desert/handlers}/ShantayOptionPlugin.java | 4 +- .../desert/handlers}/ShantayPassPlugin.java | 6 +- .../handlers}/TollGateOptionPlugin.java | 10 +- .../desert/nardah/dialogue}/AliTheCarter.java | 4 +- .../nardah/dialogue}/ArtimeusDialogue.java | 4 +- .../desert/nardah/dialogue}/Awusah.java | 4 +- .../desert/nardah/dialogue}/Ghaslor.java | 4 +- .../desert/nardah/dialogue}/Kazemde.java | 4 +- .../region/desert/nardah/dialogue}/Nkuku.kt | 14 +- .../region/desert/nardah/dialogue}/Rokuh.java | 4 +- .../region/desert/nardah/dialogue}/Seddu.java | 4 +- .../nardah/handlers}/ZahurOptionPlugin.java | 10 +- .../desert/pollniv/dialogue}/AliCamelMan.java | 6 +- .../pollniv/dialogue}/AliTheCamelHandler.java | 8 +- .../pollniv/dialogue/AliTheHagDialogue.kt | 49 + .../pollniv/dialogue}/AliTheKebabSeller.java | 6 +- .../pollniv/dialogue/AliTheMayorDialogue.kt | 59 + .../pollniv/dialogue}/AliTheOperator.kt | 32 +- .../pollniv/dialogue}/BlackJackSeller.java | 4 +- .../pollniv/dialogue}/DesertBandit.java | 4 +- .../dialogue}/StreetUrchinDialogue.java | 4 +- .../pollniv/handlers}/SnakeCharmerBasket.java | 6 +- .../deserttreasure/ArchaeologistDialogue.kt | 30 +- .../quest}/deserttreasure/DesertTreasure.kt | 0 .../WandererDialogue.java | 4 +- .../desert/quest/thegolem/TheGolemDialogue.kt | 438 +++++++ .../desert/quest}/thegolem/TheGolemQuest.kt | 23 +- .../thetouristrap/AlShabimDialogue.java | 4 +- .../quest}/thetouristrap/AnaDialogue.java | 8 +- .../thetouristrap/BedabinNomadDialogue.java | 4 +- .../thetouristrap/CaptainSiadDialogue.java | 4 +- .../thetouristrap/DesertGuardDialogue.java | 8 +- .../quest}/thetouristrap/IrenaDialogue.java | 4 +- .../thetouristrap/MaleSlaveDialogue.java | 6 +- .../MercenaryCaptainDialogue.java | 6 +- .../thetouristrap/MercenaryDialogue.java | 4 +- .../quest}/thetouristrap/MineSlaveNPC.java | 4 +- .../thetouristrap/MinecartDriverDialogue.java | 4 +- .../quest}/thetouristrap/MiningCampZone.java | 4 +- .../quest}/thetouristrap/RowdySlaveNPC.java | 4 +- .../quest}/thetouristrap/TouristTrap.java | 6 +- .../thetouristrap/TouristTrapPlugin.java | 28 +- .../sophanem/dialogue/EmbalmerDialogue.kt | 41 + .../desert/sophanem/dialogue}/KlenterNPC.java | 4 +- .../sophanem/dialogue}/SphinxDialogue.java | 6 +- .../sophanem/dialogue}/TarikDialogue.kt | 17 +- .../sophanem/handlers}/SophanemPlugin.java | 4 +- .../sophanem/handlers}/WallShortcut.java | 4 +- .../dialogue/CaptainBentleyDialogue.java | 5 +- .../fremennik}/dialogue/JossikDialogue.java | 5 +- .../dialogue/LokarSearunnerDialogue.java | 5 +- .../diary}/FremennikAchievementDiary.kt | 40 +- .../fremennik/handlers}/FremmenikPlugin.java | 2 +- .../fremennik/handlers}/HonourGuardGFI.kt | 4 +- .../fremennik/handlers}/LightHousePlugin.java | 4 +- .../fremennik/handlers}/TarBarrelListener.kt | 6 +- .../jatizso/dialogue/CitizenDialogue.kt | 58 + .../jatizso/dialogue/EricDialogue.kt | 31 + .../jatizso/dialogue/GruvaPatrullDialogue.kt | 34 + .../jatizso/dialogue/LeftieRightieDialogue.kt | 32 + .../jatizso/dialogue/MinerDialogue.kt | 61 + .../jatizso/dialogue}/MordGunnarsDialogue.kt | 22 +- .../jatizso/dialogue/TowerGuardDialogue.kt | 50 + .../jatizso/handlers}/IceTrollJatizsoCaves.kt | 4 +- .../jatizso/handlers}/JatizsoListeners.kt | 26 +- .../lunarisle/dialogue/BabaYagaDialogue.kt | 55 + .../dialogue}/BouquetMacHyacinthDialogue.kt | 34 +- .../lunarisle/dialogue/CabinBoyDialogue.kt | 72 ++ .../dialogue/MelenaMoonlanderDialogue.kt | 64 + .../dialogue/PaulinePolarisDialogue.kt | 48 + .../dialogue/RimaeSirsalisDialogue.kt | 62 + .../lunarisle/dialogue/SeleneDialog.kt | 79 ++ .../dialogue}/SirsalBankerDialogue.kt | 74 +- .../lunarisle/handlers}/LunarIslePlugin.java | 2 +- .../neitiznot}/dialogue/AnnaIsaakson.java | 3 +- .../dialogue/FridleifShieldsonDialogue.kt | 32 + .../dialogue/GunnarHoldstromDialogue.kt | 34 + .../dialogue/JofridrMordstatterDialogue.kt | 47 + .../dialogue/KjedeligUppsenDialogue.kt | 32 + .../dialogue/LisseIsaaksonDialogue.kt | 38 + .../dialogue}/MawnisBurowgarDialogue.java | 4 +- .../dialogue/MortenHoldstromDialogue.kt | 38 + .../dialogue/SlugHemliggsenDialogue.kt | 31 + .../dialogue/ThakkradSigmundsonDialogue.kt | 32 + .../dialogue}/ThakkradYakDialogue.java | 6 +- .../dialogue/TrogenKonungardeDialogue.kt | 32 + .../neitiznot/handlers}/NeitiznotListeners.kt | 13 +- .../neitiznot/handlers}/NeitiznotZone.java | 6 +- .../neitiznot/handlers}/YakArmourPlugin.java | 8 +- .../fremennik/neitiznot/handlers}/YakNPC.kt | 2 +- .../dialogue/BjornAndEldgrimDialogues.kt | 52 + .../rellekka/dialogue/BlaninDialogue.kt | 44 + .../dialogue}/CouncilWorkerDialogue.kt | 18 +- .../dialogue}/CouncilWorkerDiaryDialogue.kt | 14 +- .../rellekka/dialogue/DronDialogue.kt | 44 + .../dialogue}/FishmongerRellekkaDialogue.kt | 18 +- .../rellekka/dialogue}/FurTraderDialogue.kt | 18 +- .../HuntingExpertRellekkaDialogue.kt | 38 +- .../dialogue/IngridHradsonDialogue.kt | 49 + .../rellekka/dialogue}/JarvaldDialogue.java | 6 +- .../dialogue/LonghallBouncerDialogue.kt | 44 + .../dialogue}/MariaGunnarsDialogue.java | 9 +- .../rellekka/dialogue/ReesoDialogue.kt | 41 + .../rellekka/dialogue}/TalkToChiefDialogue.kt | 20 +- .../rellekka/dialogue/VolfOlasfsonDialogue.kt | 48 + .../dialogue}/WaitingOnTheShowDialogues.kt | 14 +- .../rellekka/handlers}/FremennikGuards.kt | 4 +- .../rellekka/handlers}/RellekkaListeners.kt | 17 +- .../rellekka/handlers}/RellekkaUtils.kt | 4 +- .../rellekka/handlers}/RellekkaZone.java | 10 +- .../rellekka/handlers}/RockCrabNPC.java | 4 +- .../thefremenniktrials/AskeladdenDialogue.kt | 145 +++ .../ChieftanBrundtDialogue.kt | 338 +++++ .../CouncilWorkerFTDialogue.kt | 10 +- .../quest}/thefremenniktrials/Draugen.kt | 4 +- .../thefremenniktrials/FishermanDialogue.kt | 87 ++ .../FremennikSailorDialogue.kt | 80 ++ .../thefremenniktrials/FremennikTrials.kt | 4 +- .../HunterTalismanListener.kt | 12 +- .../quest}/thefremenniktrials/KoscheiNPC.kt | 419 ++++--- .../thefremenniktrials/KoscheiSession.kt | 140 +-- .../quest/thefremenniktrials/LalliDialogue.kt | 166 +++ .../thefremenniktrials/LonghallStageZone.kt | 3 +- .../quest/thefremenniktrials/ManniDialogue.kt | 201 +++ .../quest}/thefremenniktrials/OlafTheBard.kt | 82 +- .../thefremenniktrials/PeerTheSeerDialogue.kt | 263 ++++ .../thefremenniktrials/PoisonSalesman.kt | 12 +- .../SeerLockInterfaceListener.kt | 6 +- .../thefremenniktrials/SeersHouseListeners.kt | 32 +- .../thefremenniktrials/SigliTheHuntsman.kt | 66 +- .../thefremenniktrials/SigmundDialogue.kt | 146 +++ .../thefremenniktrials/SkulgrimenDialogue.kt | 103 ++ .../thefremenniktrials/SwensenTheNavigator.kt | 153 +++ .../TFTInteractionListeners.kt | 51 +- .../quest/thefremenniktrials/ThoraDialogue.kt | 129 ++ .../thefremenniktrials/ThorvaldDialogue.kt | 205 ++++ .../quest/thefremenniktrials/YrsaDialogue.kt | 105 ++ .../handlers}/DagannothKingNPC.java | 4 +- .../waterbirth/handlers}/SpinolypNPC.java | 8 +- .../handlers}/WaterBirthDungeonZone.java | 12 +- .../handlers}/WaterBirthIslandZone.java | 2 +- .../ardougne}/dialogue/ArdougneBaker.java | 3 +- .../dialogue/ArdougneShopKeeperPlugin.java | 4 +- .../dialogue/CaptainBarnabyDialogue.java | 6 +- .../ardougne/dialogue}/ChadwellDialogue.kt | 18 +- .../dialogue/GemMerchantDialogue.java | 4 +- .../dialogue/MonkeyChildThingZooDialogue.kt | 71 ++ .../dialogue/SilkMerchantPlugin.java | 6 +- .../ardougne}/dialogue/SilkTradeDialogue.java | 4 +- .../dialogue/SilverMechantPlugin.java | 4 +- .../ardougne}/dialogue/SpiceSellerPlugin.java | 4 +- .../ardougne/dialogue}/ZookeeperDialogue.kt | 30 +- .../handlers}/WildernessLeverPlugin.java | 10 +- .../quest/monksfriend/BrotherCedricNPC.kt | 122 ++ .../quest/monksfriend/BrotherOmadNPC.kt | 216 ++++ .../quest}/monksfriend/MonasteryMonkNPC.kt | 17 +- .../quest}/monksfriend/MonksFriend.kt | 132 +- .../sheepherder/GateInteractionHandler.java | 9 +- .../quest}/sheepherder/HalgriveDialogue.java | 4 +- .../quest}/sheepherder/HerderSheepNPC.java | 4 +- .../sheepherder/IncineratorHandler.java | 6 +- .../quest}/sheepherder/OrbonDialogue.java | 4 +- .../quest}/sheepherder/ProdActionHandler.java | 9 +- .../quest}/sheepherder/SheepHerder.java | 2 +- .../sheepherder/SheepPoisonHandler.java | 9 +- .../kandarin}/barcrawl/BarcrawlDialogue.java | 8 +- .../kandarin}/barcrawl/BarcrawlManager.java | 8 +- .../kandarin}/barcrawl/BarcrawlType.java | 4 +- .../catherby/dialogue}/ArheinDialogue.kt | 48 +- .../dialogue/CandleSellerPlugin.java | 4 +- .../catherby}/dialogue/HarryDialogue.java | 4 +- .../catherby}/dialogue/HicktonDialogue.java | 6 +- .../catherby}/dialogue/VanessaDialogue.java | 4 +- .../kandarin/dialogue}/EniolaDialogue.kt | 68 +- .../kandarin/dialogue}/EniolaListener.kt | 12 +- .../kandarin}/dialogue/GalahadDialogue.java | 3 +- .../dialogue}/OttoGodblessedDialogue.kt | 39 +- .../kandarin}/dialogue/StankersDialogue.java | 3 +- .../feldip}/dialogue/HuntingExpert.java | 4 +- .../gutanoth/handlers}/BogrogPlugin.java | 6 +- .../gutanoth/handlers}/BogrogPouchSwapper.kt | 10 +- .../gutanoth/handlers}/GutanothChestPlugin.kt | 12 +- .../feldip/ooglog/dialogue}/BalneaDialogue.kt | 22 +- .../ooglog/dialogue}/OgressBankerDialogue.kt | 30 +- .../quest}/chompybird/BloatedToadNPC.kt | 12 +- .../feldip/quest}/chompybird/ChompyBird.kt | 33 +- .../quest}/chompybird/ChompyBirdDialogues.kt | 162 +-- .../feldip/quest}/chompybird/ChompyBirdNPC.kt | 14 +- .../feldip/quest}/chompybird/ChompyHat.kt | 11 +- .../feldip/quest}/chompybird/RantzNPC.kt | 4 +- .../dialogue}/AluftGianneJrDialogue.kt | 18 +- .../dialogue}/AluftGianneSnrDialogue.kt | 20 +- .../dialogue}/BlurberryDialogue.kt | 10 +- .../dialogue/GnomeTrainerPlugin.java | 4 +- .../handlers}/GnomeStrongholdPlugin.java | 6 +- .../region/kandarin/guilds}/FishingGuild.java | 8 +- .../kandarin/guilds}/WizardGuildPlugin.java | 14 +- .../kandarin/handlers}/BeehivePlugin.java | 4 +- .../region/kandarin/handlers}/RasoloNPC.java | 4 +- .../handlers}/SinclairFlourBarrelPlugin.java | 4 +- .../kandarin/handlers}/StoneCircleZone.kt | 2 +- .../pisc/dialogue}/ArnoldLydsporDialogue.kt | 40 +- .../dialogue/MathiasFlaconryDialogue.java | 4 +- .../pisc/handlers}/SeaweedNetHandler.kt | 9 +- .../dwarfcannon/CaptainLawgofDialogue.java | 4 +- .../quest}/dwarfcannon/CaptainLawgofNPC.java | 2 +- .../quest}/dwarfcannon/DwarfCannon.java | 4 +- .../quest}/dwarfcannon/DwarfCannonPlugin.java | 12 +- .../quest}/dwarfcannon/LollkDialogue.java | 4 +- .../quest}/dwarfcannon/NulodionDialogue.java | 4 +- .../quest/dwarfcannon}/dmc/DMCHandler.java | 9 +- .../quest/dwarfcannon}/dmc/DMCRevolution.java | 2 +- .../quest/dwarfcannon}/dmc/DMCZone.java | 2 +- .../dmc/DwarfMultiCannonPlugin.java | 4 +- .../fishingcontest/BigDaveDialogue.java | 4 +- .../quest}/fishingcontest/BonzoDialogue.java | 6 +- .../quest}/fishingcontest/DwarfDialogue.java | 6 +- .../fishingcontest/FenceInteraction.java | 8 +- .../quest}/fishingcontest/FishingContest.java | 2 +- .../FishingContestCutscene.java | 8 +- .../FishingSpotInteraction.java | 8 +- .../fishingcontest/ForesterDialogue.java | 4 +- .../fishingcontest/GarlicPipeInteraction.java | 6 +- .../fishingcontest/GateInteraction.java | 6 +- .../quest}/fishingcontest/JoshuaDialogue.java | 4 +- .../quest}/fishingcontest/MorrisDialogue.java | 6 +- .../SinisterStrangerDialogue.java | 4 +- .../fishingcontest/StairInteraction.java | 6 +- .../fishingcontest/VineInteraction.java | 6 +- .../quest}/fishingcontest/grandpaJack.java | 4 +- .../kandarin/quest}/tree/BallistaDialogue.kt | 8 +- .../quest}/tree/CommanderMontaiDialogue.kt | 8 +- .../kandarin/quest}/tree/ElkoyDialogue.kt | 17 +- .../quest}/tree/KhazardWarlordDialogue.kt | 10 +- .../kandarin/quest}/tree/KhazardWarlordNPC.kt | 13 +- .../quest}/tree/KingBolrenDialogue.kt | 17 +- .../quest}/tree/LieutenantSchepburDialogue.kt | 6 +- .../quest}/tree/LocalGnomeDialogue.kt | 6 +- .../kandarin/quest}/tree/RemsaiDialogue.kt | 10 +- .../quest}/tree/TrackerGnomeOneDialogue.kt | 8 +- .../quest}/tree/TrackerGnomeThreeDialogue.kt | 8 +- .../quest}/tree/TrackerGnomeTwoDialogue.kt | 8 +- .../kandarin/quest}/tree/TreeGnomeVillage.kt | 6 +- .../quest}/tree/TreeGnomeVillageListeners.kt | 24 +- .../quest/waterfall}/AlmeraDialogue.java | 8 +- .../waterfall}/BookOnBaxtorianPlugin.java | 12 +- .../quest/waterfall}/GolrieDialogue.java | 10 +- .../quest/waterfall}/HadleyDialogue.java | 10 +- .../quest/waterfall}/HudonDialogue.java | 8 +- .../waterfall}/MithrilSeedsDialogue.java | 5 +- .../quest/waterfall}/MithrilSeedsPlugin.java | 4 +- .../kandarin/quest/waterfall}/WaterFall.java | 4 +- .../quest}/waterfall/WaterfallListeners.kt | 12 +- .../quest/waterfall}/WaterfallPlugin.java | 12 +- .../waterfall}/WaterfallTreeDialogue.java | 6 +- .../seers}/dialogue/CamelotGuardDialogue.java | 4 +- .../seers/dialogue}/FionellaDialogue.kt | 18 +- .../seers/dialogue}/GeoffreyDialogue.kt | 8 +- .../dialogue/IgnatiusVulcanDialogue.java | 7 +- .../seers/dialogue/LegendsGuardDialogue.kt | 47 + .../dialogue/PhantuwtiFantstuwiFarSight.java | 4 +- .../dialogue/SeerBartenderDialogue.java | 4 +- .../seers}/dialogue/SeerDialoguePlugin.java | 3 +- .../diary}/SeersVillageAchivementDiary.kt | 45 +- .../seers/handlers}/BuyCrateOptionPlugin.java | 6 +- .../seers/handlers}/CamelotNodePlugin.java | 2 +- .../seers/handlers}/MysteriousStatueZone.kt | 4 +- .../seers/handlers}/RangingGuildPlugin.java | 16 +- .../handlers}/SeersCageUnlockPlugin.java | 2 +- .../seers/handlers}/SeersCourthouseZone.kt | 4 +- .../elementalworkshop/BatteredBookHandler.kt | 16 +- .../quest}/elementalworkshop/EWListeners.kt | 30 +- .../seers/quest/elementalworkshop/EWUtils.kt | 115 ++ .../elementalworkshop/ElementalRockNPC.kt | 12 +- .../ElementalWorkshopQuest.kt | 12 +- .../elementalworkshop/SlashedBookHandler.kt | 14 +- .../quest/merlinsquest/ArheinMCDialogue.kt | 29 + .../quest/merlinsquest}/BeggarDialogue.java | 6 +- .../merlinsquest}/CandleMakerDialogue.java | 9 +- .../merlinsquest}/CrateCutscenePlugin.java | 8 +- .../merlinsquest}/KingArthurDialogue.java | 6 +- .../quest/merlinsquest}/MerlinCrystal.java | 6 +- .../MerlinCrystalOptionPlugin.java | 2 +- .../merlinsquest}/MerlinCrystalPlugin.java | 22 +- .../merlinsquest}/RenegadeKnightDialogue.java | 6 +- .../merlinsquest}/SirGawainDialogue.java | 4 +- .../quest/merlinsquest}/SirKayDialogue.java | 4 +- .../merlinsquest}/SirLancelotDialogue.java | 4 +- .../seers/quest/merlinsquest}/SirLucan.java | 6 +- .../quest/merlinsquest}/SirMordredNPC.java | 4 +- .../quest/merlinsquest}/SirPalomedes.java | 6 +- .../quest}/merlinsquest/TheLadyOfTheLake.kt | 14 +- .../quest/merlinsquest}/ThrantaxDialogue.java | 8 +- .../dialogue}/BrotherMaledictDialogue.kt | 12 +- .../witchhaven/dialogue/CarolineDialogue.kt | 41 + .../witchhaven/dialogue/ColONiallDialogue.kt | 56 + .../dialogue/EzekialLovecraftDialogue.kt | 64 + .../witchhaven/dialogue/HolgartDialogue.kt | 43 + .../witchhaven/dialogue}/JebDialogue.kt | 12 +- .../witchhaven/dialogue}/MayorHobbDialogue.kt | 12 +- .../dialogue/WitchhavenVillageDialogue.kt | 78 ++ .../yanille}/dialogue/AleckDialogue.java | 3 +- .../yanille}/dialogue/FenitasDialogue.java | 4 +- .../yanille}/dialogue/LeonDialogue.java | 4 +- .../yanille}/dialogue/MagicStoreDialogue.java | 3 +- .../handlers}/YanilleAgilityDungeon.kt | 21 +- .../dialogue/AlfonseWaiterDialogue.java | 182 +-- .../dialogue/BrimhavenBartenderDialogue.java | 4 +- .../dialogue/BrimhavenPirateDialogue.java | 4 +- .../brimhaven}/dialogue/CapnIzzyDialogue.java | 6 +- .../brimhaven}/dialogue/DavonDialogue.java | 4 +- .../brimhaven}/dialogue/GarvDialogue.java | 4 +- .../brimhaven}/dialogue/GruborDialogue.java | 4 +- .../brimhaven}/dialogue/LubufuDialogue.java | 4 +- .../dialogue/PirateJackieDialogue.java | 5 +- .../brimhaven}/dialogue/SandyDialogue.java | 4 +- .../brimhaven}/dialogue/SanibochDialogue.java | 4 +- .../handlers}/BrimhavenDungeonListeners.kt | 16 +- .../brimhaven/handlers}/BrimhavenUtils.kt | 19 +- .../brimhaven/handlers}/SanibochPlugin.java | 2 +- .../dialogue/CaptainShanksDialogue.java | 5 +- .../dialogue/CustomsOfficerDialogue.java | 6 +- .../dialogue/JungleForesterDialogue.java | 5 +- .../dialogue/KaramajaManDialogue.java | 4 +- .../karamja}/dialogue/LuthasDialogue.java | 4 +- .../karamja}/dialogue/MonkeyDialogue.java | 4 +- .../karamja}/dialogue/ZamboDialogue.java | 4 +- .../karamja/diary}/KaramjaAchievementDiary.kt | 34 +- .../handlers}/BananaCrateDialogue.java | 3 +- .../karamja/handlers}/CairnIslandZone.java | 2 +- .../handlers}/CustomsOfficerPlugin.java | 2 +- .../karamja/handlers}/JungleBushHandler.kt | 10 +- .../handlers}/KaramajaOptionPlugin.java | 12 +- .../handlers}/MossGiantRopePlugin.java | 4 +- .../karamja/handlers}/TribesmanNPC.java | 4 +- .../quest}/junglepotion/JunglePotion.java | 10 +- .../junglepotion/JunglePotionPlugin.java | 8 +- .../quest}/junglepotion/TrufitusDialogue.java | 6 +- .../quest/tribaltotem/ArdougneGuideBook.kt | 163 +++ .../quest/tribaltotem/CrompertyDialogue.kt | 131 ++ .../quest/tribaltotem/GPDTEmployeeDialogue.kt | 41 + .../quest/tribaltotem/HoracioDialogue.kt | 58 + .../quest/tribaltotem/KangaiMauDialogue.kt | 91 ++ .../TTDoorCodeInterfaceListener.kt | 10 +- .../tribaltotem/TribalTotemListeners.kt | 18 +- .../quest}/tribaltotem/TribalTotemQuest.kt | 8 +- .../shilo/dialogue}/FernaheiDialogue.kt | 18 +- .../shilo}/dialogue/KalebParamaya.java | 4 +- .../karamja/shilo/dialogue}/ObliDialogue.kt | 16 +- .../shilo}/dialogue/SeravelDialogue.java | 3 +- .../shilo/handlers}/BrokenCartBypass.java | 4 +- .../shilo/handlers}/ShiloVillagePlugin.java | 6 +- .../taibwo/dialogue}/GabootyDialogue.kt | 47 +- .../taibwo}/dialogue/JiminuaDialogue.java | 6 +- .../taibwo/handlers}/GabootyTrade.java | 6 +- .../tzhaar/handlers}/TzHaarMejJah.java | 10 +- .../tzhaar/handlers}/TzHaarMejKah.java | 6 +- .../karamja/tzhaar/handlers}/TzRekJadNPC.java | 12 +- .../tzhaar/handlers}/TzhaarCityPlugin.java | 6 +- .../tzhaar/handlers}/TzhaarFightCaveNPC.java | 6 +- .../handlers}/TzhaarFightCavesPlugin.java | 16 +- .../handlers}/TzhaarFightPitsPlugin.java | 8 +- .../karamja/tzhaar/handlers}/TzhaarZone.java | 2 +- .../bananaplantation/BonzaraDialogue.kt | 54 + .../dialogue}/dungeon/ZooknockDialogue.kt | 26 +- .../dialogue}/dungeon/ZooknockDialogueFile.kt | 15 +- .../dialogue}/marim/AberabDialogue.kt | 12 +- .../apeatoll/dialogue/marim/DagaDialogue.kt | 62 + .../dialogue}/marim/ElderGuardDialogue.kt | 26 +- .../dialogue}/marim/MuruwoiDialogue.kt | 12 +- .../quest/monkeymadness}/CrateDialogues.kt | 6 +- .../quest/monkeymadness}/CrateHandler.kt | 11 +- .../misc/crandor/handlers}/CrandorZone.java | 2 +- .../handlers}/EnchantedValleyListeners.kt | 8 +- .../misc/entrana}/dialogue/CaveMonk.java | 4 +- .../misc/entrana}/dialogue/ConeDialogue.java | 4 +- .../entrana}/dialogue/EntranaChurchMonk.java | 4 +- .../entrana}/dialogue/FrincosDialogue.java | 4 +- .../dialogue/FritzGlassBlowerDialogue.java | 4 +- .../dialogue/HighPriestEntranaDialogue.kt | 68 ++ .../misc/entrana/dialogue/MazionDialogue.kt | 41 + .../handlers}/EntranaObjectPlugin.java | 4 +- .../dialogue}/FishmongerEtcDialogue.kt | 13 +- .../keldagrim/dialogue/AgmundiDialogue.kt | 67 + .../keldagrim/dialogue}/BlackGuardDialogue.kt | 8 +- .../dialogue}/CartConductorDialogue.kt | 17 +- .../dialogue}/DwarvenBoatmanDialogue.kt | 12 +- .../keldagrim/dialogue/InnKeeperDialogue.kt | 57 + .../keldagrim/dialogue}/JorzikDialogue.kt | 12 +- .../misc/keldagrim/dialogue}/NolarDialogue.kt | 16 +- .../misc/keldagrim/dialogue}/OrdanDialogue.kt | 15 +- .../misc/keldagrim/dialogue}/Reinald.kt | 8 +- .../handlers}/KeldagrimCartMethods.kt | 4 +- .../keldagrim/handlers}/KeldagrimPlugin.kt | 13 +- .../ReinaldSmithingEmporiumInterface.kt | 2 +- .../miscellania/dialogue}/AlvissDialogue.kt | 22 +- .../miscellania/dialogue}/DerrikDialogue.kt | 18 +- .../miscellania/dialogue/DonalDialogue.kt | 52 + .../misc/miscellania/dialogue/FerdDialogue.kt | 66 + .../miscellania/dialogue}/FinnDialogue.kt | 20 +- .../dialogue/FishmongerMiscDialogue.kt | 42 + .../dialogue}/FlowerGirlDialogue.kt | 24 +- .../miscellania/dialogue}/FullangrDialogue.kt | 18 +- .../dialogue}/GreengrocerMiscDialogue.kt | 12 +- .../miscellania/dialogue/HallaDialogue.kt | 70 ++ .../miscellania/dialogue}/JariDialogue.kt | 20 +- .../dialogue/KjallakOnChopDialogue.kt | 5 +- .../dialogue}/MiscCitizenGoodDayDialogue.kt | 14 +- .../miscellania/dialogue}/OsvaldDialogue.kt | 22 +- .../misc/miscellania/dialogue/RunaDialogue.kt | 77 ++ .../miscellania/dialogue}/ThorodinDialogue.kt | 26 +- .../misc/mosle/dialogue/CharleyDialogue.kt | 77 ++ .../misc/mosle}/dialogue/MamaDialogue.java | 4 +- .../misc/mosle}/dialogue/PatchyDialogue.java | 4 +- .../piratecove/dialogue/BeefyBurnsDialogue.kt | 43 + .../piratecove/dialogue/DaveyBoyDialogue.kt | 51 + .../dialogue/EagleEyeShultzDialogue.kt | 42 + .../dialogue/LecherousLeeDialogue.kt | 107 ++ .../dialogue/BankerTutorDialogue.java | 3 +- .../dialogue}/SkipTutorialDialogue.kt | 17 +- .../dialogue}/SurvivalExpertDialogue.kt | 21 +- .../TutorialCombatInstructorDialogue.kt | 29 +- .../TutorialFinanceAdvisorDialogue.kt | 58 + .../dialogue}/TutorialMagicTutorDialogue.kt | 40 +- .../dialogue}/TutorialMasterChefDialogue.kt | 21 +- .../TutorialMiningInstructorDialogue.kt | 35 +- .../dialogue/TutorialPrayerDialogue.kt | 69 ++ .../dialogue}/TutorialQuestGuideDialogue.kt | 27 +- .../dialogue}/TutorialRSGuideDialogue.kt | 29 +- .../tutisland/handlers}/RatTutorialNPC.java | 2 +- .../misc/tutisland/handlers}/SkippyNPC.java | 2 +- .../handlers}/TutorialEventReceivers.kt | 14 +- .../handlers}/TutorialFurnaceListener.kt | 12 +- .../tutisland/handlers}/TutorialListeners.kt | 65 +- .../tutisland/handlers}/TutorialLoginCheck.kt | 6 +- .../misc/tutisland/handlers}/TutorialStage.kt | 14 +- .../handlers/iface}/CharacterDesign.java | 7 +- .../misc/zanaris/dialogue/BlaecDialogue.kt | 42 + .../zanaris/dialogue/CoOrdinatorDialogue.kt | 47 + .../zanaris/dialogue}/FairyChefDialogue.kt | 12 +- .../misc/zanaris/dialogue/FairyDialogue.kt | 53 + .../misc/zanaris/dialogue/FairyFixit.kt | 72 ++ .../dialogue}/FairyShopAssistantDialogue.kt | 14 +- .../misc/zanaris/handlers}/FairyRingPlugin.kt | 10 +- .../misc/zanaris/handlers}/ZanarisPlugin.java | 12 +- .../dialogue/BarbarianDialogue.java | 4 +- .../dialogue/GunthorBraveDialogue.java | 3 +- .../barbvillage}/dialogue/LitaraDialogue.java | 4 +- .../barbvillage}/dialogue/PeksaDialogue.java | 4 +- .../barbvillage}/dialogue/SigurdDialogue.java | 4 +- .../barbvillage/handlers}/BarbarianNPC.java | 2 +- .../stronghold/BoxOfHealthDialogue.java | 4 +- .../stronghold}/CatableponNPC.java | 8 +- .../stronghold/CradleOfLifeDialogue.java | 6 +- .../stronghold/GiftOfPeaceDialogue.java | 4 +- .../stronghold/GrainOfPlentyDialogue.java | 4 +- .../stronghold}/SkullSceptreDialogue.java | 3 +- .../stronghold/StrongHoldSecurityPlugin.java | 16 +- .../playersafety/GuardDialoguePlugin.java | 10 +- .../playersafety/PSOptionHandler.java | 28 +- .../playersafety/PlayerSafetyTest.java | 6 +- .../playersafety/ProfessorHenryDialogue.java | 6 +- .../playersafety/SafetyMapZone.java | 2 +- .../StrongHoldOfPlayerSafetyPlugin.java | 4 +- .../stronghold/playersafety}/Student.java | 2 +- .../dialogue/HoodedMonkDialogue.java | 4 +- .../dialogue/ResearcherDialogue.java | 6 +- ...rchaeologistcalExpertUsedOnDialogueFile.kt | 12 +- .../digsite/dialogue}/ElissaDialogue.kt | 22 +- .../dorgeshuun/dialogue}/BarlakDialogue.kt | 45 +- .../dorgeshuun/dialogue/BartakDialogue.kt | 44 + .../dialogue}/CrateGoblinDialogue.kt | 12 +- .../dorgeshuun/dialogue}/DartogDialogue.kt | 18 +- .../dorgeshuun/dialogue}/DurgokDialogue.kt | 22 +- .../dorgeshuun/dialogue}/MistagDialogue.kt | 20 +- .../dialogue}/randomChildrenDialogue.kt | 18 +- .../quest}/thelosttribe/CaveGoblinMinerNPC.kt | 2 +- .../quest}/thelosttribe/CaveRockHandler.kt | 2 +- .../quest}/thelosttribe/CaveZone.kt | 4 +- .../thelosttribe/DorgCbowEquipPlugin.kt | 2 +- .../thelosttribe/DukeHoracioTLTDialogue.kt | 32 +- .../quest}/thelosttribe/GoblinFollower.kt | 4 +- .../thelosttribe/HistoryOfTheGoblinRace.kt | 6 +- .../quest}/thelosttribe/KazgarDialogue.kt | 10 +- .../quest}/thelosttribe/LostTribe.kt | 2 +- .../quest}/thelosttribe/LostTribeCutscene.kt | 12 +- .../thelosttribe/LostTribeOptionHandler.kt | 6 +- .../quest}/thelosttribe/MistagLTDialogue.kt | 12 +- .../quest}/thelosttribe/PickaxeOnRubble.kt | 6 +- .../quest}/thelosttribe/PickpocketSigmund.kt | 15 +- .../thelosttribe/SigmundChestHandler.kt | 2 +- .../draynor}/dialogue/AggieDialogue.java | 4 +- .../draynor}/dialogue/DiangoDialogue.java | 4 +- .../draynor}/dialogue/DraynorBankGuard.java | 6 +- .../draynor}/dialogue/FortunatoDialogue.java | 4 +- .../draynor}/dialogue/JoeGuardDialogue.java | 4 +- .../draynor}/dialogue/LeelaDialogue.java | 3 +- .../dialogue/MartinTheMasterGardener.java | 6 +- .../draynor}/dialogue/MissSchismDialogue.java | 4 +- .../draynor}/dialogue/MorganDialogue.java | 4 +- .../draynor}/dialogue/OliviaDialogue.java | 4 +- .../draynor}/dialogue/PrinceAliDialogue.java | 5 +- .../dialogue/ProfessorOddensteinPlugin.java | 8 +- .../draynor}/dialogue/VeronicaDialogue.java | 4 +- .../draynor}/dialogue/WiseOldManDialogue.java | 3 +- .../draynor/handlers}/DBRCutscenePlugin.java | 12 +- .../draynor/handlers}/DraynorManorPlugin.java | 12 +- .../DraynorMansionCourtyardZone.java | 2 +- .../draynor/handlers}/DraynorMarketZone.java | 2 +- .../draynor/handlers}/DraynorNodePlugin.java | 12 +- .../draynor/handlers}/DraynorTreeNPC.java | 4 +- .../handlers}/ManorFountainDialogue.java | 3 +- .../draynor/quest/anma}/AliceDialogue.java | 4 +- .../quest/anma}/AliceHusbandDialogue.java | 24 +- .../draynor/quest/anma}/AnimalMagnetism.java | 12 +- .../quest/anma}/AnimalMagnetismPlugin.java | 10 +- .../draynor/quest}/anma/AnmaCutscene.kt | 8 +- .../draynor/quest/anma}/AvaDialogue.java | 6 +- .../draynor/quest/anma}/AvasDevice.kt | 20 +- .../draynor/quest/anma}/OldCronDialogue.java | 8 +- .../draynor/quest/anma}/WitchDialogue.java | 4 +- .../draynor/quest/ernest}/ErnestDialogue.java | 4 +- .../quest/ernest}/ErnestTheChicken.java | 4 +- .../quest/ernest}/ErnestTheChickenPlugin.java | 8 +- .../draynor/quest/vampire}/VampireSlayer.java | 2 +- .../quest/vampire}/VampireSlayerNPC.java | 2 +- .../quest/vampire}/VampireSlayerPlugin.java | 2 +- .../dialogue}/BrotherBordissDialogue.kt | 12 +- .../dialogue/EdgevilleMonkDialogue.java | 4 +- .../dialogue/EdgevilleShopKeeperDialogue.java | 4 +- .../edgeville}/dialogue/HariDialogue.java | 4 +- .../handlers}/EdgevilleNodePlugin.java | 8 +- .../edgeville/handlers}/PosterListener.kt | 12 +- .../lumbridge}/dialogue/BarfyBill.java | 3 +- .../lumbridge/dialogue}/BobDialogue.java | 10 +- .../dialogue/CookingTutorDialogue.java | 4 +- .../dialogue/CraftingTutorDialogue.java | 4 +- .../lumbridge}/dialogue/DonieDialogue.java | 6 +- .../dialogue/DoomsayerDialogue.java | 4 +- .../dialogue}/DukeHoracioDialogue.kt | 29 +- .../dialogue/ExplorerJackDialogue.java | 4 +- .../dialogue/FishingTutorDialogue.java | 4 +- .../lumbridge}/dialogue/FredTheFarmer.java | 6 +- .../lumbridge}/dialogue/GeeDialogue.java | 4 +- .../dialogue/HansDialoguePlugin.java | 6 +- .../lumbridge}/dialogue/HarlanDialogue.java | 6 +- .../dialogue}/JimmyTheChiselDialogue.kt | 12 +- .../dialogue/LumbridgeGuideDialogue.kt | 127 ++ .../dialogue/LumbridgeJailGuard.java | 4 +- .../dialogue/LumbridgeSwampArcher.java | 4 +- .../dialogue/LumbridgeSwampMonk.java | 4 +- .../dialogue/LumbridgeSwampWizard.java | 4 +- .../dialogue/MagicTutorDialogue.java | 4 +- .../dialogue/MiningtutorDialogue.java | 4 +- .../dialogue/PrayerTutorDialogue.java | 4 +- .../dialogue/RangedTutorDialogue.java | 4 +- .../dialogue/SethGroatsDialogue.java | 4 +- .../lumbridge}/dialogue/SigmundDialogue.java | 6 +- .../dialogue/WoodsmanTutorDialogue.java | 4 +- .../diary}/LumbridgeAchivementDiary.kt | 81 +- .../lumbridge/diary}/NedDiaryDialogue.kt | 4 +- .../lumbridge/handlers}/BobRepairItem.java | 7 +- .../lumbridge/handlers}/ChurchSignListener.kt | 12 +- .../handlers}/CowFieldSignListener.kt | 10 +- .../lumbridge/handlers}/CowPenZone.java | 4 +- .../handlers}/CulinoChestListener.kt | 15 +- .../lumbridge/handlers}/CulinomancerShop.kt | 14 +- .../handlers}/DoomsayerTogglePlugin.java | 2 +- .../lumbridge/handlers}/FredChestListener.kt | 9 +- .../handlers}/FredsFarmHouseZone.java | 2 +- .../handlers}/GameInstructorPlugin.java | 2 +- .../handlers}/GnomeCopterSignListener.kt | 9 +- .../lumbridge/handlers}/HamHideoutPlugin.java | 6 +- .../lumbridge/handlers}/HansNPC.java | 2 +- .../handlers}/LumbridgeBasementPlugin.java | 6 +- .../handlers}/LumbridgeInstructorNPC.java | 2 +- .../handlers}/LumbridgeNodePlugin.java | 8 +- .../handlers}/LumbridgeSwampHolePlugin.java | 4 +- .../lumbridge/handlers}/OrganCutScene.java | 8 +- .../handlers}/TormentedDemonNPC.java | 6 +- .../gnomecopter/GCInformationSign.java | 2 +- .../gnomecopter/GnomeCopterActivity.java | 7 +- .../quest}/cooksassistant/CooksAssistant.kt | 2 +- .../cooksassistant/GillieGroatsDialogue.kt | 73 ++ .../cooksassistant/LumbridgeCookDialogue.kt | 283 +++++ .../cooksassistant/MillieMillerDialogue.kt | 68 ++ .../quest}/lostcity/DramenTreeListener.kt | 15 +- .../lumbridge/quest}/lostcity/LostCity.kt | 4 +- .../quest}/lostcity/LostCityListeners.kt | 15 +- .../quest/lostcity/ShamusDialogue.kt | 70 ++ .../quest}/lostcity/ShamusTreeListener.kt | 17 +- .../quest}/lostcity/TreeSpiritNPC.kt | 8 +- .../quest/lostcity/WarriorDialogue.kt | 100 ++ .../runemysteries/DukeHoracioRMDialogue.kt | 8 +- .../quest}/runemysteries/RuneMysteries.java | 2 +- .../quest/sheepshearer}/SheepShearPlugin.java | 4 +- .../quest/sheepshearer}/SheepShearer.java | 2 +- .../FatherAereckDialogue.java | 4 +- .../FatherUhrneyDialogue.java | 4 +- .../therestlessghost/RestlessGhost.java | 6 +- .../RestlessGhostDialogue.java | 6 +- .../therestlessghost/RestlessGhostPlugin.java | 4 +- .../therestlessghost/RestlessGhostSkull.java | 2 +- .../therestlessghost/SkullDropPlugin.java | 2 +- .../dialogue/AbbotLangleyDialogue.java | 3 +- .../dialogue/BrotherJeredDialogue.java | 5 +- .../monastery/handlers}/MonasteryPlugin.java | 4 +- .../quest}/asoulsbane/ASoulsBane.java | 4 +- .../quest}/asoulsbane/ASoulsBanePlugin.java | 4 +- .../asoulsbane/SoulsBaneLaunaDialogue.kt | 4 +- .../priestinperil}/DoorPerilDialogue.java | 6 +- .../quest/priestinperil}/DrezelDialogue.java | 4 +- .../DrezelMonumentDialogue.java | 12 +- .../priestinperil/KingRoaldPIPDialogue.kt | 8 +- .../priestinperil}/MonkOfZamorakNPC.java | 2 +- .../quest}/priestinperil/PriestInPeril.java | 2 +- .../PriestInPerilOptionPlugin.java | 4 +- .../priestinperil/PriestInPerilUseListener.kt | 11 +- .../priestinperil}/TempleGuardianNPC.java | 2 +- .../varrock}/dialogue/AeonisigRaispher.java | 3 +- .../varrock}/dialogue/AmbassadorFernook.java | 4 +- .../varrock}/dialogue/ApothecaryDialogue.java | 553 ++++----- .../varrock/dialogue}/AsyffDialogue.kt | 18 +- .../varrock}/dialogue/BaraekDialogue.java | 3 +- .../varrock}/dialogue/BennyDialogue.java | 3 +- .../varrock}/dialogue/BobBarterDialogue.java | 3 +- .../varrock}/dialogue/DrHarlowDialogue.java | 4 +- .../varrock}/dialogue/DraulLeptoc.java | 4 +- .../varrock}/dialogue/EllamariaDialogue.java | 4 +- .../varrock/dialogue}/ElsieDialogue.kt | 93 +- .../dialogue/FaridMorrisaneDialogue.java | 4 +- .../dialogue/FatherLawrenceDialogue.java | 364 +++--- .../varrock}/dialogue/GertrudeDialogue.java | 4 +- .../dialogue/GertrudesCatDialogue.java | 5 +- .../varrock}/dialogue/GrandExchangeClerk.java | 10 +- .../varrock}/dialogue/GrandExchangeTutor.java | 6 +- .../dialogue/GuidorsWifeDialogue.java | 4 +- .../varrock}/dialogue/HeadChefDialogue.java | 6 +- .../varrock}/dialogue/HofutThandDialogue.java | 4 +- .../dialogue/HooknosedJackDialogue.java | 4 +- .../varrock}/dialogue/HorvikDialogue.java | 4 +- .../varrock/dialogue}/IffieDialogue.kt | 8 +- .../InformationclerkMuseumDialogue.java | 5 +- .../varrock}/dialogue/KanelDialogue.java | 4 +- .../varrock/dialogue}/KingRoaldDialogue.kt | 20 +- .../varrock}/dialogue/LarxusDialogue.java | 3 +- .../varrock}/dialogue/LoweDialogue.java | 4 +- .../varrock}/dialogue/MurkyMattDialogue.java | 4 +- .../dialogue}/MuseumGuardDialogue.java | 8 +- .../dialogue}/MuseumGuardVarrockDialogue.java | 6 +- .../dialogue}/MuseumHistorianDialogue.java | 6 +- .../varrock}/dialogue/PhillipaDialogue.java | 4 +- .../varrock}/dialogue/PhilopDialogue.java | 4 +- .../varrock}/dialogue/PoxDialogue.java | 4 +- .../dialogue/ReloboBlinyoDialogue.java | 4 +- .../dialogue/RomilyWeaklaxDialogue.java | 5 +- .../varrock}/dialogue/SaniDialogue.java | 6 +- .../varrock}/dialogue/SawmillOperator.java | 3 +- .../varrock}/dialogue/ScavvoDialogue.java | 4 +- .../dialogue}/SchoolchildMuseumDialogue.java | 6 +- .../varrock}/dialogue/ShilopDialogue.java | 4 +- .../dialogue/SmithingApparenticeDialogue.java | 4 +- .../varrock}/dialogue/SurokMagis.java | 4 +- .../varrock}/dialogue/TarquinDialogue.java | 4 +- .../varrock}/dialogue/TeaSellerDialogue.java | 4 +- .../TeacherandPupilMuseumDialogue.java | 6 +- .../TeacherandPupilMuseumMaleDialogue.java | 6 +- .../varrock/dialogue}/ThessaliaDialogue.kt | 43 +- .../varrock}/dialogue/TrampDialogue.java | 4 +- .../varrock}/dialogue/ValaineDialogue.java | 4 +- .../dialogue}/VarrockBartenderDialogue.java | 6 +- .../dialogue}/VarrockCookDialogue.java | 6 +- .../VarrockEastBartenderDialogue.java | 8 +- .../dialogue}/VarrockGateGuardDialogue.java | 6 +- .../dialogue}/VarrockSwordShopDialogue.java | 6 +- .../varrock}/dialogue/WiloughDialogue.java | 4 +- .../surok/DakhThoulanAegisDialogue.java | 4 +- .../dialogue}/surok/HuntForSurokPlugin.java | 4 +- .../surok/MishkalunDornDialogue.java | 4 +- .../dialogue}/surok/SilasDahcsnuDialogue.java | 4 +- .../dialogue}/surok/SurokMagisDialogue.java | 8 +- .../varrock/diary}/RatBurgissDiaryDialogue.kt | 17 +- .../varrock/diary}/VarrockAchivementDiary.kt | 51 +- .../misthalin/varrock/handlers}/BennyNPC.java | 2 +- .../varrock/handlers}/BrassKeyDoorPlugin.java | 4 +- .../handlers}/ChampionsArenaPlugin.java | 2 +- .../varrock/handlers}/ChampionsGuildDoor.kt | 11 +- .../handlers}/ChefGuildDoorPlugin.java | 4 +- .../varrock/handlers}/GECutscenePlugin.java | 12 +- .../handlers}/GrandExchangePlugin.java | 8 +- .../handlers}/GrandExchangeShortcut.kt | 8 +- .../varrock/handlers}/GuidorDoorPlugin.java | 2 +- .../handlers}/LumberYardCratePlugin.java | 2 +- .../varrock/handlers}/MuseumGatePlugin.java | 4 +- .../varrock/handlers}/RedberryBushPlugin.java | 2 +- .../handlers}/SawmillOptionPlugin.java | 2 +- .../handlers}/ShooAwayStrayDogPlugin.java | 2 +- .../varrock/handlers}/StrayDogNPC.java | 2 +- .../varrock/handlers}/ThessaliaPlugin.java | 2 +- .../varrock/handlers}/VarrockBrokenCart.java | 2 +- .../varrock/handlers}/VarrockGuardSignpost.kt | 14 +- .../varrock/handlers}/VarrockNodePlugin.java | 10 +- .../misthalin/varrock/handlers}/ZaffPlugin.kt | 56 +- .../varrock/quest}/allfiredup/AllFiredUp.kt | 6 +- .../allfiredup/BlazeSharpeyeDialogue.kt | 12 +- .../quest}/allfiredup/KingRoaldAFUDialogue.kt | 8 +- .../quest}/allfiredup/SquireFyreDialogue.kt | 12 +- .../quest}/demonslayer/DSCutsceneTrigger.kt | 6 +- .../demonslayer/DSlayerDrainPlugin.java | 2 +- .../quest}/demonslayer/DemonSlayer.java | 8 +- .../demonslayer/DemonSlayerCutscene.java | 15 +- .../quest}/demonslayer/DemonSlayerPlugin.java | 4 +- .../quest}/demonslayer/GypsyArisDialogue.java | 12 +- .../quest}/demonslayer/SirPyrsinDialogue.java | 6 +- .../quest}/demonslayer/TraibornDialogue.java | 8 +- .../demonslayer/WallyCutscenePlugin.java | 8 +- .../quest/dragonslayer}/CabinBoyJenkins.java | 3 +- .../quest}/dragonslayer/CrandorMapPlugin.java | 2 +- .../quest/dragonslayer}/DSChestDialogue.java | 5 +- .../varrock/quest/dragonslayer/DSListeners.kt | 15 + .../dragonslayer/DSMagicDoorPlugin.java | 2 +- .../varrock/quest}/dragonslayer/DSNedNPC.java | 2 +- .../quest}/dragonslayer/DragonSlayer.java | 11 +- .../dragonslayer/DragonSlayerCutscene.java | 14 +- .../dragonslayer/DragonSlayerPlugin.java | 6 +- .../dragonslayer/DukeHoracioDSDialogue.kt | 11 +- .../quest}/dragonslayer/ElvargNPC.java | 6 +- .../dragonslayer/GuildmasterDialogue.java | 4 +- .../quest}/dragonslayer/MazeDemonNPC.java | 2 +- .../quest}/dragonslayer/MazeGhostNPC.java | 2 +- .../quest}/dragonslayer/MazeSkeletonNPC.java | 2 +- .../quest}/dragonslayer/MazeZombieNPC.java | 2 +- .../quest}/dragonslayer/MeldarMadNPC.java | 6 +- .../quest}/dragonslayer/NedDSDialogue.kt | 10 +- .../quest}/dragonslayer/NedDialogue.kt | 21 +- .../quest}/dragonslayer/OziachDialogue.java | 4 +- .../dragonslayer/WormbrainDialogue.java | 4 +- .../quest}/dragonslayer/WormbrainNPC.java | 2 +- .../quest}/dragonslayer/ZombieRatNPC.java | 2 +- .../quest}/familycrest/AvanDialogue.kt | 422 +++---- .../quest}/familycrest/BootDialogue.kt | 144 +-- .../quest}/familycrest/CalebDialogue.kt | 482 ++++---- .../quest}/familycrest/ChronozonCaveZone.kt | 132 +- .../quest}/familycrest/ChronozonNPC.kt | 212 ++-- .../familycrest/CrestCombiningInteration.kt | 106 +- .../quest}/familycrest/DimintheisDialogue.kt | 10 +- .../varrock/quest}/familycrest/FamilyCrest.kt | 264 ++-- .../JohnathonAntiPoisonInteraction.kt | 64 +- .../quest}/familycrest/JohnathonDialogue.kt | 254 ++-- .../familycrest/PerfectGoldSmeltingHandler.kt | 96 +- .../familycrest/PerfectJewelryHandler.kt | 128 +- .../familycrest/PerfectJewelryOnUseHandler.kt | 56 +- .../quest}/familycrest/SwapGauntletsHelper.kt | 4 +- .../familycrest/WitchavenLeverInteraction.kt | 9 +- .../varrock/quest/gertrude}/FluffNPC.java | 2 +- .../varrock/quest/gertrude}/GertrudesCat.java | 2 +- .../quest/gertrude}/LumberKittenNPC.java | 4 +- .../quest/romeo}/JulietCutscenePlugin.java | 8 +- .../varrock/quest/romeo}/JulietDialogue.java | 12 +- .../varrock/quest/romeo}/JulietNPC.java | 2 +- .../quest/romeo}/RJCutscenePlugin.java | 14 +- .../varrock/quest/romeo}/RomeoJuliet.java | 2 +- .../varrock/quest/romeo}/RomeoNPC.java | 2 +- .../quest/romeo}/RomeoQuestPlugin.java | 2 +- .../shieldofarrav/CertificatePlugin.java | 2 +- .../shieldofarrav/CharlieTheTrampDialogue.kt | 115 ++ .../CuratorHaigHalenDialogue.java | 12 +- .../CuratorHaigHalenSOADialogue.java | 4 +- .../quest}/shieldofarrav/JohnnyBeardNPC.java | 2 +- .../shieldofarrav/JonnytheBeardPlugin.java | 6 +- .../quest}/shieldofarrav/KatrineDialogue.java | 4 +- .../shieldofarrav/KingRoaldArravDialogue.kt | 10 +- .../quest}/shieldofarrav/ReldoDialogue.java | 5 +- .../shieldofarrav/ShieldArravPlugin.java | 10 +- .../quest}/shieldofarrav/ShieldofArrav.java | 6 +- .../shieldofarrav/ShieldofArravBook.java | 12 +- .../quest}/shieldofarrav/StravenDialogue.java | 4 +- .../shieldofarrav/WeaponsMasterDialogue.java | 4 +- .../whatliesbelow/AnnaJonesDialogue.java | 4 +- .../quest}/whatliesbelow/KingRoaldNPC.java | 2 +- .../quest}/whatliesbelow/OutlawNPC.java | 2 +- .../whatliesbelow/RatBurgissDialogue.java | 7 +- .../whatliesbelow/SurokMagisDialogue.java | 6 +- .../quest}/whatliesbelow/WLBelowCutscene.java | 10 +- .../quest}/whatliesbelow/WLBelowPlugin.java | 12 +- .../quest}/whatliesbelow/WhatLiesBelow.java | 4 +- .../dialogue/DrOnglewipDialogue.java | 4 +- .../wiztower}/dialogue/TraibornDialogue.java | 8 +- .../wiztower/handlers}/DemonTauntHandler.kt | 9 +- .../wiztower/handlers}/WizardGuildPortals.kt | 14 +- .../wiztower/handlers}/WizardTowerPlugin.java | 20 +- .../handlers/rcguild}/RCGuildMap.java | 2 +- .../handlers/rcguild}/RCGuildPortal.java | 2 +- .../rcguild}/RuneCraftingGuildObjects.java | 2 +- .../misthalin/wiztower/quest}/ImpCatcher.java | 2 +- .../dialogue/HiylikMynaDialogue.java | 4 +- .../canifis/dialogue}/AgilityBossDialogue.kt | 22 +- .../canifis}/dialogue/BarkerDialogue.java | 4 +- .../canifis}/dialogue/BrosDialogue.java | 4 +- .../canifis}/dialogue/FilelioDialogue.java | 4 +- .../canifis}/dialogue/GregoryDialogue.java | 4 +- .../canifis}/dialogue/IrinaDialogue.java | 4 +- .../canifis}/dialogue/JosephDialogue.java | 4 +- .../canifis}/dialogue/MalakDialogue.java | 4 +- .../canifis}/dialogue/NikitiaDialogue.java | 4 +- .../canifis/dialogue}/RoavarDialogue.java | 6 +- .../canifis}/dialogue/RufusDialogue.java | 4 +- .../canifis}/dialogue/SbottDialogue.java | 6 +- .../canifis}/dialogue/SofiyaDialogue.java | 4 +- .../canifis}/dialogue/SvetlanaDialogue.java | 4 +- .../dialogue/TaxidermistDialogue.java | 4 +- .../canifis}/dialogue/YadvigaDialogue.java | 4 +- .../canifis}/dialogue/YuriDialogue.java | 4 +- .../handlers}/CanafisWereWolfPlugin.java | 4 +- .../canifis/handlers}/RoavarOptionPlugin.java | 2 +- .../canifis/handlers}/WerewolfNPC.java | 2 +- .../morytania/dialogue}/AfflictedDialogue.kt | 12 +- .../morytania}/dialogue/UliziusDialogue.java | 4 +- .../morytania}/dialogue/VanstromKlause.java | 4 +- .../handlers}/BarrowsBoatPlugin.java | 4 +- .../handlers}/BarrowsTunnelShortcut.java | 6 +- .../morytania/handlers}/MortMyreGhastNPC.kt | 12 +- .../morytania/handlers}/MorytaniaArea.kt | 14 +- .../morytania/handlers}/MorytaniaListeners.kt | 17 +- .../handlers}/MoyrtniaSwampPlugin.java | 2 +- .../morytania/handlers}/PyreSitePlugin.java | 12 +- .../phas/dialogue}/GhostDiscipleDialogue.java | 4 +- .../phas/dialogue}/GhostInkeeperDialogue.java | 5 +- .../phas/dialogue}/GhostSailorDialogue.java | 7 +- .../phas/dialogue}/GhostVillagerDialogue.java | 5 +- .../phas/dialogue}/NecrovarusDialogue.java | 4 +- .../phas}/dialogue/VelorinaDialogue.java | 3 +- .../phas/handlers}/BoneGrinderListener.kt | 44 +- .../phas/handlers}/EctoplasmFillPlugin.java | 2 +- .../phas/handlers}/GravingasNPC.java | 6 +- .../phas/handlers}/PhasmatysZone.java | 13 +- .../phas/handlers}/TokenCollectOption.java | 2 +- .../morytania/phas/handlers}/akharanu.java | 6 +- .../quest}/naturespirit/FillimanTarlockNPC.kt | 4 +- .../quest/naturespirit/NSDrezelDialogue.kt | 119 ++ .../quest}/naturespirit/NSListeners.kt | 57 +- .../quest/naturespirit/NSTarlockDialogue.kt | 240 ++++ .../morytania/quest}/naturespirit/NSUtils.kt | 8 +- .../naturespirit/NatureSpiritDialogue.kt | 163 +++ .../quest}/naturespirit/NatureSpiritQuest.kt | 4 +- .../region/tirranwn/dialogue/ArvelDialogue.kt | 47 + .../tirranwn/dialogue/DalldavDialogue.kt | 48 + .../tirranwn/dialogue/ElfTrackerDialogue.kt | 89 ++ .../region/tirranwn/dialogue}/EoinDialogue.kt | 14 +- .../tirranwn/dialogue}/EudavGethinDialogue.kt | 14 +- .../region/tirranwn/dialogue/GoreuDialogue.kt | 42 + .../tirranwn/dialogue/IlfeenDialogue.kt | 78 ++ .../region/tirranwn/dialogue}/IonaDialouge.kt | 14 +- .../region/tirranwn/dialogue/KelynDialogue.kt | 43 + .../tirranwn/dialogue/MawrthDialogue.kt | 44 + .../tirranwn/dialogue}/OronwenDialogue.kt | 16 +- .../dialogue/QuarterMasterDialogue.java | 3 +- .../region/tirranwn/dialogue/TyrasGuard.kt | 57 + .../tirranwn/dialogue}/TyrasGuardTent.kt | 14 +- .../tirranwn/handlers}/IsafdarListeners.kt | 6 +- .../quest}/rovingelves/ElunedDialogue.java | 6 +- .../quest}/rovingelves/IsafdarZone.java | 4 +- .../quest}/rovingelves/IslwynDialogue.java | 8 +- .../rovingelves/MossGiantGuardianNPC.java | 4 +- .../quest}/rovingelves/RovingElves.java | 4 +- .../rovingelves/RovingElvesObstacles.java | 6 +- .../quest}/rovingelves/RovingElvesPlugin.java | 4 +- .../dialogue/CapeMerchantDialogue.java | 3 +- .../region/wilderness/handlers}/BorkNPC.java | 18 +- .../handlers}/ChaosElementalNPC.java | 12 +- .../wilderness/handlers}/ChaosTunnelZone.java | 10 +- .../handlers}/CorpAreaController.kt | 9 +- .../handlers}/CorporealBeastNPC.java | 10 +- .../CorporealBeastWarningInterface.kt | 9 +- .../handlers}/DarkEnergyCoreNPC.java | 4 +- .../handlers}/KingBlackDragonNPC.java | 8 +- .../wilderness/handlers}/LavaMazePlugin.java | 4 +- .../wilderness/handlers}/MuddyChestHandler.kt | 6 +- .../handlers}/RoguesCastleListeners.kt | 20 +- .../wilderness/handlers}/SkulledState.kt | 6 +- .../handlers}/WildernessAreaZone.java | 18 +- .../handlers}/WildernessDitchPlugin.java | 4 +- .../handlers}/WildernessInterfacePlugin.java | 4 +- .../handlers}/WildernessObeliskPlugin.java | 4 +- .../handlers}/WildernessPlugin.java | 4 +- .../revenants}/RevenantCombatHandler.java | 6 +- .../handlers/revenants}/RevenantController.kt | 25 +- .../handlers/revenants}/RevenantNPC.java | 11 +- .../handlers/revenants}/RevenantType.java | 2 +- .../main/{kotlin/rs09 => core}/GlobalStats.kt | 4 +- .../main/{kotlin/rs09 => core}/JSONUtils.kt | 2 +- .../src/main/{kotlin/rs09 => core}/Server.kt | 10 +- .../{java => }/core/ServerConstants.backup | 0 .../{kotlin/rs09 => core}/ServerConstants.kt | 4 +- .../main/{kotlin/rs09 => core}/ServerStore.kt | 15 +- Server/src/main/{java => }/core/Util.java | 0 .../{kotlin => core}/api/ApiExtensions.kt | 2 +- .../src/main/{kotlin => core}/api/Commands.kt | 10 +- .../main/{kotlin => core}/api/Container.kt | 2 +- .../main/{kotlin => core}/api/ContentAPI.kt | 53 +- .../{kotlin => core}/api/ContentInterface.kt | 2 +- .../main/{kotlin => core}/api/DialUtils.kt | 2 +- .../{kotlin => core}/api/EquipmentSlot.kt | 2 +- .../{kotlin/rs09/game => core/api}/Event.kt | 4 +- Server/src/main/{kotlin => core}/api/God.kt | 2 +- .../api/IfaceSettingsBuilder.kt | 2 +- .../main/{kotlin => core}/api/InputType.kt | 2 +- .../{kotlin => core}/api/LoginListener.kt | 2 +- .../{kotlin => core}/api/LogoutListener.kt | 2 +- .../src/main/{kotlin => core}/api/MapArea.kt | 2 +- .../{kotlin => core}/api/PersistPlayer.kt | 2 +- .../main/{kotlin => core}/api/PersistWorld.kt | 2 +- .../{kotlin => core}/api/ShutdownListener.kt | 4 +- .../{kotlin => core}/api/StartupListener.kt | 4 +- .../main/{kotlin => core}/api/TickListener.kt | 2 +- .../api/regionspec/RegionSpecification.kt | 4 +- .../regionspec/contracts/ChunkSpecContract.kt | 2 +- .../contracts/CloneRegionContract.kt | 2 +- .../contracts/EmptyChunkContract.kt | 2 +- .../contracts/EmptyRegionContract.kt | 2 +- .../regionspec/contracts/FillChunkContract.kt | 2 +- .../contracts/RegionSpecContract.kt | 2 +- .../contracts/UseExistingRegionContract.kt | 2 +- Server/src/main/core/api/utils/CameraUtils.kt | 5 + .../api/utils}/GlobalKillCounter.kt | 15 +- .../global => core/api/utils}/NPCDropTable.kt | 2 +- .../api/utils}/PlayerCamera.kt | 3 +- .../api/utils}/WeightBasedTable.kt | 42 +- .../global => core/api/utils}/WeightedItem.kt | 2 +- .../rs09/game/system => core/auth}/Auth.kt | 13 +- .../rs09 => core}/auth/AuthProvider.kt | 6 +- .../rs09 => core}/auth/AuthResponse.kt | 2 +- .../auth/DevelopmentAuthenticator.kt | 7 +- .../auth/ProductionAuthenticator.kt | 8 +- .../rs09 => core}/auth/UserAccountInfo.kt | 2 +- .../src/main/{java => }/core/cache/Cache.java | 4 +- .../main/{java => }/core/cache/CacheFile.java | 0 .../core/cache/CacheFileManager.java | 0 .../main/{java => }/core/cache/StoreFile.java | 0 .../core/cache/bzip2/BZip2BlockEntry.java | 0 .../core/cache/bzip2/BZip2Decompressor.java | 0 .../core/cache/crypto/ISAACCipher.java | 0 .../core/cache/crypto/ISAACPair.java | 0 .../core/cache/crypto/XTEACryption.java | 0 .../{java => }/core/cache/def/Definition.java | 0 .../cache/def/impl/AnimationDefinition.java | 0 .../core/cache/def/impl/CS2Mapping.java | 3 +- .../core/cache/def/impl/ClothDefinition.java | 2 +- .../core/cache/def/impl/DataMap.java | 5 +- .../cache/def/impl/GraphicDefinition.java | 2 +- .../core/cache/def/impl/ItemDefinition.java | 10 +- .../core/cache/def/impl/NPCDefinition.java | 4 +- .../def/impl/RenderAnimationDefinition.java | 4 +- .../cache/def/impl/SceneryDefinition.java | 4 +- .../core/cache/def/impl/Struct.java | 4 +- .../core/cache/def/impl/VarbitDefinition.java | 0 .../{java => }/core/cache/def/impl/test.txt | 0 .../core/cache/gzip/GZipDecompressor.java | 0 .../{java => }/core/cache/misc/Container.java | 0 .../cache/misc/ContainersInformation.java | 0 .../core/cache/misc/FilesContainer.java | 0 .../cache/misc/buffer/BufferInputStream.java | 0 .../cache/misc/buffer/BufferOutputStream.java | 0 .../cache/misc/buffer/ByteBufferUtils.java | 0 .../game}/activity/ActivityManager.java | 6 +- .../game}/activity/ActivityPlugin.java | 4 +- .../game/activity}/Cutscene.kt | 28 +- .../game}/activity/CutscenePlugin.java | 4 +- .../ai => core/game/bots}/AIPBuilder.java | 2 +- .../game/ai => core/game/bots}/AIPlayer.java | 12 +- .../ai => core/game/bots}/AIRepository.kt | 5 +- .../game/bots}/ArtificialSession.java | 2 +- .../pvmbots => core/game/bots}/CombatBot.kt | 11 +- .../game/bots}/CombatBotAssembler.kt | 13 +- .../game/bots}/GeneralBotCreator.kt | 12 +- .../main/core/game/bots/PlayerCompatible.kt | 3 + .../game/bots}/PlayerScripts.kt | 4 +- .../pvmbots => core/game/bots}/PvMBots.java | 11 +- .../game/bots}/PvMBotsBuilder.kt | 6 +- .../game/bots}/Script.java | 3 +- .../general => core/game/bots}/ScriptAPI.kt | 38 +- .../game/bots}/ScriptDescription.kt | 2 +- .../game/bots}/ScriptIdentifier.kt | 2 +- .../game/bots}/ScriptName.kt | 2 +- .../game/bots}/SkillingBotAssembler.kt | 9 +- .../core/game/component/CloseEvent.java | 0 .../core/game/component/Component.java | 2 +- .../game/component/ComponentDefinition.java | 0 .../core/game/component/ComponentPlugin.java | 0 .../core/game/component/InterfaceType.java | 0 .../game}/consumable/BarbarianMix.java | 2 +- .../game}/consumable/Cake.java | 3 +- .../game}/consumable/Consumable.java | 7 +- .../game}/consumable/ConsumableEffect.java | 2 +- .../game}/consumable/Drink.java | 2 +- .../game}/consumable/FakeConsumable.java | 2 +- .../game}/consumable/Food.java | 2 +- .../game}/consumable/HalfableFood.java | 2 +- .../game}/consumable/Potion.java | 5 +- .../core/game/container/Container.java | 0 .../core/game/container/ContainerEvent.java | 0 .../game/container/ContainerListener.java | 0 .../core/game/container/ContainerType.java | 0 .../core/game/container/SortType.java | 0 .../container/access/InterfaceContainer.java | 2 +- .../game/container/impl/BankContainer.java | 8 +- .../container/impl/EquipmentContainer.java | 8 +- .../container/impl/InventoryListener.java | 2 +- .../game}/dialogue/ActivateEnchantedGem.java | 4 +- .../game}/dialogue/DialogueAction.java | 2 +- .../core/game/dialogue/DialogueBuilder.kt | 148 +++ .../game}/dialogue/DialogueFile.kt | 29 +- .../game}/dialogue/DialogueInterpreter.java | 16 +- .../game}/dialogue/DialoguePlugin.java | 13 +- .../main/core/game/dialogue/DialogueTopic.kt | 12 + .../game}/dialogue/EmptyPlugin.kt | 9 +- .../game}/dialogue/FacialExpression.java | 2 +- .../game}/dialogue/SimpleDialoguePlugin.java | 2 +- .../game}/dialogue/SimpleEntityMessage.java | 2 +- .../game}/dialogue/SkillDialogueHandler.kt | 2 +- .../game}/dialogue/SkillDialoguePlugin.java | 8 +- .../game}/dialogue/book/Book.java | 5 +- .../game}/dialogue/book/BookLine.java | 2 +- .../game}/dialogue/book/Page.java | 2 +- .../game}/dialogue/book/PageSet.java | 2 +- .../link => core/game}/diary/AreaDiaryTask.kt | 12 +- .../game}/diary/DiaryEventHookBase.kt | 36 +- .../link => core/game}/diary/DiaryLevel.kt | 2 +- Server/src/main/core/game/event/Event.kt | 3 + .../events => core/game/event}/EventHook.kt | 2 +- .../api/events => core/game/event}/Events.kt | 10 +- .../rs09 => core}/game/ge/BotPrices.kt | 2 +- .../rs09 => core}/game/ge/GEAutoStock.kt | 6 +- .../{kotlin/rs09 => core}/game/ge/GEDB.kt | 5 +- .../{java => }/core/game/ge/GEGuidePrice.java | 1 - .../{java => }/core/game/ge/GEItemSet.java | 0 .../rs09 => core}/game/ge/GrandExchange.kt | 41 +- .../game/ge/GrandExchangeOffer.kt | 22 +- .../game/ge/GrandExchangeRecords.kt | 7 +- .../{java => }/core/game/ge/OfferState.java | 0 .../rs09 => core}/game/ge/PriceIndex.kt | 12 +- .../game}/global/Skillcape.java | 5 +- .../global/action/ClimbActionHandler.java | 12 +- .../game}/global/action/DigAction.java | 2 +- .../game}/global/action/DigSpadeHandler.java | 8 +- .../global/action/DoorActionHandler.java | 6 +- .../game}/global/action/DropItemHandler.java | 11 +- .../game}/global/action/EquipHandler.kt | 18 +- .../global/action/LadderAchievementCheck.java | 2 +- .../game}/global/action/PickupHandler.kt | 23 +- .../game}/global/action/SpecialLadders.java | 2 +- .../game}/global/presets/Preset.java | 2 +- .../game}/global/presets/PresetManager.java | 2 +- .../game}/global/report/AbuseReport.java | 6 +- .../game}/global/report/Rule.java | 2 +- .../game/interaction/DestinationFlag.java | 2 +- .../rs09 => core}/game/interaction/IntType.kt | 2 +- .../core/game/interaction/Interaction.java | 8 +- .../game/interaction/InteractionListener.kt | 37 +- .../game/interaction/InteractionListeners.kt | 9 +- .../game/interaction/InterfaceListener.kt | 10 +- .../game/interaction/InterfaceListeners.kt | 2 +- .../game/interaction/Listener.kt | 4 +- .../core/game/interaction/MovementPulse.java | 5 +- .../core/game/interaction/NodeUsageEvent.java | 0 .../core/game/interaction/Option.java | 0 .../core/game/interaction/OptionHandler.java | 2 +- .../game/interaction}/PluginInteraction.java | 2 +- .../PluginInteractionManager.java | 4 +- .../interaction/SpecialGroundInteraction.java | 0 .../game/interaction/SpecialGroundItems.java | 2 +- .../core/game/interaction/UseWithHandler.java | 4 +- .../main/{java => }/core/game/node/Node.java | 0 .../core/game/node/entity/Entity.java | 19 +- .../game/node/entity/combat/BattleState.java | 1 + .../game/node/entity/combat/CombatPulse.kt | 10 +- .../game/node/entity/combat/CombatStyle.java | 4 - .../node/entity/combat/CombatSwingHandler.kt | 11 +- .../game/node/entity/combat/DeathTask.java | 4 +- .../node/entity/combat/ImpactHandler.java | 10 +- .../node/entity/combat/InteractionType.java | 0 .../node/entity/combat}/MagicSwingHandler.kt | 8 +- .../node/entity/combat}/MeleeSwingHandler.kt | 16 +- .../node/entity/combat}/MultiSwingHandler.kt | 6 +- .../node/entity/combat}/RangeSwingHandler.kt | 12 +- .../entity/combat/equipment/Ammunition.java | 0 .../entity/combat/equipment/ArmourSet.java | 0 .../entity/combat/equipment/BoltEffect.java | 2 +- .../combat/equipment/DegradableEquipment.java | 0 .../entity/combat/equipment/FireType.java | 0 .../entity/combat/equipment/RangeWeapon.java | 0 .../entity/combat/equipment/SwitchAttack.java | 2 +- .../node/entity/combat/equipment/Weapon.java | 0 .../combat/equipment/WeaponInterface.java | 4 +- .../game/node/entity/combat}/graves/Grave.kt | 20 +- .../entity/combat}/graves/GraveController.kt | 22 +- .../combat}/graves/GravePurchaseInterface.kt | 6 +- .../node/entity/combat}/graves/GraveType.kt | 2 +- .../entity/combat/spell}/CombatSpell.java | 7 +- .../entity/combat/spell}/CombinationRune.java | 2 +- .../combat/spell}/DefaultCombatSpell.java | 3 +- .../node/entity/combat/spell}/MagicSpell.java | 8 +- .../node/entity/combat/spell}/MagicStaff.java | 4 +- .../game/node/entity/combat/spell}/Runes.java | 3 +- .../node/entity/combat/spell/SpellBlocks.java | 1 - .../node/entity/combat/spell}/SpellType.java | 2 +- .../core/game/node/entity/impl/Animator.java | 2 +- .../game/node/entity/impl/ForceMovement.java | 2 +- .../game/node/entity/impl/GameAttributes.java | 3 +- .../game/node/entity/impl/Projectile.java | 0 .../game/node/entity/impl/Properties.java | 8 +- .../game/node/entity/impl/PulseManager.java | 4 +- .../core/game/node/entity/impl/PulseType.java | 0 .../game/node/entity/impl/WalkingQueue.java | 3 +- .../game/node/entity/lock/ActionLocks.java | 2 +- .../core/game/node/entity/lock/Lock.java | 2 +- .../game/node/entity/lock/LockElapse.java | 0 .../game/node/entity/npc/AbstractNPC.java | 2 +- .../game/node/entity/npc/IdleAbstractNPC.java | 0 .../game/node/entity/npc/Metamorphosis.java | 8 +- .../core/game/node/entity/npc/NPC.java | 32 +- .../entity/npc/agg/AggressiveBehavior.java | 1 - .../entity/npc/agg/AggressiveHandler.java | 4 +- .../node/entity/npc/drop/DropFrequency.java | 0 .../node/entity/npc/drop/NPCDropTables.java | 18 +- .../core/game/node/entity/player/Player.java | 64 +- .../game/node/entity/player}/Varbit.kt | 2 +- .../game/node/entity/player}/Varp.kt | 8 +- .../game/node/entity/player}/VarpManager.kt | 9 +- .../node/entity/player/info/ClientInfo.java | 0 .../entity/player/info/PlayerDetails.java | 4 +- .../node/entity/player/info/PlayerMonitor.kt | 54 +- .../node/entity/player/info/RenderInfo.java | 2 +- .../game/node/entity/player/info/Rights.java | 1 - .../game/node/entity/player/info/UIDInfo.java | 0 .../player/info/login/LoginConfiguration.java | 16 +- .../entity/player/info/login/LoginParser.kt | 15 +- .../entity/player/info/login/LoginType.java | 0 .../player/info/login/PlayerParser.java | 7 +- .../player/info/login/PlayerSaveParser.kt | 23 +- .../entity/player/info/login/PlayerSaver.kt | 12 +- .../entity/player/info/login/Response.java | 0 .../node/entity/player/info/portal/Icon.java | 0 .../node/entity/player/link/ActivityData.java | 0 .../entity/player/link/BankPinManager.java | 6 +- .../player/link/ConfigurationManager.java | 4 +- .../node/entity/player/link/GlobalData.java | 4 +- .../entity/player/link/HintIconManager.java | 0 .../entity/player/link/InterfaceManager.java | 8 +- .../entity/player/link/IronmanManager.java | 0 .../node/entity/player/link/IronmanMode.java | 0 .../entity/player/link/PacketDispatch.java | 6 +- .../node/entity/player/link/QuestData.java | 0 .../node/entity/player/link/RunScript.java | 0 .../node/entity/player/link/SavedData.java | 1 - .../node/entity/player/link/Settings.java | 5 +- .../node/entity/player/link/SkullManager.java | 0 .../entity/player/link/SpellBookManager.java | 3 +- .../entity/player/link/TeleportManager.java | 4 +- .../entity/player/link/WarningMessages.java | 0 .../player/link/appearance/Appearance.java | 2 +- .../player/link/appearance/BodyPart.java | 0 .../entity/player/link/appearance/Gender.java | 0 .../node/entity/player/link/audio/Audio.java | 0 .../player/link/audio/AudioManager.java | 0 .../player/link/diary/AchievementDiary.java | 4 +- .../link/diary/AchievementDiaryManager.java | 2 +- .../entity/player/link/diary/DiaryType.java | 0 .../player/link/emote/EmoteManager.java | 0 .../node/entity/player/link/emote/Emotes.java | 2 +- .../entity/player/link/music/MusicEntry.java | 0 .../entity/player/link/music/MusicPlayer.java | 2 +- .../entity/player/link/music/MusicZone.java | 0 .../entity/player/link/prayer/Prayer.java | 4 +- .../player/link/prayer/PrayerCategory.java | 0 .../entity/player/link/prayer/PrayerType.java | 0 .../node/entity/player/link/quest/Quest.java | 0 .../player/link/quest/QuestRepository.java | 4 +- .../player/link/request/RequestManager.kt | 6 +- .../player/link/request/RequestModule.kt | 0 .../entity/player/link/request/RequestType.kt | 0 .../link/request/assist/AssistSession.java | 2 +- .../link/request/trade/TradeCloseEvent.java | 0 .../link/request/trade/TradeContainer.java | 7 +- .../player/link/request/trade/TradeModule.kt | 6 +- .../player/link/skillertasks/Difficulty.java | 0 .../player/link/skillertasks/SkillTasks.java | 0 .../link/skillertasks/SkillerTasks.java | 0 .../entity/player/link/spawn/PKPackage.java | 0 .../entity/player/link/spawn/PKTitle.java | 2 +- .../entity/player/link/spawn/SpawnData.java | 6 +- .../core/game/node/entity/skill/LevelUp.java | 4 +- .../game/node/entity/skill/SkillBonus.java | 0 .../game/node/entity/skill/SkillPulse.java | 4 +- .../node/entity/skill/SkillRestoration.java | 3 +- .../core/game/node/entity/skill/Skills.java | 19 +- .../game/node/entity/state/EntityState.java | 0 .../game/node/entity/state}/PlayerState.kt | 2 +- .../game/node/entity/state}/State.kt | 4 +- .../game/node/entity/state/StateManager.java | 0 .../game/node/entity/state/StatePulse.java | 2 +- .../node/entity/state}/StateRepository.kt | 12 +- .../entity/state/impl/FireResistantPulse.java | 2 +- .../entity/state/impl/FrozenStatePulse.java | 2 +- .../entity/state/impl/HealOverTimePulse.java | 0 .../entity/state/impl/MiasmicStatePulse.java | 2 +- .../entity/state/impl/PoisonStatePulse.java | 0 .../entity/state/impl/SkullStatePulse.java | 0 .../entity/state/impl/StunStatePulse.java | 0 .../state/impl/TeleblockStatePulse.java | 2 +- .../core/game/node/item/ChanceItem.java | 0 .../core/game/node/item/GroundItem.java | 2 +- .../game/node/item/GroundItemManager.java | 4 +- .../{java => }/core/game/node/item/Item.java | 0 .../core/game/node/item/ItemPlugin.java | 0 .../game/node/item/WeightedChanceItem.java | 0 .../core/game/node/scenery/Constructed.java | 0 .../core/game/node/scenery/Scenery.java | 0 .../game/node/scenery/SceneryBuilder.java | 4 +- .../global => core/game}/shops/Shop.kt | 16 +- .../global => core/game}/shops/Shops.kt | 29 +- .../core/game/system/SystemConfig.java | 0 .../core/game/system/SystemManager.java | 2 +- .../core/game/system/SystemShutdownHook.java | 2 +- .../core/game/system/SystemState.java | 0 .../core/game/system/SystemTermination.java | 20 +- .../core/game/system/SystemUpdate.java | 6 +- .../game/system/command/Command.kt | 6 +- .../game/system/command/CommandPlugin.kt | 5 +- .../core/game/system/command/CommandSet.java | 4 +- .../game/system/command/CommandSystem.kt | 2 +- .../game/system/command/MapDumpCommand.kt | 2 +- .../game/system/command/Privilege.kt | 2 +- .../command/oldsys/SimpleDumpingCommands.kt | 4 +- .../system/command/oldsys/VisualCommand.kt | 10 +- .../rottenpotato/RPUseWithNPCDialogue.kt | 9 +- .../rottenpotato/RPUseWithPlayerDialogue.kt | 8 +- .../rottenpotato/RottenPotatoExtraDialogue.kt | 16 +- .../rottenpotato/RottenPotatoOptionHandler.kt | 10 +- .../rottenpotato/RottenPotatoRSHDDialogue.kt | 21 +- .../RottenPotatoUseWithHandler.kt | 2 +- .../command/sets/AnimationCommandSet.kt | 9 +- .../system/command/sets/BottingCommandSet.kt | 17 +- .../game/system/command/sets/CommandSet.kt | 10 +- .../system/command/sets/ConfigCommandSet.kt | 6 +- .../command/sets/DevelopmentCommandSet.kt | 10 +- .../game/system/command/sets/FunCommandSet.kt | 23 +- .../system/command/sets/MiscCommandSet.kt | 40 +- .../command/sets/ModerationCommandSet.kt | 20 +- .../system/command/sets/MusicCommandSet.kt | 6 +- .../system/command/sets/QuestCommandSet.kt | 6 +- .../system/command/sets/SlayerCommandSet.kt | 7 +- .../system/command/sets/SpawnCommandSet.kt | 9 +- .../system/command/sets}/StatAttributeKeys.kt | 2 +- .../system/command/sets}/StatsCommandSet.kt | 42 +- .../system/command/sets/SystemCommandSet.kt | 18 +- .../system/command/sets/TeleportCommandSet.kt | 9 +- .../game/system/communication/ClanEntry.java | 2 +- .../game/system/communication/ClanMember.java | 0 .../game/system/communication/ClanRank.java | 0 .../system/communication/ClanRepository.java | 10 +- .../communication/CommunicationInfo.java | 12 +- .../game/system/communication/Contact.java | 0 .../game/system/config/ClueRewardParser.kt | 8 +- .../game/system/config/ConfigParser.kt | 10 +- .../game/system/config/CustomVarbitParser.kt | 6 +- .../game/system/config/DoorConfigLoader.kt | 6 +- .../game/system/config/DropTableParser.kt | 11 +- .../game/system/config/GroundSpawnLoader.kt | 10 +- .../system/config/InterfaceConfigParser.kt | 6 +- .../game/system/config/ItemConfigParser.kt | 6 +- .../game/system/config/MusicConfigLoader.kt | 6 +- .../game/system/config/NPCConfigParser.kt | 8 +- .../game/system/config/NPCSpawner.kt | 6 +- .../game/system/config/ObjectConfigParser.kt | 6 +- .../game/system/config/RangedConfigLoader.kt | 6 +- .../game/system/config/ServerConfigParser.kt | 12 +- .../game/system/config/ShopParser.kt | 8 +- .../game/system/config/TableDump.kt | 0 .../game/system/config/XteaParser.kt | 7 +- .../game/system/monitor/DuplicationLog.java | 2 +- .../core/game/system/monitor/MessageLog.java | 0 .../core/game/system/mysql/SQLColumn.java | 0 .../core/game/system/mysql/SQLTable.java | 0 .../system/security/EncryptionManager.java | 0 .../core/game/system/task/MovementHook.java | 0 .../core/game/system/task/NodeTask.java | 1 - .../core/game/system/task/Pulse.java | 0 .../core/game/system/task/TaskExecutor.kt | 0 .../game/world/DeadlockDetector.kt | 4 +- .../rs09 => core}/game/world/GameSettings.kt | 4 +- .../rs09 => core}/game/world/GameWorld.kt | 26 +- .../rs09 => core}/game/world/ImmerseWorld.kt | 12 +- .../rs09 => core}/game/world/PulseRunner.kt | 6 +- .../core/game/world/map/BuildRegionChunk.java | 2 +- .../core/game/world/map/Direction.java | 0 .../core/game/world/map/Location.java | 1 - .../core/game/world/map/MapDistance.java | 0 .../{java => }/core/game/world/map/Point.java | 0 .../core/game/world/map/Region.java | 10 +- .../core/game/world/map/RegionChunk.java | 2 +- .../core/game/world/map/RegionManager.kt | 2 +- .../core/game/world/map/RegionPlane.java | 0 .../core/game/world/map/Viewport.java | 0 .../game/world/map/build/DynamicRegion.java | 2 - .../game/world/map/build/LandscapeParser.java | 2 +- .../game/world/map/build/MapscapeParser.java | 0 .../game/world/map/build/RegionFlags.java | 1 - .../game/world/map/path/ClipMaskSupplier.java | 0 .../game/world/map/path/DumbPathfinder.java | 0 .../core/game/world/map/path/Path.java | 0 .../core/game/world/map/path/Pathfinder.java | 1 - .../world/map/path/ProjectilePathfinder.java | 0 .../game/world/map/path/SmartPathfinder.kt | 6 +- .../core/game/world/map/zone/MapZone.java | 2 +- .../core/game/world/map/zone/RegionZone.java | 0 .../core/game/world/map/zone/Zone.java | 0 .../core/game/world/map/zone/ZoneBorders.java | 0 .../core/game/world/map/zone/ZoneBuilder.java | 2 +- .../core/game/world/map/zone/ZoneMonitor.java | 0 .../game/world/map/zone/ZoneRestriction.java | 0 .../core/game/world/map/zone/ZoneType.java | 0 .../game/world/map/zone/impl/BankZone.java | 0 .../game/world/map/zone/impl/DarkZone.java | 16 +- .../game/world/map/zone/impl/KaramjaZone.java | 0 .../world/map/zone/impl/ModeratorZone.java | 2 +- .../map/zone/impl/MultiwayCombatZone.java | 0 .../world/map/zone/impl/WildernessZone.java | 21 +- .../game/world/objectparser/ObjectParser.java | 9 +- .../world/repository/DisconnectionQueue.kt | 6 +- .../world/repository/InitializationEntry.java | 0 .../repository/InitializingNodeList.java | 0 .../core/game/world/repository/NodeList.java | 0 .../world/repository/NodeListIterator.java | 0 .../game/world/repository/Repository.kt | 9 +- .../game/world/update/MapChunkRenderer.kt | 2 +- .../game/world/update/NPCRenderer.kt | 4 +- .../game/world/update/PlayerRenderer.kt | 2 +- .../game/world/update/UpdateMasks.kt | 2 +- .../game/world/update/UpdateSequence.kt | 10 +- .../game/world/update/flag/FlagContext.java | 0 .../game/world/update/flag/PlayerFlags.java | 0 .../game/world/update/flag/UpdateFlag.java | 0 .../flag/chunk/AnimateObjectUpdateFlag.java | 0 .../update/flag/chunk/GraphicUpdateFlag.java | 0 .../update/flag/chunk/ItemUpdateFlag.java | 0 .../update/flag/chunk/ObjectUpdateFlag.java | 0 .../flag/chunk/ProjectileUpdateFlag.java | 0 .../world/update/flag/context/Animation.java | 0 .../world/update/flag/context/ChatMessage.kt | 0 .../world/update/flag/context/Graphics.java | 0 .../world/update/flag/context/HitMark.java | 0 .../world/update/flag/npc/NPCAnimation.java | 0 .../world/update/flag/npc/NPCFaceEntity.java | 0 .../update/flag/npc/NPCFaceLocation.java | 0 .../world/update/flag/npc/NPCForceChat.java | 0 .../world/update/flag/npc/NPCGraphic.java | 0 .../world/update/flag/npc/NPCHitFlag.java | 0 .../world/update/flag/npc/NPCHitFlag1.java | 0 .../world/update/flag/npc/NPCSwitchId.java | 0 .../update/flag/player/AnimationFlag.java | 0 .../update/flag/player/AppearanceFlag.java | 0 .../world/update/flag/player/ChatFlag.java | 0 .../update/flag/player/FaceEntityFlag.java | 0 .../update/flag/player/FaceLocationFlag.java | 0 .../update/flag/player/ForceChatFlag.java | 0 .../update/flag/player/ForceMovementFlag.java | 0 .../world/update/flag/player/GraphicFlag.java | 0 .../update/flag/player/HitUpdateFlag.java | 0 .../update/flag/player/HitUpdateFlag1.java | 0 .../game}/worldevents/WorldEvent.kt | 10 +- .../worldevents/WorldEventInitializer.kt | 2 +- .../worldevents/holiday/christmas/Giftmas.kt | 32 +- .../holiday/easter/EasterBunnyDialogueFile.kt | 18 +- .../worldevents/holiday/easter/EasterEvent.kt | 12 +- .../holiday/easter/EasterEventListeners.kt | 12 +- .../holiday/halloween/CandyRewardPlugin.kt | 6 +- .../holiday/halloween/GrimDialogue.kt | 81 +- .../holiday/halloween/SimpleHalloweenEvent.kt | 11 +- .../holiday/halloween/TrickOrTreatHandler.kt | 33 +- .../integrations}/discord/Discord.kt | 7 +- .../main/{java => }/core/net/Constants.java | 0 .../{java => }/core/net/EventProducer.java | 0 .../{java => }/core/net/IoEventHandler.java | 4 +- .../main/{java => }/core/net/IoReadEvent.java | 0 .../main/{java => }/core/net/IoSession.java | 7 +- .../{java => }/core/net/IoWriteEvent.java | 0 .../main/{java => }/core/net/JS5Queue.java | 0 .../main/{java => }/core/net/NioReactor.java | 0 .../core/net/ServerSocketConnection.java | 0 .../core/net/amsc/MSEventHandler.java | 2 +- .../core/net/amsc/MSPacketRepository.java | 19 - .../core/net/amsc/ManagementServerState.java | 2 +- .../core/net/amsc/WorldCommunicator.java | 11 +- .../core/net/amsc/WorldStatistics.java | 0 .../core/net/event/GameReadEvent.java | 11 +- .../core/net/event/GameWriteEvent.java | 0 .../core/net/event/HSReadEvent.java | 3 +- .../core/net/event/HSWriteEvent.java | 0 .../core/net/event/JS5ReadEvent.java | 0 .../core/net/event/JS5WriteEvent.java | 0 .../rs09 => core}/net/event/LoginReadEvent.kt | 10 +- .../core/net/event/LoginWriteEvent.java | 2 +- .../core/net/event/MSHSReadEvent.java | 0 .../core/net/event/MSHSWriteEvent.java | 3 +- .../core/net/event/MSReadEvent.java | 3 +- .../core/net/event/MSWriteEvent.java | 0 .../core/net/event/RegistryReadEvent.java | 4 +- .../core/net/event/RegistryWriteEvent.java | 2 +- .../core/net/lobby/WorldDefinition.java | 4 +- .../{java => }/core/net/lobby/WorldList.java | 2 +- .../{java => }/core/net/packet/Context.java | 0 .../core/net/packet/IncomingPacket.java | 0 .../{java => }/core/net/packet/IoBuffer.java | 0 .../core/net/packet/OutgoingPacket.java | 0 .../core/net/packet/PacketHeader.java | 0 .../net/packet/PacketProcessor.kt | 70 +- .../core/net/packet/PacketRepository.java | 3 +- .../net/packet/PacketWriteQueue.kt | 8 +- .../net/packet}/QCRepository.kt | 10 +- .../net/packet/context/AccessMaskContext.java | 0 .../context/AnimateInterfaceContext.java | 0 .../packet/context/AnimateObjectContext.java | 0 .../packet/context/AreaPositionContext.java | 0 .../net/packet/context/BuildItemContext.java | 0 .../packet/context/BuildSceneryContext.java | 0 .../net/packet/context/CSConfigContext.java | 0 .../net/packet/context/CameraContext.java | 1 - .../packet/context/ChildPositionContext.java | 0 .../core/net/packet/context/ClanContext.java | 0 .../net/packet/context/ClearChunkContext.java | 0 .../net/packet/context/ConfigContext.java | 0 .../net/packet/context/ContactContext.java | 0 .../net/packet/context/ContainerContext.java | 0 .../net/packet/context/DefaultContext.java | 0 .../packet/context/DisplayModelContext.java | 0 .../packet/context/DynamicSceneContext.java | 0 .../packet/context/GameMessageContext.java | 0 .../packet/context/GrandExchangeContext.java | 0 .../net/packet/context/HintIconContext.java | 0 .../net/packet/context/IntegerContext.java | 0 .../context/InteractionOptionContext.java | 0 .../context/InterfaceConfigContext.java | 0 .../net/packet/context/InterfaceContext.java | 0 .../net/packet/context/LocationContext.java | 0 .../net/packet/context/MessageContext.java | 0 .../packet/context/MinimapStateContext.java | 0 .../core/net/packet/context/MusicContext.java | 0 .../net/packet/context/PlayerContext.java | 0 .../context/PositionedGraphicContext.java | 0 .../net/packet/context/RunScriptContext.java | 0 .../net/packet/context/SceneGraphContext.java | 0 .../core/net/packet/context/SkillContext.java | 0 .../net/packet/context/StringContext.java | 0 .../packet/context/SystemUpdateContext.java | 0 .../net/packet/context/VarbitContext.java | 0 .../net/packet/context/VarcUpdateContext.java | 0 .../net/packet/context/WalkOptionContext.java | 0 .../packet/context/WindowsPaneContext.java | 0 .../net/packet/in/Decoders530.kt | 22 +- .../rs09 => core}/net/packet/in/Login.kt | 30 +- .../rs09 => core}/net/packet/in/LoginInfo.kt | 2 +- .../rs09 => core}/net/packet/in/Packet.kt | 2 +- .../net/packet/in/QuickChatPacketHandler.kt | 8 +- .../rs09 => core}/net/packet/in/RunScript.kt | 4 +- .../core/net/packet/out/AccessMask.java | 0 .../core/net/packet/out/AnimateInterface.java | 0 .../net/packet/out/AnimateObjectPacket.java | 0 .../core/net/packet/out/AudioPacket.java | 0 .../net/packet/out/BuildDynamicScene.java | 2 +- .../core/net/packet/out/CSConfigPacket.java | 0 .../core/net/packet/out/CameraViewPacket.java | 0 .../core/net/packet/out/ClearGroundItem.java | 0 .../core/net/packet/out/ClearMinimapFlag.java | 0 .../core/net/packet/out/ClearRegionChunk.java | 0 .../core/net/packet/out/ClearScenery.java | 0 .../core/net/packet/out/CloseInterface.java | 0 .../net/packet/out/CommunicationMessage.java | 2 +- .../core/net/packet/out/Config.java | 0 .../net/packet/out/ConstructGroundItem.java | 0 .../core/net/packet/out/ConstructScenery.java | 0 .../core/net/packet/out/ContactPackets.java | 0 .../core/net/packet/out/ContainerPacket.java | 0 .../core/net/packet/out/DisplayModel.java | 0 .../core/net/packet/out/GameMessage.java | 0 .../net/packet/out/GrandExchangePacket.java | 0 .../core/net/packet/out/HintIcon.java | 0 .../packet/out/InstancedLocationUpdate.java | 0 .../net/packet/out/InteractionOption.java | 0 .../core/net/packet/out/Interface.java | 0 .../core/net/packet/out/InterfaceConfig.java | 0 .../core/net/packet/out/LoginPacket.java | 0 .../core/net/packet/out/Logout.java | 0 .../core/net/packet/out/MinimapState.java | 0 .../core/net/packet/out/MusicPacket.java | 0 .../core/net/packet/out/PingPacket.java | 0 .../net/packet/out/PositionedGraphic.java | 1 - .../core/net/packet/out/RepositionChild.java | 0 .../core/net/packet/out/ResetInterface.java | 0 .../core/net/packet/out/RunEnergy.java | 0 .../core/net/packet/out/RunScriptPacket.java | 0 .../core/net/packet/out/SetWalkOption.java | 0 .../core/net/packet/out/SkillLevel.java | 0 .../core/net/packet/out/StringPacket.java | 0 .../net/packet/out/SystemUpdatePacket.java | 0 .../net/packet/out/UpdateAreaPosition.java | 0 .../core/net/packet/out/UpdateClanChat.java | 0 .../packet/out/UpdateGroundItemAmount.java | 0 .../core/net/packet/out/UpdateRandomFile.java | 0 .../core/net/packet/out/UpdateSceneGraph.java | 2 +- .../core/net/packet/out/Varbit.java | 0 .../core/net/packet/out/VarcUpdate.java | 0 .../core/net/packet/out/WeightUpdate.java | 0 .../core/net/packet/out/WindowsPane.java | 0 .../core/net/producer/GameEventProducer.java | 0 .../core/net/producer/HSEventProducer.java | 0 .../core/net/producer/JS5EventProducer.java | 0 .../core/net/producer/LoginEventProducer.java | 2 +- .../core/net/producer/MSEventProducer.java | 0 .../core/net/producer/MSHSEventProducer.java | 0 .../net/producer/RegistryEventProducer.java | 0 .../core/net/registry/AccountRegister.java | 11 +- .../core/net/registry/RegistryDetails.java | 0 .../core/net/registry/RegistryResponse.java | 0 .../rs09 => core}/plugin/ClassScanner.kt | 43 +- .../plugin/CorePluginTypes/ManagerPlugin.java | 0 .../core/plugin/CorePluginTypes/Managers.java | 2 - .../plugin/CorePluginTypes/StartupPlugin.java | 0 .../plugin/CorePluginTypes/XPGainPlugins.kt | 2 +- .../{java => }/core/plugin/Initializable.java | 0 .../main/{java => }/core/plugin/Plugin.java | 0 .../core/plugin/PluginManifest.java | 0 .../{java => }/core/plugin/PluginType.java | 0 .../storage/AccountStorageProvider.kt | 4 +- .../storage/InMemoryStorageProvider.kt | 4 +- .../storage/SQLStorageProvider.kt | 7 +- .../main/{java => }/core/tools/CP1252.java | 0 .../rs09 => core}/tools/DialogueConst.kt | 2 +- .../{kotlin/rs09 => core}/tools/Globals.kt | 10 +- .../{java => }/core/tools/PlayerLoader.java | 0 .../main/{java => }/core/tools/RSAKeyGen.java | 0 .../{java => }/core/tools/RandomFunction.java | 0 .../{java => }/core/tools/StringUtils.java | 0 .../system => core/tools}/SystemLogger.kt | 4 +- .../{kotlin/rs09 => core}/tools/TickUtils.kt | 2 +- .../main/{java => }/core/tools/TimeStamp.java | 0 .../main/{java => }/core/tools/Vector3d.java | 0 .../{java => }/core/tools/mysql/Database.java | 0 .../{java => }/core/tools/mysql/Query.java | 0 .../{java => }/core/tools/mysql/Results.java | 0 .../rs09 => core}/worker/MajorUpdateWorker.kt | 22 +- .../rs09 => core}/worker/ManagementEvents.kt | 16 +- .../content/consumable/CookingProperties.java | 304 ----- .../dialogue/BanditCampBartenderDialogue.java | 52 - .../content/dialogue/CallistoCubDialogue.java | 87 -- .../dialogue/ChaosElementalJRDialogue.java | 71 -- .../content/dialogue/CrossbowDialogue.java | 116 -- .../content/dialogue/DartCreateDialogue.java | 105 -- .../dialogue/EventLocatorDialoguePlugin.java | 275 ----- .../content/dialogue/GraardoorJRDialogue.java | 67 - .../game/content/dialogue/HeronDialogue.java | 64 - .../dialogue/KeyMasterDialoguePlugin.java | 182 --- .../game/content/dialogue/KreeJrDialogue.java | 87 -- .../game/content/dialogue/KrilJRDialogue.java | 83 -- .../game/content/dialogue/LimbDialogue.java | 124 -- .../dialogue/MeleeShopDialoguePlugin.java | 68 -- .../dialogue/PrinceBlackDragonDialogue.java | 71 -- .../content/dialogue/RockGolemDialogue.java | 76 -- .../dialogue/ScorpiasOffspringDialogue.java | 79 -- .../content/dialogue/StringBowDialogue.java | 112 -- .../dialogue/TownCrierDialogue.java.orig | 284 ----- .../dialogue/VenenatisSpiderlingDialogue.java | 71 -- .../content/dialogue/VetionJRDialogue.java | 79 -- .../content/dialogue/ZilyanaJRDialogue.java | 73 -- .../java/core/game/content/eco/EcoStatus.java | 24 - .../game/content/eco/EconomyManagement.java | 68 -- .../global/travel/MinigameGroupFinder.java | 159 --- .../game/content/holiday/HolidayEvent.java | 281 ----- .../game/content/holiday/HolidayItem.java | 108 -- .../game/content/holiday/HolidayType.java | 9 - .../game/content/holiday/ItemLimitation.java | 117 -- .../holiday/christmas/ChristmasEvent.java | 1082 ----------------- .../holiday/easter/BasketofEggsEvent.java | 528 -------- .../holiday/halloween/DeathMansionEvent.java | 0 .../free/dragonslayer/DSChestDialogue.java | 76 -- .../learningtheropes/CellarMapZone.java | 98 -- .../LTRDragonFightCutscene.java | 353 ------ .../learningtheropes/SirVantDialogue.java | 123 -- .../content/zone/YanilleAgilityDungeon.java | 0 .../game/interaction/city/HomePlugin.java | 34 - .../item/withobject/DragonPlatebody.java | 5 - .../interaction/npc/SecurityGuardPlugin.java | 66 - .../interaction/object/GertrudeCatPlugin.java | 66 - .../node/entity/npc/drop/SharedTables.java | 121 -- .../node/entity/npc/other/CitizenNPC.java | 55 - .../entity/npc/revenant/CorruptEquipment.java | 43 - .../entity/npc/revenant/PVPEquipment.java | 42 - Server/src/main/kotlin/api/events/Event.kt | 3 - .../scriptrepository/PlayerCompatible.kt | 3 - .../rs09/game/camerautils/CameraUtils.kt | 5 - .../pyramidplunder/GuardianMummyDialogue.kt | 74 -- .../content/ame/events/genie/GenieDialogue.kt | 22 - .../game/content/dialogue/DialogueBuilder.kt | 149 --- .../game/content/dialogue/DialogueTopic.kt | 14 - .../dialogue/region/alkharid/AablaDialogue.kt | 49 - .../region/alkharid/AliTheFarmerDialogue.kt | 73 -- .../dialogue/region/alkharid/AliTheGuard.kt | 70 -- .../alkharid/AliTheLeafletDropperDialogue.kt | 83 -- .../region/alkharid/AliTheSmithDialogue.kt | 68 -- .../dialogue/region/alkharid/FadliDialogue.kt | 72 -- .../region/alkharid/JaraahDialogue.kt | 67 - .../region/alkharid/SabreenDialogue.kt | 49 - .../alkharid/SurgeonGeneralTafaniDialogue.kt | 69 -- .../bananaplantation/BonzaraDialogue.kt | 54 - .../region/apeatoll/marim/DagaDialogue.kt | 62 - .../ardougne/MonkeyChildThingZooDialogue.kt | 71 -- .../barbarianassault/CaptainCainDialogue.kt | 68 -- .../craftingguild/MasterCrafterDialogue.kt | 68 -- .../region/craftingguild/TannerDialogue.kt | 53 - .../region/craftingguild/TheDoorDialogues.kt | 32 - .../darkwizardstower/ZandarHorfyreDialogue.kt | 53 - .../region/dorgeshuun/BartakDialogue.kt | 44 - .../region/duelarena/AfrahDialogue.kt | 174 --- .../region/dungeon/taverley/VelrakDialogue.kt | 63 - .../region/dwarvenmine/DrogoDialogue.kt | 48 - .../dwarvenmine/DwarvenMineGuardDialogue.kt | 44 - .../region/dwarvenmine/NurmofDialogue.kt | 47 - .../entrana/HighPriestEntranaDialogue.kt | 68 -- .../dialogue/region/entrana/MazionDialogue.kt | 41 - .../falador/AmbassadorSpanfippleDialogue.kt | 62 - .../region/falador/DrunkenManDialogue.kt | 66 - .../region/falador/WorkmanDialogue.kt | 49 - .../region/isafdar/ElfTrackerDialogue.kt | 89 -- .../dialogue/region/isafdar/IlfeenDialogue.kt | 78 -- .../dialogue/region/isafdar/TyrasGuard.kt | 57 - .../region/jatizso/CitizenDialogue.kt | 58 - .../dialogue/region/jatizso/EricDialogue.kt | 31 - .../region/jatizso/GruvaPatrullDialogue.kt | 34 - .../region/jatizso/LeftieRightieDialogue.kt | 32 - .../dialogue/region/jatizso/MinerDialogue.kt | 62 - .../region/jatizso/TowerGuardDialogue.kt | 53 - .../region/keldagrim/AgmundiDialogue.kt | 67 - .../region/keldagrim/InnKeeperDialogue.kt | 57 - .../legendsguild/LegendsGuardDialogue.kt | 47 - .../dialogue/region/lletya/ArvelDialogue.kt | 47 - .../dialogue/region/lletya/DalldavDialogue.kt | 48 - .../dialogue/region/lletya/GoreuDialogue.kt | 42 - .../dialogue/region/lletya/KelynDialogue.kt | 43 - .../dialogue/region/lletya/MawrthDialogue.kt | 44 - .../lumbridge/LumbridgeGuideDialogue.kt | 127 -- .../region/lunarisle/BabaYagaDialogue.kt | 55 - .../region/lunarisle/CabinBoyDialogue.kt | 72 -- .../lunarisle/MelenaMoonlanderDialogue.kt | 64 - .../lunarisle/PaulinePolarisDialogue.kt | 48 - .../region/lunarisle/RimaeSirsalisDialogue.kt | 62 - .../dialogue/region/lunarisle/SeleneDialog.kt | 79 -- .../region/miscellania/DonalDialogue.kt | 52 - .../region/miscellania/FerdDialogue.kt | 66 - .../miscellania/FishmongerMiscDialogue.kt | 42 - .../region/miscellania/HallaDialogue.kt | 70 -- .../region/miscellania/RunaDialogue.kt | 77 -- .../region/mosleharmless/CharleyDialogue.kt | 77 -- .../neitiznot/FridleifShieldsonDialogue.kt | 32 - .../neitiznot/GunnarHoldstromDialogue.kt | 34 - .../neitiznot/JofridrMordstatterDialogue.kt | 47 - .../neitiznot/KjedeligUppsenDialogue.kt | 32 - .../region/neitiznot/LisseIsaaksonDialogue.kt | 38 - .../neitiznot/MortenHoldstromDialogue.kt | 38 - .../neitiznot/SlugHemliggsenDialogue.kt | 31 - .../neitiznot/ThakkradSigmundsonDialogue.kt | 32 - .../neitiznot/TrogenKonungardeDialogue.kt | 32 - .../region/piratescove/BeefyBurnsDialogue.kt | 43 - .../region/piratescove/DaveyBoyDialogue.kt | 51 - .../piratescove/EagleEyeShultzDialogue.kt | 42 - .../piratescove/LecherousLeeDialogue.kt | 107 -- .../region/pollnivneach/AliTheHagDialogue.kt | 49 - .../pollnivneach/AliTheMayorDialogue.kt | 59 - .../rellekka/BjornAndEldgrimDialogues.kt | 52 - .../region/rellekka/BlaninDialogue.kt | 44 - .../dialogue/region/rellekka/DronDialogue.kt | 44 - .../region/rellekka/IngridHradsonDialogue.kt | 49 - .../rellekka/LonghallBouncerDialogue.kt | 44 - .../dialogue/region/rellekka/ReesoDialogue.kt | 41 - .../region/rellekka/VolfOlasfsonDialogue.kt | 48 - .../region/sophanem/EmbalmerDialogue.kt | 41 - .../region/witchaven/CarolineDialogue.kt | 41 - .../region/witchaven/ColONiallDialogue.kt | 56 - .../witchaven/EzekialLovecraftDialogue.kt | 64 - .../region/witchaven/HolgartDialogue.kt | 43 - .../witchaven/WitchhavenVillageDialogue.kt | 78 -- .../dialogue/region/zanaris/BlaecDialogue.kt | 42 - .../region/zanaris/CoOrdinatorDialogue.kt | 47 - .../dialogue/region/zanaris/FairyDialogue.kt | 53 - .../dialogue/region/zanaris/FairyFixit.kt | 72 -- .../cooksassistant/GillieGroatsDialogue.kt | 73 -- .../cooksassistant/LumbridgeCookDialogue.kt | 283 ----- .../cooksassistant/MillieMillerDialogue.kt | 70 -- .../quest/free/dragonslayer/DSListeners.kt | 15 - .../shieldofarrav/CharlieTheTrampDialogue.kt | 118 -- .../members/elementalworkshop/EWUtils.kt | 115 -- .../quest/members/lostcity/ShamusDialogue.kt | 70 -- .../quest/members/lostcity/WarriorDialogue.kt | 100 -- .../members/merlinsquest/ArheinMCDialogue.kt | 29 - .../members/monksfriend/BrotherCedricNPC.kt | 123 -- .../members/monksfriend/BrotherOmadNPC.kt | 216 ---- .../members/naturespirit/NSDrezelDialogue.kt | 120 -- .../members/naturespirit/NSTarlockDialogue.kt | 240 ---- .../naturespirit/NatureSpiritDialogue.kt | 164 --- .../thefremenniktrials/AskeladdenDialogue.kt | 145 --- .../ChieftanBrundtDialogue.kt | 338 ----- .../thefremenniktrials/FishermanDialogue.kt | 87 -- .../FremennikSailorDialogue.kt | 80 -- .../thefremenniktrials/LalliDialogue.kt | 166 --- .../thefremenniktrials/ManniDialogue.kt | 202 --- .../thefremenniktrials/PeerTheSeerDialogue.kt | 263 ---- .../thefremenniktrials/SigmundDialogue.kt | 146 --- .../thefremenniktrials/SkulgrimenDialogue.kt | 103 -- .../thefremenniktrials/SwensenTheNavigator.kt | 153 --- .../thefremenniktrials/ThoraDialogue.kt | 129 -- .../thefremenniktrials/ThorvaldDialogue.kt | 216 ---- .../thefremenniktrials/YrsaDialogue.kt | 105 -- .../members/thegolem/TheGolemDialogue.kt | 445 ------- .../members/tribaltotem/ArdougneGuideBook.kt | 163 --- .../members/tribaltotem/CrompertyDialogue.kt | 134 -- .../tribaltotem/GPDTEmployeeDialogue.kt | 41 - .../members/tribaltotem/HoracioDialogue.kt | 58 - .../members/tribaltotem/KangaiMauDialogue.kt | 91 -- .../TutorialFinanceAdvisorDialogue.kt | 59 - .../tutorial/TutorialPrayerDialogue.kt | 68 -- .../interaction/item/EnchantedGemListener.kt | 67 - .../skill/hunter/tracking/CommonKebbitWest.kt | 4 - .../proto/management/BlockedUpdate.java | 0 .../management/BlockedUpdateOrBuilder.java | 0 .../management/ClanJoinNotification.java | 0 .../ClanJoinNotificationOrBuilder.java | 0 .../management/ClanLeaveNotification.java | 0 .../ClanLeaveNotificationOrBuilder.java | 0 .../proto/management/ClanMessage.java | 0 .../management/ClanMessageOrBuilder.java | 0 .../ClanSettingsUpdateOrBuilder.java | 0 .../proto/management/FriendUpdate.java | 0 .../management/FriendUpdateOrBuilder.java | 0 .../proto/management/JoinClanRequest.java | 0 .../management/JoinClanRequestOrBuilder.java | 0 .../proto/management/LeaveClanRequest.java | 0 .../management/LeaveClanRequestOrBuilder.java | 0 .../proto/management/ManagementProtos.java | 0 .../proto/management/PlayerStatusUpdate.java | 0 .../PlayerStatusUpdateOrBuilder.java | 0 .../proto/management/PrivateMessage.java | 0 .../management/PrivateMessageOrBuilder.java | 0 .../proto/management/RequestClanInfo.java | 0 .../management/RequestClanInfoOrBuilder.java | 0 .../proto/management/RequestContactInfo.java | 0 .../RequestContactInfoOrBuilder.java | 0 .../proto/management/SendClanInfo.java | 0 .../management/SendClanInfoOrBuilder.java | 0 .../proto/management/SendContactInfo.java | 0 .../management/SendContactInfoOrBuilder.java | 0 Server/src/test/kotlin/APITests.kt | 11 +- Server/src/test/kotlin/ExchangeTests.kt | 16 +- Server/src/test/kotlin/HouseManagerTests.kt | 8 +- Server/src/test/kotlin/PriceIndexTests.kt | 4 +- .../test/kotlin/RegionSpecificationTests.kt | 6 +- Server/src/test/kotlin/RegionTests.kt | 4 +- Server/src/test/kotlin/ShopTests.kt | 4 +- Server/src/test/kotlin/TestUtils.kt | 19 +- Server/src/test/kotlin/content/DeathTests.kt | 18 +- Server/src/test/kotlin/content/EquipTests.kt | 10 +- .../src/test/kotlin/content/ListenerTests.kt | 20 +- .../kotlin/content/RandomEventManagerTests.kt | 28 +- .../src/test/kotlin/core/PathfinderTests.kt | 7 +- .../auth/DevelopmentAuthenticatorTests.kt | 8 +- .../core/auth/ProductionAuthenticatorTests.kt | 8 +- .../test/kotlin/core/cache/ItemDefTests.kt | 2 +- Server/src/test/kotlin/core/net/LoginTests.kt | 4 +- .../core/storage/SQLStorageProviderTests.kt | 9 +- Server/worldprops/default.conf | 1 + 3156 files changed, 24205 insertions(+), 30585 deletions(-) rename Server/src/main/{java/core/game/content/global => content/data}/BossKillCounter.java (99%) rename Server/src/main/{java/core/game/content/global => content/data}/Dyes.java (96%) rename Server/src/main/{kotlin/rs09/game/content/global => content/data}/EnchantedJewellery.kt (96%) rename Server/src/main/{java/core/game/content/global => content/data}/GodBook.java (99%) rename Server/src/main/{java/core/game/content/global => content/data}/GodType.java (97%) rename Server/src/main/{java/core/game/content/global => content/data}/Lamps.java (98%) rename Server/src/main/{java/core/game/content/global => content/data}/LightSource.java (99%) rename Server/src/main/{java/core/game/content/global => content/data}/Meat.kt (97%) rename Server/src/main/{java/core/game/content/global => content/data}/RepairItem.java (98%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/Consumables.java (98%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/AchievementEffect.java (84%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/DamageEffect.java (88%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/DraynorCabbageEffect.java (82%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/DwarvenRockCakeEffect.java (82%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/EnergyEffect.java (74%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/HealingEffect.java (78%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/KebabEffect.java (97%) rename Server/src/main/{kotlin/rs09/game/content/consumable => content/data/consumables}/effects/KegOfBeerEffect.kt (56%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/MatureWmbEffect.java (87%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/MultiEffect.java (85%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/NettleTeaEffect.java (84%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/PercentHeal.java (86%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/PercentageHealthEffect.java (85%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/PoisonEffect.java (83%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/PoisonKarambwanEffect.java (80%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/PrayerEffect.java (83%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RandomEnergyEffect.java (81%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RandomHealthEffect.java (88%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RandomPrayerEffect.java (81%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RandomSkillEffect.java (83%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RemoveStateEffect.java (85%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RestoreEffect.java (88%) rename Server/src/main/{kotlin/rs09/game/content/consumable => content/data/consumables}/effects/RestoreSummoningSpecial.kt (69%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/RockCakeEffect.java (82%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/SetAttributeEffect.java (86%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/SkillEffect.java (87%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/SmellingUgthankiKebabEffect.java (89%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/SummoningEffect.java (84%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/SuperKebabEffect.java (89%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/TroubleBrewingRumEffect.java (91%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/UgthankiKebabEffect.java (84%) rename Server/src/main/{java/core/game/content/consumable => content/data/consumables}/effects/WizardsMindBombEffect.java (87%) rename Server/src/main/{java/core/game/content/global => content/data/skill}/SkillcapePerks.java (96%) rename Server/src/main/{java/core/game/content/global => content/data/skill}/SkillingPets.java (96%) rename Server/src/main/{java/core/game/node/entity/skill/gather => content/data/skill}/SkillingTool.java (99%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/AllotmentSeedDropTable.java (93%) rename Server/src/main/{java/core/game/content/global => content/data/tables}/BirdNest.java (99%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/CELEMinorTable.java (91%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/GemDropTable.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/HerbDropTable.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/RareDropTable.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/RareSeedDropTable.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/drop => content/data/tables}/UncommonSeedDropTable.java (93%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/CancelJobDialogueFile.kt (74%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/JobManager.kt (93%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/JobType.kt (57%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/WorkForInteractionListener.kt (93%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/impl/GatheringJobs.kt (98%) rename Server/src/main/{kotlin/rs09/game/content => content/global/activity}/jobs/impl/SlayingJobs.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/LarryHandler.kt (87%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/NotebookHandler.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/PenguinHNSEvent.kt (76%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/PenguinManager.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/PenguinSpawner.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/penguinhns/PenguinSpyingHandler.kt (71%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/shootingstar/ShootingStar.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/shootingstar/ShootingStarMiningPulse.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/shootingstar/ShootingStarPlugin.kt (92%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/activity/shootingstar}/ShootingStarState.kt (87%) rename Server/src/main/{java/core/game/content/global/worldevents => content/global/activity}/shootingstar/StarChartPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/content/global/worldevents => content/global/activity}/shootingstar/StarSpriteDialogue.kt (74%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/ClueLevel.java (90%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/ClueScrollPlugin.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/CoordinateCluePlugin.java (99%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/CoordinateClueScroll.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/EmoteCluePlugin.java (99%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/EmoteClueScroll.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/MapCluePlugin.java (99%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/MapClueScroll.java (95%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/SaradominWizardNPC.java (94%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/TreasureTrailManager.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/TreasureTrailPlugin.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/UriNPC.java (98%) rename Server/src/main/{java/core/game/content => content/global/activity}/ttrail/ZamorakWizardNPC.java (97%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/RandomEventManager.kt (60%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/RandomEventNPC.kt (91%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/RandomEvents.kt (65%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/MysteriousOldManDialogue.kt (72%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/MysteriousOldManNPC.kt (85%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/certer/CerterDialogue.kt (80%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/certer/CerterEventInterface.kt (95%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/certer/CerterNPC.kt (88%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/drilldemon/DrillDemonListeners.kt (93%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/drilldemon/DrillDemonUtils.kt (96%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt (63%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/drilldemon/SeargentDamienDialogue.kt (54%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/drilldemon/SeargentDamienNPC.kt (82%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/evilchicken/EvilChickenNPC.kt (89%) create mode 100644 Server/src/main/content/global/ame/events/genie/GenieDialogue.kt rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/genie/GenieNPC.kt (85%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/rivertroll/RiverTrollRENPC.kt (86%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/rockgolem/RockGolemRENPC.kt (67%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/sandwichlady/SandwichLadyDialogue.kt (80%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/sandwichlady/SandwichLadyInterface.kt (81%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/sandwichlady/SandwichLadyRENPC.kt (90%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/shade/ShadeRENPC.kt (67%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/supriseexam/MordautDialogue.kt (90%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/supriseexam/SEDoorDialogue.kt (75%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/supriseexam/SEPatternInterface.kt (92%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/supriseexam/SupriseExamListeners.kt (83%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/supriseexam/SurpriseExamUtils.kt (98%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/treespirit/TreeSpiritRENPC.kt (68%) rename Server/src/main/{kotlin/rs09/game/content => content/global}/ame/events/zombie/ZombieRENPC.kt (66%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/Adventurer.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/ChickenKiller.kt (97%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/CoalMiner.kt (94%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/CowKiller.kt (97%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/DoublingMoney.kt (97%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/DraynorFisher.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/DraynorWillows.kt (94%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/FarmerThiever.kt (91%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/FletchingBankstander.kt (79%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/GenericSlayerBot.kt (97%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/GlassBlowingBankstander.kt (79%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/GnomeAgility.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/GnomeBowstring.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/GreenDragonKiller.kt (94%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/Idler.kt (68%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/LobsterCatcher.kt (94%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/ManThiever.kt (76%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/NonBankingMiner.kt (85%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/SeersFlax.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/SeersMagicTrees.kt (93%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/SharkCatcher.kt (96%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/ShootingStarBot.kt (89%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/VarrockEssenceMiner.kt (94%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => content/global/bots}/VarrockSmither.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/worldwide/bank => content/global/dialogue}/BankDepositDialogue.kt (86%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/worldwide/bank => content/global/dialogue}/BankHelpDialogue.kt (86%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/worldwide/bank => content/global/dialogue}/BankerDialogue.kt (72%) rename Server/src/main/{java/core/game/content => content/global}/dialogue/FurTradePlugin.java (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/worldwide => content/global/dialogue}/GardenerDialoguePlugin.kt (94%) rename Server/src/main/{java/core/game/content => content/global}/dialogue/ManDialoguePlugin.java (96%) rename Server/src/main/{java/core/game/content => content/global}/dialogue/ShopkeeperDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/global}/dialogue/TownCrierDialogue.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/AgilityTicketInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/AutocastSelectPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/BoltEnchantingInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/CharacterDesignInterface.java (88%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/ChocatriceIncubationInterface.kt (96%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/ClanInterfacePlugin.java (97%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/CombatTabInterface.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/CreditShopInterface.kt (92%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/CrystalKeyChestPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/DeathInterfacePlugin.java (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/EllisDialogue.java (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/EmoteTabInterface.java (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/EquipmentInterface.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/ExperienceInterface.kt (97%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/FairyRingInterface.kt (96%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/FurClothingInterface.kt (91%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/GameInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/GlassInterface.java (94%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/GliderInterface.java (82%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/HairDresserInterface.kt (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/JewelleryInterface.java (93%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/LeatherCraftInterface.java (84%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/LeatherCraftPlugin.java (87%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/LoginInterfacePlugin.java (96%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/LogoutInterface.java (93%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/MagicBookInterface.java (80%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/MainGameInterface.kt (96%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/MakeOverInterface.kt (92%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/MusicTabInterface.java (97%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/MysticStaffEnchantingPlugin.java (99%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/NPCContactInterface.kt (96%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/OrbViewingInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/PlayerExamineInterfacePlugin.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/PrayerTabInterface.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/PuppyInterfacePlugin.kt (97%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/QuestTabInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/RequestAssistInterface.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/RulesAndInfo.kt (94%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SawmillPlankInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SettingTabInterface.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/ShoppingPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SkillInterface.java (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SkillTabInterface.java (96%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SmeltingInterface.java (92%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SmithingInterface.java (81%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/SpinningInterface.java (86%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/TanningInterface.java (90%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/TeleotherInterface.kt (89%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/ThessaliaInterface.kt (94%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/TradeInterfacePlugin.java (97%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface}/WorldMapInterface.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/bank/BankChargeInterface.kt (94%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/bank/BankDepositBoxInterface.kt (91%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/bank/BankInterface.kt (95%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface/bank}/BankPinInterface.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/util => content/global/handlers/iface/bank}/BankUtils.kt (84%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/ge/ExchangeItemSets.kt (93%) rename Server/src/main/{java/core/game/interaction/inter => content/global/handlers/iface/ge}/GrandExchangeInterface.java (94%) rename Server/src/main/{kotlin/rs09/game/interaction/inter => content/global/handlers/iface}/ge/StockMarket.kt (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/BirdNestPlugin.java (91%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/BookreadOption.java (98%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/BraceletOfClayPlugin.kt (77%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/CadavaPotionListener.kt (82%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/CasketPlugin.java (93%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/ConsumableOptionPlugin.java (91%) rename Server/src/main/{java/core/game/content/dialogue => content/global/handlers/item}/DestroyItemPlugin.java (94%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/DiangoItemPlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/DragonfireShieldPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/DrinkBlamishOilListener.kt (53%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/DustHandPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/EmptyOptionPlugin.java (99%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/EnchantJewelleryTabOption.kt (98%) create mode 100644 Server/src/main/content/global/handlers/item/EnchantedGemListener.kt rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/EnchantedJewelleryListener.kt (87%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/ExplorersRingPlugin.kt (81%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/FaladorShieldPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/FishbowlPlugin.java (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/GnomeCopterPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/GnomecopterTicket.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/GodBookListeners.kt (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/GodBookPlugin.java (93%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/GodswordDismantlePlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/GrandSeedPodHandler.kt (70%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/HerbBoxPlugin.java (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/HouseTeleTabOptionPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/ImplingJarListener.kt (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/ItemQuestRequirementListener.kt (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/KeldagrimVotingBond.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/LampPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/MiningHelmetListener.kt (63%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/MorphItemPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/NewComerMapPlugin.java (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/NewsPaperPlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/OysterPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/PetRock.kt (71%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/PickupPlugin.java (92%) rename Server/src/main/{kotlin/rs09/game/node/entity/equipment => content/global/handlers/item}/PlayerPeltables.kt (94%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/RingUnchargePlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/RunePackPlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/SilverSicklePlugin.java (88%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/SkullSceptreOption.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers/item}/SpadeDigListener.kt (93%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/SpadeDigOptionPlugin.java (90%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/StaffOfTheRaven.kt (90%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/StarterPackPlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/TeleTabsOptionPlugin.java (99%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/TeleportCrystalPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/ToyHorseyListener.kt (85%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/ToyListeners.kt (91%) rename Server/src/main/{java/core/game/content/dialogue => content/global/handlers/item}/book/GrimDiary.java (96%) rename Server/src/main/{java/core/game/content/dialogue => content/global/handlers/item}/book/KeldagrimRuleBook.java (97%) rename Server/src/main/{java/core/game/content/dialogue => content/global/handlers/item}/book/SecurityBookPlugin.java (96%) rename Server/src/main/{java/core/game/content/dialogue => content/global/handlers/item}/book/StrongholdNotes.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global/handlers/item}/equipment/BarrowsEquipmentRegister.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat => content/global/handlers/item}/equipment/EquipmentDegrader.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global/handlers/item}/equipment/PVPEquipmentRegister.kt (94%) rename Server/src/main/{java/core/game/interaction/item => content/global/handlers/item/equipment}/brawling_gloves/BrawlingGloves.java (97%) rename Server/src/main/{java/core/game/interaction/item => content/global/handlers/item/equipment}/brawling_gloves/BrawlingGlovesManager.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/AncientMaceSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/BackstabSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ChainhitSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat/handlers => content/global/handlers/item/equipment/special}/ChinchompaSwingHandler.java (97%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/CleaveSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ClobberSpecialHandler.java (93%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/DescentOfDarknessSpecialHandler.java (98%) rename Server/src/main/{java/core/game/node/entity/combat/handlers => content/global/handlers/item/equipment/special}/DragonfireSwingHandler.java (98%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/EnergyDrainSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ExcaliburSpecialHandler.java (93%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/FeintSpecialHandler.java (93%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/HealingBladeSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/IceCleaveSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ImpaleSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/JudgementSpecialHandler.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat => content/global/handlers/item/equipment}/special/LiquefySpecialHandler.kt (88%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/PowershotSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/PowerstabSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/PunctureSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/QuickSmashSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/RampageSpecialHandler.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat/handlers => content/global/handlers/item/equipment/special}/SalamanderSwingHandler.kt (97%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SaradominsLightningHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SeercullSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SeverSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ShatterSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/ShoveSpecialHandler.java (97%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SliceAndDiceSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SmashSpecialHandler.java (94%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SnapshotSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SnipeSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SpearWallSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/SweepSpecialHandler.java (96%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/WarstrikeSpecialHandler.java (95%) rename Server/src/main/{java/core/game/node/entity/combat => content/global/handlers/item/equipment}/special/WeakenSpecialHandler.java (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/toys/DiangoOptionHandler.java (93%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/toys/DiangoReclaimInterface.java (78%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/toys/SnowGlobePlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/CapeDyer.kt (94%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/CrystalKeyCreateListener.kt (77%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/DarkBowDyePlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/FirelighterPlugin.java (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/FishfoodPlugin.java (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/FruitCuttingPlugin.java (98%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/GodswordHiltAttachPlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/GraniteMaulPlugin.java (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/GraniteSplittingPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/HaySackOnSpear.kt (77%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/ImpJarCreatePlugin.java (99%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/KaramjanSilkPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/LavaScalePlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/MakeGlassInterfacePlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/OilFishingRodListener.kt (88%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/PoisonedWeaponListeners.kt (93%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/SeasonedSardinePlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/SkullSceptrePlugin.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/SoftclayPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/TOTTHelmOnCape.kt (87%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withitem/WaterSkinPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withitem/WatermelonOnSack.kt (76%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/ArchaeologicalExpertListener.kt (86%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/BonesOnStrayDog.kt (88%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/CatOnArdougneCivilian.kt (85%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/CiderOnForester.kt (85%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/FeedFaladorSheepdog.kt (87%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/GCItemOnCat.kt (89%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withnpc/GertrudeCatUsePlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/HatEasterEgg.kt (76%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/MistagEasterEgg.kt (80%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/PoisonChaliceOnKingArthur.kt (71%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/RopeOnLadyKeli.kt (83%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withnpc/ZooknockListener.kt (63%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/AmmoMouldOnFurnace.kt (89%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/AxeOnTree.kt (51%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/CauldronOfThunderListener.kt (83%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/ChestKeyListener.kt (77%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/CoalTruckListener.kt (93%) create mode 100644 Server/src/main/content/global/handlers/item/withobject/DragonPlatebody.java rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/EctophialFillListener.kt (89%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/FishEasterEgg.kt (59%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/GWDEntranceRopeListener.kt (74%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/HairdresserCheeseListener.kt (86%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/HatStand.kt (61%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withobject/IncubatorPlugin.java (94%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/KaramjaBananaCrateListener.kt (95%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/PoisonFountainListener.kt (90%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/SackOnHay.kt (65%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/SandSourceListener.kt (87%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/SapCollectListener.kt (94%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withobject/SmithingPlugin.java (94%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/SpiritShieldBlessListener.kt (95%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/SwampHoleRopeListener.kt (85%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/item/withobject/WaterSourceListener.kt (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withplayer/ChristmasCrackerUsage.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/item/withplayer/FieldRationUsage.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global/handlers}/npc/BankerNPC.kt (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/ChromaticDragonNPC.java (89%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/npc}/CowMilkingPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/CowNPC.java (85%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/DarkWizardNPC.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/npc/DecantListener.kt (82%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/DuckNPC.java (85%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/npc}/DummyAttackPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/GuardNPC.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/npc/HairCutPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/HighwayManNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/IceGiantNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/MetalDragonNPC.java (85%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/MonkNPC.java (91%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/npc/NPCDepositListener.kt (69%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/npc/NPCDisturbPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction => content/global/handlers}/npc/NPCTalkListener.kt (67%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/RatNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/SheepNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/handlers/npc}/ShopNPC.java (97%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/player/AttackOptionPlugin.java (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/player/ExamineOptionPlugin.java (88%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/player/FollowOptionPlugin.java (96%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/player/LoginValidationPlugin.java (95%) rename Server/src/main/{java/core/game/interaction => content/global/handlers}/player/RequestOption.kt (86%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/global/handlers/scenery}/BankBoothListener.kt (94%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/global/handlers/scenery}/BankChestListener.kt (80%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/global/handlers/scenery}/BankDepositBoxListener.kt (91%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/DoogleLeafPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/DoorManagingPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/FieldPickingPlugin.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/HaystackPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/JangerBerryPlugin.java (95%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/LadderManagingPlugin.java (91%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/LookAtOptionPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/global/handlers/scenery}/MillingListener.kt (97%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/ModeratorObject.java (92%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/ReadSignPostPlugin.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/SearchOptionPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/SlashWebPlugin.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/SlayerDangerSignPlugin.java (94%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/SpinSpinningWheelPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/global/handlers/scenery}/ThievingGuidePlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/AttackListener.kt (80%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/AgilityCourse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/AgilityHandler.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/AgilityShortcut.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/BarbarianOutpostCourse.kt (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/GnomeStrongholdCourse.kt (75%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/WildernessCourse.kt (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/BladeTrap.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/BrimhavenArena.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/BrimhavenCourse.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/DartTrap.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/FloorSpikes.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/PressurePad.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/brimhaven/SpinningBlades.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/pyramid/AgilityPyramidCourse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/pyramid/AgilityPyramidZone.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/pyramid/MovingBlockNPC.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/pyramid/RollingBlock.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/AlKharidPitShortcut.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/BarSqueezeShortcut.java (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/shortcuts/BasaltRockShortcut.kt (83%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/shortcuts/CatherbyGrappleShortcut.kt (66%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/CrumblingWallShortcut.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/FaladorGrapplePlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/FenceJumpShortcut.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/KaramjaGrapple.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/LogBalanceShortcut.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/MonkeyBarShortcut.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/shortcuts/PipeShortcut.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/shortcuts/RockClimbShortcut.kt (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/RopeSwing.java (93%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/agility/shortcuts/SteppingStoneShortcut.kt (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/StileShortcut.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/StrangeFloorShortcut.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/TunnelShortcut.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/WaterOrbGrapple.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/YanilleGrapple.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/agility/shortcuts/ZanarisSqueezeShortcut.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/BuildHotspot.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/BuildHotspotType.java (80%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/BuildOptionPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/BuildRoomDialogue.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/BuildingUtils.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/ConstructionGuideBook.java (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/ConstructionInterface.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/CrestType.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/Decoration.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/EstateAgentDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/Hotspot.kt (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/HouseLocation.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/HouseManager.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/HouseZone.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/HousingStyle.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/NailType.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/PortalOptionPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/RemovalDialogue.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/Room.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/RoomProperties.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/RoomTemplate.kt (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/Servant.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/ServantType.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/BeerBarrelPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/ChairBenchPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/ConstructionDoorPlugin.kt (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/FireplacePlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/StaircasePlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/bedroom/ClockPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/bedroom/ShavingStandHandler.kt (93%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/bedroom/WardrobeHandler.kt (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/chapel/BoneOfferPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/chapel/BurnerListener.kt (90%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/combatroom/CombatRing.java (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/costume/ToyBoxPlugin.kt (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/kitchen/BeerBarrelPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/kitchen/LarderPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/kitchen/ShelfPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt (77%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/portalchamber/PortalChamberPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/questhall/MountedGlory.kt (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/questhall/MountedGloryPlugin.java (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/study/LecternPlugin.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/study/TelescopePlugin.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/construction/decoration/workshop/ArmourStand.kt (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/decoration/workshop/ToolsPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/npc/HouseServantDialogue.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/npc/HouseServantPlugin.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/construction/npc/StonemasonPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CakeMakingPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/cooking/ChocolateBarCutter.kt (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CoconutMakePlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookableItems.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/cooking/CookingDialogue.kt (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookingDialoguePlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookingPlugin.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookingPulse.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookingRecipePlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/CookingRewrite.kt (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/cooking/DoughMakingListener.kt (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/FireOptionPotteryPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/IntentionalBurnPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/MakeStewPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/NettleTeaPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/NettleWaterPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/PieCookingPulse.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/PieShellPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/PizzaCookingPulse.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/cooking/SaucyKebabListener.kt (81%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/SinewCookingPulse.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/SkeweredFoodPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/StandardCookingPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/WatermelonSlicePlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/WineFermentPlugin.java (90%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/cooking/dairy}/DairyChurnDialogue.java (92%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/cooking/dairy}/DairyChurnOptionPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/dairy/DairyChurnPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/dairy/DairyProduct.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/fermenting/WineFermentingPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/OomlieWrap.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/Recipe.java (83%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/cake/ChocolateCake.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/PieRecipe.java (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/AdmiralPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/ApplePie.java (82%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/FishPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/GardenPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/MeatPie.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/MudPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/RedberryPie.java (80%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/SummerPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pie/impl/WildPie.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pizza/PizzaRecipe.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pizza/impl/AnchovyPizza.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pizza/impl/MeatPizza.java (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pizza/impl/PineapplePizza.java (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/pizza/impl/PlainPizza.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/PotatoRecipe.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/ButterPotato.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/CheesePotato.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/ChilliPotato.java (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/EggPotato.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/MushroomPotato.java (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/potato/impl/TunaPotato.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/stew/CurryRecipe.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/stew/StewRecipe.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/ToppingRecipe.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/ChilliConCarne.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/ChoppedOnion.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/ChoppedTuna.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/EggAndTomato.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/MushroomAndOnion.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/SlicedMushroom.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/SpicySauce.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/TunaAndCorn.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/cooking/recipe/topping/impl/UncookedEgg.java (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/AmuletStringingPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/BattleStaves.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/BattlestaveMakePlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/ChiselLimestonePlugin.java (87%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/GemCutPlugin.java (82%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/GlassProduct.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/JewelleryCraftPlugin.java (88%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/crafting}/LeatherCraftDialogue.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/MoltenGlassMakePlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/PotteryPlugin.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/SnakeSkinPlugin.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/SnelmCraftPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/StitchCraftPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/StuddedArmourPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/TanningProduct.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/WeaveOptionPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/DragonCraftPulse.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/HardCraftPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/LeatherCrafting.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/SnakeSkin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/SnakeSkinPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/armour/SoftCraftPulse.java (87%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/gem/GemCutPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/gem/Gems.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/jewellery/JewelleryCrafting.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/jewellery/JewelleryPulse.java (87%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/leather/SpikyVambraces.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/lightsources/LanternCrafting.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/lightsources/LightSourceExtinguisher.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/lightsources/LightSourceLighter.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/lightsources/LightSources.kt (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/limestone/ChiselLimestonePulse.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/pottery/FirePotteryPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/pottery/PotteryItem.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/pottery/PotteryPulse.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/silver/SilverCraftingListener.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/silver/SilverCraftingPulse.kt (92%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/silver/SilverProduct.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/crafting/silver/SilverStringingListener.kt (83%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/spinning/SpinningItem.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/crafting/spinning/SpinningPulse.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/BasketsAndSacks.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/CompostBin.kt (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/CompostBinOptionHandler.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/CompostBins.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/CompostType.kt (57%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/CropHarvester.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/DigUpPatchDialogue.kt (89%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/FarmerPayOptionDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/FarmerPayOptionHandler.kt (79%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/Farmers.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/FarmingPatch.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/zone => content/global/skill/farming}/FarmingPatchZone.kt (77%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/skill/farming}/FarmingState.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/FruitAndBerryPicker.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/HealthChecker.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/InspectionHandler.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/LeprechaunNoter.kt (71%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/Patch.kt (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/PatchRaker.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/PatchType.kt (85%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/Plantable.kt (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/SackBasketOptionHandler.kt (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/SeedOnPlantPot.kt (93%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/Seedling.kt (60%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/skill/farming}/SeedlingState.kt (93%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/ToolLeprechaunHandler.kt (88%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/ToolLeprechaunInterface.kt (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/UseWithBinHandler.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/farming/UseWithPatchHandler.kt (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/firemaking/FireMakingOptionPlugin.kt (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/firemaking/FireMakingPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/firemaking/LightLogPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/firemaking/Log.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fishing/Fish.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fishing/FishSpots.java (99%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/global/skill/fishing}/FishingNPC.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fishing/FishingOption.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fishing/FishingSpot.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/BoltCreatePlugin.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/BoltGemPlugin.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/DartCreatePlugin.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/FletchItem.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/FletchType.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/Fletching.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/fletching/FletchingListeners.kt (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/FletchingPlugin.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/FletchingPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/GemBoltPlugin.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/arrow/ArrowHead.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/arrow/ArrowHeadPulse.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/arrow/HeadlessArrowPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/bolts/Bolt.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/bolts/BoltPulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/bow/StringBow.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/bow/StringPulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/crossbow/CrossbowPulse.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/crossbow/Limb.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/crossbow/LimbPulse.kt (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/crossbow/StringCross.java (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/darts/Dart.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/darts/DartPulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/gem/Gem.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/gem/GemBolt.java (100%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/fletching/items/gem/GemBoltCutPulse.kt (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/gem/GemBoltPulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/fletching/items/grapple/GrapplePulse.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/GatheringSkillOptionListeners.kt (55%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/PickaxeRepairPlugin.kt (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/gather/SkillingResource.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/FishingPulse.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt (82%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/barbfishing/BarbFishingPulse.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/barbfishing/FishCuttingPulse.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/barbfishing/KnifeWithFish.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/fishing/barbfishing/SpotManager.kt (81%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/gather/mining/MiningNode.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/mining/MiningSkillPulse.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/gather/mining/ProspectListener.kt (88%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/gather/woodcutting/WoodcuttingNode.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/gather/woodcutting/WoodcuttingSkillPulse.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/BarbarianMixPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/BarbarianPotion.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/FinishedPotion.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/FinishedPotionPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/GenericPotion.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/herblore/GrindItemPlugin.kt (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/GrindingItem.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/HerbCleanPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/HerbTarPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/HerbTarPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/HerblorePulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/Herbs.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/PotionDecantingPlugin.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/SwampToadPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/Tars.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/UnfinishedPotion.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/herblore/UnfinishedPotionPlugin.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/BoxTrapNode.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/DeadfallSetting.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/FalconryActivityPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/HunterGear.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/HunterManager.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/HunterNPC.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/HunterPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/ImpBoxPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/ImpetuousImpulses.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/ImplingNPC.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/MagicBoxSetting.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/NetTrapSetting.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapCreatePulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapDismantlePulse.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapHook.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapNode.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapSetting.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/TrapWrapper.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/Traps.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/bnet/BNetNode.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/bnet/BNetPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/bnet/BNetTypes.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/bnet/ImplingNode.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/falconry/FalconCatch.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/hunter/falconry/FalconryCatchPulse.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/hunter/pitfall/HunterPitfall.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/hunter/tracking/CommonKebbitEast.kt (98%) create mode 100644 Server/src/main/content/global/skill/hunter/tracking/CommonKebbitWest.kt rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/hunter/tracking/HunterTracking.kt (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/hunter/tracking/PolarKebbitHunting.kt (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/hunter/tracking/TrailDefinition.kt (89%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/SpellListener.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/SpellListeners.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/SpellTablets.kt (75%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/SpellUtils.kt (94%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/magic}/SpellbookSwapDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/TeleportMethod.kt (59%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/ancient/AncientTeleportPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/ancient}/BloodSpells.java (95%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/ancient}/IceSpells.java (95%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/ancient}/MiasmicSpells.java (96%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/ancient}/ShadowSpells.java (95%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/ancient}/SmokeSpells.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/DreamSpell.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/EnergyTransferSpell.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/HealSpell.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/HumidifySpell.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/HunterKitSpell.java (90%) rename Server/src/main/{kotlin/rs09/game/node/entity/skill/magic => content/global/skill/magic/lunar}/LunarData.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity/skill/magic => content/global/skill/magic/lunar}/LunarListeners.kt (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/MagicImbueSpell.java (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/SpellbookSwapSpell.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/StatBoostSpell.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/StatRestoreSpell.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/StatSpySpell.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/magic/lunar/VengeanceSpell.java (91%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/AirSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/BindSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/ChargeOrbSpells.java (97%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/ChargeSpell.java (88%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/CrumbleUndead.java (89%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/CurseSpells.java (96%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/EarthSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/EnchantCrossbowSpell.java (89%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/FireSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/GodSpells.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/skill/magic/modern}/GodspellChargedState.kt (87%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/HouseTeleportPlugin.java (89%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/IbanBlast.java (89%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/MagicDart.java (90%) rename Server/src/main/{kotlin/rs09/game/node/entity/skill/magic => content/global/skill/magic/modern}/ModernListeners.kt (82%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/SonicWaveSpell.java (92%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/TeleblockSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/skill/magic => content/global/skill/magic/modern}/TeleotherSpells.java (94%) rename Server/src/main/{java/core/game/node/entity/combat/spell => content/global/skill/magic/modern}/WaterSpell.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/spellconsts/Lunar.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/magic/spellconsts/Modern.kt (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/prayer/BoneBuryingOptionPlugin.java (95%) rename Server/src/main/{java/core/game/content/global => content/global/skill/prayer}/Bones.kt (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/prayer/PrayerAltarPlugin.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/Altar.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/CombinationRune.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/CombinationRunePlugin.java (96%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/runecrafting}/EnchantTiaraDialogue.java (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/EnchantTiaraPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/EnchantTiaraPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/MysteriousRuin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/MysteriousRuinPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/runecrafting/PouchManager.kt (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/Rune.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/RuneCraftPulse.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/RunePouch.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/runecrafting/RunePouchPlugin.kt (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/RunecraftingPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/Talisman.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/Tiara.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/TiaraPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/runecrafting/abyss/AbyssPlugin.kt (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/abyss/AbyssalNPC.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/abyss/DarkMageDialogue.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/runecrafting/abyss/ZamorakMageDialogue.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/skillcapeperks/Skillcape.kt (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt (77%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/skillcapeperks/SkillcapeOperatePlugin.kt (86%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/skillcapeperks/SkillcapePerks.kt (82%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/AberrantSpectreNPC.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/AbyssalDemonNPC.java (84%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/BansheeNPC.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/BasiliskNPC.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/BrutalDragonNPC.java (89%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/BugSwarmNPC.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/BuglanternPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/CaveBugNPC.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/CaveHorrorNPC.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/CockatriceNPC.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/DesertLizardPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/DustDevilNPC.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/FishingExplosivePlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/GargoyleNPC.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/InfernalMageNPC.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/KuraskNPC.java (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/Master.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/MirrorShieldHandler.java (91%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/MithrilDragonNPC.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/NechryaelNPC.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/RockSlugPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SkeletalWyvernNPC.java (90%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/slayer/SlayerEquipmentFlags.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/slayer/SlayerFlags.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/slayer/SlayerManager.kt (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SlayerMasterDialogue.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SlayerPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SlayerRewardPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SlayerTowerPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/SlayerTowerZone.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/slayer/SlayerUtils.kt (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/Tasks.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/TurothNPC.java (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/WaterFiendNPC.java (90%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/dungeon/AncientCavern.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/dungeon/FremennikDungeon.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/dungeon/LumbridgeDungeon.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/dungeon/SmokeDungeon.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/dungeon/StrongholdSlayerCave.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/slayer/unused-tasks (100%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/BarType.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/Bars.java (99%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/smithing}/DragonShieldDialogue.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/FurnaceOptionPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/SmithingBuilder.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/SmithingPulse.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/SmithingType.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/smelting/Bar.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/smithing/smelting/SmeltingPulse.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/summoning/CarvedEvilTurnipListener.kt (83%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/ObeliskOptionPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/SummoningCreationPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/SummoningCreator.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/SummoningPouch.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/SummoningScroll.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/summoning/SummoningTabListener.kt (88%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/SummoningTrainingRoom.java (97%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/AbyssalLurkerNPC.java (87%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/AbyssalParasiteNPC.java (88%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/AbyssalTitanNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/AlbinoRatNPC.java (83%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/ArcticBearNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BabyChinchompaNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BarkerToadNPC.java (87%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/BeaverDialogue.java (90%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BeaverNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BloatedLeechNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BullAntNPC.java (85%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/BunyipNPC.java (92%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/BurdenBeast.java (97%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/BurdenContainerListener.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/BurdenInterfacePlugin.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/CockatriceFamiliarNPC.java (95%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/CompostMoundNPC.java (92%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/DesertWyrmNPC.java (92%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/DismissDialoguePlugin.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/DreadfowlNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/ElementalTitanNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/EvilTurnipNPC.java (88%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/Familiar.java (97%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/FamiliarDialoguePlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/FamiliarFeedPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/FamiliarItemOptionPlugin.java (94%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/FamiliarManager.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/FamiliarNPCOptionPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/FamiliarSpecial.java (97%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/FireTitanNPC.java (78%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/Forager.java (96%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/ForgeRegentNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/FruitBatNPC.java (94%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/GeyserTitanNPC.java (90%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/GiantChinchompaNPC.java (90%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/GiantEntNPC.java (87%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/GraniteCrabNPC.java (87%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/GraniteLobsterNPC.java (86%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/HoneyBadgerNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/HydraNPC.java (82%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/IbisNPC.java (87%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/IceTitanNPC.java (82%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/IronTitanNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/KalphiteNPC.java (94%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/KaramthulhuOverlordNPC.java (84%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/LavaTitanDialogue.java (94%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/LavaTitanNPC.java (85%) rename Server/src/main/{java/core/game/interaction/npc => content/global/skill/summoning/familiar}/LavaTitanOptionPlugin.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/MacawNPC.java (88%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/MagpieNPC.java (83%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/MinotaurFamiliarNPC.java (96%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/MossTitanNPC.java (81%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/ObsidianGolemNPC.java (87%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/PackYakNPC.java (85%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/PrayingMantisNPC.java (83%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/PyreLordNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/RavenousLocustNPC.java (85%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/RemoteViewDialogue.java (79%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/RemoteViewer.java (98%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SmokeDevilNPC.java (92%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SnakelingNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritCobraNPC.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritDagannothNPC.java (83%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/SpiritGraahkDialogue.java (94%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritGraahkNPC.java (86%) rename Server/src/main/{java/core/game/interaction/npc => content/global/skill/summoning/familiar}/SpiritGraahkOptionPlugin.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritJellyNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritKalphiteNPC.java (87%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/familiar}/SpiritKyattDialogue.java (94%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritKyattNPC.java (86%) rename Server/src/main/{java/core/game/interaction/npc => content/global/skill/summoning/familiar}/SpiritKyattOptionPlugin.java (97%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritLarupiaNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritMosquitoNPC.java (88%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritPengatriceNPC.java (81%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritScorpionNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritSpiderNPC.java (92%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritTerrorbirdNPC.java (85%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritTzKihNPC.java (90%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SpiritWolfNPC.java (91%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SteelTitanNPC.java (92%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/StrangerPlantNPC.java (86%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/familiar/SummonFamiliarPlugin.java (93%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/SwampTitanNPC.java (83%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/TalonBeastNPC.java (83%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/ThornySnailNPC.java (88%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/UnicornStallionNPC.java (92%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/VampireBatNPC.java (89%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/VetionNPC.java (84%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/VoidFamiliarNPC.java (95%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/WarTortoiseNPC.java (84%) rename Server/src/main/{java/core/game/node/entity/npc => content/global/skill/summoning}/familiar/WolpertingerNPC.java (88%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/pet/IncubatorEgg.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/skill/summoning/pet}/IncubatorState.kt (87%) rename Server/src/main/{java/core/game/content/dialogue => content/global/skill/summoning/pet}/KittenInteractDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/pet/Pet.java (96%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/pet/PetDetails.java (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/summoning/pet/Pets.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/thieving/PickableDoorHandler.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/thieving/Pickpockets.kt (98%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/thieving/Stall.java (99%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/thieving/StallThiefPulse.java (95%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/thieving/ThievableChestPlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity => content/global}/skill/thieving/ThievingListeners.kt (93%) rename Server/src/main/{java/core/game/node/entity => content/global}/skill/thieving/ThievingOptionPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/global/state}/DiseasedState.kt (89%) rename Server/src/main/{kotlin/rs09/game => }/content/global/travel/EssenceTeleport.kt (96%) rename Server/src/main/{java/core/game => }/content/global/travel/canoe/Canoe.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/object/canoestation => content/global/travel/canoe}/CanoeInterfaceListeners.kt (88%) rename Server/src/main/{kotlin/rs09/game/interaction/object/canoestation => content/global/travel/canoe}/CanoeStationListener.kt (89%) rename Server/src/main/{kotlin/rs09/game/interaction/object/canoestation => content/global/travel/canoe}/CanoeUtils.kt (96%) rename Server/src/main/{java/core/game/content/dialogue => content/global/travel/glider}/CaptainDalburDialogue.java (93%) rename Server/src/main/{java/core/game/interaction/npc => content/global/travel/glider}/GliderPlugin.java (92%) rename Server/src/main/{java/core/game => }/content/global/travel/glider/GliderPulse.java (98%) rename Server/src/main/{java/core/game => }/content/global/travel/glider/Gliders.java (97%) rename Server/src/main/{java/core/game/content/dialogue => content/global/travel/ship}/SeamanDialoguePlugin.java (97%) rename Server/src/main/{java/core/game => }/content/global/travel/ship/ShipCharter.java (98%) rename Server/src/main/{java/core/game/interaction/inter => content/global/travel/ship}/ShipCharterInterface.java (88%) rename Server/src/main/{java/core/game/interaction/npc => content/global/travel/ship}/ShipCharterNPCPlugin.java (90%) rename Server/src/main/{java/core/game => }/content/global/travel/ship/ShipTravelPulse.java (98%) rename Server/src/main/{java/core/game => }/content/global/travel/ship/Ships.java (98%) rename Server/src/main/{java/core/game/content/dialogue => content/global/travel/ship}/TraderCrewmemberDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/global/travel/trees}/GnomeSpiritTreeListener.kt (90%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/AFUBeacon.kt (82%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/AFUBeaconHandler.kt (78%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/AFURepairClimbHandler.kt (87%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/AFUSession.kt (87%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/BeaconTenderDialogue.kt (81%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/allfiredup/KingRoaldAFUMiniDialogue.kt (91%) create mode 100644 Server/src/main/content/minigame/barbassault/CaptainCainDialogue.kt rename Server/src/main/{java/core/game/content/activity => content/minigame}/barrows/BarrowBrother.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/barrows/BarrowsActivityPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/barrows/BarrowsCrypt.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/barrows/BarrowsPuzzle.java (99%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/barrows/RewardChest.kt (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/barrows/TunnelEntranceDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/blastfurnace/BlastFurnace.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/blastfurnace/BlastFurnaceInterfaceListener.kt (80%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/blastfurnace/BlastFurnaceListeners.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/minigame/blastfurnace}/BlastFurnaceOre.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/blastfurnace/BlastFurnaceZone.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/blastfurnace/PhunnyGaugeTempInterfaceListener.kt (80%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/BHOptionHandler.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/BHScoreBoard.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/BountyEntry.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/BountyHunterActivity.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/BountyLocateSpell.java (93%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/bountyhunter/CraterType.java (98%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region => content/minigame}/bountyhunter/MaximillianSackvilleDialogue.kt (69%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/clanwars/CWChallengeOption.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/clanwars/ClanWarsActivityPlugin.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/clanwars/ClanWarsChallengeRoom.java (97%) create mode 100644 Server/src/main/content/minigame/duel/AfrahDialogue.kt rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/ChallengeOptionPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelArea.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelArenaActivity.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelComponentPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelReqModule.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelRule.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/DuelSession.java (99%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/duel}/MubarizDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/duel/StakeContainer.java (99%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/duel}/ZahwaDialogue.java (90%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/FishingTrawlerActivity.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/FishingTrawlerInteractionHandler.kt (90%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/FishingTrawlerOverlay.kt (90%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/FishingTrawlerRewardInterface.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/FishingTrawlerSession.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fishingtrawler/TrawlerLoot.kt (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/fog/FOGActivityPlugin.java (93%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/fog/FOGLobbyZone.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/fog/FOGPlayer.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/minigame/fog}/FOGRewardsInterface.kt (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/fog/FOGWaitingZone.java (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fog/FogInteractionHandler.kt (69%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/fog/ReggieDialogue.kt (85%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/DeliveryBoxHandler.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/GCCompletionDialogue.kt (82%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/GCRewardTokenHandler.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/GnomeCookingConstants.kt (89%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/GnomeCookingJob.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/GnomeTipper.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/battas/GnomeBattaCooker.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/battas/GnomeBattaDishFiller.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/battas/GnomeBattaGarnisher.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/battas/GnomeBattaInterface.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/battas/GnomeBattaPrepareHandler.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/bowls/GnomeBowlCooker.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/bowls/GnomeBowlGarnisher.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/bowls/GnomeBowlInterface.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/bowls/GnomeBowlPrepareHandler.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/bowls/GnomebowlMouldFiller.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/cocktails/CocktailCooker.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/cocktails/CocktailFinisher.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/cocktails/CocktailShakerHandler.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/cocktails/GnomeCocktailInterface.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/cocktails/PourMixerPlugin.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/crunchies/GnomeCrunchyCooker.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/crunchies/GnomeCrunchyInterface.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt (93%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/ChamberGuardianDialogue.java (95%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/KolodionDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/KolodionNPC.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/KolodionSession.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/LundailDialogue.java (93%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/MageArenaNPC.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/MageArenaPlugin.java (95%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/magearena/MageArenaZone.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/AlchemyGuardianDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/CharmedWarriorDialogue.java (95%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/mta/EnchantSpell.kt (95%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/EnchantmentGuardianDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/EntranceGuardianDialogue.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/GraveyardGuardianDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/mta/MTAListeners.kt (68%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/MTAShop.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/MTAType.java (92%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/MTAZone.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/MageTrainingArenaPlugin.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/MazeGuardianDialogue.java (90%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/ProgressHatDialogue.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/RewardsGuardianDialogue.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/TelekineticGrabSpell.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/TelekineticGuardianDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/impl/AlchemistZone.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/impl/EnchantingZone.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/impl/GraveyardZone.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/mta/impl/TelekineticZone.java (98%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/pestcontrol}/OutpostSquireDialogue.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PCIslandZone.java (94%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PCLanderZone.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PCObjectHandler.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PCPortalNPC.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PCSquireNPC.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PestControlActivityPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/pestcontrol/PestControlHelper.kt (82%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PestControlSession.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/PestControlSquire.java (92%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/pestcontrol}/SquireDialogue.java (97%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/pestcontrol}/SquireMagicDialougue.java (94%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/pestcontrol}/SquireTypeDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/VoidSealPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/ai/minigamebots/pestcontrol => content/minigame/pestcontrol/bots}/CombatState.kt (93%) rename Server/src/main/{kotlin/rs09/game/ai/minigamebots/pestcontrol => content/minigame/pestcontrol/bots}/CombatStateIntermediate.kt (93%) rename Server/src/main/{kotlin/rs09/game/ai/minigamebots/pestcontrol => content/minigame/pestcontrol/bots}/PestControlIntermediateBot.kt (95%) rename Server/src/main/{kotlin/rs09/game/ai/minigamebots/pestcontrol => content/minigame/pestcontrol/bots}/PestControlNoviceBot.kt (95%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCBrawlerNPC.java (72%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCDefilerNPC.java (92%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCRavagerNPC.java (97%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCShifterNPC.java (93%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCSpinnerNPC.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCSplatterNPC.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/monsters/PCTorcherNPC.java (92%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/reward/PCIslandOptionPlugin.java (90%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/reward/PCRewardInterface.java (99%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pestcontrol/reward/VoidKnightDialogue.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/puropuro/ElnockInquisitorDialogue.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/puropuro/FairyAerykaDialogue.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/puropuro/ImpDefenderNPC.java (92%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/puropuro/PuroPuroPlugin.java (99%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/puropuro/WanderingImplingDialogue.java (95%) create mode 100644 Server/src/main/content/minigame/pyramidplunder/GuardianMummyDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/pyramidplunder/PharaohSceptre.kt (90%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/pyramidplunder/PlunderData.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/pyramidplunder/PlunderUtils.kt (99%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/pyramidplunder/PyramidPlunderMinigame.kt (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pyramidplunder/PyramidPlunderMummyNPC.java (96%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pyramidplunder/PyramidPlunderNPC.java (98%) rename Server/src/main/{java/core/game/content/activity => content/minigame}/pyramidplunder/PyramidPlunderSwarmNPC.java (96%) rename Server/src/main/{java/core/game/interaction/npc => content/minigame/pyramidplunder}/RechargeSceptre.java (99%) rename Server/src/main/{java/core/game/interaction/npc => content/minigame/pyramidplunder}/SimonScepterInteraction.java (96%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/sorceress}/DelMontyDialogue.java (93%) rename Server/src/main/{java/core/game/interaction/object => content/minigame}/sorceress/GardenObjectsPlugin.kt (98%) rename Server/src/main/{java/core/game/content/dialogue => content/minigame/sorceress}/SorcceresDialouge.java (94%) rename Server/src/main/{java/core/game/interaction/npc/sorceress_app => content/minigame/sorceress}/SorceressApprenticeDialogue.java (97%) rename Server/src/main/{java/core/game/interaction/npc/sorceress_app => content/minigame/sorceress}/SorceressApprenticePlugin.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/minigame/sorceress}/SorceressElementalNPC.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/minigame}/sorceress/SorceressGardenObject.java (92%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/vinesweeper/Vinesweeper.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/minigame}/vinesweeper/VinesweeperDialogues.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/heroesguild => content/region/asgarnia/burthorpe/dialogue}/AchiettiesDialogue.kt (57%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/AjjatDialoguePlugin.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/AntonDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/BreocaDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/BurthorpeSoldierDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/CeolburgDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/DenulthDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/DunstanDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/EadburgDialogue.java (91%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/roguesden => content/region/asgarnia/burthorpe/dialogue}/EmeraldBenedictDialogue.kt (62%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/roguesden => content/region/asgarnia/burthorpe/dialogue}/EmeraldBenedictListener.kt (71%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/GamFredDialoue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/GhommalDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/HarrallakMenarous.java (98%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/HildDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/HistanDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/HygdDialogue.java (89%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/wguild => content/region/asgarnia/burthorpe/dialogue}/JadeDialogue.kt (66%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/KamfreenaDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/LidioDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/LillyDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/MartinThwaitDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/OcaDialogue.java (87%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/PendaDialogue.java (87%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/ReffDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/ServantDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/ShanomiDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/burthorpe}/dialogue/SloaneDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/burthorpe/handlers}/AntonNPC.java (95%) rename Server/src/main/{java/core/game/interaction/npc => content/region/asgarnia/burthorpe/handlers}/BurthorpeOptionPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/city => content/region/asgarnia/burthorpe/handlers}/BurthorpePlugin.java (89%) rename Server/src/main/{java/core/game/interaction/npc => content/region/asgarnia/burthorpe/handlers}/BurthorpeTrainNPC.java (98%) rename Server/src/main/{java/core/game/content/activity/guild => content/region/asgarnia/burthorpe/handlers}/HeroGuildPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/burthorpe/handlers}/KamfreenaNPC.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/burthorpe/handlers}/ShanomiNPC.java (96%) rename Server/src/main/{kotlin/rs09/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/WGuildListeners.kt (88%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/WarriorsGuild.java (94%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/animator/AnimatedArmour.java (93%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/animator/AnimationRoom.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/barrel/BarrelRoom.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/catapult/CatapultRoom.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/cyclopes/CyclopesRoom.java (96%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/dummy/DummyRoom.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/burthorpe/handlers}/wguild/shot/ShotPutRoom.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/CuffsDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/GrimgnashDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/IcyCavernDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/JeffDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/LakkiDwarfDialogue.java (90%) create mode 100644 Server/src/main/content/region/asgarnia/dialogue/MasterCrafterDialogue.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/NarfsDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/OracleDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/RustyDialogue.java (94%) create mode 100644 Server/src/main/content/region/asgarnia/dialogue/TannerDialogue.kt create mode 100644 Server/src/main/content/region/asgarnia/dialogue/TheDoorDialogues.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia}/dialogue/ThuroDialogue.java (99%) create mode 100644 Server/src/main/content/region/asgarnia/dialogue/ZandarHorfyreDialogue.kt create mode 100644 Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrogoDialogue.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia/dwarfmine}/dialogue/DrokarDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/dwarfmine}/dialogue/DwarfShopDialogue.java (90%) create mode 100644 Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarvenMineGuardDialogue.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia/dwarfmine}/dialogue/HuraDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/dwarfmine}/dialogue/MiningSkillCapeDwarfDialogue.java (97%) create mode 100644 Server/src/main/content/region/asgarnia/dwarfmine/dialogue/NurmofDialogue.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia/dwarfmine}/dialogue/RoladDialogue.java (89%) create mode 100644 Server/src/main/content/region/asgarnia/falador/dialogue/AmbassadorSpanfippleDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/falador => content/region/asgarnia/falador/dialogue}/ApprenticeWorkmanDialogue.kt (53%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/CassieDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/ChemistDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/DoricDialogue.java (98%) create mode 100644 Server/src/main/content/region/asgarnia/falador/dialogue/DrunkenManDialogue.kt rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FaladorGardenerDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FaladorManHouseDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FaladorShopKeeperDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FaladorSquireDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FaladorWomenParkDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/FlynnDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/HairdresserDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/HerquinDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/LucyPartyRoomDialoguePlugin.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/MakeOverMageDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/MiningGuildDwarf.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/PartyPeteDialoguePlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/falador => content/region/asgarnia/falador/dialogue}/RisingSunInnBartenderDialogue.kt (66%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/SarahFarmingPlugin.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/SirReniteeDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/SirTiffyCashienDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/SirVyvinDialogue.java (87%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/WayneDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/falador}/dialogue/WhiteKnightDialoguePlugin.java (92%) create mode 100644 Server/src/main/content/region/asgarnia/falador/dialogue/WorkmanDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/falador => content/region/asgarnia/falador/dialogue}/WysonTheGardenerDialogue.kt (96%) rename Server/src/main/{java/core/game/node/entity/npc/city/falador => content/region/asgarnia/falador/dialogue}/gardensupplier.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/asgarnia/falador/diary}/FaladorAchievementDiary.kt (88%) rename Server/src/main/{java/core/game/interaction/city => content/region/asgarnia/falador/handlers}/FaladorNodePlugin.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/bosses => content/region/asgarnia/falador/handlers}/GiantMoleNPC.java (97%) rename Server/src/main/{java/core/game/content/activity/guild => content/region/asgarnia/falador/handlers}/MiningGuildPlugin.java (89%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/falador/handlers}/WantedPoster.java (93%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/falador/handlers}/partyroom/BalloonManager.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/falador/handlers}/partyroom/ChestViewer.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/falador/handlers/partyroom}/DropPartyLeverOptionPlugin.java (93%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/falador/handlers}/partyroom/PartyRoomPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/DoricsQuest.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/TheKnightsSword.java (99%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/blackknightsfortress/BKCabbagePlugin.java (94%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/blackknightsfortress/BKFortressPlugin.java (95%) rename Server/src/main/{java/core/game/content/dialogue => content/region/asgarnia/falador/quest/blackknightsfortress}/BKListenDialogue.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/falador/quest/blackknightsfortress}/BlackKnightNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/blackknightsfortress/BlackKnightsFortress.java (97%) rename Server/src/main/{java/core/game/content/dialogue => content/region/asgarnia/falador/quest/blackknightsfortress}/FortressGuardDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/falador/quest}/blackknightsfortress/SirAmikVarzeDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/goblinvillage}/dialogue/GoblinVillageDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/goblinvillage}/dialogue/GoblinVillageGuardDialogue.java (94%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/goblinvillage/handlers}/GoblinVillageNPC.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/goblinvillage/handlers}/GoblinVillagePopulationPlugin.java (94%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/goblinvillage/quest}/goblindiplomacy/GDiplomacyCutscene.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/goblinvillage/quest}/goblindiplomacy/GoblinDiplomacy.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/goblinvillage/quest}/goblindiplomacy/GoblinDiplomacyPlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/goblinvillage/quest}/goblindiplomacy/GrubFoot.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/goblinvillage/quest}/goblindiplomacy/GrubfootDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/activity/guild/crafting => content/region/asgarnia/handlers}/CraftingGuildListeners.kt (71%) rename Server/src/main/{kotlin/rs09/game/interaction/region/falador => content/region/asgarnia/handlers}/WineOfZamorakInteraction.kt (72%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/AhabDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/BettyDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/GerrantDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/GrumDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/JackSeagullDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/KlarenseDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/LongbowBenDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/MonkOfEntranaDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/PortSarimBartenderDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/PortSarimBrianDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/RedbeardFrankDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/TakiDwarfDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/portsarim}/dialogue/WydinDialogue.java (97%) rename Server/src/main/{java/core/game/interaction/city/portsarim => content/region/asgarnia/portsarim/handlers}/AhabBeerInteraction.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/portsarim/handlers}/ElementalWizardNPC.java (97%) rename Server/src/main/{java/core/game/interaction/city => content/region/asgarnia/portsarim/handlers}/PortSarimPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/portsarim/handlers}/PortsObjectPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/npc => content/region/asgarnia/portsarim/handlers}/SeamanPlugin.java (93%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/portsarim/handlers}/WydinDoorPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/quest/pirates_treasure => content/region/asgarnia/portsarim/quest/piratestreasure}/GardenerNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/portsarim/quest}/piratestreasure/PiratesTreasure.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/portsarim/quest}/piratestreasure/PiratesTreasurePlugin.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/AnjaDialoguePlugin.java (95%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/BrianArcheryDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/HengelDialoguePlugin.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/HettyDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/RimmingtonShopKeeperDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/rimmington}/dialogue/RoomikDialogue.java (91%) rename Server/src/main/{java/core/game/content/quest/free => content/region/asgarnia/rimmington/quest/witchpotion}/WitchsPotion.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/rimmington/quest/witchpotion}/WitchsPotionPlugin.java (94%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/BernaldDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/BrianORichardDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/JatixDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/KaqemeexDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/PetshopOwnerTaverly.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/PikkupstixDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/SanfewDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/TeegidDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/taverley}/dialogue/TostigDialogue.java (93%) create mode 100644 Server/src/main/content/region/asgarnia/taverley/dialogue/VelrakDialogue.kt rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/taverley/handlers}/ArmourSuitNPC.java (94%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/taverley/handlers}/CrystalChestPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/asgarnia/taverley/handlers}/CrystalKeyObjectPlugin.java (90%) rename Server/src/main/{kotlin/rs09/game/interaction/region/dungeons/taverley => content/region/asgarnia/taverley/handlers}/TaverleyDungeonListeners.kt (57%) rename Server/src/main/{java/core/game/interaction/city => content/region/asgarnia/taverley/handlers}/TaverlyDungeonPlugin.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/DruidicRitual.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/WolfWhistle.java (99%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/BallInteraction.java (92%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/BoyDialoguePlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/ExperimentSession.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/MouseNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/NoraTHaggNPC.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/WitchsDiaryBook.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/WitchsExperimentNPC.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/WitchsHouse.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/asgarnia/taverley/quest}/witchshouse/WitchsHousePlugin.java (98%) rename Server/src/main/{java/core/game/content => content/region/asgarnia/trollheim}/dialogue/GWDKnightDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/asgarnia/trollheim/handlers}/ThrowerTrollNPC.java (97%) rename Server/src/main/{java/core/game/interaction/city => content/region/asgarnia/trollheim/handlers}/TrollheimPlugin.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/EcumenicalKeyHandler.java (100%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GWDGraardorSwingHandler.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GWDKreeArraSwingHandler.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GWDTsutsarothSwingHandler.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GWDZilyanaSwingHandler.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodWarsFaction.java (90%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodWarsMinionNPC.java (96%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodWarsNPC.java (95%) rename Server/src/main/{java/core/game/content/dialogue => content/region/asgarnia/trollheim/handlers/gwd}/GodswordDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodwarsBossNPC.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodwarsEntranceHandler.java (96%) rename Server/src/main/{java/core/game/content/activity => content/region/asgarnia/trollheim/handlers}/gwd/GodwarsMapzone.java (99%) rename Server/src/main/{java/core/game/content/zone => content/region/asgarnia/trollheim/handlers/gwd}/IcePathZone.java (96%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/AablaDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/alkharid => content/region/desert/alkharid/dialogue}/AlKharidHealListener.kt (64%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/alkharid => content/region/desert/alkharid/dialogue}/AlKharidShopKeeperDialogue.kt (62%) rename Server/src/main/{java/core/game/node/entity/npc/city/alkharid => content/region/desert/alkharid/dialogue}/AlTheCamelDialogue.java (91%) rename Server/src/main/{java/core/game/node/entity/npc/city/alkharid => content/region/desert/alkharid/dialogue}/AliMorrisaneDialogue.java (96%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/AliTheFarmerDialogue.kt create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/AliTheGuard.kt create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/alkharid => content/region/desert/alkharid/dialogue}/AliTheLeafletDropperListener.kt (53%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/AliTheSmithDialogue.kt rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/BorderGuardDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/DommikDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/EllyTheCamelDialogue.java (92%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/FadliDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/alkharid => content/region/desert/alkharid/dialogue}/GemTraderDialogue.kt (91%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/HassanDialogue.java (97%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/JaraahDialogue.kt rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/KarimDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/LouiLegsDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/OllieTheCamelDialogue.java (88%) rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/RanaelDialogue.java (90%) create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/SabreenDialogue.kt create mode 100644 Server/src/main/content/region/desert/alkharid/dialogue/SurgeonGeneralTafaniDialogue.kt rename Server/src/main/{java/core/game/content => content/region/desert/alkharid}/dialogue/ZekeDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/zone => content/region/desert/alkharid/handlers}/AlKharidStairsPlugin.kt (89%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/desert/alkharid/handlers}/AlKharidWarriorNPC.kt (96%) rename Server/src/main/{java/core/game/interaction/npc => content/region/desert/alkharid/handlers}/TanningNPC.java (86%) rename Server/src/main/{java/core/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/LadyKeliDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/LadyKeliNPC.java (91%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/NedPARDialogue.kt (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/PrinceAliRescue.java (99%) rename Server/src/main/{java/core/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/PrinceAliRescuePlugin.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/desert/alkharid/quest}/princealirescue/WigDyePlugin.java (95%) rename Server/src/main/{java/core/game/interaction/city => content/region/desert/bedabin/handlers}/BedabinPlugin.java (97%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/CamelDialoguePlugin.java (90%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/EblisDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/RugMerchantDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/ShantayDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/ShantayGuard.java (94%) rename Server/src/main/{java/core/game/content => content/region/desert}/dialogue/SimonTempleton.java (98%) rename Server/src/main/{java/core/game/content/zone => content/region/desert/handlers}/DesertZone.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/desert/handlers}/KalphiteEntranceHandler.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/bosses => content/region/desert/handlers}/KalphiteQueenNPC.java (97%) rename Server/src/main/{java/core/game/interaction/city => content/region/desert/handlers}/KhardianDesertPlugin.java (93%) rename Server/src/main/{java/core/game/interaction/object => content/region/desert/handlers}/KhardianInteractionPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/npc => content/region/desert/handlers}/ShantayOptionPlugin.java (91%) rename Server/src/main/{java/core/game/interaction/object => content/region/desert/handlers}/ShantayPassPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/desert/handlers}/TollGateOptionPlugin.java (85%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/AliTheCarter.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/ArtimeusDialogue.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/Awusah.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/Ghaslor.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/Kazemde.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/nardah => content/region/desert/nardah/dialogue}/Nkuku.kt (54%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/Rokuh.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/city/nardah => content/region/desert/nardah/dialogue}/Seddu.java (93%) rename Server/src/main/{java/core/game/interaction/npc => content/region/desert/nardah/handlers}/ZahurOptionPlugin.java (89%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/AliCamelMan.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/AliTheCamelHandler.java (94%) create mode 100644 Server/src/main/content/region/desert/pollniv/dialogue/AliTheHagDialogue.kt rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/AliTheKebabSeller.java (98%) create mode 100644 Server/src/main/content/region/desert/pollniv/dialogue/AliTheMayorDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/pollnivneach => content/region/desert/pollniv/dialogue}/AliTheOperator.kt (51%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/BlackJackSeller.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/DesertBandit.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/dialogue}/StreetUrchinDialogue.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/pollnivneach => content/region/desert/pollniv/handlers}/SnakeCharmerBasket.java (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/desert/quest}/deserttreasure/ArchaeologistDialogue.kt (67%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/desert/quest}/deserttreasure/DesertTreasure.kt (100%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/icthlarinslittlehelper/WandererDialogue.java (89%) create mode 100644 Server/src/main/content/region/desert/quest/thegolem/TheGolemDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/desert/quest}/thegolem/TheGolemQuest.kt (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/AlShabimDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/AnaDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/BedabinNomadDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/CaptainSiadDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/DesertGuardDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/IrenaDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MaleSlaveDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MercenaryCaptainDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MercenaryDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MineSlaveNPC.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MinecartDriverDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/MiningCampZone.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/RowdySlaveNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/TouristTrap.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/desert/quest}/thetouristrap/TouristTrapPlugin.java (98%) create mode 100644 Server/src/main/content/region/desert/sophanem/dialogue/EmbalmerDialogue.kt rename Server/src/main/{java/core/game/node/entity/npc/city/sophanem => content/region/desert/sophanem/dialogue}/KlenterNPC.java (88%) rename Server/src/main/{java/core/game/node/entity/npc/city/sophanem => content/region/desert/sophanem/dialogue}/SphinxDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/sophanem => content/region/desert/sophanem/dialogue}/TarikDialogue.kt (92%) rename Server/src/main/{java/core/game/interaction/city => content/region/desert/sophanem/handlers}/SophanemPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/city/sophanem => content/region/desert/sophanem/handlers}/WallShortcut.java (96%) rename Server/src/main/{java/core/game/content => content/region/fremennik}/dialogue/CaptainBentleyDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/fremennik}/dialogue/JossikDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/fremennik}/dialogue/LokarSearunnerDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/fremennik/diary}/FremennikAchievementDiary.kt (84%) rename Server/src/main/{java/core/game/content/zone/fremmenik => content/region/fremennik/handlers}/FremmenikPlugin.java (93%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/fremennik/handlers}/HonourGuardGFI.kt (95%) rename Server/src/main/{java/core/game/content/zone/rellekka => content/region/fremennik/handlers}/LightHousePlugin.java (91%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/fremennik/handlers}/TarBarrelListener.kt (91%) create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/CitizenDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/EricDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/GruvaPatrullDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/LeftieRightieDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/MinerDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/jatizso => content/region/fremennik/jatizso/dialogue}/MordGunnarsDialogue.kt (53%) create mode 100644 Server/src/main/content/region/fremennik/jatizso/dialogue/TowerGuardDialogue.kt rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/fremennik/jatizso/handlers}/IceTrollJatizsoCaves.kt (93%) rename Server/src/main/{kotlin/rs09/game/interaction/region/rellekka => content/region/fremennik/jatizso/handlers}/JatizsoListeners.kt (89%) create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/BabaYagaDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lunarisle => content/region/fremennik/lunarisle/dialogue}/BouquetMacHyacinthDialogue.kt (50%) create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/CabinBoyDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/MelenaMoonlanderDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/PaulinePolarisDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/RimaeSirsalisDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/lunarisle/dialogue/SeleneDialog.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lunarisle => content/region/fremennik/lunarisle/dialogue}/SirsalBankerDialogue.kt (71%) rename Server/src/main/{java/core/game/interaction/city => content/region/fremennik/lunarisle/handlers}/LunarIslePlugin.java (96%) rename Server/src/main/{java/core/game/content => content/region/fremennik/neitiznot}/dialogue/AnnaIsaakson.java (93%) create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/FridleifShieldsonDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/GunnarHoldstromDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/JofridrMordstatterDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/KjedeligUppsenDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/LisseIsaaksonDialogue.kt rename Server/src/main/{java/core/game/content/zone/neitiznot => content/region/fremennik/neitiznot/dialogue}/MawnisBurowgarDialogue.java (96%) create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/MortenHoldstromDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/SlugHemliggsenDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradSigmundsonDialogue.kt rename Server/src/main/{java/core/game/content/zone/neitiznot => content/region/fremennik/neitiznot/dialogue}/ThakkradYakDialogue.java (95%) create mode 100644 Server/src/main/content/region/fremennik/neitiznot/dialogue/TrogenKonungardeDialogue.kt rename Server/src/main/{kotlin/rs09/game/interaction/region/rellekka => content/region/fremennik/neitiznot/handlers}/NeitiznotListeners.kt (78%) rename Server/src/main/{java/core/game/content/zone/neitiznot => content/region/fremennik/neitiznot/handlers}/NeitiznotZone.java (86%) rename Server/src/main/{java/core/game/content/zone/neitiznot => content/region/fremennik/neitiznot/handlers}/YakArmourPlugin.java (93%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/fremennik/neitiznot/handlers}/YakNPC.kt (93%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/BjornAndEldgrimDialogues.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/BlaninDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/CouncilWorkerDialogue.kt (64%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/CouncilWorkerDiaryDialogue.kt (76%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/DronDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/FishmongerRellekkaDialogue.kt (50%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/FurTraderDialogue.kt (50%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/HuntingExpertRellekkaDialogue.kt (59%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/IngridHradsonDialogue.kt rename Server/src/main/{java/core/game/content/zone/rellekka => content/region/fremennik/rellekka/dialogue}/JarvaldDialogue.java (98%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/LonghallBouncerDialogue.kt rename Server/src/main/{java/core/game/content/zone/rellekka => content/region/fremennik/rellekka/dialogue}/MariaGunnarsDialogue.java (88%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/ReesoDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/TalkToChiefDialogue.kt (54%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/dialogue/VolfOlasfsonDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/rellekka => content/region/fremennik/rellekka/dialogue}/WaitingOnTheShowDialogues.kt (54%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/fremennik/rellekka/handlers}/FremennikGuards.kt (93%) rename Server/src/main/{kotlin/rs09/game/interaction/region/rellekka => content/region/fremennik/rellekka/handlers}/RellekkaListeners.kt (86%) rename Server/src/main/{kotlin/rs09/game/util/region/rellekka => content/region/fremennik/rellekka/handlers}/RellekkaUtils.kt (94%) rename Server/src/main/{java/core/game/content/zone/rellekka => content/region/fremennik/rellekka/handlers}/RellekkaZone.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/fremennik/rellekka/handlers}/RockCrabNPC.java (95%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/AskeladdenDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ChieftanBrundtDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/CouncilWorkerFTDialogue.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/Draugen.kt (91%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FishermanDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikSailorDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/FremennikTrials.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/HunterTalismanListener.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/KoscheiNPC.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/KoscheiSession.kt (92%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LalliDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/LonghallStageZone.kt (88%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ManniDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/OlafTheBard.kt (53%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PeerTheSeerDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/PoisonSalesman.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/SeerLockInterfaceListener.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/SeersHouseListeners.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/SigliTheHuntsman.kt (60%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigmundDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SkulgrimenDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SwensenTheNavigator.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/fremennik/rellekka/quest}/thefremenniktrials/TFTInteractionListeners.kt (92%) create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThoraDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThorvaldDialogue.kt create mode 100644 Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/YrsaDialogue.kt rename Server/src/main/{java/core/game/content/zone/wbisland => content/region/fremennik/waterbirth/handlers}/DagannothKingNPC.java (98%) rename Server/src/main/{java/core/game/content/zone/wbisland => content/region/fremennik/waterbirth/handlers}/SpinolypNPC.java (95%) rename Server/src/main/{java/core/game/content/zone/wbisland => content/region/fremennik/waterbirth/handlers}/WaterBirthDungeonZone.java (97%) rename Server/src/main/{java/core/game/content/zone/wbisland => content/region/fremennik/waterbirth/handlers}/WaterBirthIslandZone.java (97%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/ArdougneBaker.java (94%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/ArdougneShopKeeperPlugin.java (93%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/CaptainBarnabyDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ardougne => content/region/kandarin/ardougne/dialogue}/ChadwellDialogue.kt (50%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/GemMerchantDialogue.java (89%) create mode 100644 Server/src/main/content/region/kandarin/ardougne/dialogue/MonkeyChildThingZooDialogue.kt rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/SilkMerchantPlugin.java (96%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/SilkTradeDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/SilverMechantPlugin.java (90%) rename Server/src/main/{java/core/game/content => content/region/kandarin/ardougne}/dialogue/SpiceSellerPlugin.java (89%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ardougne => content/region/kandarin/ardougne/dialogue}/ZookeeperDialogue.kt (53%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/ardougne/handlers}/WildernessLeverPlugin.java (97%) create mode 100644 Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherCedricNPC.kt create mode 100644 Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherOmadNPC.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/ardougne/quest}/monksfriend/MonasteryMonkNPC.kt (61%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/ardougne/quest}/monksfriend/MonksFriend.kt (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/GateInteractionHandler.java (87%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/HalgriveDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/HerderSheepNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/IncineratorHandler.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/OrbonDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/ProdActionHandler.java (92%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/SheepHerder.java (99%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/ardougne/quest}/sheepherder/SheepPoisonHandler.java (93%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/kandarin}/barcrawl/BarcrawlDialogue.java (92%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/kandarin}/barcrawl/BarcrawlManager.java (97%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/kandarin}/barcrawl/BarcrawlType.java (99%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/catherby => content/region/kandarin/catherby/dialogue}/ArheinDialogue.kt (73%) rename Server/src/main/{java/core/game/content => content/region/kandarin/catherby}/dialogue/CandleSellerPlugin.java (98%) rename Server/src/main/{java/core/game/content => content/region/kandarin/catherby}/dialogue/HarryDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/kandarin/catherby}/dialogue/HicktonDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/kandarin/catherby}/dialogue/VanessaDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ourania => content/region/kandarin/dialogue}/EniolaDialogue.kt (67%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ourania => content/region/kandarin/dialogue}/EniolaListener.kt (80%) rename Server/src/main/{java/core/game/content => content/region/kandarin}/dialogue/GalahadDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ottosgrotto => content/region/kandarin/dialogue}/OttoGodblessedDialogue.kt (61%) rename Server/src/main/{java/core/game/content => content/region/kandarin}/dialogue/StankersDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/kandarin/feldip}/dialogue/HuntingExpert.java (98%) rename Server/src/main/{java/core/game/interaction/npc => content/region/kandarin/feldip/gutanoth/handlers}/BogrogPlugin.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction/npc => content/region/kandarin/feldip/gutanoth/handlers}/BogrogPouchSwapper.kt (92%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/kandarin/feldip/gutanoth/handlers}/GutanothChestPlugin.kt (89%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ooglog => content/region/kandarin/feldip/ooglog/dialogue}/BalneaDialogue.kt (64%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/ooglog => content/region/kandarin/feldip/ooglog/dialogue}/OgressBankerDialogue.kt (70%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/BloatedToadNPC.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/ChompyBird.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/ChompyBirdDialogues.kt (53%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/ChompyBirdNPC.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/ChompyHat.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/feldip/quest}/chompybird/RantzNPC.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/grandtree => content/region/kandarin/gnomestronghold/dialogue}/AluftGianneJrDialogue.kt (63%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/grandtree => content/region/kandarin/gnomestronghold/dialogue}/AluftGianneSnrDialogue.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/grandtree => content/region/kandarin/gnomestronghold/dialogue}/BlurberryDialogue.kt (91%) rename Server/src/main/{java/core/game/content => content/region/kandarin/gnomestronghold}/dialogue/GnomeTrainerPlugin.java (95%) rename Server/src/main/{java/core/game/interaction/city => content/region/kandarin/gnomestronghold/handlers}/GnomeStrongholdPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity/guild => content/region/kandarin/guilds}/FishingGuild.java (95%) rename Server/src/main/{java/core/game/content/activity/guild => content/region/kandarin/guilds}/WizardGuildPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/handlers}/BeehivePlugin.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/kandarin/handlers}/RasoloNPC.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/handlers}/SinclairFlourBarrelPlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/content/zone => content/region/kandarin/handlers}/StoneCircleZone.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/piscatoris => content/region/kandarin/pisc/dialogue}/ArnoldLydsporDialogue.kt (69%) rename Server/src/main/{java/core/game/content => content/region/kandarin/pisc}/dialogue/MathiasFlaconryDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/kandarin/pisc/handlers}/SeaweedNetHandler.kt (90%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/CaptainLawgofDialogue.java (99%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/CaptainLawgofNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/DwarfCannon.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/DwarfCannonPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/LollkDialogue.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/dwarfcannon/NulodionDialogue.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/quest/dwarfcannon}/dmc/DMCHandler.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/quest/dwarfcannon}/dmc/DMCRevolution.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/quest/dwarfcannon}/dmc/DMCZone.java (95%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/quest/dwarfcannon}/dmc/DwarfMultiCannonPlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/BigDaveDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/BonzoDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/DwarfDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/FenceInteraction.java (92%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/FishingContest.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/FishingContestCutscene.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/FishingSpotInteraction.java (93%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/ForesterDialogue.java (88%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/GarlicPipeInteraction.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/GateInteraction.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/JoshuaDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/MorrisDialogue.java (93%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/SinisterStrangerDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/StairInteraction.java (90%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/VineInteraction.java (92%) rename Server/src/main/{java/core/game/content/quest/members => content/region/kandarin/quest}/fishingcontest/grandpaJack.java (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/BallistaDialogue.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/CommanderMontaiDialogue.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/ElkoyDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/KhazardWarlordDialogue.kt (84%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/KhazardWarlordNPC.kt (78%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/KingBolrenDialogue.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/LieutenantSchepburDialogue.kt (90%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/LocalGnomeDialogue.kt (72%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/RemsaiDialogue.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/TrackerGnomeOneDialogue.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/TrackerGnomeThreeDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/TrackerGnomeTwoDialogue.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/TreeGnomeVillage.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/tree/TreeGnomeVillageListeners.kt (92%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/AlmeraDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/BookOnBaxtorianPlugin.java (95%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/GolrieDialogue.java (92%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/HadleyDialogue.java (90%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/HudonDialogue.java (94%) rename Server/src/main/{java/core/game/content/dialogue => content/region/kandarin/quest/waterfall}/MithrilSeedsDialogue.java (94%) rename Server/src/main/{java/core/game/content/dialogue => content/region/kandarin/quest/waterfall}/MithrilSeedsPlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/WaterFall.java (99%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/quest}/waterfall/WaterfallListeners.kt (56%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/WaterfallPlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/members/waterfallquest => content/region/kandarin/quest/waterfall}/WaterfallTreeDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/kandarin/seers}/dialogue/CamelotGuardDialogue.java (89%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/legendsguild => content/region/kandarin/seers/dialogue}/FionellaDialogue.kt (54%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/seersvillage => content/region/kandarin/seers/dialogue}/GeoffreyDialogue.kt (93%) rename Server/src/main/{java/core/game/content => content/region/kandarin/seers}/dialogue/IgnatiusVulcanDialogue.java (97%) create mode 100644 Server/src/main/content/region/kandarin/seers/dialogue/LegendsGuardDialogue.kt rename Server/src/main/{java/core/game/content => content/region/kandarin/seers}/dialogue/PhantuwtiFantstuwiFarSight.java (95%) rename Server/src/main/{java/core/game/content => content/region/kandarin/seers}/dialogue/SeerBartenderDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/kandarin/seers}/dialogue/SeerDialoguePlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/kandarin/seers/diary}/SeersVillageAchivementDiary.kt (89%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/seers/handlers}/BuyCrateOptionPlugin.java (84%) rename Server/src/main/{java/core/game/interaction/city => content/region/kandarin/seers/handlers}/CamelotNodePlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/diary/seers => content/region/kandarin/seers/handlers}/MysteriousStatueZone.kt (97%) rename Server/src/main/{java/core/game/content/activity/guild => content/region/kandarin/seers/handlers}/RangingGuildPlugin.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/region/kandarin/seers/handlers}/SeersCageUnlockPlugin.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/diary/seers => content/region/kandarin/seers/handlers}/SeersCourthouseZone.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/elementalworkshop/BatteredBookHandler.kt (79%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/elementalworkshop/EWListeners.kt (96%) create mode 100644 Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/elementalworkshop/ElementalRockNPC.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/elementalworkshop/ElementalWorkshopQuest.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/elementalworkshop/SlashedBookHandler.kt (79%) create mode 100644 Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ArheinMCDialogue.kt rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/BeggarDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/CandleMakerDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/CrateCutscenePlugin.java (92%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/KingArthurDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/MerlinCrystal.java (98%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/MerlinCrystalOptionPlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/MerlinCrystalPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/RenegadeKnightDialogue.java (94%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirGawainDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirKayDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirLancelotDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirLucan.java (94%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirMordredNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/SirPalomedes.java (92%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/kandarin/seers/quest}/merlinsquest/TheLadyOfTheLake.kt (92%) rename Server/src/main/{java/core/game/content/quest/members/merlinscrystal => content/region/kandarin/seers/quest/merlinsquest}/ThrantaxDialogue.java (95%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/witchaven => content/region/kandarin/witchhaven/dialogue}/BrotherMaledictDialogue.kt (59%) create mode 100644 Server/src/main/content/region/kandarin/witchhaven/dialogue/CarolineDialogue.kt create mode 100644 Server/src/main/content/region/kandarin/witchhaven/dialogue/ColONiallDialogue.kt create mode 100644 Server/src/main/content/region/kandarin/witchhaven/dialogue/EzekialLovecraftDialogue.kt create mode 100644 Server/src/main/content/region/kandarin/witchhaven/dialogue/HolgartDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/witchaven => content/region/kandarin/witchhaven/dialogue}/JebDialogue.kt (60%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/witchaven => content/region/kandarin/witchhaven/dialogue}/MayorHobbDialogue.kt (57%) create mode 100644 Server/src/main/content/region/kandarin/witchhaven/dialogue/WitchhavenVillageDialogue.kt rename Server/src/main/{java/core/game/content => content/region/kandarin/yanille}/dialogue/AleckDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/kandarin/yanille}/dialogue/FenitasDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/kandarin/yanille}/dialogue/LeonDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/kandarin/yanille}/dialogue/MagicStoreDialogue.java (93%) rename Server/src/main/{kotlin/rs09/game/content/zone => content/region/kandarin/yanille/handlers}/YanilleAgilityDungeon.kt (90%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/AlfonseWaiterDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/BrimhavenBartenderDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/BrimhavenPirateDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/CapnIzzyDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/DavonDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/GarvDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/GruborDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/LubufuDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/PirateJackieDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/SandyDialogue.java (85%) rename Server/src/main/{java/core/game/content => content/region/karamja/brimhaven}/dialogue/SanibochDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/region/dungeons/brimhaven => content/region/karamja/brimhaven/handlers}/BrimhavenDungeonListeners.kt (81%) rename Server/src/main/{kotlin/rs09/game/interaction/region/dungeons/brimhaven => content/region/karamja/brimhaven/handlers}/BrimhavenUtils.kt (86%) rename Server/src/main/{java/core/game/interaction/npc => content/region/karamja/brimhaven/handlers}/SanibochPlugin.java (92%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/CaptainShanksDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/CustomsOfficerDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/JungleForesterDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/KaramajaManDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/LuthasDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/MonkeyDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/karamja}/dialogue/ZamboDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/karamja/diary}/KaramjaAchievementDiary.kt (87%) rename Server/src/main/{java/core/game/content/dialogue => content/region/karamja/handlers}/BananaCrateDialogue.java (95%) rename Server/src/main/{java/core/game/content/zone => content/region/karamja/handlers}/CairnIslandZone.java (96%) rename Server/src/main/{java/core/game/interaction/npc => content/region/karamja/handlers}/CustomsOfficerPlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/karamja/handlers}/JungleBushHandler.kt (91%) rename Server/src/main/{java/core/game/interaction/city => content/region/karamja/handlers}/KaramajaOptionPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/karamja/handlers}/MossGiantRopePlugin.java (94%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/karamja/handlers}/TribesmanNPC.java (91%) rename Server/src/main/{java/core/game/content/quest/members => content/region/karamja/quest}/junglepotion/JunglePotion.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/karamja/quest}/junglepotion/JunglePotionPlugin.java (94%) rename Server/src/main/{java/core/game/content/quest/members => content/region/karamja/quest}/junglepotion/TrufitusDialogue.java (98%) create mode 100644 Server/src/main/content/region/karamja/quest/tribaltotem/ArdougneGuideBook.kt create mode 100644 Server/src/main/content/region/karamja/quest/tribaltotem/CrompertyDialogue.kt create mode 100644 Server/src/main/content/region/karamja/quest/tribaltotem/GPDTEmployeeDialogue.kt create mode 100644 Server/src/main/content/region/karamja/quest/tribaltotem/HoracioDialogue.kt create mode 100644 Server/src/main/content/region/karamja/quest/tribaltotem/KangaiMauDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/karamja/quest}/tribaltotem/TTDoorCodeInterfaceListener.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/karamja/quest}/tribaltotem/TribalTotemListeners.kt (88%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/karamja/quest}/tribaltotem/TribalTotemQuest.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/shilovillage => content/region/karamja/shilo/dialogue}/FernaheiDialogue.kt (54%) rename Server/src/main/{java/core/game/content => content/region/karamja/shilo}/dialogue/KalebParamaya.java (97%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/shilovillage => content/region/karamja/shilo/dialogue}/ObliDialogue.kt (58%) rename Server/src/main/{java/core/game/content => content/region/karamja/shilo}/dialogue/SeravelDialogue.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/karamja/shilo/handlers}/BrokenCartBypass.java (95%) rename Server/src/main/{java/core/game/interaction/city => content/region/karamja/shilo/handlers}/ShiloVillagePlugin.java (97%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/taibwowannai => content/region/karamja/taibwo/dialogue}/GabootyDialogue.kt (70%) rename Server/src/main/{java/core/game/content => content/region/karamja/taibwo}/dialogue/JiminuaDialogue.java (96%) rename Server/src/main/{java/core/game/interaction/npc => content/region/karamja/taibwo/handlers}/GabootyTrade.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/city/tzhaar => content/region/karamja/tzhaar/handlers}/TzHaarMejJah.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/city/tzhaar => content/region/karamja/tzhaar/handlers}/TzHaarMejKah.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/bosses => content/region/karamja/tzhaar/handlers}/TzRekJadNPC.java (96%) rename Server/src/main/{java/core/game/interaction/city => content/region/karamja/tzhaar/handlers}/TzhaarCityPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity/tzhaar => content/region/karamja/tzhaar/handlers}/TzhaarFightCaveNPC.java (98%) rename Server/src/main/{java/core/game/content/activity/tzhaar => content/region/karamja/tzhaar/handlers}/TzhaarFightCavesPlugin.java (96%) rename Server/src/main/{java/core/game/content/activity/tzhaar => content/region/karamja/tzhaar/handlers}/TzhaarFightPitsPlugin.java (98%) rename Server/src/main/{java/core/game/content/zone => content/region/karamja/tzhaar/handlers}/TzhaarZone.java (94%) create mode 100644 Server/src/main/content/region/misc/apeatoll/dialogue/bananaplantation/BonzaraDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/apeatoll => content/region/misc/apeatoll/dialogue}/dungeon/ZooknockDialogue.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/apeatoll => content/region/misc/apeatoll/dialogue}/dungeon/ZooknockDialogueFile.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/apeatoll => content/region/misc/apeatoll/dialogue}/marim/AberabDialogue.kt (59%) create mode 100644 Server/src/main/content/region/misc/apeatoll/dialogue/marim/DagaDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/apeatoll => content/region/misc/apeatoll/dialogue}/marim/ElderGuardDialogue.kt (50%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/apeatoll => content/region/misc/apeatoll/dialogue}/marim/MuruwoiDialogue.kt (62%) rename Server/src/main/{kotlin/rs09/game/interaction/object/dialogues => content/region/misc/apeatoll/quest/monkeymadness}/CrateDialogues.kt (98%) rename Server/src/main/{kotlin/rs09/game/interaction/object/objects => content/region/misc/apeatoll/quest/monkeymadness}/CrateHandler.kt (94%) rename Server/src/main/{java/core/game/content/zone => content/region/misc/crandor/handlers}/CrandorZone.java (95%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/misc/enchvalley/handlers}/EnchantedValleyListeners.kt (90%) rename Server/src/main/{java/core/game/content => content/region/misc/entrana}/dialogue/CaveMonk.java (95%) rename Server/src/main/{java/core/game/content => content/region/misc/entrana}/dialogue/ConeDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/misc/entrana}/dialogue/EntranaChurchMonk.java (89%) rename Server/src/main/{java/core/game/content => content/region/misc/entrana}/dialogue/FrincosDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/misc/entrana}/dialogue/FritzGlassBlowerDialogue.java (98%) create mode 100644 Server/src/main/content/region/misc/entrana/dialogue/HighPriestEntranaDialogue.kt create mode 100644 Server/src/main/content/region/misc/entrana/dialogue/MazionDialogue.kt rename Server/src/main/{java/core/game/interaction/city => content/region/misc/entrana/handlers}/EntranaObjectPlugin.java (93%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/etceteria => content/region/misc/etceteria/dialogue}/FishmongerEtcDialogue.kt (55%) create mode 100644 Server/src/main/content/region/misc/keldagrim/dialogue/AgmundiDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/worldwide => content/region/misc/keldagrim/dialogue}/BlackGuardDialogue.kt (73%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/dialogue}/CartConductorDialogue.kt (84%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/dialogue}/DwarvenBoatmanDialogue.kt (85%) create mode 100644 Server/src/main/content/region/misc/keldagrim/dialogue/InnKeeperDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/dialogue}/JorzikDialogue.kt (84%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/keldagrim => content/region/misc/keldagrim/dialogue}/NolarDialogue.kt (60%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/dialogue}/OrdanDialogue.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/dialogue}/Reinald.kt (84%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/handlers}/KeldagrimCartMethods.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/handlers}/KeldagrimPlugin.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/zone/keldagrim => content/region/misc/keldagrim/handlers}/ReinaldSmithingEmporiumInterface.kt (99%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/AlvissDialogue.kt (51%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/DerrikDialogue.kt (54%) create mode 100644 Server/src/main/content/region/misc/miscellania/dialogue/DonalDialogue.kt create mode 100644 Server/src/main/content/region/misc/miscellania/dialogue/FerdDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/FinnDialogue.kt (54%) create mode 100644 Server/src/main/content/region/misc/miscellania/dialogue/FishmongerMiscDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/FlowerGirlDialogue.kt (65%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/FullangrDialogue.kt (57%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/GreengrocerMiscDialogue.kt (66%) create mode 100644 Server/src/main/content/region/misc/miscellania/dialogue/HallaDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/JariDialogue.kt (52%) rename Server/src/main/{kotlin/rs09/game/content => content/region/misc/miscellania}/dialogue/KjallakOnChopDialogue.kt (71%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/MiscCitizenGoodDayDialogue.kt (62%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/OsvaldDialogue.kt (56%) create mode 100644 Server/src/main/content/region/misc/miscellania/dialogue/RunaDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/miscellania => content/region/misc/miscellania/dialogue}/ThorodinDialogue.kt (53%) create mode 100644 Server/src/main/content/region/misc/mosle/dialogue/CharleyDialogue.kt rename Server/src/main/{java/core/game/content => content/region/misc/mosle}/dialogue/MamaDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misc/mosle}/dialogue/PatchyDialogue.java (91%) create mode 100644 Server/src/main/content/region/misc/piratecove/dialogue/BeefyBurnsDialogue.kt create mode 100644 Server/src/main/content/region/misc/piratecove/dialogue/DaveyBoyDialogue.kt create mode 100644 Server/src/main/content/region/misc/piratecove/dialogue/EagleEyeShultzDialogue.kt create mode 100644 Server/src/main/content/region/misc/piratecove/dialogue/LecherousLeeDialogue.kt rename Server/src/main/{java/core/game/content => content/region/misc/tutisland}/dialogue/BankerTutorDialogue.java (98%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/SkipTutorialDialogue.kt (63%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/SurvivalExpertDialogue.kt (86%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialCombatInstructorDialogue.kt (64%) create mode 100644 Server/src/main/content/region/misc/tutisland/dialogue/TutorialFinanceAdvisorDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialMagicTutorDialogue.kt (81%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialMasterChefDialogue.kt (85%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialMiningInstructorDialogue.kt (60%) create mode 100644 Server/src/main/content/region/misc/tutisland/dialogue/TutorialPrayerDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialQuestGuideDialogue.kt (82%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/dialogue}/TutorialRSGuideDialogue.kt (79%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misc/tutisland/handlers}/RatTutorialNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misc/tutisland/handlers}/SkippyNPC.java (95%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/handlers}/TutorialEventReceivers.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/handlers}/TutorialFurnaceListener.kt (85%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/handlers}/TutorialListeners.kt (62%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/handlers}/TutorialLoginCheck.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/tutorial => content/region/misc/tutisland/handlers}/TutorialStage.kt (99%) rename Server/src/main/{java/core/game/content/quest/tutorials/tutorialisland => content/region/misc/tutisland/handlers/iface}/CharacterDesign.java (97%) create mode 100644 Server/src/main/content/region/misc/zanaris/dialogue/BlaecDialogue.kt create mode 100644 Server/src/main/content/region/misc/zanaris/dialogue/CoOrdinatorDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/zanaris => content/region/misc/zanaris/dialogue}/FairyChefDialogue.kt (56%) create mode 100644 Server/src/main/content/region/misc/zanaris/dialogue/FairyDialogue.kt create mode 100644 Server/src/main/content/region/misc/zanaris/dialogue/FairyFixit.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/zanaris => content/region/misc/zanaris/dialogue}/FairyShopAssistantDialogue.kt (60%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/misc/zanaris/handlers}/FairyRingPlugin.kt (92%) rename Server/src/main/{java/core/game/interaction/city => content/region/misc/zanaris/handlers}/ZanarisPlugin.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin/barbvillage}/dialogue/BarbarianDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/barbvillage}/dialogue/GunthorBraveDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/barbvillage}/dialogue/LitaraDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/barbvillage}/dialogue/PeksaDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/barbvillage}/dialogue/SigurdDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/barbvillage/handlers}/BarbarianNPC.java (95%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/BoxOfHealthDialogue.java (94%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/barbvillage/stronghold}/CatableponNPC.java (90%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/CradleOfLifeDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/GiftOfPeaceDialogue.java (94%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/GrainOfPlentyDialogue.java (94%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/barbvillage/stronghold}/SkullSceptreDialogue.java (92%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/StrongHoldSecurityPlugin.java (99%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/GuardDialoguePlugin.java (95%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/PSOptionHandler.java (80%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/PlayerSafetyTest.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/ProfessorHenryDialogue.java (97%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/SafetyMapZone.java (75%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/barbvillage}/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/barbvillage/stronghold/playersafety}/Student.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin}/dialogue/HoodedMonkDialogue.java (90%) rename Server/src/main/{java/core/game/content => content/region/misthalin}/dialogue/ResearcherDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/examcentre => content/region/misthalin/digsite/dialogue}/ArchaeologistcalExpertUsedOnDialogueFile.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/digsite => content/region/misthalin/digsite/dialogue}/ElissaDialogue.kt (87%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/BarlakDialogue.kt (84%) create mode 100644 Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BartakDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/CrateGoblinDialogue.kt (57%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/DartogDialogue.kt (78%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/DurgokDialogue.kt (51%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/MistagDialogue.kt (77%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/dorgeshuun => content/region/misthalin/dorgeshuun/dialogue}/randomChildrenDialogue.kt (72%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/CaveGoblinMinerNPC.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/CaveRockHandler.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/CaveZone.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/DorgCbowEquipPlugin.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/DukeHoracioTLTDialogue.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/GoblinFollower.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/HistoryOfTheGoblinRace.kt (89%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/KazgarDialogue.kt (76%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/LostTribe.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/LostTribeCutscene.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/LostTribeOptionHandler.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/MistagLTDialogue.kt (92%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/PickaxeOnRubble.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/PickpocketSigmund.kt (77%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/dorgeshuun/quest}/thelosttribe/SigmundChestHandler.kt (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/AggieDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/DiangoDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/DraynorBankGuard.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/FortunatoDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/JoeGuardDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/LeelaDialogue.java (99%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/MartinTheMasterGardener.java (93%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/MissSchismDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/MorganDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/OliviaDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/PrinceAliDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/ProfessorOddensteinPlugin.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/VeronicaDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/draynor}/dialogue/WiseOldManDialogue.java (98%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/draynor/handlers}/DBRCutscenePlugin.java (98%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/draynor/handlers}/DraynorManorPlugin.java (96%) rename Server/src/main/{java/core/game/content/zone => content/region/misthalin/draynor/handlers}/DraynorMansionCourtyardZone.java (96%) rename Server/src/main/{java/core/game/content/zone => content/region/misthalin/draynor/handlers}/DraynorMarketZone.java (95%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/draynor/handlers}/DraynorNodePlugin.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/draynor/handlers}/DraynorTreeNPC.java (95%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/draynor/handlers}/ManorFountainDialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/AliceDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/AliceHusbandDialogue.java (91%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/AnimalMagnetism.java (98%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/AnimalMagnetismPlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/draynor/quest}/anma/AnmaCutscene.kt (98%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/AvaDialogue.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity/equipment => content/region/misthalin/draynor/quest/anma}/AvasDevice.kt (91%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/OldCronDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members/animalmagnetism => content/region/misthalin/draynor/quest/anma}/WitchDialogue.java (98%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/draynor/quest/ernest}/ErnestDialogue.java (92%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/draynor/quest/ernest}/ErnestTheChicken.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/draynor/quest/ernest}/ErnestTheChickenPlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/draynor/quest/vampire}/VampireSlayer.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/draynor/quest/vampire}/VampireSlayerNPC.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/draynor/quest/vampire}/VampireSlayerPlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/edgeville => content/region/misthalin/edgeville/dialogue}/BrotherBordissDialogue.kt (87%) rename Server/src/main/{java/core/game/content => content/region/misthalin/edgeville}/dialogue/EdgevilleMonkDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/edgeville}/dialogue/EdgevilleShopKeeperDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/edgeville}/dialogue/HariDialogue.java (95%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/edgeville/handlers}/EdgevilleNodePlugin.java (94%) rename Server/src/main/{kotlin/rs09/game/interaction/region/dungeons/edgeville => content/region/misthalin/edgeville/handlers}/PosterListener.kt (66%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/BarfyBill.java (97%) rename Server/src/main/{java/core/game/interaction/npc/bob => content/region/misthalin/lumbridge/dialogue}/BobDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/CookingTutorDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/CraftingTutorDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/DonieDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/DoomsayerDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lumbridge => content/region/misthalin/lumbridge/dialogue}/DukeHoracioDialogue.kt (71%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/ExplorerJackDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/FishingTutorDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/FredTheFarmer.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/GeeDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/HansDialoguePlugin.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/HarlanDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/hamdungeon => content/region/misthalin/lumbridge/dialogue}/JimmyTheChiselDialogue.kt (62%) create mode 100644 Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeGuideDialogue.kt rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/LumbridgeJailGuard.java (90%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/LumbridgeSwampArcher.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/LumbridgeSwampMonk.java (89%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/LumbridgeSwampWizard.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/MagicTutorDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/MiningtutorDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/PrayerTutorDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/RangedTutorDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/SethGroatsDialogue.java (85%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/SigmundDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin/lumbridge}/dialogue/WoodsmanTutorDialogue.java (98%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/misthalin/lumbridge/diary}/LumbridgeAchivementDiary.kt (84%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/dialogues => content/region/misthalin/lumbridge/diary}/NedDiaryDialogue.kt (97%) rename Server/src/main/{java/core/game/interaction/npc/bob => content/region/misthalin/lumbridge/handlers}/BobRepairItem.java (91%) rename Server/src/main/{kotlin/rs09/game/interaction/region/lumbridge => content/region/misthalin/lumbridge/handlers}/ChurchSignListener.kt (74%) rename Server/src/main/{kotlin/rs09/game/interaction/region/lumbridge => content/region/misthalin/lumbridge/handlers}/CowFieldSignListener.kt (80%) rename Server/src/main/{java/core/game/interaction/city/lumbridge => content/region/misthalin/lumbridge/handlers}/CowPenZone.java (93%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/lumbridge/handlers}/CulinoChestListener.kt (64%) rename Server/src/main/{java/core/game/content/global/shop => content/region/misthalin/lumbridge/handlers}/CulinomancerShop.kt (96%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/lumbridge/handlers}/DoomsayerTogglePlugin.java (96%) rename Server/src/main/{kotlin/rs09/game/interaction/region/lumbridge => content/region/misthalin/lumbridge/handlers}/FredChestListener.kt (79%) rename Server/src/main/{java/core/game/content/zone => content/region/misthalin/lumbridge/handlers}/FredsFarmHouseZone.java (95%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/lumbridge/handlers}/GameInstructorPlugin.java (94%) rename Server/src/main/{kotlin/rs09/game/interaction/region/lumbridge => content/region/misthalin/lumbridge/handlers}/GnomeCopterSignListener.kt (68%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/lumbridge/handlers}/HamHideoutPlugin.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/lumbridge/handlers}/HansNPC.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/lumbridge/handlers}/LumbridgeBasementPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/lumbridge/handlers}/LumbridgeInstructorNPC.java (96%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/lumbridge/handlers}/LumbridgeNodePlugin.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/lumbridge/handlers}/LumbridgeSwampHolePlugin.java (96%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/lumbridge/handlers}/OrganCutScene.java (94%) rename Server/src/main/{java/core/game/node/entity/npc/bosses => content/region/misthalin/lumbridge/handlers}/TormentedDemonNPC.java (98%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/lumbridge/handlers}/gnomecopter/GCInformationSign.java (95%) rename Server/src/main/{java/core/game/content/activity => content/region/misthalin/lumbridge/handlers}/gnomecopter/GnomeCopterActivity.java (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/lumbridge/quest}/cooksassistant/CooksAssistant.kt (98%) create mode 100644 Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/GillieGroatsDialogue.kt create mode 100644 Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/LumbridgeCookDialogue.kt create mode 100644 Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/MillieMillerDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/lumbridge/quest}/lostcity/DramenTreeListener.kt (79%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/lumbridge/quest}/lostcity/LostCity.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/lumbridge/quest}/lostcity/LostCityListeners.kt (87%) create mode 100644 Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/lumbridge/quest}/lostcity/ShamusTreeListener.kt (82%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/lumbridge/quest}/lostcity/TreeSpiritNPC.kt (92%) create mode 100644 Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/WarriorDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/lumbridge/quest}/runemysteries/DukeHoracioRMDialogue.kt (94%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/runemysteries/RuneMysteries.java (98%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/lumbridge/quest/sheepshearer}/SheepShearPlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest/sheepshearer}/SheepShearer.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/FatherAereckDialogue.java (99%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/FatherUhrneyDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/RestlessGhost.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/RestlessGhostDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/RestlessGhostPlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/RestlessGhostSkull.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/lumbridge/quest}/therestlessghost/SkullDropPlugin.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/monastery}/dialogue/AbbotLangleyDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/monastery}/dialogue/BrotherJeredDialogue.java (96%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/monastery/handlers}/MonasteryPlugin.java (91%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/quest}/asoulsbane/ASoulsBane.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/quest}/asoulsbane/ASoulsBanePlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/quest}/asoulsbane/SoulsBaneLaunaDialogue.kt (97%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/quest/priestinperil}/DoorPerilDialogue.java (95%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/quest/priestinperil}/DrezelDialogue.java (99%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/quest/priestinperil}/DrezelMonumentDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/quest}/priestinperil/KingRoaldPIPDialogue.kt (96%) rename Server/src/main/{java/core/game/node/entity/npc/quest/priest_in_peril => content/region/misthalin/quest/priestinperil}/MonkOfZamorakNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/quest}/priestinperil/PriestInPeril.java (99%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/quest/priestinperil}/PriestInPerilOptionPlugin.java (98%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/quest}/priestinperil/PriestInPerilUseListener.kt (95%) rename Server/src/main/{java/core/game/node/entity/npc/quest/priest_in_peril => content/region/misthalin/quest/priestinperil}/TempleGuardianNPC.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/AeonisigRaispher.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/AmbassadorFernook.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/ApothecaryDialogue.java (95%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/varrock => content/region/misthalin/varrock/dialogue}/AsyffDialogue.kt (69%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/BaraekDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/BennyDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/BobBarterDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/DrHarlowDialogue.java (97%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/DraulLeptoc.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/EllamariaDialogue.java (94%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/varrock => content/region/misthalin/varrock/dialogue}/ElsieDialogue.kt (68%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/FaridMorrisaneDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/FatherLawrenceDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/GertrudeDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/GertrudesCatDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/GrandExchangeClerk.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/GrandExchangeTutor.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/GuidorsWifeDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/HeadChefDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/HofutThandDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/HooknosedJackDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/HorvikDialogue.java (92%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/varrock => content/region/misthalin/varrock/dialogue}/IffieDialogue.kt (71%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/InformationclerkMuseumDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/KanelDialogue.java (91%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/varrock => content/region/misthalin/varrock/dialogue}/KingRoaldDialogue.kt (83%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/LarxusDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/LoweDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/MurkyMattDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/MuseumGuardDialogue.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/MuseumGuardVarrockDialogue.java (91%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/MuseumHistorianDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/PhillipaDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/PhilopDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/PoxDialogue.java (87%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/ReloboBlinyoDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/RomilyWeaklaxDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/SaniDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/SawmillOperator.java (95%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/ScavvoDialogue.java (88%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/SchoolchildMuseumDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/ShilopDialogue.java (98%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/SmithingApparenticeDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/SurokMagis.java (93%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/TarquinDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/TeaSellerDialogue.java (93%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/TeacherandPupilMuseumDialogue.java (91%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/TeacherandPupilMuseumMaleDialogue.java (91%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/varrock => content/region/misthalin/varrock/dialogue}/ThessaliaDialogue.kt (54%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/TrampDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/ValaineDialogue.java (90%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/VarrockBartenderDialogue.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/VarrockCookDialogue.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/VarrockEastBartenderDialogue.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/VarrockGateGuardDialogue.java (86%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/dialogue}/VarrockSwordShopDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/misthalin/varrock}/dialogue/WiloughDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/misthalin/varrock/dialogue}/surok/DakhThoulanAegisDialogue.java (93%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/misthalin/varrock/dialogue}/surok/HuntForSurokPlugin.java (91%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/misthalin/varrock/dialogue}/surok/MishkalunDornDialogue.java (94%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/misthalin/varrock/dialogue}/surok/SilasDahcsnuDialogue.java (93%) rename Server/src/main/{java/core/game/content/quest/miniquest => content/region/misthalin/varrock/dialogue}/surok/SurokMagisDialogue.java (95%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/dialogues => content/region/misthalin/varrock/diary}/RatBurgissDiaryDialogue.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link/diary/events => content/region/misthalin/varrock/diary}/VarrockAchivementDiary.kt (85%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/varrock/handlers}/BennyNPC.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/BrassKeyDoorPlugin.java (91%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/ChampionsArenaPlugin.java (94%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/ChampionsGuildDoor.kt (77%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/ChefGuildDoorPlugin.java (97%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/varrock/handlers}/GECutscenePlugin.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/GrandExchangePlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/GrandExchangeShortcut.kt (95%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/GuidorDoorPlugin.java (93%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/LumberYardCratePlugin.java (98%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/MuseumGatePlugin.java (89%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/handlers}/RedberryBushPlugin.java (97%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/varrock/handlers}/SawmillOptionPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/varrock/handlers}/ShooAwayStrayDogPlugin.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/varrock/handlers}/StrayDogNPC.java (98%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/varrock/handlers}/ThessaliaPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/city/varrock => content/region/misthalin/varrock/handlers}/VarrockBrokenCart.java (93%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/misthalin/varrock/handlers}/VarrockGuardSignpost.kt (87%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/varrock/handlers}/VarrockNodePlugin.java (97%) rename Server/src/main/{java/core/game/interaction/npc => content/region/misthalin/varrock/handlers}/ZaffPlugin.kt (88%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/allfiredup/AllFiredUp.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/allfiredup/BlazeSharpeyeDialogue.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/allfiredup/KingRoaldAFUDialogue.kt (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/allfiredup/SquireFyreDialogue.kt (83%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/DSCutsceneTrigger.kt (87%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/DSlayerDrainPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/DemonSlayer.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/DemonSlayerCutscene.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/DemonSlayerPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/GypsyArisDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/SirPyrsinDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/TraibornDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/demonslayer/WallyCutscenePlugin.java (90%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/varrock/quest/dragonslayer}/CabinBoyJenkins.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/CrandorMapPlugin.java (96%) rename Server/src/main/{java/core/game/content/dialogue => content/region/misthalin/varrock/quest/dragonslayer}/DSChestDialogue.java (95%) create mode 100644 Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSListeners.kt rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DSMagicDoorPlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DSNedNPC.java (94%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DragonSlayer.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DragonSlayerCutscene.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DragonSlayerPlugin.java (99%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/DukeHoracioDSDialogue.kt (93%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/ElvargNPC.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/GuildmasterDialogue.java (99%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/MazeDemonNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/MazeGhostNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/MazeSkeletonNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/MazeZombieNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/MeldarMadNPC.java (97%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/NedDSDialogue.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/NedDialogue.kt (91%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/OziachDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/WormbrainDialogue.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/WormbrainNPC.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/dragonslayer/ZombieRatNPC.java (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/AvanDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/BootDialogue.kt (68%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/CalebDialogue.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/ChronozonCaveZone.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/ChronozonNPC.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/CrestCombiningInteration.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/DimintheisDialogue.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/FamilyCrest.kt (94%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/JohnathonAntiPoisonInteraction.kt (78%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/JohnathonDialogue.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/PerfectGoldSmeltingHandler.kt (82%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/PerfectJewelryHandler.kt (79%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/PerfectJewelryOnUseHandler.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/SwapGauntletsHelper.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/misthalin/varrock/quest}/familycrest/WitchavenLeverInteraction.kt (95%) rename Server/src/main/{java/core/game/node/entity/npc/quest/gertrudes_cat => content/region/misthalin/varrock/quest/gertrude}/FluffNPC.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest/gertrude}/GertrudesCat.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/misthalin/varrock/quest/gertrude}/LumberKittenNPC.java (95%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/varrock/quest/romeo}/JulietCutscenePlugin.java (94%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/varrock/quest/romeo}/JulietDialogue.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/quest/romeo__juliet => content/region/misthalin/varrock/quest/romeo}/JulietNPC.java (95%) rename Server/src/main/{java/core/game/content/cutscene => content/region/misthalin/varrock/quest/romeo}/RJCutscenePlugin.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest/romeo}/RomeoJuliet.java (99%) rename Server/src/main/{java/core/game/node/entity/npc/quest/romeo__juliet => content/region/misthalin/varrock/quest/romeo}/RomeoNPC.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/varrock/quest/romeo}/RomeoQuestPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/CertificatePlugin.java (94%) create mode 100644 Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CharlieTheTrampDialogue.kt rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/CuratorHaigHalenDialogue.java (82%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/CuratorHaigHalenSOADialogue.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/JohnnyBeardNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/JonnytheBeardPlugin.java (89%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/KatrineDialogue.java (99%) rename Server/src/main/{kotlin/rs09/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/KingRoaldArravDialogue.kt (93%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/ReldoDialogue.java (99%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/ShieldArravPlugin.java (97%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/ShieldofArrav.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/ShieldofArravBook.java (93%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/StravenDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/varrock/quest}/shieldofarrav/WeaponsMasterDialogue.java (95%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/AnnaJonesDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/KingRoaldNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/OutlawNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/RatBurgissDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/SurokMagisDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/WLBelowCutscene.java (97%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/WLBelowPlugin.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/misthalin/varrock/quest}/whatliesbelow/WhatLiesBelow.java (99%) rename Server/src/main/{java/core/game/content => content/region/misthalin/wiztower}/dialogue/DrOnglewipDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/misthalin/wiztower}/dialogue/TraibornDialogue.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/misthalin/wiztower/handlers}/DemonTauntHandler.kt (78%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/misthalin/wiztower/handlers}/WizardGuildPortals.kt (71%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/wiztower/handlers}/WizardTowerPlugin.java (99%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/wiztower/handlers/rcguild}/RCGuildMap.java (92%) rename Server/src/main/{java/core/game/interaction/city => content/region/misthalin/wiztower/handlers/rcguild}/RCGuildPortal.java (94%) rename Server/src/main/{java/core/game/interaction/object => content/region/misthalin/wiztower/handlers/rcguild}/RuneCraftingGuildObjects.java (95%) rename Server/src/main/{java/core/game/content/quest/free => content/region/misthalin/wiztower/quest}/ImpCatcher.java (98%) rename Server/src/main/{java/core/game/content => content/region/morytania/burghderott}/dialogue/HiylikMynaDialogue.java (96%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/canifis => content/region/morytania/canifis/dialogue}/AgilityBossDialogue.kt (50%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/BarkerDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/BrosDialogue.java (88%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/FilelioDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/GregoryDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/IrinaDialogue.java (88%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/JosephDialogue.java (89%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/MalakDialogue.java (88%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/NikitiaDialogue.java (85%) rename Server/src/main/{java/core/game/interaction/npc => content/region/morytania/canifis/dialogue}/RoavarDialogue.java (96%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/RufusDialogue.java (95%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/SbottDialogue.java (92%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/SofiyaDialogue.java (86%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/SvetlanaDialogue.java (85%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/TaxidermistDialogue.java (91%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/YadvigaDialogue.java (88%) rename Server/src/main/{java/core/game/content => content/region/morytania/canifis}/dialogue/YuriDialogue.java (88%) rename Server/src/main/{java/core/game/interaction/npc => content/region/morytania/canifis/handlers}/CanafisWereWolfPlugin.java (95%) rename Server/src/main/{java/core/game/interaction/npc => content/region/morytania/canifis/handlers}/RoavarOptionPlugin.java (92%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/morytania/canifis/handlers}/WerewolfNPC.java (95%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/mortton => content/region/morytania/dialogue}/AfflictedDialogue.kt (67%) rename Server/src/main/{java/core/game/content => content/region/morytania}/dialogue/UliziusDialogue.java (93%) rename Server/src/main/{java/core/game/content => content/region/morytania}/dialogue/VanstromKlause.java (90%) rename Server/src/main/{java/core/game/interaction/object => content/region/morytania/handlers}/BarrowsBoatPlugin.java (94%) rename Server/src/main/{java/core/game/interaction/object => content/region/morytania/handlers}/BarrowsTunnelShortcut.java (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/npc => content/region/morytania/handlers}/MortMyreGhastNPC.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/zone/morytania => content/region/morytania/handlers}/MorytaniaArea.kt (84%) rename Server/src/main/{kotlin/rs09/game/interaction/region => content/region/morytania/handlers}/MorytaniaListeners.kt (87%) rename Server/src/main/{java/core/game/interaction/object => content/region/morytania/handlers}/MoyrtniaSwampPlugin.java (95%) rename Server/src/main/{java/core/game/interaction/object => content/region/morytania/handlers}/PyreSitePlugin.java (97%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/dialogue}/GhostDiscipleDialogue.java (98%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/dialogue}/GhostInkeeperDialogue.java (95%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/dialogue}/GhostSailorDialogue.java (90%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/dialogue}/GhostVillagerDialogue.java (89%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/dialogue}/NecrovarusDialogue.java (94%) rename Server/src/main/{java/core/game/content => content/region/morytania/phas}/dialogue/VelorinaDialogue.java (94%) rename Server/src/main/{kotlin/rs09/game/content/zone/phasmatys/bonegrinder => content/region/morytania/phas/handlers}/BoneGrinderListener.kt (86%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/handlers}/EctoplasmFillPlugin.java (97%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/handlers}/GravingasNPC.java (95%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/handlers}/PhasmatysZone.java (97%) rename Server/src/main/{java/core/game/content/zone/phasmatys => content/region/morytania/phas/handlers}/TokenCollectOption.java (94%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/morytania/phas/handlers}/akharanu.java (93%) rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/morytania/quest}/naturespirit/FillimanTarlockNPC.kt (92%) create mode 100644 Server/src/main/content/region/morytania/quest/naturespirit/NSDrezelDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/morytania/quest}/naturespirit/NSListeners.kt (84%) create mode 100644 Server/src/main/content/region/morytania/quest/naturespirit/NSTarlockDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/morytania/quest}/naturespirit/NSUtils.kt (96%) create mode 100644 Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/quest/members => content/region/morytania/quest}/naturespirit/NatureSpiritQuest.kt (98%) create mode 100644 Server/src/main/content/region/tirranwn/dialogue/ArvelDialogue.kt create mode 100644 Server/src/main/content/region/tirranwn/dialogue/DalldavDialogue.kt create mode 100644 Server/src/main/content/region/tirranwn/dialogue/ElfTrackerDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lletya => content/region/tirranwn/dialogue}/EoinDialogue.kt (51%) rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lletya => content/region/tirranwn/dialogue}/EudavGethinDialogue.kt (60%) create mode 100644 Server/src/main/content/region/tirranwn/dialogue/GoreuDialogue.kt create mode 100644 Server/src/main/content/region/tirranwn/dialogue/IlfeenDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lletya => content/region/tirranwn/dialogue}/IonaDialouge.kt (51%) create mode 100644 Server/src/main/content/region/tirranwn/dialogue/KelynDialogue.kt create mode 100644 Server/src/main/content/region/tirranwn/dialogue/MawrthDialogue.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/lletya => content/region/tirranwn/dialogue}/OronwenDialogue.kt (54%) rename Server/src/main/{java/core/game/content => content/region/tirranwn}/dialogue/QuarterMasterDialogue.java (93%) create mode 100644 Server/src/main/content/region/tirranwn/dialogue/TyrasGuard.kt rename Server/src/main/{kotlin/rs09/game/content/dialogue/region/isafdar => content/region/tirranwn/dialogue}/TyrasGuardTent.kt (51%) rename Server/src/main/{kotlin/rs09/game/interaction/region => content/region/tirranwn/handlers}/IsafdarListeners.kt (84%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/ElunedDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/IsafdarZone.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/IslwynDialogue.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/MossGiantGuardianNPC.java (96%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/RovingElves.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/RovingElvesObstacles.java (98%) rename Server/src/main/{java/core/game/content/quest/members => content/region/tirranwn/quest}/rovingelves/RovingElvesPlugin.java (97%) rename Server/src/main/{java/core/game/content => content/region/wilderness}/dialogue/CapeMerchantDialogue.java (95%) rename Server/src/main/{java/core/game/node/entity/npc/other => content/region/wilderness/handlers}/BorkNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/bosses/wilderness => content/region/wilderness/handlers}/ChaosElementalNPC.java (94%) rename Server/src/main/{java/core/game/content/zone => content/region/wilderness/handlers}/ChaosTunnelZone.java (98%) rename Server/src/main/{kotlin/rs09/game/content/zone => content/region/wilderness/handlers}/CorpAreaController.kt (92%) rename Server/src/main/{java/core/game/node/entity/npc/bosses/corp => content/region/wilderness/handlers}/CorporealBeastNPC.java (97%) rename Server/src/main/{kotlin/rs09/game/interaction => content/region/wilderness/handlers}/CorporealBeastWarningInterface.kt (76%) rename Server/src/main/{java/core/game/node/entity/npc/bosses/corp => content/region/wilderness/handlers}/DarkEnergyCoreNPC.java (97%) rename Server/src/main/{java/core/game/node/entity/npc/bosses/wilderness => content/region/wilderness/handlers}/KingBlackDragonNPC.java (96%) rename Server/src/main/{java/core/game/interaction/object => content/region/wilderness/handlers}/LavaMazePlugin.java (92%) rename Server/src/main/{kotlin/rs09/game/interaction/object => content/region/wilderness/handlers}/MuddyChestHandler.kt (91%) rename Server/src/main/{kotlin/rs09/game/interaction/region/wilderness => content/region/wilderness/handlers}/RoguesCastleListeners.kt (90%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys/states => content/region/wilderness/handlers}/SkulledState.kt (87%) rename Server/src/main/{java/core/game/content/zone => content/region/wilderness/handlers}/WildernessAreaZone.java (97%) rename Server/src/main/{java/core/game/interaction/object/wildyditch => content/region/wilderness/handlers}/WildernessDitchPlugin.java (96%) rename Server/src/main/{java/core/game/interaction/object/wildyditch => content/region/wilderness/handlers}/WildernessInterfacePlugin.java (97%) rename Server/src/main/{java/core/game/interaction/object => content/region/wilderness/handlers}/WildernessObeliskPlugin.java (98%) rename Server/src/main/{java/core/game/interaction/city => content/region/wilderness/handlers}/WildernessPlugin.java (98%) rename Server/src/main/{java/core/game/node/entity/npc/revenant => content/region/wilderness/handlers/revenants}/RevenantCombatHandler.java (96%) rename Server/src/main/{kotlin/rs09/game/content/zone/wilderness => content/region/wilderness/handlers/revenants}/RevenantController.kt (96%) rename Server/src/main/{java/core/game/node/entity/npc/revenant => content/region/wilderness/handlers/revenants}/RevenantNPC.java (96%) rename Server/src/main/{java/core/game/node/entity/npc/revenant => content/region/wilderness/handlers/revenants}/RevenantType.java (97%) rename Server/src/main/{kotlin/rs09 => core}/GlobalStats.kt (95%) rename Server/src/main/{kotlin/rs09 => core}/JSONUtils.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/Server.kt (96%) rename Server/src/main/{java => }/core/ServerConstants.backup (100%) rename Server/src/main/{kotlin/rs09 => core}/ServerConstants.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/ServerStore.kt (96%) rename Server/src/main/{java => }/core/Util.java (100%) rename Server/src/main/{kotlin => core}/api/ApiExtensions.kt (98%) rename Server/src/main/{kotlin => core}/api/Commands.kt (91%) rename Server/src/main/{kotlin => core}/api/Container.kt (79%) rename Server/src/main/{kotlin => core}/api/ContentAPI.kt (98%) rename Server/src/main/{kotlin => core}/api/ContentInterface.kt (89%) rename Server/src/main/{kotlin => core}/api/DialUtils.kt (98%) rename Server/src/main/{kotlin => core}/api/EquipmentSlot.kt (91%) rename Server/src/main/{kotlin/rs09/game => core/api}/Event.kt (97%) rename Server/src/main/{kotlin => core}/api/God.kt (97%) rename Server/src/main/{kotlin => core}/api/IfaceSettingsBuilder.kt (99%) rename Server/src/main/{kotlin => core}/api/InputType.kt (85%) rename Server/src/main/{kotlin => core}/api/LoginListener.kt (97%) rename Server/src/main/{kotlin => core}/api/LogoutListener.kt (96%) rename Server/src/main/{kotlin => core}/api/MapArea.kt (98%) rename Server/src/main/{kotlin => core}/api/PersistPlayer.kt (98%) rename Server/src/main/{kotlin => core}/api/PersistWorld.kt (82%) rename Server/src/main/{kotlin => core}/api/ShutdownListener.kt (84%) rename Server/src/main/{kotlin => core}/api/StartupListener.kt (84%) rename Server/src/main/{kotlin => core}/api/TickListener.kt (96%) rename Server/src/main/{kotlin => core}/api/regionspec/RegionSpecification.kt (94%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/ChunkSpecContract.kt (76%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/CloneRegionContract.kt (85%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/EmptyChunkContract.kt (80%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/EmptyRegionContract.kt (87%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/FillChunkContract.kt (97%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/RegionSpecContract.kt (76%) rename Server/src/main/{kotlin => core}/api/regionspec/contracts/UseExistingRegionContract.kt (84%) create mode 100644 Server/src/main/core/api/utils/CameraUtils.kt rename Server/src/main/{kotlin/rs09/game/content/global => core/api/utils}/GlobalKillCounter.kt (93%) rename Server/src/main/{kotlin/rs09/game/content/global => core/api/utils}/NPCDropTable.kt (94%) rename Server/src/main/{kotlin/rs09/game/camerautils => core/api/utils}/PlayerCamera.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/global => core/api/utils}/WeightBasedTable.kt (80%) rename Server/src/main/{kotlin/rs09/game/content/global => core/api/utils}/WeightedItem.kt (89%) rename Server/src/main/{kotlin/rs09/game/system => core/auth}/Auth.kt (64%) rename Server/src/main/{kotlin/rs09 => core}/auth/AuthProvider.kt (85%) rename Server/src/main/{kotlin/rs09 => core}/auth/AuthResponse.kt (96%) rename Server/src/main/{kotlin/rs09 => core}/auth/DevelopmentAuthenticator.kt (91%) rename Server/src/main/{kotlin/rs09 => core}/auth/ProductionAuthenticator.kt (95%) rename Server/src/main/{kotlin/rs09 => core}/auth/UserAccountInfo.kt (99%) rename Server/src/main/{java => }/core/cache/Cache.java (99%) rename Server/src/main/{java => }/core/cache/CacheFile.java (100%) rename Server/src/main/{java => }/core/cache/CacheFileManager.java (100%) rename Server/src/main/{java => }/core/cache/StoreFile.java (100%) rename Server/src/main/{java => }/core/cache/bzip2/BZip2BlockEntry.java (100%) rename Server/src/main/{java => }/core/cache/bzip2/BZip2Decompressor.java (100%) rename Server/src/main/{java => }/core/cache/crypto/ISAACCipher.java (100%) rename Server/src/main/{java => }/core/cache/crypto/ISAACPair.java (100%) rename Server/src/main/{java => }/core/cache/crypto/XTEACryption.java (100%) rename Server/src/main/{java => }/core/cache/def/Definition.java (100%) rename Server/src/main/{java => }/core/cache/def/impl/AnimationDefinition.java (100%) rename Server/src/main/{java => }/core/cache/def/impl/CS2Mapping.java (98%) rename Server/src/main/{java => }/core/cache/def/impl/ClothDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/DataMap.java (96%) rename Server/src/main/{java => }/core/cache/def/impl/GraphicDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/ItemDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/NPCDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/RenderAnimationDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/SceneryDefinition.java (99%) rename Server/src/main/{java => }/core/cache/def/impl/Struct.java (95%) rename Server/src/main/{java => }/core/cache/def/impl/VarbitDefinition.java (100%) rename Server/src/main/{java => }/core/cache/def/impl/test.txt (100%) rename Server/src/main/{java => }/core/cache/gzip/GZipDecompressor.java (100%) rename Server/src/main/{java => }/core/cache/misc/Container.java (100%) rename Server/src/main/{java => }/core/cache/misc/ContainersInformation.java (100%) rename Server/src/main/{java => }/core/cache/misc/FilesContainer.java (100%) rename Server/src/main/{java => }/core/cache/misc/buffer/BufferInputStream.java (100%) rename Server/src/main/{java => }/core/cache/misc/buffer/BufferOutputStream.java (100%) rename Server/src/main/{java => }/core/cache/misc/buffer/ByteBufferUtils.java (100%) rename Server/src/main/{java/core/game/content => core/game}/activity/ActivityManager.java (94%) rename Server/src/main/{java/core/game/content => core/game}/activity/ActivityPlugin.java (98%) rename Server/src/main/{kotlin => core/game/activity}/Cutscene.kt (95%) rename Server/src/main/{java/core/game/content => core/game}/activity/CutscenePlugin.java (99%) rename Server/src/main/{java/rs09/game/ai => core/game/bots}/AIPBuilder.java (99%) rename Server/src/main/{java/rs09/game/ai => core/game/bots}/AIPlayer.java (98%) rename Server/src/main/{kotlin/rs09/game/ai => core/game/bots}/AIRepository.kt (93%) rename Server/src/main/{java/rs09/game/ai => core/game/bots}/ArtificialSession.java (97%) rename Server/src/main/{kotlin/rs09/game/ai/pvmbots => core/game/bots}/CombatBot.kt (87%) rename Server/src/main/{kotlin/rs09/game/ai/pvmbots => core/game/bots}/CombatBotAssembler.kt (99%) rename Server/src/main/{kotlin/rs09/game/ai/general => core/game/bots}/GeneralBotCreator.kt (91%) create mode 100644 Server/src/main/core/game/bots/PlayerCompatible.kt rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => core/game/bots}/PlayerScripts.kt (58%) rename Server/src/main/{java/rs09/game/ai/pvmbots => core/game/bots}/PvMBots.java (94%) rename Server/src/main/{kotlin/rs09/game/ai/pvmbots => core/game/bots}/PvMBotsBuilder.kt (79%) rename Server/src/main/{java/rs09/game/ai/general/scriptrepository => core/game/bots}/Script.java (94%) rename Server/src/main/{kotlin/rs09/game/ai/general => core/game/bots}/ScriptAPI.kt (97%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => core/game/bots}/ScriptDescription.kt (57%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => core/game/bots}/ScriptIdentifier.kt (54%) rename Server/src/main/{kotlin/rs09/game/ai/general/scriptrepository => core/game/bots}/ScriptName.kt (51%) rename Server/src/main/{kotlin/rs09/game/ai/skillingbot => core/game/bots}/SkillingBotAssembler.kt (87%) rename Server/src/main/{java => }/core/game/component/CloseEvent.java (100%) rename Server/src/main/{java => }/core/game/component/Component.java (98%) rename Server/src/main/{java => }/core/game/component/ComponentDefinition.java (100%) rename Server/src/main/{java => }/core/game/component/ComponentPlugin.java (100%) rename Server/src/main/{java => }/core/game/component/InterfaceType.java (100%) rename Server/src/main/{java/core/game/content => core/game}/consumable/BarbarianMix.java (91%) rename Server/src/main/{java/core/game/content => core/game}/consumable/Cake.java (95%) rename Server/src/main/{java/core/game/content => core/game}/consumable/Consumable.java (96%) rename Server/src/main/{java/core/game/content => core/game}/consumable/ConsumableEffect.java (83%) rename Server/src/main/{java/core/game/content => core/game}/consumable/Drink.java (96%) rename Server/src/main/{java/core/game/content => core/game}/consumable/FakeConsumable.java (95%) rename Server/src/main/{java/core/game/content => core/game}/consumable/Food.java (96%) rename Server/src/main/{java/core/game/content => core/game}/consumable/HalfableFood.java (96%) rename Server/src/main/{java/core/game/content => core/game}/consumable/Potion.java (95%) rename Server/src/main/{java => }/core/game/container/Container.java (100%) rename Server/src/main/{java => }/core/game/container/ContainerEvent.java (100%) rename Server/src/main/{java => }/core/game/container/ContainerListener.java (100%) rename Server/src/main/{java => }/core/game/container/ContainerType.java (100%) rename Server/src/main/{java => }/core/game/container/SortType.java (100%) rename Server/src/main/{java => }/core/game/container/access/InterfaceContainer.java (99%) rename Server/src/main/{java => }/core/game/container/impl/BankContainer.java (99%) rename Server/src/main/{java => }/core/game/container/impl/EquipmentContainer.java (98%) rename Server/src/main/{java => }/core/game/container/impl/InventoryListener.java (96%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/ActivateEnchantedGem.java (92%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/DialogueAction.java (88%) create mode 100644 Server/src/main/core/game/dialogue/DialogueBuilder.kt rename Server/src/main/{kotlin/rs09/game/content => core/game}/dialogue/DialogueFile.kt (78%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/DialogueInterpreter.java (97%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/DialoguePlugin.java (96%) create mode 100644 Server/src/main/core/game/dialogue/DialogueTopic.kt rename Server/src/main/{kotlin/rs09/game/content => core/game}/dialogue/EmptyPlugin.kt (75%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/FacialExpression.java (98%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/SimpleDialoguePlugin.java (95%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/SimpleEntityMessage.java (96%) rename Server/src/main/{kotlin/rs09/game/content => core/game}/dialogue/SkillDialogueHandler.kt (99%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/SkillDialoguePlugin.java (85%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/book/Book.java (96%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/book/BookLine.java (94%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/book/Page.java (91%) rename Server/src/main/{java/core/game/content => core/game}/dialogue/book/PageSet.java (91%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link => core/game}/diary/AreaDiaryTask.kt (59%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link => core/game}/diary/DiaryEventHookBase.kt (93%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/link => core/game}/diary/DiaryLevel.kt (59%) create mode 100644 Server/src/main/core/game/event/Event.kt rename Server/src/main/{kotlin/api/events => core/game/event}/EventHook.kt (82%) rename Server/src/main/{kotlin/api/events => core/game/event}/Events.kt (92%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/BotPrices.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/GEAutoStock.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/GEDB.kt (98%) rename Server/src/main/{java => }/core/game/ge/GEGuidePrice.java (99%) rename Server/src/main/{java => }/core/game/ge/GEItemSet.java (100%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/GrandExchange.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/GrandExchangeOffer.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/GrandExchangeRecords.kt (98%) rename Server/src/main/{java => }/core/game/ge/OfferState.java (100%) rename Server/src/main/{kotlin/rs09 => core}/game/ge/PriceIndex.kt (96%) rename Server/src/main/{java/core/game/content => core/game}/global/Skillcape.java (96%) rename Server/src/main/{java/core/game/content => core/game}/global/action/ClimbActionHandler.java (97%) rename Server/src/main/{java/core/game/content => core/game}/global/action/DigAction.java (84%) rename Server/src/main/{java/core/game/content => core/game}/global/action/DigSpadeHandler.java (91%) rename Server/src/main/{java/core/game/content => core/game}/global/action/DoorActionHandler.java (99%) rename Server/src/main/{java/core/game/content => core/game}/global/action/DropItemHandler.java (89%) rename Server/src/main/{kotlin/rs09/game/content => core/game}/global/action/EquipHandler.kt (91%) rename Server/src/main/{java/core/game/content => core/game}/global/action/LadderAchievementCheck.java (79%) rename Server/src/main/{kotlin/rs09/game/content => core/game}/global/action/PickupHandler.kt (85%) rename Server/src/main/{java/core/game/content => core/game}/global/action/SpecialLadders.java (99%) rename Server/src/main/{java/core/game/content => core/game}/global/presets/Preset.java (93%) rename Server/src/main/{java/core/game/content => core/game}/global/presets/PresetManager.java (96%) rename Server/src/main/{java/core/game/content => core/game}/global/report/AbuseReport.java (93%) rename Server/src/main/{java/core/game/content => core/game}/global/report/Rule.java (96%) rename Server/src/main/{java => }/core/game/interaction/DestinationFlag.java (99%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/IntType.kt (73%) rename Server/src/main/{java => }/core/game/interaction/Interaction.java (98%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/InteractionListener.kt (71%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/InteractionListeners.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/InterfaceListener.kt (79%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/InterfaceListeners.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/interaction/Listener.kt (67%) rename Server/src/main/{java => }/core/game/interaction/MovementPulse.java (99%) rename Server/src/main/{java => }/core/game/interaction/NodeUsageEvent.java (100%) rename Server/src/main/{java => }/core/game/interaction/Option.java (100%) rename Server/src/main/{java => }/core/game/interaction/OptionHandler.java (98%) rename Server/src/main/{java/core/game/content/quest => core/game/interaction}/PluginInteraction.java (96%) rename Server/src/main/{java/core/game/content/quest => core/game/interaction}/PluginInteractionManager.java (96%) rename Server/src/main/{java => }/core/game/interaction/SpecialGroundInteraction.java (100%) rename Server/src/main/{java => }/core/game/interaction/SpecialGroundItems.java (92%) rename Server/src/main/{java => }/core/game/interaction/UseWithHandler.java (99%) rename Server/src/main/{java => }/core/game/node/Node.java (100%) rename Server/src/main/{java => }/core/game/node/entity/Entity.java (97%) rename Server/src/main/{java => }/core/game/node/entity/combat/BattleState.java (99%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/combat/CombatPulse.kt (97%) rename Server/src/main/{java => }/core/game/node/entity/combat/CombatStyle.java (84%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/combat/CombatSwingHandler.kt (98%) rename Server/src/main/{java => }/core/game/node/entity/combat/DeathTask.java (98%) rename Server/src/main/{java => }/core/game/node/entity/combat/ImpactHandler.java (97%) rename Server/src/main/{java => }/core/game/node/entity/combat/InteractionType.java (100%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat/handlers => core/game/node/entity/combat}/MagicSwingHandler.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat/handlers => core/game/node/entity/combat}/MeleeSwingHandler.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat/handlers => core/game/node/entity/combat}/MultiSwingHandler.kt (96%) rename Server/src/main/{kotlin/rs09/game/node/entity/combat/handlers => core/game/node/entity/combat}/RangeSwingHandler.kt (97%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/Ammunition.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/ArmourSet.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/BoltEffect.java (99%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/DegradableEquipment.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/FireType.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/RangeWeapon.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/SwitchAttack.java (98%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/Weapon.java (100%) rename Server/src/main/{java => }/core/game/node/entity/combat/equipment/WeaponInterface.java (99%) rename Server/src/main/{kotlin/rs09/game/node/entity/player => core/game/node/entity/combat}/graves/Grave.kt (93%) rename Server/src/main/{kotlin/rs09/game/node/entity/player => core/game/node/entity/combat}/graves/GraveController.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity/player => core/game/node/entity/combat}/graves/GravePurchaseInterface.kt (95%) rename Server/src/main/{kotlin/rs09/game/node/entity/player => core/game/node/entity/combat}/graves/GraveType.kt (98%) rename Server/src/main/{java/core/game/node/entity/combat => core/game/node/entity/combat/spell}/CombatSpell.java (97%) rename Server/src/main/{java/core/game/node/entity/skill/magic => core/game/node/entity/combat/spell}/CombinationRune.java (96%) rename Server/src/main/{java/core/game/node/entity/combat/equipment => core/game/node/entity/combat/spell}/DefaultCombatSpell.java (95%) rename Server/src/main/{java/core/game/node/entity/skill/magic => core/game/node/entity/combat/spell}/MagicSpell.java (97%) rename Server/src/main/{java/core/game/node/entity/skill/magic => core/game/node/entity/combat/spell}/MagicStaff.java (95%) rename Server/src/main/{java/core/game/node/entity/skill/magic => core/game/node/entity/combat/spell}/Runes.java (96%) rename Server/src/main/{java => }/core/game/node/entity/combat/spell/SpellBlocks.java (96%) rename Server/src/main/{java/core/game/node/entity/combat/equipment => core/game/node/entity/combat/spell}/SpellType.java (98%) rename Server/src/main/{java => }/core/game/node/entity/impl/Animator.java (99%) rename Server/src/main/{java => }/core/game/node/entity/impl/ForceMovement.java (99%) rename Server/src/main/{java => }/core/game/node/entity/impl/GameAttributes.java (98%) rename Server/src/main/{java => }/core/game/node/entity/impl/Projectile.java (100%) rename Server/src/main/{java => }/core/game/node/entity/impl/Properties.java (98%) rename Server/src/main/{java => }/core/game/node/entity/impl/PulseManager.java (97%) rename Server/src/main/{java => }/core/game/node/entity/impl/PulseType.java (100%) rename Server/src/main/{java => }/core/game/node/entity/impl/WalkingQueue.java (99%) rename Server/src/main/{java => }/core/game/node/entity/lock/ActionLocks.java (99%) rename Server/src/main/{java => }/core/game/node/entity/lock/Lock.java (98%) rename Server/src/main/{java => }/core/game/node/entity/lock/LockElapse.java (100%) rename Server/src/main/{java => }/core/game/node/entity/npc/AbstractNPC.java (98%) rename Server/src/main/{java => }/core/game/node/entity/npc/IdleAbstractNPC.java (100%) rename Server/src/main/{java => }/core/game/node/entity/npc/Metamorphosis.java (91%) rename Server/src/main/{java => }/core/game/node/entity/npc/NPC.java (96%) rename Server/src/main/{java => }/core/game/node/entity/npc/agg/AggressiveBehavior.java (99%) rename Server/src/main/{java => }/core/game/node/entity/npc/agg/AggressiveHandler.java (98%) rename Server/src/main/{java => }/core/game/node/entity/npc/drop/DropFrequency.java (100%) rename Server/src/main/{java => }/core/game/node/entity/npc/drop/NPCDropTables.java (96%) rename Server/src/main/{java => }/core/game/node/entity/player/Player.java (95%) rename Server/src/main/{kotlin/rs09/game => core/game/node/entity/player}/Varbit.kt (57%) rename Server/src/main/{kotlin/rs09/game => core/game/node/entity/player}/Varp.kt (88%) rename Server/src/main/{kotlin/rs09/game => core/game/node/entity/player}/VarpManager.kt (95%) rename Server/src/main/{java => }/core/game/node/entity/player/info/ClientInfo.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/info/PlayerDetails.java (98%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/player/info/PlayerMonitor.kt (91%) rename Server/src/main/{java => }/core/game/node/entity/player/info/RenderInfo.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/info/Rights.java (97%) rename Server/src/main/{java => }/core/game/node/entity/player/info/UIDInfo.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/info/login/LoginConfiguration.java (96%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/player/info/login/LoginParser.kt (89%) rename Server/src/main/{java => }/core/game/node/entity/player/info/login/LoginType.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/info/login/PlayerParser.java (88%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/player/info/login/PlayerSaveParser.kt (96%) rename Server/src/main/{kotlin/rs09 => core}/game/node/entity/player/info/login/PlayerSaver.kt (99%) rename Server/src/main/{java => }/core/game/node/entity/player/info/login/Response.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/info/portal/Icon.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/ActivityData.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/BankPinManager.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/ConfigurationManager.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/GlobalData.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/HintIconManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/InterfaceManager.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/IronmanManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/IronmanMode.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/PacketDispatch.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/QuestData.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/RunScript.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/SavedData.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/Settings.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/SkullManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/SpellBookManager.java (96%) rename Server/src/main/{java => }/core/game/node/entity/player/link/TeleportManager.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/WarningMessages.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/appearance/Appearance.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/appearance/BodyPart.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/appearance/Gender.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/audio/Audio.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/audio/AudioManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/diary/AchievementDiary.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/diary/AchievementDiaryManager.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/diary/DiaryType.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/emote/EmoteManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/emote/Emotes.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/music/MusicEntry.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/music/MusicPlayer.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/music/MusicZone.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/prayer/Prayer.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/prayer/PrayerCategory.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/prayer/PrayerType.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/quest/Quest.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/quest/QuestRepository.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/RequestManager.kt (96%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/RequestModule.kt (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/RequestType.kt (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/assist/AssistSession.java (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/trade/TradeContainer.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/request/trade/TradeModule.kt (99%) rename Server/src/main/{java => }/core/game/node/entity/player/link/skillertasks/Difficulty.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/skillertasks/SkillTasks.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/skillertasks/SkillerTasks.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/spawn/PKPackage.java (100%) rename Server/src/main/{java => }/core/game/node/entity/player/link/spawn/PKTitle.java (98%) rename Server/src/main/{java => }/core/game/node/entity/player/link/spawn/SpawnData.java (99%) rename Server/src/main/{java => }/core/game/node/entity/skill/LevelUp.java (98%) rename Server/src/main/{java => }/core/game/node/entity/skill/SkillBonus.java (100%) rename Server/src/main/{java => }/core/game/node/entity/skill/SkillPulse.java (94%) rename Server/src/main/{java => }/core/game/node/entity/skill/SkillRestoration.java (95%) rename Server/src/main/{java => }/core/game/node/entity/skill/Skills.java (98%) rename Server/src/main/{java => }/core/game/node/entity/state/EntityState.java (100%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys => core/game/node/entity/state}/PlayerState.kt (52%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys => core/game/node/entity/state}/State.kt (92%) rename Server/src/main/{java => }/core/game/node/entity/state/StateManager.java (100%) rename Server/src/main/{java => }/core/game/node/entity/state/StatePulse.java (97%) rename Server/src/main/{kotlin/rs09/game/node/entity/state/newsys => core/game/node/entity/state}/StateRepository.kt (68%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/FireResistantPulse.java (98%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/FrozenStatePulse.java (98%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/HealOverTimePulse.java (100%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/MiasmicStatePulse.java (98%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/PoisonStatePulse.java (100%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/SkullStatePulse.java (100%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/StunStatePulse.java (100%) rename Server/src/main/{java => }/core/game/node/entity/state/impl/TeleblockStatePulse.java (98%) rename Server/src/main/{java => }/core/game/node/item/ChanceItem.java (100%) rename Server/src/main/{java => }/core/game/node/item/GroundItem.java (99%) rename Server/src/main/{java => }/core/game/node/item/GroundItemManager.java (98%) rename Server/src/main/{java => }/core/game/node/item/Item.java (100%) rename Server/src/main/{java => }/core/game/node/item/ItemPlugin.java (100%) rename Server/src/main/{java => }/core/game/node/item/WeightedChanceItem.java (100%) rename Server/src/main/{java => }/core/game/node/scenery/Constructed.java (100%) rename Server/src/main/{java => }/core/game/node/scenery/Scenery.java (100%) rename Server/src/main/{java => }/core/game/node/scenery/SceneryBuilder.java (99%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/shops/Shop.kt (98%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/shops/Shops.kt (93%) rename Server/src/main/{java => }/core/game/system/SystemConfig.java (100%) rename Server/src/main/{java => }/core/game/system/SystemManager.java (98%) rename Server/src/main/{java => }/core/game/system/SystemShutdownHook.java (90%) rename Server/src/main/{java => }/core/game/system/SystemState.java (100%) rename Server/src/main/{java => }/core/game/system/SystemTermination.java (88%) rename Server/src/main/{java => }/core/game/system/SystemUpdate.java (96%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/Command.kt (94%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/CommandPlugin.kt (95%) rename Server/src/main/{java => }/core/game/system/command/CommandSet.java (96%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/CommandSystem.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/MapDumpCommand.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/Privilege.kt (65%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/oldsys/SimpleDumpingCommands.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/oldsys/VisualCommand.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt (86%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt (78%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt (88%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt (90%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt (85%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt (94%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/AnimationCommandSet.kt (92%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/BottingCommandSet.kt (89%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/CommandSet.kt (90%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/ConfigCommandSet.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/DevelopmentCommandSet.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/FunCommandSet.kt (91%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/MiscCommandSet.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/ModerationCommandSet.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/MusicCommandSet.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/QuestCommandSet.kt (96%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/SlayerCommandSet.kt (86%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/SpawnCommandSet.kt (94%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/info/stats => core/game/system/command/sets}/StatAttributeKeys.kt (91%) rename Server/src/main/{kotlin/rs09/game/node/entity/player/info/stats => core/game/system/command/sets}/StatsCommandSet.kt (92%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/SystemCommandSet.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/command/sets/TeleportCommandSet.kt (97%) rename Server/src/main/{java => }/core/game/system/communication/ClanEntry.java (97%) rename Server/src/main/{java => }/core/game/system/communication/ClanMember.java (100%) rename Server/src/main/{java => }/core/game/system/communication/ClanRank.java (100%) rename Server/src/main/{java => }/core/game/system/communication/ClanRepository.java (98%) rename Server/src/main/{java => }/core/game/system/communication/CommunicationInfo.java (98%) rename Server/src/main/{java => }/core/game/system/communication/Contact.java (100%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ClueRewardParser.kt (90%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ConfigParser.kt (88%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/CustomVarbitParser.kt (91%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/DoorConfigLoader.kt (95%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/DropTableParser.kt (87%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/GroundSpawnLoader.kt (95%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/InterfaceConfigParser.kt (91%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ItemConfigParser.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/MusicConfigLoader.kt (96%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/NPCConfigParser.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/NPCSpawner.kt (94%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ObjectConfigParser.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/RangedConfigLoader.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ServerConfigParser.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/ShopParser.kt (83%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/TableDump.kt (100%) rename Server/src/main/{kotlin/rs09 => core}/game/system/config/XteaParser.kt (93%) rename Server/src/main/{java => }/core/game/system/monitor/DuplicationLog.java (98%) rename Server/src/main/{java => }/core/game/system/monitor/MessageLog.java (100%) rename Server/src/main/{java => }/core/game/system/mysql/SQLColumn.java (100%) rename Server/src/main/{java => }/core/game/system/mysql/SQLTable.java (100%) rename Server/src/main/{java => }/core/game/system/security/EncryptionManager.java (100%) rename Server/src/main/{java => }/core/game/system/task/MovementHook.java (100%) rename Server/src/main/{java => }/core/game/system/task/NodeTask.java (98%) rename Server/src/main/{java => }/core/game/system/task/Pulse.java (100%) rename Server/src/main/{java => }/core/game/system/task/TaskExecutor.kt (100%) rename Server/src/main/{kotlin/rs09 => core}/game/world/DeadlockDetector.kt (94%) rename Server/src/main/{kotlin/rs09 => core}/game/world/GameSettings.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/game/world/GameWorld.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/game/world/ImmerseWorld.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/game/world/PulseRunner.kt (94%) rename Server/src/main/{java => }/core/game/world/map/BuildRegionChunk.java (99%) rename Server/src/main/{java => }/core/game/world/map/Direction.java (100%) rename Server/src/main/{java => }/core/game/world/map/Location.java (99%) rename Server/src/main/{java => }/core/game/world/map/MapDistance.java (100%) rename Server/src/main/{java => }/core/game/world/map/Point.java (100%) rename Server/src/main/{java => }/core/game/world/map/Region.java (98%) rename Server/src/main/{java => }/core/game/world/map/RegionChunk.java (99%) rename Server/src/main/{java => }/core/game/world/map/RegionManager.kt (99%) rename Server/src/main/{java => }/core/game/world/map/RegionPlane.java (100%) rename Server/src/main/{java => }/core/game/world/map/Viewport.java (100%) rename Server/src/main/{java => }/core/game/world/map/build/DynamicRegion.java (99%) rename Server/src/main/{java => }/core/game/world/map/build/LandscapeParser.java (99%) rename Server/src/main/{java => }/core/game/world/map/build/MapscapeParser.java (100%) rename Server/src/main/{java => }/core/game/world/map/build/RegionFlags.java (99%) rename Server/src/main/{java => }/core/game/world/map/path/ClipMaskSupplier.java (100%) rename Server/src/main/{java => }/core/game/world/map/path/DumbPathfinder.java (100%) rename Server/src/main/{java => }/core/game/world/map/path/Path.java (100%) rename Server/src/main/{java => }/core/game/world/map/path/Pathfinder.java (99%) rename Server/src/main/{java => }/core/game/world/map/path/ProjectilePathfinder.java (100%) rename Server/src/main/{kotlin/rs09 => core}/game/world/map/path/SmartPathfinder.kt (99%) rename Server/src/main/{java => }/core/game/world/map/zone/MapZone.java (99%) rename Server/src/main/{java => }/core/game/world/map/zone/RegionZone.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/Zone.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/ZoneBorders.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/ZoneBuilder.java (94%) rename Server/src/main/{java => }/core/game/world/map/zone/ZoneMonitor.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/ZoneRestriction.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/ZoneType.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/BankZone.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/DarkZone.java (94%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/KaramjaZone.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/ModeratorZone.java (99%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/MultiwayCombatZone.java (100%) rename Server/src/main/{java => }/core/game/world/map/zone/impl/WildernessZone.java (92%) rename Server/src/main/{java => }/core/game/world/objectparser/ObjectParser.java (94%) rename Server/src/main/{kotlin/rs09 => core}/game/world/repository/DisconnectionQueue.kt (98%) rename Server/src/main/{java => }/core/game/world/repository/InitializationEntry.java (100%) rename Server/src/main/{java => }/core/game/world/repository/InitializingNodeList.java (100%) rename Server/src/main/{java => }/core/game/world/repository/NodeList.java (100%) rename Server/src/main/{java => }/core/game/world/repository/NodeListIterator.java (100%) rename Server/src/main/{kotlin/rs09 => core}/game/world/repository/Repository.kt (96%) rename Server/src/main/{kotlin/rs09 => core}/game/world/update/MapChunkRenderer.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/world/update/NPCRenderer.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/game/world/update/PlayerRenderer.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/game/world/update/UpdateMasks.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/game/world/update/UpdateSequence.kt (85%) rename Server/src/main/{java => }/core/game/world/update/flag/FlagContext.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/PlayerFlags.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/UpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/chunk/AnimateObjectUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/chunk/GraphicUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/chunk/ItemUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/chunk/ObjectUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/chunk/ProjectileUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/context/Animation.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/context/ChatMessage.kt (100%) rename Server/src/main/{java => }/core/game/world/update/flag/context/Graphics.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/context/HitMark.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCAnimation.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCFaceEntity.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCFaceLocation.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCForceChat.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCGraphic.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCHitFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCHitFlag1.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/npc/NPCSwitchId.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/AnimationFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/AppearanceFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/ChatFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/FaceEntityFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/FaceLocationFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/ForceChatFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/ForceMovementFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/GraphicFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/HitUpdateFlag.java (100%) rename Server/src/main/{java => }/core/game/world/update/flag/player/HitUpdateFlag1.java (100%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/WorldEvent.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/WorldEventInitializer.kt (96%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/christmas/Giftmas.kt (91%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/easter/EasterBunnyDialogueFile.kt (87%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/easter/EasterEvent.kt (95%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/easter/EasterEventListeners.kt (84%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/halloween/CandyRewardPlugin.kt (83%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/halloween/GrimDialogue.kt (67%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/halloween/SimpleHalloweenEvent.kt (60%) rename Server/src/main/{kotlin/rs09/game/content/global => core/game}/worldevents/holiday/halloween/TrickOrTreatHandler.kt (76%) rename Server/src/main/{kotlin => core/integrations}/discord/Discord.kt (97%) rename Server/src/main/{java => }/core/net/Constants.java (100%) rename Server/src/main/{java => }/core/net/EventProducer.java (100%) rename Server/src/main/{java => }/core/net/IoEventHandler.java (95%) rename Server/src/main/{java => }/core/net/IoReadEvent.java (100%) rename Server/src/main/{java => }/core/net/IoSession.java (98%) rename Server/src/main/{java => }/core/net/IoWriteEvent.java (100%) rename Server/src/main/{java => }/core/net/JS5Queue.java (100%) rename Server/src/main/{java => }/core/net/NioReactor.java (100%) rename Server/src/main/{java => }/core/net/ServerSocketConnection.java (100%) rename Server/src/main/{java => }/core/net/amsc/MSEventHandler.java (97%) rename Server/src/main/{java => }/core/net/amsc/MSPacketRepository.java (78%) rename Server/src/main/{java => }/core/net/amsc/ManagementServerState.java (96%) rename Server/src/main/{java => }/core/net/amsc/WorldCommunicator.java (93%) rename Server/src/main/{java => }/core/net/amsc/WorldStatistics.java (100%) rename Server/src/main/{java => }/core/net/event/GameReadEvent.java (94%) rename Server/src/main/{java => }/core/net/event/GameWriteEvent.java (100%) rename Server/src/main/{java => }/core/net/event/HSReadEvent.java (96%) rename Server/src/main/{java => }/core/net/event/HSWriteEvent.java (100%) rename Server/src/main/{java => }/core/net/event/JS5ReadEvent.java (100%) rename Server/src/main/{java => }/core/net/event/JS5WriteEvent.java (100%) rename Server/src/main/{kotlin/rs09 => core}/net/event/LoginReadEvent.kt (85%) rename Server/src/main/{java => }/core/net/event/LoginWriteEvent.java (98%) rename Server/src/main/{java => }/core/net/event/MSHSReadEvent.java (100%) rename Server/src/main/{java => }/core/net/event/MSHSWriteEvent.java (94%) rename Server/src/main/{java => }/core/net/event/MSReadEvent.java (96%) rename Server/src/main/{java => }/core/net/event/MSWriteEvent.java (100%) rename Server/src/main/{java => }/core/net/event/RegistryReadEvent.java (96%) rename Server/src/main/{java => }/core/net/event/RegistryWriteEvent.java (97%) rename Server/src/main/{java => }/core/net/lobby/WorldDefinition.java (96%) rename Server/src/main/{java => }/core/net/lobby/WorldList.java (99%) rename Server/src/main/{java => }/core/net/packet/Context.java (100%) rename Server/src/main/{java => }/core/net/packet/IncomingPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/IoBuffer.java (100%) rename Server/src/main/{java => }/core/net/packet/OutgoingPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/PacketHeader.java (100%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/PacketProcessor.kt (95%) rename Server/src/main/{java => }/core/net/packet/PacketRepository.java (98%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/PacketWriteQueue.kt (95%) rename Server/src/main/{kotlin/rs09/game/interaction => core/net/packet}/QCRepository.kt (98%) rename Server/src/main/{java => }/core/net/packet/context/AccessMaskContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/AnimateInterfaceContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/AnimateObjectContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/AreaPositionContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/BuildItemContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/BuildSceneryContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/CSConfigContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/CameraContext.java (98%) rename Server/src/main/{java => }/core/net/packet/context/ChildPositionContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/ClanContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/ClearChunkContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/ConfigContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/ContactContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/ContainerContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/DefaultContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/DisplayModelContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/DynamicSceneContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/GameMessageContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/GrandExchangeContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/HintIconContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/IntegerContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/InteractionOptionContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/InterfaceConfigContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/InterfaceContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/LocationContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/MessageContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/MinimapStateContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/MusicContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/PlayerContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/PositionedGraphicContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/RunScriptContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/SceneGraphContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/SkillContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/StringContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/SystemUpdateContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/VarbitContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/VarcUpdateContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/WalkOptionContext.java (100%) rename Server/src/main/{java => }/core/net/packet/context/WindowsPaneContext.java (100%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/Decoders530.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/Login.kt (91%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/LoginInfo.kt (97%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/Packet.kt (99%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/QuickChatPacketHandler.kt (95%) rename Server/src/main/{kotlin/rs09 => core}/net/packet/in/RunScript.kt (93%) rename Server/src/main/{java => }/core/net/packet/out/AccessMask.java (100%) rename Server/src/main/{java => }/core/net/packet/out/AnimateInterface.java (100%) rename Server/src/main/{java => }/core/net/packet/out/AnimateObjectPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/AudioPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/BuildDynamicScene.java (98%) rename Server/src/main/{java => }/core/net/packet/out/CSConfigPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/CameraViewPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ClearGroundItem.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ClearMinimapFlag.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ClearRegionChunk.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ClearScenery.java (100%) rename Server/src/main/{java => }/core/net/packet/out/CloseInterface.java (100%) rename Server/src/main/{java => }/core/net/packet/out/CommunicationMessage.java (98%) rename Server/src/main/{java => }/core/net/packet/out/Config.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ConstructGroundItem.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ConstructScenery.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ContactPackets.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ContainerPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/DisplayModel.java (100%) rename Server/src/main/{java => }/core/net/packet/out/GameMessage.java (100%) rename Server/src/main/{java => }/core/net/packet/out/GrandExchangePacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/HintIcon.java (100%) rename Server/src/main/{java => }/core/net/packet/out/InstancedLocationUpdate.java (100%) rename Server/src/main/{java => }/core/net/packet/out/InteractionOption.java (100%) rename Server/src/main/{java => }/core/net/packet/out/Interface.java (100%) rename Server/src/main/{java => }/core/net/packet/out/InterfaceConfig.java (100%) rename Server/src/main/{java => }/core/net/packet/out/LoginPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/Logout.java (100%) rename Server/src/main/{java => }/core/net/packet/out/MinimapState.java (100%) rename Server/src/main/{java => }/core/net/packet/out/MusicPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/PingPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/PositionedGraphic.java (96%) rename Server/src/main/{java => }/core/net/packet/out/RepositionChild.java (100%) rename Server/src/main/{java => }/core/net/packet/out/ResetInterface.java (100%) rename Server/src/main/{java => }/core/net/packet/out/RunEnergy.java (100%) rename Server/src/main/{java => }/core/net/packet/out/RunScriptPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/SetWalkOption.java (100%) rename Server/src/main/{java => }/core/net/packet/out/SkillLevel.java (100%) rename Server/src/main/{java => }/core/net/packet/out/StringPacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/SystemUpdatePacket.java (100%) rename Server/src/main/{java => }/core/net/packet/out/UpdateAreaPosition.java (100%) rename Server/src/main/{java => }/core/net/packet/out/UpdateClanChat.java (100%) rename Server/src/main/{java => }/core/net/packet/out/UpdateGroundItemAmount.java (100%) rename Server/src/main/{java => }/core/net/packet/out/UpdateRandomFile.java (100%) rename Server/src/main/{java => }/core/net/packet/out/UpdateSceneGraph.java (97%) rename Server/src/main/{java => }/core/net/packet/out/Varbit.java (100%) rename Server/src/main/{java => }/core/net/packet/out/VarcUpdate.java (100%) rename Server/src/main/{java => }/core/net/packet/out/WeightUpdate.java (100%) rename Server/src/main/{java => }/core/net/packet/out/WindowsPane.java (100%) rename Server/src/main/{java => }/core/net/producer/GameEventProducer.java (100%) rename Server/src/main/{java => }/core/net/producer/HSEventProducer.java (100%) rename Server/src/main/{java => }/core/net/producer/JS5EventProducer.java (100%) rename Server/src/main/{java => }/core/net/producer/LoginEventProducer.java (94%) rename Server/src/main/{java => }/core/net/producer/MSEventProducer.java (100%) rename Server/src/main/{java => }/core/net/producer/MSHSEventProducer.java (100%) rename Server/src/main/{java => }/core/net/producer/RegistryEventProducer.java (100%) rename Server/src/main/{java => }/core/net/registry/AccountRegister.java (95%) rename Server/src/main/{java => }/core/net/registry/RegistryDetails.java (100%) rename Server/src/main/{java => }/core/net/registry/RegistryResponse.java (100%) rename Server/src/main/{kotlin/rs09 => core}/plugin/ClassScanner.kt (83%) rename Server/src/main/{java => }/core/plugin/CorePluginTypes/ManagerPlugin.java (100%) rename Server/src/main/{java => }/core/plugin/CorePluginTypes/Managers.java (91%) rename Server/src/main/{java => }/core/plugin/CorePluginTypes/StartupPlugin.java (100%) rename Server/src/main/{kotlin/rs09 => core}/plugin/CorePluginTypes/XPGainPlugins.kt (94%) rename Server/src/main/{java => }/core/plugin/Initializable.java (100%) rename Server/src/main/{java => }/core/plugin/Plugin.java (100%) rename Server/src/main/{java => }/core/plugin/PluginManifest.java (100%) rename Server/src/main/{java => }/core/plugin/PluginType.java (100%) rename Server/src/main/{kotlin/rs09 => core}/storage/AccountStorageProvider.kt (87%) rename Server/src/main/{kotlin/rs09 => core}/storage/InMemoryStorageProvider.kt (94%) rename Server/src/main/{kotlin/rs09 => core}/storage/SQLStorageProvider.kt (98%) rename Server/src/main/{java => }/core/tools/CP1252.java (100%) rename Server/src/main/{kotlin/rs09 => core}/tools/DialogueConst.kt (93%) rename Server/src/main/{kotlin/rs09 => core}/tools/Globals.kt (88%) rename Server/src/main/{java => }/core/tools/PlayerLoader.java (100%) rename Server/src/main/{java => }/core/tools/RSAKeyGen.java (100%) rename Server/src/main/{java => }/core/tools/RandomFunction.java (100%) rename Server/src/main/{java => }/core/tools/StringUtils.java (100%) rename Server/src/main/{kotlin/rs09/game/system => core/tools}/SystemLogger.kt (98%) rename Server/src/main/{kotlin/rs09 => core}/tools/TickUtils.kt (95%) rename Server/src/main/{java => }/core/tools/TimeStamp.java (100%) rename Server/src/main/{java => }/core/tools/Vector3d.java (100%) rename Server/src/main/{java => }/core/tools/mysql/Database.java (100%) rename Server/src/main/{java => }/core/tools/mysql/Query.java (100%) rename Server/src/main/{java => }/core/tools/mysql/Results.java (100%) rename Server/src/main/{kotlin/rs09 => core}/worker/MajorUpdateWorker.kt (90%) rename Server/src/main/{kotlin/rs09 => core}/worker/ManagementEvents.kt (97%) delete mode 100644 Server/src/main/java/core/game/content/consumable/CookingProperties.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/BanditCampBartenderDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/CallistoCubDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/ChaosElementalJRDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/CrossbowDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/DartCreateDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/EventLocatorDialoguePlugin.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/GraardoorJRDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/HeronDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/KeyMasterDialoguePlugin.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/KreeJrDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/KrilJRDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/LimbDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/MeleeShopDialoguePlugin.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/PrinceBlackDragonDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/RockGolemDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/ScorpiasOffspringDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/StringBowDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java.orig delete mode 100644 Server/src/main/java/core/game/content/dialogue/VenenatisSpiderlingDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/VetionJRDialogue.java delete mode 100644 Server/src/main/java/core/game/content/dialogue/ZilyanaJRDialogue.java delete mode 100644 Server/src/main/java/core/game/content/eco/EcoStatus.java delete mode 100644 Server/src/main/java/core/game/content/eco/EconomyManagement.java delete mode 100644 Server/src/main/java/core/game/content/global/travel/MinigameGroupFinder.java delete mode 100644 Server/src/main/java/core/game/content/holiday/HolidayEvent.java delete mode 100644 Server/src/main/java/core/game/content/holiday/HolidayItem.java delete mode 100644 Server/src/main/java/core/game/content/holiday/HolidayType.java delete mode 100644 Server/src/main/java/core/game/content/holiday/ItemLimitation.java delete mode 100644 Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java delete mode 100644 Server/src/main/java/core/game/content/holiday/easter/BasketofEggsEvent.java delete mode 100644 Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java delete mode 100644 Server/src/main/java/core/game/content/quest/free/dragonslayer/DSChestDialogue.java delete mode 100644 Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/CellarMapZone.java delete mode 100644 Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/LTRDragonFightCutscene.java delete mode 100644 Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/SirVantDialogue.java delete mode 100644 Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java delete mode 100644 Server/src/main/java/core/game/interaction/city/HomePlugin.java delete mode 100644 Server/src/main/java/core/game/interaction/item/withobject/DragonPlatebody.java delete mode 100644 Server/src/main/java/core/game/interaction/npc/SecurityGuardPlugin.java delete mode 100644 Server/src/main/java/core/game/interaction/object/GertrudeCatPlugin.java delete mode 100644 Server/src/main/java/core/game/node/entity/npc/drop/SharedTables.java delete mode 100644 Server/src/main/java/core/game/node/entity/npc/other/CitizenNPC.java delete mode 100644 Server/src/main/java/core/game/node/entity/npc/revenant/CorruptEquipment.java delete mode 100644 Server/src/main/java/core/game/node/entity/npc/revenant/PVPEquipment.java delete mode 100644 Server/src/main/kotlin/api/events/Event.kt delete mode 100644 Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerCompatible.kt delete mode 100644 Server/src/main/kotlin/rs09/game/camerautils/CameraUtils.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/GuardianMummyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/DialogueBuilder.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/DialogueTopic.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AablaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheFarmerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheGuard.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheSmithDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/FadliDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/JaraahDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SabreenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SurgeonGeneralTafaniDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/bananaplantation/BonzaraDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/DagaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/MonkeyChildThingZooDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/barbarianassault/CaptainCainDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/MasterCrafterDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TannerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TheDoorDialogues.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/darkwizardstower/ZandarHorfyreDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BartakDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/duelarena/AfrahDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DrogoDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DwarvenMineGuardDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/NurmofDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/HighPriestEntranaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/MazionDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/AmbassadorSpanfippleDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/DrunkenManDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WorkmanDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/ElfTrackerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/IlfeenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuard.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/CitizenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/EricDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/GruvaPatrullDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/LeftieRightieDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MinerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/TowerGuardDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/AgmundiDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/InnKeeperDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/LegendsGuardDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/ArvelDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/DalldavDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/GoreuDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/KelynDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/MawrthDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/LumbridgeGuideDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BabaYagaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/CabinBoyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/MelenaMoonlanderDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/PaulinePolarisDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/RimaeSirsalisDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SeleneDialog.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DonalDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FerdDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FishmongerMiscDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/HallaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/RunaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/mosleharmless/CharleyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/FridleifShieldsonDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/GunnarHoldstromDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/JofridrMordstatterDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/KjedeligUppsenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/LisseIsaaksonDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/MortenHoldstromDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/SlugHemliggsenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/ThakkradSigmundsonDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/TrogenKonungardeDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/BeefyBurnsDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/DaveyBoyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/EagleEyeShultzDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/LecherousLeeDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheHagDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheMayorDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BjornAndEldgrimDialogues.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BlaninDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/DronDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/IngridHradsonDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/LonghallBouncerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/ReesoDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/VolfOlasfsonDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/EmbalmerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/CarolineDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/ColONiallDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/EzekialLovecraftDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/HolgartDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/WitchhavenVillageDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/BlaecDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/CoOrdinatorDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyFixit.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/GillieGroatsDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/LumbridgeCookDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/MillieMillerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSListeners.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/CharlieTheTrampDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWUtils.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/WarriorDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/ArheinMCDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherCedricNPC.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherOmadNPC.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSDrezelDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSTarlockDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/AskeladdenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FishermanDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikSailorDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LalliDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ManniDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PeerTheSeerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigmundDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SkulgrimenDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThoraDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThorvaldDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/YrsaDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/ArdougneGuideBook.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/CrompertyDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/GPDTEmployeeDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/HoracioDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/KangaiMauDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFinanceAdvisorDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/content/tutorial/TutorialPrayerDialogue.kt delete mode 100644 Server/src/main/kotlin/rs09/game/interaction/item/EnchantedGemListener.kt delete mode 100644 Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitWest.kt rename Server/src/main/{java => }/proto/management/BlockedUpdate.java (100%) rename Server/src/main/{java => }/proto/management/BlockedUpdateOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/ClanJoinNotification.java (100%) rename Server/src/main/{java => }/proto/management/ClanJoinNotificationOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/ClanLeaveNotification.java (100%) rename Server/src/main/{java => }/proto/management/ClanLeaveNotificationOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/ClanMessage.java (100%) rename Server/src/main/{java => }/proto/management/ClanMessageOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/ClanSettingsUpdateOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/FriendUpdate.java (100%) rename Server/src/main/{java => }/proto/management/FriendUpdateOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/JoinClanRequest.java (100%) rename Server/src/main/{java => }/proto/management/JoinClanRequestOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/LeaveClanRequest.java (100%) rename Server/src/main/{java => }/proto/management/LeaveClanRequestOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/ManagementProtos.java (100%) rename Server/src/main/{java => }/proto/management/PlayerStatusUpdate.java (100%) rename Server/src/main/{java => }/proto/management/PlayerStatusUpdateOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/PrivateMessage.java (100%) rename Server/src/main/{java => }/proto/management/PrivateMessageOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/RequestClanInfo.java (100%) rename Server/src/main/{java => }/proto/management/RequestClanInfoOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/RequestContactInfo.java (100%) rename Server/src/main/{java => }/proto/management/RequestContactInfoOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/SendClanInfo.java (100%) rename Server/src/main/{java => }/proto/management/SendClanInfoOrBuilder.java (100%) rename Server/src/main/{java => }/proto/management/SendContactInfo.java (100%) rename Server/src/main/{java => }/proto/management/SendContactInfoOrBuilder.java (100%) diff --git a/Server/pom.xml b/Server/pom.xml index 188230d74..8adac8e6e 100644 --- a/Server/pom.xml +++ b/Server/pom.xml @@ -5,7 +5,7 @@ server 1.0.0 - rs09.Server + core.Server true 1.6.21 1.6 @@ -93,6 +93,8 @@ + src/main + src/test @@ -173,8 +175,7 @@ - ${project.basedir}/src/main/kotlin - ${project.basedir}/src/main/java + ${project.basedir}/src/main @@ -258,7 +259,7 @@ exec-maven-plugin 1.2.1 - rs09.Server + core.Server @@ -278,7 +279,7 @@ classname="io.gitlab.arturbosch.detekt.cli.Main" classpathref="maven.plugin.classpath"> - + diff --git a/Server/src/main/java/core/game/content/global/BossKillCounter.java b/Server/src/main/content/data/BossKillCounter.java similarity index 99% rename from Server/src/main/java/core/game/content/global/BossKillCounter.java rename to Server/src/main/content/data/BossKillCounter.java index 319b0dcdb..3759a5951 100644 --- a/Server/src/main/java/core/game/content/global/BossKillCounter.java +++ b/Server/src/main/content/data/BossKillCounter.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/Dyes.java b/Server/src/main/content/data/Dyes.java similarity index 96% rename from Server/src/main/java/core/game/content/global/Dyes.java rename to Server/src/main/content/data/Dyes.java index 63e47122c..79c508fa8 100644 --- a/Server/src/main/java/core/game/content/global/Dyes.java +++ b/Server/src/main/content/data/Dyes.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/content/global/EnchantedJewellery.kt b/Server/src/main/content/data/EnchantedJewellery.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/global/EnchantedJewellery.kt rename to Server/src/main/content/data/EnchantedJewellery.kt index c91d84341..e44cd32fa 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/EnchantedJewellery.kt +++ b/Server/src/main/content/data/EnchantedJewellery.kt @@ -1,8 +1,9 @@ -package rs09.game.content.global +package content.data -import api.* -import api.events.TeleportEvent -import core.game.content.dialogue.FacialExpression +import content.global.skill.magic.TeleportMethod +import content.global.skill.slayer.SlayerManager.Companion.getInstance +import core.api.* +import core.game.event.TeleportEvent import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.player.link.audio.Audio @@ -12,9 +13,7 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.game.node.entity.skill.magic.TeleportMethod -import rs09.game.node.entity.skill.slayer.SlayerManager.Companion.getInstance -import rs09.game.world.GameWorld.Pulser +import core.game.world.GameWorld.Pulser import java.util.* /** @@ -275,12 +274,12 @@ enum class EnchantedJewellery( val slayerManager = getInstance(player) if (!slayerManager.hasTask()) { sendNPCDialogue(player, slayerManager.master!!.npc, "You need something new to hunt. Come and " + - "see me When you can and I'll give you a new task.", FacialExpression.HALF_GUILTY) + "see me When you can and I'll give you a new task.", core.game.dialogue.FacialExpression.HALF_GUILTY) return } sendNPCDialogue(player, slayerManager.master!!.npc, "You're currently " + "assigned to kill ${getSlayerTaskName(player).lowercase(Locale.getDefault())}'s; " + - "only ${getSlayerTaskKillsRemaining(player)} more to go.", FacialExpression.FRIENDLY) + "only ${getSlayerTaskKillsRemaining(player)} more to go.", core.game.dialogue.FacialExpression.FRIENDLY) // Slayer tracker UI setVarbit(player, 2502, 0, slayerManager.flags.taskFlags shr 4) } diff --git a/Server/src/main/java/core/game/content/global/GodBook.java b/Server/src/main/content/data/GodBook.java similarity index 99% rename from Server/src/main/java/core/game/content/global/GodBook.java rename to Server/src/main/content/data/GodBook.java index 7198cf39c..37e0adae8 100644 --- a/Server/src/main/java/core/game/content/global/GodBook.java +++ b/Server/src/main/content/data/GodBook.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/GodType.java b/Server/src/main/content/data/GodType.java similarity index 97% rename from Server/src/main/java/core/game/content/global/GodType.java rename to Server/src/main/content/data/GodType.java index e202c34e4..2b8ce7e9a 100644 --- a/Server/src/main/java/core/game/content/global/GodType.java +++ b/Server/src/main/content/data/GodType.java @@ -1,13 +1,13 @@ -package core.game.content.global; +package content.data; -import core.game.content.dialogue.DialogueAction; +import core.game.dialogue.DialogueAction; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/content/global/Lamps.java b/Server/src/main/content/data/Lamps.java similarity index 98% rename from Server/src/main/java/core/game/content/global/Lamps.java rename to Server/src/main/content/data/Lamps.java index 4abba5531..e4631c78b 100644 --- a/Server/src/main/java/core/game/content/global/Lamps.java +++ b/Server/src/main/content/data/Lamps.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/LightSource.java b/Server/src/main/content/data/LightSource.java similarity index 99% rename from Server/src/main/java/core/game/content/global/LightSource.java rename to Server/src/main/content/data/LightSource.java index 1a8c4f7d3..118cb492f 100644 --- a/Server/src/main/java/core/game/content/global/LightSource.java +++ b/Server/src/main/content/data/LightSource.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/Meat.kt b/Server/src/main/content/data/Meat.kt similarity index 97% rename from Server/src/main/java/core/game/content/global/Meat.kt rename to Server/src/main/content/data/Meat.kt index 5248986bc..714b2403a 100644 --- a/Server/src/main/java/core/game/content/global/Meat.kt +++ b/Server/src/main/content/data/Meat.kt @@ -1,6 +1,4 @@ -package core.game.content.global - -import java.util.ArrayList +package content.data enum class MeatState { INEDIBLE_RAW, diff --git a/Server/src/main/java/core/game/content/global/RepairItem.java b/Server/src/main/content/data/RepairItem.java similarity index 98% rename from Server/src/main/java/core/game/content/global/RepairItem.java rename to Server/src/main/content/data/RepairItem.java index 00ebd7a36..3ab25a4d5 100644 --- a/Server/src/main/java/core/game/content/global/RepairItem.java +++ b/Server/src/main/content/data/RepairItem.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/consumable/Consumables.java b/Server/src/main/content/data/consumables/Consumables.java similarity index 98% rename from Server/src/main/java/core/game/content/consumable/Consumables.java rename to Server/src/main/content/data/consumables/Consumables.java index c14e32161..40c52e87e 100644 --- a/Server/src/main/java/core/game/content/consumable/Consumables.java +++ b/Server/src/main/content/data/consumables/Consumables.java @@ -1,397 +1,397 @@ -package core.game.content.consumable; - -import org.rs09.consts.Items; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.entity.state.EntityState; -import core.game.world.update.flag.context.Animation; -import core.game.content.consumable.effects.*; -import core.game.node.entity.skill.Skills; -import rs09.game.content.consumable.effects.KegOfBeerEffect; -import rs09.game.content.consumable.effects.RestoreSummoningSpecial; - -import java.util.HashMap; - -/** - * Represents a repository of active consumables in the framework. - */ -public enum Consumables { - - /** Meats */ - COOKED_MEAT(new Food(new int[] {2142}, new HealingEffect(3))), - SHRIMPS(new Food(new int[] {315}, new HealingEffect(3))), - COOKED_CHICKEN(new Food(new int[] {2140}, new HealingEffect(3))), - COOKED_RABBIT(new Food(new int[] {3228}, new HealingEffect(5))), - ANCHOVIES(new Food(new int[] {319}, new HealingEffect(1))), - SARDINE(new Food(new int[] {325}, new HealingEffect(4))), - POISON_KARAMBWAN(new Food(new int[] {3146}, new PoisonKarambwanEffect())), - UGTHANKI_MEAT(new Food(new int[] {1861}, new HealingEffect(3))), - HERRING(new Food(new int[] {347}, new HealingEffect(5))), - MACKEREL(new Food(new int[] {355}, new HealingEffect(6))), - ROAST_BIRD_MEAT(new Food(new int[] {9980}, new HealingEffect(6))), - THIN_SNAIL(new Food(new int[] {3369}, new HealingEffect(5))), - TROUT(new Food(new int[] {333}, new HealingEffect(7))), - SPIDER_ON_STICK(new Food(new int[] {6297, 6305}, new HealingEffect(7))), - SPIDER_ON_SHAFT(new Food(new int[] {6299}, new HealingEffect(7))), - ROAST_RABBIT(new Food(new int[] {7223}, new HealingEffect(7))), - LEAN_SNAIL(new Food(new int[] {3371}, new HealingEffect(8))), - COD(new Food(new int[] {339}, new HealingEffect(7))), - PIKE(new Food(new int[] {351}, new HealingEffect(8))), - ROAST_BEAST_MEAT(new Food(new int[] {9988}, new HealingEffect(8))), - COOKED_CRAB_MEAT(new Food(new int[] {7521, 7523, 7524, 7525, 7526}, new HealingEffect(2))), - FAT_SNAIL(new Food(new int[] {3373}, new HealingEffect(9))), - SALMON(new Food(new int[] {329}, new HealingEffect(9))), - SLIMY_EEL(new Food(new int[] {3381}, new HealingEffect(6))), - TUNA(new Food(new int[] {361}, new HealingEffect(10))), - COOKED_KARAMBWAN(new Food(new int[] {3144}, new HealingEffect(18))), - COOKED_CHOMPY(new Food(new int[] {2878}, new HealingEffect(10))), - RAINBOW_FISH(new Food(new int[] {10136}, new HealingEffect(11))), - CAVE_EEL(new Food(new int[] {5003}, new HealingEffect(7))), - LOBSTER(new Food(new int[] {379}, new HealingEffect(12))), - COOKED_JUBBLY(new Food(new int[] {7568}, new HealingEffect(15))), - BASS(new Food(new int[] {365}, new HealingEffect(13))), - SWORDFISH(new Food(new int[] {373}, new HealingEffect(14))), - LAVA_EEL(new Food(new int[] {2149}, new HealingEffect(14))), - MONKFISH(new Food(new int[] {7946}, new HealingEffect(16))), - SHARK(new Food(new int[] {385}, new HealingEffect(20))), - SEA_TURTLE(new Food(new int[] {397}, new HealingEffect(21))), - MANTA_RAY(new Food(new int[] {391}, new HealingEffect(22))), - KARAMBWANJI(new Food(new int[] {3151}, new HealingEffect(3))), - STUFFED_SNAKE(new Food(new int[] {7579}, new HealingEffect(20), "You eat the stuffed snake-it's quite a meal! It tastes like chicken.")), - CRAYFISH(new Food(new int[] {13433}, new HealingEffect(2))), - GIANT_FROG_LEGS(new Food(new int [] {4517}, new HealingEffect(6))), - - /** Breads */ - BREAD(new Food(new int[] {2309}, new HealingEffect(5))), - BAGUETTE(new Food(new int[] {6961}, new HealingEffect(6))), - - /** Sandwiches */ - TRIANGLE_SANDWICH(new Food(new int[] {6962}, new HealingEffect(6))), - SQUARE_SANDWICH(new Food(new int[] {6965}, new HealingEffect(6))), - SEAWEED_SANDWICH(new FakeConsumable(3168, new String[] {"You really, really do not want to eat that."})), - FROGBURGER(new Food(new int[] {10962}, new HealingEffect(2))), - - /** Kebabs */ - UGTHANKI_KEBAB(new Food(new int[] {1883}, new UgthankiKebabEffect())), - UGTHANKI_KEBAB_SMELLING(new Food(new int[] {1885}, new SmellingUgthankiKebabEffect())), - KEBAB(new Food(new int[] {1971}, new KebabEffect())), - SUPER_KEBAB(new Food(new int[] {4608}, new SuperKebabEffect())), - - /** Pies */ - REDBERRY_PIE(new HalfableFood(new int[] {2325, 2333, 2313}, new HealingEffect(5))), - MEAT_PIE(new HalfableFood(new int[] {2327, 2331, 2313}, new HealingEffect(6))), - APPLE_PIE(new HalfableFood(new int[] {2323, 2335, 2313}, new HealingEffect(7))), - GARDEN_PIE(new HalfableFood(new int[] {7178, 7180, 2313}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.FARMING, 3, 0)))), - FISH_PIE(new HalfableFood(new int[] {7188, 7190, 2313}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.FISHING, 3, 0)))), - ADMIRAL_PIE(new HalfableFood(new int[] {7198, 7200, 2313}, new MultiEffect(new HealingEffect(8), new SkillEffect(Skills.FISHING, 5, 0)))), - WILD_PIE(new HalfableFood(new int[] {7208, 7210, 2313}, new MultiEffect(new SkillEffect(Skills.SLAYER, 5, 0), new SkillEffect(Skills.RANGE, 4, 0), new HealingEffect(11)))), - SUMMER_PIE(new HalfableFood(new int[] {7218, 7220, 2313}, new MultiEffect(new HealingEffect(11), new SkillEffect(Skills.AGILITY, 5, 0), new EnergyEffect(10)))), - - /** Stews */ - STEW(new Food(new int[] {2003, 1923}, new HealingEffect(11))), - SPICY_STEW(new Food(new int[] {7479, 1923}, new HealingEffect(11))), - CURRY(new Food(new int[] {2011, 1923}, new HealingEffect(19))), - BANANA_STEW(new Food(new int[] {4016, 1923}, new HealingEffect(11))), - - /** Pizzas */ - PLAIN_PIZZA(new HalfableFood(new int[] {2289, 2291}, new HealingEffect(7))), - MEAT_PIZZA(new HalfableFood(new int[] {2293, 2295}, new HealingEffect(8))), - ANCHOVY_PIZZA(new HalfableFood(new int[] {2297, 2299}, new HealingEffect(9))), - PINEAPPLE_PIZZA(new HalfableFood(new int[] {2301, 2303}, new HealingEffect(11))), - - /** Cakes */ - CAKE(new Cake(new int[] {1891, 1893, 1895}, new HealingEffect(4), "You eat part of the cake.", "You eat some more cake.", "You eat the slice of cake.")), - CHOCOLATE_CAKE(new Cake(new int[] {1897, 1899, 1901}, new HealingEffect(5), "You eat part of the chocolate cake.", "You eat some more of the chocolate cake.", "You eat the slice of cake.")), - ROCK_CAKE(new Food(new int[] {2379}, new RockCakeEffect(), "The rock cake resists all attempts to eat it.")), - DWARVEN_ROCK_CAKE(new Food(new int[] {7510, 7510}, new DwarvenRockCakeEffect(), "Ow! You nearly broke a tooth!", "The rock cake resists all attempts to eat it.")), - HOT_DWARVEN_ROCK_CAKE(new Food(new int[] {7509, 7509}, new DwarvenRockCakeEffect(), "Ow! You nearly broke a tooth!", "The rock cake resists all attempts to eat it.")), - COOKED_FISHCAKE(new Food(new int[] {7530}, new HealingEffect(11))), - MINT_CAKE(new Food(new int[] {9475}, new EnergyEffect(50))), - - /** Vegetables */ - POTATO(new Food(new int[] {1942}, new HealingEffect(1))), - BAKED_POTATO(new Food(new int[] {6701}, new HealingEffect(2))), - SPICY_SAUCE(new Food(new int[] {7072, 1923}, new HealingEffect(2))), - CHILLI_CON_CARNE(new Food(new int[] {7062, 1923}, new HealingEffect(5))), - SCRAMBLED_EGG(new Food(new int[] {7078, 1923}, new HealingEffect(5))), - EGG_AND_TOMATO(new Food(new int[] {7064, 1923}, new HealingEffect(8))), - SWEET_CORN(new Food(new int[] {5988}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(10)))), - SWEETCORN_BOWL(new Food(new int[] {7088, 1923}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(10)))), - POTATO_WITH_BUTTER(new Food(new int[] {6703}, new HealingEffect(7))), - CHILLI_POTATO(new Food(new int[] {7054}, new HealingEffect(14))), - FRIED_ONIONS(new Food(new int[] {7084, 1923}, new HealingEffect(5))), - FRIED_MUSHROOMS(new Food(new int[] {7082, 1923}, new HealingEffect(5))), - POTATO_WITH_CHEESE(new Food(new int[] {6705}, new HealingEffect(16))), - EGG_POTATO(new Food(new int[] {7056}, new HealingEffect(11))), - MUSHROOMS_AND_ONIONS(new Food(new int[] {7066, 1923}, new HealingEffect(11))), - MUSHROOM_POTATO(new Food(new int[] {7058}, new HealingEffect(20))), - TUNA_AND_CORN(new Food(new int[] {7068, 1923}, new HealingEffect(13))), - TUNA_POTATO(new Food(new int[] {7060}, new HealingEffect(22))), - ONION(new Food(new int[] {1957}, new HealingEffect(2), "It's always sad to see a grown man/woman cry.")), - CABBAGE(new Food(new int[] {1965}, new HealingEffect(2), "You eat the cabbage. Yuck!")), - DRAYNOR_CABBAGE(new Food(new int[] {1967}, new DraynorCabbageEffect(), "You eat the cabbage.", "It seems to taste nicer than normal.")), - EVIL_TURNIP(new Food(new int[] {12134, 12136, 12138}, new HealingEffect(6))), - SPINACH_ROLL(new Food(new int[] {1969}, new HealingEffect(2))), - - /** Dairies */ - POT_OF_CREAM(new Food(new int[] {2130}, new HealingEffect(1))), - CHEESE(new Food(new int[] {1985}, new HealingEffect(2))), - CHOCOLATEY_MILK(new Drink(new int[] {1977, 1925}, new HealingEffect(4))), - - /** Fruits */ - BANANA(new Food(new int[] {1963}, new HealingEffect(2))), - SLICED_BANANA(new Food(new int[] {3162}, new HealingEffect(2))), - RED_BANANA(new Food(new int[] {7572}, new HealingEffect(5), "You eat the red banana. It's tastier than your average banana.")), - SLICED_RED_BANANA(new Food(new int[] {7574}, new HealingEffect(5), "You eat the sliced red banana. Yum.")), - ORANGE(new Food(new int[] {2108}, new HealingEffect(2))), - ORANGE_CHUNKS(new Food(new int[] {2110}, new HealingEffect(2))), - ORANGE_SLICES(new Food(new int[] {2112}, new HealingEffect(2))), - PAPAYA_FRUIT(new Food(new int[] {5972}, new HealingEffect(2))), - TENTI_PINEAPPLE(new FakeConsumable(1851, new String[] {"Try using a knife to slice it into pieces."})), - PINEAPPLE(new FakeConsumable(2114, new String[] {"Try using a knife to slice it into pieces."})), - PINEAPPLE_CHUNKS(new Food(new int[] {2116}, new HealingEffect(2))), - PINEAPPLE_RING(new Food(new int[] {2118}, new HealingEffect(2))), - DWELLBERRIES(new Food(new int[] {2126}, new HealingEffect(2))), - JANGERBERRIES(new Food(new int[] {247}, new MultiEffect(new SkillEffect(Skills.ATTACK, 2, 0), new SkillEffect(Skills.STRENGTH, 1, 0), new PrayerEffect(1, 0), new SkillEffect(Skills.DEFENCE, -1, 0)))), - STRAWBERRY(new Food(new int[] {5504}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(6)))), - TOMATO(new Food(new int[] {1982}, new HealingEffect(2))), - WATERMELON(new FakeConsumable(5982, new String[] {"Try using a knife to slice it into pieces."})), - WATERMELON_SLICE(new Food(new int[] {5984}, new PercentageHealthEffect(5))), - LEMON(new Food(new int[] {2102}, new HealingEffect(2))), - LEMON_CHUNKS(new Food(new int[] {2104}, new HealingEffect(2))), - LEMON_SLICES(new Food(new int[] {2106}, new HealingEffect(2))), - LIME(new Food(new int[] {2120}, new HealingEffect(2))), - LIME_CHUNKS(new Food(new int[] {2122}, new HealingEffect(2))), - LIME_SLICES(new Food(new int[] {2124}, new HealingEffect(2))), - PEACH(new Food(new int[] {6883}, new HealingEffect(8))), - WHITE_TREE_FRUIT(new Food(new int[] {6469}, new MultiEffect(new RandomEnergyEffect(5, 10), new HealingEffect(3)))), - STRANGE_FRUIT(new Food(new int[] {464}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new EnergyEffect(30)))), - - /** Gnome Cooking */ - TOAD_CRUNCHIES(new Food(new int[] {2217}, new HealingEffect(12))), - PREMADE_TD_CRUNCH(new Food(new int[] {2243}, new HealingEffect(12))), - SPICY_CRUNCHIES(new Food(new int[] {2213}, new HealingEffect(7))), - PREMADE_SY_CRUNCH(new Food(new int[] {2241}, new HealingEffect(7))), - WORM_CRUNCHIES(new Food(new int[] {2205}, new HealingEffect(8))), - PREMADE_WM_CRUNC(new Food(new int[] {2237}, new HealingEffect(8))), - CHOCCHIP_CRUNCHIES(new Food(new int[] {2209}, new HealingEffect(7))), - PREMADE_CH_CRUNCH(new Food(new int[] {2239}, new HealingEffect(7))), - FRUIT_BATTA(new Food(new int[] {2277}, new HealingEffect(11))), - PREMADE_FRT_BATTA(new Food(new int[] {2225}, new HealingEffect(11))), - TOAD_BATTA(new Food(new int[] {2255}, new HealingEffect(11))), - PREMADE_TD_BATTA(new Food(new int[] {2221}, new HealingEffect(11))), - WORM_BATTA(new Food(new int[] {2253}, new HealingEffect(11))), - PREMADE_WM_BATTA(new Food(new int[] {2219}, new HealingEffect(11))), - VEGETABLE_BATTA(new Food(new int[] {2281}, new HealingEffect(11))), - PREMADE_VEG_BATTA(new Food(new int[] {2227}, new HealingEffect(11))), - CHEESE_AND_TOMATOES_BATTA(new Food(new int[] {2259}, new HealingEffect(11))), - PREMADE_CT_BATTA(new Food(new int[] {2223}, new HealingEffect(11))), - WORM_HOLE(new Food(new int[] {2191}, new HealingEffect(12))), - PREMADE_WORM_HOLE(new Food(new int[] {2233}, new HealingEffect(12))), - VEG_BALL(new Food(new int[] {2195}, new HealingEffect(12))), - PREMADE_VEG_BALL(new Food(new int[] {2235}, new HealingEffect(12))), - TANGLED_TOADS_LEGS(new Food(new int[] {2187}, new HealingEffect(15))), - PREMADE_TTL(new Food(new int[] {2231}, new HealingEffect(15))), - CHOCOLATE_BOMB(new Food(new int[] {2195}, new HealingEffect(15))), - PREMADE_CHOC_BOMB(new Food(new int[] {2229}, new HealingEffect(15))), - TOAD_LEGS(new Food(new int[] {2152}, new HealingEffect(3))), - KING_WORM(new Food(new int[] {2162}, new HealingEffect(2))), - - /** Ales */ - ASGOLDIAN_ALE(new FakeConsumable(7508, new String[] {"I don't think I'd like gold in beer thanks. Leave it for the dwarves."})), - ASGARNIAN_ALE(new Drink(new int[] {1905, 1919}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), "You drink the ale. You feel slightly reinvigorated...", "...and slightly dizzy too.")), - ASGARNIAN_ALE_KEG(new Drink(new int[] {5785, 5783, 5781, 5779, 5769}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289), "You drink the ale. You feel slightly reinvigorated...", "...and slightly dizzy too.")), - ASGARNIAN_ALE_M(new Drink(new int[] {5739, 1919}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), - ASGARNIAN_ALE_M_KEG(new Drink(new int[] {5865, 5863, 5861, 5859, 5769}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)), new Animation(2289))), - AXEMANS_FOLLY(new Drink(new int[] {5751, 1919}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 1, 0), new HealingEffect(1), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), - AXEMANS_FOLLY_KEG(new Drink(new int[] {5825, 5823, 5821, 5819, 5769}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 1, 0), new HealingEffect(1), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.ATTACK, -3, 0)), new Animation(2289))), - AXEMANS_FOLLY_M(new Drink(new int[] {5753, 1919}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 2, 0), new HealingEffect(2), new SkillEffect(Skills.STRENGTH, -4, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - AXEMANS_FOLLY_M_KEG(new Drink(new int[] {5905, 5903, 5901, 5899, 5769}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 2, 0), new HealingEffect(2), new SkillEffect(Skills.STRENGTH, -4, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289))), - BANDITS_BREW(new Drink(new int[] {4627, 1919}, new MultiEffect(new SkillEffect(Skills.THIEVING, 1, 0), new SkillEffect(Skills.ATTACK, 1, 0), new SkillEffect(Skills.STRENGTH, -1, 0), new SkillEffect(Skills.DEFENCE, -6, 0), new HealingEffect(1)), "You drink the beer. You feel slightly reinvigorated...", "...and slightly dizzy too.")), - BEER(new Drink(new int[] {1917, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 0, 0.04), new SkillEffect(Skills.ATTACK, 0, -0.07)), "You drink the beer. You feel slightly reinvigorated...", "...and slightly dizzy too.")), - BEER_TANKARD(new Drink(new int[] {3803, 3805}, new MultiEffect(new SkillEffect(Skills.ATTACK, -9, 0), new SkillEffect(Skills.STRENGTH, 4, 0)), "You quaff the beer. You feel slightly reinvigorated...", "...but very dizzy too.")), - KEG_OF_BEER(new Drink(new int[] {3801}, new KegOfBeerEffect(), new Animation(1330), "You chug the keg. You feel reinvigorated...", "...but extremely drunk too.")), - CHEFS_DELIGHT(new Drink(new int[] {5755, 1919}, new MultiEffect(new SkillEffect(Skills.COOKING, 1, 0.05), new HealingEffect(1), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), - CHEFS_DELIGHT_KEG(new Drink(new int[] {5833, 5831, 5829, 5827, 5769}, new MultiEffect(new SkillEffect(Skills.COOKING, 1, 0.05), new HealingEffect(1), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), - CHEFS_DELIGHT_M(new Drink(new int[] {5757, 1919}, new MultiEffect(new SkillEffect(Skills.COOKING, 2, 0.05), new HealingEffect(2), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0)))), - CHEFS_DELIGHT_M_KEG(new Drink(new int[] {5913, 5911, 5909, 5907, 5769}, new MultiEffect(new SkillEffect(Skills.COOKING, 2, 0.05), new HealingEffect(2), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0)), new Animation(2289))), - CIDER(new Drink(new int[] {5763, 1919}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 1, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0))))), - CIDER_KEG(new Drink(new int[] {5849, 5847, 5845, 5843, 5769}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 1, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0))), new Animation(2289))), - MATURE_CIDER(new Drink(new int[] {5765, 1919}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 2, 0), new SkillEffect(Skills.ATTACK, -5, 0), new SkillEffect(Skills.STRENGTH, -5, 0))))), - CIDER_M_KEG(new Drink(new int[] {5929, 5927, 5925, 5923, 5769}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 2, 0), new SkillEffect(Skills.ATTACK, -5, 0), new SkillEffect(Skills.STRENGTH, -5, 0))), new Animation(2289))), - DRAGON_BITTER(new Drink(new int[] {1911, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - DRAGON_BITTER_KEG(new Drink(new int[] {5809, 5807, 5805, 5803, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289))), - DRAGON_BITTER_M(new Drink(new int[] {5745, 1919}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), - DRAGON_BITTER_M_KEG(new Drink(new int[] {5889, 5887, 5885, 5883, 5769}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)), new Animation(2289))), - DWARVEN_STOUT(new Drink(new int[] {1913, 1919}, new MultiEffect(new SkillEffect(Skills.MINING, 1, 0), new SkillEffect(Skills.SMITHING, 1 ,0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0), new SkillEffect(Skills.DEFENCE, -2, 0), new HealingEffect(1)), "You drink the Dwarven Stout. It tastes foul.", "It tastes pretty strong too.")), - DWARVEN_STOUT_KEG(new Drink(new int[] {5777, 5775, 5773, 5771, 5769}, new MultiEffect(new SkillEffect(Skills.MINING, 1, 0), new SkillEffect(Skills.SMITHING, 1 ,0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0), new SkillEffect(Skills.DEFENCE, -2, 0), new HealingEffect(1)), new Animation(2289), "You drink the Dwarven Stout. It tastes foul.", "It tastes pretty strong too.")), - DWARVEN_STOUT_M(new Drink(new int[] {5747, 1919}, new MultiEffect(new SkillEffect(Skills.MINING, 2, 0), new SkillEffect(Skills.SMITHING, 2 ,0), new SkillEffect(Skills.ATTACK, -7, 0), new SkillEffect(Skills.STRENGTH, -7, 0), new SkillEffect(Skills.DEFENCE, -7, 0), new HealingEffect(1)))), - DWARVEN_STOUT_M_KEG(new Drink(new int[] {5857, 5855, 5853, 5851, 5769}, new MultiEffect(new SkillEffect(Skills.MINING, 2, 0), new SkillEffect(Skills.SMITHING, 2 ,0), new SkillEffect(Skills.ATTACK, -7, 0), new SkillEffect(Skills.STRENGTH, -7, 0), new SkillEffect(Skills.DEFENCE, -7, 0), new HealingEffect(1)), new Animation(2289))), - GREENMANS_ALE(new Drink(new int[] {1909, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 1, 0), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.DEFENCE, -3, 0)))), - GREENMANS_ALE_KEG(new Drink(new int[] {5793, 5791, 5789, 5787, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 1, 0), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.DEFENCE, -3, 0)), new Animation(2289))), - GREENMANS_ALE_M(new Drink(new int[] {5743, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), - GREENMANS_ALE_M_KEG(new Drink(new int[] {5873, 5871, 5869, 5867, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), - GROG(new Drink(new int[] {1915, 1919}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), - MOONLIGHT_MEAD(new Drink(new int[] {2955, 1919}, new HealingEffect(4), "It tastes like something just died in your mouth.")), - MOONLIGHT_MEAD_KEG(new Drink(new int[] {5817, 5815, 5813, 5811, 5769}, new HealingEffect(4), new Animation(2289), "It tastes like something just died in your mouth.")), - MOONLIGHT_MEAD_M(new Drink(new int[] {5749, 1919}, new HealingEffect(6))), - MOONLIGHT_MEAD_M_KEG(new Drink(new int[] {5897, 5895, 5893, 5891, 5769}, new HealingEffect(6), new Animation(2289))), - SLAYERS_RESPITE(new Drink(new int[] {5759, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), - SLAYERS_RESPITE_KEG(new Drink(new int[] {5841, 5839, 5837, 5835, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), - SLAYERS_RESPITE_M(new Drink(new int[] {5761, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 4, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), - SLAYERS_RESPITE_M_KEG(new Drink(new int[] {5841, 5839, 5837, 5835, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 4, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), - WIZARDS_MIND_BOMB(new Drink(new int[] {1907, 1919}, new WizardsMindBombEffect(), "You drink the Wizard's Mind Bomb.", "You feel very strange.")), - MATURE_WMB(new Drink(new int[] {5741, 1919}, new MatureWmbEffect())), - - /** Cocktails */ - FRUIT_BLAST(new Drink(new int[] {2084, 2026}, new HealingEffect(9))), - PREMADE_FR_BLAST(new Food(new int[] {2034, 2026}, new HealingEffect(9))), - PINEAPPLE_PUNCH(new Drink(new int[] {2048, 2026}, new HealingEffect(9), "You drink the cocktail. It tastes great.")), - PREMADE_P_PUNCH(new Drink(new int[] {2036, 2026}, new HealingEffect(9), "You drink the cocktail. It tastes great.")), - WIZARD_BLIZZARD(new Drink(new int[] {2054, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - PREMADE_WIZ_BLZD(new Drink(new int[] {2040, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - SHORT_GREEN_GUY(new Drink(new int[] {2080, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 4, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), - PREMADE_SGG(new Drink(new int[] {2038, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 4, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), - DRUNK_DRAGON(new Drink(new int[] {2092, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - PREMADE_DR_DRAGON(new Drink(new int[] {2032, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - CHOC_SATURDAY(new Drink(new int[] {2074, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - PREMADE_CHOC_SDY(new Drink(new int[] {2030, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - BLURBERRY_SPECIAL(new Drink(new int[] {2064, 2026}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - PREMADE_BLURB_SP(new Drink(new int[] {2028, 2026}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - - /** Bottled Drinks */ - KARAMJAN_RUM(new Drink(new int[] {431}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 5, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - BRAINDEATH_RUM(new Drink(new int[] {7157}, new MultiEffect(new SkillEffect(Skills.DEFENCE, 0, -0.1), new SkillEffect(Skills.ATTACK, 0, -0.05), new SkillEffect(Skills.PRAYER, 0, -0.05), new SkillEffect(Skills.RANGE, 0, -0.05), new SkillEffect(Skills.MAGIC, 0, -0.05), new SkillEffect(Skills.HERBLORE, 0, -0.05), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.MINING, 1, 0)), "With a sense of impending doom you drink the 'rum'. You try very hard not to die.")), - RUM_TROUBLE_BREWING_RED(new Drink(new int[] {8940, 8940}, new TroubleBrewingRumEffect("Oh gods! It tastes like burning!"), new Animation(9605))), - RUM_TROUBLE_BREWING_BLUE(new Drink(new int[] {8941, 8941}, new TroubleBrewingRumEffect("My Liver! My Liver is melting!"), new Animation(9604))), - VODKA(new Drink(new int[] {2015}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), - GIN(new Drink(new int[] {2019}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 1, 0), new SkillEffect(Skills.ATTACK, 4, 0), new RandomHealthEffect(3, 4)))), - BRANDY(new Drink(new int[] {2021}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.ATTACK, 4, 0)))), - WHISKY(new Drink(new int[] {2017}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), - BOTTLE_OF_WINE(new Drink(new int[] {2015, 7921}, new MultiEffect(new HealingEffect(14), new SkillEffect(Skills.ATTACK, -3, 0)))), - - /** Wine */ - JUG_OF_WINE(new Drink(new int[] {1993, 1935}, new MultiEffect(new HealingEffect(11), new SkillEffect(Skills.ATTACK, -2, 0)))), - HALF_FULL_WINE_JUG(new Drink(new int[] {1989, 1935}, new HealingEffect(7))), - - /** Tea */ - CUP_OF_TEA(new Drink(new int[] {712, 1980}, new MultiEffect(new HealingEffect(3), new SkillEffect(Skills.ATTACK, 3, 0)), "Aaah, nothing like a nice cuppa tea!")), - CUP_OF_TEA_NETTLE(new Drink(new int[] {4242, 1980}, new EnergyEffect(10))), - CUP_OF_TEA_MILKY_NETTLE(new Drink(new int[] {4243, 1980}, new EnergyEffect(10))), - NETTLE_TEA(new Drink(new int[] {4239, 1980}, new NettleTeaEffect())), - NETTLE_TEA_MILKY(new Drink(new int[] {4240, 1980}, new NettleTeaEffect())), - CUP_OF_TEA_CLAY(new Drink(new int[] {7730, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0), "You feel refreshed and ready for more building.")), - CUP_OF_TEA_CLAY_MILKY(new Drink(new int[] {7731, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0))), - CUP_OF_TEA_WHITE(new Drink(new int[] {7733, 7732}, new SkillEffect(Skills.CONSTRUCTION, 2, 0), "You feel refreshed and ready for more building.")), - CUP_OF_TEA_WHITE_MILKY(new Drink(new int[] {7734, 7732}, new SkillEffect(Skills.CONSTRUCTION, 2, 0))), - CUP_OF_TEA_GOLD(new Drink(new int[] {7736, 7735}, new SkillEffect(Skills.CONSTRUCTION, 3, 0), "You feel refreshed and ready for more building.")), - CUP_OF_TEA_GOLD_MILKY(new Drink(new int[] {7737, 7735}, new SkillEffect(Skills.CONSTRUCTION, 3, 0))), - - /** Miscellaneous */ - CHOCOLATE_BAR(new Food(new int[] {1973}, new HealingEffect(3))), - PURPLE_SWEETS(new Food(new int[] {4561}, new HealingEffect(0))), - PURPLE_SWEETS_STACKABLE(new Food(new int[] {10476}, new MultiEffect(new EnergyEffect(10), new RandomHealthEffect(1, 3)), "The sugary goodness heals some energy.", "The sugary goodness is yummy.")), - FIELD_RATION(new Food(new int[] {7934}, new HealingEffect(10))), - ROLL(new Food(new int[] {6963}, new HealingEffect(6))), - TCHIKI_MONKEY_NUTS(new Food(new int[] {7573}, new HealingEffect(5), "You eat the Tchiki monkey nuts. They taste nutty.")), - TCHIKI_MONKEY_PASTE(new Food(new int[] {7575}, new HealingEffect(5), "You eat the Tchiki monkey nut paste. It sticks to the roof of your mouth.")), - OOMLIE_WRAP(new Food(new int[] {Items.COOKED_OOMLIE_WRAP_2343}, new MultiEffect(new HealingEffect(14), new AchievementEffect(DiaryType.KARAMJA, 2, 2)))), - ROE(new Food(new int[]{11324}, new HealingEffect(3))), - EQUA_LEAVES(new Food(new int[]{2128}, new HealingEffect(1))), - CHOC_ICE(new Food(new int[]{6794}, new HealingEffect(6))), - EDIBLE_SEAWEED(new Food(new int[] {403}, new HealingEffect(4))), - - /** Special Events */ - PUMPKIN(new Food(new int[] {1959}, new HealingEffect(14))), - EASTER_EGG(new Food(new int[] {1961}, new HealingEffect(14))), - - /** Potions */ - STRENGTH(new Potion(new int[] {113, 115, 117, 119}, new SkillEffect(Skills.STRENGTH, 3, 0.1))), - ATTACK(new Potion(new int[] {2428, 121, 123, 125}, new SkillEffect(Skills.ATTACK, 3, 0.1))), - DEFENCE(new Potion(new int[] {2432, 133, 135, 137}, new SkillEffect(Skills.DEFENCE, 3, 0.1))), - RANGING(new Potion(new int[] {2444, 169, 171, 173}, new SkillEffect(Skills.RANGE, 3, 0.1))), - MAGIC(new Potion(new int[] {3040, 3042, 3044, 3046}, new SkillEffect(Skills.MAGIC, 3, 0.1))), - SUPER_STRENGTH(new Potion(new int[] {2440, 157, 159, 161}, new SkillEffect(Skills.STRENGTH, 3, 0.2))), - SUPER_ATTACK(new Potion(new int[] {2436, 145, 147, 149}, new SkillEffect(Skills.ATTACK, 3, 0.2))), - SUPER_DEFENCE(new Potion(new int[] {2442, 163, 165, 167}, new SkillEffect(Skills.DEFENCE, 3, 0.2))), - ANTIPOISON(new Potion(new int[] {2446, 175, 177, 179}, new MultiEffect(new SetAttributeEffect("poison:immunity", 143), new RemoveStateEffect(EntityState.POISONED.ordinal())))), - ANTIPOISON_(new Potion(new int[] {5943, 5945, 5947, 5949}, new MultiEffect(new SetAttributeEffect("poison:immunity", 863), new RemoveStateEffect(EntityState.POISONED.ordinal())))), - ANTIPOISON__(new Potion(new int[] {5952, 5954, 5956, 5958}, new MultiEffect(new SetAttributeEffect("poison:immunity", 2000), new RemoveStateEffect(EntityState.POISONED.ordinal())))), - SUPER_ANTIP(new Potion(new int[] {2448, 181, 183, 185}, new MultiEffect(new SetAttributeEffect("poison:immunity", 1000), new RemoveStateEffect(EntityState.POISONED.ordinal())))), - RELICYM(new Potion(new int[] {4842, 4844, 4846, 4848}, new MultiEffect(new SetAttributeEffect("disease:immunity", 300), new RemoveStateEffect("disease")))), - AGILITY(new Potion(new int[] {3032, 3034, 3036, 3038}, new SkillEffect(Skills.AGILITY, 3, 0))), - HUNTER(new Potion(new int[] {9998, 10000, 10002, 10004}, new SkillEffect(Skills.HUNTER, 3, 0))), - RESTORE(new Potion(new int[] {2430, 127, 129, 131}, new RestoreEffect(10, 0.3))), - SARA_BREW(new Potion(new int[] {6685, 6687, 6689, 6691}, new MultiEffect(new PercentHeal(2, .15), new SkillEffect(Skills.ATTACK, 0, -0.10), new SkillEffect(Skills.STRENGTH, 0, -0.10), new SkillEffect(Skills.MAGIC, 0, -0.10), new SkillEffect(Skills.RANGE, 0, -0.10), new SkillEffect(Skills.DEFENCE, 2, 0.2)))), - SUMMONING(new Potion(new int[] {12140, 12142, 12144, 12146}, new MultiEffect(new RestoreSummoningSpecial(), new SummoningEffect(7, 0.25)))), - COMBAT(new Potion(new int[] {9739, 9741, 9743, 9745}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, .1), new SkillEffect(Skills.ATTACK, 3, .1)))), - ENERGY(new Potion(new int[] {3008, 3010, 3012, 3014}, new MultiEffect(new EnergyEffect(10), new HealingEffect(3)))), - FISHING(new Potion(new int[] {2438, 151, 153, 155}, new SkillEffect(Skills.FISHING, 3, 0))), - PRAYER(new Potion(new int[] {2434, 139, 141, 143}, new PrayerEffect(7, 0.25))), - SUPER_RESTO(new Potion(new int[] {3024, 3026, 3028, 3030}, new MultiEffect(new RestoreEffect(8, 0.25), new PrayerEffect(8, 0.25), new SummoningEffect(8, 0.25)))), - ZAMMY_BREW(new Potion(new int[] {2450, 189, 191, 193}, new MultiEffect(new DamageEffect(10, true), new SkillEffect(Skills.ATTACK, 0, 0.15), new SkillEffect(Skills.STRENGTH, 0, 0.25), new SkillEffect(Skills.DEFENCE, 0, -0.1), new RandomPrayerEffect(0, 10)))), - ANTIFIRE(new Potion(new int[] {2452, 2454, 2456, 2458}, new SetAttributeEffect("fire:immune", 600, true))), - GUTH_REST(new Potion(new int[] {4417, 4419, 4421, 4423}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new EnergyEffect(5), new HealingEffect(5)))), - MAGIC_ESS(new Potion(new int[] {11491, 11489}, new SkillEffect(Skills.MAGIC,3,0))), - SANFEW(new Potion(new int[] {10925, 10927, 10929, 10931}, new MultiEffect(new RestoreEffect(8,0.25), new PrayerEffect(8,0.25), new RemoveStateEffect(EntityState.POISONED.ordinal()), new RemoveStateEffect("disease")))), - SUPER_ENERGY(new Potion(new int[] {3016, 3018, 3020, 3022}, new EnergyEffect(20))), - BLAMISH_OIL(new FakeConsumable(1582, new String[] {"You know... I'd really rather not."})), - - /** Barbarian Mixes */ - PRAYERMIX(new BarbarianMix(new int[] {11465, 11467}, new MultiEffect(new PrayerEffect(7, 0.25), new HealingEffect(6)))), - ZAMMY_MIX(new BarbarianMix(new int[] {11521, 11523}, new MultiEffect(new DamageEffect(10, true), new SkillEffect(Skills.ATTACK, 0, 0.15), new SkillEffect(Skills.STRENGTH, 0, 0.25), new SkillEffect(Skills.DEFENCE, 0, -0.1), new RandomPrayerEffect(0, 10)))), - ATT_MIX(new BarbarianMix(new int[] {11429, 11431}, new MultiEffect(new SkillEffect(Skills.ATTACK, 3, 0.1), new HealingEffect(3)))), - ANTIP_MIX(new BarbarianMix(new int[] {11433, 11435}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new SetAttributeEffect("poison:immunity", 143), new HealingEffect(3)))), - RELIC_MIX(new BarbarianMix(new int[] {11437, 11439}, new MultiEffect(new RemoveStateEffect("disease"), new SetAttributeEffect("disease:immunity", 300), new HealingEffect(3)))), - STR_MIX(new BarbarianMix(new int[] {11443, 11441}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0.1), new HealingEffect(3)))), - RESTO_MIX(new BarbarianMix(new int[] {11449, 11451}, new MultiEffect(new RestoreEffect(10, 0.3), new HealingEffect(3)))), - ENERGY_MIX(new BarbarianMix(new int[] {11453, 11455}, new MultiEffect(new EnergyEffect(10), new HealingEffect(6)))), - DEF_MIX(new BarbarianMix(new int[] {11457, 11459}, new MultiEffect(new SkillEffect(Skills.DEFENCE, 3, 0.1), new HealingEffect(6)))), - AGIL_MIX(new BarbarianMix(new int[] {11461, 11463}, new MultiEffect(new SkillEffect(Skills.AGILITY, 3, 0), new HealingEffect(6)))), - COMBAT_MIX(new BarbarianMix(new int[] {11445, 11447}, new MultiEffect(new SkillEffect(Skills.ATTACK, 3, 0.1), new SkillEffect(Skills.STRENGTH, 3, 0.1), new HealingEffect(6)))), - SUPER_ATT_MIX(new BarbarianMix(new int[] {11469, 11471}, new MultiEffect(new SkillEffect(Skills.ATTACK, 5, 0.15), new HealingEffect(6)))), - FISH_MIX(new BarbarianMix(new int[] {11477, 11479}, new MultiEffect(new SkillEffect(Skills.FISHING, 3, 0), new HealingEffect(6)))), - SUPER_ENERGY_MIX(new BarbarianMix(new int[] {11481, 11483}, new MultiEffect(new EnergyEffect(20), new HealingEffect(6)))), - HUNTING_MIX(new BarbarianMix(new int[] {11517, 11519}, new MultiEffect(new SkillEffect(Skills.HUNTER, 3, 0), new HealingEffect(6)))), - SUPER_STR_MIX(new BarbarianMix(new int[] {11485, 11487}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 5, 0.15), new HealingEffect(6)))), - - /** Stealing creation potions */ - SC_PRAYER(new Potion(new int[] {14207, 14209, 14211, 14213, 14215}, new PrayerEffect(7, 0.25))), - SC_ENERGY(new Potion(new int[] {14217, 14219, 14221, 14223, 14225}, new EnergyEffect(20))), - SC_ATTACK(new Potion(new int[] {14227, 14229, 14231, 14233, 14235}, new SkillEffect(Skills.ATTACK, 3, 0.2))), - SC_STRENGTH(new Potion(new int[] {14237, 14239, 14241, 14243, 14245}, new SkillEffect(Skills.STRENGTH, 3, 0.2))), - SC_RANGE(new Potion(new int[] {14247, 14249, 14251, 14253, 14255}, new SkillEffect(Skills.RANGE, 3, 0.1))), - SC_DEFENCE(new Potion(new int[] {14257, 14259, 14261, 14263, 14265}, new SkillEffect(Skills.DEFENCE, 3, 0.1))), - SC_MAGIC(new Potion(new int[] {14267, 14269, 14271, 14273, 14275}, new SkillEffect(Skills.MAGIC, 3, 0.1))), - SC_SUMMONING(new Potion(new int[] {14277, 14279, 14281, 14283, 14285}, new SummoningEffect(7, 0.25))); - - public static HashMap consumables = new HashMap<>(); - - private final Consumable consumable; - - Consumables(Consumable consumable) { - this.consumable = consumable; - } - - public Consumable getConsumable() { - return consumable; - } - - public static Consumable getConsumableById(final int itemId) { - return consumables.get(itemId); - } - - public static void add(final Consumable consumable) { - for (int id : consumable.getIds()) { - consumables.putIfAbsent(id, consumable); - } - } - - /* - Static modifier used to populate search engine lists. - */ - static { - for (Consumables consumable : Consumables.values()) { - add(consumable.consumable); - } - } -} +package content.data.consumables; + +import content.data.consumables.effects.*; +import core.game.consumable.*; +import org.rs09.consts.Items; +import core.game.node.entity.player.link.diary.DiaryType; +import core.game.node.entity.state.EntityState; +import core.game.world.update.flag.context.Animation; +import core.game.node.entity.skill.Skills; +import content.data.consumables.effects.KegOfBeerEffect; + +import java.util.HashMap; + +/** + * Represents a repository of active consumables in the framework. + */ +public enum Consumables { + + /** Meats */ + COOKED_MEAT(new Food(new int[] {2142}, new HealingEffect(3))), + SHRIMPS(new Food(new int[] {315}, new HealingEffect(3))), + COOKED_CHICKEN(new Food(new int[] {2140}, new HealingEffect(3))), + COOKED_RABBIT(new Food(new int[] {3228}, new HealingEffect(5))), + ANCHOVIES(new Food(new int[] {319}, new HealingEffect(1))), + SARDINE(new Food(new int[] {325}, new HealingEffect(4))), + POISON_KARAMBWAN(new Food(new int[] {3146}, new PoisonKarambwanEffect())), + UGTHANKI_MEAT(new Food(new int[] {1861}, new HealingEffect(3))), + HERRING(new Food(new int[] {347}, new HealingEffect(5))), + MACKEREL(new Food(new int[] {355}, new HealingEffect(6))), + ROAST_BIRD_MEAT(new Food(new int[] {9980}, new HealingEffect(6))), + THIN_SNAIL(new Food(new int[] {3369}, new HealingEffect(5))), + TROUT(new Food(new int[] {333}, new HealingEffect(7))), + SPIDER_ON_STICK(new Food(new int[] {6297, 6305}, new HealingEffect(7))), + SPIDER_ON_SHAFT(new Food(new int[] {6299}, new HealingEffect(7))), + ROAST_RABBIT(new Food(new int[] {7223}, new HealingEffect(7))), + LEAN_SNAIL(new Food(new int[] {3371}, new HealingEffect(8))), + COD(new Food(new int[] {339}, new HealingEffect(7))), + PIKE(new Food(new int[] {351}, new HealingEffect(8))), + ROAST_BEAST_MEAT(new Food(new int[] {9988}, new HealingEffect(8))), + COOKED_CRAB_MEAT(new Food(new int[] {7521, 7523, 7524, 7525, 7526}, new HealingEffect(2))), + FAT_SNAIL(new Food(new int[] {3373}, new HealingEffect(9))), + SALMON(new Food(new int[] {329}, new HealingEffect(9))), + SLIMY_EEL(new Food(new int[] {3381}, new HealingEffect(6))), + TUNA(new Food(new int[] {361}, new HealingEffect(10))), + COOKED_KARAMBWAN(new Food(new int[] {3144}, new HealingEffect(18))), + COOKED_CHOMPY(new Food(new int[] {2878}, new HealingEffect(10))), + RAINBOW_FISH(new Food(new int[] {10136}, new HealingEffect(11))), + CAVE_EEL(new Food(new int[] {5003}, new HealingEffect(7))), + LOBSTER(new Food(new int[] {379}, new HealingEffect(12))), + COOKED_JUBBLY(new Food(new int[] {7568}, new HealingEffect(15))), + BASS(new Food(new int[] {365}, new HealingEffect(13))), + SWORDFISH(new Food(new int[] {373}, new HealingEffect(14))), + LAVA_EEL(new Food(new int[] {2149}, new HealingEffect(14))), + MONKFISH(new Food(new int[] {7946}, new HealingEffect(16))), + SHARK(new Food(new int[] {385}, new HealingEffect(20))), + SEA_TURTLE(new Food(new int[] {397}, new HealingEffect(21))), + MANTA_RAY(new Food(new int[] {391}, new HealingEffect(22))), + KARAMBWANJI(new Food(new int[] {3151}, new HealingEffect(3))), + STUFFED_SNAKE(new Food(new int[] {7579}, new HealingEffect(20), "You eat the stuffed snake-it's quite a meal! It tastes like chicken.")), + CRAYFISH(new Food(new int[] {13433}, new HealingEffect(2))), + GIANT_FROG_LEGS(new Food(new int [] {4517}, new HealingEffect(6))), + + /** Breads */ + BREAD(new Food(new int[] {2309}, new HealingEffect(5))), + BAGUETTE(new Food(new int[] {6961}, new HealingEffect(6))), + + /** Sandwiches */ + TRIANGLE_SANDWICH(new Food(new int[] {6962}, new HealingEffect(6))), + SQUARE_SANDWICH(new Food(new int[] {6965}, new HealingEffect(6))), + SEAWEED_SANDWICH(new FakeConsumable(3168, new String[] {"You really, really do not want to eat that."})), + FROGBURGER(new Food(new int[] {10962}, new HealingEffect(2))), + + /** Kebabs */ + UGTHANKI_KEBAB(new Food(new int[] {1883}, new UgthankiKebabEffect())), + UGTHANKI_KEBAB_SMELLING(new Food(new int[] {1885}, new SmellingUgthankiKebabEffect())), + KEBAB(new Food(new int[] {1971}, new KebabEffect())), + SUPER_KEBAB(new Food(new int[] {4608}, new SuperKebabEffect())), + + /** Pies */ + REDBERRY_PIE(new HalfableFood(new int[] {2325, 2333, 2313}, new HealingEffect(5))), + MEAT_PIE(new HalfableFood(new int[] {2327, 2331, 2313}, new HealingEffect(6))), + APPLE_PIE(new HalfableFood(new int[] {2323, 2335, 2313}, new HealingEffect(7))), + GARDEN_PIE(new HalfableFood(new int[] {7178, 7180, 2313}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.FARMING, 3, 0)))), + FISH_PIE(new HalfableFood(new int[] {7188, 7190, 2313}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.FISHING, 3, 0)))), + ADMIRAL_PIE(new HalfableFood(new int[] {7198, 7200, 2313}, new MultiEffect(new HealingEffect(8), new SkillEffect(Skills.FISHING, 5, 0)))), + WILD_PIE(new HalfableFood(new int[] {7208, 7210, 2313}, new MultiEffect(new SkillEffect(Skills.SLAYER, 5, 0), new SkillEffect(Skills.RANGE, 4, 0), new HealingEffect(11)))), + SUMMER_PIE(new HalfableFood(new int[] {7218, 7220, 2313}, new MultiEffect(new HealingEffect(11), new SkillEffect(Skills.AGILITY, 5, 0), new EnergyEffect(10)))), + + /** Stews */ + STEW(new Food(new int[] {2003, 1923}, new HealingEffect(11))), + SPICY_STEW(new Food(new int[] {7479, 1923}, new HealingEffect(11))), + CURRY(new Food(new int[] {2011, 1923}, new HealingEffect(19))), + BANANA_STEW(new Food(new int[] {4016, 1923}, new HealingEffect(11))), + + /** Pizzas */ + PLAIN_PIZZA(new HalfableFood(new int[] {2289, 2291}, new HealingEffect(7))), + MEAT_PIZZA(new HalfableFood(new int[] {2293, 2295}, new HealingEffect(8))), + ANCHOVY_PIZZA(new HalfableFood(new int[] {2297, 2299}, new HealingEffect(9))), + PINEAPPLE_PIZZA(new HalfableFood(new int[] {2301, 2303}, new HealingEffect(11))), + + /** Cakes */ + CAKE(new Cake(new int[] {1891, 1893, 1895}, new HealingEffect(4), "You eat part of the cake.", "You eat some more cake.", "You eat the slice of cake.")), + CHOCOLATE_CAKE(new Cake(new int[] {1897, 1899, 1901}, new HealingEffect(5), "You eat part of the chocolate cake.", "You eat some more of the chocolate cake.", "You eat the slice of cake.")), + ROCK_CAKE(new Food(new int[] {2379}, new RockCakeEffect(), "The rock cake resists all attempts to eat it.")), + DWARVEN_ROCK_CAKE(new Food(new int[] {7510, 7510}, new DwarvenRockCakeEffect(), "Ow! You nearly broke a tooth!", "The rock cake resists all attempts to eat it.")), + HOT_DWARVEN_ROCK_CAKE(new Food(new int[] {7509, 7509}, new DwarvenRockCakeEffect(), "Ow! You nearly broke a tooth!", "The rock cake resists all attempts to eat it.")), + COOKED_FISHCAKE(new Food(new int[] {7530}, new HealingEffect(11))), + MINT_CAKE(new Food(new int[] {9475}, new EnergyEffect(50))), + + /** Vegetables */ + POTATO(new Food(new int[] {1942}, new HealingEffect(1))), + BAKED_POTATO(new Food(new int[] {6701}, new HealingEffect(2))), + SPICY_SAUCE(new Food(new int[] {7072, 1923}, new HealingEffect(2))), + CHILLI_CON_CARNE(new Food(new int[] {7062, 1923}, new HealingEffect(5))), + SCRAMBLED_EGG(new Food(new int[] {7078, 1923}, new HealingEffect(5))), + EGG_AND_TOMATO(new Food(new int[] {7064, 1923}, new HealingEffect(8))), + SWEET_CORN(new Food(new int[] {5988}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(10)))), + SWEETCORN_BOWL(new Food(new int[] {7088, 1923}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(10)))), + POTATO_WITH_BUTTER(new Food(new int[] {6703}, new HealingEffect(7))), + CHILLI_POTATO(new Food(new int[] {7054}, new HealingEffect(14))), + FRIED_ONIONS(new Food(new int[] {7084, 1923}, new HealingEffect(5))), + FRIED_MUSHROOMS(new Food(new int[] {7082, 1923}, new HealingEffect(5))), + POTATO_WITH_CHEESE(new Food(new int[] {6705}, new HealingEffect(16))), + EGG_POTATO(new Food(new int[] {7056}, new HealingEffect(11))), + MUSHROOMS_AND_ONIONS(new Food(new int[] {7066, 1923}, new HealingEffect(11))), + MUSHROOM_POTATO(new Food(new int[] {7058}, new HealingEffect(20))), + TUNA_AND_CORN(new Food(new int[] {7068, 1923}, new HealingEffect(13))), + TUNA_POTATO(new Food(new int[] {7060}, new HealingEffect(22))), + ONION(new Food(new int[] {1957}, new HealingEffect(2), "It's always sad to see a grown man/woman cry.")), + CABBAGE(new Food(new int[] {1965}, new HealingEffect(2), "You eat the cabbage. Yuck!")), + DRAYNOR_CABBAGE(new Food(new int[] {1967}, new DraynorCabbageEffect(), "You eat the cabbage.", "It seems to taste nicer than normal.")), + EVIL_TURNIP(new Food(new int[] {12134, 12136, 12138}, new HealingEffect(6))), + SPINACH_ROLL(new Food(new int[] {1969}, new HealingEffect(2))), + + /** Dairies */ + POT_OF_CREAM(new Food(new int[] {2130}, new HealingEffect(1))), + CHEESE(new Food(new int[] {1985}, new HealingEffect(2))), + CHOCOLATEY_MILK(new Drink(new int[] {1977, 1925}, new HealingEffect(4))), + + /** Fruits */ + BANANA(new Food(new int[] {1963}, new HealingEffect(2))), + SLICED_BANANA(new Food(new int[] {3162}, new HealingEffect(2))), + RED_BANANA(new Food(new int[] {7572}, new HealingEffect(5), "You eat the red banana. It's tastier than your average banana.")), + SLICED_RED_BANANA(new Food(new int[] {7574}, new HealingEffect(5), "You eat the sliced red banana. Yum.")), + ORANGE(new Food(new int[] {2108}, new HealingEffect(2))), + ORANGE_CHUNKS(new Food(new int[] {2110}, new HealingEffect(2))), + ORANGE_SLICES(new Food(new int[] {2112}, new HealingEffect(2))), + PAPAYA_FRUIT(new Food(new int[] {5972}, new HealingEffect(2))), + TENTI_PINEAPPLE(new FakeConsumable(1851, new String[] {"Try using a knife to slice it into pieces."})), + PINEAPPLE(new FakeConsumable(2114, new String[] {"Try using a knife to slice it into pieces."})), + PINEAPPLE_CHUNKS(new Food(new int[] {2116}, new HealingEffect(2))), + PINEAPPLE_RING(new Food(new int[] {2118}, new HealingEffect(2))), + DWELLBERRIES(new Food(new int[] {2126}, new HealingEffect(2))), + JANGERBERRIES(new Food(new int[] {247}, new MultiEffect(new SkillEffect(Skills.ATTACK, 2, 0), new SkillEffect(Skills.STRENGTH, 1, 0), new PrayerEffect(1, 0), new SkillEffect(Skills.DEFENCE, -1, 0)))), + STRAWBERRY(new Food(new int[] {5504}, new MultiEffect(new HealingEffect(1), new PercentageHealthEffect(6)))), + TOMATO(new Food(new int[] {1982}, new HealingEffect(2))), + WATERMELON(new FakeConsumable(5982, new String[] {"Try using a knife to slice it into pieces."})), + WATERMELON_SLICE(new Food(new int[] {5984}, new PercentageHealthEffect(5))), + LEMON(new Food(new int[] {2102}, new HealingEffect(2))), + LEMON_CHUNKS(new Food(new int[] {2104}, new HealingEffect(2))), + LEMON_SLICES(new Food(new int[] {2106}, new HealingEffect(2))), + LIME(new Food(new int[] {2120}, new HealingEffect(2))), + LIME_CHUNKS(new Food(new int[] {2122}, new HealingEffect(2))), + LIME_SLICES(new Food(new int[] {2124}, new HealingEffect(2))), + PEACH(new Food(new int[] {6883}, new HealingEffect(8))), + WHITE_TREE_FRUIT(new Food(new int[] {6469}, new MultiEffect(new RandomEnergyEffect(5, 10), new HealingEffect(3)))), + STRANGE_FRUIT(new Food(new int[] {464}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new EnergyEffect(30)))), + + /** Gnome Cooking */ + TOAD_CRUNCHIES(new Food(new int[] {2217}, new HealingEffect(12))), + PREMADE_TD_CRUNCH(new Food(new int[] {2243}, new HealingEffect(12))), + SPICY_CRUNCHIES(new Food(new int[] {2213}, new HealingEffect(7))), + PREMADE_SY_CRUNCH(new Food(new int[] {2241}, new HealingEffect(7))), + WORM_CRUNCHIES(new Food(new int[] {2205}, new HealingEffect(8))), + PREMADE_WM_CRUNC(new Food(new int[] {2237}, new HealingEffect(8))), + CHOCCHIP_CRUNCHIES(new Food(new int[] {2209}, new HealingEffect(7))), + PREMADE_CH_CRUNCH(new Food(new int[] {2239}, new HealingEffect(7))), + FRUIT_BATTA(new Food(new int[] {2277}, new HealingEffect(11))), + PREMADE_FRT_BATTA(new Food(new int[] {2225}, new HealingEffect(11))), + TOAD_BATTA(new Food(new int[] {2255}, new HealingEffect(11))), + PREMADE_TD_BATTA(new Food(new int[] {2221}, new HealingEffect(11))), + WORM_BATTA(new Food(new int[] {2253}, new HealingEffect(11))), + PREMADE_WM_BATTA(new Food(new int[] {2219}, new HealingEffect(11))), + VEGETABLE_BATTA(new Food(new int[] {2281}, new HealingEffect(11))), + PREMADE_VEG_BATTA(new Food(new int[] {2227}, new HealingEffect(11))), + CHEESE_AND_TOMATOES_BATTA(new Food(new int[] {2259}, new HealingEffect(11))), + PREMADE_CT_BATTA(new Food(new int[] {2223}, new HealingEffect(11))), + WORM_HOLE(new Food(new int[] {2191}, new HealingEffect(12))), + PREMADE_WORM_HOLE(new Food(new int[] {2233}, new HealingEffect(12))), + VEG_BALL(new Food(new int[] {2195}, new HealingEffect(12))), + PREMADE_VEG_BALL(new Food(new int[] {2235}, new HealingEffect(12))), + TANGLED_TOADS_LEGS(new Food(new int[] {2187}, new HealingEffect(15))), + PREMADE_TTL(new Food(new int[] {2231}, new HealingEffect(15))), + CHOCOLATE_BOMB(new Food(new int[] {2195}, new HealingEffect(15))), + PREMADE_CHOC_BOMB(new Food(new int[] {2229}, new HealingEffect(15))), + TOAD_LEGS(new Food(new int[] {2152}, new HealingEffect(3))), + KING_WORM(new Food(new int[] {2162}, new HealingEffect(2))), + + /** Ales */ + ASGOLDIAN_ALE(new FakeConsumable(7508, new String[] {"I don't think I'd like gold in beer thanks. Leave it for the dwarves."})), + ASGARNIAN_ALE(new Drink(new int[] {1905, 1919}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), "You drink the ale. You feel slightly reinvigorated...", "...and slightly dizzy too.")), + ASGARNIAN_ALE_KEG(new Drink(new int[] {5785, 5783, 5781, 5779, 5769}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289), "You drink the ale. You feel slightly reinvigorated...", "...and slightly dizzy too.")), + ASGARNIAN_ALE_M(new Drink(new int[] {5739, 1919}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), + ASGARNIAN_ALE_M_KEG(new Drink(new int[] {5865, 5863, 5861, 5859, 5769}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)), new Animation(2289))), + AXEMANS_FOLLY(new Drink(new int[] {5751, 1919}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 1, 0), new HealingEffect(1), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), + AXEMANS_FOLLY_KEG(new Drink(new int[] {5825, 5823, 5821, 5819, 5769}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 1, 0), new HealingEffect(1), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.ATTACK, -3, 0)), new Animation(2289))), + AXEMANS_FOLLY_M(new Drink(new int[] {5753, 1919}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 2, 0), new HealingEffect(2), new SkillEffect(Skills.STRENGTH, -4, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + AXEMANS_FOLLY_M_KEG(new Drink(new int[] {5905, 5903, 5901, 5899, 5769}, new MultiEffect(new SkillEffect(Skills.WOODCUTTING, 2, 0), new HealingEffect(2), new SkillEffect(Skills.STRENGTH, -4, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289))), + BANDITS_BREW(new Drink(new int[] {4627, 1919}, new MultiEffect(new SkillEffect(Skills.THIEVING, 1, 0), new SkillEffect(Skills.ATTACK, 1, 0), new SkillEffect(Skills.STRENGTH, -1, 0), new SkillEffect(Skills.DEFENCE, -6, 0), new HealingEffect(1)), "You drink the beer. You feel slightly reinvigorated...", "...and slightly dizzy too.")), + BEER(new Drink(new int[] {1917, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 0, 0.04), new SkillEffect(Skills.ATTACK, 0, -0.07)), "You drink the beer. You feel slightly reinvigorated...", "...and slightly dizzy too.")), + BEER_TANKARD(new Drink(new int[] {3803, 3805}, new MultiEffect(new SkillEffect(Skills.ATTACK, -9, 0), new SkillEffect(Skills.STRENGTH, 4, 0)), "You quaff the beer. You feel slightly reinvigorated...", "...but very dizzy too.")), + KEG_OF_BEER(new Drink(new int[] {3801}, new KegOfBeerEffect(), new Animation(1330), "You chug the keg. You feel reinvigorated...", "...but extremely drunk too.")), + CHEFS_DELIGHT(new Drink(new int[] {5755, 1919}, new MultiEffect(new SkillEffect(Skills.COOKING, 1, 0.05), new HealingEffect(1), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), + CHEFS_DELIGHT_KEG(new Drink(new int[] {5833, 5831, 5829, 5827, 5769}, new MultiEffect(new SkillEffect(Skills.COOKING, 1, 0.05), new HealingEffect(1), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), + CHEFS_DELIGHT_M(new Drink(new int[] {5757, 1919}, new MultiEffect(new SkillEffect(Skills.COOKING, 2, 0.05), new HealingEffect(2), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0)))), + CHEFS_DELIGHT_M_KEG(new Drink(new int[] {5913, 5911, 5909, 5907, 5769}, new MultiEffect(new SkillEffect(Skills.COOKING, 2, 0.05), new HealingEffect(2), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0)), new Animation(2289))), + CIDER(new Drink(new int[] {5763, 1919}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 1, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0))))), + CIDER_KEG(new Drink(new int[] {5849, 5847, 5845, 5843, 5769}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 1, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0))), new Animation(2289))), + MATURE_CIDER(new Drink(new int[] {5765, 1919}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 2, 0), new SkillEffect(Skills.ATTACK, -5, 0), new SkillEffect(Skills.STRENGTH, -5, 0))))), + CIDER_M_KEG(new Drink(new int[] {5929, 5927, 5925, 5923, 5769}, new MultiEffect(new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.FARMING, 2, 0), new SkillEffect(Skills.ATTACK, -5, 0), new SkillEffect(Skills.STRENGTH, -5, 0))), new Animation(2289))), + DRAGON_BITTER(new Drink(new int[] {1911, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + DRAGON_BITTER_KEG(new Drink(new int[] {5809, 5807, 5805, 5803, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.STRENGTH, 2, 0), new SkillEffect(Skills.ATTACK, -4, 0)), new Animation(2289))), + DRAGON_BITTER_M(new Drink(new int[] {5745, 1919}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), + DRAGON_BITTER_M_KEG(new Drink(new int[] {5889, 5887, 5885, 5883, 5769}, new MultiEffect(new HealingEffect(2), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)), new Animation(2289))), + DWARVEN_STOUT(new Drink(new int[] {1913, 1919}, new MultiEffect(new SkillEffect(Skills.MINING, 1, 0), new SkillEffect(Skills.SMITHING, 1 ,0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0), new SkillEffect(Skills.DEFENCE, -2, 0), new HealingEffect(1)), "You drink the Dwarven Stout. It tastes foul.", "It tastes pretty strong too.")), + DWARVEN_STOUT_KEG(new Drink(new int[] {5777, 5775, 5773, 5771, 5769}, new MultiEffect(new SkillEffect(Skills.MINING, 1, 0), new SkillEffect(Skills.SMITHING, 1 ,0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0), new SkillEffect(Skills.DEFENCE, -2, 0), new HealingEffect(1)), new Animation(2289), "You drink the Dwarven Stout. It tastes foul.", "It tastes pretty strong too.")), + DWARVEN_STOUT_M(new Drink(new int[] {5747, 1919}, new MultiEffect(new SkillEffect(Skills.MINING, 2, 0), new SkillEffect(Skills.SMITHING, 2 ,0), new SkillEffect(Skills.ATTACK, -7, 0), new SkillEffect(Skills.STRENGTH, -7, 0), new SkillEffect(Skills.DEFENCE, -7, 0), new HealingEffect(1)))), + DWARVEN_STOUT_M_KEG(new Drink(new int[] {5857, 5855, 5853, 5851, 5769}, new MultiEffect(new SkillEffect(Skills.MINING, 2, 0), new SkillEffect(Skills.SMITHING, 2 ,0), new SkillEffect(Skills.ATTACK, -7, 0), new SkillEffect(Skills.STRENGTH, -7, 0), new SkillEffect(Skills.DEFENCE, -7, 0), new HealingEffect(1)), new Animation(2289))), + GREENMANS_ALE(new Drink(new int[] {1909, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 1, 0), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.DEFENCE, -3, 0)))), + GREENMANS_ALE_KEG(new Drink(new int[] {5793, 5791, 5789, 5787, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 1, 0), new SkillEffect(Skills.ATTACK, -3, 0), new SkillEffect(Skills.STRENGTH, -3, 0), new SkillEffect(Skills.DEFENCE, -3, 0)), new Animation(2289))), + GREENMANS_ALE_M(new Drink(new int[] {5743, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), + GREENMANS_ALE_M_KEG(new Drink(new int[] {5873, 5871, 5869, 5867, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.HERBLORE, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), + GROG(new Drink(new int[] {1915, 1919}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -6, 0)))), + MOONLIGHT_MEAD(new Drink(new int[] {2955, 1919}, new HealingEffect(4), "It tastes like something just died in your mouth.")), + MOONLIGHT_MEAD_KEG(new Drink(new int[] {5817, 5815, 5813, 5811, 5769}, new HealingEffect(4), new Animation(2289), "It tastes like something just died in your mouth.")), + MOONLIGHT_MEAD_M(new Drink(new int[] {5749, 1919}, new HealingEffect(6))), + MOONLIGHT_MEAD_M_KEG(new Drink(new int[] {5897, 5895, 5893, 5891, 5769}, new HealingEffect(6), new Animation(2289))), + SLAYERS_RESPITE(new Drink(new int[] {5759, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), + SLAYERS_RESPITE_KEG(new Drink(new int[] {5841, 5839, 5837, 5835, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 2, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), + SLAYERS_RESPITE_M(new Drink(new int[] {5761, 1919}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 4, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)))), + SLAYERS_RESPITE_M_KEG(new Drink(new int[] {5841, 5839, 5837, 5835, 5769}, new MultiEffect(new HealingEffect(1), new SkillEffect(Skills.SLAYER, 4, 0), new SkillEffect(Skills.ATTACK, -2, 0), new SkillEffect(Skills.STRENGTH, -2, 0)), new Animation(2289))), + WIZARDS_MIND_BOMB(new Drink(new int[] {1907, 1919}, new WizardsMindBombEffect(), "You drink the Wizard's Mind Bomb.", "You feel very strange.")), + MATURE_WMB(new Drink(new int[] {5741, 1919}, new MatureWmbEffect())), + + /** Cocktails */ + FRUIT_BLAST(new Drink(new int[] {2084, 2026}, new HealingEffect(9))), + PREMADE_FR_BLAST(new Food(new int[] {2034, 2026}, new HealingEffect(9))), + PINEAPPLE_PUNCH(new Drink(new int[] {2048, 2026}, new HealingEffect(9), "You drink the cocktail. It tastes great.")), + PREMADE_P_PUNCH(new Drink(new int[] {2036, 2026}, new HealingEffect(9), "You drink the cocktail. It tastes great.")), + WIZARD_BLIZZARD(new Drink(new int[] {2054, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + PREMADE_WIZ_BLZD(new Drink(new int[] {2040, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + SHORT_GREEN_GUY(new Drink(new int[] {2080, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 4, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), + PREMADE_SGG(new Drink(new int[] {2038, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 4, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), + DRUNK_DRAGON(new Drink(new int[] {2092, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + PREMADE_DR_DRAGON(new Drink(new int[] {2032, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + CHOC_SATURDAY(new Drink(new int[] {2074, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + PREMADE_CHOC_SDY(new Drink(new int[] {2030, 2026}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 7, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + BLURBERRY_SPECIAL(new Drink(new int[] {2064, 2026}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + PREMADE_BLURB_SP(new Drink(new int[] {2028, 2026}, new MultiEffect(new HealingEffect(6), new SkillEffect(Skills.STRENGTH, 6, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + + /** Bottled Drinks */ + KARAMJAN_RUM(new Drink(new int[] {431}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 5, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + BRAINDEATH_RUM(new Drink(new int[] {7157}, new MultiEffect(new SkillEffect(Skills.DEFENCE, 0, -0.1), new SkillEffect(Skills.ATTACK, 0, -0.05), new SkillEffect(Skills.PRAYER, 0, -0.05), new SkillEffect(Skills.RANGE, 0, -0.05), new SkillEffect(Skills.MAGIC, 0, -0.05), new SkillEffect(Skills.HERBLORE, 0, -0.05), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.MINING, 1, 0)), "With a sense of impending doom you drink the 'rum'. You try very hard not to die.")), + RUM_TROUBLE_BREWING_RED(new Drink(new int[] {8940, 8940}, new TroubleBrewingRumEffect("Oh gods! It tastes like burning!"), new Animation(9605))), + RUM_TROUBLE_BREWING_BLUE(new Drink(new int[] {8941, 8941}, new TroubleBrewingRumEffect("My Liver! My Liver is melting!"), new Animation(9604))), + VODKA(new Drink(new int[] {2015}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -3, 0)))), + GIN(new Drink(new int[] {2019}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 1, 0), new SkillEffect(Skills.ATTACK, 4, 0), new RandomHealthEffect(3, 4)))), + BRANDY(new Drink(new int[] {2021}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.ATTACK, 4, 0)))), + WHISKY(new Drink(new int[] {2017}, new MultiEffect(new HealingEffect(5), new SkillEffect(Skills.STRENGTH, 3, 0), new SkillEffect(Skills.ATTACK, -4, 0)))), + BOTTLE_OF_WINE(new Drink(new int[] {2015, 7921}, new MultiEffect(new HealingEffect(14), new SkillEffect(Skills.ATTACK, -3, 0)))), + + /** Wine */ + JUG_OF_WINE(new Drink(new int[] {1993, 1935}, new MultiEffect(new HealingEffect(11), new SkillEffect(Skills.ATTACK, -2, 0)))), + HALF_FULL_WINE_JUG(new Drink(new int[] {1989, 1935}, new HealingEffect(7))), + + /** Tea */ + CUP_OF_TEA(new Drink(new int[] {712, 1980}, new MultiEffect(new HealingEffect(3), new SkillEffect(Skills.ATTACK, 3, 0)), "Aaah, nothing like a nice cuppa tea!")), + CUP_OF_TEA_NETTLE(new Drink(new int[] {4242, 1980}, new EnergyEffect(10))), + CUP_OF_TEA_MILKY_NETTLE(new Drink(new int[] {4243, 1980}, new EnergyEffect(10))), + NETTLE_TEA(new Drink(new int[] {4239, 1980}, new NettleTeaEffect())), + NETTLE_TEA_MILKY(new Drink(new int[] {4240, 1980}, new NettleTeaEffect())), + CUP_OF_TEA_CLAY(new Drink(new int[] {7730, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0), "You feel refreshed and ready for more building.")), + CUP_OF_TEA_CLAY_MILKY(new Drink(new int[] {7731, 7728}, new SkillEffect(Skills.CONSTRUCTION, 1, 0))), + CUP_OF_TEA_WHITE(new Drink(new int[] {7733, 7732}, new SkillEffect(Skills.CONSTRUCTION, 2, 0), "You feel refreshed and ready for more building.")), + CUP_OF_TEA_WHITE_MILKY(new Drink(new int[] {7734, 7732}, new SkillEffect(Skills.CONSTRUCTION, 2, 0))), + CUP_OF_TEA_GOLD(new Drink(new int[] {7736, 7735}, new SkillEffect(Skills.CONSTRUCTION, 3, 0), "You feel refreshed and ready for more building.")), + CUP_OF_TEA_GOLD_MILKY(new Drink(new int[] {7737, 7735}, new SkillEffect(Skills.CONSTRUCTION, 3, 0))), + + /** Miscellaneous */ + CHOCOLATE_BAR(new Food(new int[] {1973}, new HealingEffect(3))), + PURPLE_SWEETS(new Food(new int[] {4561}, new HealingEffect(0))), + PURPLE_SWEETS_STACKABLE(new Food(new int[] {10476}, new MultiEffect(new EnergyEffect(10), new RandomHealthEffect(1, 3)), "The sugary goodness heals some energy.", "The sugary goodness is yummy.")), + FIELD_RATION(new Food(new int[] {7934}, new HealingEffect(10))), + ROLL(new Food(new int[] {6963}, new HealingEffect(6))), + TCHIKI_MONKEY_NUTS(new Food(new int[] {7573}, new HealingEffect(5), "You eat the Tchiki monkey nuts. They taste nutty.")), + TCHIKI_MONKEY_PASTE(new Food(new int[] {7575}, new HealingEffect(5), "You eat the Tchiki monkey nut paste. It sticks to the roof of your mouth.")), + OOMLIE_WRAP(new Food(new int[] {Items.COOKED_OOMLIE_WRAP_2343}, new MultiEffect(new HealingEffect(14), new AchievementEffect(DiaryType.KARAMJA, 2, 2)))), + ROE(new Food(new int[]{11324}, new HealingEffect(3))), + EQUA_LEAVES(new Food(new int[]{2128}, new HealingEffect(1))), + CHOC_ICE(new Food(new int[]{6794}, new HealingEffect(6))), + EDIBLE_SEAWEED(new Food(new int[] {403}, new HealingEffect(4))), + + /** Special Events */ + PUMPKIN(new Food(new int[] {1959}, new HealingEffect(14))), + EASTER_EGG(new Food(new int[] {1961}, new HealingEffect(14))), + + /** Potions */ + STRENGTH(new Potion(new int[] {113, 115, 117, 119}, new SkillEffect(Skills.STRENGTH, 3, 0.1))), + ATTACK(new Potion(new int[] {2428, 121, 123, 125}, new SkillEffect(Skills.ATTACK, 3, 0.1))), + DEFENCE(new Potion(new int[] {2432, 133, 135, 137}, new SkillEffect(Skills.DEFENCE, 3, 0.1))), + RANGING(new Potion(new int[] {2444, 169, 171, 173}, new SkillEffect(Skills.RANGE, 3, 0.1))), + MAGIC(new Potion(new int[] {3040, 3042, 3044, 3046}, new SkillEffect(Skills.MAGIC, 3, 0.1))), + SUPER_STRENGTH(new Potion(new int[] {2440, 157, 159, 161}, new SkillEffect(Skills.STRENGTH, 3, 0.2))), + SUPER_ATTACK(new Potion(new int[] {2436, 145, 147, 149}, new SkillEffect(Skills.ATTACK, 3, 0.2))), + SUPER_DEFENCE(new Potion(new int[] {2442, 163, 165, 167}, new SkillEffect(Skills.DEFENCE, 3, 0.2))), + ANTIPOISON(new Potion(new int[] {2446, 175, 177, 179}, new MultiEffect(new SetAttributeEffect("poison:immunity", 143), new RemoveStateEffect(EntityState.POISONED.ordinal())))), + ANTIPOISON_(new Potion(new int[] {5943, 5945, 5947, 5949}, new MultiEffect(new SetAttributeEffect("poison:immunity", 863), new RemoveStateEffect(EntityState.POISONED.ordinal())))), + ANTIPOISON__(new Potion(new int[] {5952, 5954, 5956, 5958}, new MultiEffect(new SetAttributeEffect("poison:immunity", 2000), new RemoveStateEffect(EntityState.POISONED.ordinal())))), + SUPER_ANTIP(new Potion(new int[] {2448, 181, 183, 185}, new MultiEffect(new SetAttributeEffect("poison:immunity", 1000), new RemoveStateEffect(EntityState.POISONED.ordinal())))), + RELICYM(new Potion(new int[] {4842, 4844, 4846, 4848}, new MultiEffect(new SetAttributeEffect("disease:immunity", 300), new RemoveStateEffect("disease")))), + AGILITY(new Potion(new int[] {3032, 3034, 3036, 3038}, new SkillEffect(Skills.AGILITY, 3, 0))), + HUNTER(new Potion(new int[] {9998, 10000, 10002, 10004}, new SkillEffect(Skills.HUNTER, 3, 0))), + RESTORE(new Potion(new int[] {2430, 127, 129, 131}, new RestoreEffect(10, 0.3))), + SARA_BREW(new Potion(new int[] {6685, 6687, 6689, 6691}, new MultiEffect(new PercentHeal(2, .15), new SkillEffect(Skills.ATTACK, 0, -0.10), new SkillEffect(Skills.STRENGTH, 0, -0.10), new SkillEffect(Skills.MAGIC, 0, -0.10), new SkillEffect(Skills.RANGE, 0, -0.10), new SkillEffect(Skills.DEFENCE, 2, 0.2)))), + SUMMONING(new Potion(new int[] {12140, 12142, 12144, 12146}, new MultiEffect(new RestoreSummoningSpecial(), new SummoningEffect(7, 0.25)))), + COMBAT(new Potion(new int[] {9739, 9741, 9743, 9745}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, .1), new SkillEffect(Skills.ATTACK, 3, .1)))), + ENERGY(new Potion(new int[] {3008, 3010, 3012, 3014}, new MultiEffect(new EnergyEffect(10), new HealingEffect(3)))), + FISHING(new Potion(new int[] {2438, 151, 153, 155}, new SkillEffect(Skills.FISHING, 3, 0))), + PRAYER(new Potion(new int[] {2434, 139, 141, 143}, new PrayerEffect(7, 0.25))), + SUPER_RESTO(new Potion(new int[] {3024, 3026, 3028, 3030}, new MultiEffect(new RestoreEffect(8, 0.25), new PrayerEffect(8, 0.25), new SummoningEffect(8, 0.25)))), + ZAMMY_BREW(new Potion(new int[] {2450, 189, 191, 193}, new MultiEffect(new DamageEffect(10, true), new SkillEffect(Skills.ATTACK, 0, 0.15), new SkillEffect(Skills.STRENGTH, 0, 0.25), new SkillEffect(Skills.DEFENCE, 0, -0.1), new RandomPrayerEffect(0, 10)))), + ANTIFIRE(new Potion(new int[] {2452, 2454, 2456, 2458}, new SetAttributeEffect("fire:immune", 600, true))), + GUTH_REST(new Potion(new int[] {4417, 4419, 4421, 4423}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new EnergyEffect(5), new HealingEffect(5)))), + MAGIC_ESS(new Potion(new int[] {11491, 11489}, new SkillEffect(Skills.MAGIC,3,0))), + SANFEW(new Potion(new int[] {10925, 10927, 10929, 10931}, new MultiEffect(new RestoreEffect(8,0.25), new PrayerEffect(8,0.25), new RemoveStateEffect(EntityState.POISONED.ordinal()), new RemoveStateEffect("disease")))), + SUPER_ENERGY(new Potion(new int[] {3016, 3018, 3020, 3022}, new EnergyEffect(20))), + BLAMISH_OIL(new FakeConsumable(1582, new String[] {"You know... I'd really rather not."})), + + /** Barbarian Mixes */ + PRAYERMIX(new BarbarianMix(new int[] {11465, 11467}, new MultiEffect(new PrayerEffect(7, 0.25), new HealingEffect(6)))), + ZAMMY_MIX(new BarbarianMix(new int[] {11521, 11523}, new MultiEffect(new DamageEffect(10, true), new SkillEffect(Skills.ATTACK, 0, 0.15), new SkillEffect(Skills.STRENGTH, 0, 0.25), new SkillEffect(Skills.DEFENCE, 0, -0.1), new RandomPrayerEffect(0, 10)))), + ATT_MIX(new BarbarianMix(new int[] {11429, 11431}, new MultiEffect(new SkillEffect(Skills.ATTACK, 3, 0.1), new HealingEffect(3)))), + ANTIP_MIX(new BarbarianMix(new int[] {11433, 11435}, new MultiEffect(new RemoveStateEffect(EntityState.POISONED.ordinal()), new SetAttributeEffect("poison:immunity", 143), new HealingEffect(3)))), + RELIC_MIX(new BarbarianMix(new int[] {11437, 11439}, new MultiEffect(new RemoveStateEffect("disease"), new SetAttributeEffect("disease:immunity", 300), new HealingEffect(3)))), + STR_MIX(new BarbarianMix(new int[] {11443, 11441}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 3, 0.1), new HealingEffect(3)))), + RESTO_MIX(new BarbarianMix(new int[] {11449, 11451}, new MultiEffect(new RestoreEffect(10, 0.3), new HealingEffect(3)))), + ENERGY_MIX(new BarbarianMix(new int[] {11453, 11455}, new MultiEffect(new EnergyEffect(10), new HealingEffect(6)))), + DEF_MIX(new BarbarianMix(new int[] {11457, 11459}, new MultiEffect(new SkillEffect(Skills.DEFENCE, 3, 0.1), new HealingEffect(6)))), + AGIL_MIX(new BarbarianMix(new int[] {11461, 11463}, new MultiEffect(new SkillEffect(Skills.AGILITY, 3, 0), new HealingEffect(6)))), + COMBAT_MIX(new BarbarianMix(new int[] {11445, 11447}, new MultiEffect(new SkillEffect(Skills.ATTACK, 3, 0.1), new SkillEffect(Skills.STRENGTH, 3, 0.1), new HealingEffect(6)))), + SUPER_ATT_MIX(new BarbarianMix(new int[] {11469, 11471}, new MultiEffect(new SkillEffect(Skills.ATTACK, 5, 0.15), new HealingEffect(6)))), + FISH_MIX(new BarbarianMix(new int[] {11477, 11479}, new MultiEffect(new SkillEffect(Skills.FISHING, 3, 0), new HealingEffect(6)))), + SUPER_ENERGY_MIX(new BarbarianMix(new int[] {11481, 11483}, new MultiEffect(new EnergyEffect(20), new HealingEffect(6)))), + HUNTING_MIX(new BarbarianMix(new int[] {11517, 11519}, new MultiEffect(new SkillEffect(Skills.HUNTER, 3, 0), new HealingEffect(6)))), + SUPER_STR_MIX(new BarbarianMix(new int[] {11485, 11487}, new MultiEffect(new SkillEffect(Skills.STRENGTH, 5, 0.15), new HealingEffect(6)))), + + /** Stealing creation potions */ + SC_PRAYER(new Potion(new int[] {14207, 14209, 14211, 14213, 14215}, new PrayerEffect(7, 0.25))), + SC_ENERGY(new Potion(new int[] {14217, 14219, 14221, 14223, 14225}, new EnergyEffect(20))), + SC_ATTACK(new Potion(new int[] {14227, 14229, 14231, 14233, 14235}, new SkillEffect(Skills.ATTACK, 3, 0.2))), + SC_STRENGTH(new Potion(new int[] {14237, 14239, 14241, 14243, 14245}, new SkillEffect(Skills.STRENGTH, 3, 0.2))), + SC_RANGE(new Potion(new int[] {14247, 14249, 14251, 14253, 14255}, new SkillEffect(Skills.RANGE, 3, 0.1))), + SC_DEFENCE(new Potion(new int[] {14257, 14259, 14261, 14263, 14265}, new SkillEffect(Skills.DEFENCE, 3, 0.1))), + SC_MAGIC(new Potion(new int[] {14267, 14269, 14271, 14273, 14275}, new SkillEffect(Skills.MAGIC, 3, 0.1))), + SC_SUMMONING(new Potion(new int[] {14277, 14279, 14281, 14283, 14285}, new SummoningEffect(7, 0.25))); + + public static HashMap consumables = new HashMap<>(); + + private final Consumable consumable; + + Consumables(Consumable consumable) { + this.consumable = consumable; + } + + public Consumable getConsumable() { + return consumable; + } + + public static Consumable getConsumableById(final int itemId) { + return consumables.get(itemId); + } + + public static void add(final Consumable consumable) { + for (int id : consumable.getIds()) { + consumables.putIfAbsent(id, consumable); + } + } + + /* + Static modifier used to populate search engine lists. + */ + static { + for (Consumables consumable : Consumables.values()) { + add(consumable.consumable); + } + } +} diff --git a/Server/src/main/java/core/game/content/consumable/effects/AchievementEffect.java b/Server/src/main/content/data/consumables/effects/AchievementEffect.java similarity index 84% rename from Server/src/main/java/core/game/content/consumable/effects/AchievementEffect.java rename to Server/src/main/content/data/consumables/effects/AchievementEffect.java index fcff49f2d..402e0b540 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/AchievementEffect.java +++ b/Server/src/main/content/data/consumables/effects/AchievementEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; public class AchievementEffect extends ConsumableEffect { private final DiaryType diary; diff --git a/Server/src/main/java/core/game/content/consumable/effects/DamageEffect.java b/Server/src/main/content/data/consumables/effects/DamageEffect.java similarity index 88% rename from Server/src/main/java/core/game/content/consumable/effects/DamageEffect.java rename to Server/src/main/content/data/consumables/effects/DamageEffect.java index e615dbe15..c4573306b 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/DamageEffect.java +++ b/Server/src/main/content/data/consumables/effects/DamageEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class DamageEffect extends ConsumableEffect { final double amt; diff --git a/Server/src/main/java/core/game/content/consumable/effects/DraynorCabbageEffect.java b/Server/src/main/content/data/consumables/effects/DraynorCabbageEffect.java similarity index 82% rename from Server/src/main/java/core/game/content/consumable/effects/DraynorCabbageEffect.java rename to Server/src/main/content/data/consumables/effects/DraynorCabbageEffect.java index 96a260e9c..a58794c12 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/DraynorCabbageEffect.java +++ b/Server/src/main/content/data/consumables/effects/DraynorCabbageEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class DraynorCabbageEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/DwarvenRockCakeEffect.java b/Server/src/main/content/data/consumables/effects/DwarvenRockCakeEffect.java similarity index 82% rename from Server/src/main/java/core/game/content/consumable/effects/DwarvenRockCakeEffect.java rename to Server/src/main/content/data/consumables/effects/DwarvenRockCakeEffect.java index bd7bd887a..90febe9b7 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/DwarvenRockCakeEffect.java +++ b/Server/src/main/content/data/consumables/effects/DwarvenRockCakeEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class DwarvenRockCakeEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/EnergyEffect.java b/Server/src/main/content/data/consumables/effects/EnergyEffect.java similarity index 74% rename from Server/src/main/java/core/game/content/consumable/effects/EnergyEffect.java rename to Server/src/main/content/data/consumables/effects/EnergyEffect.java index 6ffb4987c..75e23b422 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/EnergyEffect.java +++ b/Server/src/main/content/data/consumables/effects/EnergyEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class EnergyEffect extends ConsumableEffect { double amt; diff --git a/Server/src/main/java/core/game/content/consumable/effects/HealingEffect.java b/Server/src/main/content/data/consumables/effects/HealingEffect.java similarity index 78% rename from Server/src/main/java/core/game/content/consumable/effects/HealingEffect.java rename to Server/src/main/content/data/consumables/effects/HealingEffect.java index f6e81469e..96512e6a8 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/HealingEffect.java +++ b/Server/src/main/content/data/consumables/effects/HealingEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; public class HealingEffect extends ConsumableEffect { int amt; diff --git a/Server/src/main/java/core/game/content/consumable/effects/KebabEffect.java b/Server/src/main/content/data/consumables/effects/KebabEffect.java similarity index 97% rename from Server/src/main/java/core/game/content/consumable/effects/KebabEffect.java rename to Server/src/main/content/data/consumables/effects/KebabEffect.java index d3851d2e0..6b4f5c390 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/KebabEffect.java +++ b/Server/src/main/content/data/consumables/effects/KebabEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; /** diff --git a/Server/src/main/kotlin/rs09/game/content/consumable/effects/KegOfBeerEffect.kt b/Server/src/main/content/data/consumables/effects/KegOfBeerEffect.kt similarity index 56% rename from Server/src/main/kotlin/rs09/game/content/consumable/effects/KegOfBeerEffect.kt rename to Server/src/main/content/data/consumables/effects/KegOfBeerEffect.kt index dcb8a5e6a..89232abee 100644 --- a/Server/src/main/kotlin/rs09/game/content/consumable/effects/KegOfBeerEffect.kt +++ b/Server/src/main/content/data/consumables/effects/KegOfBeerEffect.kt @@ -1,9 +1,6 @@ -package rs09.game.content.consumable.effects +package content.data.consumables.effects -import core.game.content.consumable.ConsumableEffect -import core.game.content.consumable.effects.HealingEffect -import core.game.content.consumable.effects.MultiEffect -import core.game.content.consumable.effects.SkillEffect +import core.game.consumable.ConsumableEffect import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills diff --git a/Server/src/main/java/core/game/content/consumable/effects/MatureWmbEffect.java b/Server/src/main/content/data/consumables/effects/MatureWmbEffect.java similarity index 87% rename from Server/src/main/java/core/game/content/consumable/effects/MatureWmbEffect.java rename to Server/src/main/content/data/consumables/effects/MatureWmbEffect.java index 66e7c6936..d2c5a98ed 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/MatureWmbEffect.java +++ b/Server/src/main/content/data/consumables/effects/MatureWmbEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class MatureWmbEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/MultiEffect.java b/Server/src/main/content/data/consumables/effects/MultiEffect.java similarity index 85% rename from Server/src/main/java/core/game/content/consumable/effects/MultiEffect.java rename to Server/src/main/content/data/consumables/effects/MultiEffect.java index 3b9b8e5ff..228c7fac6 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/MultiEffect.java +++ b/Server/src/main/content/data/consumables/effects/MultiEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class MultiEffect extends ConsumableEffect { private ConsumableEffect[] effects; diff --git a/Server/src/main/java/core/game/content/consumable/effects/NettleTeaEffect.java b/Server/src/main/content/data/consumables/effects/NettleTeaEffect.java similarity index 84% rename from Server/src/main/java/core/game/content/consumable/effects/NettleTeaEffect.java rename to Server/src/main/content/data/consumables/effects/NettleTeaEffect.java index 068422de6..8f20e8c33 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/NettleTeaEffect.java +++ b/Server/src/main/content/data/consumables/effects/NettleTeaEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class NettleTeaEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/PercentHeal.java b/Server/src/main/content/data/consumables/effects/PercentHeal.java similarity index 86% rename from Server/src/main/java/core/game/content/consumable/effects/PercentHeal.java rename to Server/src/main/content/data/consumables/effects/PercentHeal.java index 22711403a..d1d36145f 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/PercentHeal.java +++ b/Server/src/main/content/data/consumables/effects/PercentHeal.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class PercentHeal extends ConsumableEffect { int base = 0; diff --git a/Server/src/main/java/core/game/content/consumable/effects/PercentageHealthEffect.java b/Server/src/main/content/data/consumables/effects/PercentageHealthEffect.java similarity index 85% rename from Server/src/main/java/core/game/content/consumable/effects/PercentageHealthEffect.java rename to Server/src/main/content/data/consumables/effects/PercentageHealthEffect.java index 41383eec4..cd39cb57e 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/PercentageHealthEffect.java +++ b/Server/src/main/content/data/consumables/effects/PercentageHealthEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; public class PercentageHealthEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/PoisonEffect.java b/Server/src/main/content/data/consumables/effects/PoisonEffect.java similarity index 83% rename from Server/src/main/java/core/game/content/consumable/effects/PoisonEffect.java rename to Server/src/main/content/data/consumables/effects/PoisonEffect.java index 26e50dbd2..82adbeb81 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/PoisonEffect.java +++ b/Server/src/main/content/data/consumables/effects/PoisonEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class PoisonEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/PoisonKarambwanEffect.java b/Server/src/main/content/data/consumables/effects/PoisonKarambwanEffect.java similarity index 80% rename from Server/src/main/java/core/game/content/consumable/effects/PoisonKarambwanEffect.java rename to Server/src/main/content/data/consumables/effects/PoisonKarambwanEffect.java index f2ed9cb46..ceea78062 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/PoisonKarambwanEffect.java +++ b/Server/src/main/content/data/consumables/effects/PoisonKarambwanEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class PoisonKarambwanEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/PrayerEffect.java b/Server/src/main/content/data/consumables/effects/PrayerEffect.java similarity index 83% rename from Server/src/main/java/core/game/content/consumable/effects/PrayerEffect.java rename to Server/src/main/content/data/consumables/effects/PrayerEffect.java index 0c87c5933..65d5516aa 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/PrayerEffect.java +++ b/Server/src/main/content/data/consumables/effects/PrayerEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class PrayerEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/RandomEnergyEffect.java b/Server/src/main/content/data/consumables/effects/RandomEnergyEffect.java similarity index 81% rename from Server/src/main/java/core/game/content/consumable/effects/RandomEnergyEffect.java rename to Server/src/main/content/data/consumables/effects/RandomEnergyEffect.java index ee8fe238f..cab047a1c 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RandomEnergyEffect.java +++ b/Server/src/main/content/data/consumables/effects/RandomEnergyEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; public class RandomEnergyEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/RandomHealthEffect.java b/Server/src/main/content/data/consumables/effects/RandomHealthEffect.java similarity index 88% rename from Server/src/main/java/core/game/content/consumable/effects/RandomHealthEffect.java rename to Server/src/main/content/data/consumables/effects/RandomHealthEffect.java index 59e00df59..76e4c6514 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RandomHealthEffect.java +++ b/Server/src/main/content/data/consumables/effects/RandomHealthEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; public class RandomHealthEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/RandomPrayerEffect.java b/Server/src/main/content/data/consumables/effects/RandomPrayerEffect.java similarity index 81% rename from Server/src/main/java/core/game/content/consumable/effects/RandomPrayerEffect.java rename to Server/src/main/content/data/consumables/effects/RandomPrayerEffect.java index ab29251a3..0d669a4df 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RandomPrayerEffect.java +++ b/Server/src/main/content/data/consumables/effects/RandomPrayerEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; public class RandomPrayerEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/RandomSkillEffect.java b/Server/src/main/content/data/consumables/effects/RandomSkillEffect.java similarity index 83% rename from Server/src/main/java/core/game/content/consumable/effects/RandomSkillEffect.java rename to Server/src/main/content/data/consumables/effects/RandomSkillEffect.java index d2a5fea6b..3c7c11c23 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RandomSkillEffect.java +++ b/Server/src/main/content/data/consumables/effects/RandomSkillEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; public class RandomSkillEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/RemoveStateEffect.java b/Server/src/main/content/data/consumables/effects/RemoveStateEffect.java similarity index 85% rename from Server/src/main/java/core/game/content/consumable/effects/RemoveStateEffect.java rename to Server/src/main/content/data/consumables/effects/RemoveStateEffect.java index f6a64af83..7c2d5040a 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RemoveStateEffect.java +++ b/Server/src/main/content/data/consumables/effects/RemoveStateEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; -import core.game.content.consumable.ConsumableEffect; public class RemoveStateEffect extends ConsumableEffect { int state = -1; diff --git a/Server/src/main/java/core/game/content/consumable/effects/RestoreEffect.java b/Server/src/main/content/data/consumables/effects/RestoreEffect.java similarity index 88% rename from Server/src/main/java/core/game/content/consumable/effects/RestoreEffect.java rename to Server/src/main/content/data/consumables/effects/RestoreEffect.java index f49c40e49..3b57acabf 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RestoreEffect.java +++ b/Server/src/main/content/data/consumables/effects/RestoreEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class RestoreEffect extends ConsumableEffect { diff --git a/Server/src/main/kotlin/rs09/game/content/consumable/effects/RestoreSummoningSpecial.kt b/Server/src/main/content/data/consumables/effects/RestoreSummoningSpecial.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/content/consumable/effects/RestoreSummoningSpecial.kt rename to Server/src/main/content/data/consumables/effects/RestoreSummoningSpecial.kt index 491d55a1a..51b727dab 100644 --- a/Server/src/main/kotlin/rs09/game/content/consumable/effects/RestoreSummoningSpecial.kt +++ b/Server/src/main/content/data/consumables/effects/RestoreSummoningSpecial.kt @@ -1,6 +1,6 @@ -package rs09.game.content.consumable.effects +package content.data.consumables.effects -import core.game.content.consumable.ConsumableEffect +import core.game.consumable.ConsumableEffect import core.game.node.entity.player.Player class RestoreSummoningSpecial : ConsumableEffect(){ diff --git a/Server/src/main/java/core/game/content/consumable/effects/RockCakeEffect.java b/Server/src/main/content/data/consumables/effects/RockCakeEffect.java similarity index 82% rename from Server/src/main/java/core/game/content/consumable/effects/RockCakeEffect.java rename to Server/src/main/content/data/consumables/effects/RockCakeEffect.java index 54d6c0afa..eb2ed364b 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/RockCakeEffect.java +++ b/Server/src/main/content/data/consumables/effects/RockCakeEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class RockCakeEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/SetAttributeEffect.java b/Server/src/main/content/data/consumables/effects/SetAttributeEffect.java similarity index 86% rename from Server/src/main/java/core/game/content/consumable/effects/SetAttributeEffect.java rename to Server/src/main/content/data/consumables/effects/SetAttributeEffect.java index 6a2b6776c..b00296143 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/SetAttributeEffect.java +++ b/Server/src/main/content/data/consumables/effects/SetAttributeEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; -import core.game.content.consumable.ConsumableEffect; +import core.game.world.GameWorld; public class SetAttributeEffect extends ConsumableEffect { String attrString; diff --git a/Server/src/main/java/core/game/content/consumable/effects/SkillEffect.java b/Server/src/main/content/data/consumables/effects/SkillEffect.java similarity index 87% rename from Server/src/main/java/core/game/content/consumable/effects/SkillEffect.java rename to Server/src/main/content/data/consumables/effects/SkillEffect.java index d6498e222..56c6b59f3 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/SkillEffect.java +++ b/Server/src/main/content/data/consumables/effects/SkillEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class SkillEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/SmellingUgthankiKebabEffect.java b/Server/src/main/content/data/consumables/effects/SmellingUgthankiKebabEffect.java similarity index 89% rename from Server/src/main/java/core/game/content/consumable/effects/SmellingUgthankiKebabEffect.java rename to Server/src/main/content/data/consumables/effects/SmellingUgthankiKebabEffect.java index c80c191e1..ab0f07319 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/SmellingUgthankiKebabEffect.java +++ b/Server/src/main/content/data/consumables/effects/SmellingUgthankiKebabEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; /** * According to the OSRS wiki, the smelling ugthanki kebab will usually heal nothing when eaten, but sometimes heals for 9. diff --git a/Server/src/main/java/core/game/content/consumable/effects/SummoningEffect.java b/Server/src/main/content/data/consumables/effects/SummoningEffect.java similarity index 84% rename from Server/src/main/java/core/game/content/consumable/effects/SummoningEffect.java rename to Server/src/main/content/data/consumables/effects/SummoningEffect.java index d1ea42804..be7d0b07f 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/SummoningEffect.java +++ b/Server/src/main/content/data/consumables/effects/SummoningEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class SummoningEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/SuperKebabEffect.java b/Server/src/main/content/data/consumables/effects/SuperKebabEffect.java similarity index 89% rename from Server/src/main/java/core/game/content/consumable/effects/SuperKebabEffect.java rename to Server/src/main/content/data/consumables/effects/SuperKebabEffect.java index 127fd63e8..79f800594 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/SuperKebabEffect.java +++ b/Server/src/main/content/data/consumables/effects/SuperKebabEffect.java @@ -1,8 +1,8 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.tools.RandomFunction; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/content/consumable/effects/TroubleBrewingRumEffect.java b/Server/src/main/content/data/consumables/effects/TroubleBrewingRumEffect.java similarity index 91% rename from Server/src/main/java/core/game/content/consumable/effects/TroubleBrewingRumEffect.java rename to Server/src/main/content/data/consumables/effects/TroubleBrewingRumEffect.java index c9fa70b82..56cd91a24 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/TroubleBrewingRumEffect.java +++ b/Server/src/main/content/data/consumables/effects/TroubleBrewingRumEffect.java @@ -1,9 +1,9 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; import core.game.world.map.Location; -import core.game.content.consumable.ConsumableEffect; public class TroubleBrewingRumEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/UgthankiKebabEffect.java b/Server/src/main/content/data/consumables/effects/UgthankiKebabEffect.java similarity index 84% rename from Server/src/main/java/core/game/content/consumable/effects/UgthankiKebabEffect.java rename to Server/src/main/content/data/consumables/effects/UgthankiKebabEffect.java index d141d365f..dd8e35d84 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/UgthankiKebabEffect.java +++ b/Server/src/main/content/data/consumables/effects/UgthankiKebabEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; public class UgthankiKebabEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/consumable/effects/WizardsMindBombEffect.java b/Server/src/main/content/data/consumables/effects/WizardsMindBombEffect.java similarity index 87% rename from Server/src/main/java/core/game/content/consumable/effects/WizardsMindBombEffect.java rename to Server/src/main/content/data/consumables/effects/WizardsMindBombEffect.java index c40e61480..52a0e4229 100644 --- a/Server/src/main/java/core/game/content/consumable/effects/WizardsMindBombEffect.java +++ b/Server/src/main/content/data/consumables/effects/WizardsMindBombEffect.java @@ -1,7 +1,7 @@ -package core.game.content.consumable.effects; +package content.data.consumables.effects; +import core.game.consumable.ConsumableEffect; import core.game.node.entity.player.Player; -import core.game.content.consumable.ConsumableEffect; import core.game.node.entity.skill.Skills; public class WizardsMindBombEffect extends ConsumableEffect { diff --git a/Server/src/main/java/core/game/content/global/SkillcapePerks.java b/Server/src/main/content/data/skill/SkillcapePerks.java similarity index 96% rename from Server/src/main/java/core/game/content/global/SkillcapePerks.java rename to Server/src/main/content/data/skill/SkillcapePerks.java index 25bb0b3f9..d9109a18f 100644 --- a/Server/src/main/java/core/game/content/global/SkillcapePerks.java +++ b/Server/src/main/content/data/skill/SkillcapePerks.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data.skill; /** * Handles the skillcape perks. diff --git a/Server/src/main/java/core/game/content/global/SkillingPets.java b/Server/src/main/content/data/skill/SkillingPets.java similarity index 96% rename from Server/src/main/java/core/game/content/global/SkillingPets.java rename to Server/src/main/content/data/skill/SkillingPets.java index 8c34f7d0c..4ea03edd9 100644 --- a/Server/src/main/java/core/game/content/global/SkillingPets.java +++ b/Server/src/main/content/data/skill/SkillingPets.java @@ -1,9 +1,9 @@ -package core.game.content.global; +package content.data.skill; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; /** * Represents the skilling pets obtained randomly. diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java b/Server/src/main/content/data/skill/SkillingTool.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java rename to Server/src/main/content/data/skill/SkillingTool.java index a77366987..cb0b7565f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingTool.java +++ b/Server/src/main/content/data/skill/SkillingTool.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.gather; +package content.data.skill; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/AllotmentSeedDropTable.java b/Server/src/main/content/data/tables/AllotmentSeedDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/AllotmentSeedDropTable.java rename to Server/src/main/content/data/tables/AllotmentSeedDropTable.java index 71c3c9d07..4523be955 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/AllotmentSeedDropTable.java +++ b/Server/src/main/content/data/tables/AllotmentSeedDropTable.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; +import core.api.StartupListener; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; import core.tools.RandomFunction; @@ -8,8 +8,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import rs09.ServerConstants; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the allotment seed drop table. diff --git a/Server/src/main/java/core/game/content/global/BirdNest.java b/Server/src/main/content/data/tables/BirdNest.java similarity index 99% rename from Server/src/main/java/core/game/content/global/BirdNest.java rename to Server/src/main/content/data/tables/BirdNest.java index 6470c0309..929ca3adc 100644 --- a/Server/src/main/java/core/game/content/global/BirdNest.java +++ b/Server/src/main/content/data/tables/BirdNest.java @@ -1,4 +1,4 @@ -package core.game.content.global; +package content.data.tables; import org.rs09.consts.Items; import core.game.node.entity.npc.drop.NPCDropTables; diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/CELEMinorTable.java b/Server/src/main/content/data/tables/CELEMinorTable.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/drop/CELEMinorTable.java rename to Server/src/main/content/data/tables/CELEMinorTable.java index 5364d3b74..bb19629f7 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/CELEMinorTable.java +++ b/Server/src/main/content/data/tables/CELEMinorTable.java @@ -1,96 +1,96 @@ -package core.game.node.entity.npc.drop; - -import api.StartupListener; -import rs09.ServerConstants; -import core.game.node.item.Item; -import core.game.node.item.WeightedChanceItem; -import rs09.game.system.SystemLogger; -import core.tools.RandomFunction; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import static rs09.game.system.SystemLogger.logInfo; - -/** - * Handles the Chaos Elemental's minor drop table. It is supposed to roll this table alongside its standard major drops on the main table. - * @author Crash - */ -public final class CELEMinorTable implements StartupListener { - - /** - * The item id of the item representing the C. Ele minor drop table slot in a drop - * table. - */ - public static final int SLOT_ITEM_ID = 799; // Crash: Item ID 799 is currently a null, blank paper note object. Unsure if used for cutscene/cutscene items, but hijacking this as C.Ele's item container as it'll never be dropped or obtained in normal gameplay. - - /** - * The rare drop table. - */ - private static final List TABLE = new ArrayList<>(20); - - - /** - * Initialize needed objects for xml reading/writing - */ - static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - static DocumentBuilder builder; - - static { - try { - builder = factory.newDocumentBuilder(); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - } - } - - public CELEMinorTable() throws ParserConfigurationException {} - - @Override - public void startup() { - if(ServerConstants.CELEDT_DATA_PATH != null && !new File(ServerConstants.CELEDT_DATA_PATH).exists()){ - SystemLogger.logErr(this.getClass(), "Can't locate CELEDT file at " + ServerConstants.CELEDT_DATA_PATH); - return; - } - parse(ServerConstants.CELEDT_DATA_PATH); - logInfo(this.getClass(), "Loaded up Chaos Elemental drop table from " + ServerConstants.CELEDT_DATA_PATH); - } - - /** - * Parses the xml file for the CELEDT. - * @param file the .xml file containing the CELEDT. - */ - public static void parse(String file){ - try { - Document doc = builder.parse(file); - - NodeList itemNodes = doc.getElementsByTagName("item"); - for(int i = 0; i < itemNodes.getLength(); i++){ - Node itemNode = itemNodes.item(i); - if(itemNode.getNodeType() == Node.ELEMENT_NODE){ - Element item = (Element) itemNode; - int itemId = Integer.parseInt(item.getAttribute("id")); - int minAmt = Integer.parseInt(item.getAttribute("minAmt")); - int maxAmt = Integer.parseInt(item.getAttribute("maxAmt")); - int weight = Integer.parseInt(item.getAttribute("weight")); - - TABLE.add(new WeightedChanceItem(itemId,minAmt,maxAmt,weight)); - } - } - } catch (Exception e){ - e.printStackTrace(); - } - } - - public static Item retrieve(){ - return RandomFunction.rollWeightedChanceTable(TABLE); - } +package content.data.tables; + +import core.api.StartupListener; +import core.ServerConstants; +import core.game.node.item.Item; +import core.game.node.item.WeightedChanceItem; +import core.tools.SystemLogger; +import core.tools.RandomFunction; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static core.tools.SystemLogger.logInfo; + +/** + * Handles the Chaos Elemental's minor drop table. It is supposed to roll this table alongside its standard major drops on the main table. + * @author Crash + */ +public final class CELEMinorTable implements StartupListener { + + /** + * The item id of the item representing the C. Ele minor drop table slot in a drop + * table. + */ + public static final int SLOT_ITEM_ID = 799; // Crash: Item ID 799 is currently a null, blank paper note object. Unsure if used for cutscene/cutscene items, but hijacking this as C.Ele's item container as it'll never be dropped or obtained in normal gameplay. + + /** + * The rare drop table. + */ + private static final List TABLE = new ArrayList<>(20); + + + /** + * Initialize needed objects for xml reading/writing + */ + static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + static DocumentBuilder builder; + + static { + try { + builder = factory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } + } + + public CELEMinorTable() throws ParserConfigurationException {} + + @Override + public void startup() { + if(ServerConstants.CELEDT_DATA_PATH != null && !new File(ServerConstants.CELEDT_DATA_PATH).exists()){ + SystemLogger.logErr(this.getClass(), "Can't locate CELEDT file at " + ServerConstants.CELEDT_DATA_PATH); + return; + } + parse(ServerConstants.CELEDT_DATA_PATH); + logInfo(this.getClass(), "Loaded up Chaos Elemental drop table from " + ServerConstants.CELEDT_DATA_PATH); + } + + /** + * Parses the xml file for the CELEDT. + * @param file the .xml file containing the CELEDT. + */ + public static void parse(String file){ + try { + Document doc = builder.parse(file); + + NodeList itemNodes = doc.getElementsByTagName("item"); + for(int i = 0; i < itemNodes.getLength(); i++){ + Node itemNode = itemNodes.item(i); + if(itemNode.getNodeType() == Node.ELEMENT_NODE){ + Element item = (Element) itemNode; + int itemId = Integer.parseInt(item.getAttribute("id")); + int minAmt = Integer.parseInt(item.getAttribute("minAmt")); + int maxAmt = Integer.parseInt(item.getAttribute("maxAmt")); + int weight = Integer.parseInt(item.getAttribute("weight")); + + TABLE.add(new WeightedChanceItem(itemId,minAmt,maxAmt,weight)); + } + } + } catch (Exception e){ + e.printStackTrace(); + } + } + + public static Item retrieve(){ + return RandomFunction.rollWeightedChanceTable(TABLE); + } } \ No newline at end of file diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/GemDropTable.java b/Server/src/main/content/data/tables/GemDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/GemDropTable.java rename to Server/src/main/content/data/tables/GemDropTable.java index 9c8b287ee..8ec051d64 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/GemDropTable.java +++ b/Server/src/main/content/data/tables/GemDropTable.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; +import core.api.StartupListener; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; import core.tools.RandomFunction; @@ -8,8 +8,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import rs09.ServerConstants; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the gem drop table. diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/HerbDropTable.java b/Server/src/main/content/data/tables/HerbDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/HerbDropTable.java rename to Server/src/main/content/data/tables/HerbDropTable.java index a40ca0971..063444231 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/HerbDropTable.java +++ b/Server/src/main/content/data/tables/HerbDropTable.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; +import core.api.StartupListener; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; import core.tools.RandomFunction; @@ -8,8 +8,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import rs09.ServerConstants; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the herb drop table. diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/RareDropTable.java b/Server/src/main/content/data/tables/RareDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/RareDropTable.java rename to Server/src/main/content/data/tables/RareDropTable.java index c0bbe3742..4bb6b060a 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/RareDropTable.java +++ b/Server/src/main/content/data/tables/RareDropTable.java @@ -1,10 +1,10 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; -import rs09.ServerConstants; +import core.api.StartupListener; +import core.ServerConstants; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.tools.RandomFunction; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the rare drop table. diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/RareSeedDropTable.java b/Server/src/main/content/data/tables/RareSeedDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/RareSeedDropTable.java rename to Server/src/main/content/data/tables/RareSeedDropTable.java index cd84abe38..39c83efe1 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/RareSeedDropTable.java +++ b/Server/src/main/content/data/tables/RareSeedDropTable.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; +import core.api.StartupListener; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; import core.tools.RandomFunction; @@ -8,8 +8,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import rs09.ServerConstants; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the rare seed drop table. diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/UncommonSeedDropTable.java b/Server/src/main/content/data/tables/UncommonSeedDropTable.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/drop/UncommonSeedDropTable.java rename to Server/src/main/content/data/tables/UncommonSeedDropTable.java index 226372138..cf4537ece 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/UncommonSeedDropTable.java +++ b/Server/src/main/content/data/tables/UncommonSeedDropTable.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.drop; +package content.data.tables; -import api.StartupListener; +import core.api.StartupListener; import core.game.node.item.Item; import core.game.node.item.WeightedChanceItem; import core.tools.RandomFunction; @@ -8,8 +8,8 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import rs09.ServerConstants; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -18,7 +18,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import static rs09.game.system.SystemLogger.logInfo; +import static core.tools.SystemLogger.logInfo; /** * Handles the uncommon seed drop table. diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/CancelJobDialogueFile.kt b/Server/src/main/content/global/activity/jobs/CancelJobDialogueFile.kt similarity index 74% rename from Server/src/main/kotlin/rs09/game/content/jobs/CancelJobDialogueFile.kt rename to Server/src/main/content/global/activity/jobs/CancelJobDialogueFile.kt index 8ee6aceb3..62238ad76 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/CancelJobDialogueFile.kt +++ b/Server/src/main/content/global/activity/jobs/CancelJobDialogueFile.kt @@ -1,23 +1,23 @@ -package rs09.game.content.jobs +package content.global.activity.jobs -import api.* -import rs09.game.content.jobs.impl.GatheringJobs -import rs09.game.content.jobs.impl.SlayingJobs -import core.game.content.dialogue.FacialExpression +import core.api.* +import content.global.activity.jobs.impl.GatheringJobs +import content.global.activity.jobs.impl.SlayingJobs +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class CancelJobDialogueFile : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { when (stage) { START_DIALOGUE -> showTopics( - Topic(FacialExpression.HALF_ASKING, "How am I doing on my job?", 1), - Topic(FacialExpression.HALF_GUILTY, "I'd like to cancel my job.", 10) + Topic(core.game.dialogue.FacialExpression.HALF_ASKING, "How am I doing on my job?", 1), + Topic(core.game.dialogue.FacialExpression.HALF_GUILTY, "I'd like to cancel my job.", 10) ) 1 -> { @@ -49,8 +49,8 @@ class CancelJobDialogueFile : DialogueFile() { .also { stage++ } 11 -> showTopics( - Topic(FacialExpression.HAPPY, "Yes, please.", 20), - Topic(FacialExpression.NEUTRAL, "No, thanks.", 30) + Topic(core.game.dialogue.FacialExpression.HAPPY, "Yes, please.", 20), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "No, thanks.", 30) ) 20 -> npc("Alright then, hand over the money.") @@ -68,7 +68,7 @@ class CancelJobDialogueFile : DialogueFile() { stage = END_DIALOGUE } else { player( - FacialExpression.HALF_WORRIED, + core.game.dialogue.FacialExpression.HALF_WORRIED, "Oh, I don't seem to have the money..." ).also { stage++ } } diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt b/Server/src/main/content/global/activity/jobs/JobManager.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt rename to Server/src/main/content/global/activity/jobs/JobManager.kt index e652a582e..cfeac8b51 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/JobManager.kt +++ b/Server/src/main/content/global/activity/jobs/JobManager.kt @@ -1,15 +1,15 @@ -package rs09.game.content.jobs +package content.global.activity.jobs -import api.* -import rs09.game.content.jobs.impl.GatheringJobs -import rs09.game.content.jobs.impl.SlayingJobs +import core.api.* +import content.global.activity.jobs.impl.GatheringJobs +import content.global.activity.jobs.impl.SlayingJobs import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.ServerStore.Companion.getInt +import core.ServerStore +import core.ServerStore.Companion.getInt object JobManager { @JvmStatic diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/JobType.kt b/Server/src/main/content/global/activity/jobs/JobType.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/content/jobs/JobType.kt rename to Server/src/main/content/global/activity/jobs/JobType.kt index d5e407f9b..fc1c6bb65 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/JobType.kt +++ b/Server/src/main/content/global/activity/jobs/JobType.kt @@ -1,4 +1,4 @@ -package rs09.game.content.jobs +package content.global.activity.jobs enum class JobType { GATHERING, diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt b/Server/src/main/content/global/activity/jobs/WorkForInteractionListener.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt rename to Server/src/main/content/global/activity/jobs/WorkForInteractionListener.kt index 9c99d4b8b..ad987feea 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/WorkForInteractionListener.kt +++ b/Server/src/main/content/global/activity/jobs/WorkForInteractionListener.kt @@ -1,22 +1,21 @@ -package rs09.game.content.jobs +package content.global.activity.jobs -import rs09.game.content.jobs.impl.GatheringJobs -import rs09.game.content.jobs.impl.SlayingJobs -import api.* -import api.events.EventHook -import api.events.JobAssignmentEvent -import api.events.NPCKillEvent -import core.game.content.dialogue.FacialExpression +import content.global.activity.jobs.impl.GatheringJobs +import content.global.activity.jobs.impl.SlayingJobs +import core.api.* +import core.game.event.EventHook +import core.game.event.JobAssignmentEvent +import core.game.event.NPCKillEvent import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.ServerStore.Companion.getInt -import rs09.game.Event -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.ServerStore.Companion.getInt +import core.api.Event +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the work-for actions for the NPCs @@ -143,7 +142,7 @@ class WorkForInteractionListener : InteractionListener, LoginListener { player, node.id, "I'm sorry, I don't currently have any jobs that you're qualified for.", - FacialExpression.HALF_THINKING + core.game.dialogue.FacialExpression.HALF_THINKING ) return@on true } diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/impl/GatheringJobs.kt b/Server/src/main/content/global/activity/jobs/impl/GatheringJobs.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/jobs/impl/GatheringJobs.kt rename to Server/src/main/content/global/activity/jobs/impl/GatheringJobs.kt index 7bd8bda1b..ddb4c0973 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/impl/GatheringJobs.kt +++ b/Server/src/main/content/global/activity/jobs/impl/GatheringJobs.kt @@ -1,4 +1,4 @@ -package rs09.game.content.jobs.impl +package content.global.activity.jobs.impl import core.game.node.entity.skill.Skills import core.tools.RandomFunction diff --git a/Server/src/main/kotlin/rs09/game/content/jobs/impl/SlayingJobs.kt b/Server/src/main/content/global/activity/jobs/impl/SlayingJobs.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/jobs/impl/SlayingJobs.kt rename to Server/src/main/content/global/activity/jobs/impl/SlayingJobs.kt index e0d3a5095..5afdbf90b 100644 --- a/Server/src/main/kotlin/rs09/game/content/jobs/impl/SlayingJobs.kt +++ b/Server/src/main/content/global/activity/jobs/impl/SlayingJobs.kt @@ -1,4 +1,4 @@ -package rs09.game.content.jobs.impl +package content.global.activity.jobs.impl import core.tools.RandomFunction diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/LarryHandler.kt b/Server/src/main/content/global/activity/penguinhns/LarryHandler.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/LarryHandler.kt rename to Server/src/main/content/global/activity/penguinhns/LarryHandler.kt index e9d72ae14..842e85e83 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/LarryHandler.kt +++ b/Server/src/main/content/global/activity/penguinhns/LarryHandler.kt @@ -1,21 +1,18 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE -class LarryHandler(player: Player? = null) : DialoguePlugin(player){ +class LarryHandler(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { options("Can I have a spy notebook?","Can I have a hint?","I'd like to turn in my points.").also { stage = 0; return true } } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return LarryHandler(player) } @@ -43,7 +40,7 @@ class LarryHandler(player: Player? = null) : DialoguePlugin(player){ 11 -> { val hint = Penguin.values()[PenguinManager.penguins.random()].hint - npcl(FacialExpression.FRIENDLY, "One is $hint") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "One is $hint") stage = END_DIALOGUE } diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/NotebookHandler.kt b/Server/src/main/content/global/activity/penguinhns/NotebookHandler.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/NotebookHandler.kt rename to Server/src/main/content/global/activity/penguinhns/NotebookHandler.kt index 40424ea68..15462eefe 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/NotebookHandler.kt +++ b/Server/src/main/content/global/activity/penguinhns/NotebookHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinHNSEvent.kt b/Server/src/main/content/global/activity/penguinhns/PenguinHNSEvent.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinHNSEvent.kt rename to Server/src/main/content/global/activity/penguinhns/PenguinHNSEvent.kt index 38f68a8da..b88d5d38f 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinHNSEvent.kt +++ b/Server/src/main/content/global/activity/penguinhns/PenguinHNSEvent.kt @@ -1,12 +1,10 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns -import core.game.system.task.Pulse import org.json.simple.JSONObject -import rs09.ServerStore -import rs09.game.content.global.worldevents.PluginSet -import rs09.game.content.global.worldevents.WorldEvent -import rs09.game.content.global.worldevents.WorldEvents -import rs09.game.world.GameWorld +import core.ServerStore +import core.game.worldevents.PluginSet +import core.game.worldevents.WorldEvent +import core.game.world.GameWorld class PenguinHNSEvent : WorldEvent("penguin-hns"){ val manager = PenguinManager() diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinManager.kt b/Server/src/main/content/global/activity/penguinhns/PenguinManager.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinManager.kt rename to Server/src/main/content/global/activity/penguinhns/PenguinManager.kt index 55fc568c6..51cdcdecc 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinManager.kt +++ b/Server/src/main/content/global/activity/penguinhns/PenguinManager.kt @@ -1,12 +1,12 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.map.Location import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.ServerStore.Companion.toJSONArray +import core.ServerStore.Companion.toJSONArray import java.util.* class PenguinManager{ diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpawner.kt b/Server/src/main/content/global/activity/penguinhns/PenguinSpawner.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpawner.kt rename to Server/src/main/content/global/activity/penguinhns/PenguinSpawner.kt index ebcfec2a1..d19b9a82a 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpawner.kt +++ b/Server/src/main/content/global/activity/penguinhns/PenguinSpawner.kt @@ -1,9 +1,9 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns import core.game.node.entity.npc.NPC import core.game.world.map.Location import org.rs09.consts.NPCs -import rs09.game.content.global.worldevents.WorldEvents +import core.game.worldevents.WorldEvents class PenguinSpawner { @@ -16,7 +16,7 @@ class PenguinSpawner { availableOrdinals.remove(peng.ordinal) spawnedOrdinals.add(peng.ordinal) NPC(peng.id,peng.location) - .also {PenguinManager.npcs.add(it);it.isNeverWalks = true; it.isWalks = false}.init() + .also { PenguinManager.npcs.add(it);it.isNeverWalks = true; it.isWalks = false}.init() counter++ } return spawnedOrdinals diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpyingHandler.kt b/Server/src/main/content/global/activity/penguinhns/PenguinSpyingHandler.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpyingHandler.kt rename to Server/src/main/content/global/activity/penguinhns/PenguinSpyingHandler.kt index 3000954da..f39b9e41f 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/penguinhns/PenguinSpyingHandler.kt +++ b/Server/src/main/content/global/activity/penguinhns/PenguinSpyingHandler.kt @@ -1,23 +1,17 @@ -package rs09.game.content.global.worldevents.penguinhns +package content.global.activity.penguinhns -import core.game.interaction.DestinationFlag -import core.game.interaction.MovementPulse -import core.game.interaction.Option import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.update.flag.context.Animation -import core.plugin.Plugin -import core.game.content.quest.PluginInteraction -import core.game.content.quest.PluginInteractionManager -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType -class PenguinSpyingHandler : InteractionListener{ +class PenguinSpyingHandler : InteractionListener { override fun defineListeners() { - on(PENGUINS, IntType.NPC, "spy-on"){player, node -> + on(PENGUINS, IntType.NPC, "spy-on"){ player, node -> val npc = node.asNpc() if(PenguinManager.hasTagged(player, npc.location)){ player.sendMessage("You've already tagged this penguin.") diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt b/Server/src/main/content/global/activity/shootingstar/ShootingStar.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt rename to Server/src/main/content/global/activity/shootingstar/ShootingStar.kt index 7b4bbe274..1ea776e49 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt +++ b/Server/src/main/content/global/activity/shootingstar/ShootingStar.kt @@ -1,16 +1,16 @@ -package rs09.game.content.global.worldevents.shootingstar +package content.global.activity.shootingstar import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.world.map.Location -import rs09.ServerStore.Companion.getBoolean -import rs09.ServerStore.Companion.getInt -import rs09.ServerStore.Companion.getString +import core.ServerStore.Companion.getBoolean +import core.ServerStore.Companion.getInt +import core.ServerStore.Companion.getString -import rs09.game.ai.general.scriptrepository.ShootingStarBot -import rs09.game.world.repository.Repository +import content.global.bots.ShootingStarBot +import core.game.world.repository.Repository /** * Represents a shooting star object (Only ever initialized once) (ideally) @@ -101,7 +101,7 @@ class ShootingStar(var level: ShootingStarType = ShootingStarType.values().rando starObject = newStar } - private fun getNextType(): ShootingStarType{ + private fun getNextType(): ShootingStarType { return ShootingStarType.values()[level.ordinal - 1] } diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt b/Server/src/main/content/global/activity/shootingstar/ShootingStarMiningPulse.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt rename to Server/src/main/content/global/activity/shootingstar/ShootingStarMiningPulse.kt index 1d49f14a4..6bfa6d2b0 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt +++ b/Server/src/main/content/global/activity/shootingstar/ShootingStarMiningPulse.kt @@ -1,17 +1,17 @@ -package rs09.game.content.global.worldevents.shootingstar +package content.global.activity.shootingstar -import api.* +import core.api.* import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.skill.SkillPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.colorize /** * The pulse used to handle mining shooting stars. diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarPlugin.kt b/Server/src/main/content/global/activity/shootingstar/ShootingStarPlugin.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarPlugin.kt rename to Server/src/main/content/global/activity/shootingstar/ShootingStarPlugin.kt index 2bc8588b2..fb8e1df9f 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarPlugin.kt +++ b/Server/src/main/content/global/activity/shootingstar/ShootingStarPlugin.kt @@ -1,21 +1,21 @@ -package rs09.game.content.global.worldevents.shootingstar +package content.global.activity.shootingstar -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.skill.Skills import org.json.simple.JSONObject import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.ServerStore -import rs09.ServerStore.Companion.getBoolean -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.tools.secondsToTicks +import core.ServerStore +import core.ServerStore.Companion.getBoolean +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.tools.secondsToTicks class ShootingStarPlugin : LoginListener, InteractionListener, TickListener, Commands, StartupListener { override fun login(player: Player) { @@ -59,7 +59,7 @@ class ShootingStarPlugin : LoginListener, InteractionListener, TickListener, Com return@on true } - on(RING, IntType.ITEM, "rub", "operate"){player, node -> + on(RING, IntType.ITEM, "rub", "operate"){ player, node -> if(getRingStoreFile().getBoolean(player.username.toLowerCase())){ sendDialogue(player, "The ring is still recharging.") return@on true diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/ShootingStarState.kt b/Server/src/main/content/global/activity/shootingstar/ShootingStarState.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/ShootingStarState.kt rename to Server/src/main/content/global/activity/shootingstar/ShootingStarState.kt index eed3442ee..0adbf564d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/ShootingStarState.kt +++ b/Server/src/main/content/global/activity/shootingstar/ShootingStarState.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.activity.shootingstar import core.game.node.entity.player.Player -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State import core.game.system.task.Pulse -import rs09.tools.ticksToSeconds +import core.tools.ticksToSeconds import org.json.simple.JSONObject @PlayerState("shooting-star") diff --git a/Server/src/main/java/core/game/content/global/worldevents/shootingstar/StarChartPlugin.java b/Server/src/main/content/global/activity/shootingstar/StarChartPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/global/worldevents/shootingstar/StarChartPlugin.java rename to Server/src/main/content/global/activity/shootingstar/StarChartPlugin.java index a6bd21964..9ab977822 100644 --- a/Server/src/main/java/core/game/content/global/worldevents/shootingstar/StarChartPlugin.java +++ b/Server/src/main/content/global/activity/shootingstar/StarChartPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.global.worldevents.shootingstar; +package content.global.activity.shootingstar; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -8,7 +8,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.PluginManifest; @PluginManifest(name="ShootingStars") diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/StarSpriteDialogue.kt b/Server/src/main/content/global/activity/shootingstar/StarSpriteDialogue.kt similarity index 74% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/StarSpriteDialogue.kt rename to Server/src/main/content/global/activity/shootingstar/StarSpriteDialogue.kt index 38b77f9c0..c1a1e6a75 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/StarSpriteDialogue.kt +++ b/Server/src/main/content/global/activity/shootingstar/StarSpriteDialogue.kt @@ -1,9 +1,7 @@ -package rs09.game.content.global.worldevents.shootingstar +package content.global.activity.shootingstar -import api.Container -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.Container +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item @@ -11,19 +9,18 @@ import core.plugin.Initializable import core.tools.RandomFunction import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.ServerStore.Companion.getBoolean -import rs09.game.node.entity.state.newsys.states.ShootingStarState -import rs09.tools.END_DIALOGUE -import rs09.tools.secondsToTicks -import rs09.tools.stringtools.colorize +import core.ServerStore +import core.ServerStore.Companion.getBoolean +import core.tools.END_DIALOGUE +import core.tools.secondsToTicks +import core.tools.colorize import java.util.concurrent.TimeUnit /** * Dialogue for the star sprite. */ @Initializable -class StarSpriteDialogue(player: Player? = null) : DialoguePlugin(player) { +class StarSpriteDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { /** * The cosmic rune item id. @@ -60,17 +57,17 @@ class StarSpriteDialogue(player: Player? = null) : DialoguePlugin(player) { */ } - override fun newInstance(player: Player?): DialoguePlugin? { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin? { return StarSpriteDialogue(player) } override fun open(vararg args: Any): Boolean { npc = args[0] as NPC if (inInventory(player, Items.ANCIENT_BLUEPRINT_14651) && !getAttribute(player, "star-ring:bp-shown", false)) { - npcl(FacialExpression.NEUTRAL, "I see you got ahold of a blueprint of those silly old rings we used to make.") + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I see you got ahold of a blueprint of those silly old rings we used to make.") stage = 1000 } else if (inInventory(player, Items.ANCIENT_BLUEPRINT_14651) && getAttribute(player, "star-ring:bp-shown", false)) { - playerl(FacialExpression.HALF_ASKING, "So about those rings...") + playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "So about those rings...") stage = 2000 } else if (getStoreFile().getBoolean(player.username.toLowerCase()) || !player.getInventory().contains(ShootingStarPlugin.STAR_DUST, 1)) { npc("Hello, strange creature.") @@ -226,36 +223,36 @@ class StarSpriteDialogue(player: Player? = null) : DialoguePlugin(player) { 52 -> end() //Inauthentic ring-based dialogue - 1000 -> playerl(FacialExpression.ASKING, "Oh, you mean this?").also { stage++ } + 1000 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Oh, you mean this?").also { stage++ } 1001 -> player.dialogueInterpreter.sendItemMessage(Items.ANCIENT_BLUEPRINT_14651, "You show the blueprint to the Star Sprite.").also { stage++ } - 1002 -> npcl(FacialExpression.ASKING, "Yeah, that's the one, alright!").also { stage++ } - 1003 -> npcl(FacialExpression.NEUTRAL, "I'll tell you what.. if you can get ahold of the resources needed to make one, I'm sure me or one of my kin would craft it for you.").also { stage++ } - 1004 -> playerl(FacialExpression.ASKING, "You'd just do that for me? For free?").also { stage++ } - 1005 -> npcl(FacialExpression.NEUTRAL, "I don't see why not. We used to make these for fun and hand them out to adventurers all the time.").also { stage++ } - 1006 -> playerl(FacialExpression.ASKING, "Well, thanks! So.. what do we need to make one?").also { stage++ } - 1007 -> npcl(FacialExpression.NEUTRAL, "Looking at the blueprint here...").also { stage++ } - 1008 -> npcl(FacialExpression.NEUTRAL, "Yes, it seems we need a ring mould, a silver bar, a cut dragonstone and 200 stardust. Oh, and make sure to bring this blueprint with you.").also { stage++ } - 1009 -> playerl(FacialExpression.FRIENDLY, "Thanks, I'll get right on it!").also { stage++ } - 1010 -> playerl(FacialExpression.ASKING, "So just to make sure I've got it right, I need a ring mould, a silver bar, a cut dragonstone and 200 stardust, as well as this blueprint?").also { stage++ } - 1011 -> npcl(FacialExpression.NEUTRAL, "Yeah, you've got it, human. Any of my kin should be able to do this for you.").also { stage++; setAttribute(player, "/save:star-ring:bp-shown", true) } - 1012 -> playerl(FacialExpression.FRIENDLY, "Thanks!").also { stage = END_DIALOGUE } + 1002 -> npcl(core.game.dialogue.FacialExpression.ASKING, "Yeah, that's the one, alright!").also { stage++ } + 1003 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I'll tell you what.. if you can get ahold of the resources needed to make one, I'm sure me or one of my kin would craft it for you.").also { stage++ } + 1004 -> playerl(core.game.dialogue.FacialExpression.ASKING, "You'd just do that for me? For free?").also { stage++ } + 1005 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I don't see why not. We used to make these for fun and hand them out to adventurers all the time.").also { stage++ } + 1006 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Well, thanks! So.. what do we need to make one?").also { stage++ } + 1007 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Looking at the blueprint here...").also { stage++ } + 1008 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, it seems we need a ring mould, a silver bar, a cut dragonstone and 200 stardust. Oh, and make sure to bring this blueprint with you.").also { stage++ } + 1009 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks, I'll get right on it!").also { stage++ } + 1010 -> playerl(core.game.dialogue.FacialExpression.ASKING, "So just to make sure I've got it right, I need a ring mould, a silver bar, a cut dragonstone and 200 stardust, as well as this blueprint?").also { stage++ } + 1011 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Yeah, you've got it, human. Any of my kin should be able to do this for you.").also { stage++; setAttribute(player, "/save:star-ring:bp-shown", true) } + 1012 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks!").also { stage = END_DIALOGUE } - 2000 -> npcl(FacialExpression.NEUTRAL, "Yes, did you bring the components to make it, human?").also { stage++ } + 2000 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, did you bring the components to make it, human?").also { stage++ } 2001 -> if(inInventory(player, Items.DRAGONSTONE_1615,1) && inInventory(player, Items.RING_MOULD_1592, 1) && inInventory(player, Items.STARDUST_13727, 200) && inInventory(player, Items.SILVER_BAR_2355, 1)){ - playerl(FacialExpression.FRIENDLY, "Yes, I have them right here, friend.").also { stage++ } + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, I have them right here, friend.").also { stage++ } } else { - playerl(FacialExpression.HALF_GUILTY, "I'm afraid not, what did I need again?").also { stage = 2100 } + playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I'm afraid not, what did I need again?").also { stage = 2100 } } - 2002 -> npcl(FacialExpression.NEUTRAL, "Excellent, give me just a moment here...").also { stage++ } + 2002 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Excellent, give me just a moment here...").also { stage++ } 2003 -> sendDialogue("You watch as the Star Sprite casts some strange spell.").also { stage++ } 2004 -> if(removeItem(player, Items.SILVER_BAR_2355, Container.INVENTORY) && removeItem(player, Items.DRAGONSTONE_1615, Container.INVENTORY) && removeItem(player, Item(Items.STARDUST_13727, 200), Container.INVENTORY)){ addItem(player, Items.RING_OF_THE_STAR_SPRITE_14652) player.dialogueInterpreter.sendItemMessage(Items.RING_OF_THE_STAR_SPRITE_14652, "The Star Sprite hands you a strange ring.").also { stage++ } } else end() - 2005 -> npcl(FacialExpression.NEUTRAL, "There you go, I hope you enjoy it!").also { stage++ } - 2006 -> playerl(FacialExpression.FRIENDLY, "Thank you!").also { stage = END_DIALOGUE } + 2005 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "There you go, I hope you enjoy it!").also { stage++ } + 2006 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Thank you!").also { stage = END_DIALOGUE } - 2100 -> npcl(FacialExpression.NEUTRAL, "A ring mould, a cut dragonstone, a silver bar and 200 stardust.").also { stage = END_DIALOGUE } + 2100 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "A ring mould, a cut dragonstone, a silver bar and 200 stardust.").also { stage = END_DIALOGUE } } return true } diff --git a/Server/src/main/java/core/game/content/ttrail/ClueLevel.java b/Server/src/main/content/global/activity/ttrail/ClueLevel.java similarity index 90% rename from Server/src/main/java/core/game/content/ttrail/ClueLevel.java rename to Server/src/main/content/global/activity/ttrail/ClueLevel.java index 68934bdc1..1315ca010 100644 --- a/Server/src/main/java/core/game/content/ttrail/ClueLevel.java +++ b/Server/src/main/content/global/activity/ttrail/ClueLevel.java @@ -1,26 +1,22 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; -import core.game.component.CloseEvent; import core.game.component.Component; import core.game.container.access.InterfaceContainer; -import core.game.node.entity.npc.drop.DropFrequency; import core.game.node.entity.player.Player; -import core.game.node.item.ChanceItem; import core.game.node.item.Item; -import core.game.node.item.WeightedChanceItem; import org.rs09.consts.Items; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.tools.RandomFunction; import java.text.NumberFormat; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.List; -import api.IfaceSettingsBuilder; +import core.api.IfaceSettingsBuilder; -import rs09.game.system.config.ClueRewardParser; +import core.game.system.config.ClueRewardParser; + +import static core.api.ContentAPIKt.addItemOrDrop; /** * A clue scroll level. @@ -74,7 +70,7 @@ public enum ClueLevel { long rewardValue = 0L; for (Item reward : rewards) { - api.ContentAPIKt.addItemOrDrop(player, reward.getId(), reward.getAmount()); + addItemOrDrop(player, reward.getId(), reward.getAmount()); rewardValue += reward.getValue(); } diff --git a/Server/src/main/java/core/game/content/ttrail/ClueScrollPlugin.java b/Server/src/main/content/global/activity/ttrail/ClueScrollPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/ClueScrollPlugin.java rename to Server/src/main/content/global/activity/ttrail/ClueScrollPlugin.java index f6127ff5d..5eeedb3c7 100644 --- a/Server/src/main/java/core/game/content/ttrail/ClueScrollPlugin.java +++ b/Server/src/main/content/global/activity/ttrail/ClueScrollPlugin.java @@ -1,9 +1,9 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/content/ttrail/CoordinateCluePlugin.java b/Server/src/main/content/global/activity/ttrail/CoordinateCluePlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/ttrail/CoordinateCluePlugin.java rename to Server/src/main/content/global/activity/ttrail/CoordinateCluePlugin.java index 6f7b48c5e..b09067d27 100644 --- a/Server/src/main/java/core/game/content/ttrail/CoordinateCluePlugin.java +++ b/Server/src/main/content/global/activity/ttrail/CoordinateCluePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/ttrail/CoordinateClueScroll.java b/Server/src/main/content/global/activity/ttrail/CoordinateClueScroll.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/CoordinateClueScroll.java rename to Server/src/main/content/global/activity/ttrail/CoordinateClueScroll.java index c3a4476ce..b3c43a196 100644 --- a/Server/src/main/java/core/game/content/ttrail/CoordinateClueScroll.java +++ b/Server/src/main/content/global/activity/ttrail/CoordinateClueScroll.java @@ -1,4 +1,4 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/ttrail/EmoteCluePlugin.java b/Server/src/main/content/global/activity/ttrail/EmoteCluePlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/ttrail/EmoteCluePlugin.java rename to Server/src/main/content/global/activity/ttrail/EmoteCluePlugin.java index fbedcc260..9a327e41a 100644 --- a/Server/src/main/java/core/game/content/ttrail/EmoteCluePlugin.java +++ b/Server/src/main/content/global/activity/ttrail/EmoteCluePlugin.java @@ -1,9 +1,9 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.node.entity.player.link.emote.Emotes; import core.game.world.map.zone.ZoneBorders; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Initializes the emote clue plugins. diff --git a/Server/src/main/java/core/game/content/ttrail/EmoteClueScroll.java b/Server/src/main/content/global/activity/ttrail/EmoteClueScroll.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/EmoteClueScroll.java rename to Server/src/main/content/global/activity/ttrail/EmoteClueScroll.java index b559fae2f..e4e9100d8 100644 --- a/Server/src/main/java/core/game/content/ttrail/EmoteClueScroll.java +++ b/Server/src/main/content/global/activity/ttrail/EmoteClueScroll.java @@ -1,4 +1,4 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/ttrail/MapCluePlugin.java b/Server/src/main/content/global/activity/ttrail/MapCluePlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/ttrail/MapCluePlugin.java rename to Server/src/main/content/global/activity/ttrail/MapCluePlugin.java index c82e0343a..b1713ff8c 100644 --- a/Server/src/main/java/core/game/content/ttrail/MapCluePlugin.java +++ b/Server/src/main/content/global/activity/ttrail/MapCluePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/ttrail/MapClueScroll.java b/Server/src/main/content/global/activity/ttrail/MapClueScroll.java similarity index 95% rename from Server/src/main/java/core/game/content/ttrail/MapClueScroll.java rename to Server/src/main/content/global/activity/ttrail/MapClueScroll.java index 67312590b..2b772e8ba 100644 --- a/Server/src/main/java/core/game/content/ttrail/MapClueScroll.java +++ b/Server/src/main/content/global/activity/ttrail/MapClueScroll.java @@ -1,7 +1,7 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; -import core.game.content.global.action.DigAction; -import core.game.content.global.action.DigSpadeHandler; +import core.game.global.action.DigAction; +import core.game.global.action.DigSpadeHandler; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/content/ttrail/SaradominWizardNPC.java b/Server/src/main/content/global/activity/ttrail/SaradominWizardNPC.java similarity index 94% rename from Server/src/main/java/core/game/content/ttrail/SaradominWizardNPC.java rename to Server/src/main/content/global/activity/ttrail/SaradominWizardNPC.java index 13c7aaab0..b2b357690 100644 --- a/Server/src/main/java/core/game/content/ttrail/SaradominWizardNPC.java +++ b/Server/src/main/content/global/activity/ttrail/SaradominWizardNPC.java @@ -1,7 +1,7 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; import core.game.node.entity.npc.AbstractNPC; @@ -10,8 +10,8 @@ import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Plugin; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles saradomin npc. diff --git a/Server/src/main/java/core/game/content/ttrail/TreasureTrailManager.java b/Server/src/main/content/global/activity/ttrail/TreasureTrailManager.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/TreasureTrailManager.java rename to Server/src/main/content/global/activity/ttrail/TreasureTrailManager.java index 4a7083b7a..e9a68dd1b 100644 --- a/Server/src/main/java/core/game/content/ttrail/TreasureTrailManager.java +++ b/Server/src/main/content/global/activity/ttrail/TreasureTrailManager.java @@ -1,7 +1,7 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; -import api.LoginListener; -import api.PersistPlayer; +import core.api.LoginListener; +import core.api.PersistPlayer; import core.game.node.entity.player.Player; import core.tools.RandomFunction; @@ -9,8 +9,6 @@ import org.jetbrains.annotations.NotNull; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import java.nio.ByteBuffer; - /** * Handles the treasure trail of a player. * @author Vexia diff --git a/Server/src/main/java/core/game/content/ttrail/TreasureTrailPlugin.java b/Server/src/main/content/global/activity/ttrail/TreasureTrailPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/TreasureTrailPlugin.java rename to Server/src/main/content/global/activity/ttrail/TreasureTrailPlugin.java index 6379cf050..607eb169a 100644 --- a/Server/src/main/java/core/game/content/ttrail/TreasureTrailPlugin.java +++ b/Server/src/main/content/global/activity/ttrail/TreasureTrailPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -9,7 +9,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.item.GroundItem; import core.game.node.item.Item; import core.game.node.item.ItemPlugin; @@ -17,7 +17,7 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the clue scroll options. diff --git a/Server/src/main/java/core/game/content/ttrail/UriNPC.java b/Server/src/main/content/global/activity/ttrail/UriNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/ttrail/UriNPC.java rename to Server/src/main/content/global/activity/ttrail/UriNPC.java index 5e264071f..64f1b7ae4 100644 --- a/Server/src/main/java/core/game/content/ttrail/UriNPC.java +++ b/Server/src/main/content/global/activity/ttrail/UriNPC.java @@ -1,6 +1,6 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; @@ -9,7 +9,7 @@ import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/ttrail/ZamorakWizardNPC.java b/Server/src/main/content/global/activity/ttrail/ZamorakWizardNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/ttrail/ZamorakWizardNPC.java rename to Server/src/main/content/global/activity/ttrail/ZamorakWizardNPC.java index c4e6acd9e..3b1dae94c 100644 --- a/Server/src/main/java/core/game/content/ttrail/ZamorakWizardNPC.java +++ b/Server/src/main/content/global/activity/ttrail/ZamorakWizardNPC.java @@ -1,7 +1,7 @@ -package core.game.content.ttrail; +package content.global.activity.ttrail; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/ame/RandomEventManager.kt b/Server/src/main/content/global/ame/RandomEventManager.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/ame/RandomEventManager.kt rename to Server/src/main/content/global/ame/RandomEventManager.kt index bc0c62847..24cb490ee 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/RandomEventManager.kt +++ b/Server/src/main/content/global/ame/RandomEventManager.kt @@ -1,31 +1,31 @@ -package rs09.game.content.ame +package content.global.ame -import api.Commands -import api.LoginListener -import api.events.EventHook -import api.events.TickEvent -import api.getAttribute -import api.setAttribute +import core.api.Commands +import core.api.LoginListener +import core.game.event.EventHook +import core.game.event.TickEvent +import core.api.getAttribute +import core.api.setAttribute import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.game.world.map.zone.ZoneRestriction import core.tools.RandomFunction -import rs09.game.Event -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.api.Event +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.game.world.repository.Repository import kotlin.random.Random class RandomEventManager(val player: Player? = null) : LoginListener, EventHook, Commands { - var event: RandomEventNPC? = null + var event: content.global.ame.RandomEventNPC? = null var enabled: Boolean = false var nextSpawn = 0 val skills = arrayOf("WoodcuttingSkillPulse","FishingPulse","MiningSkillPulse","BoneBuryingOptionPlugin") override fun login(player: Player) { if(player.isArtificial) return - val instance = RandomEventManager(player) + val instance = content.global.ame.RandomEventManager(player) player.hook(Event.Tick, instance) setAttribute(player, "random-manager", instance) instance.rollNextSpawn() @@ -46,18 +46,18 @@ class RandomEventManager(val player: Player? = null) : LoginListener, EventHook< nextSpawn = GameWorld.ticks + 3000 return } - if (getAttribute(player, "re-npc", null) != null) return + if (getAttribute(player, "re-npc", null) != null) return val currentAction = player.pulseManager.current?.toString() ?: "None" - val ame: RandomEvents = if(currentAction.contains("WoodcuttingSkillPulse") && Random.nextBoolean()){ - RandomEvents.TREE_SPIRIT + val ame: content.global.ame.RandomEvents = if(currentAction.contains("WoodcuttingSkillPulse") && Random.nextBoolean()){ + content.global.ame.RandomEvents.TREE_SPIRIT } else if(currentAction.contains("FishingPulse") && Random.nextBoolean()){ - RandomEvents.RIVER_TROLL + content.global.ame.RandomEvents.RIVER_TROLL } else if(currentAction.contains("MiningSkillPulse") && Random.nextBoolean()){ - RandomEvents.ROCK_GOLEM + content.global.ame.RandomEvents.ROCK_GOLEM } else if(currentAction.contains("BoneBuryingOptionPlugin") && Random.nextBoolean()){ - RandomEvents.SHADE + content.global.ame.RandomEvents.SHADE } else { - RandomEvents.values().filter { it.type != "skill" }.random() + content.global.ame.RandomEvents.values().filter { it.type != "skill" }.random() } event = ame.npc.create(player,ame.loot,ame.type) if (event!!.spawnLocation == null) { @@ -71,7 +71,7 @@ class RandomEventManager(val player: Player? = null) : LoginListener, EventHook< } private fun rollNextSpawn() { - nextSpawn = GameWorld.ticks + RandomFunction.random(MIN_DELAY_TICKS, MAX_DELAY_TICKS) + nextSpawn = GameWorld.ticks + RandomFunction.random(content.global.ame.RandomEventManager.Companion.MIN_DELAY_TICKS, content.global.ame.RandomEventManager.Companion.MAX_DELAY_TICKS) } override fun defineCommands() { @@ -82,16 +82,16 @@ class RandomEventManager(val player: Player? = null) : LoginListener, EventHook< if (target == null) reject(player, "Unable to find player $username!") - getInstance(target!!)?.fireEvent() + content.global.ame.RandomEventManager.Companion.getInstance(target!!)?.fireEvent() } } companion object { const val AVG_DELAY_TICKS = 6000 // 60 minutes - const val MIN_DELAY_TICKS = AVG_DELAY_TICKS / 2 - const val MAX_DELAY_TICKS = MIN_DELAY_TICKS + AVG_DELAY_TICKS // window of 60 min centered on 60 min (30 to 90 min) + const val MIN_DELAY_TICKS = content.global.ame.RandomEventManager.Companion.AVG_DELAY_TICKS / 2 + const val MAX_DELAY_TICKS = content.global.ame.RandomEventManager.Companion.MIN_DELAY_TICKS + content.global.ame.RandomEventManager.Companion.AVG_DELAY_TICKS // window of 60 min centered on 60 min (30 to 90 min) - @JvmStatic fun getInstance(player: Player): RandomEventManager? + @JvmStatic fun getInstance(player: Player): content.global.ame.RandomEventManager? { return getAttribute(player, "random-manager", null) } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/RandomEventNPC.kt b/Server/src/main/content/global/ame/RandomEventNPC.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/ame/RandomEventNPC.kt rename to Server/src/main/content/global/ame/RandomEventNPC.kt index 82e8be15d..507f24a8a 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/RandomEventNPC.kt +++ b/Server/src/main/content/global/ame/RandomEventNPC.kt @@ -1,6 +1,7 @@ -package rs09.game.content.ame +package content.global.ame -import api.poofClear +import content.global.ame.events.MysteriousOldManNPC +import core.api.poofClear import core.game.interaction.MovementPulse import core.game.node.entity.impl.PulseType import core.game.node.entity.npc.NPC @@ -10,10 +11,9 @@ import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.map.path.Pathfinder import core.game.world.update.flag.context.Graphics -import discord.Discord -import rs09.game.content.ame.events.MysteriousOldManNPC -import rs09.game.content.global.WeightBasedTable -import rs09.tools.secondsToTicks +import core.integrations.discord.Discord +import core.api.utils.WeightBasedTable +import core.tools.secondsToTicks import kotlin.random.Random import kotlin.reflect.full.createInstance @@ -39,7 +39,7 @@ abstract class RandomEventNPC(id: Int) : NPC(id) { open fun terminate() { finalized = true pulseManager.clear(PulseType.STANDARD) - RandomEventManager.getInstance(player)?.event = null + content.global.ame.RandomEventManager.getInstance(player)?.event = null if (initialized) { poofClear(this) } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt b/Server/src/main/content/global/ame/RandomEvents.kt similarity index 65% rename from Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt rename to Server/src/main/content/global/ame/RandomEvents.kt index 5bd7ba726..7c586596d 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt +++ b/Server/src/main/content/global/ame/RandomEvents.kt @@ -1,25 +1,25 @@ -package rs09.game.content.ame +package content.global.ame import org.rs09.consts.Items -import rs09.game.content.ame.events.MysteriousOldManNPC -import rs09.game.content.ame.events.certer.CerterNPC -import rs09.game.content.ame.events.drilldemon.SeargentDamienNPC -import rs09.game.content.ame.events.evilchicken.EvilChickenNPC -import rs09.game.content.ame.events.genie.GenieNPC -import rs09.game.content.ame.events.rivertroll.RiverTrollRENPC -import rs09.game.content.ame.events.rockgolem.RockGolemRENPC -import rs09.game.content.ame.events.sandwichlady.SandwichLadyRENPC -import rs09.game.content.ame.events.shade.ShadeRENPC -import rs09.game.content.ame.events.treespirit.TreeSpiritRENPC -import rs09.game.content.ame.events.zombie.ZombieRENPC +import content.global.ame.events.MysteriousOldManNPC +import content.global.ame.events.certer.CerterNPC +import content.global.ame.events.drilldemon.SeargentDamienNPC +import content.global.ame.events.evilchicken.EvilChickenNPC +import content.global.ame.events.genie.GenieNPC +import content.global.ame.events.rivertroll.RiverTrollRENPC +import content.global.ame.events.rockgolem.RockGolemRENPC +import content.global.ame.events.sandwichlady.SandwichLadyRENPC +import content.global.ame.events.shade.ShadeRENPC +import content.global.ame.events.treespirit.TreeSpiritRENPC +import content.global.ame.events.zombie.ZombieRENPC -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem enum class RandomEvents(val npc: RandomEventNPC, val loot: WeightBasedTable? = null) { SANDWICH_LADY(SandwichLadyRENPC()), GENIE(GenieNPC()), - CERTER(CerterNPC(),WeightBasedTable.create( + CERTER(CerterNPC(), WeightBasedTable.create( WeightedItem(Items.UNCUT_SAPPHIRE_1623,1,1,3.4), WeightedItem(Items.KEBAB_1971,1,1,1.7), WeightedItem(Items.UNCUT_EMERALD_1621,1,1,1.7), diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManDialogue.kt b/Server/src/main/content/global/ame/events/MysteriousOldManDialogue.kt similarity index 72% rename from Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManDialogue.kt rename to Server/src/main/content/global/ame/events/MysteriousOldManDialogue.kt index 5a1591a8b..5366ee17b 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManDialogue.kt +++ b/Server/src/main/content/global/ame/events/MysteriousOldManDialogue.kt @@ -1,9 +1,8 @@ -package rs09.game.content.ame.events +package content.global.ame.events import core.game.node.entity.player.Player -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.ame.events.supriseexam.SurpriseExamUtils -import rs09.game.content.dialogue.DialogueFile +import content.global.ame.events.supriseexam.SurpriseExamUtils +import core.game.dialogue.DialogueFile class MysteriousOldManDialogue(val type: String) : DialogueFile() { @@ -23,11 +22,11 @@ class MysteriousOldManDialogue(val type: String) : DialogueFile() { 1 -> { end() teleport(player!!,type) - RandomEventManager.getInstance(player!!)?.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)?.event?.terminate() } 2 -> { end() - RandomEventManager.getInstance(player!!)?.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)?.event?.terminate() } } } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManNPC.kt b/Server/src/main/content/global/ame/events/MysteriousOldManNPC.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManNPC.kt rename to Server/src/main/content/global/ame/events/MysteriousOldManNPC.kt index ce177eca3..3ed7289b1 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/MysteriousOldManNPC.kt +++ b/Server/src/main/content/global/ame/events/MysteriousOldManNPC.kt @@ -1,10 +1,10 @@ -package rs09.game.content.ame.events +package content.global.ame.events +import content.global.ame.RandomEventNPC import core.game.node.entity.npc.NPC import core.tools.RandomFunction import org.rs09.consts.NPCs -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import core.api.utils.WeightBasedTable class MysteriousOldManNPC(var type: String = "", override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.MYSTERIOUS_OLD_MAN_410) { override fun init() { diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterDialogue.kt b/Server/src/main/content/global/ame/events/certer/CerterDialogue.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterDialogue.kt rename to Server/src/main/content/global/ame/events/certer/CerterDialogue.kt index 2de88c610..25ac73fdf 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterDialogue.kt +++ b/Server/src/main/content/global/ame/events/certer/CerterDialogue.kt @@ -1,12 +1,11 @@ -package rs09.game.content.ame.events.certer +package content.global.ame.events.certer -import api.addItemOrDrop +import core.api.addItemOrDrop import core.game.component.Component import core.game.node.entity.impl.PulseType import core.game.node.entity.player.link.emote.Emotes -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class CerterDialogue(val initial: Boolean) : DialogueFile() { val CERTER_INTERFACE = 184 @@ -31,13 +30,13 @@ class CerterDialogue(val initial: Boolean) : DialogueFile() { npc("Sorry, I don't think so.").also { player!!.setAttribute("certer:reward", true) stage = END_DIALOGUE - RandomEventManager.getInstance(player!!)?.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)?.event?.terminate() } } else { npc("Thank you, I hope you like your present. I must be", "leaving now though.").also { player!!.setAttribute("certer:reward", true) stage = END_DIALOGUE - RandomEventManager.getInstance(player!!)!!.event!!.loot!!.roll().forEach { addItemOrDrop(player!!, it.id, it.amount) } + content.global.ame.RandomEventManager.getInstance(player!!)!!.event!!.loot!!.roll().forEach { addItemOrDrop(player!!, it.id, it.amount) } } } } @@ -52,7 +51,7 @@ class CerterDialogue(val initial: Boolean) : DialogueFile() { // Wave goodbye npc!!.animate(Emotes.WAVE.animation) // Terminate the event - RandomEventManager.getInstance(player!!)?.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)?.event?.terminate() } else { player!!.setAttribute("random:pause", false) } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterEventInterface.kt b/Server/src/main/content/global/ame/events/certer/CerterEventInterface.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterEventInterface.kt rename to Server/src/main/content/global/ame/events/certer/CerterEventInterface.kt index 9cfcef0ad..e64cf3403 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterEventInterface.kt +++ b/Server/src/main/content/global/ame/events/certer/CerterEventInterface.kt @@ -1,10 +1,10 @@ -package rs09.game.content.ame.events.certer +package content.global.ame.events.certer +import content.global.ame.RandomEventManager import core.game.node.entity.player.Player import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventManager -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class CerterEventInterface : InterfaceListener { val CERTER_INTERFACE = 184 diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterNPC.kt b/Server/src/main/content/global/ame/events/certer/CerterNPC.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterNPC.kt rename to Server/src/main/content/global/ame/events/certer/CerterNPC.kt index 7f4fe4fdc..daf3bc822 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/certer/CerterNPC.kt +++ b/Server/src/main/content/global/ame/events/certer/CerterNPC.kt @@ -1,11 +1,12 @@ -package rs09.game.content.ame.events.certer +package content.global.ame.events.certer import core.game.node.entity.npc.NPC import core.game.node.entity.player.link.emote.Emotes import core.tools.RandomFunction import org.rs09.consts.NPCs -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import content.global.ame.RandomEventNPC +import core.api.animate +import core.api.utils.WeightBasedTable class CerterNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.GILES_2538) { lateinit var pName: String @@ -44,6 +45,6 @@ class CerterNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NP player.setAttribute("random:pause", false) player.setAttribute("certer:reward", false) sendChat(phrases[0]) - api.animate(this, Emotes.BOW.animation, true) + animate(this, Emotes.BOW.animation, true) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonListeners.kt b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonListeners.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonListeners.kt rename to Server/src/main/content/global/ame/events/drilldemon/DrillDemonListeners.kt index 7867a8a46..5f7881710 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonListeners.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonListeners.kt @@ -1,10 +1,10 @@ -package rs09.game.content.ame.events.drilldemon +package content.global.ame.events.drilldemon import core.game.node.entity.npc.NPC import core.game.system.task.Pulse import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class DrillDemonListeners : InteractionListener { val MATS = intArrayOf(10076,10077,10078,10079) diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonUtils.kt b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonUtils.kt rename to Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt index c1398f00a..c1331420e 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/DrillDemonUtils.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/DrillDemonUtils.kt @@ -1,7 +1,7 @@ -package rs09.game.content.ame.events.drilldemon +package content.global.ame.events.drilldemon -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager import core.game.node.item.Item @@ -53,7 +53,7 @@ object DrillDemonUtils { player.varpManager.get(DD_SIGN_VARP).setVarbit(tempOffsetList[i],tempList[i]).send(player) } - player.dialogueInterpreter.sendDialogues(NPCs.SERGEANT_DAMIEN_2790,FacialExpression.OLD_NORMAL,when(task){ + player.dialogueInterpreter.sendDialogues(NPCs.SERGEANT_DAMIEN_2790, core.game.dialogue.FacialExpression.OLD_NORMAL,when(task){ DD_SIGN_JOG -> "Get over there and jog in place!" DD_SIGN_JUMP -> "I need 40 jumping jacks stat!" DD_SIGN_PUSHUP -> "Get over there and give me 20 pushups!" diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt similarity index 63% rename from Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt rename to Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt index 2c409c896..67971e71b 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDefaultPlugin.kt @@ -1,14 +1,14 @@ -package rs09.game.content.ame.events.drilldemon +package content.global.ame.events.drilldemon -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE @Initializable -class SeargentDamienDefaultPlugin(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class SeargentDamienDefaultPlugin(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return SeargentDamienDefaultPlugin(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDialogue.kt b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDialogue.kt rename to Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDialogue.kt index 477b7c2cf..6ab770f21 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienDialogue.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienDialogue.kt @@ -1,18 +1,17 @@ -package rs09.game.content.ame.events.drilldemon +package content.global.ame.events.drilldemon -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.system.task.Pulse -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class SeargentDamienDialogue(val isCorrect: Boolean = false) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { var correctAmt = player!!.getAttribute(DrillDemonUtils.DD_CORRECT_COUNTER,0) - if(correctAmt == 4 && RandomEventManager.getInstance(player!!)!!.event == null) { + if(correctAmt == 4 && content.global.ame.RandomEventManager.getInstance(player!!)!!.event == null) { when(stage){ - 0 -> npc(FacialExpression.OLD_NORMAL,"My god you actually did it, you limp","wristed worm-bodied MAGGOT! Take this","and get out of my sight.").also { stage++ } + 0 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"My god you actually did it, you limp","wristed worm-bodied MAGGOT! Take this","and get out of my sight.").also { stage++ } 1 -> { end() player!!.unlock() @@ -25,9 +24,9 @@ class SeargentDamienDialogue(val isCorrect: Boolean = false) : DialogueFile() { }) } } - } else if(RandomEventManager.getInstance(player!!)!!.event == null){ + } else if(content.global.ame.RandomEventManager.getInstance(player!!)!!.event == null){ when(stage){ - START_DIALOGUE -> if(isCorrect) npc(FacialExpression.OLD_NORMAL,"Good! Now...").also { stage++ } else npc(FacialExpression.OLD_ANGRY1,"WRONG, MAGGOT!").also { stage++ } + START_DIALOGUE -> if(isCorrect) npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Good! Now...").also { stage++ } else npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"WRONG, MAGGOT!").also { stage++ } 1 -> { end() DrillDemonUtils.changeSignsAndAssignTask(player!!) @@ -35,18 +34,18 @@ class SeargentDamienDialogue(val isCorrect: Boolean = false) : DialogueFile() { } } else { when(stage){ - START_DIALOGUE -> npc(FacialExpression.OLD_NORMAL,"Would you like to come work out?").also { stage++ } + START_DIALOGUE -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Would you like to come work out?").also { stage++ } 1 -> options("Yes, please.", "No, thanks.").also { stage++ } 2 -> when(buttonID){ 1 -> { end() DrillDemonUtils.teleport(player!!) - RandomEventManager.getInstance(player!!)!!.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)!!.event?.terminate() stage = END_DIALOGUE } 2 -> { end() - RandomEventManager.getInstance(player!!)!!.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)!!.event?.terminate() stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienNPC.kt b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienNPC.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienNPC.kt rename to Server/src/main/content/global/ame/events/drilldemon/SeargentDamienNPC.kt index e104e82a7..36d8cb9c5 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/drilldemon/SeargentDamienNPC.kt +++ b/Server/src/main/content/global/ame/events/drilldemon/SeargentDamienNPC.kt @@ -1,10 +1,10 @@ -package rs09.game.content.ame.events.drilldemon +package content.global.ame.events.drilldemon import core.game.node.entity.npc.NPC import core.tools.RandomFunction import org.rs09.consts.NPCs -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable class SeargentDamienNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.SERGEANT_DAMIEN_2790) { diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/evilchicken/EvilChickenNPC.kt b/Server/src/main/content/global/ame/events/evilchicken/EvilChickenNPC.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/content/ame/events/evilchicken/EvilChickenNPC.kt rename to Server/src/main/content/global/ame/events/evilchicken/EvilChickenNPC.kt index fe9d31d7b..56131f8fb 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/evilchicken/EvilChickenNPC.kt +++ b/Server/src/main/content/global/ame/events/evilchicken/EvilChickenNPC.kt @@ -1,14 +1,14 @@ -package rs09.game.content.ame.events.evilchicken +package content.global.ame.events.evilchicken -import api.getWorldTicks +import core.api.getWorldTicks import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable import java.lang.Integer.max val ids = 2463..2468 diff --git a/Server/src/main/content/global/ame/events/genie/GenieDialogue.kt b/Server/src/main/content/global/ame/events/genie/GenieDialogue.kt new file mode 100644 index 000000000..829e0ecc4 --- /dev/null +++ b/Server/src/main/content/global/ame/events/genie/GenieDialogue.kt @@ -0,0 +1,16 @@ +package content.global.ame.events.genie + +import core.api.* +import core.game.dialogue.FacialExpression +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE + +class GenieDialogue : DialogueFile() { + override fun handle(componentID: Int, buttonID: Int) { + val assigned = player!!.getAttribute("genie:item",0) + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Ah, so you are there, ${player!!.name.capitalize()}. I'm so glad you summoned me. Please take this lamp and make your wish.") + addItemOrDrop(player!!, assigned) + content.global.ame.RandomEventManager.getInstance(player!!)!!.event?.terminate() + stage = END_DIALOGUE + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt b/Server/src/main/content/global/ame/events/genie/GenieNPC.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt rename to Server/src/main/content/global/ame/events/genie/GenieNPC.kt index c111da800..1f1f270e8 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt +++ b/Server/src/main/content/global/ame/events/genie/GenieNPC.kt @@ -1,36 +1,36 @@ -package rs09.game.content.ame.events.genie - -import core.game.node.entity.npc.NPC -import core.tools.RandomFunction -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable - -class GenieNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.GENIE_409) { - val phrases = arrayOf("Greetings, @name!","Ehem... Master @name?","Are you there, Master @name?","No one ignores me!") - var assigned_item = 0 - val items = arrayOf(Items.LAMP_2528) - - override fun tick() { - if(RandomFunction.random(1,15) == 5){ - sendChat(phrases.random().replace("@name",player.name.capitalize())) - } - super.tick() - } - - override fun init() { - super.init() - assignItem() - sendChat(phrases.random().replace("@name",player.name.capitalize())) - } - - fun assignItem(){ - assigned_item = items.random() - player.setAttribute("genie:item",assigned_item) - } - - override fun talkTo(npc: NPC) { - player.dialogueInterpreter.open(GenieDialogue(),npc) - } +package content.global.ame.events.genie + +import core.game.node.entity.npc.NPC +import core.tools.RandomFunction +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable + +class GenieNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.GENIE_409) { + val phrases = arrayOf("Greetings, @name!","Ehem... Master @name?","Are you there, Master @name?","No one ignores me!") + var assigned_item = 0 + val items = arrayOf(Items.LAMP_2528) + + override fun tick() { + if(RandomFunction.random(1,15) == 5){ + sendChat(phrases.random().replace("@name",player.name.capitalize())) + } + super.tick() + } + + override fun init() { + super.init() + assignItem() + sendChat(phrases.random().replace("@name",player.name.capitalize())) + } + + fun assignItem(){ + assigned_item = items.random() + player.setAttribute("genie:item",assigned_item) + } + + override fun talkTo(npc: NPC) { + player.dialogueInterpreter.open(GenieDialogue(),npc) + } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/rivertroll/RiverTrollRENPC.kt b/Server/src/main/content/global/ame/events/rivertroll/RiverTrollRENPC.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/content/ame/events/rivertroll/RiverTrollRENPC.kt rename to Server/src/main/content/global/ame/events/rivertroll/RiverTrollRENPC.kt index b1f69a2e6..b69ec7abe 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/rivertroll/RiverTrollRENPC.kt +++ b/Server/src/main/content/global/ame/events/rivertroll/RiverTrollRENPC.kt @@ -1,9 +1,9 @@ -package rs09.game.content.ame.events.rivertroll +package content.global.ame.events.rivertroll import core.game.node.entity.Entity import core.game.node.entity.npc.NPC -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable import java.lang.Integer.max diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/rockgolem/RockGolemRENPC.kt b/Server/src/main/content/global/ame/events/rockgolem/RockGolemRENPC.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/ame/events/rockgolem/RockGolemRENPC.kt rename to Server/src/main/content/global/ame/events/rockgolem/RockGolemRENPC.kt index 207c6fca0..82fda9bf4 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/rockgolem/RockGolemRENPC.kt +++ b/Server/src/main/content/global/ame/events/rockgolem/RockGolemRENPC.kt @@ -1,17 +1,9 @@ -package rs09.game.content.ame.events.rockgolem +package content.global.ame.events.rockgolem -import api.addItemOrDrop -import api.getWorldTicks -import api.produceGroundItem import core.game.node.entity.Entity import core.game.node.entity.npc.NPC -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.tools.RandomFunction -import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable import kotlin.math.max diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyDialogue.kt b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyDialogue.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyDialogue.kt rename to Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyDialogue.kt index 96e1a76e1..7cfc456ea 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyDialogue.kt +++ b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyDialogue.kt @@ -1,13 +1,12 @@ -package rs09.game.content.ame.events.sandwichlady +package content.global.ame.events.sandwichlady import core.cache.def.impl.ItemDefinition import core.game.component.Component import core.game.node.entity.combat.ImpactHandler import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class SandwichLadyDialogue(val isChoice: Boolean) : DialogueFile() { val SANDWICH_INTERFACE = 297 @@ -27,13 +26,13 @@ class SandwichLadyDialogue(val isChoice: Boolean) : DialogueFile() { 0 -> if(choice != assigned){ npc!!.sendChat("That's not what I said you could have!") player!!.impactHandler.manualHit(npc,3,ImpactHandler.HitsplatType.NORMAL) - RandomEventManager.getInstance(player!!)!!.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)!!.event?.terminate() } else { npc("Here you are, dear. I hope you enjoy it!") if(!player!!.inventory.add(Item(assigned))){ GroundItemManager.create(Item(assigned),player) } - RandomEventManager.getInstance(player!!)!!.event?.terminate() + content.global.ame.RandomEventManager.getInstance(player!!)!!.event?.terminate() stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyInterface.kt b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyInterface.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyInterface.kt rename to Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyInterface.kt index a28bb31fe..9b3c607df 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyInterface.kt +++ b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyInterface.kt @@ -1,11 +1,10 @@ -package rs09.game.content.ame.events.sandwichlady +package content.global.ame.events.sandwichlady import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventManager -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener -class SandwichLadyInterface : InterfaceListener{ +class SandwichLadyInterface : InterfaceListener { val SANDWICH_INTERFACE = 297 val baguette = Items.BAGUETTE_6961 @@ -32,7 +31,7 @@ class SandwichLadyInterface : InterfaceListener{ player.setAttribute("sandwich-lady:choice",item.id) player.interfaceManager.close() - player.dialogueInterpreter.open(SandwichLadyDialogue(true), RandomEventManager.getInstance(player)!!.event) + player.dialogueInterpreter.open(SandwichLadyDialogue(true), content.global.ame.RandomEventManager.getInstance(player)!!.event) return@on true } } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyRENPC.kt b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyRENPC.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyRENPC.kt rename to Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyRENPC.kt index dd30aac19..0eef0f2f0 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/sandwichlady/SandwichLadyRENPC.kt +++ b/Server/src/main/content/global/ame/events/sandwichlady/SandwichLadyRENPC.kt @@ -1,11 +1,11 @@ -package rs09.game.content.ame.events.sandwichlady +package content.global.ame.events.sandwichlady import core.game.node.entity.npc.NPC import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable class SandwichLadyRENPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.SANDWICH_LADY_3117) { val phrases = arrayOf("Hello, @name, can you hear me?","Sandwiches, @name!","Are you ignoring me @name??","Yoohoo! Sandwiches, @name!","Hello, @name?", "Come get your sandwiches @name!", "How could you ignore me like this @name?!", "Do you even want your sandwiches, @name?") diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/shade/ShadeRENPC.kt b/Server/src/main/content/global/ame/events/shade/ShadeRENPC.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/ame/events/shade/ShadeRENPC.kt rename to Server/src/main/content/global/ame/events/shade/ShadeRENPC.kt index 12de174fe..8fecda80c 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/shade/ShadeRENPC.kt +++ b/Server/src/main/content/global/ame/events/shade/ShadeRENPC.kt @@ -1,17 +1,9 @@ -package rs09.game.content.ame.events.shade +package content.global.ame.events.shade -import api.addItemOrDrop -import api.getWorldTicks -import api.produceGroundItem import core.game.node.entity.Entity import core.game.node.entity.npc.NPC -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.tools.RandomFunction -import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable val ids = 425..430 diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/MordautDialogue.kt b/Server/src/main/content/global/ame/events/supriseexam/MordautDialogue.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/MordautDialogue.kt rename to Server/src/main/content/global/ame/events/supriseexam/MordautDialogue.kt index 278f2b4f4..652055335 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/MordautDialogue.kt +++ b/Server/src/main/content/global/ame/events/supriseexam/MordautDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.ame.events.supriseexam +package content.global.ame.events.supriseexam import core.game.component.Component -import core.game.content.dialogue.FacialExpression -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.FacialExpression +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class MordautDialogue(val examComplete: Boolean, val questionCorrect: Boolean = false, val fromInterface: Boolean = false) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { @@ -60,6 +60,6 @@ class MordautDialogue(val examComplete: Boolean, val questionCorrect: Boolean = } override fun npc(vararg messages: String?): Component? { - return super.npc(FacialExpression.OLD_NORMAL,*messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEDoorDialogue.kt b/Server/src/main/content/global/ame/events/supriseexam/SEDoorDialogue.kt similarity index 75% rename from Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEDoorDialogue.kt rename to Server/src/main/content/global/ame/events/supriseexam/SEDoorDialogue.kt index 4f63efa48..3fffea71b 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEDoorDialogue.kt +++ b/Server/src/main/content/global/ame/events/supriseexam/SEDoorDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.ame.events.supriseexam +package content.global.ame.events.supriseexam -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class SEDoorDialogue(val preExam: Boolean) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEPatternInterface.kt b/Server/src/main/content/global/ame/events/supriseexam/SEPatternInterface.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEPatternInterface.kt rename to Server/src/main/content/global/ame/events/supriseexam/SEPatternInterface.kt index 3175b9e1b..e445c5145 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SEPatternInterface.kt +++ b/Server/src/main/content/global/ame/events/supriseexam/SEPatternInterface.kt @@ -1,9 +1,9 @@ -package rs09.game.content.ame.events.supriseexam +package content.global.ame.events.supriseexam import core.game.node.entity.npc.NPC import org.rs09.consts.Components import org.rs09.consts.NPCs -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class SEPatternInterface : InterfaceListener { diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SupriseExamListeners.kt b/Server/src/main/content/global/ame/events/supriseexam/SupriseExamListeners.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SupriseExamListeners.kt rename to Server/src/main/content/global/ame/events/supriseexam/SupriseExamListeners.kt index 2640691fe..6629982fa 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SupriseExamListeners.kt +++ b/Server/src/main/content/global/ame/events/supriseexam/SupriseExamListeners.kt @@ -1,4 +1,4 @@ -package rs09.game.content.ame.events.supriseexam +package content.global.ame.events.supriseexam import core.game.component.Component import core.game.node.entity.player.Player @@ -6,16 +6,16 @@ import core.game.node.item.Item import core.game.world.map.Location import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.inter.ExperienceInterface +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import content.global.handlers.iface.ExperienceInterface class SupriseExamListeners : InteractionListener { val MORDAUT = NPCs.MR_MORDAUT_6117 val BOOK_OF_KNOWLEDGE = Items.BOOK_OF_KNOWLEDGE_11640 override fun defineListeners() { - on(MORDAUT, IntType.NPC, "talk-to"){player, node -> + on(MORDAUT, IntType.NPC, "talk-to"){ player, node -> player.faceLocation(Location.create(1886, 5024, 0)) val examComplete = player.getAttribute(SurpriseExamUtils.SE_KEY_CORRECT,0) == 3 player.dialogueInterpreter.open(MordautDialogue(examComplete),node.asNpc()) @@ -39,7 +39,7 @@ class SupriseExamListeners : InteractionListener { return@on true } - on(BOOK_OF_KNOWLEDGE, IntType.ITEM, "read"){player, _ -> + on(BOOK_OF_KNOWLEDGE, IntType.ITEM, "read"){ player, _ -> player.setAttribute("caller"){skill: Int,p: Player -> if(p.inventory.remove(Item(BOOK_OF_KNOWLEDGE))) { val level = p.skills.getStaticLevel(skill) @@ -54,7 +54,7 @@ class SupriseExamListeners : InteractionListener { } override fun defineDestinationOverrides() { - setDest(IntType.NPC,MORDAUT){_,_ -> + setDest(IntType.NPC,MORDAUT){ _, _ -> return@setDest Location.create(1886, 5025, 0) } } diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SurpriseExamUtils.kt b/Server/src/main/content/global/ame/events/supriseexam/SurpriseExamUtils.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SurpriseExamUtils.kt rename to Server/src/main/content/global/ame/events/supriseexam/SurpriseExamUtils.kt index 86f8892bc..eabb3d60c 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/supriseexam/SurpriseExamUtils.kt +++ b/Server/src/main/content/global/ame/events/supriseexam/SurpriseExamUtils.kt @@ -1,6 +1,6 @@ -package rs09.game.content.ame.events.supriseexam +package content.global.ame.events.supriseexam -import api.* +import core.api.* import core.game.node.entity.impl.PulseType import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/treespirit/TreeSpiritRENPC.kt b/Server/src/main/content/global/ame/events/treespirit/TreeSpiritRENPC.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/content/ame/events/treespirit/TreeSpiritRENPC.kt rename to Server/src/main/content/global/ame/events/treespirit/TreeSpiritRENPC.kt index a99c12398..2e4fb3436 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/treespirit/TreeSpiritRENPC.kt +++ b/Server/src/main/content/global/ame/events/treespirit/TreeSpiritRENPC.kt @@ -1,17 +1,9 @@ -package rs09.game.content.ame.events.treespirit +package content.global.ame.events.treespirit -import api.addItemOrDrop -import api.getWorldTicks -import api.produceGroundItem import core.game.node.entity.Entity import core.game.node.entity.npc.NPC -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.tools.RandomFunction -import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable import kotlin.math.max diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/zombie/ZombieRENPC.kt b/Server/src/main/content/global/ame/events/zombie/ZombieRENPC.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/content/ame/events/zombie/ZombieRENPC.kt rename to Server/src/main/content/global/ame/events/zombie/ZombieRENPC.kt index e4511e99d..1fed431b9 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/zombie/ZombieRENPC.kt +++ b/Server/src/main/content/global/ame/events/zombie/ZombieRENPC.kt @@ -1,17 +1,9 @@ -package rs09.game.content.ame.events.zombie +package content.global.ame.events.zombie -import api.addItemOrDrop -import api.getWorldTicks -import api.produceGroundItem import core.game.node.entity.Entity import core.game.node.entity.npc.NPC -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.tools.RandomFunction -import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import content.global.ame.RandomEventNPC +import core.api.utils.WeightBasedTable val ids = 419..424 diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt b/Server/src/main/content/global/bots/Adventurer.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt rename to Server/src/main/content/global/bots/Adventurer.kt index d4b783b61..d47e23145 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt +++ b/Server/src/main/content/global/bots/Adventurer.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse @@ -7,7 +7,7 @@ import core.game.node.entity.combat.CombatStyle import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.map.zone.ZoneBorders @@ -15,11 +15,12 @@ import core.game.world.update.flag.* import core.tools.RandomFunction import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.ServerConstants -import rs09.game.ai.AIRepository -import rs09.game.ai.pvmbots.CombatBotAssembler -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.ServerConstants +import core.game.bots.AIRepository +import core.game.bots.CombatBotAssembler +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners import java.io.File import java.io.FileReader import java.time.LocalDateTime @@ -88,7 +89,8 @@ class Adventurer(val style: CombatStyle): Script() { //TODO: Optimise and adjust how bots handle picking up ground items further. fun immerse() { - if (counter++ == 180) {state = State.TELEPORTING} + if (counter++ == 180) {state = State.TELEPORTING + } val items = AIRepository.groundItems[bot] if (Random.nextBoolean()) { if (items.isNullOrEmpty()) { @@ -127,7 +129,7 @@ class Adventurer(val style: CombatStyle): Script() { if(resource != null){ if(resource.name.contains("ocks")) InteractionListeners.run(resource.id, IntType.SCENERY,"mine",bot,resource) - else InteractionListeners.run(resource.id,IntType.SCENERY,"chop down",bot,resource) + else InteractionListeners.run(resource.id, IntType.SCENERY,"chop down",bot,resource) } } } @@ -238,15 +240,15 @@ class Adventurer(val style: CombatStyle): Script() { if (RandomFunction.random(1000) <= 50 && poi){ val roamDistancePoi = when(poiloc){ - teakfarm,crawlinghands -> 5 + teakfarm, crawlinghands -> 5 treegnome -> 50 isafdar -> 40 eaglespeek -> 40 keldagrimout -> 30 teak1 -> 30 miningguild -> 5 - magics,coal -> 7 - gemrocks,chaosnpc,chaosnpc2 -> 1 + magics, coal -> 7 + gemrocks, chaosnpc, chaosnpc2 -> 1 else -> 60 } scriptAPI.randomWalkTo(poiloc,roamDistancePoi) @@ -540,14 +542,14 @@ class Adventurer(val style: CombatStyle): Script() { draynor, rimmington, lumbridge, ge, ge2, edgeville) val pois = listOf( - karamja,karamja,alkharid, - alkharid,feldiphills,feldiphills, - isafdar,eaglespeek,eaglespeek, - canafis,treegnome,treegnome, - teak1,teakfarm,keldagrimout, - miningguild,coal,crawlinghands, - magics,gemrocks,chaosnpc,chaosnpc, - chaosnpc2,taverly) + karamja, karamja, alkharid, + alkharid, feldiphills, feldiphills, + isafdar, eaglespeek, eaglespeek, + canafis, treegnome, treegnome, + teak1, teakfarm, keldagrimout, + miningguild, coal, crawlinghands, + magics, gemrocks, chaosnpc, chaosnpc, + chaosnpc2, taverly) private val whiteWolfMountainTop = Location(2850, 3496, 0) private val catherbyToTopOfWhiteWolf = arrayOf(Location(2856, 3442, 0), Location(2848, 3455, 0), Location(2848, 3471, 0), Location(2848, 3487, 0)) diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt b/Server/src/main/content/global/bots/ChickenKiller.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt rename to Server/src/main/content/global/bots/ChickenKiller.kt index d462bf565..b74c18ab7 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ChickenKiller.kt +++ b/Server/src/main/content/global/bots/ChickenKiller.kt @@ -1,10 +1,10 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.node.item.Item import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.general.ScriptAPI @PlayerCompatible @ScriptName("Chicken Killer") diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt b/Server/src/main/content/global/bots/CoalMiner.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt rename to Server/src/main/content/global/bots/CoalMiner.kt index 84bfa4d70..9bbf13b08 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CoalMiner.kt +++ b/Server/src/main/content/global/bots/CoalMiner.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag @@ -8,12 +8,10 @@ import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.general.ScriptAPI -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import api.* +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.api.* +import core.game.bots.* @PlayerCompatible @ScriptName("Falador Coal Miner") diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CowKiller.kt b/Server/src/main/content/global/bots/CowKiller.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CowKiller.kt rename to Server/src/main/content/global/bots/CowKiller.kt index dfce3b703..ac15edb28 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/CowKiller.kt +++ b/Server/src/main/content/global/bots/CowKiller.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse @@ -6,7 +6,8 @@ import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.pvmbots.CombatBotAssembler +import core.game.bots.CombatBotAssembler +import core.game.bots.Script class CowKiller : Script() { var state = State.KILLING @@ -147,7 +148,7 @@ class CowKiller : Script() { override fun newInstance(): Script { val script = CowKiller() - script.bot = CombatBotAssembler().produce(CombatBotAssembler.Type.values().random(),CombatBotAssembler.Tier.LOW,spawnZone.randomLoc) + script.bot = CombatBotAssembler().produce(CombatBotAssembler.Type.values().random(), CombatBotAssembler.Tier.LOW,spawnZone.randomLoc) script.state = State.KILLING return script } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DoublingMoney.kt b/Server/src/main/content/global/bots/DoublingMoney.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DoublingMoney.kt rename to Server/src/main/content/global/bots/DoublingMoney.kt index a45035c1f..c230879ea 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DoublingMoney.kt +++ b/Server/src/main/content/global/bots/DoublingMoney.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.container.Container import core.game.interaction.Option._P_TRADE @@ -10,17 +10,18 @@ import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.update.flag.context.ChatMessage import core.game.world.update.flag.player.ChatFlag -import discord.Discord +import core.integrations.discord.Discord import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.ai.AIRepository -import rs09.game.ai.general.scriptrepository.Adventurer.Companion.lumbridge -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.world.ImmerseWorld +import core.ServerConstants +import core.game.bots.AIRepository +import content.global.bots.Adventurer.Companion.lumbridge +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.game.world.ImmerseWorld import java.io.File import java.io.FileReader import java.util.Random diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorFisher.kt b/Server/src/main/content/global/bots/DraynorFisher.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorFisher.kt rename to Server/src/main/content/global/bots/DraynorFisher.kt index a59f2d672..e8434f906 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorFisher.kt +++ b/Server/src/main/content/global/bots/DraynorFisher.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse @@ -6,7 +6,8 @@ import core.game.node.item.Item import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script class DraynorFisher : Script() { val fishingZone = ZoneBorders(3085, 3223,3089, 3233) diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt b/Server/src/main/content/global/bots/DraynorWillows.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt rename to Server/src/main/content/global/bots/DraynorWillows.kt index f5273b543..67d23669b 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/DraynorWillows.kt +++ b/Server/src/main/content/global/bots/DraynorWillows.kt @@ -1,4 +1,5 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.component.Component import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse @@ -6,9 +7,9 @@ import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.tools.stringtools.colorize +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.tools.colorize @PlayerCompatible @ScriptName("Draynor Willows") diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FarmerThiever.kt b/Server/src/main/content/global/bots/FarmerThiever.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FarmerThiever.kt rename to Server/src/main/content/global/bots/FarmerThiever.kt index aeea0a4b0..bf3deb1ff 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FarmerThiever.kt +++ b/Server/src/main/content/global/bots/FarmerThiever.kt @@ -1,12 +1,13 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.world.map.zone.ZoneBorders -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler import core.game.node.entity.skill.Skills import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class FarmerThiever : Script() { val pickpocketZone = ZoneBorders(3074,3245,3086,3255) diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FletchingBankstander.kt b/Server/src/main/content/global/bots/FletchingBankstander.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FletchingBankstander.kt rename to Server/src/main/content/global/bots/FletchingBankstander.kt index 7c30fa253..201dd6f00 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/FletchingBankstander.kt +++ b/Server/src/main/content/global/bots/FletchingBankstander.kt @@ -1,11 +1,12 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.fletching.Fletching -import core.game.node.entity.skill.fletching.FletchingPulse +import content.global.skill.fletching.Fletching +import content.global.skill.fletching.FletchingPulse import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script class FletchingBankstander : Script(){ var state = State.FLETCHING @@ -16,7 +17,7 @@ class FletchingBankstander : Script(){ State.FLETCHING -> { bot.inventory.add(Item(Items.KNIFE_946)) bot.inventory.add(Item(Items.LOGS_1511,27)) - bot.pulseManager.run(FletchingPulse(bot, Item(Items.LOGS_1511),27,Fletching.FletchingItems.ARROW_SHAFT)) + bot.pulseManager.run(FletchingPulse(bot, Item(Items.LOGS_1511),27, Fletching.FletchingItems.ARROW_SHAFT)) State.BANKING } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GenericSlayerBot.kt b/Server/src/main/content/global/bots/GenericSlayerBot.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GenericSlayerBot.kt rename to Server/src/main/content/global/bots/GenericSlayerBot.kt index b6a11872c..2ee9d2b1d 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GenericSlayerBot.kt +++ b/Server/src/main/content/global/bots/GenericSlayerBot.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse @@ -9,7 +9,8 @@ import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.AIRepository +import core.game.bots.AIRepository +import core.game.bots.Script /** * A bot that does various random slayer tasks throughout the game and sells the loot on the GE. @@ -239,7 +240,7 @@ class GenericSlayerBot : Script() { * List of tasks that this bot can receive */ enum class Task(val npc_name: String, val minAmt: Int, val maxAmt: Int, val hub: TaskHub, val borders: ZoneBorders) { - CAVE_CRAWLER("Cave crawler",20,100,TaskHub.FREMENNIK_CAVE, ZoneBorders(2778, 9988,2798, 10002)) + CAVE_CRAWLER("Cave crawler",20,100, TaskHub.FREMENNIK_CAVE, ZoneBorders(2778, 9988,2798, 10002)) } /** diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GlassBlowingBankstander.kt b/Server/src/main/content/global/bots/GlassBlowingBankstander.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GlassBlowingBankstander.kt rename to Server/src/main/content/global/bots/GlassBlowingBankstander.kt index b55d00d0e..ac1635748 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GlassBlowingBankstander.kt +++ b/Server/src/main/content/global/bots/GlassBlowingBankstander.kt @@ -1,11 +1,12 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots -import core.game.interaction.inter.GlassInterface +import content.global.handlers.iface.GlassInterface import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.crafting.GlassProduct +import content.global.skill.crafting.GlassProduct import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script class GlassBlowingBankstander : Script(){ var state = State.BLOWING @@ -16,7 +17,7 @@ class GlassBlowingBankstander : Script(){ State.BLOWING -> { bot.inventory.add(Item(Items.GLASSBLOWING_PIPE_1785)) bot.inventory.add(Item(Items.MOLTEN_GLASS_1775,27)) - GlassInterface.make(bot,GlassProduct.ORB,27) + GlassInterface.make(bot, GlassProduct.ORB,27) State.BANKING } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeAgility.kt b/Server/src/main/content/global/bots/GnomeAgility.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeAgility.kt rename to Server/src/main/content/global/bots/GnomeAgility.kt index 4323d532f..7341ff4dd 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeAgility.kt +++ b/Server/src/main/content/global/bots/GnomeAgility.kt @@ -1,12 +1,7 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots -import api.* +import core.game.bots.* import core.game.world.map.zone.ZoneBorders -import rs09.game.ai.general.ScriptAPI -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners @PlayerCompatible diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeBowstring.kt b/Server/src/main/content/global/bots/GnomeBowstring.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeBowstring.kt rename to Server/src/main/content/global/bots/GnomeBowstring.kt index a44190a3f..ae1d99555 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GnomeBowstring.kt +++ b/Server/src/main/content/global/bots/GnomeBowstring.kt @@ -1,16 +1,16 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots -import api.* +import core.api.* import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse -import core.game.node.entity.skill.crafting.spinning.SpinningItem -import core.game.node.entity.skill.crafting.spinning.SpinningPulse +import content.global.skill.crafting.spinning.SpinningItem +import content.global.skill.crafting.spinning.SpinningPulse +import core.game.bots.* import core.game.node.item.Item import core.game.world.map.Location import core.game.world.map.path.Pathfinder import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.general.ScriptAPI @PlayerCompatible @ScriptName("Gnome Stronghold Bowstring") @@ -90,7 +90,7 @@ class GnomeBowstring : Script() { } State.SPINNING -> { - bot.pulseManager.run(SpinningPulse(bot, Item(Items.FLAX_1779),bot.inventory.getAmount(Items.FLAX_1779),SpinningItem.FLAX)) + bot.pulseManager.run(SpinningPulse(bot, Item(Items.FLAX_1779),bot.inventory.getAmount(Items.FLAX_1779), SpinningItem.FLAX)) sLadderSwitch = true state = State.FIND_BANK } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GreenDragonKiller.kt b/Server/src/main/content/global/bots/GreenDragonKiller.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GreenDragonKiller.kt rename to Server/src/main/content/global/bots/GreenDragonKiller.kt index 3414dce32..6c8dcd82e 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/GreenDragonKiller.kt +++ b/Server/src/main/content/global/bots/GreenDragonKiller.kt @@ -1,6 +1,5 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots -import core.game.ge.OfferState import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.Entity @@ -8,8 +7,7 @@ import core.game.node.entity.combat.CombatStyle import core.game.node.entity.combat.InteractionType import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.prayer.BoneBuryingOptionPlugin -import core.game.node.entity.state.EntityState +import content.global.skill.prayer.BoneBuryingOptionPlugin import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.map.Location @@ -18,14 +16,13 @@ import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.impl.WildernessZone import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.AIRepository -import rs09.game.ai.pvmbots.CombatBotAssembler -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.node.entity.combat.CombatSwingHandler -import rs09.game.node.entity.combat.handlers.MagicSwingHandler -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler -import rs09.game.node.entity.combat.handlers.RangeSwingHandler +import core.game.bots.AIRepository +import core.game.bots.CombatBotAssembler +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.game.node.entity.combat.CombatSwingHandler +import core.game.node.entity.combat.MeleeSwingHandler import kotlin.random.Random /** diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Idler.kt b/Server/src/main/content/global/bots/Idler.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Idler.kt rename to Server/src/main/content/global/bots/Idler.kt index d7e08dce5..684f4240e 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Idler.kt +++ b/Server/src/main/content/global/bots/Idler.kt @@ -1,4 +1,6 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots + +import core.game.bots.Script class Idler : Script(){ override fun tick() { diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt b/Server/src/main/content/global/bots/LobsterCatcher.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt rename to Server/src/main/content/global/bots/LobsterCatcher.kt index dacae6e3c..1f3a494a1 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/LobsterCatcher.kt +++ b/Server/src/main/content/global/bots/LobsterCatcher.kt @@ -1,5 +1,6 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.skill.Skills @@ -11,12 +12,9 @@ import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.AIPlayer -import rs09.game.ai.general.ScriptAPI -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.world.GameWorld +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.game.world.GameWorld import kotlin.random.Random @PlayerCompatible @@ -75,7 +73,7 @@ class LobsterCatcher : Script() { if(spot == null){ state = State.IDLE } else { - InteractionListeners.run(spot.id,IntType.NPC,"cage",bot,spot) + InteractionListeners.run(spot.id, IntType.NPC,"cage",bot,spot) } if(bot.inventory.isFull){ state = State.FIND_BANK diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ManThiever.kt b/Server/src/main/content/global/bots/ManThiever.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ManThiever.kt rename to Server/src/main/content/global/bots/ManThiever.kt index e1e54a268..25a2638c2 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ManThiever.kt +++ b/Server/src/main/content/global/bots/ManThiever.kt @@ -1,9 +1,10 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.node.item.Item -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners import java.util.* class ManThiever : Script() { diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/NonBankingMiner.kt b/Server/src/main/content/global/bots/NonBankingMiner.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/NonBankingMiner.kt rename to Server/src/main/content/global/bots/NonBankingMiner.kt index fa66c4112..0d99c11d3 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/NonBankingMiner.kt +++ b/Server/src/main/content/global/bots/NonBankingMiner.kt @@ -1,12 +1,13 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots -import api.produceGroundItem +import core.api.produceGroundItem import core.game.node.entity.skill.Skills import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class NonBankingMiner : Script() { override fun tick() { diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersFlax.kt b/Server/src/main/content/global/bots/SeersFlax.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersFlax.kt rename to Server/src/main/content/global/bots/SeersFlax.kt index b0365f4a4..30d8ffee3 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersFlax.kt +++ b/Server/src/main/content/global/bots/SeersFlax.kt @@ -1,15 +1,16 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.crafting.spinning.SpinningItem -import core.game.node.entity.skill.crafting.spinning.SpinningPulse +import content.global.skill.crafting.spinning.SpinningItem +import content.global.skill.crafting.spinning.SpinningPulse import core.game.node.item.Item import core.game.world.map.Location import core.game.world.map.path.Pathfinder import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script class SeersFlax : Script(){ var state = State.PICKING @@ -57,7 +58,7 @@ class SeersFlax : Script(){ } State.SPINNING -> { - bot.pulseManager.run(SpinningPulse(bot, Item(Items.FLAX_1779),bot.inventory.getAmount(Items.FLAX_1779),SpinningItem.FLAX)) + bot.pulseManager.run(SpinningPulse(bot, Item(Items.FLAX_1779),bot.inventory.getAmount(Items.FLAX_1779), SpinningItem.FLAX)) state = State.FIND_BANK } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt b/Server/src/main/content/global/bots/SeersMagicTrees.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt rename to Server/src/main/content/global/bots/SeersMagicTrees.kt index 403c58cec..c3e338404 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SeersMagicTrees.kt +++ b/Server/src/main/content/global/bots/SeersMagicTrees.kt @@ -1,5 +1,6 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.skill.Skills @@ -8,11 +9,8 @@ import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.general.ScriptAPI -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners @PlayerCompatible @ScriptName("Seers Magics") diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SharkCatcher.kt b/Server/src/main/content/global/bots/SharkCatcher.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SharkCatcher.kt rename to Server/src/main/content/global/bots/SharkCatcher.kt index 6062d7135..f7fa50e2e 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/SharkCatcher.kt +++ b/Server/src/main/content/global/bots/SharkCatcher.kt @@ -1,5 +1,6 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.skill.Skills @@ -7,11 +8,8 @@ import core.game.node.item.Item import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.AIPlayer -import rs09.game.ai.general.ScriptAPI -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners import kotlin.random.Random /* diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ShootingStarBot.kt b/Server/src/main/content/global/bots/ShootingStarBot.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ShootingStarBot.kt rename to Server/src/main/content/global/bots/ShootingStarBot.kt index d8d7b33fc..5e990b82f 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ShootingStarBot.kt +++ b/Server/src/main/content/global/bots/ShootingStarBot.kt @@ -1,14 +1,15 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.content.global.worldevents.shootingstar.ShootingStarPlugin -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.bots.GeneralBotCreator +import content.global.activity.shootingstar.ShootingStarPlugin +import core.game.bots.Script +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class ShootingStarBot : Script() { private var state = State.FULL_IDLE diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockEssenceMiner.kt b/Server/src/main/content/global/bots/VarrockEssenceMiner.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockEssenceMiner.kt rename to Server/src/main/content/global/bots/VarrockEssenceMiner.kt index cbc488db3..3dafd687f 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockEssenceMiner.kt +++ b/Server/src/main/content/global/bots/VarrockEssenceMiner.kt @@ -1,14 +1,13 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots +import core.game.bots.* import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners @PlayerCompatible @ScriptDescription("Start in varrock bank with rune mysteries complete and a pickaxe equipped/in inventory") diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockSmither.kt b/Server/src/main/content/global/bots/VarrockSmither.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockSmither.kt rename to Server/src/main/content/global/bots/VarrockSmither.kt index 75f977627..0d252503c 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/VarrockSmither.kt +++ b/Server/src/main/content/global/bots/VarrockSmither.kt @@ -1,15 +1,16 @@ -package rs09.game.ai.general.scriptrepository +package content.global.bots import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.smithing.Bars -import core.game.node.entity.skill.smithing.SmithingPulse +import content.global.skill.smithing.Bars +import content.global.skill.smithing.SmithingPulse import core.game.node.item.Item import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.SkillingBotAssembler +import core.game.bots.Script class VarrockSmither : Script() { var state = State.SMITHING diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankDepositDialogue.kt b/Server/src/main/content/global/dialogue/BankDepositDialogue.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankDepositDialogue.kt rename to Server/src/main/content/global/dialogue/BankDepositDialogue.kt index cd3c87005..add635877 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankDepositDialogue.kt +++ b/Server/src/main/content/global/dialogue/BankDepositDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.content.dialogue.region.worldwide.bank +package content.global.dialogue -import api.dumpBeastOfBurden -import api.dumpContainer -import api.sendMessage -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.START_DIALOGUE +import core.api.dumpBeastOfBurden +import core.api.dumpContainer +import core.api.sendMessage +import core.game.dialogue.DialogueFile +import core.tools.START_DIALOGUE /** * Represents the dialogue shown when the user presses diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankHelpDialogue.kt b/Server/src/main/content/global/dialogue/BankHelpDialogue.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankHelpDialogue.kt rename to Server/src/main/content/global/dialogue/BankHelpDialogue.kt index 9d3373b2a..ca8c6453a 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankHelpDialogue.kt +++ b/Server/src/main/content/global/dialogue/BankHelpDialogue.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.worldwide.bank +package content.global.dialogue -import api.openInterface -import api.sendDialogue -import api.sendItemDialogue +import core.api.openInterface +import core.api.sendDialogue +import core.api.sendItemDialogue import core.game.node.item.Item import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.START_DIALOGUE /** * Represents the dialogue shown when the user presses diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankerDialogue.kt b/Server/src/main/content/global/dialogue/BankerDialogue.kt similarity index 72% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankerDialogue.kt rename to Server/src/main/content/global/dialogue/BankerDialogue.kt index 09339b407..e913ce4f0 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/bank/BankerDialogue.kt +++ b/Server/src/main/content/global/dialogue/BankerDialogue.kt @@ -1,25 +1,23 @@ -package rs09.game.content.dialogue.region.worldwide.bank +package content.global.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.game.node.entity.npc.BankerNPC -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import content.global.handlers.npc.BankerNPC +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { +class BankerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> when { hasIronmanRestriction(player, IronmanMode.ULTIMATE) -> { npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "My apologies, dear ${if (player.isMale) "sir" else "madam"}, " + "our services are not available for Ultimate ${if (player.isMale) "Ironmen" else "Ironwomen"}" ).also { stage = END_DIALOGUE } @@ -27,7 +25,7 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { else -> { npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Good day, how may I help you?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -40,42 +38,42 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { } 1 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Before we go any further, I should inform you that you " + "have items ready for collection from the Grand Exchange." ).also { stage++ } 2 -> showTopics( - Topic(FacialExpression.FRIENDLY, "I'd like to access my bank account, please.", 10), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to access my bank account, please.", 10), IfTopic( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to switch to my ${getBankAccountName(player, true)} bank account.", 13, hasActivatedSecondaryBankAccount(player) ), IfTopic( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to open a secondary bank account.", 20, !hasActivatedSecondaryBankAccount(player) ), - Topic(FacialExpression.FRIENDLY, "I'd like to check my PIN settings.", 11), - Topic(FacialExpression.FRIENDLY, "I'd like to collect items.", 12), - Topic(FacialExpression.ASKING, "What is this place?", 3), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to check my PIN settings.", 11), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to collect items.", 12), + Topic(core.game.dialogue.FacialExpression.ASKING, "What is this place?", 3), ) 3 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "This is a branch of the Bank of Gielinor. We have branches in many towns." ).also { stage++ } 4 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "And what do you do?" ).also { stage++ } 5 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "We will look after your items and money for you. " + "Leave your valuables with us if you want to keep them safe." ).also { stage = END_DIALOGUE } @@ -99,51 +97,51 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { toggleBankAccount(player) npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Your active bank account has been switched. " + "You can now access your ${getBankAccountName(player)} account." ).also { stage = 2 } } 20 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Certainly. We offer secondary accounts to all our customers." ).also { stage++ } 21 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "The secondary account comes with a standard fee of 5,000,000 coins. The fee is non-refundable " + "and account activation is permanent." ).also { stage++ } 22 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "If your inventory does not contain enough money to cover the costs, we will complement " + "the amount with the money inside your primary bank account." ).also { stage++ } 23 -> npcl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Knowing all this, would you like to proceed with opening your secondary bank account?" ).also { stage++ } 24 -> showTopics( - Topic(FacialExpression.HAPPY, "Yes, I am still interested.", 25), - Topic(FacialExpression.ANNOYED, "Actually, I've changed my mind.", 26) + Topic(core.game.dialogue.FacialExpression.HAPPY, "Yes, I am still interested.", 25), + Topic(core.game.dialogue.FacialExpression.ANNOYED, "Actually, I've changed my mind.", 26) ) 25 -> { when (activateSecondaryBankAccount(player)) { SecondaryBankAccountActivationResult.ALREADY_ACTIVE -> { npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Your bank account was already activated, there is no need to pay twice." ).also { stage = END_DIALOGUE } } SecondaryBankAccountActivationResult.INTERNAL_FAILURE -> { npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "I must apologize, the transaction was not successful. Please check your " + "primary bank account and your inventory - if there's money missing, please " + "screenshot your chat box and contact the game developers." @@ -152,7 +150,7 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { SecondaryBankAccountActivationResult.NOT_ENOUGH_MONEY -> { npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "It appears that you do not have the money necessary to cover the costs " + "associated with opening a secondary bank account. I will be waiting here " + "until you do." @@ -161,7 +159,7 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { SecondaryBankAccountActivationResult.SUCCESS -> { npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Your secondary bank account has been opened and can be accessed through any " + "of the Bank of Gielinor's employees. Thank you for choosing our services." ).also { stage = END_DIALOGUE } @@ -170,7 +168,7 @@ class BankerDialogue(player: Player? = null) : DialoguePlugin(player) { } 26 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Very well. Should you decide a secondary bank account is needed, do not hesitate to " + "contact any of the Bank of Gielinor's stationary employees. We will be happy to help." ).also { stage = END_DIALOGUE } diff --git a/Server/src/main/java/core/game/content/dialogue/FurTradePlugin.java b/Server/src/main/content/global/dialogue/FurTradePlugin.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/FurTradePlugin.java rename to Server/src/main/content/global/dialogue/FurTradePlugin.java index fa8791505..b079a3b87 100644 --- a/Server/src/main/java/core/game/content/dialogue/FurTradePlugin.java +++ b/Server/src/main/content/global/dialogue/FurTradePlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.global.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/GardenerDialoguePlugin.kt b/Server/src/main/content/global/dialogue/GardenerDialoguePlugin.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/GardenerDialoguePlugin.kt rename to Server/src/main/content/global/dialogue/GardenerDialoguePlugin.kt index 23153a3a4..3fa655c5d 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/GardenerDialoguePlugin.kt +++ b/Server/src/main/content/global/dialogue/GardenerDialoguePlugin.kt @@ -1,19 +1,18 @@ -package rs09.game.content.dialogue.region.worldwide +package content.global.dialogue -import core.game.content.dialogue.DialoguePlugin +import content.global.skill.farming.FarmerPayOptionDialogue +import content.global.skill.farming.Farmers +import content.global.skill.farming.FarmingPatch import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.node.entity.skill.farming.FarmerPayOptionDialogue -import rs09.game.node.entity.skill.farming.Farmers -import rs09.game.node.entity.skill.farming.FarmingPatch -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE @Initializable -class GardenerDialoguePlugin(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class GardenerDialoguePlugin(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GardenerDialoguePlugin(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/ManDialoguePlugin.java b/Server/src/main/content/global/dialogue/ManDialoguePlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/ManDialoguePlugin.java rename to Server/src/main/content/global/dialogue/ManDialoguePlugin.java index f6e7d5514..36785504e 100644 --- a/Server/src/main/java/core/game/content/dialogue/ManDialoguePlugin.java +++ b/Server/src/main/content/global/dialogue/ManDialoguePlugin.java @@ -1,115 +1,117 @@ -package core.game.content.dialogue; - -import core.plugin.Initializable; -import org.rs09.consts.Items; -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.item.Item; -import core.tools.RandomFunction; - -/** - * Handles the man dialogues. - * - * @author 'Vexia - */ -@Initializable -public class ManDialoguePlugin extends DialoguePlugin { - private static final Item CIDER = new Item(Items.CIDER_5763); - - /** - * The NPC ids that use this dialogue plugin. - */ - private static final int[] NPC_IDS = {1, 2, 3, 4, 5, 6, 16, 24, 25, 170, 351, 352, 353, 354, 359, 360, 361, 362, 363, 726, 727, 728, 729, 730, 1086, 2675, 2776, 3224, 3225, 3227, 5923, 5924,}; - - public ManDialoguePlugin() { - } - - public ManDialoguePlugin(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new ManDialoguePlugin(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - if (npc == null) - return false; - if (args.length > 1 - && args[1] instanceof Item - && ((Item) args[1]).equals(CIDER) - && player.getInventory().remove(CIDER)) { - - // Seers achievement diary - if (!player.getAchievementDiaryManager().getDiary(DiaryType.SEERS_VILLAGE).isComplete(0, 6)) { - if (player.getAttribute("diary:seers:pub-cider", 0) >= 4) { - player.setAttribute("/save:diary:seers:pub-cider", 5); - player.getAchievementDiaryManager().getDiary(DiaryType.SEERS_VILLAGE).updateTask(player, 0, 6, true); - } else { - player.setAttribute("/save:diary:seers:pub-cider", player.getAttribute("diary:seers:pub-cider", 0) + 1); - } - } - - npc("Ah, a glass of cider, that's very generous of you. I", "don't mind if I do. Thanks!"); - stage = 999; - return true; - } - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Hello, how's it going?"); - stage = RandomFunction.random(0, 5); - if (stage == 1) { - stage = 0; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I'm very well thank you."); - stage = 999; - break; - case 999: - end(); - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Who are you?"); - stage = 20; - break; - case 3: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I'm fine, how are you?"); - stage = 30; - break; - case 4: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "No, I don't want to buy anything!"); - stage = 999; - break; - case 5: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I think we need a new king. The one we've got isn't", "very good."); - stage = 999; - break; - case 20: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm a bold adventurer."); - stage = 21; - break; - case 21: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Ah, a very noble profession."); - stage = 999; - break; - case 30: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Very well thank you."); - stage = 999; - break; - } - return true; - } - - @Override - public int[] getIds() { - return NPC_IDS; - } -} +package content.global.dialogue; + +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.plugin.Initializable; +import org.rs09.consts.Items; +import core.game.node.entity.npc.NPC; +import core.game.node.entity.player.Player; +import core.game.node.entity.player.link.diary.DiaryType; +import core.game.node.item.Item; +import core.tools.RandomFunction; + +/** + * Handles the man dialogues. + * + * @author 'Vexia + */ +@Initializable +public class ManDialoguePlugin extends DialoguePlugin { + private static final Item CIDER = new Item(Items.CIDER_5763); + + /** + * The NPC ids that use this dialogue plugin. + */ + private static final int[] NPC_IDS = {1, 2, 3, 4, 5, 6, 16, 24, 25, 170, 351, 352, 353, 354, 359, 360, 361, 362, 363, 726, 727, 728, 729, 730, 1086, 2675, 2776, 3224, 3225, 3227, 5923, 5924,}; + + public ManDialoguePlugin() { + } + + public ManDialoguePlugin(Player player) { + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new ManDialoguePlugin(player); + } + + @Override + public boolean open(Object... args) { + npc = (NPC) args[0]; + if (npc == null) + return false; + if (args.length > 1 + && args[1] instanceof Item + && ((Item) args[1]).equals(CIDER) + && player.getInventory().remove(CIDER)) { + + // Seers achievement diary + if (!player.getAchievementDiaryManager().getDiary(DiaryType.SEERS_VILLAGE).isComplete(0, 6)) { + if (player.getAttribute("diary:seers:pub-cider", 0) >= 4) { + player.setAttribute("/save:diary:seers:pub-cider", 5); + player.getAchievementDiaryManager().getDiary(DiaryType.SEERS_VILLAGE).updateTask(player, 0, 6, true); + } else { + player.setAttribute("/save:diary:seers:pub-cider", player.getAttribute("diary:seers:pub-cider", 0) + 1); + } + } + + npc("Ah, a glass of cider, that's very generous of you. I", "don't mind if I do. Thanks!"); + stage = 999; + return true; + } + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Hello, how's it going?"); + stage = RandomFunction.random(0, 5); + if (stage == 1) { + stage = 0; + } + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + switch (stage) { + case 0: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I'm very well thank you."); + stage = 999; + break; + case 999: + end(); + break; + case 2: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Who are you?"); + stage = 20; + break; + case 3: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I'm fine, how are you?"); + stage = 30; + break; + case 4: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "No, I don't want to buy anything!"); + stage = 999; + break; + case 5: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I think we need a new king. The one we've got isn't", "very good."); + stage = 999; + break; + case 20: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm a bold adventurer."); + stage = 21; + break; + case 21: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Ah, a very noble profession."); + stage = 999; + break; + case 30: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Very well thank you."); + stage = 999; + break; + } + return true; + } + + @Override + public int[] getIds() { + return NPC_IDS; + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/ShopkeeperDialogue.java b/Server/src/main/content/global/dialogue/ShopkeeperDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/ShopkeeperDialogue.java rename to Server/src/main/content/global/dialogue/ShopkeeperDialogue.java index 053cd4fa4..e132605d4 100644 --- a/Server/src/main/java/core/game/content/dialogue/ShopkeeperDialogue.java +++ b/Server/src/main/content/global/dialogue/ShopkeeperDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.global.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java b/Server/src/main/content/global/dialogue/TownCrierDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java rename to Server/src/main/content/global/dialogue/TownCrierDialogue.java index 821533502..ae4e258c7 100644 --- a/Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java +++ b/Server/src/main/content/global/dialogue/TownCrierDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.dialogue; +package content.global.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/inter/AgilityTicketInterface.java b/Server/src/main/content/global/handlers/iface/AgilityTicketInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/AgilityTicketInterface.java rename to Server/src/main/content/global/handlers/iface/AgilityTicketInterface.java index aefb9e933..368849e95 100644 --- a/Server/src/main/java/core/game/interaction/inter/AgilityTicketInterface.java +++ b/Server/src/main/content/global/handlers/iface/AgilityTicketInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/AutocastSelectPlugin.java b/Server/src/main/content/global/handlers/iface/AutocastSelectPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/inter/AutocastSelectPlugin.java rename to Server/src/main/content/global/handlers/iface/AutocastSelectPlugin.java index b3711bf82..a010c7bb5 100644 --- a/Server/src/main/java/core/game/interaction/inter/AutocastSelectPlugin.java +++ b/Server/src/main/content/global/handlers/iface/AutocastSelectPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/BoltEnchantingInterface.java b/Server/src/main/content/global/handlers/iface/BoltEnchantingInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/BoltEnchantingInterface.java rename to Server/src/main/content/global/handlers/iface/BoltEnchantingInterface.java index 37056b445..de8c22f87 100644 --- a/Server/src/main/java/core/game/interaction/inter/BoltEnchantingInterface.java +++ b/Server/src/main/content/global/handlers/iface/BoltEnchantingInterface.java @@ -1,12 +1,12 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.MagicStaff; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicStaff; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/interaction/inter/CharacterDesignInterface.java b/Server/src/main/content/global/handlers/iface/CharacterDesignInterface.java similarity index 88% rename from Server/src/main/java/core/game/interaction/inter/CharacterDesignInterface.java rename to Server/src/main/content/global/handlers/iface/CharacterDesignInterface.java index 91649baec..62c8657bb 100644 --- a/Server/src/main/java/core/game/interaction/inter/CharacterDesignInterface.java +++ b/Server/src/main/content/global/handlers/iface/CharacterDesignInterface.java @@ -1,9 +1,9 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.quest.tutorials.tutorialisland.CharacterDesign; +import content.region.misc.tutisland.handlers.iface.CharacterDesign; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/ChocatriceIncubationInterface.kt b/Server/src/main/content/global/handlers/iface/ChocatriceIncubationInterface.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/inter/ChocatriceIncubationInterface.kt rename to Server/src/main/content/global/handlers/iface/ChocatriceIncubationInterface.kt index 91c763a48..d086cd95c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/ChocatriceIncubationInterface.kt +++ b/Server/src/main/content/global/handlers/iface/ChocatriceIncubationInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/java/core/game/interaction/inter/ClanInterfacePlugin.java b/Server/src/main/content/global/handlers/iface/ClanInterfacePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/ClanInterfacePlugin.java rename to Server/src/main/content/global/handlers/iface/ClanInterfacePlugin.java index c00fdef2e..1ad3857e8 100644 --- a/Server/src/main/java/core/game/interaction/inter/ClanInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/iface/ClanInterfacePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -14,8 +14,8 @@ import core.plugin.Plugin; import core.tools.StringUtils; import kotlin.Unit; -import static api.ContentAPIKt.sendInputDialogue; -import static api.ContentAPIKt.setInterfaceText; +import static core.api.ContentAPIKt.sendInputDialogue; +import static core.api.ContentAPIKt.setInterfaceText; /** * Represents the plugin used to handle the clan interfaces. diff --git a/Server/src/main/java/core/game/interaction/inter/CombatTabInterface.java b/Server/src/main/content/global/handlers/iface/CombatTabInterface.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/CombatTabInterface.java rename to Server/src/main/content/global/handlers/iface/CombatTabInterface.java index 11e01665c..bd3938d5c 100644 --- a/Server/src/main/java/core/game/interaction/inter/CombatTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/CombatTabInterface.java @@ -1,15 +1,15 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.combat.equipment.WeaponInterface.WeaponInterfaces; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/CreditShopInterface.kt b/Server/src/main/content/global/handlers/iface/CreditShopInterface.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/interaction/inter/CreditShopInterface.kt rename to Server/src/main/content/global/handlers/iface/CreditShopInterface.kt index 9ecf360ec..e45f3ef74 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/CreditShopInterface.kt +++ b/Server/src/main/content/global/handlers/iface/CreditShopInterface.kt @@ -1,80 +1,80 @@ -package rs09.game.interaction.inter - -import api.* -import core.game.node.entity.player.Player -import core.game.node.item.Item -import org.rs09.consts.Components -import org.rs09.consts.Items -import rs09.game.interaction.InterfaceListener - -class CreditShopInterface : InterfaceListener { - - val CREDIT_SHOP = Components.CREDIT_SHOP - val TEXT_CHILD = 39 - - override fun defineInterfaceListeners() { - on(CREDIT_SHOP){player, component, opcode, buttonID, slot, itemID -> - val item = getItem(buttonID) - - if(opcode == 155){ - sendDialogue(player, "This item costs ${item.price} credits.") - return@on true - } - - if(buttonID == 14 || buttonID == 21){ - val specific = when(opcode){ - 196 -> if(buttonID == 14) Items.RED_PARTYHAT_1038 else Items.RED_HWEEN_MASK_1057 - 124 -> if(buttonID == 14) Items.GREEN_PARTYHAT_1044 else Items.GREEN_HWEEN_MASK_1053 - 199 -> if(buttonID == 14) Items.BLUE_PARTYHAT_1042 else Items.BLUE_HWEEN_MASK_1055 - 234 -> Items.YELLOW_PARTYHAT_1040 - 168 -> Items.PURPLE_PARTYHAT_1046 - 166 -> Items.WHITE_PARTYHAT_1048 - else -> Items.DWARF_WEED_SEED_5303 - } - attemptPurchase(player,specific,item.price) - } else { - attemptPurchase(player,item.id,item.price) - } - return@on true - } - - onOpen(CREDIT_SHOP){player, component -> - sendCredits(player) - return@onOpen true - } - } - - private fun getItem(buttonID: Int): ShopItem{ - return when(buttonID){ - 14 -> ShopItem(Items.BLUE_PARTYHAT_1042,75) - 18 -> ShopItem(Items.SCYTHE_1419,100) - 20 -> ShopItem(Items.JANGLES_THE_MONKEY_14648,200) - 17 -> ShopItem(Items.CHRISTMAS_CRACKER_962,65) - 21 -> ShopItem(Items.BLUE_HWEEN_MASK_1055,65) - 16 -> ShopItem(Items.SANTA_HAT_1050,65) - 19 -> ShopItem(Items.BUNNY_EARS_1037,150) - 15 -> ShopItem(Items.EASTER_RING_7927,100) - else -> ShopItem(0,0) - } - } - - fun sendCredits(player: Player){ - setInterfaceText(player, "You have ${player.details.credits} credits to spend.", CREDIT_SHOP, TEXT_CHILD) - } - - fun attemptPurchase(player: Player, item: Int, price: Int){ - if(player.details.credits < price){ - sendDialogue(player, "You don't have enough credits for that.") - return - } - - if(player.inventory.add(Item(item))){ - player.details.credits -= price - } else { - sendDialogue(player, "You don't have enough inventory space for that.") - } - sendCredits(player) - } - - internal class ShopItem(val id: Int, val price: Int) +package content.global.handlers.iface + +import core.api.* +import core.game.node.entity.player.Player +import core.game.node.item.Item +import org.rs09.consts.Components +import org.rs09.consts.Items +import core.game.interaction.InterfaceListener + +class CreditShopInterface : InterfaceListener { + + val CREDIT_SHOP = Components.CREDIT_SHOP + val TEXT_CHILD = 39 + + override fun defineInterfaceListeners() { + on(CREDIT_SHOP){player, component, opcode, buttonID, slot, itemID -> + val item = getItem(buttonID) + + if(opcode == 155){ + sendDialogue(player, "This item costs ${item.price} credits.") + return@on true + } + + if(buttonID == 14 || buttonID == 21){ + val specific = when(opcode){ + 196 -> if(buttonID == 14) Items.RED_PARTYHAT_1038 else Items.RED_HWEEN_MASK_1057 + 124 -> if(buttonID == 14) Items.GREEN_PARTYHAT_1044 else Items.GREEN_HWEEN_MASK_1053 + 199 -> if(buttonID == 14) Items.BLUE_PARTYHAT_1042 else Items.BLUE_HWEEN_MASK_1055 + 234 -> Items.YELLOW_PARTYHAT_1040 + 168 -> Items.PURPLE_PARTYHAT_1046 + 166 -> Items.WHITE_PARTYHAT_1048 + else -> Items.DWARF_WEED_SEED_5303 + } + attemptPurchase(player,specific,item.price) + } else { + attemptPurchase(player,item.id,item.price) + } + return@on true + } + + onOpen(CREDIT_SHOP){player, component -> + sendCredits(player) + return@onOpen true + } + } + + private fun getItem(buttonID: Int): ShopItem { + return when(buttonID){ + 14 -> ShopItem(Items.BLUE_PARTYHAT_1042,75) + 18 -> ShopItem(Items.SCYTHE_1419,100) + 20 -> ShopItem(Items.JANGLES_THE_MONKEY_14648,200) + 17 -> ShopItem(Items.CHRISTMAS_CRACKER_962,65) + 21 -> ShopItem(Items.BLUE_HWEEN_MASK_1055,65) + 16 -> ShopItem(Items.SANTA_HAT_1050,65) + 19 -> ShopItem(Items.BUNNY_EARS_1037,150) + 15 -> ShopItem(Items.EASTER_RING_7927,100) + else -> ShopItem(0,0) + } + } + + fun sendCredits(player: Player){ + setInterfaceText(player, "You have ${player.details.credits} credits to spend.", CREDIT_SHOP, TEXT_CHILD) + } + + fun attemptPurchase(player: Player, item: Int, price: Int){ + if(player.details.credits < price){ + sendDialogue(player, "You don't have enough credits for that.") + return + } + + if(player.inventory.add(Item(item))){ + player.details.credits -= price + } else { + sendDialogue(player, "You don't have enough inventory space for that.") + } + sendCredits(player) + } + + internal class ShopItem(val id: Int, val price: Int) } \ No newline at end of file diff --git a/Server/src/main/java/core/game/interaction/inter/CrystalKeyChestPlugin.java b/Server/src/main/content/global/handlers/iface/CrystalKeyChestPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/CrystalKeyChestPlugin.java rename to Server/src/main/content/global/handlers/iface/CrystalKeyChestPlugin.java index 69656ef8b..852eb4997 100644 --- a/Server/src/main/java/core/game/interaction/inter/CrystalKeyChestPlugin.java +++ b/Server/src/main/content/global/handlers/iface/CrystalKeyChestPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/DeathInterfacePlugin.java b/Server/src/main/content/global/handlers/iface/DeathInterfacePlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/DeathInterfacePlugin.java rename to Server/src/main/content/global/handlers/iface/DeathInterfacePlugin.java index 44139de63..5b57c3078 100644 --- a/Server/src/main/java/core/game/interaction/inter/DeathInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/iface/DeathInterfacePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/EllisDialogue.java b/Server/src/main/content/global/handlers/iface/EllisDialogue.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/EllisDialogue.java rename to Server/src/main/content/global/handlers/iface/EllisDialogue.java index 80e8dd455..099ac46f4 100644 --- a/Server/src/main/java/core/game/interaction/inter/EllisDialogue.java +++ b/Server/src/main/content/global/handlers/iface/EllisDialogue.java @@ -1,7 +1,7 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.crafting.TanningProduct; +import core.game.dialogue.DialoguePlugin; +import content.global.skill.crafting.TanningProduct; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/inter/EmoteTabInterface.java b/Server/src/main/content/global/handlers/iface/EmoteTabInterface.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/EmoteTabInterface.java rename to Server/src/main/content/global/handlers/iface/EmoteTabInterface.java index 63a541aab..7506f5fcb 100644 --- a/Server/src/main/java/core/game/interaction/inter/EmoteTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/EmoteTabInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/EquipmentInterface.java b/Server/src/main/content/global/handlers/iface/EquipmentInterface.java similarity index 96% rename from Server/src/main/java/core/game/interaction/inter/EquipmentInterface.java rename to Server/src/main/content/global/handlers/iface/EquipmentInterface.java index daa9796f9..3461a0236 100644 --- a/Server/src/main/java/core/game/interaction/inter/EquipmentInterface.java +++ b/Server/src/main/content/global/handlers/iface/EquipmentInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; @@ -20,10 +20,10 @@ import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.action.EquipHandler; -import rs09.game.interaction.IntType; -import rs09.game.interaction.InteractionListeners; -import rs09.game.world.GameWorld; +import core.game.global.action.EquipHandler; +import core.game.interaction.IntType; +import core.game.interaction.InteractionListeners; +import core.game.world.GameWorld; /** * Represents the equipment interface. diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/ExperienceInterface.kt b/Server/src/main/content/global/handlers/iface/ExperienceInterface.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/interaction/inter/ExperienceInterface.kt rename to Server/src/main/content/global/handlers/iface/ExperienceInterface.kt index 17544b257..9e93c3cef 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/ExperienceInterface.kt +++ b/Server/src/main/content/global/handlers/iface/ExperienceInterface.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* +import core.api.* import core.game.component.Component import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin @@ -9,7 +9,7 @@ import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.skill.Skills import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.system.SystemLogger +import core.tools.SystemLogger /** * Represents the experience interface. diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/FairyRingInterface.kt b/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/inter/FairyRingInterface.kt rename to Server/src/main/content/global/handlers/iface/FairyRingInterface.kt index 22df6abba..f580ba099 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/FairyRingInterface.kt +++ b/Server/src/main/content/global/handlers/iface/FairyRingInterface.kt @@ -1,17 +1,16 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* -import api.events.FairyRingDialEvent +import core.api.* +import core.game.event.FairyRingDialEvent import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager import core.tools.RandomFunction -import rs09.game.interaction.InterfaceListener -import rs09.game.world.GameWorld +import core.game.interaction.InterfaceListener +import core.game.world.GameWorld val RING_1 = arrayOf('a','d','c','b') val RING_2 = arrayOf('i','l','k','j') @@ -21,7 +20,7 @@ val RING_3 = arrayOf('p','s','r','q') * Handles the fairy ring interface * @author Ceikry */ -class FairyRingInterface : InterfaceListener{ +class FairyRingInterface : InterfaceListener { val RINGS = 734 val TRAVEL_LOG = 735 @@ -129,7 +128,7 @@ class FairyRingInterface : InterfaceListener{ } GameWorld.Pulser.submit(object : Pulse(4, player) { override fun pulse(): Boolean { - sendPlayerDialogue(player, "Wow, fairy magic sure is useful, I hardly moved at all!", FacialExpression.AMAZED) + sendPlayerDialogue(player, "Wow, fairy magic sure is useful, I hardly moved at all!", core.game.dialogue.FacialExpression.AMAZED) return true } }) diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/FurClothingInterface.kt b/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/inter/FurClothingInterface.kt rename to Server/src/main/content/global/handlers/iface/FurClothingInterface.kt index e915f25b3..1020b6247 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/FurClothingInterface.kt +++ b/Server/src/main/content/global/handlers/iface/FurClothingInterface.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* +import core.api.* import core.game.component.Component import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin @@ -9,9 +9,9 @@ import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import core.plugin.Plugin +import core.tools.colorize import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import rs09.tools.stringtools.colorize private const val FUR_CLOTHING_COMPONENT_ID = 477 @@ -60,16 +60,16 @@ private val OPTIONS = arrayOf("Buy 10","Buy 5","Buy 1","Value") //Like holy what the fuck j*gex private val ITEMS = arrayOf( null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, - null,POLAR_CAMO_TOP, null,null, POLAR_CAMO_LEGS,null,null,null,null, - null,WOOD_CAMO_TOP, null,null, WOOD_CAMO_LEGS,null,null,null, - null,JUNGLE_CAMO_TOP,null,null, JUNGLE_CAMO_LEGS,null,null,null, - null,DESERT_CAMO_TOP,null,null, DESERT_CAMO_LEGS,null,null,null,null, + null, POLAR_CAMO_TOP, null,null, POLAR_CAMO_LEGS,null,null,null,null, + null, WOOD_CAMO_TOP, null,null, WOOD_CAMO_LEGS,null,null,null, + null, JUNGLE_CAMO_TOP,null,null, JUNGLE_CAMO_LEGS,null,null,null, + null, DESERT_CAMO_TOP,null,null, DESERT_CAMO_LEGS,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, - LARUPIA_HAT,null,null,LARUPIA_TOP,null,null,LARUPIA_LEGS,null,null,null,null, - GRAAHK_HEADDRESS,null,null,GRAAHK_TOP,null,null,GRAAHK_LEGS,null,null,null,null,null, - KYATT_HAT,null,null,KYATT_TOP,null,null,KYATT_LEGS, null,null,null, + LARUPIA_HAT,null,null, LARUPIA_TOP,null,null, LARUPIA_LEGS,null,null,null,null, + GRAAHK_HEADDRESS,null,null, GRAAHK_TOP,null,null, GRAAHK_LEGS,null,null,null,null,null, + KYATT_HAT,null,null, KYATT_TOP,null,null, KYATT_LEGS, null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, @@ -162,8 +162,8 @@ class FurClothingInterface : ComponentPlugin(){ return } - removeItem(player, requiredFur, api.Container.INVENTORY) - removeItem(player, coins, api.Container.INVENTORY) + removeItem(player, requiredFur, Container.INVENTORY) + removeItem(player, coins, Container.INVENTORY) addItem(player, clothing.product.id, amount) } diff --git a/Server/src/main/java/core/game/interaction/inter/GameInterface.java b/Server/src/main/content/global/handlers/iface/GameInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/GameInterface.java rename to Server/src/main/content/global/handlers/iface/GameInterface.java index 36d580aa0..0c8754f29 100644 --- a/Server/src/main/java/core/game/interaction/inter/GameInterface.java +++ b/Server/src/main/content/global/handlers/iface/GameInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -8,7 +8,7 @@ import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.combat.equipment.WeaponInterface.WeaponInterfaces; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/interaction/inter/GlassInterface.java b/Server/src/main/content/global/handlers/iface/GlassInterface.java similarity index 94% rename from Server/src/main/java/core/game/interaction/inter/GlassInterface.java rename to Server/src/main/content/global/handlers/iface/GlassInterface.java index 663beab2d..eedf8158d 100644 --- a/Server/src/main/java/core/game/interaction/inter/GlassInterface.java +++ b/Server/src/main/content/global/handlers/iface/GlassInterface.java @@ -1,13 +1,12 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.GlassProduct; +import content.global.skill.crafting.GlassProduct; import core.game.node.item.Item; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/inter/GliderInterface.java b/Server/src/main/content/global/handlers/iface/GliderInterface.java similarity index 82% rename from Server/src/main/java/core/game/interaction/inter/GliderInterface.java rename to Server/src/main/content/global/handlers/iface/GliderInterface.java index c67df24f8..08459cefe 100644 --- a/Server/src/main/java/core/game/interaction/inter/GliderInterface.java +++ b/Server/src/main/content/global/handlers/iface/GliderInterface.java @@ -1,11 +1,11 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.global.travel.glider.GliderPulse; -import core.game.content.global.travel.glider.Gliders; +import content.global.travel.glider.GliderPulse; +import content.global.travel.glider.Gliders; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/HairDresserInterface.kt b/Server/src/main/content/global/handlers/iface/HairDresserInterface.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/interaction/inter/HairDresserInterface.kt rename to Server/src/main/content/global/handlers/iface/HairDresserInterface.kt index 755f01796..1d7eca270 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/HairDresserInterface.kt +++ b/Server/src/main/content/global/handlers/iface/HairDresserInterface.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* +import core.api.* import core.game.component.Component import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable @@ -90,7 +90,7 @@ private const val M_COMB_OVER = 253 //Array of male hairstyles in the same order as the interface -val MALE_HAIR_STYLES = intArrayOf(M_BALD,M_DREAD,M_LONG, M_MEDIUM, M_MONK, M_SHORT, M_CLOSE_CROP, M_WILD_SPIKE, M_SPIKE, M_MOHAWK, M_WIND_BRAID, M_QUIFF, M_SAMURAI, M_PRINCE, M_CURTAINS, M_LONG_CURTAINS, M_SIDE_PART_SPIKE, M_TOP_KNOT, M_PONYTAIL_SPIKEY, M_LONG_SWEPT_FRINGE, M_EVANSTYLE, M_DRAGON, M_WARRIOR_CURTAINS, M_COMB_OVER) +val MALE_HAIR_STYLES = intArrayOf(M_BALD, M_DREAD, M_LONG, M_MEDIUM, M_MONK, M_SHORT, M_CLOSE_CROP, M_WILD_SPIKE, M_SPIKE, M_MOHAWK, M_WIND_BRAID, M_QUIFF, M_SAMURAI, M_PRINCE, M_CURTAINS, M_LONG_CURTAINS, M_SIDE_PART_SPIKE, M_TOP_KNOT, M_PONYTAIL_SPIKEY, M_LONG_SWEPT_FRINGE, M_EVANSTYLE, M_DRAGON, M_WARRIOR_CURTAINS, M_COMB_OVER) //Male Facial Hairs @@ -144,7 +144,7 @@ class HairDresserInterface : ComponentPlugin(){ } sendPlayerOnInterface(player, usedInterface, player_model_child) sendPlayerOnInterface(player, usedInterface, player_head_child) - sendAnimationOnInterface(player, FacialExpression.HAPPY.animationId, usedInterface, player_head_child) + sendAnimationOnInterface(player, core.game.dialogue.FacialExpression.HAPPY.animationId, usedInterface, player_head_child) player.toggleWardrobe(true) component?.setCloseEvent{pl,_ -> diff --git a/Server/src/main/java/core/game/interaction/inter/JewelleryInterface.java b/Server/src/main/content/global/handlers/iface/JewelleryInterface.java similarity index 93% rename from Server/src/main/java/core/game/interaction/inter/JewelleryInterface.java rename to Server/src/main/content/global/handlers/iface/JewelleryInterface.java index 1e65fb72f..11eb23415 100644 --- a/Server/src/main/java/core/game/interaction/inter/JewelleryInterface.java +++ b/Server/src/main/content/global/handlers/iface/JewelleryInterface.java @@ -1,21 +1,21 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; + +import content.global.skill.slayer.SlayerManager; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting.JewelleryItem; +import content.global.skill.crafting.jewellery.JewelleryCrafting; +import content.global.skill.crafting.jewellery.JewelleryCrafting.JewelleryItem; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Plugin; import core.plugin.Initializable; import core.tools.StringUtils; import kotlin.Unit; -import rs09.game.node.entity.skill.slayer.SlayerManager; /** * Represents the interface plugin used for jewellery crafting. diff --git a/Server/src/main/java/core/game/interaction/inter/LeatherCraftInterface.java b/Server/src/main/content/global/handlers/iface/LeatherCraftInterface.java similarity index 84% rename from Server/src/main/java/core/game/interaction/inter/LeatherCraftInterface.java rename to Server/src/main/content/global/handlers/iface/LeatherCraftInterface.java index d265a0ac9..e4b700a1a 100644 --- a/Server/src/main/java/core/game/interaction/inter/LeatherCraftInterface.java +++ b/Server/src/main/content/global/handlers/iface/LeatherCraftInterface.java @@ -1,13 +1,12 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting; -import core.game.node.entity.skill.crafting.armour.SoftCraftPulse; +import content.global.skill.crafting.armour.LeatherCrafting; +import content.global.skill.crafting.armour.SoftCraftPulse; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/inter/LeatherCraftPlugin.java b/Server/src/main/content/global/handlers/iface/LeatherCraftPlugin.java similarity index 87% rename from Server/src/main/java/core/game/interaction/inter/LeatherCraftPlugin.java rename to Server/src/main/content/global/handlers/iface/LeatherCraftPlugin.java index ae1cd2e7c..e0b297824 100644 --- a/Server/src/main/java/core/game/interaction/inter/LeatherCraftPlugin.java +++ b/Server/src/main/content/global/handlers/iface/LeatherCraftPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.plugin.Initializable; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting.SoftLeather; +import content.global.skill.crafting.armour.LeatherCrafting; +import content.global.skill.crafting.armour.LeatherCrafting.SoftLeather; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/inter/LoginInterfacePlugin.java b/Server/src/main/content/global/handlers/iface/LoginInterfacePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/inter/LoginInterfacePlugin.java rename to Server/src/main/content/global/handlers/iface/LoginInterfacePlugin.java index 9149bb56c..f91a3000e 100644 --- a/Server/src/main/java/core/game/interaction/inter/LoginInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/iface/LoginInterfacePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/LogoutInterface.java b/Server/src/main/content/global/handlers/iface/LogoutInterface.java similarity index 93% rename from Server/src/main/java/core/game/interaction/inter/LogoutInterface.java rename to Server/src/main/content/global/handlers/iface/LogoutInterface.java index 9a37ab1e7..ba1784c8f 100644 --- a/Server/src/main/java/core/game/interaction/inter/LogoutInterface.java +++ b/Server/src/main/content/global/handlers/iface/LogoutInterface.java @@ -1,10 +1,10 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/inter/MagicBookInterface.java b/Server/src/main/content/global/handlers/iface/MagicBookInterface.java similarity index 80% rename from Server/src/main/java/core/game/interaction/inter/MagicBookInterface.java rename to Server/src/main/content/global/handlers/iface/MagicBookInterface.java index 78dac7236..e29e7f114 100644 --- a/Server/src/main/java/core/game/interaction/inter/MagicBookInterface.java +++ b/Server/src/main/content/global/handlers/iface/MagicBookInterface.java @@ -1,17 +1,17 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import api.events.SpellCastEvent; +import content.global.skill.magic.SpellListener; +import content.global.skill.magic.SpellListeners; +import content.global.skill.magic.SpellUtils; +import core.game.event.SpellCastEvent; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.MagicSpell; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; -import rs09.game.node.entity.skill.magic.SpellListener; -import rs09.game.node.entity.skill.magic.SpellListeners; -import rs09.game.node.entity.skill.magic.SpellUtils; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Plugin; /** diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/MainGameInterface.kt b/Server/src/main/content/global/handlers/iface/MainGameInterface.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/inter/MainGameInterface.kt rename to Server/src/main/content/global/handlers/iface/MainGameInterface.kt index 5b8a6cbaf..243337f4e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/MainGameInterface.kt +++ b/Server/src/main/content/global/handlers/iface/MainGameInterface.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* +import core.api.* import core.game.component.CloseEvent import core.game.component.Component import core.game.node.entity.combat.equipment.WeaponInterface @@ -8,8 +8,8 @@ import core.game.node.entity.combat.equipment.WeaponInterface.WeaponInterfaces import core.game.node.entity.player.Player import core.game.node.entity.player.info.Rights import org.rs09.consts.Components -import rs09.game.interaction.InterfaceListener -import rs09.game.world.GameWorld.settings +import core.game.interaction.InterfaceListener +import core.game.world.GameWorld.settings class MainGameInterface : InterfaceListener { val TOPLEVEL = Components.TOPLEVEL_548 diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/MakeOverInterface.kt b/Server/src/main/content/global/handlers/iface/MakeOverInterface.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/interaction/inter/MakeOverInterface.kt rename to Server/src/main/content/global/handlers/iface/MakeOverInterface.kt index 92eeb1dd6..9c911007d 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/MakeOverInterface.kt +++ b/Server/src/main/content/global/handlers/iface/MakeOverInterface.kt @@ -1,9 +1,9 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.component.Component import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.appearance.Gender import core.game.node.item.Item @@ -33,8 +33,8 @@ class MakeOverInterface : ComponentPlugin(){ player.packetDispatch.sendNpcOnInterface(1,component.id, MALE_CHILD_ID) player.packetDispatch.sendNpcOnInterface(5,component.id, FEMALE_CHILD_ID) //Send chathead animations to interface - player.packetDispatch.sendAnimationInterface(FacialExpression.SILENT.animationId,component.id, MALE_CHILD_ID) - player.packetDispatch.sendAnimationInterface(FacialExpression.SILENT.animationId,component.id, FEMALE_CHILD_ID) + player.packetDispatch.sendAnimationInterface(core.game.dialogue.FacialExpression.SILENT.animationId,component.id, MALE_CHILD_ID) + player.packetDispatch.sendAnimationInterface(core.game.dialogue.FacialExpression.SILENT.animationId,component.id, FEMALE_CHILD_ID) //Check for makeover voucher and then change interface text if it's there if(player.inventory.containsAtLeastOneItem(Items.MAKEOVER_VOUCHER_5606)){ diff --git a/Server/src/main/java/core/game/interaction/inter/MusicTabInterface.java b/Server/src/main/content/global/handlers/iface/MusicTabInterface.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/MusicTabInterface.java rename to Server/src/main/content/global/handlers/iface/MusicTabInterface.java index 112092586..579607fe5 100644 --- a/Server/src/main/java/core/game/interaction/inter/MusicTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/MusicTabInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/MysticStaffEnchantingPlugin.java b/Server/src/main/content/global/handlers/iface/MysticStaffEnchantingPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/inter/MysticStaffEnchantingPlugin.java rename to Server/src/main/content/global/handlers/iface/MysticStaffEnchantingPlugin.java index 011a360b2..af798008d 100644 --- a/Server/src/main/java/core/game/interaction/inter/MysticStaffEnchantingPlugin.java +++ b/Server/src/main/content/global/handlers/iface/MysticStaffEnchantingPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/NPCContactInterface.kt b/Server/src/main/content/global/handlers/iface/NPCContactInterface.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/inter/NPCContactInterface.kt rename to Server/src/main/content/global/handlers/iface/NPCContactInterface.kt index 7f49bbe5f..ebe4a6d54 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/NPCContactInterface.kt +++ b/Server/src/main/content/global/handlers/iface/NPCContactInterface.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.node.entity.npc.NPC import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InterfaceListener +import core.game.dialogue.DialogueFile +import core.game.interaction.InterfaceListener class NPCContactInterface : InterfaceListener { val contactNPCs = arrayOf(NPCs.HONEST_JIMMY_4362, NPCs.BERT_3108, NPCs.ADVISOR_GHRIM_1375, NPCs.TURAEL_8273, NPCs.LANTHUS_1526, NPCs.SUMONA_7780, NPCs.MAZCHNA_8274, NPCs.DURADEL_8275, NPCs.VANNAKA_1597, NPCs.DARK_MAGE_2262, NPCs.CHAELDAR_1598, NPCs.CYRISUS_432, NPCs.LARRY_5424) diff --git a/Server/src/main/java/core/game/interaction/inter/OrbViewingInterface.java b/Server/src/main/content/global/handlers/iface/OrbViewingInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/OrbViewingInterface.java rename to Server/src/main/content/global/handlers/iface/OrbViewingInterface.java index a6b2670ee..aa21b7cce 100644 --- a/Server/src/main/java/core/game/interaction/inter/OrbViewingInterface.java +++ b/Server/src/main/content/global/handlers/iface/OrbViewingInterface.java @@ -1,6 +1,6 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import rs09.ServerConstants; +import core.ServerConstants; import core.cache.def.impl.SceneryDefinition; import core.game.component.CloseEvent; import core.game.component.Component; @@ -13,7 +13,7 @@ import core.game.system.task.Pulse; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles an orb viewing interface. diff --git a/Server/src/main/java/core/game/interaction/inter/PlayerExamineInterfacePlugin.java b/Server/src/main/content/global/handlers/iface/PlayerExamineInterfacePlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/PlayerExamineInterfacePlugin.java rename to Server/src/main/content/global/handlers/iface/PlayerExamineInterfacePlugin.java index 0009ec3c6..8a944752c 100644 --- a/Server/src/main/java/core/game/interaction/inter/PlayerExamineInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/iface/PlayerExamineInterfacePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/PrayerTabInterface.java b/Server/src/main/content/global/handlers/iface/PrayerTabInterface.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/PrayerTabInterface.java rename to Server/src/main/content/global/handlers/iface/PrayerTabInterface.java index 22c16313a..b1c9de0db 100644 --- a/Server/src/main/java/core/game/interaction/inter/PrayerTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/PrayerTabInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/PuppyInterfacePlugin.kt b/Server/src/main/content/global/handlers/iface/PuppyInterfacePlugin.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/interaction/inter/PuppyInterfacePlugin.kt rename to Server/src/main/content/global/handlers/iface/PuppyInterfacePlugin.kt index 80c98cd94..3df8d0c56 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/PuppyInterfacePlugin.kt +++ b/Server/src/main/content/global/handlers/iface/PuppyInterfacePlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/java/core/game/interaction/inter/QuestTabInterface.java b/Server/src/main/content/global/handlers/iface/QuestTabInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/QuestTabInterface.java rename to Server/src/main/content/global/handlers/iface/QuestTabInterface.java index 0703b87b6..313e98b30 100644 --- a/Server/src/main/java/core/game/interaction/inter/QuestTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/QuestTabInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/RequestAssistInterface.java b/Server/src/main/content/global/handlers/iface/RequestAssistInterface.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/RequestAssistInterface.java rename to Server/src/main/content/global/handlers/iface/RequestAssistInterface.java index 53059f691..952a0bf16 100644 --- a/Server/src/main/java/core/game/interaction/inter/RequestAssistInterface.java +++ b/Server/src/main/content/global/handlers/iface/RequestAssistInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt b/Server/src/main/content/global/handlers/iface/RulesAndInfo.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt rename to Server/src/main/content/global/handlers/iface/RulesAndInfo.kt index 4b6219177..f52b725e6 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/RulesAndInfo.kt +++ b/Server/src/main/content/global/handlers/iface/RulesAndInfo.kt @@ -1,10 +1,9 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface -import api.* +import core.api.* import core.game.node.entity.player.Player import core.tools.RandomFunction -import rs09.game.interaction.InterfaceListener -import rs09.game.system.SystemLogger +import core.game.interaction.InterfaceListener object RulesAndInfo { val RULES = arrayOf( diff --git a/Server/src/main/java/core/game/interaction/inter/SawmillPlankInterface.java b/Server/src/main/content/global/handlers/iface/SawmillPlankInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/SawmillPlankInterface.java rename to Server/src/main/content/global/handlers/iface/SawmillPlankInterface.java index e5e3b3784..00957533d 100644 --- a/Server/src/main/java/core/game/interaction/inter/SawmillPlankInterface.java +++ b/Server/src/main/content/global/handlers/iface/SawmillPlankInterface.java @@ -1,6 +1,6 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; diff --git a/Server/src/main/java/core/game/interaction/inter/SettingTabInterface.java b/Server/src/main/content/global/handlers/iface/SettingTabInterface.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/SettingTabInterface.java rename to Server/src/main/content/global/handlers/iface/SettingTabInterface.java index 93f7a975e..9c660554b 100644 --- a/Server/src/main/java/core/game/interaction/inter/SettingTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/SettingTabInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/ShoppingPlugin.java b/Server/src/main/content/global/handlers/iface/ShoppingPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/inter/ShoppingPlugin.java rename to Server/src/main/content/global/handlers/iface/ShoppingPlugin.java index 64787fc23..6f05c691f 100644 --- a/Server/src/main/java/core/game/interaction/inter/ShoppingPlugin.java +++ b/Server/src/main/content/global/handlers/iface/ShoppingPlugin.java @@ -1,7 +1,7 @@ /* package core.game.interaction.inter; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; diff --git a/Server/src/main/java/core/game/interaction/inter/SkillInterface.java b/Server/src/main/content/global/handlers/iface/SkillInterface.java similarity index 95% rename from Server/src/main/java/core/game/interaction/inter/SkillInterface.java rename to Server/src/main/content/global/handlers/iface/SkillInterface.java index adecfbc25..b9d5e5da4 100644 --- a/Server/src/main/java/core/game/interaction/inter/SkillInterface.java +++ b/Server/src/main/content/global/handlers/iface/SkillInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/java/core/game/interaction/inter/SkillTabInterface.java b/Server/src/main/content/global/handlers/iface/SkillTabInterface.java similarity index 96% rename from Server/src/main/java/core/game/interaction/inter/SkillTabInterface.java rename to Server/src/main/content/global/handlers/iface/SkillTabInterface.java index cf4275a7b..f2255d97c 100644 --- a/Server/src/main/java/core/game/interaction/inter/SkillTabInterface.java +++ b/Server/src/main/content/global/handlers/iface/SkillTabInterface.java @@ -1,14 +1,12 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.skill.LevelUp; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/inter/SmeltingInterface.java b/Server/src/main/content/global/handlers/iface/SmeltingInterface.java similarity index 92% rename from Server/src/main/java/core/game/interaction/inter/SmeltingInterface.java rename to Server/src/main/content/global/handlers/iface/SmeltingInterface.java index 31af38dcc..4032ff524 100644 --- a/Server/src/main/java/core/game/interaction/inter/SmeltingInterface.java +++ b/Server/src/main/content/global/handlers/iface/SmeltingInterface.java @@ -1,14 +1,13 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.smithing.smelting.Bar; -import core.game.node.entity.skill.smithing.smelting.SmeltingPulse; +import content.global.skill.smithing.smelting.Bar; +import content.global.skill.smithing.smelting.SmeltingPulse; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.plugin.Plugin; import kotlin.Unit; diff --git a/Server/src/main/java/core/game/interaction/inter/SmithingInterface.java b/Server/src/main/content/global/handlers/iface/SmithingInterface.java similarity index 81% rename from Server/src/main/java/core/game/interaction/inter/SmithingInterface.java rename to Server/src/main/content/global/handlers/iface/SmithingInterface.java index d1064874e..3256736be 100644 --- a/Server/src/main/java/core/game/interaction/inter/SmithingInterface.java +++ b/Server/src/main/content/global/handlers/iface/SmithingInterface.java @@ -1,16 +1,15 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.smithing.BarType; -import core.game.node.entity.skill.smithing.Bars; -import core.game.node.entity.skill.smithing.SmithingPulse; -import core.game.node.entity.skill.smithing.SmithingType; +import content.global.skill.smithing.BarType; +import content.global.skill.smithing.Bars; +import content.global.skill.smithing.SmithingPulse; +import content.global.skill.smithing.SmithingType; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Plugin; import kotlin.Unit; diff --git a/Server/src/main/java/core/game/interaction/inter/SpinningInterface.java b/Server/src/main/content/global/handlers/iface/SpinningInterface.java similarity index 86% rename from Server/src/main/java/core/game/interaction/inter/SpinningInterface.java rename to Server/src/main/content/global/handlers/iface/SpinningInterface.java index 777887f36..8ee642e73 100644 --- a/Server/src/main/java/core/game/interaction/inter/SpinningInterface.java +++ b/Server/src/main/content/global/handlers/iface/SpinningInterface.java @@ -1,14 +1,13 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.node.entity.skill.crafting.spinning.SpinningItem; -import core.game.node.entity.skill.crafting.spinning.SpinningPulse; +import content.global.skill.crafting.spinning.SpinningItem; +import content.global.skill.crafting.spinning.SpinningPulse; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/inter/TanningInterface.java b/Server/src/main/content/global/handlers/iface/TanningInterface.java similarity index 90% rename from Server/src/main/java/core/game/interaction/inter/TanningInterface.java rename to Server/src/main/content/global/handlers/iface/TanningInterface.java index 5c1952984..aa15e4b11 100644 --- a/Server/src/main/java/core/game/interaction/inter/TanningInterface.java +++ b/Server/src/main/content/global/handlers/iface/TanningInterface.java @@ -1,12 +1,11 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.node.entity.skill.crafting.TanningProduct; +import content.global.skill.crafting.TanningProduct; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/TeleotherInterface.kt b/Server/src/main/content/global/handlers/iface/TeleotherInterface.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/inter/TeleotherInterface.kt rename to Server/src/main/content/global/handlers/iface/TeleotherInterface.kt index 53d2589e4..051bc041b 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/TeleotherInterface.kt +++ b/Server/src/main/content/global/handlers/iface/TeleotherInterface.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Components -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class TeleotherInterface : InterfaceListener { val IFACE = Components.TELEPORT_OTHER_326 diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/ThessaliaInterface.kt b/Server/src/main/content/global/handlers/iface/ThessaliaInterface.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/inter/ThessaliaInterface.kt rename to Server/src/main/content/global/handlers/iface/ThessaliaInterface.kt index 35df3f662..ec6dcf98e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/ThessaliaInterface.kt +++ b/Server/src/main/content/global/handlers/iface/ThessaliaInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.inter +package content.global.handlers.iface import core.game.component.Component import core.game.component.ComponentDefinition @@ -174,25 +174,25 @@ class ThessaliaInterface : ComponentPlugin(){ else -> when(component?.id){ THESSALIA_MALE_COMPONENT -> { when(button){ - 182 -> player.setAttribute("thes-type",colorType.TORSO) - 183 -> player.setAttribute("thes-type",colorType.ARMS) - 184 -> player.setAttribute("thes-type",colorType.LEGS) + 182 -> player.setAttribute("thes-type", colorType.TORSO) + 183 -> player.setAttribute("thes-type", colorType.ARMS) + 184 -> player.setAttribute("thes-type", colorType.LEGS) } if(maleArmsButtonRange.contains(button)) updateArms(player,button,true) if(maleTorsoButtonRange.contains(button)) updateTop(player,button,true) if(maleLegsButtonRange.contains(button)) updateLegs(player,button,true) - if(maleColorButtonRange.contains(button)) updateColor(player,button,true,player.getAttribute("thes-type",colorType.TORSO)) + if(maleColorButtonRange.contains(button)) updateColor(player,button,true,player.getAttribute("thes-type", colorType.TORSO)) } THESSALIA_FEMALE_COMPONENT -> { when(button){ - 183 -> player.setAttribute("thes-type",colorType.TORSO) - 184 -> player.setAttribute("thes-type",colorType.ARMS) - 185 -> player.setAttribute("thes-type",colorType.LEGS) + 183 -> player.setAttribute("thes-type", colorType.TORSO) + 184 -> player.setAttribute("thes-type", colorType.ARMS) + 185 -> player.setAttribute("thes-type", colorType.LEGS) } if(femaleArmsButtonRange.contains(button)) updateArms(player,button,false) if(femaleTorsoButtonRange.contains(button)) updateTop(player,button,false) if(femaleLegsButtonRange.contains(button)) updateLegs(player,button,false) - if(femaleColorButtonRange.contains(button)) updateColor(player,button,false,player.getAttribute("thes-type",colorType.TORSO)) + if(femaleColorButtonRange.contains(button)) updateColor(player,button,false,player.getAttribute("thes-type", colorType.TORSO)) } } } diff --git a/Server/src/main/java/core/game/interaction/inter/TradeInterfacePlugin.java b/Server/src/main/content/global/handlers/iface/TradeInterfacePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/TradeInterfacePlugin.java rename to Server/src/main/content/global/handlers/iface/TradeInterfacePlugin.java index 4537fb0fa..1d3568715 100644 --- a/Server/src/main/java/core/game/interaction/inter/TradeInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/iface/TradeInterfacePlugin.java @@ -1,6 +1,6 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; diff --git a/Server/src/main/java/core/game/interaction/inter/WorldMapInterface.java b/Server/src/main/content/global/handlers/iface/WorldMapInterface.java similarity index 96% rename from Server/src/main/java/core/game/interaction/inter/WorldMapInterface.java rename to Server/src/main/content/global/handlers/iface/WorldMapInterface.java index b7f8f6759..756600db3 100644 --- a/Server/src/main/java/core/game/interaction/inter/WorldMapInterface.java +++ b/Server/src/main/content/global/handlers/iface/WorldMapInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankChargeInterface.kt b/Server/src/main/content/global/handlers/iface/bank/BankChargeInterface.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankChargeInterface.kt rename to Server/src/main/content/global/handlers/iface/bank/BankChargeInterface.kt index 5ba257d33..cdf582f43 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankChargeInterface.kt +++ b/Server/src/main/content/global/handlers/iface/bank/BankChargeInterface.kt @@ -1,14 +1,13 @@ -package rs09.game.interaction.inter.bank +package content.global.handlers.iface.bank -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.item.Item import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener /** * Handles bank charge interface for Eniola at ZMI altar. @@ -76,7 +75,7 @@ class BankChargeInterface : InterfaceListener { "I'm afraid you don't have the necessary runes with you at this time, so " + "I can't allow you to access your account. Please bring 20 runes of one type " + "and you'll be able to open your bank.", - FacialExpression.NEUTRAL + core.game.dialogue.FacialExpression.NEUTRAL ) return true diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankDepositBoxInterface.kt b/Server/src/main/content/global/handlers/iface/bank/BankDepositBoxInterface.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankDepositBoxInterface.kt rename to Server/src/main/content/global/handlers/iface/bank/BankDepositBoxInterface.kt index c4982b8f2..e190a8dde 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankDepositBoxInterface.kt +++ b/Server/src/main/content/global/handlers/iface/bank/BankDepositBoxInterface.kt @@ -1,15 +1,14 @@ -package rs09.game.interaction.inter.bank +package content.global.handlers.iface.bank -import api.animate -import api.dumpBeastOfBurden -import api.runWorldTask -import api.sendMessage +import core.api.animate +import core.api.dumpBeastOfBurden +import core.api.runWorldTask +import core.api.sendMessage import core.game.component.Component import core.game.node.entity.player.Player import org.rs09.consts.Animations import org.rs09.consts.Components -import rs09.game.interaction.InterfaceListener -import rs09.game.interaction.util.BankUtils +import core.game.interaction.InterfaceListener /** * Allows the user to interact with the diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankInterface.kt b/Server/src/main/content/global/handlers/iface/bank/BankInterface.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankInterface.kt rename to Server/src/main/content/global/handlers/iface/bank/BankInterface.kt index 6475475fb..bb55b6d2e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/bank/BankInterface.kt +++ b/Server/src/main/content/global/handlers/iface/bank/BankInterface.kt @@ -1,18 +1,15 @@ -package rs09.game.interaction.inter.bank +package content.global.handlers.iface.bank -import api.* +import core.api.* import core.game.component.Component import core.game.container.Container import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.tools.StringUtils import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.content.dialogue.region.worldwide.bank.BankDepositDialogue -import rs09.game.content.dialogue.region.worldwide.bank.BankHelpDialogue -import rs09.game.interaction.InterfaceListener -import rs09.game.interaction.util.BankUtils +import core.ServerConstants +import content.global.dialogue.BankDepositDialogue +import content.global.dialogue.BankHelpDialogue +import core.game.interaction.InterfaceListener /** * Allows the user to interact with the Bank Interface. diff --git a/Server/src/main/java/core/game/interaction/inter/BankPinInterface.java b/Server/src/main/content/global/handlers/iface/bank/BankPinInterface.java similarity index 97% rename from Server/src/main/java/core/game/interaction/inter/BankPinInterface.java rename to Server/src/main/content/global/handlers/iface/bank/BankPinInterface.java index 8b44885c0..7c70b88a3 100644 --- a/Server/src/main/java/core/game/interaction/inter/BankPinInterface.java +++ b/Server/src/main/content/global/handlers/iface/bank/BankPinInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.inter; +package content.global.handlers.iface.bank; import core.game.component.Component; import core.game.component.ComponentDefinition; diff --git a/Server/src/main/kotlin/rs09/game/interaction/util/BankUtils.kt b/Server/src/main/content/global/handlers/iface/bank/BankUtils.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/interaction/util/BankUtils.kt rename to Server/src/main/content/global/handlers/iface/bank/BankUtils.kt index 0f6ab9160..2a056fee2 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/util/BankUtils.kt +++ b/Server/src/main/content/global/handlers/iface/bank/BankUtils.kt @@ -1,8 +1,7 @@ -package rs09.game.interaction.util +package content.global.handlers.iface.bank -import api.InputType -import api.sendInputDialogue -import api.sendMessage +import core.api.InputType +import core.api.sendInputDialogue import core.game.node.entity.player.Player object BankUtils { diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/ge/ExchangeItemSets.kt b/Server/src/main/content/global/handlers/iface/ge/ExchangeItemSets.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/interaction/inter/ge/ExchangeItemSets.kt rename to Server/src/main/content/global/handlers/iface/ge/ExchangeItemSets.kt index 51c1150ef..8547bf3c4 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/ge/ExchangeItemSets.kt +++ b/Server/src/main/content/global/handlers/iface/ge/ExchangeItemSets.kt @@ -1,8 +1,8 @@ -package rs09.game.interaction.inter.ge +package content.global.handlers.iface.ge -import api.getAttribute -import api.openInterface -import api.setAttribute +import core.api.getAttribute +import core.api.openInterface +import core.api.setAttribute import core.game.component.Component import core.game.container.Container import core.game.container.ContainerEvent @@ -11,7 +11,7 @@ import core.game.container.access.InterfaceContainer import core.game.ge.GEItemSet import core.game.node.entity.player.Player import org.rs09.consts.Components -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class ExchangeItemSets : InterfaceListener { override fun defineInterfaceListeners() { diff --git a/Server/src/main/java/core/game/interaction/inter/GrandExchangeInterface.java b/Server/src/main/content/global/handlers/iface/ge/GrandExchangeInterface.java similarity index 94% rename from Server/src/main/java/core/game/interaction/inter/GrandExchangeInterface.java rename to Server/src/main/content/global/handlers/iface/ge/GrandExchangeInterface.java index 8f6809de5..a6fa904c9 100644 --- a/Server/src/main/java/core/game/interaction/inter/GrandExchangeInterface.java +++ b/Server/src/main/content/global/handlers/iface/ge/GrandExchangeInterface.java @@ -1,6 +1,5 @@ -package core.game.interaction.inter; +package content.global.handlers.iface.ge; -import static api.ContentAPIKt.*; import core.cache.def.impl.CS2Mapping; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; @@ -8,7 +7,6 @@ import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.ge.GEGuidePrice; import core.game.ge.GEItemSet; -import core.game.ge.OfferState; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; @@ -18,13 +16,10 @@ import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; import core.plugin.Initializable; import core.plugin.Plugin; -import kotlin.Unit; -import rs09.game.ge.GrandExchange; -import rs09.game.ge.GrandExchangeOffer; -import rs09.game.ge.GrandExchangeRecords; -import rs09.game.interaction.inter.ge.StockMarket; -import rs09.game.interaction.npc.BogrogPouchSwapper; -import rs09.game.world.GameWorld; +import core.game.ge.GrandExchangeOffer; +import core.game.ge.GrandExchangeRecords; +import content.region.kandarin.feldip.gutanoth.handlers.BogrogPouchSwapper; +import core.game.world.GameWorld; /** * Handles the Grand Exchange interface options. diff --git a/Server/src/main/kotlin/rs09/game/interaction/inter/ge/StockMarket.kt b/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/inter/ge/StockMarket.kt rename to Server/src/main/content/global/handlers/iface/ge/StockMarket.kt index b3e71a9a8..c952e9086 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/inter/ge/StockMarket.kt +++ b/Server/src/main/content/global/handlers/iface/ge/StockMarket.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.inter.ge +package content.global.handlers.iface.ge -import api.* +import core.api.* import core.game.component.Component import core.game.ge.OfferState import core.game.node.entity.player.Player @@ -12,12 +12,12 @@ import core.net.packet.context.ContainerContext import core.net.packet.out.Config import core.net.packet.out.ContainerPacket import org.rs09.consts.Components -import rs09.game.ge.GrandExchange -import rs09.game.ge.GrandExchangeOffer -import rs09.game.ge.GrandExchangeRecords -import rs09.game.ge.PriceIndex -import rs09.game.interaction.InterfaceListener -import rs09.game.system.SystemLogger +import core.game.ge.GrandExchange +import core.game.ge.GrandExchangeOffer +import core.game.ge.GrandExchangeRecords +import core.game.ge.PriceIndex +import core.game.interaction.InterfaceListener +import core.tools.SystemLogger /** * Handles the grand exchange interface (Stock Market) diff --git a/Server/src/main/java/core/game/interaction/item/BirdNestPlugin.java b/Server/src/main/content/global/handlers/item/BirdNestPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/item/BirdNestPlugin.java rename to Server/src/main/content/global/handlers/item/BirdNestPlugin.java index 19b2a3cf9..30d4e64de 100644 --- a/Server/src/main/java/core/game/interaction/item/BirdNestPlugin.java +++ b/Server/src/main/content/global/handlers/item/BirdNestPlugin.java @@ -1,6 +1,6 @@ -package core.game.interaction.item; +package content.global.handlers.item; -import core.game.content.global.BirdNest; +import content.data.tables.BirdNest; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/item/BookreadOption.java b/Server/src/main/content/global/handlers/item/BookreadOption.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/BookreadOption.java rename to Server/src/main/content/global/handlers/item/BookreadOption.java index 92bb0be88..02ad8f1a8 100644 --- a/Server/src/main/java/core/game/interaction/item/BookreadOption.java +++ b/Server/src/main/content/global/handlers/item/BookreadOption.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/BraceletOfClayPlugin.kt b/Server/src/main/content/global/handlers/item/BraceletOfClayPlugin.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/interaction/item/BraceletOfClayPlugin.kt rename to Server/src/main/content/global/handlers/item/BraceletOfClayPlugin.kt index 1d445752b..26fd23008 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/BraceletOfClayPlugin.kt +++ b/Server/src/main/content/global/handlers/item/BraceletOfClayPlugin.kt @@ -1,9 +1,9 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the bracelet of clay operate option. diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/CadavaPotionListener.kt b/Server/src/main/content/global/handlers/item/CadavaPotionListener.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/interaction/item/CadavaPotionListener.kt rename to Server/src/main/content/global/handlers/item/CadavaPotionListener.kt index fafeccd97..35c3fa472 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/CadavaPotionListener.kt +++ b/Server/src/main/content/global/handlers/item/CadavaPotionListener.kt @@ -1,9 +1,9 @@ package rs09.game.interaction.`object` -import api.sendItemDialogue +import core.api.sendItemDialogue import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author bushtail diff --git a/Server/src/main/java/core/game/interaction/item/CasketPlugin.java b/Server/src/main/content/global/handlers/item/CasketPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/item/CasketPlugin.java rename to Server/src/main/content/global/handlers/item/CasketPlugin.java index a5888d9cd..23a80ff53 100644 --- a/Server/src/main/java/core/game/interaction/item/CasketPlugin.java +++ b/Server/src/main/content/global/handlers/item/CasketPlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.item; +package content.global.handlers.item; import java.util.ArrayList; import java.util.List; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -15,8 +15,8 @@ import core.plugin.Plugin; import core.tools.RandomFunction; import core.tools.StringUtils; import org.rs09.consts.Items; -import rs09.game.content.global.WeightBasedTable; -import rs09.game.content.global.WeightedItem; +import core.api.utils.WeightBasedTable; +import core.api.utils.WeightedItem; /** * Represents the casket handling plugin. diff --git a/Server/src/main/java/core/game/interaction/item/ConsumableOptionPlugin.java b/Server/src/main/content/global/handlers/item/ConsumableOptionPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/item/ConsumableOptionPlugin.java rename to Server/src/main/content/global/handlers/item/ConsumableOptionPlugin.java index 577874124..1eff2635b 100644 --- a/Server/src/main/java/core/game/interaction/item/ConsumableOptionPlugin.java +++ b/Server/src/main/content/global/handlers/item/ConsumableOptionPlugin.java @@ -1,7 +1,9 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; -import core.game.content.consumable.*; +import core.game.consumable.Consumable; +import content.data.consumables.Consumables; +import core.game.consumable.Potion; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DestroyItemPlugin.java b/Server/src/main/content/global/handlers/item/DestroyItemPlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/DestroyItemPlugin.java rename to Server/src/main/content/global/handlers/item/DestroyItemPlugin.java index 9825f1231..ced363027 100644 --- a/Server/src/main/java/core/game/content/dialogue/DestroyItemPlugin.java +++ b/Server/src/main/content/global/handlers/item/DestroyItemPlugin.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.global.handlers.item; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/item/DiangoItemPlugin.java b/Server/src/main/content/global/handlers/item/DiangoItemPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/DiangoItemPlugin.java rename to Server/src/main/content/global/handlers/item/DiangoItemPlugin.java index 5a570c886..a1ef85b6d 100644 --- a/Server/src/main/java/core/game/interaction/item/DiangoItemPlugin.java +++ b/Server/src/main/content/global/handlers/item/DiangoItemPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/DragonfireShieldPlugin.java b/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/item/DragonfireShieldPlugin.java rename to Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java index 32ae59fbb..c2ada0374 100644 --- a/Server/src/main/java/core/game/interaction/item/DragonfireShieldPlugin.java +++ b/Server/src/main/content/global/handlers/item/DragonfireShieldPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.container.impl.EquipmentContainer; @@ -8,7 +8,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.item.Item; @@ -17,9 +17,9 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import core.game.node.entity.combat.CombatPulse; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; import java.util.concurrent.TimeUnit; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/DrinkBlamishOilListener.kt b/Server/src/main/content/global/handlers/item/DrinkBlamishOilListener.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/interaction/item/DrinkBlamishOilListener.kt rename to Server/src/main/content/global/handlers/item/DrinkBlamishOilListener.kt index 1a009bece..0e6c423b1 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/DrinkBlamishOilListener.kt +++ b/Server/src/main/content/global/handlers/item/DrinkBlamishOilListener.kt @@ -1,14 +1,14 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class DrinkBlamishOilListener : InteractionListener { override fun defineListeners() { - on(Items.BLAMISH_OIL_1582, IntType.ITEM, "drink"){player, _ -> + on(Items.BLAMISH_OIL_1582, IntType.ITEM, "drink"){ player, _ -> sendPlayerDialogue(player, "You know... I'd really rather not.") return@on true } diff --git a/Server/src/main/java/core/game/interaction/item/DustHandPlugin.java b/Server/src/main/content/global/handlers/item/DustHandPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/DustHandPlugin.java rename to Server/src/main/content/global/handlers/item/DustHandPlugin.java index 4c414cb61..8e4728040 100644 --- a/Server/src/main/java/core/game/interaction/item/DustHandPlugin.java +++ b/Server/src/main/content/global/handlers/item/DustHandPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/EmptyOptionPlugin.java b/Server/src/main/content/global/handlers/item/EmptyOptionPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/item/EmptyOptionPlugin.java rename to Server/src/main/content/global/handlers/item/EmptyOptionPlugin.java index 6292c7c1c..f5e8f9624 100644 --- a/Server/src/main/java/core/game/interaction/item/EmptyOptionPlugin.java +++ b/Server/src/main/content/global/handlers/item/EmptyOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantJewelleryTabOption.kt b/Server/src/main/content/global/handlers/item/EnchantJewelleryTabOption.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/item/EnchantJewelleryTabOption.kt rename to Server/src/main/content/global/handlers/item/EnchantJewelleryTabOption.kt index a4cfb3547..987b32a5c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantJewelleryTabOption.kt +++ b/Server/src/main/content/global/handlers/item/EnchantJewelleryTabOption.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.item +package content.global.handlers.item import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler @@ -11,7 +11,7 @@ import core.plugin.Plugin import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.Items -import rs09.game.system.SystemLogger +import core.tools.SystemLogger private val LVL_1_ENCHANT = mapOf( Items.SAPPHIRE_RING_1637 to Item(Items.RING_OF_RECOIL_2550), diff --git a/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt b/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt new file mode 100644 index 000000000..584b5d88c --- /dev/null +++ b/Server/src/main/content/global/handlers/item/EnchantedGemListener.kt @@ -0,0 +1,66 @@ +package content.global.handlers.item + +import core.api.* +import content.global.skill.slayer.Tasks +import org.rs09.consts.Items +import core.game.dialogue.DialogueFile +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE + +class EnchantedGemListener : InteractionListener { + override fun defineListeners() { + on(Items.ENCHANTED_GEM_4155, IntType.ITEM, "activate") { player, _ -> + openDialogue(player, EnchantedGemDialogue()) + return@on true + } + } +} + +class EnchantedGemDialogue() : DialogueFile() { + var firstRun = true + override fun handle(interfaceId: Int, buttonId: Int) { + npc = getSlayerMaster(player!!) + when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there ${player!!.username}, what can I help you with?").also { stage++ } + 1 -> showTopics( + Topic(core.game.dialogue.FacialExpression.ASKING, "How am I doing so far?", 100), + Topic(core.game.dialogue.FacialExpression.HALF_ASKING, "Who are you?", 200), + Topic(core.game.dialogue.FacialExpression.HALF_ASKING, "Where are you?", 300), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "Got any tips for me?", 400), + IfTopic(core.game.dialogue.FacialExpression.FRIENDLY, "Nothing really.", END_DIALOGUE, firstRun), + IfTopic(core.game.dialogue.FacialExpression.HAPPY, "That's all thanks.", END_DIALOGUE, !firstRun) + ) + 100 -> { + firstRun = false + if(!hasSlayerTask(player!!)) { + npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "You need something new to hunt. Come and see me when you can and I'll give you a new task.").also { stage = 1 } + } else { + if(getSlayerTask(player!!) == Tasks.JAD) { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You're currently assigned to kill TzTok-Jad!") + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You're currently assigned to kill ${getSlayerTaskName(player!!)}s; only ${getSlayerTaskKillsRemaining(player!!)} more to go.") + } + setVarbit(player!!, 2502, 0, getSlayerTaskFlags(player!!) shr 4) + stage = 1 + } + } + 200 -> { + firstRun = false + npcl(core.game.dialogue.FacialExpression.HAPPY, "My name's ${getSlayerMaster(player!!).name}, I'm the Slayer Master best able to train you.").also { stage = 1 } + } + 300 -> { + firstRun = false + npcl(core.game.dialogue.FacialExpression.HAPPY, "You'll find me in ${getSlayerMasterLocation(player!!)}, I'll be here when you need a new task.").also { stage = 1 } + } + 400 -> { + firstRun = false + npc(core.game.dialogue.FacialExpression.FRIENDLY, *getSlayerTip(player!!)) + stage++ + } + 401 -> player(core.game.dialogue.FacialExpression.HAPPY, "Great, thanks!").also { stage = 1 } + } + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantedJewelleryListener.kt b/Server/src/main/content/global/handlers/item/EnchantedJewelleryListener.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/item/EnchantedJewelleryListener.kt rename to Server/src/main/content/global/handlers/item/EnchantedJewelleryListener.kt index 32480e8b7..47947ec57 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantedJewelleryListener.kt +++ b/Server/src/main/content/global/handlers/item/EnchantedJewelleryListener.kt @@ -1,16 +1,16 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.openDialogue -import api.sendMessage +import core.api.openDialogue +import core.api.sendMessage import core.game.node.Node import core.game.node.entity.impl.PulseType import core.game.node.entity.player.Player import core.game.node.item.Item -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.global.EnchantedJewellery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import content.data.EnchantedJewellery +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.START_DIALOGUE /** * Listener for enchanted jewellery options diff --git a/Server/src/main/java/core/game/interaction/item/ExplorersRingPlugin.kt b/Server/src/main/content/global/handlers/item/ExplorersRingPlugin.kt similarity index 81% rename from Server/src/main/java/core/game/interaction/item/ExplorersRingPlugin.kt rename to Server/src/main/content/global/handlers/item/ExplorersRingPlugin.kt index a0d326f77..912045136 100644 --- a/Server/src/main/java/core/game/interaction/item/ExplorersRingPlugin.kt +++ b/Server/src/main/content/global/handlers/item/ExplorersRingPlugin.kt @@ -1,20 +1,20 @@ -package core.game.interaction.item +package content.global.handlers.item -import api.hasLevelStat -import api.sendMessage -import api.teleport -import api.visualize +import core.api.hasLevelStat +import core.api.sendMessage +import core.api.teleport +import core.api.visualize import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.node.entity.skill.Skills import core.game.world.map.Location import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.ServerStore.Companion.getBoolean -import rs09.ServerStore.Companion.getInt -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.ServerStore +import core.ServerStore.Companion.getBoolean +import core.ServerStore.Companion.getInt +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Handles the explorers ring. @@ -28,7 +28,7 @@ class ExplorersRingPlugin : InteractionListener { override fun defineListeners() { - on(RINGS, IntType.ITEM, "run-replenish"){player, node -> + on(RINGS, IntType.ITEM, "run-replenish"){ player, node -> val charges = getStoreFile().getInt(player.username.toLowerCase() + ":run") if (charges >= getRingLevel(node.id)) { sendMessage(player,"You have used all the charges you can for one day.") @@ -44,7 +44,7 @@ class ExplorersRingPlugin : InteractionListener { return@on true } - on(RINGS, IntType.ITEM, "low-alchemy"){player, _ -> + on(RINGS, IntType.ITEM, "low-alchemy"){ player, _ -> if (!hasLevelStat(player, Skills.MAGIC, 21)) { sendMessage(player,"You need a Magic level of 21 in order to do that.") return@on true @@ -60,12 +60,12 @@ class ExplorersRingPlugin : InteractionListener { return@on true } - on(RINGS, IntType.ITEM, "cabbage-port"){player, node -> + on(RINGS, IntType.ITEM, "cabbage-port"){ player, node -> teleport(player) return@on true } - on(RINGS, IntType.ITEM, "operate", "rub"){player, node -> + on(RINGS, IntType.ITEM, "operate", "rub"){ player, node -> if(getRingLevel(node.id) < 3){ sendMessage(player, "This item can not be operated.") return@on true diff --git a/Server/src/main/java/core/game/interaction/item/FaladorShieldPlugin.java b/Server/src/main/content/global/handlers/item/FaladorShieldPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/FaladorShieldPlugin.java rename to Server/src/main/content/global/handlers/item/FaladorShieldPlugin.java index 60fed09f0..4cebc31c7 100644 --- a/Server/src/main/java/core/game/interaction/item/FaladorShieldPlugin.java +++ b/Server/src/main/content/global/handlers/item/FaladorShieldPlugin.java @@ -1,14 +1,14 @@ -package core.game.interaction.item; +package content.global.handlers.item; import java.util.concurrent.TimeUnit; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.Entity; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; -import core.game.content.consumable.effects.PrayerEffect; +import content.data.consumables.effects.PrayerEffect; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/item/FishbowlPlugin.java b/Server/src/main/content/global/handlers/item/FishbowlPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/FishbowlPlugin.java rename to Server/src/main/content/global/handlers/item/FishbowlPlugin.java index fc15a0a55..86f1112bc 100644 --- a/Server/src/main/java/core/game/interaction/item/FishbowlPlugin.java +++ b/Server/src/main/content/global/handlers/item/FishbowlPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.Util; import core.cache.def.impl.ItemDefinition; @@ -15,10 +15,10 @@ import core.game.node.item.WeightedChanceItem; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; // Sources: diff --git a/Server/src/main/java/core/game/interaction/item/GnomeCopterPlugin.java b/Server/src/main/content/global/handlers/item/GnomeCopterPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/GnomeCopterPlugin.java rename to Server/src/main/content/global/handlers/item/GnomeCopterPlugin.java index 3f30cd574..f3522b247 100644 --- a/Server/src/main/java/core/game/interaction/item/GnomeCopterPlugin.java +++ b/Server/src/main/content/global/handlers/item/GnomeCopterPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.container.impl.EquipmentContainer; diff --git a/Server/src/main/java/core/game/interaction/item/GnomecopterTicket.java b/Server/src/main/content/global/handlers/item/GnomecopterTicket.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/GnomecopterTicket.java rename to Server/src/main/content/global/handlers/item/GnomecopterTicket.java index 049b1989e..49075853f 100644 --- a/Server/src/main/java/core/game/interaction/item/GnomecopterTicket.java +++ b/Server/src/main/content/global/handlers/item/GnomecopterTicket.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt b/Server/src/main/content/global/handlers/item/GodBookListeners.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt rename to Server/src/main/content/global/handlers/item/GodBookListeners.kt index c02f92e45..7e86ef581 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt +++ b/Server/src/main/content/global/handlers/item/GodBookListeners.kt @@ -1,14 +1,13 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class GodBookListeners : InteractionListener { @@ -17,7 +16,7 @@ class GodBookListeners : InteractionListener { val GB_GUTHIX = Items.BOOK_OF_BALANCE_3844 override fun defineListeners() { - on(GB_SARADOMIN, IntType.ITEM, "preach"){player, _ -> + on(GB_SARADOMIN, IntType.ITEM, "preach"){ player, _ -> openDialogue(player, HOLY_DIALOGUE(BOOK.SARA)) return@on true } diff --git a/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java b/Server/src/main/content/global/handlers/item/GodBookPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/item/GodBookPlugin.java rename to Server/src/main/content/global/handlers/item/GodBookPlugin.java index 776172cf1..6bdae37f1 100644 --- a/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java +++ b/Server/src/main/content/global/handlers/item/GodBookPlugin.java @@ -1,195 +1,195 @@ -package core.game.interaction.item; - -import core.game.content.dialogue.DialogueAction; -import core.game.content.global.GodBook; -import core.game.node.entity.skill.Skills; -import core.game.interaction.NodeUsageEvent; -import core.game.interaction.OptionHandler; -import core.game.interaction.UseWithHandler; -import core.game.node.Node; -import core.game.node.entity.player.Player; -import core.game.node.item.GroundItem; -import core.game.node.item.Item; -import core.game.node.item.ItemPlugin; -import core.plugin.Plugin; -import core.plugin.Initializable; -import rs09.plugin.ClassScanner; - -/** - * Handles the god books. - * @author Vexia - */ -@Initializable -public class GodBookPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (GodBook book : GodBook.values()) { - book.getDamagedBook().getDefinition().getHandlers().put("option:check", this); - } - ClassScanner.definePlugins(new PageHandler(), new GodBookItem(), new SymbolBlessHandler()); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - GodBook book = GodBook.forItem(node.asItem(), option.equalsIgnoreCase("check")); - if (book != null) { - switch (option) { - case "check": - String[] messages = new String[4]; - for (int i = 0; i < messages.length; i++) { - messages[i] = book.hasPage(player, node.asItem(), i + 1) ? "The " + getNumberName(i + 1) + " page is in the book." : "The " + getNumberName(i + 1) + " page is missing."; - } - player.getDialogueInterpreter().sendDialogue(messages); - return true; - case "preach": - player.getDialogueInterpreter().open("god-book", book); - return true; - } - } - return true; - } - - /** - * Handles the blessing of a symbol with a god book. - * @author Vexia - */ - public class SymbolBlessHandler extends UseWithHandler { - - /** - * Constructs a new {@code SymbolBlessHandler} {@code Object} - */ - public SymbolBlessHandler() { - super(1716); - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (GodBook book : GodBook.values()) { - addHandler(book.getBook().getId(), ITEM_TYPE, this); - } - return this; - } - - @Override - public boolean handle(NodeUsageEvent event) { - Player player = event.getPlayer(); - GodBook book = GodBook.forItem(event.getUsedItem(), false); - if (book == null) { - return false; - } - final Item symbol = event.getUsedWith().asItem(); - if (player.getSkills().getLevel(Skills.PRAYER) < 50) { - player.sendMessage("You need a Prayer level of at least 50 in order to do this."); - return true; - } - if (player.getSkills().getPrayerPoints() < 4) { - player.sendMessage("You need at least 4 prayer points in order to do this."); - return true; - } - if (book == GodBook.BOOK_OF_BALANCE) { - player.getDialogueInterpreter().sendOptions("Select an Option", "Unholy symbol", "Holy symbol"); - player.getDialogueInterpreter().addAction(new DialogueAction() { - - @Override - public void handle(Player player, int buttonId) { - bless(player, symbol, buttonId == 1 ? GodBook.UNHOLY_BOOK : GodBook.HOLY_BOOK); - } - - }); - return true; - } - bless(player, symbol, book); - return true; - } - - /** - * Blesses a symbol. - * @param player the player. - * @param book the book. - */ - private void bless(Player player, Item symbol, GodBook book) { - if (!player.getInventory().containsItem(symbol)) { - return; - } - if (player.getInventory().get(symbol.getSlot()) == null) { - return; - } - player.getInventory().replace(book.getBlessItem()[0], symbol.getSlot()); - player.getSkills().decrementPrayerPoints(4); - } - - } - - /** - * A god book item. - * @author Vexia - */ - public class GodBookItem extends ItemPlugin { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (GodBook book : GodBook.values()) { - register(book.getDamagedBook().getId()); - } - return this; - } - - @Override - public boolean canPickUp(Player player, GroundItem item, int type) { - if (player.hasItem(item.asItem())) { - player.sendMessage("You do not need more than one incomplete book."); - return false; - } - return true; - } - - } - - /** - * The page handler. - * @author Vexia - */ - public class PageHandler extends UseWithHandler { - - /** - * Constructs a new {@code PageHandler} {@code Object} - */ - public PageHandler() { - super(3839, 3841, 3843); - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (GodBook book : GodBook.values()) { - for (Item i : book.getPages()) { - addHandler(i.getId(), ITEM_TYPE, this); - } - } - return this; - } - - @Override - public boolean handle(NodeUsageEvent event) { - GodBook book = GodBook.forItem(event.getUsedItem(), true); - Player player = event.getPlayer(); - if (book != null && book.isPage(event.getUsedWith().asItem())) { - book.insertPage(player, event.getUsedItem(), event.getUsedWith().asItem()); - return true; - } - return false; - } - - } - - /** - * Gets the number name. - * @param i the integer to check. - * @return the number name. - */ - private String getNumberName(int i) { - return i == 1 ? "first" : i == 2 ? "second" : i == 3 ? "third" : "fourth"; - } - -} +package content.global.handlers.item; + +import core.game.dialogue.DialogueAction; +import content.data.GodBook; +import core.game.node.entity.skill.Skills; +import core.game.interaction.NodeUsageEvent; +import core.game.interaction.OptionHandler; +import core.game.interaction.UseWithHandler; +import core.game.node.Node; +import core.game.node.entity.player.Player; +import core.game.node.item.GroundItem; +import core.game.node.item.Item; +import core.game.node.item.ItemPlugin; +import core.plugin.Plugin; +import core.plugin.Initializable; +import core.plugin.ClassScanner; + +/** + * Handles the god books. + * @author Vexia + */ +@Initializable +public class GodBookPlugin extends OptionHandler { + + @Override + public Plugin newInstance(Object arg) throws Throwable { + for (GodBook book : GodBook.values()) { + book.getDamagedBook().getDefinition().getHandlers().put("option:check", this); + } + ClassScanner.definePlugins(new PageHandler(), new GodBookItem(), new SymbolBlessHandler()); + return this; + } + + @Override + public boolean handle(Player player, Node node, String option) { + GodBook book = GodBook.forItem(node.asItem(), option.equalsIgnoreCase("check")); + if (book != null) { + switch (option) { + case "check": + String[] messages = new String[4]; + for (int i = 0; i < messages.length; i++) { + messages[i] = book.hasPage(player, node.asItem(), i + 1) ? "The " + getNumberName(i + 1) + " page is in the book." : "The " + getNumberName(i + 1) + " page is missing."; + } + player.getDialogueInterpreter().sendDialogue(messages); + return true; + case "preach": + player.getDialogueInterpreter().open("god-book", book); + return true; + } + } + return true; + } + + /** + * Handles the blessing of a symbol with a god book. + * @author Vexia + */ + public class SymbolBlessHandler extends UseWithHandler { + + /** + * Constructs a new {@code SymbolBlessHandler} {@code Object} + */ + public SymbolBlessHandler() { + super(1716); + } + + @Override + public Plugin newInstance(Object arg) throws Throwable { + for (GodBook book : GodBook.values()) { + addHandler(book.getBook().getId(), ITEM_TYPE, this); + } + return this; + } + + @Override + public boolean handle(NodeUsageEvent event) { + Player player = event.getPlayer(); + GodBook book = GodBook.forItem(event.getUsedItem(), false); + if (book == null) { + return false; + } + final Item symbol = event.getUsedWith().asItem(); + if (player.getSkills().getLevel(Skills.PRAYER) < 50) { + player.sendMessage("You need a Prayer level of at least 50 in order to do this."); + return true; + } + if (player.getSkills().getPrayerPoints() < 4) { + player.sendMessage("You need at least 4 prayer points in order to do this."); + return true; + } + if (book == GodBook.BOOK_OF_BALANCE) { + player.getDialogueInterpreter().sendOptions("Select an Option", "Unholy symbol", "Holy symbol"); + player.getDialogueInterpreter().addAction(new DialogueAction() { + + @Override + public void handle(Player player, int buttonId) { + bless(player, symbol, buttonId == 1 ? GodBook.UNHOLY_BOOK : GodBook.HOLY_BOOK); + } + + }); + return true; + } + bless(player, symbol, book); + return true; + } + + /** + * Blesses a symbol. + * @param player the player. + * @param book the book. + */ + private void bless(Player player, Item symbol, GodBook book) { + if (!player.getInventory().containsItem(symbol)) { + return; + } + if (player.getInventory().get(symbol.getSlot()) == null) { + return; + } + player.getInventory().replace(book.getBlessItem()[0], symbol.getSlot()); + player.getSkills().decrementPrayerPoints(4); + } + + } + + /** + * A god book item. + * @author Vexia + */ + public class GodBookItem extends ItemPlugin { + + @Override + public Plugin newInstance(Object arg) throws Throwable { + for (GodBook book : GodBook.values()) { + register(book.getDamagedBook().getId()); + } + return this; + } + + @Override + public boolean canPickUp(Player player, GroundItem item, int type) { + if (player.hasItem(item.asItem())) { + player.sendMessage("You do not need more than one incomplete book."); + return false; + } + return true; + } + + } + + /** + * The page handler. + * @author Vexia + */ + public class PageHandler extends UseWithHandler { + + /** + * Constructs a new {@code PageHandler} {@code Object} + */ + public PageHandler() { + super(3839, 3841, 3843); + } + + @Override + public Plugin newInstance(Object arg) throws Throwable { + for (GodBook book : GodBook.values()) { + for (Item i : book.getPages()) { + addHandler(i.getId(), ITEM_TYPE, this); + } + } + return this; + } + + @Override + public boolean handle(NodeUsageEvent event) { + GodBook book = GodBook.forItem(event.getUsedItem(), true); + Player player = event.getPlayer(); + if (book != null && book.isPage(event.getUsedWith().asItem())) { + book.insertPage(player, event.getUsedItem(), event.getUsedWith().asItem()); + return true; + } + return false; + } + + } + + /** + * Gets the number name. + * @param i the integer to check. + * @return the number name. + */ + private String getNumberName(int i) { + return i == 1 ? "first" : i == 2 ? "second" : i == 3 ? "third" : "fourth"; + } + +} diff --git a/Server/src/main/java/core/game/interaction/item/GodswordDismantlePlugin.java b/Server/src/main/content/global/handlers/item/GodswordDismantlePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/GodswordDismantlePlugin.java rename to Server/src/main/content/global/handlers/item/GodswordDismantlePlugin.java index 2be306576..64655e15c 100644 --- a/Server/src/main/java/core/game/interaction/item/GodswordDismantlePlugin.java +++ b/Server/src/main/content/global/handlers/item/GodswordDismantlePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/GrandSeedPodHandler.kt b/Server/src/main/content/global/handlers/item/GrandSeedPodHandler.kt similarity index 70% rename from Server/src/main/kotlin/rs09/game/interaction/item/GrandSeedPodHandler.kt rename to Server/src/main/content/global/handlers/item/GrandSeedPodHandler.kt index 27025cf90..6d360b832 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/GrandSeedPodHandler.kt +++ b/Server/src/main/content/global/handlers/item/GrandSeedPodHandler.kt @@ -1,24 +1,15 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import core.cache.def.impl.ItemDefinition -import core.game.content.global.travel.glider.GliderPulse -import core.game.content.global.travel.glider.Gliders -import core.game.interaction.OptionHandler -import core.game.node.Node +import content.global.travel.glider.GliderPulse +import content.global.travel.glider.Gliders import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.map.Location -import core.game.world.update.flag.context.Animation -import core.game.world.update.flag.context.Graphics -import core.plugin.Initializable -import core.plugin.Plugin import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld -import api.* +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.api.* private const val SQUASH_GRAPHICS_BEGIN = 767 private const val SQUASH_GRAPHICS_END = 769 @@ -34,12 +25,12 @@ private const val LAUNCH_ANIMATION = 4547 class GrandSeedPodHandler : InteractionListener { override fun defineListeners() { - on(Items.GRAND_SEED_POD_9469, IntType.ITEM, "squash", "launch"){player, _ -> + on(Items.GRAND_SEED_POD_9469, IntType.ITEM, "squash", "launch"){ player, _ -> when(getUsedOption(player)){ "launch" -> submitWorldPulse(LaunchPulse(player)) "squash" -> submitWorldPulse(SquashPulse(player)) } - removeItem(player, Items.GRAND_SEED_POD_9469, api.Container.INVENTORY) + removeItem(player, Items.GRAND_SEED_POD_9469, Container.INVENTORY) lock(player, 50) return@on true } @@ -51,7 +42,7 @@ class GrandSeedPodHandler : InteractionListener { when(counter++){ 1 -> visualize(player, LAUNCH_ANIMATION, LAUNCH_GRAPHICS) 3 -> rewardXP(player, Skills.FARMING, 100.0) - 4 -> submitWorldPulse(GliderPulse(2,player,Gliders.TA_QUIR_PRIW)).also { return true } + 4 -> submitWorldPulse(GliderPulse(2, player, Gliders.TA_QUIR_PRIW)).also { return true } } return false } diff --git a/Server/src/main/java/core/game/interaction/item/HerbBoxPlugin.java b/Server/src/main/content/global/handlers/item/HerbBoxPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/HerbBoxPlugin.java rename to Server/src/main/content/global/handlers/item/HerbBoxPlugin.java index 907b32e36..1f2758fe3 100644 --- a/Server/src/main/java/core/game/interaction/item/HerbBoxPlugin.java +++ b/Server/src/main/content/global/handlers/item/HerbBoxPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/HouseTeleTabOptionPlugin.java b/Server/src/main/content/global/handlers/item/HouseTeleTabOptionPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/HouseTeleTabOptionPlugin.java rename to Server/src/main/content/global/handlers/item/HouseTeleTabOptionPlugin.java index b67a361e3..7d13edc5d 100644 --- a/Server/src/main/java/core/game/interaction/item/HouseTeleTabOptionPlugin.java +++ b/Server/src/main/content/global/handlers/item/HouseTeleTabOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/ImplingJarListener.kt b/Server/src/main/content/global/handlers/item/ImplingJarListener.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/item/ImplingJarListener.kt rename to Server/src/main/content/global/handlers/item/ImplingJarListener.kt index 499a0ef65..372d03f92 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/ImplingJarListener.kt +++ b/Server/src/main/content/global/handlers/item/ImplingJarListener.kt @@ -1,21 +1,19 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.Container -import api.* -import core.game.content.ttrail.ClueScrollPlugin +import core.api.Container +import core.api.* import org.rs09.consts.Items -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.SystemLogger +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class ImplingJarListener : InteractionListener { val JARS = ImplingLoot.values().map { it.jarId }.toIntArray() override fun defineListeners() { - on(JARS, IntType.ITEM, "loot"){player, node -> + on(JARS, IntType.ITEM, "loot"){ player, node -> val jar = node.asItem() val loot = ImplingLoot.forId(jar.id)?.roll()?.first() ?: return@on false @@ -251,7 +249,7 @@ enum class ImplingLoot(val jarId: Int, val table: WeightBasedTable){ companion object{ - val jarMap = HashMap() + val jarMap = HashMap() init { for(impling in values()){ diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt b/Server/src/main/content/global/handlers/item/ItemQuestRequirementListener.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt rename to Server/src/main/content/global/handlers/item/ItemQuestRequirementListener.kt index 2dd206daf..f02f0ca02 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt +++ b/Server/src/main/content/global/handlers/item/ItemQuestRequirementListener.kt @@ -1,10 +1,9 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import core.game.node.entity.player.link.quest.QuestRepository import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener class ItemQuestRequirementListener : InteractionListener { diff --git a/Server/src/main/java/core/game/interaction/item/KeldagrimVotingBond.java b/Server/src/main/content/global/handlers/item/KeldagrimVotingBond.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/KeldagrimVotingBond.java rename to Server/src/main/content/global/handlers/item/KeldagrimVotingBond.java index 7771a5f7a..dd4612ee0 100644 --- a/Server/src/main/java/core/game/interaction/item/KeldagrimVotingBond.java +++ b/Server/src/main/content/global/handlers/item/KeldagrimVotingBond.java @@ -4,8 +4,8 @@ //import java.util.concurrent.TimeUnit; // //import core.cache.def.impl.ItemDefinition; -//import core.game.content.dialogue.DialogueInterpreter; -//import core.game.content.dialogue.DialoguePlugin; +//import core.game.dialogue.DialogueInterpreter; +//import core.game.dialogue.DialoguePlugin; //import core.game.content.ttrail.ClueLevel; //import core.game.content.ttrail.ClueScrollPlugin; //import core.game.interaction.OptionHandler; @@ -13,9 +13,9 @@ //import core.game.node.entity.player.Player; //import core.game.node.entity.state.EntityState; //import core.game.node.item.Item; -//import rs09.game.world.repository.Repository; +//import core.game.world.repository.Repository; //import core.plugin.Plugin; -//import rs09.plugin.PluginManager; +//import core.plugin.PluginManager; //import core.plugin.InitializablePlugin; //import core.tools.RandomFunction; // diff --git a/Server/src/main/java/core/game/interaction/item/LampPlugin.java b/Server/src/main/content/global/handlers/item/LampPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/LampPlugin.java rename to Server/src/main/content/global/handlers/item/LampPlugin.java index 47c2fdd03..5e5b70f34 100644 --- a/Server/src/main/java/core/game/interaction/item/LampPlugin.java +++ b/Server/src/main/content/global/handlers/item/LampPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.game.component.Component; -import core.game.content.global.Lamps; +import content.data.Lamps; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/MiningHelmetListener.kt b/Server/src/main/content/global/handlers/item/MiningHelmetListener.kt similarity index 63% rename from Server/src/main/kotlin/rs09/game/interaction/item/MiningHelmetListener.kt rename to Server/src/main/content/global/handlers/item/MiningHelmetListener.kt index 5be644253..755a1cbde 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/MiningHelmetListener.kt +++ b/Server/src/main/content/global/handlers/item/MiningHelmetListener.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.api.* +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import org.rs09.consts.Items class MiningHelmetListener : InteractionListener { override fun defineListeners() { - on(Items.MINING_HELMET_5013, IntType.ITEM, "drop") {player, _ -> + on(Items.MINING_HELMET_5013, IntType.ITEM, "drop") { player, _ -> val removed = removeItem(player, Items.MINING_HELMET_5013) if (removed) produceGroundItem(player, Items.MINING_HELMET_5014) sendMessage(player, "The helmet goes out as you drop it.") diff --git a/Server/src/main/java/core/game/interaction/item/MorphItemPlugin.java b/Server/src/main/content/global/handlers/item/MorphItemPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/MorphItemPlugin.java rename to Server/src/main/content/global/handlers/item/MorphItemPlugin.java index 397faefdc..29c84d805 100644 --- a/Server/src/main/java/core/game/interaction/item/MorphItemPlugin.java +++ b/Server/src/main/content/global/handlers/item/MorphItemPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.component.CloseEvent; @@ -7,10 +7,10 @@ import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/interaction/item/NewComerMapPlugin.java b/Server/src/main/content/global/handlers/item/NewComerMapPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/item/NewComerMapPlugin.java rename to Server/src/main/content/global/handlers/item/NewComerMapPlugin.java index a0eb0a58d..cf1cd0157 100644 --- a/Server/src/main/java/core/game/interaction/item/NewComerMapPlugin.java +++ b/Server/src/main/content/global/handlers/item/NewComerMapPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/interaction/item/NewsPaperPlugin.java b/Server/src/main/content/global/handlers/item/NewsPaperPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/NewsPaperPlugin.java rename to Server/src/main/content/global/handlers/item/NewsPaperPlugin.java index 1f4538d1d..0e28fcabe 100644 --- a/Server/src/main/java/core/game/interaction/item/NewsPaperPlugin.java +++ b/Server/src/main/content/global/handlers/item/NewsPaperPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/interaction/item/OysterPlugin.java b/Server/src/main/content/global/handlers/item/OysterPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/OysterPlugin.java rename to Server/src/main/content/global/handlers/item/OysterPlugin.java index 1abe26d14..179072a79 100644 --- a/Server/src/main/java/core/game/interaction/item/OysterPlugin.java +++ b/Server/src/main/content/global/handlers/item/OysterPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/PetRock.kt b/Server/src/main/content/global/handlers/item/PetRock.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/interaction/item/PetRock.kt rename to Server/src/main/content/global/handlers/item/PetRock.kt index 021d7a6ca..d91763171 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/PetRock.kt +++ b/Server/src/main/content/global/handlers/item/PetRock.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.openDialogue -import core.game.content.dialogue.FacialExpression +import core.api.openDialogue import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class PetRockPlugin : InteractionListener { override fun defineListeners() { @@ -24,7 +23,7 @@ class PetRockDialogue() : DialogueFile() { 1 -> { when(buttonID) { 1 -> { - playerl(FacialExpression.FRIENDLY, "Who's a good rock then? Yes you are... You're such a good rock... ooga booga googa.") + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Who's a good rock then? Yes you are... You're such a good rock... ooga booga googa.") player!!.sendMessage("Your rock seems a little happier.") stage = END_DIALOGUE } @@ -40,12 +39,12 @@ class PetRockDialogue() : DialogueFile() { end() } 4 -> { - playerl(FacialExpression.FRIENDLY, "Want to fetch the stick, rock? Of course you do...") + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Want to fetch the stick, rock? Of course you do...") // Missing animation stage = END_DIALOGUE } 5 -> { - playerl(FacialExpression.FRIENDLY, "Be a good rock...") + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Be a good rock...") player!!.sendMessage("You wait a few seconds and pick your rock back up and pet it.") // Missing animation stage = END_DIALOGUE diff --git a/Server/src/main/java/core/game/interaction/item/PickupPlugin.java b/Server/src/main/content/global/handlers/item/PickupPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/item/PickupPlugin.java rename to Server/src/main/content/global/handlers/item/PickupPlugin.java index 02c3730c0..e04d3edba 100644 --- a/Server/src/main/java/core/game/interaction/item/PickupPlugin.java +++ b/Server/src/main/content/global/handlers/item/PickupPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; @@ -8,7 +8,7 @@ import core.game.node.item.GroundItem; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.action.PickupHandler; +import core.game.global.action.PickupHandler; /** * Represents the option handler used for ground items. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/equipment/PlayerPeltables.kt b/Server/src/main/content/global/handlers/item/PlayerPeltables.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/equipment/PlayerPeltables.kt rename to Server/src/main/content/global/handlers/item/PlayerPeltables.kt index 5ab91c429..fc1a63790 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/equipment/PlayerPeltables.kt +++ b/Server/src/main/content/global/handlers/item/PlayerPeltables.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.equipment +package content.global.handlers.item -import api.* +import core.api.* import core.game.interaction.Interaction import core.game.interaction.Option import core.game.node.Node @@ -11,8 +11,8 @@ import core.game.system.task.Pulse import core.game.world.map.path.Pathfinder import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class PlayerPeltables : InteractionListener { @@ -30,7 +30,7 @@ class PlayerPeltables : InteractionListener { onUnequip(PELTABLES, ::removePlayerOps) on("pelt", IntType.PLAYER, ::handlePeltInteraction) - onUseWithPlayer(*PELTABLES) {player, used, with -> handlePeltInteraction(player, with, used) } + onUseWithPlayer(*PELTABLES) { player, used, with -> handlePeltInteraction(player, with, used) } flagInstant() } diff --git a/Server/src/main/java/core/game/interaction/item/RingUnchargePlugin.java b/Server/src/main/content/global/handlers/item/RingUnchargePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/RingUnchargePlugin.java rename to Server/src/main/content/global/handlers/item/RingUnchargePlugin.java index 281069d8c..7a5140b6d 100644 --- a/Server/src/main/java/core/game/interaction/item/RingUnchargePlugin.java +++ b/Server/src/main/content/global/handlers/item/RingUnchargePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/RunePackPlugin.java b/Server/src/main/content/global/handlers/item/RunePackPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/RunePackPlugin.java rename to Server/src/main/content/global/handlers/item/RunePackPlugin.java index 166a1b0f9..767aa9481 100644 --- a/Server/src/main/java/core/game/interaction/item/RunePackPlugin.java +++ b/Server/src/main/content/global/handlers/item/RunePackPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java b/Server/src/main/content/global/handlers/item/SilverSicklePlugin.java similarity index 88% rename from Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java rename to Server/src/main/content/global/handlers/item/SilverSicklePlugin.java index 0d6a95478..eb403f33b 100644 --- a/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java +++ b/Server/src/main/content/global/handlers/item/SilverSicklePlugin.java @@ -1,13 +1,13 @@ -package core.game.interaction.item; +package content.global.handlers.item; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.quest.members.naturespirit.NSUtils; +import content.region.morytania.quest.naturespirit.NSUtils; /** * Handles the Silver Sickle (b) to collect Mort Myre Fungus. diff --git a/Server/src/main/java/core/game/interaction/item/SkullSceptreOption.java b/Server/src/main/content/global/handlers/item/SkullSceptreOption.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/SkullSceptreOption.java rename to Server/src/main/content/global/handlers/item/SkullSceptreOption.java index 212f0b5e0..b2ed70389 100644 --- a/Server/src/main/java/core/game/interaction/item/SkullSceptreOption.java +++ b/Server/src/main/content/global/handlers/item/SkullSceptreOption.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/SpadeDigListener.kt b/Server/src/main/content/global/handlers/item/SpadeDigListener.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/interaction/SpadeDigListener.kt rename to Server/src/main/content/global/handlers/item/SpadeDigListener.kt index bf101de61..a19cbb1e7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/SpadeDigListener.kt +++ b/Server/src/main/content/global/handlers/item/SpadeDigListener.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction +package content.global.handlers.item import core.game.node.entity.player.Player import core.game.world.map.Location diff --git a/Server/src/main/java/core/game/interaction/item/SpadeDigOptionPlugin.java b/Server/src/main/content/global/handlers/item/SpadeDigOptionPlugin.java similarity index 90% rename from Server/src/main/java/core/game/interaction/item/SpadeDigOptionPlugin.java rename to Server/src/main/content/global/handlers/item/SpadeDigOptionPlugin.java index 2fad702f4..88228fe35 100644 --- a/Server/src/main/java/core/game/interaction/item/SpadeDigOptionPlugin.java +++ b/Server/src/main/content/global/handlers/item/SpadeDigOptionPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; -import core.game.content.global.action.DigSpadeHandler; +import core.game.global.action.DigSpadeHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/StaffOfTheRaven.kt b/Server/src/main/content/global/handlers/item/StaffOfTheRaven.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/interaction/item/StaffOfTheRaven.kt rename to Server/src/main/content/global/handlers/item/StaffOfTheRaven.kt index ac49b8fbd..90c2e7f0f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/StaffOfTheRaven.kt +++ b/Server/src/main/content/global/handlers/item/StaffOfTheRaven.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.world.update.flag.context.Graphics -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE /** * Handles the Staff of the Raven's (2021 Hween Reward) Recolor Transformation @@ -15,7 +15,7 @@ import rs09.tools.END_DIALOGUE class StaffOfTheRaven : InteractionListener { val ids = intArrayOf(14654, 14655, 14656) override fun defineListeners() { - on(ids, IntType.ITEM, "recolor", "operate"){player, node -> + on(ids, IntType.ITEM, "recolor", "operate"){ player, node -> val hasUnlocked = player.getAttribute("sotr:purchased",false) val hasRecolorA = player.getAttribute("sotr:recolor1", false) val hasRecolorB = player.getAttribute("sotr:recolor2", false) diff --git a/Server/src/main/java/core/game/interaction/item/StarterPackPlugin.java b/Server/src/main/content/global/handlers/item/StarterPackPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/StarterPackPlugin.java rename to Server/src/main/content/global/handlers/item/StarterPackPlugin.java index 029d36eba..152b12e8f 100644 --- a/Server/src/main/java/core/game/interaction/item/StarterPackPlugin.java +++ b/Server/src/main/content/global/handlers/item/StarterPackPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/TeleTabsOptionPlugin.java b/Server/src/main/content/global/handlers/item/TeleTabsOptionPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/item/TeleTabsOptionPlugin.java rename to Server/src/main/content/global/handlers/item/TeleTabsOptionPlugin.java index 92b3b450e..73de7500e 100644 --- a/Server/src/main/java/core/game/interaction/item/TeleTabsOptionPlugin.java +++ b/Server/src/main/content/global/handlers/item/TeleTabsOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/TeleportCrystalPlugin.java b/Server/src/main/content/global/handlers/item/TeleportCrystalPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/TeleportCrystalPlugin.java rename to Server/src/main/content/global/handlers/item/TeleportCrystalPlugin.java index beff82c9d..dc779e885 100644 --- a/Server/src/main/java/core/game/interaction/item/TeleportCrystalPlugin.java +++ b/Server/src/main/content/global/handlers/item/TeleportCrystalPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.item; +package content.global.handlers.item; import core.cache.def.impl.ItemDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/ToyHorseyListener.kt b/Server/src/main/content/global/handlers/item/ToyHorseyListener.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/interaction/item/ToyHorseyListener.kt rename to Server/src/main/content/global/handlers/item/ToyHorseyListener.kt index c05c09652..e16a39e42 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/ToyHorseyListener.kt +++ b/Server/src/main/content/global/handlers/item/ToyHorseyListener.kt @@ -1,12 +1,12 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.animate -import api.sendChat -import api.stopWalk +import core.api.animate +import core.api.sendChat +import core.api.stopWalk import org.rs09.consts.Animations import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Interaction listener for the Toy Horsey item diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/ToyListeners.kt b/Server/src/main/content/global/handlers/item/ToyListeners.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/item/ToyListeners.kt rename to Server/src/main/content/global/handlers/item/ToyListeners.kt index ff450a8e6..130ecae84 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/ToyListeners.kt +++ b/Server/src/main/content/global/handlers/item/ToyListeners.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item +package content.global.handlers.item -import api.* +import core.api.* import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class ToyListeners : InteractionListener { companion object { @@ -31,13 +31,13 @@ class ToyListeners : InteractionListener { } override fun defineListeners() { - on(Items.CHOCATRICE_CAPE_12634, IntType.ITEM, "operate"){player, _ -> + on(Items.CHOCATRICE_CAPE_12634, IntType.ITEM, "operate"){ player, _ -> lockInteractions(player, 2) visualize(player, 8903, 1566) return@on true } - on(MARIONETTES, IntType.ITEM, "jump", "walk", "bow", "dance") {player, marionette -> + on(MARIONETTES, IntType.ITEM, "jump", "walk", "bow", "dance") { player, marionette -> val index = MARIONETTES.indexOf(marionette.id) lockInteractions(player, 2) @@ -50,13 +50,13 @@ class ToyListeners : InteractionListener { return@on true } - on(Items.REINDEER_HAT_10507, IntType.ITEM, "operate"){player, _ -> + on(Items.REINDEER_HAT_10507, IntType.ITEM, "operate"){ player, _ -> lockInteractions(player, 2) animate(player, 5059) return@on true } - on(Items.SNOW_GLOBE_11949, IntType.ITEM, "shake") {player, _ -> + on(Items.SNOW_GLOBE_11949, IntType.ITEM, "shake") { player, _ -> lockInteractions(player, 2) animate(player, SNOWGLOBE_SHAKE) runTask(player, 3) { @@ -68,7 +68,7 @@ class ToyListeners : InteractionListener { return@on true } - on(Items.YO_YO_4079, IntType.ITEM, "play", "loop", "walk", "crazy"){player, _ -> + on(Items.YO_YO_4079, IntType.ITEM, "play", "loop", "walk", "crazy"){ player, _ -> val option = getUsedOption(player) lockInteractions(player, 2) @@ -81,7 +81,7 @@ class ToyListeners : InteractionListener { return@on true } - on(Items.ZOMBIE_HEAD_6722, IntType.ITEM, "talk-at", "display", "question"){player, _ -> + on(Items.ZOMBIE_HEAD_6722, IntType.ITEM, "talk-at", "display", "question"){ player, _ -> val option = getUsedOption(player) lockInteractions(player, 2) diff --git a/Server/src/main/java/core/game/content/dialogue/book/GrimDiary.java b/Server/src/main/content/global/handlers/item/book/GrimDiary.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/book/GrimDiary.java rename to Server/src/main/content/global/handlers/item/book/GrimDiary.java index e0ec70bb4..d8aca6937 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/GrimDiary.java +++ b/Server/src/main/content/global/handlers/item/book/GrimDiary.java @@ -1,8 +1,12 @@ -package core.game.content.dialogue.book; +package content.global.handlers.item.book; import core.game.component.Component; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/book/KeldagrimRuleBook.java b/Server/src/main/content/global/handlers/item/book/KeldagrimRuleBook.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/book/KeldagrimRuleBook.java rename to Server/src/main/content/global/handlers/item/book/KeldagrimRuleBook.java index bcae90ba4..1e8315d68 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/KeldagrimRuleBook.java +++ b/Server/src/main/content/global/handlers/item/book/KeldagrimRuleBook.java @@ -1,7 +1,11 @@ -package core.game.content.dialogue.book; +package content.global.handlers.item.book; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/book/SecurityBookPlugin.java b/Server/src/main/content/global/handlers/item/book/SecurityBookPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/book/SecurityBookPlugin.java rename to Server/src/main/content/global/handlers/item/book/SecurityBookPlugin.java index 7dae0c0eb..8e5bb4577 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/SecurityBookPlugin.java +++ b/Server/src/main/content/global/handlers/item/book/SecurityBookPlugin.java @@ -1,10 +1,14 @@ -package core.game.content.dialogue.book; +package content.global.handlers.item.book; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the strong hold of security book. diff --git a/Server/src/main/java/core/game/content/dialogue/book/StrongholdNotes.java b/Server/src/main/content/global/handlers/item/book/StrongholdNotes.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/book/StrongholdNotes.java rename to Server/src/main/content/global/handlers/item/book/StrongholdNotes.java index d33f23741..78f155392 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/StrongholdNotes.java +++ b/Server/src/main/content/global/handlers/item/book/StrongholdNotes.java @@ -1,8 +1,12 @@ -package core.game.content.dialogue.book; +package content.global.handlers.item.book; import core.game.component.Component; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/kotlin/rs09/game/node/entity/equipment/BarrowsEquipmentRegister.kt b/Server/src/main/content/global/handlers/item/equipment/BarrowsEquipmentRegister.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/equipment/BarrowsEquipmentRegister.kt rename to Server/src/main/content/global/handlers/item/equipment/BarrowsEquipmentRegister.kt index 8e3294018..d7e57ab9e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/equipment/BarrowsEquipmentRegister.kt +++ b/Server/src/main/content/global/handlers/item/equipment/BarrowsEquipmentRegister.kt @@ -1,6 +1,5 @@ -package rs09.game.node.entity.equipment +package content.global.handlers.item.equipment -import rs09.game.node.entity.combat.equipment.EquipmentDegrader import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/equipment/EquipmentDegrader.kt b/Server/src/main/content/global/handlers/item/equipment/EquipmentDegrader.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/equipment/EquipmentDegrader.kt rename to Server/src/main/content/global/handlers/item/equipment/EquipmentDegrader.kt index bad5d30a6..5eb5b7254 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/equipment/EquipmentDegrader.kt +++ b/Server/src/main/content/global/handlers/item/equipment/EquipmentDegrader.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.combat.equipment +package content.global.handlers.item.equipment -import api.getNext -import api.isLast -import api.isNextLast +import core.api.getNext +import core.api.isLast +import core.api.isNextLast import core.game.node.entity.player.Player import core.game.node.item.Item diff --git a/Server/src/main/kotlin/rs09/game/node/entity/equipment/PVPEquipmentRegister.kt b/Server/src/main/content/global/handlers/item/equipment/PVPEquipmentRegister.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/equipment/PVPEquipmentRegister.kt rename to Server/src/main/content/global/handlers/item/equipment/PVPEquipmentRegister.kt index 48762e4bd..81d957626 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/equipment/PVPEquipmentRegister.kt +++ b/Server/src/main/content/global/handlers/item/equipment/PVPEquipmentRegister.kt @@ -1,6 +1,5 @@ -package rs09.game.node.entity.equipment +package content.global.handlers.item.equipment -import rs09.game.node.entity.combat.equipment.EquipmentDegrader import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGloves.java b/Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGloves.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGloves.java rename to Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGloves.java index 385541b5c..6f09426f7 100644 --- a/Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGloves.java +++ b/Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGloves.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.brawling_gloves; +package content.global.handlers.item.equipment.brawling_gloves; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java b/Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGlovesManager.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java rename to Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGlovesManager.java index 095e3c8f1..8623ca4fe 100644 --- a/Server/src/main/java/core/game/interaction/item/brawling_gloves/BrawlingGlovesManager.java +++ b/Server/src/main/content/global/handlers/item/equipment/brawling_gloves/BrawlingGlovesManager.java @@ -1,7 +1,7 @@ -package core.game.interaction.item.brawling_gloves; +package content.global.handlers.item.equipment.brawling_gloves; -import api.LoginListener; -import api.PersistPlayer; +import core.api.LoginListener; +import core.api.PersistPlayer; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/AncientMaceSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/AncientMaceSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/AncientMaceSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/AncientMaceSpecialHandler.java index 60874e957..fc5268698 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/AncientMaceSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/AncientMaceSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/BackstabSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/BackstabSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/BackstabSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/BackstabSpecialHandler.java index 810f86c62..0e60dbdda 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/BackstabSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/BackstabSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ChainhitSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ChainhitSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/ChainhitSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ChainhitSpecialHandler.java index c38db4603..838caf5a2 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ChainhitSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ChainhitSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -17,9 +17,9 @@ import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.node.entity.combat.RangeSwingHandler; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import java.util.Iterator; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/combat/handlers/ChinchompaSwingHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ChinchompaSwingHandler.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/combat/handlers/ChinchompaSwingHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ChinchompaSwingHandler.java index 0bed935e6..6f962cfad 100644 --- a/Server/src/main/java/core/game/node/entity/combat/handlers/ChinchompaSwingHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ChinchompaSwingHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.handlers; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -14,7 +14,7 @@ import core.game.node.entity.skill.Skills; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/CleaveSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/CleaveSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/CleaveSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/CleaveSpecialHandler.java index 2cbae7577..c1b856eeb 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/CleaveSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/CleaveSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ClobberSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ClobberSpecialHandler.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/combat/special/ClobberSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ClobberSpecialHandler.java index dfe5723ce..1c6ad1100 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ClobberSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ClobberSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/DescentOfDarknessSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/DescentOfDarknessSpecialHandler.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/combat/special/DescentOfDarknessSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/DescentOfDarknessSpecialHandler.java index 6eb5d076f..faeca021b 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/DescentOfDarknessSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/DescentOfDarknessSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.Entity; @@ -15,7 +15,7 @@ import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; /** * Represents the descent of darkness sepcial handler. diff --git a/Server/src/main/java/core/game/node/entity/combat/handlers/DragonfireSwingHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/DragonfireSwingHandler.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/combat/handlers/DragonfireSwingHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/DragonfireSwingHandler.java index 6ac038ad2..be9b18dcf 100644 --- a/Server/src/main/java/core/game/node/entity/combat/handlers/DragonfireSwingHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/DragonfireSwingHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.handlers; +package content.global.handlers.item.equipment.special; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.SwitchAttack; import core.game.node.entity.impl.Projectile; @@ -12,7 +12,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/EnergyDrainSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/EnergyDrainSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/EnergyDrainSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/EnergyDrainSpecialHandler.java index 2428593c7..00f8d7913 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/EnergyDrainSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/EnergyDrainSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ExcaliburSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ExcaliburSpecialHandler.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/combat/special/ExcaliburSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ExcaliburSpecialHandler.java index 86c8f3053..96357d23a 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ExcaliburSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ExcaliburSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.Skills; @@ -6,8 +6,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.state.EntityState; -import core.game.node.entity.state.impl.HealOverTimePulse; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/FeintSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/FeintSpecialHandler.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/combat/special/FeintSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/FeintSpecialHandler.java index a2362766b..775ae3eb6 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/FeintSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/FeintSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/HealingBladeSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/HealingBladeSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/HealingBladeSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/HealingBladeSpecialHandler.java index 40dd3961b..8cbf175af 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/HealingBladeSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/HealingBladeSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/IceCleaveSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/IceCleaveSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/IceCleaveSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/IceCleaveSpecialHandler.java index 0c19987f4..e2db7e221 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/IceCleaveSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/IceCleaveSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ImpaleSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ImpaleSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/ImpaleSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ImpaleSpecialHandler.java index dadc362c8..bcb681ba9 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ImpaleSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ImpaleSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/JudgementSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/JudgementSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/JudgementSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/JudgementSpecialHandler.java index a4bf7853b..9699b5520 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/JudgementSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/JudgementSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/special/LiquefySpecialHandler.kt b/Server/src/main/content/global/handlers/item/equipment/special/LiquefySpecialHandler.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/special/LiquefySpecialHandler.kt rename to Server/src/main/content/global/handlers/item/equipment/special/LiquefySpecialHandler.kt index d6485eef6..0cf259152 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/special/LiquefySpecialHandler.kt +++ b/Server/src/main/content/global/handlers/item/equipment/special/LiquefySpecialHandler.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.combat.special +package content.global.handlers.item.equipment.special import core.game.node.entity.Entity import core.game.node.entity.combat.BattleState import core.game.node.entity.combat.CombatStyle -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler +import core.game.node.entity.combat.MeleeSwingHandler import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/java/core/game/node/entity/combat/special/PowershotSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/PowershotSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/PowershotSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/PowershotSpecialHandler.java index a1e5e738a..418a7bf05 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/PowershotSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/PowershotSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -9,7 +9,7 @@ import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; /** * Handles the Magic longbow special attack "Powershot". diff --git a/Server/src/main/java/core/game/node/entity/combat/special/PowerstabSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/PowerstabSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/PowerstabSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/PowerstabSpecialHandler.java index 7b6783add..0921b0c67 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/PowerstabSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/PowerstabSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import java.util.List; @@ -6,7 +6,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.InteractionType; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/PunctureSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/PunctureSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/PunctureSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/PunctureSpecialHandler.java index 1b76ac3f7..2a3385f9e 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/PunctureSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/PunctureSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/QuickSmashSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/QuickSmashSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/QuickSmashSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/QuickSmashSpecialHandler.java index 2f110af06..2680f4503 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/QuickSmashSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/QuickSmashSpecialHandler.java @@ -1,13 +1,13 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/RampageSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/RampageSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/RampageSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/RampageSpecialHandler.java index 81b14cd26..c4f7e8d08 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/RampageSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/RampageSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/SalamanderSwingHandler.kt b/Server/src/main/content/global/handlers/item/equipment/special/SalamanderSwingHandler.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/SalamanderSwingHandler.kt rename to Server/src/main/content/global/handlers/item/equipment/special/SalamanderSwingHandler.kt index 51f4537e2..0da74b2a9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/SalamanderSwingHandler.kt +++ b/Server/src/main/content/global/handlers/item/equipment/special/SalamanderSwingHandler.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.combat.handlers +package content.global.handlers.item.equipment.special -import api.EquipmentSlot -import api.getItemFromEquipment +import core.api.EquipmentSlot +import core.api.getItemFromEquipment import core.game.node.entity.Entity import core.game.node.entity.combat.BattleState import core.game.node.entity.combat.CombatStyle -import rs09.game.node.entity.combat.CombatSwingHandler +import core.game.node.entity.combat.CombatSwingHandler import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.Weapon import core.game.node.entity.combat.equipment.WeaponInterface diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SaradominsLightningHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SaradominsLightningHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/SaradominsLightningHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SaradominsLightningHandler.java index c075825e5..21cb7f485 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SaradominsLightningHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SaradominsLightningHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SeercullSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SeercullSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/SeercullSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SeercullSpecialHandler.java index 8f9961017..104748a42 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SeercullSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SeercullSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SeverSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SeverSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/SeverSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SeverSpecialHandler.java index be63aa08d..2ca75c4a1 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SeverSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SeverSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.prayer.PrayerType; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ShatterSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ShatterSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/ShatterSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ShatterSpecialHandler.java index 40647f3c1..afd9f1baa 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ShatterSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ShatterSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/ShoveSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/ShoveSpecialHandler.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/combat/special/ShoveSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/ShoveSpecialHandler.java index ae67f2a0c..22bea6e0d 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/ShoveSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/ShoveSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SliceAndDiceSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SliceAndDiceSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/SliceAndDiceSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SliceAndDiceSpecialHandler.java index 2d0ed1c20..d06305855 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SliceAndDiceSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SliceAndDiceSpecialHandler.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SmashSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SmashSpecialHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/combat/special/SmashSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SmashSpecialHandler.java index 10073e108..e5eb6e102 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SmashSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SmashSpecialHandler.java @@ -1,11 +1,11 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SnapshotSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SnapshotSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/SnapshotSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SnapshotSpecialHandler.java index b7fc1b0c3..fceec555d 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SnapshotSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SnapshotSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -12,8 +12,8 @@ import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.RangeSwingHandler; +import core.game.world.GameWorld; /** * Handles the magic shortbow special attack "Snapshot". diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SnipeSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SnipeSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/SnipeSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SnipeSpecialHandler.java index b1fbe0f2c..7c57c86d6 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SnipeSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SnipeSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -11,7 +11,7 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; /** * Represents the Dorgeshuun crossbow's special attack - snipe. diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SpearWallSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SpearWallSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/SpearWallSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SpearWallSpecialHandler.java index 306924202..1b15db249 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SpearWallSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SpearWallSpecialHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import java.util.List; @@ -6,7 +6,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.InteractionType; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/SweepSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/SweepSpecialHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/special/SweepSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/SweepSpecialHandler.java index be1d5d2b3..70c6cf229 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/SweepSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/SweepSpecialHandler.java @@ -1,14 +1,14 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import java.util.ArrayList; import java.util.List; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.Familiar; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/WarstrikeSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/WarstrikeSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/WarstrikeSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/WarstrikeSpecialHandler.java index ea19448a8..028f356cc 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/WarstrikeSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/WarstrikeSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/special/WeakenSpecialHandler.java b/Server/src/main/content/global/handlers/item/equipment/special/WeakenSpecialHandler.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/special/WeakenSpecialHandler.java rename to Server/src/main/content/global/handlers/item/equipment/special/WeakenSpecialHandler.java index c4f6cca8c..cc1298ff0 100644 --- a/Server/src/main/java/core/game/node/entity/combat/special/WeakenSpecialHandler.java +++ b/Server/src/main/content/global/handlers/item/equipment/special/WeakenSpecialHandler.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.special; +package content.global.handlers.item.equipment.special; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/interaction/item/toys/DiangoOptionHandler.java b/Server/src/main/content/global/handlers/item/toys/DiangoOptionHandler.java similarity index 93% rename from Server/src/main/java/core/game/interaction/item/toys/DiangoOptionHandler.java rename to Server/src/main/content/global/handlers/item/toys/DiangoOptionHandler.java index 16ac99e47..545aa25b7 100644 --- a/Server/src/main/java/core/game/interaction/item/toys/DiangoOptionHandler.java +++ b/Server/src/main/content/global/handlers/item/toys/DiangoOptionHandler.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.toys; +package content.global.handlers.item.toys; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/item/toys/DiangoReclaimInterface.java b/Server/src/main/content/global/handlers/item/toys/DiangoReclaimInterface.java similarity index 78% rename from Server/src/main/java/core/game/interaction/item/toys/DiangoReclaimInterface.java rename to Server/src/main/content/global/handlers/item/toys/DiangoReclaimInterface.java index 159a14220..71d5294de 100644 --- a/Server/src/main/java/core/game/interaction/item/toys/DiangoReclaimInterface.java +++ b/Server/src/main/content/global/handlers/item/toys/DiangoReclaimInterface.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.toys; +package content.global.handlers.item.toys; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -8,17 +8,15 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.holiday.easter.BasketofEggsEvent; import org.rs09.consts.Items; -import rs09.game.interaction.item.ToyListeners; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; -import static api.ContentAPIKt.inEquipment; -import static api.ContentAPIKt.inInventory; +import static core.api.ContentAPIKt.inEquipment; +import static core.api.ContentAPIKt.inInventory; /** @@ -29,7 +27,7 @@ import static api.ContentAPIKt.inInventory; public class DiangoReclaimInterface extends ComponentPlugin { private static final int COMPONENT_ID = 468; public static final List ITEMS = new ArrayList<>(20); - public static final Item[] HOLIDAY_ITEMS = {new Item(Items.YO_YO_4079), new Item(Items.REINDEER_HAT_10507), BasketofEggsEvent.RUBBER_CHICKEN,new Item(Items.ZOMBIE_HEAD_6722), new Item(6857), new Item(6856), new Item(6858), new Item(6859), new Item(6860), new Item(6861), new Item(6862), new Item(6863), new Item(9920), new Item(9921),new Item(9922), new Item(9923), new Item(9924), new Item(9925), new Item(11019), new Item(11020), new Item(11021), new Item(11022), new Item(11789), new Item(11949), new Item(12634), new Item(14076), new Item(14077), new Item(14081),new Item(14595), new Item(14602), new Item(14603), new Item(14605), new Item(14654), new Item(Items.RED_MARIONETTE_6867), new Item(Items.GREEN_MARIONETTE_6866), new Item(Items.BLUE_MARIONETTE_6865)}; + public static final Item[] HOLIDAY_ITEMS = {new Item(Items.YO_YO_4079), new Item(Items.REINDEER_HAT_10507), new Item(Items.RUBBER_CHICKEN_4566),new Item(Items.ZOMBIE_HEAD_6722), new Item(6857), new Item(6856), new Item(6858), new Item(6859), new Item(6860), new Item(6861), new Item(6862), new Item(6863), new Item(9920), new Item(9921),new Item(9922), new Item(9923), new Item(9924), new Item(9925), new Item(11019), new Item(11020), new Item(11021), new Item(11022), new Item(11789), new Item(11949), new Item(12634), new Item(14076), new Item(14077), new Item(14081),new Item(14595), new Item(14602), new Item(14603), new Item(14605), new Item(14654), new Item(Items.RED_MARIONETTE_6867), new Item(Items.GREEN_MARIONETTE_6866), new Item(Items.BLUE_MARIONETTE_6865)}; //initialize the plugin, add lists of items to the ITEMS list... @Override diff --git a/Server/src/main/java/core/game/interaction/item/toys/SnowGlobePlugin.java b/Server/src/main/content/global/handlers/item/toys/SnowGlobePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/toys/SnowGlobePlugin.java rename to Server/src/main/content/global/handlers/item/toys/SnowGlobePlugin.java index d482ea4e5..7061980fa 100644 --- a/Server/src/main/java/core/game/interaction/item/toys/SnowGlobePlugin.java +++ b/Server/src/main/content/global/handlers/item/toys/SnowGlobePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.toys; +package content.global.handlers.item.toys; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -12,7 +12,7 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; @Initializable public class SnowGlobePlugin extends OptionHandler { diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/CapeDyer.kt b/Server/src/main/content/global/handlers/item/withitem/CapeDyer.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/CapeDyer.kt rename to Server/src/main/content/global/handlers/item/withitem/CapeDyer.kt index f0345e9ac..941b993a7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/CapeDyer.kt +++ b/Server/src/main/content/global/handlers/item/withitem/CapeDyer.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import core.game.content.global.Dyes +import content.data.Dyes import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.item.Item @@ -50,7 +50,7 @@ class CapeDyer : UseWithHandler(*CAPES.copyOfRange(0,CAPES.size - 1).toIntArray( return true } - internal enum class Cape(val dye : Dyes,val product : Item) { + internal enum class Cape(val dye : Dyes, val product : Item) { BLACK(Dyes.BLACK, Item(1019)), RED(Dyes.RED, Item(1007)), BLUE(Dyes.BLUE, Item(1021)), diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/CrystalKeyCreateListener.kt b/Server/src/main/content/global/handlers/item/withitem/CrystalKeyCreateListener.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/CrystalKeyCreateListener.kt rename to Server/src/main/content/global/handlers/item/withitem/CrystalKeyCreateListener.kt index 006b4cfca..207102b5f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/CrystalKeyCreateListener.kt +++ b/Server/src/main/content/global/handlers/item/withitem/CrystalKeyCreateListener.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.addItem -import api.removeItem -import api.sendMessage +import core.api.addItem +import core.api.removeItem +import core.api.sendMessage import org.rs09.consts.Items -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for creating a crystal key diff --git a/Server/src/main/java/core/game/interaction/item/withitem/DarkBowDyePlugin.java b/Server/src/main/content/global/handlers/item/withitem/DarkBowDyePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/withitem/DarkBowDyePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/DarkBowDyePlugin.java index 05afeb033..548b236bc 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/DarkBowDyePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/DarkBowDyePlugin.java @@ -1,12 +1,12 @@ -package core.game.interaction.item.withitem; -import core.game.content.dialogue.DialogueAction; +package content.global.handlers.item.withitem; +import core.game.dialogue.DialogueAction; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The plugin used to dye a dark bow into a more one. diff --git a/Server/src/main/java/core/game/interaction/item/withitem/FirelighterPlugin.java b/Server/src/main/content/global/handlers/item/withitem/FirelighterPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/withitem/FirelighterPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/FirelighterPlugin.java index 9042a0778..4e088bee3 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/FirelighterPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/FirelighterPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/FishfoodPlugin.java b/Server/src/main/content/global/handlers/item/withitem/FishfoodPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/withitem/FishfoodPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/FishfoodPlugin.java index 41dc8439c..a73f3cf66 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/FishfoodPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/FishfoodPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import org.rs09.consts.Items; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/FruitCuttingPlugin.java b/Server/src/main/content/global/handlers/item/withitem/FruitCuttingPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/item/withitem/FruitCuttingPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/FruitCuttingPlugin.java index 6b0fc2829..a9f7fd003 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/FruitCuttingPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/FruitCuttingPlugin.java @@ -1,11 +1,11 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.plugin.Initializable; import kotlin.Unit; import org.rs09.consts.Items; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/GodswordHiltAttachPlugin.java b/Server/src/main/content/global/handlers/item/withitem/GodswordHiltAttachPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withitem/GodswordHiltAttachPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/GodswordHiltAttachPlugin.java index 67804f9a1..9b027a835 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/GodswordHiltAttachPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/GodswordHiltAttachPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/GraniteMaulPlugin.java b/Server/src/main/content/global/handlers/item/withitem/GraniteMaulPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/item/withitem/GraniteMaulPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/GraniteMaulPlugin.java index 9174ffa24..6ba753d2f 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/GraniteMaulPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/GraniteMaulPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.cache.def.impl.ItemDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueAction; +import core.game.dialogue.DialogueAction; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -10,7 +10,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The plugin used to make the granite maul into the ornamental version. diff --git a/Server/src/main/java/core/game/interaction/item/withitem/GraniteSplittingPlugin.java b/Server/src/main/content/global/handlers/item/withitem/GraniteSplittingPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withitem/GraniteSplittingPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/GraniteSplittingPlugin.java index 46bccd928..951bb6ba9 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/GraniteSplittingPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/GraniteSplittingPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/HaySackOnSpear.kt b/Server/src/main/content/global/handlers/item/withitem/HaySackOnSpear.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/HaySackOnSpear.kt rename to Server/src/main/content/global/handlers/item/withitem/HaySackOnSpear.kt index e4c8771cf..a954ca114 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/HaySackOnSpear.kt +++ b/Server/src/main/content/global/handlers/item/withitem/HaySackOnSpear.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.Container -import api.* +import core.api.Container +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class HaySackOnSpear : InteractionListener { val HAYSACK = Items.HAY_SACK_6057 diff --git a/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java b/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java index 30b90a001..881f0e1ab 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/ImpJarCreatePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/KaramjanSilkPlugin.java b/Server/src/main/content/global/handlers/item/withitem/KaramjanSilkPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/withitem/KaramjanSilkPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/KaramjanSilkPlugin.java index f0441e4c3..5c6154d21 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/KaramjanSilkPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/KaramjanSilkPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/LavaScalePlugin.java b/Server/src/main/content/global/handlers/item/withitem/LavaScalePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withitem/LavaScalePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/LavaScalePlugin.java index 8a521aa73..656bd3607 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/LavaScalePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/LavaScalePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.node.entity.skill.Skills; import core.game.interaction.NodeUsageEvent; @@ -7,7 +7,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/MakeGlassInterfacePlugin.java b/Server/src/main/content/global/handlers/item/withitem/MakeGlassInterfacePlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/item/withitem/MakeGlassInterfacePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/MakeGlassInterfacePlugin.java index 6411dafad..b10b05a26 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/MakeGlassInterfacePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/MakeGlassInterfacePlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.component.Component; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.GlassProduct; +import content.global.skill.crafting.GlassProduct; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/OilFishingRodListener.kt b/Server/src/main/content/global/handlers/item/withitem/OilFishingRodListener.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/OilFishingRodListener.kt rename to Server/src/main/content/global/handlers/item/withitem/OilFishingRodListener.kt index 24992f8b2..1dcd15cd4 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/OilFishingRodListener.kt +++ b/Server/src/main/content/global/handlers/item/withitem/OilFishingRodListener.kt @@ -1,15 +1,15 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.* +import core.api.* import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class OilFishingRodListener : InteractionListener { override fun defineListeners() { - onUseWith(IntType.ITEM, Items.BLAMISH_OIL_1582, Items.FISHING_ROD_307) {player, used, with -> + onUseWith(IntType.ITEM, Items.BLAMISH_OIL_1582, Items.FISHING_ROD_307) { player, used, with -> player.pulseManager.run(object : Pulse() { var counter = 0 override fun pulse(): Boolean { @@ -27,7 +27,7 @@ class OilFishingRodListener : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM, Items.THIN_SNAIL_3363, Items.PESTLE_AND_MORTAR_233) {player, used, with -> + onUseWith(IntType.ITEM, Items.THIN_SNAIL_3363, Items.PESTLE_AND_MORTAR_233) { player, used, with -> if (player.inventory.contains(Items.SAMPLE_BOTTLE_3377, 1)) { player.pulseManager.run(object : Pulse() { var counter = 0 diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/PoisonedWeaponListeners.kt b/Server/src/main/content/global/handlers/item/withitem/PoisonedWeaponListeners.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/PoisonedWeaponListeners.kt rename to Server/src/main/content/global/handlers/item/withitem/PoisonedWeaponListeners.kt index f1ed59e49..61add9ec9 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/PoisonedWeaponListeners.kt +++ b/Server/src/main/content/global/handlers/item/withitem/PoisonedWeaponListeners.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.* +import core.api.* import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import kotlin.collections.toIntArray import kotlin.math.min @@ -14,7 +14,7 @@ class PoisonedWeaponListeners : InteractionListener { val poisonableItems = PoisonSets.itemMap.keys.toIntArray() val poisonedItems = PoisonSets.itemMap.values.toIntArray() - onUseWith(IntType.ITEM, poisons, *poisonableItems){player, used, with -> + onUseWith(IntType.ITEM, poisons, *poisonableItems){ player, used, with -> val index = poisons.indexOf(used.id) val product = PoisonSets.itemMap[with.id]!![index] val amt = min(5, with.asItem().amount) @@ -28,7 +28,7 @@ class PoisonedWeaponListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM, Items.CLEANING_CLOTH_3188, *poisonedItems) {player, _, with -> + onUseWith(IntType.ITEM, Items.CLEANING_CLOTH_3188, *poisonedItems) { player, _, with -> val base = PoisonSets.getBase(with.id) ?: return@onUseWith false val amt = min(5, with.asItem().amount) removeItem(player, Item(with.id, amt)) diff --git a/Server/src/main/java/core/game/interaction/item/withitem/SeasonedSardinePlugin.java b/Server/src/main/content/global/handlers/item/withitem/SeasonedSardinePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/withitem/SeasonedSardinePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/SeasonedSardinePlugin.java index d27da8c40..a1096660e 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/SeasonedSardinePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/SeasonedSardinePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/SkullSceptrePlugin.java b/Server/src/main/content/global/handlers/item/withitem/SkullSceptrePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withitem/SkullSceptrePlugin.java rename to Server/src/main/content/global/handlers/item/withitem/SkullSceptrePlugin.java index 450933140..e7b8c6a49 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/SkullSceptrePlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/SkullSceptrePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/SoftclayPlugin.java b/Server/src/main/content/global/handlers/item/withitem/SoftclayPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/withitem/SoftclayPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/SoftclayPlugin.java index e9c9162c9..37ff46584 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/SoftclayPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/SoftclayPlugin.java @@ -1,10 +1,10 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; import org.rs09.consts.Items; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/TOTTHelmOnCape.kt b/Server/src/main/content/global/handlers/item/withitem/TOTTHelmOnCape.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/TOTTHelmOnCape.kt rename to Server/src/main/content/global/handlers/item/withitem/TOTTHelmOnCape.kt index 9ad853927..eabd9ee37 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/TOTTHelmOnCape.kt +++ b/Server/src/main/content/global/handlers/item/withitem/TOTTHelmOnCape.kt @@ -1,12 +1,12 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.Container -import api.* +import core.api.Container +import core.api.* import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class TOTTHelmOnCape : InteractionListener { override fun defineListeners() { diff --git a/Server/src/main/java/core/game/interaction/item/withitem/WaterSkinPlugin.java b/Server/src/main/content/global/handlers/item/withitem/WaterSkinPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withitem/WaterSkinPlugin.java rename to Server/src/main/content/global/handlers/item/withitem/WaterSkinPlugin.java index eabcda331..39848ea0a 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/WaterSkinPlugin.java +++ b/Server/src/main/content/global/handlers/item/withitem/WaterSkinPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withitem; +package content.global.handlers.item.withitem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/WatermelonOnSack.kt b/Server/src/main/content/global/handlers/item/withitem/WatermelonOnSack.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/interaction/item/withitem/WatermelonOnSack.kt rename to Server/src/main/content/global/handlers/item/withitem/WatermelonOnSack.kt index 35ebdcb85..da829ed82 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withitem/WatermelonOnSack.kt +++ b/Server/src/main/content/global/handlers/item/withitem/WatermelonOnSack.kt @@ -1,18 +1,18 @@ -package rs09.game.interaction.item.withitem +package content.global.handlers.item.withitem -import api.Container -import api.* +import core.api.Container +import core.api.* import core.game.node.entity.skill.Skills import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class WatermelonOnSack : InteractionListener { val SACK = Items.HAY_SACK_6058 val WATERMELON = Items.WATERMELON_5982 override fun defineListeners() { - onUseWith(IntType.ITEM, SACK, WATERMELON){player, used, _ -> + onUseWith(IntType.ITEM, SACK, WATERMELON){ player, used, _ -> if(getStatLevel(player, Skills.FARMING) >= 23){ removeItem(player,SACK, Container.INVENTORY) removeItem(player,WATERMELON,Container.INVENTORY) diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ArchaeologicalExpertListener.kt b/Server/src/main/content/global/handlers/item/withnpc/ArchaeologicalExpertListener.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ArchaeologicalExpertListener.kt rename to Server/src/main/content/global/handlers/item/withnpc/ArchaeologicalExpertListener.kt index 5f698bf23..b6bfb4851 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ArchaeologicalExpertListener.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/ArchaeologicalExpertListener.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.openDialogue -import core.game.node.entity.npc.NPC +import core.api.openDialogue import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.region.examcentre.ArchaeologistcalExpertUsedOnDialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import content.region.misthalin.digsite.dialogue.ArchaeologistcalExpertUsedOnDialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType open class ArchaeologicalExpertListener() : InteractionListener { val staff = Items.ANCIENT_STAFF_4675 diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/BonesOnStrayDog.kt b/Server/src/main/content/global/handlers/item/withnpc/BonesOnStrayDog.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/BonesOnStrayDog.kt rename to Server/src/main/content/global/handlers/item/withnpc/BonesOnStrayDog.kt index af0300f00..e6e7fd03a 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/BonesOnStrayDog.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/BonesOnStrayDog.kt @@ -1,16 +1,15 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.removeItem -import api.sendChat -import api.sendMessage -import core.game.content.global.Bones +import core.api.removeItem +import core.api.sendChat +import core.api.sendMessage +import content.global.skill.prayer.Bones import core.game.node.entity.npc.NPC -import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class BonesOnStrayDog : InteractionListener { override fun defineListeners() { diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CatOnArdougneCivilian.kt b/Server/src/main/content/global/handlers/item/withnpc/CatOnArdougneCivilian.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CatOnArdougneCivilian.kt rename to Server/src/main/content/global/handlers/item/withnpc/CatOnArdougneCivilian.kt index 3fd5be5b1..f89b011c7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CatOnArdougneCivilian.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/CatOnArdougneCivilian.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.Container -import api.* +import core.api.Container +import core.api.* import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class CatOnArdougneCivilian: InteractionListener { @@ -45,7 +45,7 @@ class CatOnArdougneCivilian: InteractionListener { ) override fun defineListeners() { - onUseWith(IntType.NPC,cats,*civilians){player, used, _ -> + onUseWith(IntType.NPC,cats,*civilians){ player, used, _ -> sendItemDialogue(player,Items.DEATH_RUNE_560,"You hand over the cat.
You are given 100 Death Runes.") player.familiarManager.removeDetails(used.id) removeItem(player,used,Container.INVENTORY) diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CiderOnForester.kt b/Server/src/main/content/global/handlers/item/withnpc/CiderOnForester.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CiderOnForester.kt rename to Server/src/main/content/global/handlers/item/withnpc/CiderOnForester.kt index 53cd9024e..31cb87218 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/CiderOnForester.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/CiderOnForester.kt @@ -1,19 +1,19 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.inBorders -import api.sendNPCDialogue +import core.api.inBorders +import core.api.sendNPCDialogue import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class CiderOnForester : InteractionListener { override fun defineListeners() { val ids = intArrayOf(1,2,3,4,5) - onUseWith(IntType.NPC, Items.CIDER_5763, *ids){player, used, with -> + onUseWith(IntType.NPC, Items.CIDER_5763, *ids){ player, used, with -> if(inBorders(player, 2689, 3488, 2700, 3498)){ player.dialogueInterpreter.open(CiderOnForesterDialogue(),with) return@onUseWith true diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/FeedFaladorSheepdog.kt b/Server/src/main/content/global/handlers/item/withnpc/FeedFaladorSheepdog.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/FeedFaladorSheepdog.kt rename to Server/src/main/content/global/handlers/item/withnpc/FeedFaladorSheepdog.kt index abc23f025..3d32a2e57 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/FeedFaladorSheepdog.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/FeedFaladorSheepdog.kt @@ -1,15 +1,15 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.* -import core.game.content.global.Bones -import core.game.content.global.Meat -import core.game.content.global.MeatState +import core.api.* +import content.global.skill.prayer.Bones +import content.data.Meat +import content.data.MeatState import core.game.world.update.flag.context.Animation import org.rs09.consts.Animations import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class FeedFaladorSheepdog : InteractionListener { companion object { diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/GCItemOnCat.kt b/Server/src/main/content/global/handlers/item/withnpc/GCItemOnCat.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/GCItemOnCat.kt rename to Server/src/main/content/global/handlers/item/withnpc/GCItemOnCat.kt index d86e38613..415a47c9e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/GCItemOnCat.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/GCItemOnCat.kt @@ -1,22 +1,22 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.* +import core.api.* import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.path.Path import core.game.world.map.path.Pathfinder import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld.Pulser +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld.Pulser class GCItemOnCat : InteractionListener { override fun defineListeners() { val GERTCAT = "Gertrude's Cat" val BEND_DOWN = 827 - onUseWith(IntType.NPC, Items.BUCKET_OF_MILK_1927, NPCs.GERTRUDES_CAT_2997) {player, used, with -> + onUseWith(IntType.NPC, Items.BUCKET_OF_MILK_1927, NPCs.GERTRUDES_CAT_2997) { player, used, with -> if(questStage(player, GERTCAT) == 20 && removeItem(player, used.asItem())){ addItem(player, Items.BUCKET_1925) animate(player, BEND_DOWN) //bend down @@ -26,7 +26,7 @@ class GCItemOnCat : InteractionListener { return@onUseWith true } - onUseWith(IntType.NPC, Items.DOOGLE_SARDINE_1552, NPCs.GERTRUDES_CAT_2997){player, used, with -> + onUseWith(IntType.NPC, Items.DOOGLE_SARDINE_1552, NPCs.GERTRUDES_CAT_2997){ player, used, with -> if(questStage(player, GERTCAT) == 30 && removeItem(player, used.asItem())){ animate(player, BEND_DOWN) sendChat(with.asNpc(), "Mew!") @@ -35,12 +35,12 @@ class GCItemOnCat : InteractionListener { return@onUseWith true } - onUseWith(IntType.NPC, Items.RAW_SARDINE_327, NPCs.GERTRUDES_CAT_2997){player, _, _ -> + onUseWith(IntType.NPC, Items.RAW_SARDINE_327, NPCs.GERTRUDES_CAT_2997){ player, _, _ -> sendMessage(player, "The cat doesn't seem interested in that.") return@onUseWith true } - onUseWith(IntType.NPC, Items.THREE_LITTLE_KITTENS_13236, NPCs.GERTRUDES_CAT_2997){player, used, with -> + onUseWith(IntType.NPC, Items.THREE_LITTLE_KITTENS_13236, NPCs.GERTRUDES_CAT_2997){ player, used, with -> if(removeItem(player, used.asItem())){ setQuestStage(player, GERTCAT, 60) //below copied verbatim from original, I don't like it. diff --git a/Server/src/main/java/core/game/interaction/item/withnpc/GertrudeCatUsePlugin.java b/Server/src/main/content/global/handlers/item/withnpc/GertrudeCatUsePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withnpc/GertrudeCatUsePlugin.java rename to Server/src/main/content/global/handlers/item/withnpc/GertrudeCatUsePlugin.java index 1275872c5..b939f3735 100644 --- a/Server/src/main/java/core/game/interaction/item/withnpc/GertrudeCatUsePlugin.java +++ b/Server/src/main/content/global/handlers/item/withnpc/GertrudeCatUsePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withnpc; +package content.global.handlers.item.withnpc; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -7,7 +7,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.path.Path; import core.game.world.map.path.Pathfinder; diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/HatEasterEgg.kt b/Server/src/main/content/global/handlers/item/withnpc/HatEasterEgg.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/HatEasterEgg.kt rename to Server/src/main/content/global/handlers/item/withnpc/HatEasterEgg.kt index fdb71a2c3..4e41d8d61 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/HatEasterEgg.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/HatEasterEgg.kt @@ -1,13 +1,12 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.item.Item import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType val graphics = 482 class HatEasterEgg : InteractionListener { @@ -32,11 +31,11 @@ class HatDialogue : DialogueFile(){ npc("WHAT HAVE YOU DONE?") player!!.graphics(Graphics(graphics)) } - 1 -> player(FacialExpression.AFRAID,"What do you mean?!") + 1 -> player(core.game.dialogue.FacialExpression.AFRAID,"What do you mean?!") 2 -> npc("You've disjointed the fabric assimilation matrix!") - 3 -> player(FacialExpression.THINKING,"W-what...?") + 3 -> player(core.game.dialogue.FacialExpression.THINKING,"W-what...?") 4 -> npc("You've put us at risk of ripping Gielinor apart!") - 5 -> player(FacialExpression.HALF_GUILTY,"I.. I just wanted a hat...") + 5 -> player(core.game.dialogue.FacialExpression.HALF_GUILTY,"I.. I just wanted a hat...") 6 -> npc("Damn you and damn your hat! You could kill us all!") 7 -> player("I... I'm sorry....") 8 -> npc("*sigh* I've managed to stabilize the flux material inductors.") diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/MistagEasterEgg.kt b/Server/src/main/content/global/handlers/item/withnpc/MistagEasterEgg.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/MistagEasterEgg.kt rename to Server/src/main/content/global/handlers/item/withnpc/MistagEasterEgg.kt index 07cfc6c90..e763a4963 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/MistagEasterEgg.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/MistagEasterEgg.kt @@ -1,14 +1,13 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class MistagEasterEgg : InteractionListener { val DIAMOND = Items.DIAMOND_1601 @@ -16,7 +15,7 @@ class MistagEasterEgg : InteractionListener { val ZANIK_RING = 14649 override fun defineListeners() { - onUseWith(IntType.NPC,DIAMOND,MISTAG){player, _, with -> + onUseWith(IntType.NPC,DIAMOND,MISTAG){ player, _, with -> val alreadyHasRing = player.inventory.contains(ZANIK_RING,1) || player.bank.contains(ZANIK_RING,1) || player.equipment.contains(ZANIK_RING,1) player.dialogueInterpreter.open(MistagEasterEggDialogue(alreadyHasRing),with.asNpc()) return@onUseWith true @@ -54,6 +53,6 @@ class MistagEasterEggDialogue(val hasRing: Boolean): DialogueFile(){ } override fun npc(vararg messages: String?): Component? { - return super.npc(FacialExpression.OLD_HAPPY,*messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_HAPPY,*messages) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/PoisonChaliceOnKingArthur.kt b/Server/src/main/content/global/handlers/item/withnpc/PoisonChaliceOnKingArthur.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/PoisonChaliceOnKingArthur.kt rename to Server/src/main/content/global/handlers/item/withnpc/PoisonChaliceOnKingArthur.kt index 571d4bebe..e8bd4fe63 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/PoisonChaliceOnKingArthur.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/PoisonChaliceOnKingArthur.kt @@ -1,13 +1,12 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import core.game.content.dialogue.FacialExpression import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class PoisonChaliceOnKingArthur : InteractionListener { override fun defineListeners() { @@ -22,27 +21,27 @@ class PoisonChaliceOnKingArthurDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { when (stage) { 0 -> npcl( - FacialExpression.SAD, + core.game.dialogue.FacialExpression.SAD, "You have chosen poorly." ).also { stage++ } 1 -> playerl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Excuse me?" ).also { stage++ } 2 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Sorry, I meant to say 'thank you'. Most refreshing." ).also { stage++ } 3 -> playerl( - FacialExpression.DISGUSTED_HEAD_SHAKE, + core.game.dialogue.FacialExpression.DISGUSTED_HEAD_SHAKE, "Are you sure that stuff is safe to drink?" ).also { stage++ } 4 -> npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Oh yes, Stankers' creations may be dangerous for those with weak constitutions, but, personally. I find them rather invigorating." ).also { player!!.inventory.remove(Item(197, 1)) diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/RopeOnLadyKeli.kt b/Server/src/main/content/global/handlers/item/withnpc/RopeOnLadyKeli.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/RopeOnLadyKeli.kt rename to Server/src/main/content/global/handlers/item/withnpc/RopeOnLadyKeli.kt index 22bac8992..9a4e05f04 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/RopeOnLadyKeli.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/RopeOnLadyKeli.kt @@ -1,16 +1,16 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.* +import core.api.* import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class RopeOnLadyKeli : InteractionListener { override fun defineListeners() { val PAR = "Prince Ali Rescue" - onUseWith(IntType.NPC, Items.ROPE_954, NPCs.LADY_KELI_919) {player, used, with -> + onUseWith(IntType.NPC, Items.ROPE_954, NPCs.LADY_KELI_919) { player, used, with -> if(questStage(player, PAR) in 40..50 && getAttribute(player, "guard-drunk", false)){ if(removeItem(player, used.asItem())){ sendDialogue(player, "You overpower Keli, tie her up, and put her in a cupboard.") diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ZooknockListener.kt b/Server/src/main/content/global/handlers/item/withnpc/ZooknockListener.kt similarity index 63% rename from Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ZooknockListener.kt rename to Server/src/main/content/global/handlers/item/withnpc/ZooknockListener.kt index d3680f138..297740e60 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withnpc/ZooknockListener.kt +++ b/Server/src/main/content/global/handlers/item/withnpc/ZooknockListener.kt @@ -1,13 +1,11 @@ -package rs09.game.interaction.item.withnpc +package content.global.handlers.item.withnpc -import api.openDialogue -import core.game.node.entity.npc.NPC +import content.region.misc.apeatoll.dialogue.dungeon.ZooknockDialogueFile +import core.api.openDialogue import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.region.examcentre.ArchaeologistcalExpertUsedOnDialogueFile -import rs09.game.content.dialogue.region.examcentre.ZooknockDialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType open class ZooknockListener() : InteractionListener { val goldBar = Items.GOLD_BAR_2357 diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/AmmoMouldOnFurnace.kt b/Server/src/main/content/global/handlers/item/withobject/AmmoMouldOnFurnace.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/AmmoMouldOnFurnace.kt rename to Server/src/main/content/global/handlers/item/withobject/AmmoMouldOnFurnace.kt index f34c8b08f..837d1f774 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/AmmoMouldOnFurnace.kt +++ b/Server/src/main/content/global/handlers/item/withobject/AmmoMouldOnFurnace.kt @@ -1,19 +1,17 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import core.game.content.quest.members.dwarfcannon.DwarfCannon +import core.api.* +import content.region.kandarin.quest.dwarfcannon.DwarfCannon import core.game.node.Node import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.item.Item import core.game.system.task.Pulse -import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.content.dialogue.SkillDialogueHandler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.SkillDialogueHandler +import core.game.interaction.InteractionListener +import core.game.interaction.IntType -class AmmoMouldOnFurnace : InteractionListener{ +class AmmoMouldOnFurnace : InteractionListener { private val furnaces = intArrayOf(4304, 6189, 11010, 11666, 12100, 12809, 18497, 26814, 30021, 30510, 36956, 37651) // abstract when smelting converted to kotlin private val levelRequirement = 35 diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/AxeOnTree.kt b/Server/src/main/content/global/handlers/item/withobject/AxeOnTree.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/AxeOnTree.kt rename to Server/src/main/content/global/handlers/item/withobject/AxeOnTree.kt index 0c1515a79..b9e89f6e4 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/AxeOnTree.kt +++ b/Server/src/main/content/global/handlers/item/withobject/AxeOnTree.kt @@ -1,20 +1,18 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import core.game.node.entity.skill.gather.SkillingTool -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingNode -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingSkillPulse +import core.api.* +import content.global.skill.gather.woodcutting.WoodcuttingNode +import content.global.skill.gather.woodcutting.WoodcuttingSkillPulse import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType -class AxeOnTree : InteractionListener{ +class AxeOnTree : InteractionListener { val axes = intArrayOf(Items.BRONZE_AXE_1351, Items.MITHRIL_AXE_1355, Items.IRON_AXE_1349, Items.BLACK_AXE_1361, Items.STEEL_AXE_1353, Items.ADAMANT_AXE_1357, Items.RUNE_AXE_1359, Items.DRAGON_AXE_6739, Items.INFERNO_ADZE_13661) val trees = WoodcuttingNode.values().map { it.id }.toIntArray() override fun defineListeners() { - onUseWith(IntType.SCENERY, axes, *trees){player, _, with -> + onUseWith(IntType.SCENERY, axes, *trees){ player, _, with -> submitIndividualPulse(player, WoodcuttingSkillPulse(player, with.asScenery())) return@onUseWith true } diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/CauldronOfThunderListener.kt b/Server/src/main/content/global/handlers/item/withobject/CauldronOfThunderListener.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/CauldronOfThunderListener.kt rename to Server/src/main/content/global/handlers/item/withobject/CauldronOfThunderListener.kt index 6de28567e..d33edf37a 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/CauldronOfThunderListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/CauldronOfThunderListener.kt @@ -1,14 +1,14 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.addItem -import api.animate -import api.removeItem -import api.sendMessage +import core.api.addItem +import core.api.animate +import core.api.removeItem +import core.api.sendMessage import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener import java.util.* /** diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/ChestKeyListener.kt b/Server/src/main/content/global/handlers/item/withobject/ChestKeyListener.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/ChestKeyListener.kt rename to Server/src/main/content/global/handlers/item/withobject/ChestKeyListener.kt index a810b7e49..a64638f3f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/ChestKeyListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/ChestKeyListener.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.addItem -import api.removeItem -import api.replaceScenery -import api.sendMessage +import core.api.addItem +import core.api.removeItem +import core.api.replaceScenery +import core.api.sendMessage import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for using key on pirate chest in Blue Moon Inn diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/CoalTruckListener.kt b/Server/src/main/content/global/handlers/item/withobject/CoalTruckListener.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/CoalTruckListener.kt rename to Server/src/main/content/global/handlers/item/withobject/CoalTruckListener.kt index 1268f9ef4..c2fef6e3c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/CoalTruckListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/CoalTruckListener.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles coal truck interactions diff --git a/Server/src/main/content/global/handlers/item/withobject/DragonPlatebody.java b/Server/src/main/content/global/handlers/item/withobject/DragonPlatebody.java new file mode 100644 index 000000000..b8f3d60bf --- /dev/null +++ b/Server/src/main/content/global/handlers/item/withobject/DragonPlatebody.java @@ -0,0 +1,5 @@ +package content.global.handlers.item.withobject; + +public class DragonPlatebody { + +} diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/EctophialFillListener.kt b/Server/src/main/content/global/handlers/item/withobject/EctophialFillListener.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/EctophialFillListener.kt rename to Server/src/main/content/global/handlers/item/withobject/EctophialFillListener.kt index 46b3ccfff..c60d9f822 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/EctophialFillListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/EctophialFillListener.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.entity.player.link.audio.Audio import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for filling empty ectophial diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/FishEasterEgg.kt b/Server/src/main/content/global/handlers/item/withobject/FishEasterEgg.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/FishEasterEgg.kt rename to Server/src/main/content/global/handlers/item/withobject/FishEasterEgg.kt index 7ef94beaf..c5e1869f7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/FishEasterEgg.kt +++ b/Server/src/main/content/global/handlers/item/withobject/FishEasterEgg.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingNode +import core.api.* +import content.global.skill.gather.woodcutting.WoodcuttingNode import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class FishEasterEgg : InteractionListener { val TREE_IDs = WoodcuttingNode.values().map { it.id }.toIntArray() @@ -13,12 +13,12 @@ class FishEasterEgg : InteractionListener { val doors = intArrayOf(1967,1968) override fun defineListeners() { - onUseWith(IntType.SCENERY, fish, *TREE_IDs){player, _, _ -> + onUseWith(IntType.SCENERY, fish, *TREE_IDs){ player, _, _ -> sendMessage(player, "This is not the mightiest tree in the forest.") return@onUseWith true } - onUseWith(IntType.SCENERY, fish, *doors){player, _, _ -> + onUseWith(IntType.SCENERY, fish, *doors){ player, _, _ -> sendMessage(player, "It can't be done!") return@onUseWith true } diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/GWDEntranceRopeListener.kt b/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt similarity index 74% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/GWDEntranceRopeListener.kt rename to Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt index 3fad01c75..a90652138 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/GWDEntranceRopeListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/GWDEntranceRopeListener.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.removeItem -import api.setVarbit +import core.api.removeItem +import core.api.setVarbit import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for using a rope directly on the GWD entrance hole diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/HairdresserCheeseListener.kt b/Server/src/main/content/global/handlers/item/withobject/HairdresserCheeseListener.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/HairdresserCheeseListener.kt rename to Server/src/main/content/global/handlers/item/withobject/HairdresserCheeseListener.kt index 7ea97923c..0606f65b2 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/HairdresserCheeseListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/HairdresserCheeseListener.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.entity.player.link.diary.DiaryType import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for using cheese on Ridgeley on the treadmill diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/HatStand.kt b/Server/src/main/content/global/handlers/item/withobject/HatStand.kt similarity index 61% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/HatStand.kt rename to Server/src/main/content/global/handlers/item/withobject/HatStand.kt index 05f018632..c9f3a3dde 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/HatStand.kt +++ b/Server/src/main/content/global/handlers/item/withobject/HatStand.kt @@ -1,11 +1,10 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import api.EquipmentSlot +import core.api.* +import core.api.EquipmentSlot import core.cache.def.impl.ItemDefinition -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.SystemLogger +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class HatStand : InteractionListener { @@ -13,7 +12,7 @@ class HatStand : InteractionListener { val hat_stand = 374 override fun defineListeners() { - onUseWith(IntType.SCENERY, hats, hat_stand){player, used, with -> + onUseWith(IntType.SCENERY, hats, hat_stand){ player, used, with -> sendDialogue(player, "It'd probably fall off if I tried to do that.") return@onUseWith true } diff --git a/Server/src/main/java/core/game/interaction/item/withobject/IncubatorPlugin.java b/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/item/withobject/IncubatorPlugin.java rename to Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java index 1b352c2ac..665f93b48 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/IncubatorPlugin.java +++ b/Server/src/main/content/global/handlers/item/withobject/IncubatorPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withobject; +package content.global.handlers.item.withobject; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -7,13 +7,13 @@ import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.pet.IncubatorEgg; +import content.global.skill.summoning.pet.IncubatorEgg; import core.game.node.item.GroundItemManager; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.StringUtils; -import rs09.game.node.entity.state.newsys.states.IncubatorState; -import rs09.plugin.ClassScanner; +import content.global.skill.summoning.pet.IncubatorState; +import core.plugin.ClassScanner; /** * Handles the incubator. diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/KaramjaBananaCrateListener.kt b/Server/src/main/content/global/handlers/item/withobject/KaramjaBananaCrateListener.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/KaramjaBananaCrateListener.kt rename to Server/src/main/content/global/handlers/item/withobject/KaramjaBananaCrateListener.kt index 070a7766a..6db716bf9 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/KaramjaBananaCrateListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/KaramjaBananaCrateListener.kt @@ -1,13 +1,12 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import core.game.interaction.city.KaramajaOptionPlugin +import core.api.* import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener import kotlin.math.min /** diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/PoisonFountainListener.kt b/Server/src/main/content/global/handlers/item/withobject/PoisonFountainListener.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/PoisonFountainListener.kt rename to Server/src/main/content/global/handlers/item/withobject/PoisonFountainListener.kt index 7db72a5eb..efb5a85eb 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/PoisonFountainListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/PoisonFountainListener.kt @@ -1,13 +1,12 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.world.GameWorld.Pulser +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for using poisoned fish food on Draynor Manor fountain diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SackOnHay.kt b/Server/src/main/content/global/handlers/item/withobject/SackOnHay.kt similarity index 65% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/SackOnHay.kt rename to Server/src/main/content/global/handlers/item/withobject/SackOnHay.kt index 5df793c4e..0b942e623 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SackOnHay.kt +++ b/Server/src/main/content/global/handlers/item/withobject/SackOnHay.kt @@ -1,17 +1,17 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.Container -import api.* +import core.api.Container +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class SackOnHay : InteractionListener { val SACK = Items.EMPTY_SACK_5418 val HAY = intArrayOf(36892, 36894, 36896, 300, 34593, 298, 299) override fun defineListeners() { - onUseWith(IntType.SCENERY, SACK, *HAY){player, used, _ -> + onUseWith(IntType.SCENERY, SACK, *HAY){ player, used, _ -> if(removeItem(player, used.asItem(), Container.INVENTORY)){ addItem(player, Items.HAY_SACK_6057, 1) sendMessage(player, "You fill the sack with hay.") diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SandSourceListener.kt b/Server/src/main/content/global/handlers/item/withobject/SandSourceListener.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/SandSourceListener.kt rename to Server/src/main/content/global/handlers/item/withobject/SandSourceListener.kt index c6b63006a..799084610 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SandSourceListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/SandSourceListener.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* -import core.game.system.task.Pulse +import core.api.* import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for collecting buckets of sand from a sand pit diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SapCollectListener.kt b/Server/src/main/content/global/handlers/item/withobject/SapCollectListener.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/SapCollectListener.kt rename to Server/src/main/content/global/handlers/item/withobject/SapCollectListener.kt index c632cf366..3607fda98 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SapCollectListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/SapCollectListener.kt @@ -1,14 +1,14 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Animations import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for collecting buckets of sap from trees diff --git a/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java b/Server/src/main/content/global/handlers/item/withobject/SmithingPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java rename to Server/src/main/content/global/handlers/item/withobject/SmithingPlugin.java index 6b26b7539..197c6e126 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java +++ b/Server/src/main/content/global/handlers/item/withobject/SmithingPlugin.java @@ -1,9 +1,10 @@ -package core.game.interaction.item.withobject; +package content.global.handlers.item.withobject; +import content.global.skill.skillcapeperks.SkillcapePerks; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.smithing.SmithingBuilder; -import core.game.node.entity.skill.smithing.smelting.Bar; +import content.global.skill.smithing.SmithingBuilder; +import content.global.skill.smithing.smelting.Bar; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -13,8 +14,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the option handler used for smithing. diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SpiritShieldBlessListener.kt b/Server/src/main/content/global/handlers/item/withobject/SpiritShieldBlessListener.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/SpiritShieldBlessListener.kt rename to Server/src/main/content/global/handlers/item/withobject/SpiritShieldBlessListener.kt index 0109033e6..78f95113f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SpiritShieldBlessListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/SpiritShieldBlessListener.kt @@ -1,14 +1,14 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.world.repository.Repository.sendNews +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.world.repository.Repository.sendNews import java.util.* /** diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SwampHoleRopeListener.kt b/Server/src/main/content/global/handlers/item/withobject/SwampHoleRopeListener.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/SwampHoleRopeListener.kt rename to Server/src/main/content/global/handlers/item/withobject/SwampHoleRopeListener.kt index 924366edb..020b50e62 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/SwampHoleRopeListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/SwampHoleRopeListener.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for using rope on Lumbridge swamp hole diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/WaterSourceListener.kt b/Server/src/main/content/global/handlers/item/withobject/WaterSourceListener.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/item/withobject/WaterSourceListener.kt rename to Server/src/main/content/global/handlers/item/withobject/WaterSourceListener.kt index ae8b52086..caf12172e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/withobject/WaterSourceListener.kt +++ b/Server/src/main/content/global/handlers/item/withobject/WaterSourceListener.kt @@ -1,12 +1,12 @@ -package rs09.game.interaction.item.withobject +package content.global.handlers.item.withobject -import api.* +import core.api.* import core.game.node.entity.player.link.diary.DiaryType import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles filling most water sources. @@ -21,7 +21,7 @@ class WaterSourceListener : InteractionListener { override fun defineListeners() { - onUseWith(IntType.SCENERY, WaterVessel.getInputs(), *waterSources){player, used, with -> + onUseWith(IntType.SCENERY, WaterVessel.getInputs(), *waterSources){ player, used, with -> val vessel = WaterVessel.forId(used.id) ?: return@onUseWith false if(with.name.contains("well", ignoreCase = true) && !vessel.wellable) diff --git a/Server/src/main/java/core/game/interaction/item/withplayer/ChristmasCrackerUsage.java b/Server/src/main/content/global/handlers/item/withplayer/ChristmasCrackerUsage.java similarity index 97% rename from Server/src/main/java/core/game/interaction/item/withplayer/ChristmasCrackerUsage.java rename to Server/src/main/content/global/handlers/item/withplayer/ChristmasCrackerUsage.java index 76cc6d01d..de13eb88f 100644 --- a/Server/src/main/java/core/game/interaction/item/withplayer/ChristmasCrackerUsage.java +++ b/Server/src/main/content/global/handlers/item/withplayer/ChristmasCrackerUsage.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withplayer; +package content.global.handlers.item.withplayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/item/withplayer/FieldRationUsage.java b/Server/src/main/content/global/handlers/item/withplayer/FieldRationUsage.java similarity index 96% rename from Server/src/main/java/core/game/interaction/item/withplayer/FieldRationUsage.java rename to Server/src/main/content/global/handlers/item/withplayer/FieldRationUsage.java index abe37b298..0271f9521 100644 --- a/Server/src/main/java/core/game/interaction/item/withplayer/FieldRationUsage.java +++ b/Server/src/main/content/global/handlers/item/withplayer/FieldRationUsage.java @@ -1,4 +1,4 @@ -package core.game.interaction.item.withplayer; +package content.global.handlers.item.withplayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/BankerNPC.kt b/Server/src/main/content/global/handlers/npc/BankerNPC.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/BankerNPC.kt rename to Server/src/main/content/global/handlers/npc/BankerNPC.kt index d6fa6944f..e59ac6b69 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/BankerNPC.kt +++ b/Server/src/main/content/global/handlers/npc/BankerNPC.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.npc +package content.global.handlers.npc -import api.* +import core.api.* import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.npc.AbstractNPC @@ -10,9 +10,9 @@ import core.game.world.map.Direction import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.`object`.BankBoothListener +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import content.global.handlers.scenery.BankBoothListener /** * Provides dialogue tree for all generic banker NPCs as well as diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ChromaticDragonNPC.java b/Server/src/main/content/global/handlers/npc/ChromaticDragonNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/other/ChromaticDragonNPC.java rename to Server/src/main/content/global/handlers/npc/ChromaticDragonNPC.java index a333414e2..66121a209 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ChromaticDragonNPC.java +++ b/Server/src/main/content/global/handlers/npc/ChromaticDragonNPC.java @@ -1,16 +1,16 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles a chromatic dragon (green, blue, red, ..). diff --git a/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java b/Server/src/main/content/global/handlers/npc/CowMilkingPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java rename to Server/src/main/content/global/handlers/npc/CowMilkingPlugin.java index 987438b9e..452c809bd 100644 --- a/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java +++ b/Server/src/main/content/global/handlers/npc/CowMilkingPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.npc; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -12,7 +12,7 @@ import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the plugin used to milk a cow. diff --git a/Server/src/main/java/core/game/node/entity/npc/other/CowNPC.java b/Server/src/main/content/global/handlers/npc/CowNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/other/CowNPC.java rename to Server/src/main/content/global/handlers/npc/CowNPC.java index 5b35b1c94..95383951f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/CowNPC.java +++ b/Server/src/main/content/global/handlers/npc/CowNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; -import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.world.map.Location; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/DarkWizardNPC.java b/Server/src/main/content/global/handlers/npc/DarkWizardNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/DarkWizardNPC.java rename to Server/src/main/content/global/handlers/npc/DarkWizardNPC.java index a671e9136..3124d8046 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/DarkWizardNPC.java +++ b/Server/src/main/content/global/handlers/npc/DarkWizardNPC.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/DecantListener.kt b/Server/src/main/content/global/handlers/npc/DecantListener.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/interaction/npc/DecantListener.kt rename to Server/src/main/content/global/handlers/npc/DecantListener.kt index a47db7de1..b9c741c4f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/DecantListener.kt +++ b/Server/src/main/content/global/handlers/npc/DecantListener.kt @@ -1,18 +1,18 @@ -package rs09.game.interaction.npc +package content.global.handlers.npc -import core.game.content.consumable.Consumables -import core.game.content.consumable.Potion +import content.data.consumables.Consumables +import core.game.consumable.Potion import core.game.node.entity.player.Player import core.game.node.item.Item -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class DecantListener : InteractionListener { override fun defineListeners() { - on(IntType.NPC,"decant"){player, node -> + on(IntType.NPC,"decant"){ player, node -> decant(player) player.dialogueInterpreter.open(DecantingDialogue(),node.asNpc()) return@on true diff --git a/Server/src/main/java/core/game/node/entity/npc/other/DuckNPC.java b/Server/src/main/content/global/handlers/npc/DuckNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/other/DuckNPC.java rename to Server/src/main/content/global/handlers/npc/DuckNPC.java index 6b049e1dd..40bdd4522 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/DuckNPC.java +++ b/Server/src/main/content/global/handlers/npc/DuckNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; -import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.world.map.Location; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/object/DummyAttackPlugin.java b/Server/src/main/content/global/handlers/npc/DummyAttackPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/DummyAttackPlugin.java rename to Server/src/main/content/global/handlers/npc/DummyAttackPlugin.java index c6cdf566f..8faf7ea6a 100644 --- a/Server/src/main/java/core/game/interaction/object/DummyAttackPlugin.java +++ b/Server/src/main/content/global/handlers/npc/DummyAttackPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.npc; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/GuardNPC.java b/Server/src/main/content/global/handlers/npc/GuardNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/GuardNPC.java rename to Server/src/main/content/global/handlers/npc/GuardNPC.java index b66145608..ccdf7e10d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/GuardNPC.java +++ b/Server/src/main/content/global/handlers/npc/GuardNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.npc.AbstractNPC; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/HairCutPlugin.java b/Server/src/main/content/global/handlers/npc/HairCutPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/npc/HairCutPlugin.java rename to Server/src/main/content/global/handlers/npc/HairCutPlugin.java index f3ed0eb83..a455e5476 100644 --- a/Server/src/main/java/core/game/interaction/npc/HairCutPlugin.java +++ b/Server/src/main/content/global/handlers/npc/HairCutPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.global.handlers.npc; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/HighwayManNPC.java b/Server/src/main/content/global/handlers/npc/HighwayManNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/HighwayManNPC.java rename to Server/src/main/content/global/handlers/npc/HighwayManNPC.java index 4ab8aa9a3..cc5157b1f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/HighwayManNPC.java +++ b/Server/src/main/content/global/handlers/npc/HighwayManNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/IceGiantNPC.java b/Server/src/main/content/global/handlers/npc/IceGiantNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/IceGiantNPC.java rename to Server/src/main/content/global/handlers/npc/IceGiantNPC.java index 5226484b3..999bf00fa 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/IceGiantNPC.java +++ b/Server/src/main/content/global/handlers/npc/IceGiantNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/MetalDragonNPC.java b/Server/src/main/content/global/handlers/npc/MetalDragonNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/other/MetalDragonNPC.java rename to Server/src/main/content/global/handlers/npc/MetalDragonNPC.java index 4e27ddea8..6884829b7 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/MetalDragonNPC.java +++ b/Server/src/main/content/global/handlers/npc/MetalDragonNPC.java @@ -1,19 +1,17 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.AbstractNPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles a metal dragon (bronze, iron, steel). diff --git a/Server/src/main/java/core/game/node/entity/npc/other/MonkNPC.java b/Server/src/main/content/global/handlers/npc/MonkNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/other/MonkNPC.java rename to Server/src/main/content/global/handlers/npc/MonkNPC.java index 7fbd6675a..0daf3ac8e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/MonkNPC.java +++ b/Server/src/main/content/global/handlers/npc/MonkNPC.java @@ -1,9 +1,9 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCDepositListener.kt b/Server/src/main/content/global/handlers/npc/NPCDepositListener.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/interaction/npc/NPCDepositListener.kt rename to Server/src/main/content/global/handlers/npc/NPCDepositListener.kt index f1b7759ef..33c1f886a 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCDepositListener.kt +++ b/Server/src/main/content/global/handlers/npc/NPCDepositListener.kt @@ -1,15 +1,14 @@ -package rs09.game.interaction.npc +package content.global.handlers.npc -import api.isEquipped -import api.openDepositBox -import api.sendNPCDialogue -import api.setInterfaceText -import core.game.content.dialogue.FacialExpression +import core.api.isEquipped +import core.api.openDepositBox +import core.api.sendNPCDialogue +import core.api.setInterfaceText import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE class NPCDepositListener : InteractionListener { @@ -23,7 +22,7 @@ class NPCDepositListener : InteractionListener { } else { sendNPCDialogue(player, NPCs.PEER_THE_SEER_1288, "Do not pester me, outerlander! I will only deposit items into the banks of those who have earned Fremennik sea boots!", - FacialExpression.ANNOYED).also { END_DIALOGUE } + core.game.dialogue.FacialExpression.ANNOYED).also { END_DIALOGUE } } return@on true } diff --git a/Server/src/main/java/core/game/interaction/npc/NPCDisturbPlugin.java b/Server/src/main/content/global/handlers/npc/NPCDisturbPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/NPCDisturbPlugin.java rename to Server/src/main/content/global/handlers/npc/NPCDisturbPlugin.java index 56d23e6b6..1810892d2 100644 --- a/Server/src/main/java/core/game/interaction/npc/NPCDisturbPlugin.java +++ b/Server/src/main/content/global/handlers/npc/NPCDisturbPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.global.handlers.npc; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt b/Server/src/main/content/global/handlers/npc/NPCTalkListener.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt rename to Server/src/main/content/global/handlers/npc/NPCTalkListener.kt index 204f7da09..b5e3b3090 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt +++ b/Server/src/main/content/global/handlers/npc/NPCTalkListener.kt @@ -1,14 +1,12 @@ -package rs09.game.interaction.npc +package content.global.handlers.npc -import api.sendMessage -import core.game.content.quest.miniquest.barcrawl.BarcrawlManager -import core.game.content.quest.miniquest.barcrawl.BarcrawlType -import core.game.node.entity.npc.NPC -import rs09.game.content.activity.gnomecooking.* -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.ame.RandomEvents -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.api.sendMessage +import content.region.kandarin.barcrawl.BarcrawlManager +import content.region.kandarin.barcrawl.BarcrawlType +import content.global.ame.RandomEvents +import content.minigame.gnomecooking.* +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the NPC talk-to option. @@ -19,7 +17,7 @@ class NPCTalkListener : InteractionListener { val barCrawlNPCs = intArrayOf(733,848,735,739,737,738,731,568,3217,736,734) override fun defineListeners() { - on(barCrawlNPCs, IntType.NPC, "talk-to", "talk"){player, node -> + on(barCrawlNPCs, IntType.NPC, "talk-to", "talk"){ player, node -> val type = BarcrawlType.forId(node.id) val instance = BarcrawlManager.getInstance(player) if (instance.isFinished || !instance.isStarted || instance.isCompleted(type!!.ordinal)) { @@ -30,13 +28,13 @@ class NPCTalkListener : InteractionListener { return@on true } - on(IntType.NPC,"talk-to","talk","talk to"){player,node -> + on(IntType.NPC,"talk-to","talk","talk to"){ player, node -> val npc = node.asNpc() if(RandomEvents.randomIDs.contains(node.id)){ - if(RandomEventManager.getInstance(player)!!.event == null || RandomEventManager.getInstance(player)!!.event!! != node.asNpc()){ + if(content.global.ame.RandomEventManager.getInstance(player)!!.event == null || content.global.ame.RandomEventManager.getInstance(player)!!.event!! != node.asNpc()){ player.sendMessage("They aren't interested in talking to you.") } else { - RandomEventManager.getInstance(player)!!.event!!.talkTo(node.asNpc()) + content.global.ame.RandomEventManager.getInstance(player)!!.event!!.talkTo(node.asNpc()) } return@on true } @@ -54,9 +52,9 @@ class NPCTalkListener : InteractionListener { } //--------------------------------------------------------------------------------------------------------- //I'm sorry for this but it was honestly the best way to do this - if (player.getAttribute(GC_BASE_ATTRIBUTE + ":" + GC_JOB_ORDINAL, -1) != -1) { - val job = GnomeCookingJob.values()[player.getAttribute(GC_BASE_ATTRIBUTE + ":" + GC_JOB_ORDINAL, -1)] - if (node.getId() == job.npc_id && !player.getAttribute(GC_BASE_ATTRIBUTE + ":" + GC_JOB_COMPLETE, false)) { + if (player.getAttribute("$GC_BASE_ATTRIBUTE:$GC_JOB_ORDINAL", -1) != -1) { + val job = GnomeCookingJob.values()[player.getAttribute("$GC_BASE_ATTRIBUTE:$GC_JOB_ORDINAL", -1)] + if (node.getId() == job.npc_id && !player.getAttribute("$GC_BASE_ATTRIBUTE:$GC_JOB_COMPLETE", false)) { player.dialogueInterpreter.open(GCCompletionDialogue(job)) return@on true } diff --git a/Server/src/main/java/core/game/node/entity/npc/other/RatNPC.java b/Server/src/main/content/global/handlers/npc/RatNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/RatNPC.java rename to Server/src/main/content/global/handlers/npc/RatNPC.java index 7a20ff67f..11f4fce94 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/RatNPC.java +++ b/Server/src/main/content/global/handlers/npc/RatNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/SheepNPC.java b/Server/src/main/content/global/handlers/npc/SheepNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/other/SheepNPC.java rename to Server/src/main/content/global/handlers/npc/SheepNPC.java index 3f25c0018..ef9003540 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/SheepNPC.java +++ b/Server/src/main/content/global/handlers/npc/SheepNPC.java @@ -1,59 +1,59 @@ -package core.game.node.entity.npc.other; - -import core.game.node.entity.combat.DeathTask; -import core.game.node.entity.npc.AbstractNPC; -import core.game.world.map.Location; -import core.plugin.Initializable; -import core.tools.RandomFunction; - -/** - * Handles the sheep npc's. - * @author 'Vexia - */ -@Initializable -public class SheepNPC extends AbstractNPC { - - /** - * The NPC ids of NPCs using this plugin. - */ - private static final int[] ID = { 42, 43, 1271, 1272, 1529, 1762, 1763, 1764, 1765, 2377, 2378, 2379, 2380, 3310, 3311, 3579, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5172, 5173 }; - - /** - * Constructs a new {@code AlKharidWarriorPlugin} {@code Object}. - */ - public SheepNPC() { - super(0, null); - } - - /** - * Constructs a new {@code AlKharidWarriorPlugin} {@code Object}. - * @param id The NPC id. - * @param location The location. - */ - private SheepNPC(int id, Location location) { - super(id, location); - } - - @Override - public AbstractNPC construct(int id, Location location, Object... objects) { - return new SheepNPC(id, location); - } - - @Override - public void tick() { - if (getProperties().getCombatPulse().isAttacking() || DeathTask.isDead(this)) { - super.tick(); - return; - } - if (RandomFunction.random(35) == 5) { - sendChat("Baa!"); - } - super.tick(); - } - - @Override - public int[] getIds() { - return ID; - } - -} +package content.global.handlers.npc; + +import core.game.node.entity.combat.DeathTask; +import core.game.node.entity.npc.AbstractNPC; +import core.game.world.map.Location; +import core.plugin.Initializable; +import core.tools.RandomFunction; + +/** + * Handles the sheep npc's. + * @author 'Vexia + */ +@Initializable +public class SheepNPC extends AbstractNPC { + + /** + * The NPC ids of NPCs using this plugin. + */ + private static final int[] ID = { 42, 43, 1271, 1272, 1529, 1762, 1763, 1764, 1765, 2377, 2378, 2379, 2380, 3310, 3311, 3579, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5172, 5173 }; + + /** + * Constructs a new {@code AlKharidWarriorPlugin} {@code Object}. + */ + public SheepNPC() { + super(0, null); + } + + /** + * Constructs a new {@code AlKharidWarriorPlugin} {@code Object}. + * @param id The NPC id. + * @param location The location. + */ + private SheepNPC(int id, Location location) { + super(id, location); + } + + @Override + public AbstractNPC construct(int id, Location location, Object... objects) { + return new SheepNPC(id, location); + } + + @Override + public void tick() { + if (getProperties().getCombatPulse().isAttacking() || DeathTask.isDead(this)) { + super.tick(); + return; + } + if (RandomFunction.random(35) == 5) { + sendChat("Baa!"); + } + super.tick(); + } + + @Override + public int[] getIds() { + return ID; + } + +} diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ShopNPC.java b/Server/src/main/content/global/handlers/npc/ShopNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/ShopNPC.java rename to Server/src/main/content/global/handlers/npc/ShopNPC.java index 511ec5f6a..187e4f017 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ShopNPC.java +++ b/Server/src/main/content/global/handlers/npc/ShopNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.global.handlers.npc; import core.game.node.entity.npc.AbstractNPC; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/player/AttackOptionPlugin.java b/Server/src/main/content/global/handlers/player/AttackOptionPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/player/AttackOptionPlugin.java rename to Server/src/main/content/global/handlers/player/AttackOptionPlugin.java index 80c92cf3b..328d52c7b 100644 --- a/Server/src/main/java/core/game/interaction/player/AttackOptionPlugin.java +++ b/Server/src/main/content/global/handlers/player/AttackOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.player; +package content.global.handlers.player; import core.cache.def.impl.NPCDefinition; import core.game.interaction.Option; diff --git a/Server/src/main/java/core/game/interaction/player/ExamineOptionPlugin.java b/Server/src/main/content/global/handlers/player/ExamineOptionPlugin.java similarity index 88% rename from Server/src/main/java/core/game/interaction/player/ExamineOptionPlugin.java rename to Server/src/main/content/global/handlers/player/ExamineOptionPlugin.java index 6c31d18c3..490519735 100644 --- a/Server/src/main/java/core/game/interaction/player/ExamineOptionPlugin.java +++ b/Server/src/main/content/global/handlers/player/ExamineOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.player; +package content.global.handlers.player; import core.game.interaction.Option; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.interaction.inter.PlayerExamineInterfacePlugin; +import content.global.handlers.iface.PlayerExamineInterfacePlugin; /** * Package -> core.game.interaction.player diff --git a/Server/src/main/java/core/game/interaction/player/FollowOptionPlugin.java b/Server/src/main/content/global/handlers/player/FollowOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/player/FollowOptionPlugin.java rename to Server/src/main/content/global/handlers/player/FollowOptionPlugin.java index bdc05261f..a3cea3b54 100644 --- a/Server/src/main/java/core/game/interaction/player/FollowOptionPlugin.java +++ b/Server/src/main/content/global/handlers/player/FollowOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.player; +package content.global.handlers.player; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; diff --git a/Server/src/main/java/core/game/interaction/player/LoginValidationPlugin.java b/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/player/LoginValidationPlugin.java rename to Server/src/main/content/global/handlers/player/LoginValidationPlugin.java index f152c354f..5a417c302 100644 --- a/Server/src/main/java/core/game/interaction/player/LoginValidationPlugin.java +++ b/Server/src/main/content/global/handlers/player/LoginValidationPlugin.java @@ -1,6 +1,6 @@ -package core.game.interaction.player; +package content.global.handlers.player; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.SystemManager; @@ -8,7 +8,7 @@ import core.plugin.Initializable; import core.plugin.Plugin; import core.plugin.PluginManifest; import core.plugin.PluginType; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.util.concurrent.TimeUnit; diff --git a/Server/src/main/java/core/game/interaction/player/RequestOption.kt b/Server/src/main/content/global/handlers/player/RequestOption.kt similarity index 86% rename from Server/src/main/java/core/game/interaction/player/RequestOption.kt rename to Server/src/main/content/global/handlers/player/RequestOption.kt index 96ded35ee..aecf7515b 100644 --- a/Server/src/main/java/core/game/interaction/player/RequestOption.kt +++ b/Server/src/main/content/global/handlers/player/RequestOption.kt @@ -1,12 +1,12 @@ -package core.game.interaction.player +package content.global.handlers.player import core.game.interaction.Option._P_ASSIST import core.game.interaction.Option._P_TRADE import core.game.node.entity.player.Player import core.game.node.entity.player.link.request.RequestType import core.plugin.Initializable -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Represents the plugin used to handle the player option interacting. diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/BankBoothListener.kt b/Server/src/main/content/global/handlers/scenery/BankBoothListener.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/object/BankBoothListener.kt rename to Server/src/main/content/global/handlers/scenery/BankBoothListener.kt index 805934d66..e624fa7ad 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/BankBoothListener.kt +++ b/Server/src/main/content/global/handlers/scenery/BankBoothListener.kt @@ -1,7 +1,6 @@ -package rs09.game.interaction.`object` +package content.global.handlers.scenery -import api.* -import core.game.content.dialogue.DialogueInterpreter +import core.api.* import core.game.node.Node import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -11,11 +10,11 @@ import core.game.world.map.Direction import core.game.world.map.Location import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.ServerConstants -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.npc.BankerNPC -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import content.global.handlers.npc.BankerNPC +import core.game.world.repository.Repository /** * Allows the user to interact with bank booths. @@ -85,7 +84,7 @@ class BankBoothListener : InteractionListener { * If that fails, we expand the search to a larger area. */ (locateAdjacentBankerLinear(node) ?: locateAdjacentBankerSquare(node, 2))?.let { - if (DialogueInterpreter.contains(it.id)) { + if (core.game.dialogue.DialogueInterpreter.contains(it.id)) { it.faceLocation(node.location) openDialogue(player, it.id, NPC(it.id, it.location)) } else { diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/BankChestListener.kt b/Server/src/main/content/global/handlers/scenery/BankChestListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/interaction/object/BankChestListener.kt rename to Server/src/main/content/global/handlers/scenery/BankChestListener.kt index a55e24200..e6e093d34 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/BankChestListener.kt +++ b/Server/src/main/content/global/handlers/scenery/BankChestListener.kt @@ -1,9 +1,9 @@ -package rs09.game.interaction.`object` +package content.global.handlers.scenery -import api.openBankAccount +import core.api.openBankAccount import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType private val BANK_CHESTS = intArrayOf( Scenery.BANK_CHEST_3194, Scenery.BANK_CHEST_4483, diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/BankDepositBoxListener.kt b/Server/src/main/content/global/handlers/scenery/BankDepositBoxListener.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/object/BankDepositBoxListener.kt rename to Server/src/main/content/global/handlers/scenery/BankDepositBoxListener.kt index ecc1fb4bb..5455c60c1 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/BankDepositBoxListener.kt +++ b/Server/src/main/content/global/handlers/scenery/BankDepositBoxListener.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.`object` +package content.global.handlers.scenery -import api.restrictForIronman +import core.api.restrictForIronman import core.game.component.CloseEvent import core.game.component.Component import core.game.container.access.InterfaceContainer @@ -9,8 +9,8 @@ import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import org.rs09.consts.Components import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType private val BANK_DEPOSIT_BOXES = intArrayOf( Scenery.BANK_DEPOSIT_BOX_9398, diff --git a/Server/src/main/java/core/game/interaction/object/DoogleLeafPlugin.java b/Server/src/main/content/global/handlers/scenery/DoogleLeafPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/DoogleLeafPlugin.java rename to Server/src/main/content/global/handlers/scenery/DoogleLeafPlugin.java index 296fd8e41..5006404c0 100644 --- a/Server/src/main/java/core/game/interaction/object/DoogleLeafPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/DoogleLeafPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java b/Server/src/main/content/global/handlers/scenery/DoorManagingPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java rename to Server/src/main/content/global/handlers/scenery/DoorManagingPlugin.java index b99180bed..295badfd8 100644 --- a/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/DoorManagingPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java b/Server/src/main/content/global/handlers/scenery/FieldPickingPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java rename to Server/src/main/content/global/handlers/scenery/FieldPickingPlugin.java index f91e2e340..4fd17c260 100644 --- a/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/FieldPickingPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.container.impl.EquipmentContainer; @@ -11,7 +11,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java b/Server/src/main/content/global/handlers/scenery/HaystackPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/HaystackPlugin.java rename to Server/src/main/content/global/handlers/scenery/HaystackPlugin.java index 830fa5053..793e89abc 100644 --- a/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/HaystackPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java b/Server/src/main/content/global/handlers/scenery/JangerBerryPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java rename to Server/src/main/content/global/handlers/scenery/JangerBerryPlugin.java index 0e19af875..5a4d8828c 100644 --- a/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/JangerBerryPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java b/Server/src/main/content/global/handlers/scenery/LadderManagingPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java rename to Server/src/main/content/global/handlers/scenery/LadderManagingPlugin.java index 256330a7f..0cb9a6500 100644 --- a/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/LadderManagingPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/LookAtOptionPlugin.java b/Server/src/main/content/global/handlers/scenery/LookAtOptionPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/LookAtOptionPlugin.java rename to Server/src/main/content/global/handlers/scenery/LookAtOptionPlugin.java index b016ca04d..c067e9dec 100644 --- a/Server/src/main/java/core/game/interaction/object/LookAtOptionPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/LookAtOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/MillingListener.kt b/Server/src/main/content/global/handlers/scenery/MillingListener.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/interaction/object/MillingListener.kt rename to Server/src/main/content/global/handlers/scenery/MillingListener.kt index 58583dfff..077cc40ea 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/MillingListener.kt +++ b/Server/src/main/content/global/handlers/scenery/MillingListener.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.`object` +package content.global.handlers.scenery -import api.* +import core.api.* +import core.game.interaction.InteractionListener import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener private const val GRAIN = Items.GRAIN_1947 private const val SWEETCORN = Items.SWEETCORN_5986 diff --git a/Server/src/main/java/core/game/interaction/object/ModeratorObject.java b/Server/src/main/content/global/handlers/scenery/ModeratorObject.java similarity index 92% rename from Server/src/main/java/core/game/interaction/object/ModeratorObject.java rename to Server/src/main/content/global/handlers/scenery/ModeratorObject.java index fc0908114..c94f36ae1 100644 --- a/Server/src/main/java/core/game/interaction/object/ModeratorObject.java +++ b/Server/src/main/content/global/handlers/scenery/ModeratorObject.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java b/Server/src/main/content/global/handlers/scenery/ReadSignPostPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java rename to Server/src/main/content/global/handlers/scenery/ReadSignPostPlugin.java index 71e2e61af..7239c140b 100644 --- a/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/ReadSignPostPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.component.CloseEvent; diff --git a/Server/src/main/java/core/game/interaction/object/SearchOptionPlugin.java b/Server/src/main/content/global/handlers/scenery/SearchOptionPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/SearchOptionPlugin.java rename to Server/src/main/content/global/handlers/scenery/SearchOptionPlugin.java index ce5636bfd..3b2144efb 100644 --- a/Server/src/main/java/core/game/interaction/object/SearchOptionPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/SearchOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java b/Server/src/main/content/global/handlers/scenery/SlashWebPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java rename to Server/src/main/content/global/handlers/scenery/SlashWebPlugin.java index 3ee3a14b7..d9fefe4c5 100644 --- a/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/SlashWebPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.container.Container; diff --git a/Server/src/main/java/core/game/interaction/object/SlayerDangerSignPlugin.java b/Server/src/main/content/global/handlers/scenery/SlayerDangerSignPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/SlayerDangerSignPlugin.java rename to Server/src/main/content/global/handlers/scenery/SlayerDangerSignPlugin.java index 633d50bfc..9bc908947 100644 --- a/Server/src/main/java/core/game/interaction/object/SlayerDangerSignPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/SlayerDangerSignPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/SpinSpinningWheelPlugin.java b/Server/src/main/content/global/handlers/scenery/SpinSpinningWheelPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/SpinSpinningWheelPlugin.java rename to Server/src/main/content/global/handlers/scenery/SpinSpinningWheelPlugin.java index 8e1025ed9..3395518b0 100644 --- a/Server/src/main/java/core/game/interaction/object/SpinSpinningWheelPlugin.java +++ b/Server/src/main/content/global/handlers/scenery/SpinSpinningWheelPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java b/Server/src/main/content/global/handlers/scenery/ThievingGuidePlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java rename to Server/src/main/content/global/handlers/scenery/ThievingGuidePlugin.java index 7323331f6..71efac4a5 100644 --- a/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java +++ b/Server/src/main/content/global/handlers/scenery/ThievingGuidePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.global.handlers.scenery; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -16,7 +16,7 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.Collections; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/AttackListener.kt b/Server/src/main/content/global/skill/AttackListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/AttackListener.kt rename to Server/src/main/content/global/skill/AttackListener.kt index 65698fd42..78b21386f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/AttackListener.kt +++ b/Server/src/main/content/global/skill/AttackListener.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill +package content.global.skill import core.game.node.entity.combat.CombatStyle -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class AttackListener : InteractionListener { override fun defineListeners() { - on(IntType.NPC, "attack"){player, npc -> + on(IntType.NPC, "attack"){ player, npc -> //Makes sure player uses correct attack styles for lumbridge dummies if (npc.id == 4474 && player.getSwingHandler(false).type != CombatStyle.MAGIC) { player.sendMessage("You can only attack this with magic.") diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityCourse.java b/Server/src/main/content/global/skill/agility/AgilityCourse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/AgilityCourse.java rename to Server/src/main/content/global/skill/agility/AgilityCourse.java index bff5d69dc..9f914ae42 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityCourse.java +++ b/Server/src/main/content/global/skill/agility/AgilityCourse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility; +package content.global.skill.agility; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityHandler.java b/Server/src/main/content/global/skill/agility/AgilityHandler.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/agility/AgilityHandler.java rename to Server/src/main/content/global/skill/agility/AgilityHandler.java index 16e56cace..4a2ecea10 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityHandler.java +++ b/Server/src/main/content/global/skill/agility/AgilityHandler.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.agility; +package content.global.skill.agility; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.node.entity.impl.PulseType; import core.game.node.entity.player.link.TeleportManager; @@ -11,7 +11,7 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java b/Server/src/main/content/global/skill/agility/AgilityShortcut.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java rename to Server/src/main/content/global/skill/agility/AgilityShortcut.java index 3adb63a89..bd7fae771 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java +++ b/Server/src/main/content/global/skill/agility/AgilityShortcut.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility; +package content.global.skill.agility; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt b/Server/src/main/content/global/skill/agility/BarbarianOutpostCourse.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt rename to Server/src/main/content/global/skill/agility/BarbarianOutpostCourse.kt index e11e2ee9a..a5a05d8eb 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt +++ b/Server/src/main/content/global/skill/agility/BarbarianOutpostCourse.kt @@ -1,26 +1,21 @@ -package rs09.game.node.entity.skill.agility +package content.global.skill.agility -import api.* +import core.api.* import core.cache.def.impl.ItemDefinition import core.cache.def.impl.NPCDefinition import core.cache.def.impl.SceneryDefinition -import core.game.content.dialogue.DialoguePlugin -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.DoorActionHandler -import core.game.content.quest.miniquest.barcrawl.BarcrawlManager +import content.region.kandarin.barcrawl.BarcrawlManager import core.game.node.Node import core.game.node.scenery.Scenery import core.game.node.entity.combat.ImpactHandler.HitsplatType import core.game.node.entity.player.Player -import core.game.node.entity.skill.agility.AgilityCourse -import core.game.node.entity.skill.agility.AgilityHandler import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import core.plugin.Initializable -import rs09.game.world.GameWorld -import rs09.plugin.ClassScanner +import core.game.world.GameWorld +import core.plugin.ClassScanner /** * Handles the barbarian outpost course. @@ -36,7 +31,7 @@ class BarbarianOutpostCourse */ @JvmOverloads constructor(player: Player? = null) : AgilityCourse(player, 6, 46.2) { override fun createInstance(player: Player): AgilityCourse { - return BarbarianOutpostCourse(player) + return content.global.skill.agility.BarbarianOutpostCourse(player) } override fun handle(player: Player, node: Node, option: String): Boolean { @@ -46,7 +41,7 @@ class BarbarianOutpostCourse 2115, 2116 -> if (!BarcrawlManager.getInstance(player).isFinished || BarcrawlManager.getInstance(player).isStarted) { player.dialogueInterpreter.open(384) } else { - DoorActionHandler.handleAutowalkDoor(player, node as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node as Scenery) } 2282 -> handleRopeSwing(player, node as Scenery) 2294 -> handleLogBalance(player, node as Scenery) @@ -55,7 +50,7 @@ class BarbarianOutpostCourse if (player.location.x < node.location.x) { return true } - AgilityHandler.climb(player, 2, ClimbActionHandler.CLIMB_UP, player.location.transform(-1, 0, 1), 8.0, "You climb the netting...") + AgilityHandler.climb(player, 2, core.game.global.action.ClimbActionHandler.CLIMB_UP, player.location.transform(-1, 0, 1), 8.0, "You climb the netting...") } 1948 -> { if (player.location.x > node.location.x) { @@ -93,7 +88,7 @@ class BarbarianOutpostCourse sendMessage(player, "You cannot do that from here.") return } - if (ropeDelay > GameWorld.ticks) { + if (content.global.skill.agility.BarbarianOutpostCourse.Companion.ropeDelay > GameWorld.ticks) { sendMessage(player, "The rope is being used.") return } @@ -101,7 +96,7 @@ class BarbarianOutpostCourse AgilityHandler.fail(player, 0, Location.create(2549, 9951, 0), null, getHitAmount(player), "You slip and fall to the pit below.") return } - ropeDelay = GameWorld.ticks + 2 + content.global.skill.agility.BarbarianOutpostCourse.Companion.ropeDelay = GameWorld.ticks + 2 player.packetDispatch.sendSceneryAnimation(`object`, Animation.create(497), true) AgilityHandler.forceWalk(player, 0, player.location, Location.create(2551, 3549, 0), Animation.create(751), 50, 22.0, "You skillfully swing across.", 1) } @@ -181,7 +176,7 @@ class BarbarianOutpostCourse NPCDefinition.forId(385).handlers["option:pick-up"] = this NPCDefinition.forId(386).handlers["option:pick-up"] = this NPCDefinition.forId(387).handlers["option:pick-up"] = this - ClassScanner.definePlugin(BarbarianGuardDialogue()) + ClassScanner.definePlugin(content.global.skill.agility.BarbarianOutpostCourse.BarbarianGuardDialogue()) } override fun getDestination(node: Node, n: Node): Location? { @@ -197,7 +192,7 @@ class BarbarianOutpostCourse * The barbarian guard dialogue plugin. * @author Woah */ - class BarbarianGuardDialogue : DialoguePlugin { + class BarbarianGuardDialogue : core.game.dialogue.DialoguePlugin { /** * Constructs a new `BarbarianGuardDialogue` `Object`. */ @@ -213,8 +208,8 @@ class BarbarianOutpostCourse */ constructor(player: Player?) : super(player) {} - override fun newInstance(player: Player): DialoguePlugin { - return BarbarianGuardDialogue(player) + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return content.global.skill.agility.BarbarianOutpostCourse.BarbarianGuardDialogue(player) } override fun open(vararg args: Any): Boolean { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt b/Server/src/main/content/global/skill/agility/GnomeStrongholdCourse.kt similarity index 75% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt rename to Server/src/main/content/global/skill/agility/GnomeStrongholdCourse.kt index 716dab2fd..5c160b86b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt +++ b/Server/src/main/content/global/skill/agility/GnomeStrongholdCourse.kt @@ -1,17 +1,15 @@ -package rs09.game.node.entity.skill.agility +package content.global.skill.agility -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition import core.game.node.Node import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.agility.AgilityCourse -import core.game.node.entity.skill.agility.AgilityHandler import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.plugin.Initializable -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Handles the gnome stronghold agility course. @@ -32,25 +30,25 @@ class GnomeStrongholdCourse val `object` = node as Scenery when (`object`.id) { 2295 -> { - TRAINERS[0]!!.sendChat("Okay get over that log, quick quick!") + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[0]!!.sendChat("Okay get over that log, quick quick!") sendMessage(player, "You walk carefully across the slippery log...") AgilityHandler.walk(player, 0, Location.create(2474, 3436, 0), Location.create(2474, 3429, 0), Animation.create(155), 7.5, "...You make it safely to the other side.") return true } 2285 -> { - TRAINERS[1]!!.sendChat("Move it, move it, move it!") + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[1]!!.sendChat("Move it, move it, move it!") sendMessage(player, "You climb the netting...") AgilityHandler.climb(player, 1, Animation.create(828), `object`.location.transform(0, -1, 1), 7.5, null) return true } 35970 -> { - TRAINERS[2]!!.sendChat("That's it - straight up.") + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[2]!!.sendChat("That's it - straight up.") sendMessage(player, "You climb the tree..") AgilityHandler.climb(player, 2, Animation.create(828), Location.create(2473, 3420, 2), 5.0, "...To the platform above.") return true } 2312 -> { - TRAINERS[3]!!.sendChat("Come on scaredy cat, get across that rope!") + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[3]!!.sendChat("Come on scaredy cat, get across that rope!") sendMessage(player, "You carefully cross the tightrope.") AgilityHandler.walk(player, 3, Location.create(2477, 3420, 2), Location.create(2483, 3420, 2), Animation.create(155), 7.5, null) return true @@ -65,7 +63,7 @@ class GnomeStrongholdCourse return true } 2286 -> { - TRAINERS[4]!!.sendChat("My Granny can move faster than you.") + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[4]!!.sendChat("My Granny can move faster than you.") player.faceLocation(player.location.transform(0, 2, 0)) sendMessage(player, "You climb the netting...") AgilityHandler.climb(player, 5, Animation.create(828), player.location.transform(0, 2, 0), 7.5, null) @@ -78,11 +76,11 @@ class GnomeStrongholdCourse sendMessage(player, "You can't do that from here.") return true } - if (USED_PIPES[index] > GameWorld.ticks) { + if (content.global.skill.agility.GnomeStrongholdCourse.Companion.USED_PIPES[index] > GameWorld.ticks) { sendMessage(player, "The pipe is being used.") return true } - USED_PIPES[index] = GameWorld.ticks + 10 + content.global.skill.agility.GnomeStrongholdCourse.Companion.USED_PIPES[index] = GameWorld.ticks + 10 player.lock() //Animations and force walking @@ -119,12 +117,12 @@ class GnomeStrongholdCourse } override fun configure() { - TRAINERS[0] = NPC.create(162, Location.create(2473, 3438, 0)) - TRAINERS[1] = NPC.create(162, Location.create(2478, 3426, 0)) - TRAINERS[2] = NPC.create(162, Location.create(2474, 3422, 1)) - TRAINERS[3] = NPC.create(162, Location.create(2472, 3419, 2)) - TRAINERS[4] = NPC.create(162, Location.create(2489, 3425, 0)) - for (npc in TRAINERS) { + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[0] = NPC.create(162, Location.create(2473, 3438, 0)) + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[1] = NPC.create(162, Location.create(2478, 3426, 0)) + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[2] = NPC.create(162, Location.create(2474, 3422, 1)) + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[3] = NPC.create(162, Location.create(2472, 3419, 2)) + content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS[4] = NPC.create(162, Location.create(2489, 3425, 0)) + for (npc in content.global.skill.agility.GnomeStrongholdCourse.Companion.TRAINERS) { npc!!.init() npc.walkRadius = 3 } @@ -141,7 +139,7 @@ class GnomeStrongholdCourse } override fun createInstance(player: Player): AgilityCourse { - return GnomeStrongholdCourse(player) + return content.global.skill.agility.GnomeStrongholdCourse(player) } companion object { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt b/Server/src/main/content/global/skill/agility/WildernessCourse.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt rename to Server/src/main/content/global/skill/agility/WildernessCourse.kt index a3a409d61..bd052c523 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt +++ b/Server/src/main/content/global/skill/agility/WildernessCourse.kt @@ -1,21 +1,18 @@ -package rs09.game.node.entity.skill.agility +package content.global.skill.agility -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition -import core.game.content.global.action.DoorActionHandler import core.game.node.Node import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.agility.AgilityCourse -import core.game.node.entity.skill.agility.AgilityHandler import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation import core.plugin.Initializable -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Handles the wilderness agility course. @@ -34,7 +31,7 @@ class WildernessCourse when (`object`.id) { 2309 -> handleEntrance(player, `object`) 2307, 2308 -> { - DoorActionHandler.handleAutowalkDoor(player, `object`) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, `object`) handleEntranceObstacle(player, `object`) } 2288 -> handlePipe(player, `object`) @@ -53,7 +50,7 @@ class WildernessCourse */ private fun handleEntrance(player: Player, `object`: Scenery) { if (player.location.y > 3916 || player.skills.getLevel(Skills.AGILITY) >= 52) { - DoorActionHandler.handleAutowalkDoor(player, `object`) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, `object`) if (player.location.y <= 3916) { handleEntranceObstacle(player, `object`) } @@ -88,7 +85,7 @@ class WildernessCourse 15 -> player.lock(3) 16 -> { val doorLoc = if (`object`.id < 2309) Location(2998, 3917, 0) else Location(2998, 3931, 0) - DoorActionHandler.handleAutowalkDoor(player, RegionManager.getObject(doorLoc)) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, RegionManager.getObject(doorLoc)) return true } } @@ -156,7 +153,7 @@ class WildernessCourse sendMessage(player, "You cannot do that from here.") return } - if (ropeDelay > GameWorld.ticks) { + if (content.global.skill.agility.WildernessCourse.Companion.ropeDelay > GameWorld.ticks) { sendMessage(player, "The rope is being used.") return } @@ -164,7 +161,7 @@ class WildernessCourse AgilityHandler.fail(player, 0, Location.create(3005, 10357, 0), null, getHitAmount(player), "You slip and fall to the pit below.") return } - ropeDelay = GameWorld.ticks + 2 + content.global.skill.agility.WildernessCourse.Companion.ropeDelay = GameWorld.ticks + 2 player.packetDispatch.sendSceneryAnimation(`object`, Animation.create(497), true) AgilityHandler.forceWalk(player, 1, player.location, Location.create(3005, 3958, 0), Animation.create(751), 50, 20.0, "You skillfully swing across.", 1) } @@ -257,7 +254,7 @@ class WildernessCourse } override fun createInstance(player: Player): AgilityCourse { - return WildernessCourse(player) + return content.global.skill.agility.WildernessCourse(player) } companion object { diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BladeTrap.java b/Server/src/main/content/global/skill/agility/brimhaven/BladeTrap.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BladeTrap.java rename to Server/src/main/content/global/skill/agility/brimhaven/BladeTrap.java index 8538dc372..773cd9907 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BladeTrap.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/BladeTrap.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java rename to Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java index e11430740..6a60b2f43 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenArena.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -15,7 +15,7 @@ import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.*; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenCourse.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java rename to Server/src/main/content/global/skill/agility/brimhaven/BrimhavenCourse.java index aa494a60e..4fb8bdb52 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/BrimhavenCourse.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; @@ -11,7 +11,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/DartTrap.java b/Server/src/main/content/global/skill/agility/brimhaven/DartTrap.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/DartTrap.java rename to Server/src/main/content/global/skill/agility/brimhaven/DartTrap.java index c43486691..086a59522 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/DartTrap.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/DartTrap.java @@ -1,14 +1,14 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/FloorSpikes.java b/Server/src/main/content/global/skill/agility/brimhaven/FloorSpikes.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/FloorSpikes.java rename to Server/src/main/content/global/skill/agility/brimhaven/FloorSpikes.java index 2ff48a454..69111c6bf 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/FloorSpikes.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/FloorSpikes.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/PressurePad.java b/Server/src/main/content/global/skill/agility/brimhaven/PressurePad.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/PressurePad.java rename to Server/src/main/content/global/skill/agility/brimhaven/PressurePad.java index 824903bbf..a2bc07cb2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/PressurePad.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/PressurePad.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/SpinningBlades.java b/Server/src/main/content/global/skill/agility/brimhaven/SpinningBlades.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/SpinningBlades.java rename to Server/src/main/content/global/skill/agility/brimhaven/SpinningBlades.java index be3650749..a13815767 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/SpinningBlades.java +++ b/Server/src/main/content/global/skill/agility/brimhaven/SpinningBlades.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.brimhaven; +package content.global.skill.agility.brimhaven; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java rename to Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java index d655d9393..943a77563 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java +++ b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidCourse.java @@ -1,23 +1,23 @@ -package core.game.node.entity.skill.agility.pyramid; +package content.global.skill.agility.pyramid; import core.cache.def.impl.VarbitDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityCourse; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityCourse; +import content.global.skill.agility.AgilityHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the agility pryamid course. diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidZone.java b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidZone.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidZone.java rename to Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidZone.java index a47bc0d98..f3247e7ca 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidZone.java +++ b/Server/src/main/content/global/skill/agility/pyramid/AgilityPyramidZone.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.pyramid; +package content.global.skill.agility.pyramid; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/MovingBlockNPC.java b/Server/src/main/content/global/skill/agility/pyramid/MovingBlockNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/agility/pyramid/MovingBlockNPC.java rename to Server/src/main/content/global/skill/agility/pyramid/MovingBlockNPC.java index 6c96397ef..c08ff2322 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/MovingBlockNPC.java +++ b/Server/src/main/content/global/skill/agility/pyramid/MovingBlockNPC.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.agility.pyramid; +package content.global.skill.agility.pyramid; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java b/Server/src/main/content/global/skill/agility/pyramid/RollingBlock.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java rename to Server/src/main/content/global/skill/agility/pyramid/RollingBlock.java index 20e1262fe..438af8d1e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java +++ b/Server/src/main/content/global/skill/agility/pyramid/RollingBlock.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.pyramid; +package content.global.skill.agility.pyramid; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/AlKharidPitShortcut.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/AlKharidPitShortcut.java index 866a50f37..76ada4b44 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/AlKharidPitShortcut.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/BarSqueezeShortcut.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/BarSqueezeShortcut.java index adf8651ec..2321706b1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/BarSqueezeShortcut.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; -import core.game.node.entity.skill.agility.AgilityHandler; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.world.map.Direction; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt b/Server/src/main/content/global/skill/agility/shortcuts/BasaltRockShortcut.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt rename to Server/src/main/content/global/skill/agility/shortcuts/BasaltRockShortcut.kt index 61f29e60a..793374a05 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt +++ b/Server/src/main/content/global/skill/agility/shortcuts/BasaltRockShortcut.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill.agility.shortcuts +package content.global.skill.agility.shortcuts import core.game.node.Node import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -import core.game.node.entity.skill.agility.AgilityHandler -import core.game.node.entity.skill.agility.AgilityShortcut +import content.global.skill.agility.AgilityHandler +import content.global.skill.agility.AgilityShortcut import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.player.FaceLocationFlag @@ -43,16 +43,16 @@ class BasaltRockShortcut : AgilityShortcut { * 2522, 3600 R1, 3601, 3602 R2 */ override fun newInstance(arg: Any?): Plugin { - configure(BasaltRockShortcut(intArrayOf(4550), 1, 0.0, "jump-to")) //Beach South* - configure(BasaltRockShortcut(intArrayOf(4551), 1, 0.0, "jump-across")) //Beach South Rock 1* - configure(BasaltRockShortcut(intArrayOf(4552), 1, 0.0, "jump-across")) //South Rock 2 - configure(BasaltRockShortcut(intArrayOf(4553), 1, 0.0, "jump-across")) //South Rock 2 (other side) - configure(BasaltRockShortcut(intArrayOf(4554), 1, 0.0, "jump-across")) //Middle Rock 3 - configure(BasaltRockShortcut(intArrayOf(4555), 1, 0.0, "jump-across")) //Middle Rock 3 (other side) - configure(BasaltRockShortcut(intArrayOf(4556), 1, 0.0, "jump-across")) //North Rock 4 - configure(BasaltRockShortcut(intArrayOf(4557), 1, 0.0, "jump-across")) //North Rock 4 (other side) - configure(BasaltRockShortcut(intArrayOf(4558), 1, 0.0, "jump-across")) //Rocky Shore North Rock 5* - configure(BasaltRockShortcut(intArrayOf(4559), 1, 0.0, "jump-to")) //Rocky Shore North* + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4550), 1, 0.0, "jump-to")) //Beach South* + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4551), 1, 0.0, "jump-across")) //Beach South Rock 1* + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4552), 1, 0.0, "jump-across")) //South Rock 2 + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4553), 1, 0.0, "jump-across")) //South Rock 2 (other side) + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4554), 1, 0.0, "jump-across")) //Middle Rock 3 + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4555), 1, 0.0, "jump-across")) //Middle Rock 3 (other side) + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4556), 1, 0.0, "jump-across")) //North Rock 4 + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4557), 1, 0.0, "jump-across")) //North Rock 4 (other side) + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4558), 1, 0.0, "jump-across")) //Rocky Shore North Rock 5* + configure(content.global.skill.agility.shortcuts.BasaltRockShortcut(intArrayOf(4559), 1, 0.0, "jump-to")) //Rocky Shore North* return this } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/CatherbyGrappleShortcut.kt b/Server/src/main/content/global/skill/agility/shortcuts/CatherbyGrappleShortcut.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/CatherbyGrappleShortcut.kt rename to Server/src/main/content/global/skill/agility/shortcuts/CatherbyGrappleShortcut.kt index 339fad7a3..90090ed16 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/CatherbyGrappleShortcut.kt +++ b/Server/src/main/content/global/skill/agility/shortcuts/CatherbyGrappleShortcut.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.agility.shortcuts +package content.global.skill.agility.shortcuts -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.system.task.Pulse @@ -8,8 +8,8 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Handles the Catherby to Taverley grapple shortcut @@ -42,7 +42,7 @@ class CatherbyGrappleShortcut : InteractionListener { on(Scenery.ROCKS_17042, IntType.SCENERY, "grapple") { player, _ -> if (isPlayerInRangeToGrapple(player)) { - forceWalk(player, START_LOCATION, "smart") + forceWalk(player, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.START_LOCATION, "smart") } else { sendMessage(player, "Nothing interesting happens.") return@on true @@ -56,10 +56,10 @@ class CatherbyGrappleShortcut : InteractionListener { if (!doesPlayerHaveRequiredLevels(player)) { sendDialogueLines(player, "You need at least " + - REQUIREMENTS[Skills.AGILITY] + " " + Skills.SKILL_NAME[Skills.AGILITY] + ", " + - REQUIREMENTS[Skills.RANGE] + " " + Skills.SKILL_NAME[Skills.RANGE] + ", ", + content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.REQUIREMENTS[Skills.AGILITY] + " " + Skills.SKILL_NAME[Skills.AGILITY] + ", " + + content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.REQUIREMENTS[Skills.RANGE] + " " + Skills.SKILL_NAME[Skills.RANGE] + ", ", "and " + - REQUIREMENTS[Skills.STRENGTH] + " " + Skills.SKILL_NAME[Skills.STRENGTH] + " to use this shortcut." + content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.REQUIREMENTS[Skills.STRENGTH] + " " + Skills.SKILL_NAME[Skills.STRENGTH] + " to use this shortcut." ) return@on true } @@ -70,7 +70,7 @@ class CatherbyGrappleShortcut : InteractionListener { override fun pulse() : Boolean { when (counter++) { 1 -> { - face(player, END_LOCATION) + face(player, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.END_LOCATION) // Audit: shows player climbing (probably a wall), need a cliff climb animation animate(player, Animation(4455)) } @@ -79,7 +79,7 @@ class CatherbyGrappleShortcut : InteractionListener { replaceScenery(rocks!!, rocks!!.id + 1, 10) } 8 -> { - teleport(player, END_LOCATION) + teleport(player, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.END_LOCATION) } 9 -> { sendMessage(player, "You successfully grapple the rock and climb the cliffside.") @@ -96,11 +96,11 @@ class CatherbyGrappleShortcut : InteractionListener { } private fun doesPlayerHaveRequiredItemsEquipped(player: Player): Boolean { - return isEquipped(player, Items.MITH_GRAPPLE_9419) && areAnyEquipped(player, *VALID_CROSSBOWS) + return isEquipped(player, Items.MITH_GRAPPLE_9419) && areAnyEquipped(player, *content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.VALID_CROSSBOWS) } private fun doesPlayerHaveRequiredLevels(player: Player): Boolean { - for ((skill, requiredLevel) in REQUIREMENTS) { + for ((skill, requiredLevel) in content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.REQUIREMENTS) { if (!hasLevelDyn(player, skill, requiredLevel)) { return false } @@ -109,6 +109,6 @@ class CatherbyGrappleShortcut : InteractionListener { } private fun isPlayerInRangeToGrapple(player: Player): Boolean { - return inBorders(player,START_LOCATION.x - 2, START_LOCATION.y - 2, START_LOCATION.x, START_LOCATION.y) + return inBorders(player, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.START_LOCATION.x - 2, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.START_LOCATION.y - 2, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.START_LOCATION.x, content.global.skill.agility.shortcuts.CatherbyGrappleShortcut.Companion.START_LOCATION.y) } } diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/CrumblingWallShortcut.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/CrumblingWallShortcut.java index c43893d5c..bc730d1df 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/CrumblingWallShortcut.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FaladorGrapplePlugin.java b/Server/src/main/content/global/skill/agility/shortcuts/FaladorGrapplePlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FaladorGrapplePlugin.java rename to Server/src/main/content/global/skill/agility/shortcuts/FaladorGrapplePlugin.java index c28c84f2e..f9bf6f6a9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FaladorGrapplePlugin.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/FaladorGrapplePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -10,7 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/FenceJumpShortcut.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/FenceJumpShortcut.java index 072d3f0e6..f57c41408 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/FenceJumpShortcut.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java b/Server/src/main/content/global/skill/agility/shortcuts/KaramjaGrapple.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java rename to Server/src/main/content/global/skill/agility/shortcuts/KaramjaGrapple.java index b5658cc8a..b623cf8f9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/KaramjaGrapple.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -10,7 +10,7 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/LogBalanceShortcut.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/LogBalanceShortcut.java index 2fbd925ad..9bb39507e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/LogBalanceShortcut.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/MonkeyBarShortcut.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/MonkeyBarShortcut.java index aa90b416c..673d27781 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/MonkeyBarShortcut.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt b/Server/src/main/content/global/skill/agility/shortcuts/PipeShortcut.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt rename to Server/src/main/content/global/skill/agility/shortcuts/PipeShortcut.kt index 8ed3d0bbc..eddc9b2e1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt +++ b/Server/src/main/content/global/skill/agility/shortcuts/PipeShortcut.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill.agility.shortcuts +package content.global.skill.agility.shortcuts import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType -import core.game.node.entity.skill.agility.AgilityHandler -import core.game.node.entity.skill.agility.AgilityShortcut +import content.global.skill.agility.AgilityHandler +import content.global.skill.agility.AgilityShortcut import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt b/Server/src/main/content/global/skill/agility/shortcuts/RockClimbShortcut.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt rename to Server/src/main/content/global/skill/agility/shortcuts/RockClimbShortcut.kt index eaad2f461..509023e68 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt +++ b/Server/src/main/content/global/skill/agility/shortcuts/RockClimbShortcut.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.skill.agility.shortcuts +package content.global.skill.agility.shortcuts import core.game.node.scenery.Scenery import core.game.node.entity.impl.ForceMovement import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.agility.AgilityShortcut +import content.global.skill.agility.AgilityShortcut import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.update.flag.context.Animation diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java b/Server/src/main/content/global/skill/agility/shortcuts/RopeSwing.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java rename to Server/src/main/content/global/skill/agility/shortcuts/RopeSwing.java index d57f8116d..b43424d25 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/RopeSwing.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -8,7 +8,7 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; @Initializable public class RopeSwing extends UseWithHandler { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/SteppingStoneShortcut.kt b/Server/src/main/content/global/skill/agility/shortcuts/SteppingStoneShortcut.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/SteppingStoneShortcut.kt rename to Server/src/main/content/global/skill/agility/shortcuts/SteppingStoneShortcut.kt index ce61a356b..1b2ceb20f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/SteppingStoneShortcut.kt +++ b/Server/src/main/content/global/skill/agility/shortcuts/SteppingStoneShortcut.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.agility.shortcuts +package content.global.skill.agility.shortcuts import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/StileShortcut.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/StileShortcut.java index e973781c4..78e5fcd8c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/StileShortcut.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.node.entity.impl.PulseType; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.interaction.MovementPulse; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/StrangeFloorShortcut.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/StrangeFloorShortcut.java index 9a21ec827..cf0d784e1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/StrangeFloorShortcut.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/TunnelShortcut.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/TunnelShortcut.java index 445854d4e..529c32366 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/TunnelShortcut.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java b/Server/src/main/content/global/skill/agility/shortcuts/WaterOrbGrapple.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java rename to Server/src/main/content/global/skill/agility/shortcuts/WaterOrbGrapple.java index 5128206b3..ab59e66d7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/WaterOrbGrapple.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -11,7 +11,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/YanilleGrapple.java b/Server/src/main/content/global/skill/agility/shortcuts/YanilleGrapple.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/YanilleGrapple.java rename to Server/src/main/content/global/skill/agility/shortcuts/YanilleGrapple.java index e270a7148..d37e1964a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/YanilleGrapple.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/YanilleGrapple.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -8,7 +8,7 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java b/Server/src/main/content/global/skill/agility/shortcuts/ZanarisSqueezeShortcut.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java rename to Server/src/main/content/global/skill/agility/shortcuts/ZanarisSqueezeShortcut.java index 1d057e5b8..b5a37c5fb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java +++ b/Server/src/main/content/global/skill/agility/shortcuts/ZanarisSqueezeShortcut.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.agility.shortcuts; +package content.global.skill.agility.shortcuts; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityShortcut; +import content.global.skill.agility.AgilityShortcut; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspot.java b/Server/src/main/content/global/skill/construction/BuildHotspot.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspot.java rename to Server/src/main/content/global/skill/construction/BuildHotspot.java index 828bd5f6f..c452357e5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspot.java +++ b/Server/src/main/content/global/skill/construction/BuildHotspot.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspotType.java b/Server/src/main/content/global/skill/construction/BuildHotspotType.java similarity index 80% rename from Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspotType.java rename to Server/src/main/content/global/skill/construction/BuildHotspotType.java index d2dbe1b4d..5bff74c00 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildHotspotType.java +++ b/Server/src/main/content/global/skill/construction/BuildHotspotType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; /** * BuiltHotspotType diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java b/Server/src/main/content/global/skill/construction/BuildOptionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java rename to Server/src/main/content/global/skill/construction/BuildOptionPlugin.java index 904d5e39b..6ce643e9a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java +++ b/Server/src/main/content/global/skill/construction/BuildOptionPlugin.java @@ -1,19 +1,18 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.system.SystemLogger; -import rs09.plugin.ClassScanner; +import core.tools.SystemLogger; +import core.plugin.ClassScanner; /** * The build option handling plugin. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java b/Server/src/main/content/global/skill/construction/BuildRoomDialogue.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java rename to Server/src/main/content/global/skill/construction/BuildRoomDialogue.java index 2b34c49eb..e1b351365 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java +++ b/Server/src/main/content/global/skill/construction/BuildRoomDialogue.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; @@ -9,8 +9,8 @@ import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionChunk; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import java.awt.*; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java b/Server/src/main/content/global/skill/construction/BuildingUtils.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java rename to Server/src/main/content/global/skill/construction/BuildingUtils.java index 12ca0ed35..27708ba49 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java +++ b/Server/src/main/content/global/skill/construction/BuildingUtils.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; @@ -17,8 +17,7 @@ import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; import org.jetbrains.annotations.NotNull; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionGuideBook.java b/Server/src/main/content/global/skill/construction/ConstructionGuideBook.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/skill/construction/ConstructionGuideBook.java rename to Server/src/main/content/global/skill/construction/ConstructionGuideBook.java index 02357da97..50fc75abc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionGuideBook.java +++ b/Server/src/main/content/global/skill/construction/ConstructionGuideBook.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.book.Book; -import core.game.content.dialogue.book.Page; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.Page; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java b/Server/src/main/content/global/skill/construction/ConstructionInterface.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java rename to Server/src/main/content/global/skill/construction/ConstructionInterface.java index 14ce91b8c..e0dfe1c89 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java +++ b/Server/src/main/content/global/skill/construction/ConstructionInterface.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.cache.def.impl.ItemDefinition; @@ -10,8 +10,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; /** * Handles the creating of a decoration object. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/CrestType.java b/Server/src/main/content/global/skill/construction/CrestType.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/CrestType.java rename to Server/src/main/content/global/skill/construction/CrestType.java index b7e68882c..f54466772 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/CrestType.java +++ b/Server/src/main/content/global/skill/construction/CrestType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; import org.rs09.consts.Items; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java b/Server/src/main/content/global/skill/construction/Decoration.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java rename to Server/src/main/content/global/skill/construction/Decoration.java index da693a1bb..3d1c1159c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java +++ b/Server/src/main/content/global/skill/construction/Decoration.java @@ -1,11 +1,10 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.world.map.Location; -import rs09.game.node.entity.skill.construction.Hotspot; /** * Represents the decorations. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/EstateAgentDialogue.kt b/Server/src/main/content/global/skill/construction/EstateAgentDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/EstateAgentDialogue.kt rename to Server/src/main/content/global/skill/construction/EstateAgentDialogue.kt index c774de8be..b25f9aab3 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/EstateAgentDialogue.kt +++ b/Server/src/main/content/global/skill/construction/EstateAgentDialogue.kt @@ -1,20 +1,15 @@ -package rs09.game.node.entity.skill.construction +package content.global.skill.construction -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.content.global.Skillcape import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.construction.HouseLocation -import core.game.node.entity.skill.construction.HousingStyle import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.world.GameWorld.settings -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.world.GameWorld.settings +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Represents the estate agent dialogue. @@ -22,7 +17,7 @@ import rs09.tools.START_DIALOGUE * @author Woah */ @Initializable -class EstateAgentDialogue : DialoguePlugin { +class EstateAgentDialogue : core.game.dialogue.DialoguePlugin { /** * Constructs a new `EstateAgentDialogue` `Object`. @@ -40,7 +35,7 @@ class EstateAgentDialogue : DialoguePlugin { */ constructor(player: Player?) : super(player) - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return EstateAgentDialogue(player) } @@ -88,7 +83,7 @@ class EstateAgentDialogue : DialoguePlugin { } 5 -> { player("Tell me about that skillcape you're wearing!") - stage = if (Skillcape.isMaster(player, Skills.CONSTRUCTION)) 102 else 100 + stage = if (core.game.global.Skillcape.isMaster(player, Skills.CONSTRUCTION)) 102 else 100 } } @@ -344,7 +339,7 @@ class EstateAgentDialogue : DialoguePlugin { 102 -> { interpreter.sendDialogues( npc, - FacialExpression.JOLLY, + core.game.dialogue.FacialExpression.JOLLY, "I see you have recently achieved 99 construction.", "Would you like to buy a cape for 99,0000 gp?" ) @@ -356,7 +351,7 @@ class EstateAgentDialogue : DialoguePlugin { } 104 -> when (buttonId) { 1 -> { - if (Skillcape.purchase(player, Skills.CONSTRUCTION)) { + if (core.game.global.Skillcape.purchase(player, Skills.CONSTRUCTION)) { npc("Here you go lad, enjoy!") } stage = END_DIALOGUE diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/Hotspot.kt b/Server/src/main/content/global/skill/construction/Hotspot.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/Hotspot.kt rename to Server/src/main/content/global/skill/construction/Hotspot.kt index e25429a02..33c1758ed 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/Hotspot.kt +++ b/Server/src/main/content/global/skill/construction/Hotspot.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.construction +package content.global.skill.construction -import core.game.node.entity.skill.construction.BuildHotspot +import content.global.skill.construction.BuildHotspot /** * Represents a hotspot. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseLocation.java b/Server/src/main/content/global/skill/construction/HouseLocation.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/HouseLocation.java rename to Server/src/main/content/global/skill/construction/HouseLocation.java index 4f1302015..aa66b31d5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseLocation.java +++ b/Server/src/main/content/global/skill/construction/HouseLocation.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java b/Server/src/main/content/global/skill/construction/HouseManager.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java rename to Server/src/main/content/global/skill/construction/HouseManager.java index 0e1d8ea55..4b1f7b632 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java +++ b/Server/src/main/content/global/skill/construction/HouseManager.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; //import org.arios.game.content.global.DeadmanTimedAction; //import org.arios.game.node.entity.player.info.login.SavingModule; -import api.regionspec.RegionSpecification; -import api.regionspec.contracts.FillChunkContract; -import core.game.content.dialogue.FacialExpression; +import core.api.regionspec.RegionSpecification; +import core.api.regionspec.contracts.FillChunkContract; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.skill.Skills; @@ -21,15 +21,15 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import java.awt.*; import java.nio.ByteBuffer; -import static api.regionspec.RegionSpecificationKt.fillWith; -import static api.regionspec.RegionSpecificationKt.using; +import static core.api.regionspec.RegionSpecificationKt.fillWith; +import static core.api.regionspec.RegionSpecificationKt.using; + /** * Manages the player's house. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java b/Server/src/main/content/global/skill/construction/HouseZone.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java rename to Server/src/main/content/global/skill/construction/HouseZone.java index b805c3e56..a095b7d7b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseZone.java +++ b/Server/src/main/content/global/skill/construction/HouseZone.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HousingStyle.java b/Server/src/main/content/global/skill/construction/HousingStyle.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/HousingStyle.java rename to Server/src/main/content/global/skill/construction/HousingStyle.java index f945c3c5c..e4d59b90d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HousingStyle.java +++ b/Server/src/main/content/global/skill/construction/HousingStyle.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/NailType.java b/Server/src/main/content/global/skill/construction/NailType.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/NailType.java rename to Server/src/main/content/global/skill/construction/NailType.java index c2dd0e661..22ec10027 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/NailType.java +++ b/Server/src/main/content/global/skill/construction/NailType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java b/Server/src/main/content/global/skill/construction/PortalOptionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java rename to Server/src/main/content/global/skill/construction/PortalOptionPlugin.java index 5f4505b6e..23d951dac 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java +++ b/Server/src/main/content/global/skill/construction/PortalOptionPlugin.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -14,8 +14,8 @@ import core.plugin.Plugin; import core.plugin.PluginManifest; import core.plugin.PluginType; import kotlin.Unit; -import rs09.game.world.repository.Repository; -import rs09.plugin.ClassScanner; +import core.game.world.repository.Repository; +import core.plugin.ClassScanner; /** * Handles the house portal options. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/RemovalDialogue.java b/Server/src/main/content/global/skill/construction/RemovalDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/construction/RemovalDialogue.java rename to Server/src/main/content/global/skill/construction/RemovalDialogue.java index 727e908b7..5b2a9f869 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/RemovalDialogue.java +++ b/Server/src/main/content/global/skill/construction/RemovalDialogue.java @@ -1,11 +1,10 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import rs09.game.node.entity.skill.construction.Hotspot; /** * Removal dialogue for room & decorations in construction diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/Room.java b/Server/src/main/content/global/skill/construction/Room.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/Room.java rename to Server/src/main/content/global/skill/construction/Room.java index df8782295..c8a02bfda 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/Room.java +++ b/Server/src/main/content/global/skill/construction/Room.java @@ -1,11 +1,10 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.world.map.*; -import rs09.game.node.entity.skill.construction.Hotspot; /** * Represents a room. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java b/Server/src/main/content/global/skill/construction/RoomProperties.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java rename to Server/src/main/content/global/skill/construction/RoomProperties.java index 66dfb6880..fc147e534 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java +++ b/Server/src/main/content/global/skill/construction/RoomProperties.java @@ -1,11 +1,10 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.scenery.Scenery; import core.game.world.map.Region; import core.game.world.map.RegionChunk; import core.game.world.map.RegionManager; -import rs09.game.node.entity.skill.construction.Hotspot; /** * Represents the room properties. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/RoomTemplate.kt b/Server/src/main/content/global/skill/construction/RoomTemplate.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/RoomTemplate.kt rename to Server/src/main/content/global/skill/construction/RoomTemplate.kt index 5127e2e68..b1a68014b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/RoomTemplate.kt +++ b/Server/src/main/content/global/skill/construction/RoomTemplate.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.construction +package content.global.skill.construction -import core.game.node.entity.skill.construction.RoomProperties +import content.global.skill.construction.RoomProperties class RoomTemplate(properties: RoomProperties) { var hotspots: MutableList = ArrayList() diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/Servant.java b/Server/src/main/content/global/skill/construction/Servant.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/construction/Servant.java rename to Server/src/main/content/global/skill/construction/Servant.java index 422765ce1..63275330d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/Servant.java +++ b/Server/src/main/content/global/skill/construction/Servant.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/ServantType.java b/Server/src/main/content/global/skill/construction/ServantType.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/ServantType.java rename to Server/src/main/content/global/skill/construction/ServantType.java index e709d2692..6abba4fff 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/ServantType.java +++ b/Server/src/main/content/global/skill/construction/ServantType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction; +package content.global.skill.construction; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java b/Server/src/main/content/global/skill/construction/decoration/BeerBarrelPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/BeerBarrelPlugin.java index 5ea2e14fd..d1f8f7bc9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/BeerBarrelPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.decoration; +package content.global.skill.construction.decoration; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java b/Server/src/main/content/global/skill/construction/decoration/ChairBenchPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/ChairBenchPlugin.java index d38840226..87332a980 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/ChairBenchPlugin.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.construction.decoration; +package content.global.skill.construction.decoration; import core.cache.def.impl.SceneryDefinition; -import core.game.node.entity.skill.construction.Decoration; +import content.global.skill.construction.Decoration; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt b/Server/src/main/content/global/skill/construction/decoration/ConstructionDoorPlugin.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt rename to Server/src/main/content/global/skill/construction/decoration/ConstructionDoorPlugin.kt index 43a09b716..764bc11ae 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/ConstructionDoorPlugin.kt @@ -1,13 +1,13 @@ -package rs09.game.node.entity.skill.construction.decoration +package content.global.skill.construction.decoration import core.cache.def.impl.SceneryDefinition -import core.game.content.global.action.DoorActionHandler +import core.game.global.action.DoorActionHandler import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -import core.game.node.entity.skill.construction.BuildHotspot -import core.game.node.entity.skill.construction.HousingStyle +import content.global.skill.construction.BuildHotspot +import content.global.skill.construction.HousingStyle import core.plugin.Initializable import core.plugin.Plugin @@ -39,11 +39,11 @@ class ConstructionDoorPlugin : OptionHandler() { override fun handle(player: Player, node: Node, option: String): Boolean { val `object` = node as Scenery - val second = DoorActionHandler.getSecondDoor(`object`, player) + val second = core.game.global.action.DoorActionHandler.getSecondDoor(`object`, player) when (option) { "pick-lock", "force" -> return false //TODO } - DoorActionHandler.open(`object`, second, getReplaceId(`object`), getReplaceId(second), true, 500, false) + core.game.global.action.DoorActionHandler.open(`object`, second, getReplaceId(`object`), getReplaceId(second), true, 500, false) return true } diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java b/Server/src/main/content/global/skill/construction/decoration/FireplacePlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java rename to Server/src/main/content/global/skill/construction/decoration/FireplacePlugin.java index 4cbc250d2..b1f7f7128 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/FireplacePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.decoration; +package content.global.skill.construction.decoration; import core.cache.def.impl.SceneryDefinition; @@ -11,7 +11,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java b/Server/src/main/content/global/skill/construction/decoration/StaircasePlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java rename to Server/src/main/content/global/skill/construction/decoration/StaircasePlugin.java index e615fdd29..a1fe9ed3e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/StaircasePlugin.java @@ -1,15 +1,12 @@ -package core.game.node.entity.skill.construction.decoration; +package content.global.skill.construction.decoration; +import content.global.skill.construction.*; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.construction.BuildingUtils; -import core.game.node.entity.skill.construction.HouseManager; -import core.game.node.entity.skill.construction.Room; -import core.game.node.entity.skill.construction.RoomProperties; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; @@ -17,9 +14,8 @@ import core.game.world.map.Direction; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Handles construction staircases. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java b/Server/src/main/content/global/skill/construction/decoration/bedroom/ClockPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/bedroom/ClockPlugin.java index abc594914..53c44bb42 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/bedroom/ClockPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.decoration.bedroom; +package content.global.skill.construction.decoration.bedroom; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/ShavingStandHandler.kt b/Server/src/main/content/global/skill/construction/decoration/bedroom/ShavingStandHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/ShavingStandHandler.kt rename to Server/src/main/content/global/skill/construction/decoration/bedroom/ShavingStandHandler.kt index dbd8a649f..9b9322168 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/ShavingStandHandler.kt +++ b/Server/src/main/content/global/skill/construction/decoration/bedroom/ShavingStandHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.construction.decoration.bedroom +package content.global.skill.construction.decoration.bedroom import core.cache.def.impl.SceneryDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/WardrobeHandler.kt b/Server/src/main/content/global/skill/construction/decoration/bedroom/WardrobeHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/WardrobeHandler.kt rename to Server/src/main/content/global/skill/construction/decoration/bedroom/WardrobeHandler.kt index 84e5f7146..a4d73852b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/bedroom/WardrobeHandler.kt +++ b/Server/src/main/content/global/skill/construction/decoration/bedroom/WardrobeHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.construction.decoration.bedroom +package content.global.skill.construction.decoration.bedroom import core.cache.def.impl.SceneryDefinition import core.game.component.Component diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java b/Server/src/main/content/global/skill/construction/decoration/chapel/BoneOfferPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/chapel/BoneOfferPlugin.java index a8e822d09..d241c0e1a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/chapel/BoneOfferPlugin.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.construction.decoration.chapel; +package content.global.skill.construction.decoration.chapel; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.Bones; +import content.global.skill.prayer.Bones; import core.game.node.entity.skill.Skills; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt b/Server/src/main/content/global/skill/construction/decoration/chapel/BurnerListener.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt rename to Server/src/main/content/global/skill/construction/decoration/chapel/BurnerListener.kt index a0702fe68..4a32054ce 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt +++ b/Server/src/main/content/global/skill/construction/decoration/chapel/BurnerListener.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill.construction.decoration.chapel +package content.global.skill.construction.decoration.chapel import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.tools.RandomFunction -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the lighting of the torches of the Chapel. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt b/Server/src/main/content/global/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt rename to Server/src/main/content/global/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt index 5d6708c7f..6e6f6a539 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/chapel/ShieldBlessingPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.construction.decoration.chapel +package content.global.skill.construction.decoration.chapel import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/combatroom/CombatRing.java b/Server/src/main/content/global/skill/construction/decoration/combatroom/CombatRing.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/combatroom/CombatRing.java rename to Server/src/main/content/global/skill/construction/decoration/combatroom/CombatRing.java index 8720a88b8..c2b135fed 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/combatroom/CombatRing.java +++ b/Server/src/main/content/global/skill/construction/decoration/combatroom/CombatRing.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.decoration.combatroom; +package content.global.skill.construction.decoration.combatroom; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/costume/ToyBoxPlugin.kt b/Server/src/main/content/global/skill/construction/decoration/costume/ToyBoxPlugin.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/costume/ToyBoxPlugin.kt rename to Server/src/main/content/global/skill/construction/decoration/costume/ToyBoxPlugin.kt index 5c1d7818e..86b5007d1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/costume/ToyBoxPlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/costume/ToyBoxPlugin.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.skill.construction.decoration.costume +package content.global.skill.construction.decoration.costume import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler -import core.game.interaction.item.toys.DiangoReclaimInterface +import content.global.handlers.item.toys.DiangoReclaimInterface import core.game.node.Node import core.game.node.entity.player.Player import core.plugin.Initializable diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java b/Server/src/main/content/global/skill/construction/decoration/kitchen/BeerBarrelPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/kitchen/BeerBarrelPlugin.java index efe2e9f8e..6a8c19044 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/kitchen/BeerBarrelPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.decoration.kitchen; +package content.global.skill.construction.decoration.kitchen; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/LarderPlugin.java b/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/LarderPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java index 6387a3669..f30f0cebc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/LarderPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/kitchen/LarderPlugin.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.construction.decoration.kitchen; +package content.global.skill.construction.decoration.kitchen; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the interactions for the three Larders. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/ShelfPlugin.java b/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/ShelfPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java index dd8dbf06b..660749037 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/ShelfPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/kitchen/ShelfPlugin.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.construction.decoration.kitchen; +package content.global.skill.construction.decoration.kitchen; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the shelves in the kitchen room. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt b/Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt rename to Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt index 8858897ae..90673ed20 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt +++ b/Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.skill.construction.decoration.portalchamber +package content.global.skill.construction.decoration.portalchamber -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player -import core.game.node.entity.skill.construction.decoration.portalchamber.PortalChamberPlugin +import content.global.skill.construction.decoration.portalchamber.PortalChamberPlugin import core.plugin.Initializable /** @@ -10,7 +10,7 @@ import core.plugin.Initializable * @author Ceikry */ @Initializable -class PortalChamberDialogue(player: Player? = null) : DialoguePlugin(player) { +class PortalChamberDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var portal = "none" override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ @@ -41,7 +41,7 @@ class PortalChamberDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return PortalChamberDialogue(player) } diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java b/Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberPlugin.java index 64187f05c..95d5fa1e2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/portalchamber/PortalChamberPlugin.java @@ -1,21 +1,21 @@ -package core.game.node.entity.skill.construction.decoration.portalchamber; +package content.global.skill.construction.decoration.portalchamber; +import content.global.skill.construction.Hotspot; +import content.global.skill.runecrafting.Rune; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.construction.Decoration; -import core.game.node.entity.skill.runecrafting.Rune; +import content.global.skill.construction.Decoration; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * PortalChamberPlugin diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/questhall/MountedGlory.kt b/Server/src/main/content/global/skill/construction/decoration/questhall/MountedGlory.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/questhall/MountedGlory.kt rename to Server/src/main/content/global/skill/construction/decoration/questhall/MountedGlory.kt index 7a2f02287..fb5ad0e1d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/questhall/MountedGlory.kt +++ b/Server/src/main/content/global/skill/construction/decoration/questhall/MountedGlory.kt @@ -1,14 +1,14 @@ -package rs09.game.node.entity.skill.construction.decoration.questhall +package content.global.skill.construction.decoration.questhall -import api.teleport +import core.api.teleport import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio; import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import java.util.concurrent.Executors import java.util.concurrent.TimeUnit diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/questhall/MountedGloryPlugin.java b/Server/src/main/content/global/skill/construction/decoration/questhall/MountedGloryPlugin.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/questhall/MountedGloryPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/questhall/MountedGloryPlugin.java index 16958bba4..4323ce498 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/questhall/MountedGloryPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/questhall/MountedGloryPlugin.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.construction.decoration.questhall; +package content.global.skill.construction.decoration.questhall; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueAction; -import core.game.content.dialogue.DialogueInterpreter; +import core.game.dialogue.DialogueAction; +import core.game.dialogue.DialogueInterpreter; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/LecternPlugin.kt b/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/LecternPlugin.kt rename to Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt index 7714a9dbb..59443cc14 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/LecternPlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/study/LecternPlugin.kt @@ -1,26 +1,23 @@ -package rs09.game.node.entity.skill.construction.decoration.study +package content.global.skill.construction.decoration.study -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition import core.game.component.Component -import core.game.component.ComponentDefinition -import core.game.component.ComponentPlugin import core.game.interaction.OptionHandler -import core.game.interaction.item.TeleTabsOptionPlugin +import content.global.handlers.item.TeleTabsOptionPlugin import core.game.node.Node import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.construction.Decoration -import core.game.node.entity.skill.magic.MagicStaff +import content.global.skill.construction.Decoration +import core.game.node.entity.combat.spell.MagicStaff import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.world.GameWorld -import rs09.plugin.ClassScanner.definePlugin -import rs09.game.interaction.InterfaceListener +import core.game.world.GameWorld +import core.game.interaction.InterfaceListener /** * Handles the lectern diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt b/Server/src/main/content/global/skill/construction/decoration/study/TelescopePlugin.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt rename to Server/src/main/content/global/skill/construction/decoration/study/TelescopePlugin.kt index 731efa14d..6149fae5e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt +++ b/Server/src/main/content/global/skill/construction/decoration/study/TelescopePlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.construction.decoration.study +package content.global.skill.construction.decoration.study import core.cache.def.impl.SceneryDefinition import core.game.component.Component @@ -11,8 +11,8 @@ import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin import core.tools.RandomFunction -import rs09.game.content.global.worldevents.shootingstar.ShootingStarPlugin -import rs09.game.world.GameWorld.Pulser +import content.global.activity.shootingstar.ShootingStarPlugin +import core.game.world.GameWorld.Pulser import java.util.concurrent.TimeUnit @Initializable diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/workshop/ArmourStand.kt b/Server/src/main/content/global/skill/construction/decoration/workshop/ArmourStand.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/workshop/ArmourStand.kt rename to Server/src/main/content/global/skill/construction/decoration/workshop/ArmourStand.kt index 9a04823c1..665e6d490 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/workshop/ArmourStand.kt +++ b/Server/src/main/content/global/skill/construction/decoration/workshop/ArmourStand.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.construction.decoration.workshop +package content.global.skill.construction.decoration.workshop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.global.RepairItem +import core.game.dialogue.DialoguePlugin +import content.data.RepairItem import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler -import core.game.interaction.npc.bob.BobDialogue.BarrowsEquipment -import core.game.interaction.npc.bob.BobDialogue.BarrowsEquipment.BarrowsFullEquipment +import content.region.misthalin.lumbridge.dialogue.BobDialogue.BarrowsEquipment +import content.region.misthalin.lumbridge.dialogue.BobDialogue.BarrowsEquipment.BarrowsFullEquipment import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.item.Item @@ -57,8 +57,8 @@ class ArmourStand : UseWithHandler(494, 468, 496, 470, 498, 472, 500, 502, 474, return true } @Initializable - class RepairDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { + class RepairDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RepairDialogue(player) } var item: Item? = null diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java b/Server/src/main/content/global/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java index 4d8f4311f..3567a72fc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.construction.decoration.workshop; +package content.global.skill.construction.decoration.workshop; +import content.global.skill.construction.BuildingUtils; +import content.global.skill.construction.Decoration; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.construction.BuildingUtils; -import core.game.node.entity.skill.construction.Decoration; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -15,7 +15,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the clockmakers bench in the workshop diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java b/Server/src/main/content/global/skill/construction/decoration/workshop/ToolsPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java rename to Server/src/main/content/global/skill/construction/decoration/workshop/ToolsPlugin.java index 883e945ad..2341c3a2a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java +++ b/Server/src/main/content/global/skill/construction/decoration/workshop/ToolsPlugin.java @@ -1,18 +1,18 @@ -package core.game.node.entity.skill.construction.decoration.workshop; +package content.global.skill.construction.decoration.workshop; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantDialogue.java b/Server/src/main/content/global/skill/construction/npc/HouseServantDialogue.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantDialogue.java rename to Server/src/main/content/global/skill/construction/npc/HouseServantDialogue.java index fe29eb39d..6a28cadc7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantDialogue.java +++ b/Server/src/main/content/global/skill/construction/npc/HouseServantDialogue.java @@ -1,23 +1,23 @@ -package core.game.node.entity.skill.construction.npc; +package content.global.skill.construction.npc; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import content.global.skill.construction.HouseManager; +import content.global.skill.construction.ServantType; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.impl.PulseType; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.construction.HouseManager; -import core.game.node.entity.skill.construction.Servant; -import core.game.node.entity.skill.construction.ServantType; +import content.global.skill.construction.Servant; import core.game.interaction.MovementPulse; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.IronmanMode; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; -import core.game.interaction.inter.SawmillPlankInterface.Plank; +import content.global.handlers.iface.SawmillPlankInterface.Plank; /** * Handles the Servant's dialogues. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantPlugin.java b/Server/src/main/content/global/skill/construction/npc/HouseServantPlugin.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantPlugin.java rename to Server/src/main/content/global/skill/construction/npc/HouseServantPlugin.java index c7f96e64a..68af6493e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/npc/HouseServantPlugin.java +++ b/Server/src/main/content/global/skill/construction/npc/HouseServantPlugin.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.construction.npc; +package content.global.skill.construction.npc; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles interaction with the house servant. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/npc/StonemasonPlugin.java b/Server/src/main/content/global/skill/construction/npc/StonemasonPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/construction/npc/StonemasonPlugin.java rename to Server/src/main/content/global/skill/construction/npc/StonemasonPlugin.java index ff62cbf67..1810c4cb1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/npc/StonemasonPlugin.java +++ b/Server/src/main/content/global/skill/construction/npc/StonemasonPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.construction.npc; +package content.global.skill.construction.npc; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CakeMakingPlugin.java b/Server/src/main/content/global/skill/cooking/CakeMakingPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CakeMakingPlugin.java rename to Server/src/main/content/global/skill/cooking/CakeMakingPlugin.java index c82006d2c..084abf4c4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CakeMakingPlugin.java +++ b/Server/src/main/content/global/skill/cooking/CakeMakingPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/ChocolateBarCutter.kt b/Server/src/main/content/global/skill/cooking/ChocolateBarCutter.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/ChocolateBarCutter.kt rename to Server/src/main/content/global/skill/cooking/ChocolateBarCutter.kt index 184e9948f..e2a5fc126 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/ChocolateBarCutter.kt +++ b/Server/src/main/content/global/skill/cooking/ChocolateBarCutter.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.cooking +package content.global.skill.cooking import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CoconutMakePlugin.java b/Server/src/main/content/global/skill/cooking/CoconutMakePlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CoconutMakePlugin.java rename to Server/src/main/content/global/skill/cooking/CoconutMakePlugin.java index d4d54e83c..7520ff115 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CoconutMakePlugin.java +++ b/Server/src/main/content/global/skill/cooking/CoconutMakePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java b/Server/src/main/content/global/skill/cooking/CookableItems.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java rename to Server/src/main/content/global/skill/cooking/CookableItems.java index a3c61a043..4ae79ffb7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookableItems.java +++ b/Server/src/main/content/global/skill/cooking/CookableItems.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import org.rs09.consts.Items; import core.game.node.item.Item; @@ -93,7 +93,7 @@ public enum CookableItems { SEAWEED(Items.SEAWEED_401,0,Items.SODA_ASH_1781,0,0,999,0,0), /** * Sinew gets overridden by BEEF in this enum, due to values being looked up by the items RAW id. - * This gets corrected in {@link core.game.node.entity.skill.cooking.SinewCookingPulse} + * This gets corrected in {@link SinewCookingPulse} */ SINEW(Items.SINEW_9436,Items.RAW_BEEF_2132,Items.SINEW_9436,0,3,0,0,0); diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt b/Server/src/main/content/global/skill/cooking/CookingDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt rename to Server/src/main/content/global/skill/cooking/CookingDialogue.kt index 7e0318fb4..f3ea44026 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt +++ b/Server/src/main/content/global/skill/cooking/CookingDialogue.kt @@ -1,18 +1,16 @@ -package rs09.game.node.entity.skill.cooking +package content.global.skill.cooking -import api.* +import core.api.* import core.cache.def.impl.ItemDefinition import core.game.node.scenery.Scenery -import core.game.node.entity.skill.cooking.CookableItems -import core.game.node.entity.skill.cooking.CookingRewrite.Companion.cook -import core.game.node.item.Item +import content.global.skill.cooking.CookableItems +import content.global.skill.cooking.CookingRewrite.Companion.cook import core.net.packet.PacketRepository import core.net.packet.context.ChildPositionContext import core.net.packet.out.RepositionChild import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.SkillDialogueHandler -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.START_DIALOGUE /** * @author Ceikry diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingDialoguePlugin.java b/Server/src/main/content/global/skill/cooking/CookingDialoguePlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookingDialoguePlugin.java rename to Server/src/main/content/global/skill/cooking/CookingDialoguePlugin.java index e9f23d2da..25f49ad6f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingDialoguePlugin.java +++ b/Server/src/main/content/global/skill/cooking/CookingDialoguePlugin.java @@ -1,7 +1,7 @@ /* package core.game.node.entity.skill.cooking; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import org.crandor.game.content.global.consumable.Consumables; import org.crandor.game.content.global.consumable.Food; import core.game.node.entity.skill.cooking.CookableItems; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingPlugin.java b/Server/src/main/content/global/skill/cooking/CookingPlugin.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookingPlugin.java rename to Server/src/main/content/global/skill/cooking/CookingPlugin.java index c20c569ba..526362223 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingPlugin.java +++ b/Server/src/main/content/global/skill/cooking/CookingPlugin.java @@ -2,7 +2,7 @@ package core.game.node.entity.skill.cooking; import org.crandor.cache.def.impl.ItemDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import org.crandor.game.content.global.consumable.Consumables; import org.crandor.game.content.global.consumable.Food; import core.game.node.entity.skill.cooking.CookableItems; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingPulse.java b/Server/src/main/content/global/skill/cooking/CookingPulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookingPulse.java rename to Server/src/main/content/global/skill/cooking/CookingPulse.java diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRecipePlugin.java b/Server/src/main/content/global/skill/cooking/CookingRecipePlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookingRecipePlugin.java rename to Server/src/main/content/global/skill/cooking/CookingRecipePlugin.java index f980bfad1..9ef36bcaf 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRecipePlugin.java +++ b/Server/src/main/content/global/skill/cooking/CookingRecipePlugin.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.cooking.recipe.Recipe; import core.game.node.item.Item; import core.game.system.task.Pulse; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import rs09.game.content.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt b/Server/src/main/content/global/skill/cooking/CookingRewrite.kt similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt rename to Server/src/main/content/global/skill/cooking/CookingRewrite.kt index 8331f582a..5da124cb8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt +++ b/Server/src/main/content/global/skill/cooking/CookingRewrite.kt @@ -1,75 +1,73 @@ -package core.game.node.entity.skill.cooking - -import api.* -import core.game.node.scenery.Scenery -import core.game.node.entity.player.Player -import core.game.node.item.Item -import org.rs09.consts.Items -import org.rs09.consts.Items.BREAD_DOUGH_2307 -import org.rs09.consts.Items.RAW_BEAR_MEAT_2136 -import org.rs09.consts.Items.RAW_BEEF_2132 -import org.rs09.consts.Items.SEAWEED_401 -import org.rs09.consts.Items.UNCOOKED_CAKE_1889 -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.skill.cooking.CookingDialogue - -/** - * @author Ceikry - * @author bushtail - added bear meat for sinew making - */ -class CookingRewrite : InteractionListener { - - val RAW_FOODS: IntArray - - init { - val list = CookableItems.values().map { it.raw }.toMutableList() - list.add(Items.COOKED_MEAT_2142) - list.add(RAW_BEEF_2132) - list.add(RAW_BEAR_MEAT_2136) - list.add(SEAWEED_401) - RAW_FOODS = list.toIntArray() - } - - override fun defineListeners() { - - onUseWith(IntType.SCENERY,RAW_FOODS, *COOKING_OBJs){ player, used, with -> - val item = used.asItem() - val obj = with.asScenery() - val range = obj.name.toLowerCase().contains("range") - when (item.id) { - RAW_BEEF_2132, RAW_BEAR_MEAT_2136 -> if (range) { - player.dialogueInterpreter.open(CookingDialogue(item.id,9436,true,obj,item.id)) - return@onUseWith true - } - BREAD_DOUGH_2307, UNCOOKED_CAKE_1889 -> if (!range) { - player.packetDispatch.sendMessage("You need to cook this on a range.") - return@onUseWith false - } - } - - //cook a standard item - player.dialogueInterpreter.open(CookingDialogue(item.id,obj)) - return@onUseWith true - } - - } - - companion object { - val COOKING_OBJs = intArrayOf(24313,21302, 13528, 13529, 13533, 13531, 13536, 13539, 13542, 2728, 2729, 2730, 2731, 2732, 2859, 3038, 3039, 3769, 3775, 4265, 4266, 5249, 5499, 5631, 5632, 5981, 9682, 10433, 11404, 11405, 11406, 12102, 12796, 13337, 13881, 14169, 14919, 15156, 20000, 20001, 21620, 21792, 22713, 22714, 23046, 24283, 24284, 25155, 25156, 25465, 25730, 27297, 29139, 30017, 32099, 33500, 34495, 34546, 36973, 37597, 37629, 37726, 114, 4172, 5275, 8750, 16893, 22154, 34410, 34565, 114, 9085, 9086, 9087, 12269, 15398, 25440, 25441, 2724, 2725, 2726, 4618, 4650, 5165, 6093, 6094, 6095, 6096, 8712, 9374, 9439, 9440, 9441, 10824, 17640, 17641, 17642, 17643, 18039, 21795, 24285, 24329, 27251, 33498, 35449, 36815, 36816, 37426, 40110, 10377) - - @JvmStatic - fun cook(player: Player, `object`: Scenery?, initial: Int, product: Int, amount: Int) { - val food = Item(initial) - if (food.name.toLowerCase().contains("pizza")) { - player.pulseManager.run(PizzaCookingPulse(player, `object`, initial, product, amount)) - } else if (food.name.toLowerCase().contains("pie")) { - player.pulseManager.run(PieCookingPulse(player, `object`, initial, product, amount)) - } else if (CookableItems.intentionalBurn(initial)) { - player.pulseManager.run(IntentionalBurnPulse(player, `object`, initial, product, amount)) - } else { - player.pulseManager.run(StandardCookingPulse(player, `object`, initial, product, amount)) - } - } - } -} +package content.global.skill.cooking + +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.game.node.scenery.Scenery +import org.rs09.consts.Items +import org.rs09.consts.Items.BREAD_DOUGH_2307 +import org.rs09.consts.Items.RAW_BEAR_MEAT_2136 +import org.rs09.consts.Items.RAW_BEEF_2132 +import org.rs09.consts.Items.SEAWEED_401 +import org.rs09.consts.Items.UNCOOKED_CAKE_1889 + +/** + * @author Ceikry + * @author bushtail - added bear meat for sinew making + */ +class CookingRewrite : InteractionListener { + + val RAW_FOODS: IntArray + + init { + val list = CookableItems.values().map { it.raw }.toMutableList() + list.add(Items.COOKED_MEAT_2142) + list.add(RAW_BEEF_2132) + list.add(RAW_BEAR_MEAT_2136) + list.add(SEAWEED_401) + RAW_FOODS = list.toIntArray() + } + + override fun defineListeners() { + + onUseWith(IntType.SCENERY,RAW_FOODS, *COOKING_OBJs){ player, used, with -> + val item = used.asItem() + val obj = with.asScenery() + val range = obj.name.toLowerCase().contains("range") + when (item.id) { + RAW_BEEF_2132, RAW_BEAR_MEAT_2136 -> if (range) { + player.dialogueInterpreter.open(CookingDialogue(item.id,9436,true,obj,item.id)) + return@onUseWith true + } + BREAD_DOUGH_2307, UNCOOKED_CAKE_1889 -> if (!range) { + player.packetDispatch.sendMessage("You need to cook this on a range.") + return@onUseWith false + } + } + + //cook a standard item + player.dialogueInterpreter.open(CookingDialogue(item.id,obj)) + return@onUseWith true + } + + } + + companion object { + val COOKING_OBJs = intArrayOf(24313,21302, 13528, 13529, 13533, 13531, 13536, 13539, 13542, 2728, 2729, 2730, 2731, 2732, 2859, 3038, 3039, 3769, 3775, 4265, 4266, 5249, 5499, 5631, 5632, 5981, 9682, 10433, 11404, 11405, 11406, 12102, 12796, 13337, 13881, 14169, 14919, 15156, 20000, 20001, 21620, 21792, 22713, 22714, 23046, 24283, 24284, 25155, 25156, 25465, 25730, 27297, 29139, 30017, 32099, 33500, 34495, 34546, 36973, 37597, 37629, 37726, 114, 4172, 5275, 8750, 16893, 22154, 34410, 34565, 114, 9085, 9086, 9087, 12269, 15398, 25440, 25441, 2724, 2725, 2726, 4618, 4650, 5165, 6093, 6094, 6095, 6096, 8712, 9374, 9439, 9440, 9441, 10824, 17640, 17641, 17642, 17643, 18039, 21795, 24285, 24329, 27251, 33498, 35449, 36815, 36816, 37426, 40110, 10377) + + @JvmStatic + fun cook(player: Player, `object`: Scenery?, initial: Int, product: Int, amount: Int) { + val food = Item(initial) + if (food.name.toLowerCase().contains("pizza")) { + player.pulseManager.run(PizzaCookingPulse(player, `object`, initial, product, amount)) + } else if (food.name.toLowerCase().contains("pie")) { + player.pulseManager.run(PieCookingPulse(player, `object`, initial, product, amount)) + } else if (CookableItems.intentionalBurn(initial)) { + player.pulseManager.run(IntentionalBurnPulse(player, `object`, initial, product, amount)) + } else { + player.pulseManager.run(StandardCookingPulse(player, `object`, initial, product, amount)) + } + } + } +} diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/DoughMakingListener.kt b/Server/src/main/content/global/skill/cooking/DoughMakingListener.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/DoughMakingListener.kt rename to Server/src/main/content/global/skill/cooking/DoughMakingListener.kt index 3f979e7a0..a60f89ff7 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/DoughMakingListener.kt +++ b/Server/src/main/content/global/skill/cooking/DoughMakingListener.kt @@ -1,13 +1,13 @@ -package rs09.game.node.entity.skill.cooking +package content.global.skill.cooking -import api.* -import api.events.ResourceProducedEvent +import core.api.* +import core.game.event.ResourceProducedEvent import core.game.node.entity.skill.Skills import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class DoughMakingListener : InteractionListener { companion object { diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/FireOptionPotteryPlugin.java b/Server/src/main/content/global/skill/cooking/FireOptionPotteryPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/cooking/FireOptionPotteryPlugin.java rename to Server/src/main/content/global/skill/cooking/FireOptionPotteryPlugin.java index 8a6c6971b..c0def779b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/FireOptionPotteryPlugin.java +++ b/Server/src/main/content/global/skill/cooking/FireOptionPotteryPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java b/Server/src/main/content/global/skill/cooking/IntentionalBurnPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java rename to Server/src/main/content/global/skill/cooking/IntentionalBurnPulse.java index bd4e8f8ea..ffb0c23da 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java +++ b/Server/src/main/content/global/skill/cooking/IntentionalBurnPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/MakeStewPlugin.java b/Server/src/main/content/global/skill/cooking/MakeStewPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/MakeStewPlugin.java rename to Server/src/main/content/global/skill/cooking/MakeStewPlugin.java index 4a5102f4b..33436f4bb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/MakeStewPlugin.java +++ b/Server/src/main/content/global/skill/cooking/MakeStewPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/NettleTeaPlugin.java b/Server/src/main/content/global/skill/cooking/NettleTeaPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/NettleTeaPlugin.java rename to Server/src/main/content/global/skill/cooking/NettleTeaPlugin.java index 40464a6b6..161c99991 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/NettleTeaPlugin.java +++ b/Server/src/main/content/global/skill/cooking/NettleTeaPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/NettleWaterPlugin.java b/Server/src/main/content/global/skill/cooking/NettleWaterPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/cooking/NettleWaterPlugin.java rename to Server/src/main/content/global/skill/cooking/NettleWaterPlugin.java index 2b851ddd9..e8dbeb385 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/NettleWaterPlugin.java +++ b/Server/src/main/content/global/skill/cooking/NettleWaterPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java b/Server/src/main/content/global/skill/cooking/PieCookingPulse.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java rename to Server/src/main/content/global/skill/cooking/PieCookingPulse.java index f19b45265..633af5815 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java +++ b/Server/src/main/content/global/skill/cooking/PieCookingPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/PieShellPlugin.java b/Server/src/main/content/global/skill/cooking/PieShellPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/PieShellPlugin.java rename to Server/src/main/content/global/skill/cooking/PieShellPlugin.java index 57baf4c4f..4278836e8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/PieShellPlugin.java +++ b/Server/src/main/content/global/skill/cooking/PieShellPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java b/Server/src/main/content/global/skill/cooking/PizzaCookingPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java rename to Server/src/main/content/global/skill/cooking/PizzaCookingPulse.java index 4d0bdd19c..45653e594 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java +++ b/Server/src/main/content/global/skill/cooking/PizzaCookingPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/SaucyKebabListener.kt b/Server/src/main/content/global/skill/cooking/SaucyKebabListener.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/SaucyKebabListener.kt rename to Server/src/main/content/global/skill/cooking/SaucyKebabListener.kt index ac32cc689..fc22db082 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/SaucyKebabListener.kt +++ b/Server/src/main/content/global/skill/cooking/SaucyKebabListener.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.cooking +package content.global.skill.cooking -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/SinewCookingPulse.java b/Server/src/main/content/global/skill/cooking/SinewCookingPulse.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/cooking/SinewCookingPulse.java rename to Server/src/main/content/global/skill/cooking/SinewCookingPulse.java index 786befa67..4f9e6be82 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/SinewCookingPulse.java +++ b/Server/src/main/content/global/skill/cooking/SinewCookingPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/SkeweredFoodPlugin.java b/Server/src/main/content/global/skill/cooking/SkeweredFoodPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/cooking/SkeweredFoodPlugin.java rename to Server/src/main/content/global/skill/cooking/SkeweredFoodPlugin.java index 21b08357c..d7be08283 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/SkeweredFoodPlugin.java +++ b/Server/src/main/content/global/skill/cooking/SkeweredFoodPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.node.entity.skill.Skills; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java b/Server/src/main/content/global/skill/cooking/StandardCookingPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java rename to Server/src/main/content/global/skill/cooking/StandardCookingPulse.java index f5b110f35..3ef44db7c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java +++ b/Server/src/main/content/global/skill/cooking/StandardCookingPulse.java @@ -1,6 +1,7 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; -import api.events.ResourceProducedEvent; +import content.global.skill.skillcapeperks.SkillcapePerks; +import core.game.event.ResourceProducedEvent; import core.game.node.entity.impl.Animator; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; @@ -12,7 +13,6 @@ import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; import org.rs09.consts.Items; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; public class StandardCookingPulse extends Pulse { //range animation diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/WatermelonSlicePlugin.java b/Server/src/main/content/global/skill/cooking/WatermelonSlicePlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/WatermelonSlicePlugin.java rename to Server/src/main/content/global/skill/cooking/WatermelonSlicePlugin.java index 1fd4040a1..d8273968f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/WatermelonSlicePlugin.java +++ b/Server/src/main/content/global/skill/cooking/WatermelonSlicePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/WineFermentPlugin.java b/Server/src/main/content/global/skill/cooking/WineFermentPlugin.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/WineFermentPlugin.java rename to Server/src/main/content/global/skill/cooking/WineFermentPlugin.java index b9a8a3d80..b2e96678d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/WineFermentPlugin.java +++ b/Server/src/main/content/global/skill/cooking/WineFermentPlugin.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.cooking; +package content.global.skill.cooking; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.fermenting.WineFermentingPulse; +import content.global.skill.cooking.fermenting.WineFermentingPulse; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/content/dialogue/DairyChurnDialogue.java b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/DairyChurnDialogue.java rename to Server/src/main/content/global/skill/cooking/dairy/DairyChurnDialogue.java index eff0de5a0..0c2b5e08f 100644 --- a/Server/src/main/java/core/game/content/dialogue/DairyChurnDialogue.java +++ b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnDialogue.java @@ -1,10 +1,9 @@ -package core.game.content.dialogue; +package content.global.skill.cooking.dairy; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import org.rs09.consts.Items; -import core.game.node.entity.skill.cooking.dairy.DairyChurnPulse; -import core.game.node.entity.skill.cooking.dairy.DairyProduct; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/DairyChurnOptionPlugin.java b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/DairyChurnOptionPlugin.java rename to Server/src/main/content/global/skill/cooking/dairy/DairyChurnOptionPlugin.java index d4d768963..1c87334ca 100644 --- a/Server/src/main/java/core/game/content/dialogue/DairyChurnOptionPlugin.java +++ b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package content.global.skill.cooking.dairy; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyChurnPulse.java b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyChurnPulse.java rename to Server/src/main/content/global/skill/cooking/dairy/DairyChurnPulse.java index 050c60a5c..9b774e607 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyChurnPulse.java +++ b/Server/src/main/content/global/skill/cooking/dairy/DairyChurnPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking.dairy; +package content.global.skill.cooking.dairy; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyProduct.java b/Server/src/main/content/global/skill/cooking/dairy/DairyProduct.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyProduct.java rename to Server/src/main/content/global/skill/cooking/dairy/DairyProduct.java index 9d6f31151..09376016a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/dairy/DairyProduct.java +++ b/Server/src/main/content/global/skill/cooking/dairy/DairyProduct.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking.dairy; +package content.global.skill.cooking.dairy; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/fermenting/WineFermentingPulse.java b/Server/src/main/content/global/skill/cooking/fermenting/WineFermentingPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/cooking/fermenting/WineFermentingPulse.java rename to Server/src/main/content/global/skill/cooking/fermenting/WineFermentingPulse.java index d6efa5003..4f9dd7a6e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/fermenting/WineFermentingPulse.java +++ b/Server/src/main/content/global/skill/cooking/fermenting/WineFermentingPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking.fermenting; +package content.global.skill.cooking.fermenting; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/OomlieWrap.java b/Server/src/main/content/global/skill/cooking/recipe/OomlieWrap.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/OomlieWrap.java rename to Server/src/main/content/global/skill/cooking/recipe/OomlieWrap.java index e215eaf4a..d5e8ee5f7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/OomlieWrap.java +++ b/Server/src/main/content/global/skill/cooking/recipe/OomlieWrap.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.cooking.recipe; +package content.global.skill.cooking.recipe; import org.rs09.consts.Items; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/Recipe.java b/Server/src/main/content/global/skill/cooking/recipe/Recipe.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/Recipe.java rename to Server/src/main/content/global/skill/cooking/recipe/Recipe.java index c106ddee5..3d41926c4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/Recipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/Recipe.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.cooking.recipe; +package content.global.skill.cooking.recipe; -import core.game.node.entity.skill.cooking.recipe.cake.ChocolateCake; -import core.game.node.entity.skill.cooking.recipe.pie.impl.*; -import core.game.node.entity.skill.cooking.recipe.pizza.impl.AnchovyPizza; -import core.game.node.entity.skill.cooking.recipe.pizza.impl.MeatPizza; -import core.game.node.entity.skill.cooking.recipe.pizza.impl.PineapplePizza; -import core.game.node.entity.skill.cooking.recipe.pizza.impl.PlainPizza; -import core.game.node.entity.skill.cooking.recipe.potato.impl.*; -import core.game.node.entity.skill.cooking.recipe.stew.CurryRecipe; -import core.game.node.entity.skill.cooking.recipe.stew.StewRecipe; -import core.game.node.entity.skill.cooking.recipe.topping.impl.*; +import content.global.skill.cooking.recipe.pie.impl.*; +import content.global.skill.cooking.recipe.pizza.impl.AnchovyPizza; +import content.global.skill.cooking.recipe.pizza.impl.MeatPizza; +import content.global.skill.cooking.recipe.pizza.impl.PineapplePizza; +import content.global.skill.cooking.recipe.pizza.impl.PlainPizza; +import content.global.skill.cooking.recipe.potato.impl.*; +import content.global.skill.cooking.recipe.stew.CurryRecipe; +import content.global.skill.cooking.recipe.stew.StewRecipe; +import content.global.skill.cooking.recipe.topping.impl.*; +import content.global.skill.cooking.recipe.cake.ChocolateCake; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/cake/ChocolateCake.java b/Server/src/main/content/global/skill/cooking/recipe/cake/ChocolateCake.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/cake/ChocolateCake.java rename to Server/src/main/content/global/skill/cooking/recipe/cake/ChocolateCake.java index 72280ce18..97ef11d88 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/cake/ChocolateCake.java +++ b/Server/src/main/content/global/skill/cooking/recipe/cake/ChocolateCake.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.cake; +package content.global.skill.cooking.recipe.cake; +import content.global.skill.cooking.recipe.Recipe; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/PieRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/pie/PieRecipe.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/PieRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/PieRecipe.java index 00fb85af5..878a3333f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/PieRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/PieRecipe.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie; +package content.global.skill.cooking.recipe.pie; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/AdmiralPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/AdmiralPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/AdmiralPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/AdmiralPie.java index 652bc3549..9cc6a98eb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/AdmiralPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/AdmiralPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/ApplePie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/ApplePie.java similarity index 82% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/ApplePie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/ApplePie.java index 2956dd38b..e44917445 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/ApplePie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/ApplePie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/FishPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/FishPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/FishPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/FishPie.java index 7a2286891..7a1dad02f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/FishPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/FishPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/GardenPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/GardenPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/GardenPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/GardenPie.java index 04bd3066f..90fbe7e23 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/GardenPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/GardenPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MeatPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/MeatPie.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MeatPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/MeatPie.java index 76add066f..1edb223fd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MeatPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/MeatPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MudPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/MudPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MudPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/MudPie.java index 64ef1750f..64a542f46 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/MudPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/MudPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/RedberryPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/RedberryPie.java similarity index 80% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/RedberryPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/RedberryPie.java index 8c7920785..6ebbd04f6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/RedberryPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/RedberryPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/SummerPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/SummerPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/SummerPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/SummerPie.java index 689548cb5..14996852a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/SummerPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/SummerPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/WildPie.java b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/WildPie.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/WildPie.java rename to Server/src/main/content/global/skill/cooking/recipe/pie/impl/WildPie.java index 0e9c8f0fb..3b4decaa2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pie/impl/WildPie.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pie/impl/WildPie.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pie.impl; +package content.global.skill.cooking.recipe.pie.impl; -import core.game.node.entity.skill.cooking.recipe.pie.PieRecipe; +import content.global.skill.cooking.recipe.pie.PieRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/PizzaRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/pizza/PizzaRecipe.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/PizzaRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/pizza/PizzaRecipe.java index 0471e4a11..5a1385a35 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/PizzaRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pizza/PizzaRecipe.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.pizza; +package content.global.skill.cooking.recipe.pizza; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/AnchovyPizza.java b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/AnchovyPizza.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/AnchovyPizza.java rename to Server/src/main/content/global/skill/cooking/recipe/pizza/impl/AnchovyPizza.java index 4fc09e82a..4a70625ff 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/AnchovyPizza.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/AnchovyPizza.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pizza.impl; +package content.global.skill.cooking.recipe.pizza.impl; -import core.game.node.entity.skill.cooking.recipe.pizza.PizzaRecipe; +import content.global.skill.cooking.recipe.pizza.PizzaRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/MeatPizza.java b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/MeatPizza.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/MeatPizza.java rename to Server/src/main/content/global/skill/cooking/recipe/pizza/impl/MeatPizza.java index 9b9d8f903..b79096137 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/MeatPizza.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/MeatPizza.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pizza.impl; +package content.global.skill.cooking.recipe.pizza.impl; -import core.game.node.entity.skill.cooking.recipe.pizza.PizzaRecipe; +import content.global.skill.cooking.recipe.pizza.PizzaRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PineapplePizza.java b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PineapplePizza.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PineapplePizza.java rename to Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PineapplePizza.java index e93097a0a..7e4746e2f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PineapplePizza.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PineapplePizza.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.pizza.impl; +package content.global.skill.cooking.recipe.pizza.impl; -import core.game.node.entity.skill.cooking.recipe.pizza.PizzaRecipe; +import content.global.skill.cooking.recipe.pizza.PizzaRecipe; import core.game.interaction.NodeUsageEvent; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PlainPizza.java b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PlainPizza.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PlainPizza.java rename to Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PlainPizza.java index 01c85e937..8d624dca3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/pizza/impl/PlainPizza.java +++ b/Server/src/main/content/global/skill/cooking/recipe/pizza/impl/PlainPizza.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.pizza.impl; +package content.global.skill.cooking.recipe.pizza.impl; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/PotatoRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/potato/PotatoRecipe.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/PotatoRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/PotatoRecipe.java index 6eee0e3f5..c2640a8bc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/PotatoRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/PotatoRecipe.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.potato; +package content.global.skill.cooking.recipe.potato; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ButterPotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/ButterPotato.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ButterPotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/ButterPotato.java index c3b445a60..b382a5029 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ButterPotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/ButterPotato.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; +import content.global.skill.cooking.recipe.Recipe; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/CheesePotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/CheesePotato.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/CheesePotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/CheesePotato.java index fe1a1ea5d..f111ed950 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/CheesePotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/CheesePotato.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; -import core.game.node.entity.skill.cooking.recipe.potato.PotatoRecipe; +import content.global.skill.cooking.recipe.potato.PotatoRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ChilliPotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/ChilliPotato.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ChilliPotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/ChilliPotato.java index 40683e915..88c5ed146 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/ChilliPotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/ChilliPotato.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; -import core.game.node.entity.skill.cooking.recipe.potato.PotatoRecipe; +import content.global.skill.cooking.recipe.potato.PotatoRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/EggPotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/EggPotato.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/EggPotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/EggPotato.java index 6dd5f7d2f..c616591fd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/EggPotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/EggPotato.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; -import core.game.node.entity.skill.cooking.recipe.potato.PotatoRecipe; +import content.global.skill.cooking.recipe.potato.PotatoRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/MushroomPotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/MushroomPotato.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/MushroomPotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/MushroomPotato.java index 56fa4d669..d7bfa1c2c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/MushroomPotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/MushroomPotato.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; -import core.game.node.entity.skill.cooking.recipe.potato.PotatoRecipe; +import content.global.skill.cooking.recipe.potato.PotatoRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/TunaPotato.java b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/TunaPotato.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/TunaPotato.java rename to Server/src/main/content/global/skill/cooking/recipe/potato/impl/TunaPotato.java index e9466ac45..645d5ed2e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/potato/impl/TunaPotato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/potato/impl/TunaPotato.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.potato.impl; +package content.global.skill.cooking.recipe.potato.impl; -import core.game.node.entity.skill.cooking.recipe.potato.PotatoRecipe; +import content.global.skill.cooking.recipe.potato.PotatoRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/CurryRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/stew/CurryRecipe.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/CurryRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/stew/CurryRecipe.java index 781ba4725..4ea78825d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/CurryRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/stew/CurryRecipe.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.stew; +package content.global.skill.cooking.recipe.stew; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/StewRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/stew/StewRecipe.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/StewRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/stew/StewRecipe.java index 17f6c4a08..4073bcc0e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/stew/StewRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/stew/StewRecipe.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.stew; +package content.global.skill.cooking.recipe.stew; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/ToppingRecipe.java b/Server/src/main/content/global/skill/cooking/recipe/topping/ToppingRecipe.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/ToppingRecipe.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/ToppingRecipe.java index 4285360f5..5c2cacb15 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/ToppingRecipe.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/ToppingRecipe.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping; +package content.global.skill.cooking.recipe.topping; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChilliConCarne.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChilliConCarne.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChilliConCarne.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChilliConCarne.java index ad64d0baf..4085d149b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChilliConCarne.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChilliConCarne.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedOnion.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedOnion.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedOnion.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedOnion.java index a3d560f1c..5a30107c1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedOnion.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedOnion.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; -import core.game.node.entity.skill.cooking.recipe.topping.ToppingRecipe; +import content.global.skill.cooking.recipe.topping.ToppingRecipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedTuna.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedTuna.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedTuna.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedTuna.java index f0f3c6428..4723c61ff 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/ChoppedTuna.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/ChoppedTuna.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; -import core.game.node.entity.skill.cooking.recipe.topping.ToppingRecipe; +import content.global.skill.cooking.recipe.topping.ToppingRecipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/EggAndTomato.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/EggAndTomato.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/EggAndTomato.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/EggAndTomato.java index cebfaf538..dabf2db2b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/EggAndTomato.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/EggAndTomato.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; +import content.global.skill.cooking.recipe.Recipe; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/MushroomAndOnion.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/MushroomAndOnion.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/MushroomAndOnion.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/MushroomAndOnion.java index 27a3b8f55..3b99200f7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/MushroomAndOnion.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/MushroomAndOnion.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SlicedMushroom.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/SlicedMushroom.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SlicedMushroom.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/SlicedMushroom.java index 6ec41c7fc..46f9d09f8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SlicedMushroom.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/SlicedMushroom.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; -import core.game.node.entity.skill.cooking.recipe.topping.ToppingRecipe; +import content.global.skill.cooking.recipe.topping.ToppingRecipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SpicySauce.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/SpicySauce.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SpicySauce.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/SpicySauce.java index d4a8d6f1f..2b0a7e103 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/SpicySauce.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/SpicySauce.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/TunaAndCorn.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/TunaAndCorn.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/TunaAndCorn.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/TunaAndCorn.java index dbebeeb49..1e2c92a6f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/TunaAndCorn.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/TunaAndCorn.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.recipe.Recipe; +import content.global.skill.cooking.recipe.Recipe; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/UncookedEgg.java b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/UncookedEgg.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/UncookedEgg.java rename to Server/src/main/content/global/skill/cooking/recipe/topping/impl/UncookedEgg.java index c77d33c69..61ce50394 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/recipe/topping/impl/UncookedEgg.java +++ b/Server/src/main/content/global/skill/cooking/recipe/topping/impl/UncookedEgg.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.cooking.recipe.topping.impl; +package content.global.skill.cooking.recipe.topping.impl; -import core.game.node.entity.skill.cooking.recipe.topping.ToppingRecipe; +import content.global.skill.cooking.recipe.topping.ToppingRecipe; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/AmuletStringingPlugin.java b/Server/src/main/content/global/skill/crafting/AmuletStringingPlugin.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/crafting/AmuletStringingPlugin.java rename to Server/src/main/content/global/skill/crafting/AmuletStringingPlugin.java index ff7fd9d1e..cfe3cfd24 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/AmuletStringingPlugin.java +++ b/Server/src/main/content/global/skill/crafting/AmuletStringingPlugin.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting; +import content.global.skill.crafting.jewellery.JewelleryCrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/BattleStaves.java b/Server/src/main/content/global/skill/crafting/BattleStaves.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/BattleStaves.java rename to Server/src/main/content/global/skill/crafting/BattleStaves.java index 7a88f3d32..ceacd25b5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/BattleStaves.java +++ b/Server/src/main/content/global/skill/crafting/BattleStaves.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; /** * Represents a battlestave. diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/BattlestaveMakePlugin.java b/Server/src/main/content/global/skill/crafting/BattlestaveMakePlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/BattlestaveMakePlugin.java rename to Server/src/main/content/global/skill/crafting/BattlestaveMakePlugin.java index ef4386e63..6081eed76 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/BattlestaveMakePlugin.java +++ b/Server/src/main/content/global/skill/crafting/BattlestaveMakePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/ChiselLimestonePlugin.java b/Server/src/main/content/global/skill/crafting/ChiselLimestonePlugin.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/skill/crafting/ChiselLimestonePlugin.java rename to Server/src/main/content/global/skill/crafting/ChiselLimestonePlugin.java index 0f1724b0a..cf584b2b4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/ChiselLimestonePlugin.java +++ b/Server/src/main/content/global/skill/crafting/ChiselLimestonePlugin.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; -import core.game.node.entity.skill.crafting.limestone.ChiselLimestonePulse; +import content.global.skill.crafting.limestone.ChiselLimestonePulse; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/GemCutPlugin.java b/Server/src/main/content/global/skill/crafting/GemCutPlugin.java similarity index 82% rename from Server/src/main/java/core/game/node/entity/skill/crafting/GemCutPlugin.java rename to Server/src/main/content/global/skill/crafting/GemCutPlugin.java index 22dc62260..f848bacd5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/GemCutPlugin.java +++ b/Server/src/main/content/global/skill/crafting/GemCutPlugin.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import core.game.node.entity.skill.crafting.gem.GemCutPulse; -import core.game.node.entity.skill.crafting.gem.Gems; +import content.global.skill.crafting.gem.GemCutPulse; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; +import content.global.skill.crafting.gem.Gems; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/GlassProduct.java b/Server/src/main/content/global/skill/crafting/GlassProduct.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/GlassProduct.java rename to Server/src/main/content/global/skill/crafting/GlassProduct.java index fd9dd21da..125fb246a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/GlassProduct.java +++ b/Server/src/main/content/global/skill/crafting/GlassProduct.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; /** * Represents the glass product. diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/JewelleryCraftPlugin.java b/Server/src/main/content/global/skill/crafting/JewelleryCraftPlugin.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/skill/crafting/JewelleryCraftPlugin.java rename to Server/src/main/content/global/skill/crafting/JewelleryCraftPlugin.java index 5ea7d4714..72d19ef46 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/JewelleryCraftPlugin.java +++ b/Server/src/main/content/global/skill/crafting/JewelleryCraftPlugin.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.plugin.Initializable; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting; +import content.global.skill.crafting.jewellery.JewelleryCrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/dialogue/LeatherCraftDialogue.java b/Server/src/main/content/global/skill/crafting/LeatherCraftDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/LeatherCraftDialogue.java rename to Server/src/main/content/global/skill/crafting/LeatherCraftDialogue.java index c299ab36e..2a6086ac8 100644 --- a/Server/src/main/java/core/game/content/dialogue/LeatherCraftDialogue.java +++ b/Server/src/main/content/global/skill/crafting/LeatherCraftDialogue.java @@ -1,16 +1,15 @@ -package core.game.content.dialogue; +package content.global.skill.crafting; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import kotlin.Unit; -import rs09.game.system.SystemLogger; -import core.game.node.entity.skill.crafting.armour.DragonCraftPulse; -import core.game.node.entity.skill.crafting.armour.HardCraftPulse; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting.DragonHide; +import content.global.skill.crafting.armour.DragonCraftPulse; +import content.global.skill.crafting.armour.HardCraftPulse; +import content.global.skill.crafting.armour.LeatherCrafting; +import content.global.skill.crafting.armour.LeatherCrafting.DragonHide; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.plugin.Initializable; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/MoltenGlassMakePlugin.java b/Server/src/main/content/global/skill/crafting/MoltenGlassMakePlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/crafting/MoltenGlassMakePlugin.java rename to Server/src/main/content/global/skill/crafting/MoltenGlassMakePlugin.java index 0714862d1..37f25628c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/MoltenGlassMakePlugin.java +++ b/Server/src/main/content/global/skill/crafting/MoltenGlassMakePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.plugin.Initializable; import core.game.node.entity.skill.SkillPulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/PotteryPlugin.java b/Server/src/main/content/global/skill/crafting/PotteryPlugin.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/crafting/PotteryPlugin.java rename to Server/src/main/content/global/skill/crafting/PotteryPlugin.java index ac4af460b..f7fa44e3a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/PotteryPlugin.java +++ b/Server/src/main/content/global/skill/crafting/PotteryPlugin.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; +import content.global.skill.crafting.pottery.FirePotteryPulse; +import content.global.skill.crafting.pottery.PotteryItem; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import core.game.node.entity.skill.crafting.pottery.FirePotteryPulse; -import core.game.node.entity.skill.crafting.pottery.PotteryItem; -import core.game.node.entity.skill.crafting.pottery.PotteryPulse; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; +import content.global.skill.crafting.pottery.PotteryPulse; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/SnakeSkinPlugin.java b/Server/src/main/content/global/skill/crafting/SnakeSkinPlugin.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/crafting/SnakeSkinPlugin.java rename to Server/src/main/content/global/skill/crafting/SnakeSkinPlugin.java index 78b409649..f4929248e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/SnakeSkinPlugin.java +++ b/Server/src/main/content/global/skill/crafting/SnakeSkinPlugin.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; +import content.global.skill.crafting.armour.SnakeSkin; +import content.global.skill.crafting.armour.SnakeSkinPulse; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import core.game.node.entity.skill.crafting.armour.SnakeSkin; -import core.game.node.entity.skill.crafting.armour.SnakeSkinPulse; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/SnelmCraftPlugin.java b/Server/src/main/content/global/skill/crafting/SnelmCraftPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/crafting/SnelmCraftPlugin.java rename to Server/src/main/content/global/skill/crafting/SnelmCraftPlugin.java index 3ea63cca4..1b1335c1c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/SnelmCraftPlugin.java +++ b/Server/src/main/content/global/skill/crafting/SnelmCraftPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.plugin.Initializable; import core.game.node.entity.skill.SkillPulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/StitchCraftPlugin.java b/Server/src/main/content/global/skill/crafting/StitchCraftPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/crafting/StitchCraftPlugin.java rename to Server/src/main/content/global/skill/crafting/StitchCraftPlugin.java index 0c5ccc05d..973710e3b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/StitchCraftPlugin.java +++ b/Server/src/main/content/global/skill/crafting/StitchCraftPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.game.component.Component; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/StuddedArmourPlugin.java b/Server/src/main/content/global/skill/crafting/StuddedArmourPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/StuddedArmourPlugin.java rename to Server/src/main/content/global/skill/crafting/StuddedArmourPlugin.java index b8f1e3526..b0a0d189e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/StuddedArmourPlugin.java +++ b/Server/src/main/content/global/skill/crafting/StuddedArmourPlugin.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/TanningProduct.java b/Server/src/main/content/global/skill/crafting/TanningProduct.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/crafting/TanningProduct.java rename to Server/src/main/content/global/skill/crafting/TanningProduct.java index 7f611672d..e71f370b6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/TanningProduct.java +++ b/Server/src/main/content/global/skill/crafting/TanningProduct.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java b/Server/src/main/content/global/skill/crafting/WeaveOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java rename to Server/src/main/content/global/skill/crafting/WeaveOptionPlugin.java index 40594940b..4307d4599 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java +++ b/Server/src/main/content/global/skill/crafting/WeaveOptionPlugin.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.crafting; +package content.global.skill.crafting; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.player.link.diary.DiaryType; import core.game.world.map.Location; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/DragonCraftPulse.java b/Server/src/main/content/global/skill/crafting/armour/DragonCraftPulse.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/DragonCraftPulse.java rename to Server/src/main/content/global/skill/crafting/armour/DragonCraftPulse.java index 87ea0a5f6..bc8022884 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/DragonCraftPulse.java +++ b/Server/src/main/content/global/skill/crafting/armour/DragonCraftPulse.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting.DragonHide; +import content.global.skill.crafting.armour.LeatherCrafting.DragonHide; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/HardCraftPulse.java b/Server/src/main/content/global/skill/crafting/armour/HardCraftPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/HardCraftPulse.java rename to Server/src/main/content/global/skill/crafting/armour/HardCraftPulse.java index 403007da0..4d02be91c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/HardCraftPulse.java +++ b/Server/src/main/content/global/skill/crafting/armour/HardCraftPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/LeatherCrafting.java b/Server/src/main/content/global/skill/crafting/armour/LeatherCrafting.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/LeatherCrafting.java rename to Server/src/main/content/global/skill/crafting/armour/LeatherCrafting.java index a6aa2f6e8..2767fbc65 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/LeatherCrafting.java +++ b/Server/src/main/content/global/skill/crafting/armour/LeatherCrafting.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.game.component.Component; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkin.java b/Server/src/main/content/global/skill/crafting/armour/SnakeSkin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkin.java rename to Server/src/main/content/global/skill/crafting/armour/SnakeSkin.java index 6cdb26e7f..c4468d234 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkin.java +++ b/Server/src/main/content/global/skill/crafting/armour/SnakeSkin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkinPulse.java b/Server/src/main/content/global/skill/crafting/armour/SnakeSkinPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkinPulse.java rename to Server/src/main/content/global/skill/crafting/armour/SnakeSkinPulse.java index 77ccc2d5e..a851caaf6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SnakeSkinPulse.java +++ b/Server/src/main/content/global/skill/crafting/armour/SnakeSkinPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SoftCraftPulse.java b/Server/src/main/content/global/skill/crafting/armour/SoftCraftPulse.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/skill/crafting/armour/SoftCraftPulse.java rename to Server/src/main/content/global/skill/crafting/armour/SoftCraftPulse.java index ef26db15b..2d62c165a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/armour/SoftCraftPulse.java +++ b/Server/src/main/content/global/skill/crafting/armour/SoftCraftPulse.java @@ -1,8 +1,7 @@ -package core.game.node.entity.skill.crafting.armour; +package content.global.skill.crafting.armour; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting.SoftLeather; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; @@ -23,7 +22,7 @@ public final class SoftCraftPulse extends SkillPulse { /** * Represents the leather to use. */ - private SoftLeather soft; + private LeatherCrafting.SoftLeather soft; /** * Represents the amount to make. @@ -42,7 +41,7 @@ public final class SoftCraftPulse extends SkillPulse { * @param leather the soft. * @param amount the amount. */ - public SoftCraftPulse(Player player, Item node, SoftLeather leather, int amount) { + public SoftCraftPulse(Player player, Item node, LeatherCrafting.SoftLeather leather, int amount) { super(player, node); this.soft = leather; this.amount = amount; @@ -82,7 +81,7 @@ public final class SoftCraftPulse extends SkillPulse { return false; } if (player.getInventory().remove(new Item(LeatherCrafting.LEATHER))) { - if (soft == SoftLeather.GLOVES || soft == SoftLeather.BOOTS || soft == SoftLeather.VAMBRACES) { + if (soft == LeatherCrafting.SoftLeather.GLOVES || soft == LeatherCrafting.SoftLeather.BOOTS || soft == LeatherCrafting.SoftLeather.VAMBRACES) { player.getPacketDispatch().sendMessage("You make a pair of " + soft.getProduct().getName().toLowerCase() + "."); } else { player.getPacketDispatch().sendMessage("You make " + (StringUtils.isPlusN(soft.getProduct().getName()) ? "an " : "a ") + soft.getProduct().getName().toLowerCase() + "."); @@ -95,7 +94,7 @@ public final class SoftCraftPulse extends SkillPulse { LeatherCrafting.removeThread(player); } - if (soft == SoftLeather.GLOVES) { + if (soft == LeatherCrafting.SoftLeather.GLOVES) { player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 1, 3); } } diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/gem/GemCutPulse.java b/Server/src/main/content/global/skill/crafting/gem/GemCutPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/gem/GemCutPulse.java rename to Server/src/main/content/global/skill/crafting/gem/GemCutPulse.java index 206a09851..123687c50 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/gem/GemCutPulse.java +++ b/Server/src/main/content/global/skill/crafting/gem/GemCutPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.gem; +package content.global.skill.crafting.gem; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/gem/Gems.java b/Server/src/main/content/global/skill/crafting/gem/Gems.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/gem/Gems.java rename to Server/src/main/content/global/skill/crafting/gem/Gems.java index 005f5d578..0d0198159 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/gem/Gems.java +++ b/Server/src/main/content/global/skill/crafting/gem/Gems.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.gem; +package content.global.skill.crafting.gem; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryCrafting.java b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryCrafting.java rename to Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java index 3a087d50f..37304e77d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryCrafting.java +++ b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryCrafting.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.jewellery; +package content.global.skill.crafting.jewellery; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryPulse.java b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryPulse.java rename to Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java index 12689fb8d..2959e1402 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/jewellery/JewelleryPulse.java +++ b/Server/src/main/content/global/skill/crafting/jewellery/JewelleryPulse.java @@ -1,8 +1,7 @@ -package core.game.node.entity.skill.crafting.jewellery; +package content.global.skill.crafting.jewellery; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting.JewelleryItem; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; @@ -21,7 +20,7 @@ public final class JewelleryPulse extends SkillPulse { /** * Represents the data of jewellery. */ - private JewelleryItem type; + private JewelleryCrafting.JewelleryItem type; /** * Represents the amount to make. @@ -38,7 +37,7 @@ public final class JewelleryPulse extends SkillPulse { * @param player the player. * @param node the node. */ - public JewelleryPulse(Player player, Item node, JewelleryItem data, int amount) { + public JewelleryPulse(Player player, Item node, JewelleryCrafting.JewelleryItem data, int amount) { super(player, node); this.type = data; this.amount = amount; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/leather/SpikyVambraces.kt b/Server/src/main/content/global/skill/crafting/leather/SpikyVambraces.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/leather/SpikyVambraces.kt rename to Server/src/main/content/global/skill/crafting/leather/SpikyVambraces.kt index 5fbb82940..764674412 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/leather/SpikyVambraces.kt +++ b/Server/src/main/content/global/skill/crafting/leather/SpikyVambraces.kt @@ -1,7 +1,7 @@ -package rs09.game.node.entity.skill.crafting.leather +package content.global.skill.crafting.leather -import api.Container -import api.* +import core.api.Container +import core.api.* import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LanternCrafting.kt b/Server/src/main/content/global/skill/crafting/lightsources/LanternCrafting.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LanternCrafting.kt rename to Server/src/main/content/global/skill/crafting/lightsources/LanternCrafting.kt index 196292cbb..13daf97f6 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LanternCrafting.kt +++ b/Server/src/main/content/global/skill/crafting/lightsources/LanternCrafting.kt @@ -1,97 +1,97 @@ -package rs09.game.node.entity.skill.crafting.lightsources - -import core.game.interaction.NodeUsageEvent -import core.game.interaction.UseWithHandler -import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.plugin.Initializable -import core.plugin.Plugin - -/** - * Handles the combining of items to craft lanterns - * @author Ceikry - */ -@Initializable -class LanternCrafting : UseWithHandler(36,38,4525,4542,1607){ - /** - * For candle lanterns -> Glassblowing produces 4527 - * 4527 + white candle = 4529 - * 4527 + black candle = 4532 - * - * For oil lanterns -> Glassblowing produces 4525 - * 4525 + 4540 (oil lantern frame) = 4535 (empty oil lantern) - * - * For Bullseye lanterns -> Smithing produces 4544 (bullseye lantern (unf)) - * 4544 + Lens(4542) -> 4546 - * 4544 + Sapphire(1607) -> 4700 (Sapphire lantern) - */ - override fun newInstance(arg: Any?): Plugin { - addHandler(4527, ITEM_TYPE, this) //Empty candle lantern - addHandler(4540, ITEM_TYPE,this) //oil lantern frame - addHandler(4544, ITEM_TYPE,this) //Bullseye lantern(unf) - return this - } - - override fun handle(event: NodeUsageEvent?): Boolean { - event ?: return false //if event is null don't execute - val used = event.used - return when(used.id){ - 4527 -> craftCandleLantern(event.player,event) - 4540 -> craftOilLantern(event.player,event) - 4544 -> craftBullseyeLantern(event.player,event) - else -> false - } - } - - private fun craftCandleLantern(player: Player, event: NodeUsageEvent): Boolean{ - return when(event.usedWith.id){ - 36,38 -> { - removeEventItems(player,event) - player.inventory.add( if(event.usedWith.id == 36) Item(4529) else Item(4532)) - player.sendMessage("You place the unlit candle inside the lantern.") - true - } - else -> false - } - } - - private fun craftOilLantern(player: Player, event: NodeUsageEvent): Boolean { - return when(event.usedWith.id){ - 4525 -> { - removeEventItems(player,event) - player.inventory.add(Item(4535)) - player.sendMessage("You place the oil lamp inside its metal frame.") - true - } - else -> false - } - } - - private fun craftBullseyeLantern(player: Player,event: NodeUsageEvent): Boolean{ - return when(event.usedWith.id){ - 4542 -> { - removeEventItems(player,event) - player.inventory.add( Item(4546) ) - player.sendMessage("You fashion the lens onto the lantern.") - true - } - 1607 -> { - if(player.skills.getLevel(Skills.CRAFTING) >= 20){ - removeEventItems(player,event) - player.inventory.add(Item(4700)) - player.sendMessage("You fashion the gem into a lens and fit it onto the lantern.") - } else { - player.sendMessage("You require a crafting level of 20 to use a gem as a lens.") - } - true - } - else -> false - } - } - - private fun removeEventItems(player: Player, event: NodeUsageEvent){ - player.inventory.remove(event.used.asItem()) - player.inventory.remove(event.usedWith.asItem()) - } +package content.global.skill.crafting.lightsources + +import core.game.interaction.NodeUsageEvent +import core.game.interaction.UseWithHandler +import core.game.node.entity.player.Player +import core.game.node.entity.skill.Skills +import core.game.node.item.Item +import core.plugin.Initializable +import core.plugin.Plugin + +/** + * Handles the combining of items to craft lanterns + * @author Ceikry + */ +@Initializable +class LanternCrafting : UseWithHandler(36,38,4525,4542,1607){ + /** + * For candle lanterns -> Glassblowing produces 4527 + * 4527 + white candle = 4529 + * 4527 + black candle = 4532 + * + * For oil lanterns -> Glassblowing produces 4525 + * 4525 + 4540 (oil lantern frame) = 4535 (empty oil lantern) + * + * For Bullseye lanterns -> Smithing produces 4544 (bullseye lantern (unf)) + * 4544 + Lens(4542) -> 4546 + * 4544 + Sapphire(1607) -> 4700 (Sapphire lantern) + */ + override fun newInstance(arg: Any?): Plugin { + addHandler(4527, ITEM_TYPE, this) //Empty candle lantern + addHandler(4540, ITEM_TYPE,this) //oil lantern frame + addHandler(4544, ITEM_TYPE,this) //Bullseye lantern(unf) + return this + } + + override fun handle(event: NodeUsageEvent?): Boolean { + event ?: return false //if event is null don't execute + val used = event.used + return when(used.id){ + 4527 -> craftCandleLantern(event.player,event) + 4540 -> craftOilLantern(event.player,event) + 4544 -> craftBullseyeLantern(event.player,event) + else -> false + } + } + + private fun craftCandleLantern(player: Player, event: NodeUsageEvent): Boolean{ + return when(event.usedWith.id){ + 36,38 -> { + removeEventItems(player,event) + player.inventory.add( if(event.usedWith.id == 36) Item(4529) else Item(4532)) + player.sendMessage("You place the unlit candle inside the lantern.") + true + } + else -> false + } + } + + private fun craftOilLantern(player: Player, event: NodeUsageEvent): Boolean { + return when(event.usedWith.id){ + 4525 -> { + removeEventItems(player,event) + player.inventory.add(Item(4535)) + player.sendMessage("You place the oil lamp inside its metal frame.") + true + } + else -> false + } + } + + private fun craftBullseyeLantern(player: Player,event: NodeUsageEvent): Boolean{ + return when(event.usedWith.id){ + 4542 -> { + removeEventItems(player,event) + player.inventory.add( Item(4546) ) + player.sendMessage("You fashion the lens onto the lantern.") + true + } + 1607 -> { + if(player.skills.getLevel(Skills.CRAFTING) >= 20){ + removeEventItems(player,event) + player.inventory.add(Item(4700)) + player.sendMessage("You fashion the gem into a lens and fit it onto the lantern.") + } else { + player.sendMessage("You require a crafting level of 20 to use a gem as a lens.") + } + true + } + else -> false + } + } + + private fun removeEventItems(player: Player, event: NodeUsageEvent){ + player.inventory.remove(event.used.asItem()) + player.inventory.remove(event.usedWith.asItem()) + } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceExtinguisher.kt b/Server/src/main/content/global/skill/crafting/lightsources/LightSourceExtinguisher.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceExtinguisher.kt rename to Server/src/main/content/global/skill/crafting/lightsources/LightSourceExtinguisher.kt index 41c17cc12..d42a1a08b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceExtinguisher.kt +++ b/Server/src/main/content/global/skill/crafting/lightsources/LightSourceExtinguisher.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.crafting.lightsources +package content.global.skill.crafting.lightsources import core.cache.def.impl.ItemDefinition import core.game.container.Container @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player import core.game.node.item.Item -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceLighter.kt b/Server/src/main/content/global/skill/crafting/lightsources/LightSourceLighter.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceLighter.kt rename to Server/src/main/content/global/skill/crafting/lightsources/LightSourceLighter.kt index 06217efe2..d1e1bb009 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSourceLighter.kt +++ b/Server/src/main/content/global/skill/crafting/lightsources/LightSourceLighter.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.crafting.lightsources +package content.global.skill.crafting.lightsources import core.game.container.Container import core.game.interaction.NodeUsageEvent diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSources.kt b/Server/src/main/content/global/skill/crafting/lightsources/LightSources.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSources.kt rename to Server/src/main/content/global/skill/crafting/lightsources/LightSources.kt index 6cfeb369c..2c528dd7d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/lightsources/LightSources.kt +++ b/Server/src/main/content/global/skill/crafting/lightsources/LightSources.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.crafting.lightsources +package content.global.skill.crafting.lightsources enum class LightSources(val emptyID: Int, val fullID: Int, val litID: Int, val levelRequired: Int, val openFlame: Boolean) { WHITE_CANDLE(0,36,33,0,true), diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/limestone/ChiselLimestonePulse.java b/Server/src/main/content/global/skill/crafting/limestone/ChiselLimestonePulse.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/crafting/limestone/ChiselLimestonePulse.java rename to Server/src/main/content/global/skill/crafting/limestone/ChiselLimestonePulse.java index d711115da..62333f0d6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/limestone/ChiselLimestonePulse.java +++ b/Server/src/main/content/global/skill/crafting/limestone/ChiselLimestonePulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.limestone; +package content.global.skill.crafting.limestone; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/FirePotteryPulse.java b/Server/src/main/content/global/skill/crafting/pottery/FirePotteryPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/crafting/pottery/FirePotteryPulse.java rename to Server/src/main/content/global/skill/crafting/pottery/FirePotteryPulse.java index 38c8f424f..e7af471ef 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/FirePotteryPulse.java +++ b/Server/src/main/content/global/skill/crafting/pottery/FirePotteryPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.pottery; +package content.global.skill.crafting.pottery; import core.game.world.map.Location; import core.game.node.entity.skill.SkillPulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryItem.java b/Server/src/main/content/global/skill/crafting/pottery/PotteryItem.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryItem.java rename to Server/src/main/content/global/skill/crafting/pottery/PotteryItem.java index 649bea561..6eafb8f96 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryItem.java +++ b/Server/src/main/content/global/skill/crafting/pottery/PotteryItem.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.pottery; +package content.global.skill.crafting.pottery; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryPulse.java b/Server/src/main/content/global/skill/crafting/pottery/PotteryPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryPulse.java rename to Server/src/main/content/global/skill/crafting/pottery/PotteryPulse.java index f448caa33..c9cbe0ca3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/pottery/PotteryPulse.java +++ b/Server/src/main/content/global/skill/crafting/pottery/PotteryPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.pottery; +package content.global.skill.crafting.pottery; import core.game.world.map.Location; import core.game.node.entity.skill.SkillPulse; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingListener.kt b/Server/src/main/content/global/skill/crafting/silver/SilverCraftingListener.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingListener.kt rename to Server/src/main/content/global/skill/crafting/silver/SilverCraftingListener.kt index 63979f418..346b61b3e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingListener.kt +++ b/Server/src/main/content/global/skill/crafting/silver/SilverCraftingListener.kt @@ -1,14 +1,14 @@ -package rs09.game.node.entity.skill.crafting.silver +package content.global.skill.crafting.silver -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InterfaceListener import core.game.node.scenery.Scenery as CoreScenery diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingPulse.kt b/Server/src/main/content/global/skill/crafting/silver/SilverCraftingPulse.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingPulse.kt rename to Server/src/main/content/global/skill/crafting/silver/SilverCraftingPulse.kt index 1f6795cd7..81328adad 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverCraftingPulse.kt +++ b/Server/src/main/content/global/skill/crafting/silver/SilverCraftingPulse.kt @@ -1,7 +1,7 @@ -package rs09.game.node.entity.skill.crafting.silver +package content.global.skill.crafting.silver -import api.* -import api.events.ResourceProducedEvent +import core.api.* +import core.game.event.ResourceProducedEvent import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.scenery.Scenery diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverProduct.kt b/Server/src/main/content/global/skill/crafting/silver/SilverProduct.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverProduct.kt rename to Server/src/main/content/global/skill/crafting/silver/SilverProduct.kt index 84984a7d7..83becbf16 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverProduct.kt +++ b/Server/src/main/content/global/skill/crafting/silver/SilverProduct.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.crafting.silver +package content.global.skill.crafting.silver import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverStringingListener.kt b/Server/src/main/content/global/skill/crafting/silver/SilverStringingListener.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverStringingListener.kt rename to Server/src/main/content/global/skill/crafting/silver/SilverStringingListener.kt index 1cdc72288..591dc42c2 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/crafting/silver/SilverStringingListener.kt +++ b/Server/src/main/content/global/skill/crafting/silver/SilverStringingListener.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill.crafting.silver +package content.global.skill.crafting.silver -import api.addItem -import api.removeItem +import core.api.addItem +import core.api.removeItem import core.game.node.Node import core.game.node.entity.player.Player import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles ball of wool <-> stringable silver items interaction. diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningItem.java b/Server/src/main/content/global/skill/crafting/spinning/SpinningItem.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningItem.java rename to Server/src/main/content/global/skill/crafting/spinning/SpinningItem.java index c1af625ad..27e561db8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningItem.java +++ b/Server/src/main/content/global/skill/crafting/spinning/SpinningItem.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.spinning; +package content.global.skill.crafting.spinning; /** * Represents an item to be spinned. diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningPulse.java b/Server/src/main/content/global/skill/crafting/spinning/SpinningPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningPulse.java rename to Server/src/main/content/global/skill/crafting/spinning/SpinningPulse.java index e1265f537..541f68761 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/spinning/SpinningPulse.java +++ b/Server/src/main/content/global/skill/crafting/spinning/SpinningPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.crafting.spinning; +package content.global.skill.crafting.spinning; import core.cache.def.impl.ItemDefinition; import core.game.container.impl.EquipmentContainer; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/BasketsAndSacks.kt b/Server/src/main/content/global/skill/farming/BasketsAndSacks.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/BasketsAndSacks.kt rename to Server/src/main/content/global/skill/farming/BasketsAndSacks.kt index 8ad542e66..904915b32 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/BasketsAndSacks.kt +++ b/Server/src/main/content/global/skill/farming/BasketsAndSacks.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBin.kt b/Server/src/main/content/global/skill/farming/CompostBin.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBin.kt rename to Server/src/main/content/global/skill/farming/CompostBin.kt index 1a416e0aa..7345bde62 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBin.kt +++ b/Server/src/main/content/global/skill/farming/CompostBin.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.skill.Skills @@ -9,7 +9,6 @@ import core.tools.RandomFunction import org.json.simple.JSONArray import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.game.system.SystemLogger import java.util.concurrent.TimeUnit class CompostBin(val player: Player, val bin: CompostBins) { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBinOptionHandler.kt b/Server/src/main/content/global/skill/farming/CompostBinOptionHandler.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBinOptionHandler.kt rename to Server/src/main/content/global/skill/farming/CompostBinOptionHandler.kt index 3523a64c2..88ff95986 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBinOptionHandler.kt +++ b/Server/src/main/content/global/skill/farming/CompostBinOptionHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt b/Server/src/main/content/global/skill/farming/CompostBins.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt rename to Server/src/main/content/global/skill/farming/CompostBins.kt index bd9b5431a..60e0393e9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt +++ b/Server/src/main/content/global/skill/farming/CompostBins.kt @@ -1,10 +1,9 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -import rs09.game.node.entity.state.newsys.states.FarmingState enum class CompostBins(val varpIndex: Int, val varpOffest: Int) { FALADOR_COMPOST(511,0), diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostType.kt b/Server/src/main/content/global/skill/farming/CompostType.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostType.kt rename to Server/src/main/content/global/skill/farming/CompostType.kt index 1658735dc..5d19c40c2 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostType.kt +++ b/Server/src/main/content/global/skill/farming/CompostType.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming enum class CompostType { NONE, diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt b/Server/src/main/content/global/skill/farming/CropHarvester.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt rename to Server/src/main/content/global/skill/farming/CropHarvester.kt index f64b759a1..3c9dff538 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CropHarvester.kt +++ b/Server/src/main/content/global/skill/farming/CropHarvester.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler import core.game.node.Node -import core.game.node.entity.npc.familiar.GiantEntNPC +import content.global.skill.summoning.familiar.GiantEntNPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.skill.Skills @@ -13,7 +13,6 @@ import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin -import core.tools.RandomFunction import org.rs09.consts.Items val livesBased = arrayOf(PatchType.HERB, PatchType.CACTUS, PatchType.BELLADONNA, PatchType.HOPS, PatchType.ALLOTMENT,PatchType.EVIL_TURNIP) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/DigUpPatchDialogue.kt b/Server/src/main/content/global/skill/farming/DigUpPatchDialogue.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/DigUpPatchDialogue.kt rename to Server/src/main/content/global/skill/farming/DigUpPatchDialogue.kt index e36c8c4fa..e3bf56d79 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/DigUpPatchDialogue.kt +++ b/Server/src/main/content/global/skill/farming/DigUpPatchDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio import core.game.node.item.GroundItemManager @@ -10,10 +10,10 @@ import core.game.world.update.flag.context.Animation import core.plugin.Initializable @Initializable -class DigUpPatchDialogue(player: Player? = null) : DialoguePlugin(player) { +class DigUpPatchDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var patch: Patch? = null - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DigUpPatchDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionDialogue.kt b/Server/src/main/content/global/skill/farming/FarmerPayOptionDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionDialogue.kt rename to Server/src/main/content/global/skill/farming/FarmerPayOptionDialogue.kt index d3f0c4903..eeb8903f5 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionDialogue.kt +++ b/Server/src/main/content/global/skill/farming/FarmerPayOptionDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class FarmerPayOptionDialogue(val patch: Patch): DialogueFile() { var item: Item? = null diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionHandler.kt b/Server/src/main/content/global/skill/farming/FarmerPayOptionHandler.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionHandler.kt rename to Server/src/main/content/global/skill/farming/FarmerPayOptionHandler.kt index 623fe867f..724ce6c73 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmerPayOptionHandler.kt +++ b/Server/src/main/content/global/skill/farming/FarmerPayOptionHandler.kt @@ -1,18 +1,18 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.game.node.Node import core.game.node.entity.player.Player -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class FarmerPayOptionHandler : InteractionListener { override fun defineListeners() { - on(IntType.NPC,"pay","pay (north)","pay (north-west)"){player,node -> + on(IntType.NPC,"pay","pay (north)","pay (north-west)"){ player, node -> return@on attemptPay(player,node,0) } - on(IntType.NPC,"pay (south)","pay (south-east)"){player,node -> + on(IntType.NPC,"pay (south)","pay (south-east)"){ player, node -> return@on attemptPay(player,node,1) } } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Farmers.kt b/Server/src/main/content/global/skill/farming/Farmers.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Farmers.kt rename to Server/src/main/content/global/skill/farming/Farmers.kt index fc154d0e9..4a57feeef 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Farmers.kt +++ b/Server/src/main/content/global/skill/farming/Farmers.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming enum class Farmers(val id: Int, val patches: Array) { LYRA(2326, arrayOf(FarmingPatch.PORT_PHAS_ALLOTMENT_NW,FarmingPatch.PORT_PHAS_ALLOTMENT_SE)), diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt b/Server/src/main/content/global/skill/farming/FarmingPatch.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt rename to Server/src/main/content/global/skill/farming/FarmingPatch.kt index adfc2e2d7..e6ab30f5e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt +++ b/Server/src/main/content/global/skill/farming/FarmingPatch.kt @@ -1,10 +1,9 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition import core.game.node.scenery.Scenery import core.game.node.entity.player.Player -import rs09.game.node.entity.state.newsys.states.FarmingState enum class FarmingPatch(val varpIndex: Int, val varpOffset: Int, val type: PatchType) { //Allotments diff --git a/Server/src/main/kotlin/rs09/game/content/zone/FarmingPatchZone.kt b/Server/src/main/content/global/skill/farming/FarmingPatchZone.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/content/zone/FarmingPatchZone.kt rename to Server/src/main/content/global/skill/farming/FarmingPatchZone.kt index 92ac0c0a7..05fd37f31 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/FarmingPatchZone.kt +++ b/Server/src/main/content/global/skill/farming/FarmingPatchZone.kt @@ -1,14 +1,14 @@ -package rs09.game.content.zone +package content.global.skill.farming -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.FacialExpression import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.world.map.zone.ZoneBorders import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile +import core.game.dialogue.DialogueFile class FarmingPatchZone : MapArea, TickListener { private val playersInZone = hashMapOf() @@ -59,8 +59,8 @@ class FarmingPatchZone : MapArea, TickListener { override fun handle(componentID: Int, buttonID: Int) { when(stage){ 0 -> { - if(is5) npcl(FacialExpression.NEUTRAL, "In case you didn't know, you don't have to stand by your Farming patch. Your crops will grow even if you're not around.").also { stage++ } - else npcl(FacialExpression.NEUTRAL, " Did you know that if your Farming patch has fully grown, it will never catch disease or die? It will be perfectly safe until you choose to harvest it.").also { stage++ } + if(is5) npcl(core.game.dialogue.FacialExpression.NEUTRAL, "In case you didn't know, you don't have to stand by your Farming patch. Your crops will grow even if you're not around.").also { stage++ } + else npcl(core.game.dialogue.FacialExpression.NEUTRAL, " Did you know that if your Farming patch has fully grown, it will never catch disease or die? It will be perfectly safe until you choose to harvest it.").also { stage++ } } 1 -> end() } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/FarmingState.kt b/Server/src/main/content/global/skill/farming/FarmingState.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/FarmingState.kt rename to Server/src/main/content/global/skill/farming/FarmingState.kt index 1784eae2c..03cf0c2a2 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/FarmingState.kt +++ b/Server/src/main/content/global/skill/farming/FarmingState.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.skill.farming import core.Util.clamp import core.game.node.entity.player.Player @@ -7,10 +7,9 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.game.node.entity.skill.farming.* -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State -import rs09.game.system.SystemLogger +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State +import core.tools.SystemLogger import java.util.concurrent.TimeUnit @PlayerState("farming") diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FruitAndBerryPicker.kt b/Server/src/main/content/global/skill/farming/FruitAndBerryPicker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FruitAndBerryPicker.kt rename to Server/src/main/content/global/skill/farming/FruitAndBerryPicker.kt index 32e12e5fd..10ae27787 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FruitAndBerryPicker.kt +++ b/Server/src/main/content/global/skill/farming/FruitAndBerryPicker.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler import core.game.node.Node -import core.game.node.entity.npc.familiar.GiantEntNPC +import content.global.skill.summoning.familiar.GiantEntNPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.item.Item diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/HealthChecker.kt b/Server/src/main/content/global/skill/farming/HealthChecker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/HealthChecker.kt rename to Server/src/main/content/global/skill/farming/HealthChecker.kt index 59dd3792d..990f6b167 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/HealthChecker.kt +++ b/Server/src/main/content/global/skill/farming/HealthChecker.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.plugin.Initializable import core.plugin.Plugin import java.util.concurrent.TimeUnit diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/InspectionHandler.kt b/Server/src/main/content/global/skill/farming/InspectionHandler.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/InspectionHandler.kt rename to Server/src/main/content/global/skill/farming/InspectionHandler.kt index 0253632cb..80bd06fe1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/InspectionHandler.kt +++ b/Server/src/main/content/global/skill/farming/InspectionHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/LeprechaunNoter.kt b/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/LeprechaunNoter.kt rename to Server/src/main/content/global/skill/farming/LeprechaunNoter.kt index ba26461b0..3a3d47bbf 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/LeprechaunNoter.kt +++ b/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt @@ -1,40 +1,37 @@ -package rs09.game.node.entity.skill.farming - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType - -class LeprechaunNoter : InteractionListener { - - val CROPS = Plantable.values().map{ it.harvestItem }.toIntArray() - val LEPRECHAUNS = intArrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861) - - override fun defineListeners() { - onUseWith(IntType.NPC,CROPS,*LEPRECHAUNS){player, used, with -> - val usedItem = used.asItem() - val npc = with.asNpc() - val expr = when(npc.id){ - 3021 -> FacialExpression.OLD_NORMAL - else -> FacialExpression.FRIENDLY - } - - if(usedItem.noteChange != usedItem.id){ - val amt = player.inventory.getAmount(usedItem.id) - if(player.inventory.remove(Item(usedItem.id,amt))){ - player.inventory.add(Item(usedItem.noteChange,amt)) - } - sendItemDialogue(player,usedItem.id,"The leprechaun exchanges your items for banknotes.") - } else { - // Unsure why the line below no longer functions, despite only changing the line above to be more correct. Using your note(NOT CROP) on the leprechaun no longer functions because of this. - Crash - player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!") - } - - return@onUseWith true - } - } +package content.global.skill.farming + +import core.api.* +import core.game.node.item.Item +import org.rs09.consts.NPCs +import core.game.interaction.InteractionListener +import core.game.interaction.IntType + +class LeprechaunNoter : InteractionListener { + + val CROPS = Plantable.values().map{ it.harvestItem }.toIntArray() + val LEPRECHAUNS = intArrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861) + + override fun defineListeners() { + onUseWith(IntType.NPC,CROPS,*LEPRECHAUNS){ player, used, with -> + val usedItem = used.asItem() + val npc = with.asNpc() + val expr = when(npc.id){ + 3021 -> core.game.dialogue.FacialExpression.OLD_NORMAL + else -> core.game.dialogue.FacialExpression.FRIENDLY + } + + if(usedItem.noteChange != usedItem.id){ + val amt = player.inventory.getAmount(usedItem.id) + if(player.inventory.remove(Item(usedItem.id,amt))){ + player.inventory.add(Item(usedItem.noteChange,amt)) + } + sendItemDialogue(player,usedItem.id,"The leprechaun exchanges your items for banknotes.") + } else { + // Unsure why the line below no longer functions, despite only changing the line above to be more correct. Using your note(NOT CROP) on the leprechaun no longer functions because of this. - Crash + player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!") + } + + return@onUseWith true + } + } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt b/Server/src/main/content/global/skill/farming/Patch.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt rename to Server/src/main/content/global/skill/farming/Patch.kt index fc1bc6f6c..c57cf4d03 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Patch.kt +++ b/Server/src/main/content/global/skill/farming/Patch.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.game.node.entity.player.Player import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.util.concurrent.TimeUnit import kotlin.math.ceil import kotlin.math.min diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchRaker.kt b/Server/src/main/content/global/skill/farming/PatchRaker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchRaker.kt rename to Server/src/main/content/global/skill/farming/PatchRaker.kt index e7a8f00c2..ee4641925 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchRaker.kt +++ b/Server/src/main/content/global/skill/farming/PatchRaker.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchType.kt b/Server/src/main/content/global/skill/farming/PatchType.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchType.kt rename to Server/src/main/content/global/skill/farming/PatchType.kt index 753de795e..20a76ee97 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/PatchType.kt +++ b/Server/src/main/content/global/skill/farming/PatchType.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming enum class PatchType(val stageGrowthTime: Int) { ALLOTMENT(10), diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Plantable.kt b/Server/src/main/content/global/skill/farming/Plantable.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Plantable.kt rename to Server/src/main/content/global/skill/farming/Plantable.kt index 4b3399ae4..8c006e9ea 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Plantable.kt +++ b/Server/src/main/content/global/skill/farming/Plantable.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.game.node.item.Item import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SackBasketOptionHandler.kt b/Server/src/main/content/global/skill/farming/SackBasketOptionHandler.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SackBasketOptionHandler.kt rename to Server/src/main/content/global/skill/farming/SackBasketOptionHandler.kt index cd193ca3f..ce7a4019a 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SackBasketOptionHandler.kt +++ b/Server/src/main/content/global/skill/farming/SackBasketOptionHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SeedOnPlantPot.kt b/Server/src/main/content/global/skill/farming/SeedOnPlantPot.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SeedOnPlantPot.kt rename to Server/src/main/content/global/skill/farming/SeedOnPlantPot.kt index 2b0bae94e..42d921dd9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/SeedOnPlantPot.kt +++ b/Server/src/main/content/global/skill/farming/SeedOnPlantPot.kt @@ -1,15 +1,14 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.addItem -import api.inInventory -import api.removeItem -import api.sendDialogue +import core.api.addItem +import core.api.inInventory +import core.api.removeItem +import core.api.sendDialogue import core.game.node.Node import core.game.node.entity.player.Player import org.rs09.consts.Items -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.node.entity.state.newsys.states.SeedlingState +import core.game.interaction.IntType +import core.game.interaction.InteractionListener class SeedlingListener : InteractionListener { override fun defineListeners() { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Seedling.kt b/Server/src/main/content/global/skill/farming/Seedling.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Seedling.kt rename to Server/src/main/content/global/skill/farming/Seedling.kt index ae9c98994..a2e8f7a09 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/Seedling.kt +++ b/Server/src/main/content/global/skill/farming/Seedling.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming class Seedling(val id: Int, val TTL: Long, val sapling: Int) { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SeedlingState.kt b/Server/src/main/content/global/skill/farming/SeedlingState.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SeedlingState.kt rename to Server/src/main/content/global/skill/farming/SeedlingState.kt index e6ba38ab3..8fb2877f0 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SeedlingState.kt +++ b/Server/src/main/content/global/skill/farming/SeedlingState.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.skill.farming import core.game.node.entity.player.Player import core.game.node.item.Item @@ -7,9 +7,8 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.game.node.entity.skill.farming.Seedling -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State import java.util.concurrent.TimeUnit @PlayerState("seedling") diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunHandler.kt b/Server/src/main/content/global/skill/farming/ToolLeprechaunHandler.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunHandler.kt rename to Server/src/main/content/global/skill/farming/ToolLeprechaunHandler.kt index fd2e480fa..d2338609b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunHandler.kt +++ b/Server/src/main/content/global/skill/farming/ToolLeprechaunHandler.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming import core.cache.def.impl.NPCDefinition import core.game.component.Component -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.npc.NPC @@ -11,7 +11,7 @@ import core.plugin.Initializable import core.plugin.Plugin import org.rs09.consts.Components import org.rs09.consts.NPCs -import rs09.game.content.activity.vinesweeper.Vinesweeper +import content.minigame.vinesweeper.Vinesweeper val TL_IDS = arrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861) @Initializable diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunInterface.kt b/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunInterface.kt rename to Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt index 5978653a8..ad68f4222 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/ToolLeprechaunInterface.kt +++ b/Server/src/main/content/global/skill/farming/ToolLeprechaunInterface.kt @@ -1,13 +1,12 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.* +import core.api.* import core.game.component.Component import core.game.node.entity.player.Player -import core.game.node.entity.player.link.RunScript import core.game.node.item.Item import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener private const val varp = 615 class ToolLeprechaunInterface : InterfaceListener { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithBinHandler.kt b/Server/src/main/content/global/skill/farming/UseWithBinHandler.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithBinHandler.kt rename to Server/src/main/content/global/skill/farming/UseWithBinHandler.kt index acdf67ba0..f3d5f7bbf 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithBinHandler.kt +++ b/Server/src/main/content/global/skill/farming/UseWithBinHandler.kt @@ -1,13 +1,12 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.toIntArray -import core.game.interaction.NodeUsageEvent +import core.api.toIntArray import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener class UseWithBinHandler : InteractionListener { @JvmField @@ -20,7 +19,7 @@ class UseWithBinHandler : InteractionListener { override fun defineListeners() { loadNodes() - onUseWith(IntType.SCENERY, allowedNodes.toIntArray(), *bins.toIntArray()) {player, usedNode, with -> + onUseWith(IntType.SCENERY, allowedNodes.toIntArray(), *bins.toIntArray()) { player, usedNode, with -> val cBin = CompostBins.forObject(with.asScenery()) ?: return@onUseWith true val bin = cBin.getBinForPlayer(player) val used = usedNode.id diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithPatchHandler.kt b/Server/src/main/content/global/skill/farming/UseWithPatchHandler.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithPatchHandler.kt rename to Server/src/main/content/global/skill/farming/UseWithPatchHandler.kt index 949fcee7c..bb2352078 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/UseWithPatchHandler.kt +++ b/Server/src/main/content/global/skill/farming/UseWithPatchHandler.kt @@ -1,17 +1,14 @@ -package rs09.game.node.entity.skill.farming +package content.global.skill.farming -import api.* -import core.game.interaction.NodeUsageEvent +import core.api.* import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.node.entity.skill.farming.CropHarvester +import core.game.interaction.IntType +import core.game.interaction.InteractionListener class UseWithPatchHandler : InteractionListener { val RAKE = Items.RAKE_5341 @@ -30,7 +27,7 @@ class UseWithPatchHandler : InteractionListener { override fun defineListeners() { loadNodes() - onUseWith(IntType.SCENERY, allowedNodes.toIntArray(), *patches.toIntArray()) {player, used, with -> + onUseWith(IntType.SCENERY, allowedNodes.toIntArray(), *patches.toIntArray()) { player, used, with -> val patch = FarmingPatch.forObject(with.asScenery()) ?: return@onUseWith true val usedItem = used.asItem() diff --git a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingOptionPlugin.kt b/Server/src/main/content/global/skill/firemaking/FireMakingOptionPlugin.kt similarity index 86% rename from Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingOptionPlugin.kt rename to Server/src/main/content/global/skill/firemaking/FireMakingOptionPlugin.kt index 0c7f80c47..76f745d01 100644 --- a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingOptionPlugin.kt +++ b/Server/src/main/content/global/skill/firemaking/FireMakingOptionPlugin.kt @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.firemaking +package content.global.skill.firemaking import core.game.node.item.GroundItem import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class FiremakingListener : InteractionListener { diff --git a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java b/Server/src/main/content/global/skill/firemaking/FireMakingPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java rename to Server/src/main/content/global/skill/firemaking/FireMakingPulse.java index 2a2f38c57..6da6f4327 100644 --- a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java +++ b/Server/src/main/content/global/skill/firemaking/FireMakingPulse.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.firemaking; +package content.global.skill.firemaking; -import api.events.LitFireEvent; +import core.game.event.LitFireEvent; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; @@ -9,7 +9,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.player.FaceLocationFlag; diff --git a/Server/src/main/java/core/game/node/entity/skill/firemaking/LightLogPlugin.java b/Server/src/main/content/global/skill/firemaking/LightLogPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/firemaking/LightLogPlugin.java rename to Server/src/main/content/global/skill/firemaking/LightLogPlugin.java index 11f9a0e95..db524a6b7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/firemaking/LightLogPlugin.java +++ b/Server/src/main/content/global/skill/firemaking/LightLogPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.firemaking; +package content.global.skill.firemaking; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/firemaking/Log.java b/Server/src/main/content/global/skill/firemaking/Log.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/firemaking/Log.java rename to Server/src/main/content/global/skill/firemaking/Log.java index 920ca0c5b..59c7b82cb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/firemaking/Log.java +++ b/Server/src/main/content/global/skill/firemaking/Log.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.firemaking; +package content.global.skill.firemaking; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/skill/fishing/Fish.java b/Server/src/main/content/global/skill/fishing/Fish.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/fishing/Fish.java rename to Server/src/main/content/global/skill/fishing/Fish.java index a776d948c..06bc90d74 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fishing/Fish.java +++ b/Server/src/main/content/global/skill/fishing/Fish.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fishing; +package content.global.skill.fishing; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fishing/FishSpots.java b/Server/src/main/content/global/skill/fishing/FishSpots.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/fishing/FishSpots.java rename to Server/src/main/content/global/skill/fishing/FishSpots.java index a4df9529c..65053463a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fishing/FishSpots.java +++ b/Server/src/main/content/global/skill/fishing/FishSpots.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fishing; +package content.global.skill.fishing; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/FishingNPC.java b/Server/src/main/content/global/skill/fishing/FishingNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/other/FishingNPC.java rename to Server/src/main/content/global/skill/fishing/FishingNPC.java index 88dcd7b75..e622667d0 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/FishingNPC.java +++ b/Server/src/main/content/global/skill/fishing/FishingNPC.java @@ -1,8 +1,7 @@ -package core.game.node.entity.npc.other; +package content.global.skill.fishing; -import core.game.node.entity.skill.fishing.FishSpots; import core.game.node.entity.npc.AbstractNPC; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/fishing/FishingOption.java b/Server/src/main/content/global/skill/fishing/FishingOption.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/fishing/FishingOption.java rename to Server/src/main/content/global/skill/fishing/FishingOption.java index d3897f6a7..b1652e64b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fishing/FishingOption.java +++ b/Server/src/main/content/global/skill/fishing/FishingOption.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fishing; +package content.global.skill.fishing; import core.game.container.Container; import core.game.node.entity.skill.Skills; @@ -9,7 +9,6 @@ import core.tools.RandomFunction; import org.rs09.consts.Items; import java.util.Arrays; -import java.util.Comparator; import java.util.HashMap; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/fishing/FishingSpot.java b/Server/src/main/content/global/skill/fishing/FishingSpot.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/fishing/FishingSpot.java rename to Server/src/main/content/global/skill/fishing/FishingSpot.java index a5c20788e..03fb8e437 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fishing/FishingSpot.java +++ b/Server/src/main/content/global/skill/fishing/FishingSpot.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fishing; +package content.global.skill.fishing; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/BoltCreatePlugin.java b/Server/src/main/content/global/skill/fletching/BoltCreatePlugin.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/fletching/BoltCreatePlugin.java rename to Server/src/main/content/global/skill/fletching/BoltCreatePlugin.java index 222f319a3..711e9b626 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/BoltCreatePlugin.java +++ b/Server/src/main/content/global/skill/fletching/BoltCreatePlugin.java @@ -1,8 +1,8 @@ /* package core.game.node.entity.skill.fletching; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.node.entity.skill.fletching.items.bolts.Bolt; import core.game.node.entity.skill.fletching.items.bolts.BoltPulse; import org.crandor.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/BoltGemPlugin.java b/Server/src/main/content/global/skill/fletching/BoltGemPlugin.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/fletching/BoltGemPlugin.java rename to Server/src/main/content/global/skill/fletching/BoltGemPlugin.java index 8867bf0b1..70c38b30a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/BoltGemPlugin.java +++ b/Server/src/main/content/global/skill/fletching/BoltGemPlugin.java @@ -1,7 +1,7 @@ //package core.game.node.entity.skill.fletching; // -//import rs09.game.content.dialogue.SkillDialogueHandler; -//import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +//import core.game.dialogue.SkillDialogueHandler; +//import core.game.dialogue.SkillDialogueHandler.SkillDialogue; //import core.game.node.entity.skill.fletching.items.gem.GemBolt; //import core.game.node.entity.skill.fletching.items.gem.GemBoltPulse; //import org.crandor.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/DartCreatePlugin.java b/Server/src/main/content/global/skill/fletching/DartCreatePlugin.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/DartCreatePlugin.java rename to Server/src/main/content/global/skill/fletching/DartCreatePlugin.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchItem.java b/Server/src/main/content/global/skill/fletching/FletchItem.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/FletchItem.java rename to Server/src/main/content/global/skill/fletching/FletchItem.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchType.java b/Server/src/main/content/global/skill/fletching/FletchType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/FletchType.java rename to Server/src/main/content/global/skill/fletching/FletchType.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/Fletching.java b/Server/src/main/content/global/skill/fletching/Fletching.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/fletching/Fletching.java rename to Server/src/main/content/global/skill/fletching/Fletching.java index 218f1293a..001bd1a82 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/Fletching.java +++ b/Server/src/main/content/global/skill/fletching/Fletching.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching; +package content.global.skill.fletching; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/FletchingListeners.kt b/Server/src/main/content/global/skill/fletching/FletchingListeners.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/FletchingListeners.kt rename to Server/src/main/content/global/skill/fletching/FletchingListeners.kt index 0bdb6f0e7..461df2d2c 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/FletchingListeners.kt +++ b/Server/src/main/content/global/skill/fletching/FletchingListeners.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.fletching +package content.global.skill.fletching import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.fletching.Fletching -import core.game.node.entity.skill.fletching.items.arrow.ArrowHeadPulse -import core.game.node.entity.skill.fletching.items.arrow.HeadlessArrowPulse -import core.game.node.entity.skill.fletching.items.bow.StringPulse -import core.game.node.entity.skill.fletching.items.crossbow.LimbPulse +import content.global.skill.fletching.Fletching +import content.global.skill.fletching.items.arrow.ArrowHeadPulse +import content.global.skill.fletching.items.arrow.HeadlessArrowPulse +import content.global.skill.fletching.items.bow.StringPulse +import content.global.skill.fletching.items.crossbow.LimbPulse import core.game.node.item.Item import core.net.packet.PacketRepository import core.net.packet.context.ChildPositionContext @@ -18,9 +18,9 @@ import org.rs09.consts.Items.ORANGE_FEATHER_10091 import org.rs09.consts.Items.RED_FEATHER_10088 import org.rs09.consts.Items.STRIPY_FEATHER_10087 import org.rs09.consts.Items.YELLOW_FEATHER_10090 -import rs09.game.content.dialogue.SkillDialogueHandler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.SkillDialogueHandler +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class FletchingListeners : InteractionListener { @@ -40,7 +40,7 @@ class FletchingListeners : InteractionListener { override fun defineListeners() { - onUseWith(IntType.ITEM,STRINGS,*UNSTRUNG_BOWS){player,string,bow -> + onUseWith(IntType.ITEM,STRINGS,*UNSTRUNG_BOWS){ player, string, bow -> val enum = Fletching.stringMap[bow.id] ?: return@onUseWith false if(enum.string != string.id){ player.sendMessage("That's not the right kind of string for this.") @@ -61,7 +61,7 @@ class FletchingListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM,ARROW_SHAFT,*FEATHERS){player,shaft,feather -> + onUseWith(IntType.ITEM,ARROW_SHAFT,*FEATHERS){ player, shaft, feather -> val handler: SkillDialogueHandler = object : SkillDialogueHandler(player, SkillDialogue.ONE_OPTION, Item(FLETCHED_SHAFT)) { override fun create(amount: Int, index: Int) { @@ -77,7 +77,7 @@ class FletchingListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM,FLETCHED_SHAFT,*UNFINISHED_ARROWS){player,shaft,unfinished -> + onUseWith(IntType.ITEM,FLETCHED_SHAFT,*UNFINISHED_ARROWS){ player, shaft, unfinished -> val head = Fletching.arrowHeadMap[unfinished.id] ?: return@onUseWith false val handler: SkillDialogueHandler = object : SkillDialogueHandler(player, SkillDialogue.ONE_OPTION, head.getFinished()) { @@ -94,7 +94,7 @@ class FletchingListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM,MITHRIL_BOLT,MITH_GRAPPLE_TIP){player,bolt,tip -> + onUseWith(IntType.ITEM,MITHRIL_BOLT,MITH_GRAPPLE_TIP){ player, bolt, tip -> if(player.skills.getLevel(Skills.FLETCHING) < 59){ player.sendMessage("You need a fletching level of 59 to make this.") return@onUseWith true @@ -105,7 +105,7 @@ class FletchingListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM,ROPE,MITH_GRAPPLE){player,rope,grapple -> + onUseWith(IntType.ITEM,ROPE,MITH_GRAPPLE){ player, rope, grapple -> if(player.skills.getLevel(Skills.FLETCHING) < 59){ player.sendMessage("You need a fletching level of 59 to make this.") return@onUseWith true @@ -116,7 +116,7 @@ class FletchingListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.ITEM,LIMBIDs,*STOCKIDs){player, limb, stock -> + onUseWith(IntType.ITEM,LIMBIDs,*STOCKIDs){ player, limb, stock -> val limbEnum = Fletching.limbMap[stock.id] ?: return@onUseWith false if(limbEnum.limb != limb.id){ player.sendMessage("That's not the right limb to attach to that stock.") diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPlugin.java b/Server/src/main/content/global/skill/fletching/FletchingPlugin.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPlugin.java rename to Server/src/main/content/global/skill/fletching/FletchingPlugin.java index aa5f13217..94d898bef 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPlugin.java +++ b/Server/src/main/content/global/skill/fletching/FletchingPlugin.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.fletching; +package content.global.skill.fletching; +import content.global.skill.fletching.items.bolts.BoltPulse; +import content.global.skill.fletching.items.darts.DartPulse; import org.rs09.consts.Items; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import core.game.node.entity.skill.fletching.items.bolts.BoltPulse; -import core.game.node.entity.skill.fletching.items.darts.DartPulse; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPulse.java b/Server/src/main/content/global/skill/fletching/FletchingPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPulse.java rename to Server/src/main/content/global/skill/fletching/FletchingPulse.java index 25444a17b..9c7d0d638 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/FletchingPulse.java +++ b/Server/src/main/content/global/skill/fletching/FletchingPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching; +package content.global.skill.fletching; import core.tools.RandomFunction; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/GemBoltPlugin.java b/Server/src/main/content/global/skill/fletching/GemBoltPlugin.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/fletching/GemBoltPlugin.java rename to Server/src/main/content/global/skill/fletching/GemBoltPlugin.java index 90564feb4..068e69de2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/GemBoltPlugin.java +++ b/Server/src/main/content/global/skill/fletching/GemBoltPlugin.java @@ -1,18 +1,18 @@ -package core.game.node.entity.skill.fletching; +package content.global.skill.fletching; +import content.global.skill.fletching.items.gem.GemBoltCutPulse; +import content.global.skill.fletching.items.gem.GemBoltPulse; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.fletching.items.gem.GemBoltPulse; import core.game.node.item.Item; import core.net.packet.PacketRepository; import core.net.packet.context.ChildPositionContext; import core.net.packet.out.RepositionChild; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; -import rs09.game.node.entity.skill.fletching.items.gem.GemBoltCutPulse; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import org.rs09.consts.Items; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/ArrowHead.java b/Server/src/main/content/global/skill/fletching/items/arrow/ArrowHead.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/ArrowHead.java rename to Server/src/main/content/global/skill/fletching/items/arrow/ArrowHead.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/ArrowHeadPulse.java b/Server/src/main/content/global/skill/fletching/items/arrow/ArrowHeadPulse.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/ArrowHeadPulse.java rename to Server/src/main/content/global/skill/fletching/items/arrow/ArrowHeadPulse.java index 2dc149c11..927f16d10 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/ArrowHeadPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/arrow/ArrowHeadPulse.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.fletching.items.arrow; +package content.global.skill.fletching.items.arrow; +import content.global.skill.slayer.SlayerManager; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fletching.Fletching; +import content.global.skill.fletching.Fletching; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.node.entity.skill.slayer.SlayerManager; /** * Represents the arrow head pulse to complete the headless arrow. diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/HeadlessArrowPulse.java b/Server/src/main/content/global/skill/fletching/items/arrow/HeadlessArrowPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/HeadlessArrowPulse.java rename to Server/src/main/content/global/skill/fletching/items/arrow/HeadlessArrowPulse.java index 32a060a8a..3ac1ab593 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/arrow/HeadlessArrowPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/arrow/HeadlessArrowPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching.items.arrow; +package content.global.skill.fletching.items.arrow; import org.rs09.consts.Items; import core.game.node.entity.skill.SkillPulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bolts/Bolt.java b/Server/src/main/content/global/skill/fletching/items/bolts/Bolt.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/bolts/Bolt.java rename to Server/src/main/content/global/skill/fletching/items/bolts/Bolt.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bolts/BoltPulse.java b/Server/src/main/content/global/skill/fletching/items/bolts/BoltPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/bolts/BoltPulse.java rename to Server/src/main/content/global/skill/fletching/items/bolts/BoltPulse.java index 2928f16f5..26c974603 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bolts/BoltPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/bolts/BoltPulse.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.fletching.items.bolts; +package content.global.skill.fletching.items.bolts; +import content.global.skill.slayer.SlayerManager; import org.rs09.consts.Items; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fletching.Fletching; +import content.global.skill.fletching.Fletching; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.node.entity.skill.slayer.SlayerManager; /** * Represents the bolt pulse class to make bolts. diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bow/StringBow.java b/Server/src/main/content/global/skill/fletching/items/bow/StringBow.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/bow/StringBow.java rename to Server/src/main/content/global/skill/fletching/items/bow/StringBow.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bow/StringPulse.java b/Server/src/main/content/global/skill/fletching/items/bow/StringPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/bow/StringPulse.java rename to Server/src/main/content/global/skill/fletching/items/bow/StringPulse.java index 47424b7f3..fdae3a1bb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/bow/StringPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/bow/StringPulse.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.fletching.items.bow; +package content.global.skill.fletching.items.bow; import core.game.node.entity.player.link.diary.DiaryType; import core.game.world.map.zone.ZoneBorders; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fletching.Fletching; +import content.global.skill.fletching.Fletching; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/CrossbowPulse.java b/Server/src/main/content/global/skill/fletching/items/crossbow/CrossbowPulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/CrossbowPulse.java rename to Server/src/main/content/global/skill/fletching/items/crossbow/CrossbowPulse.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/Limb.java b/Server/src/main/content/global/skill/fletching/items/crossbow/Limb.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/Limb.java rename to Server/src/main/content/global/skill/fletching/items/crossbow/Limb.java index 4672d165e..6ffc01413 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/Limb.java +++ b/Server/src/main/content/global/skill/fletching/items/crossbow/Limb.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching.items.crossbow; +package content.global.skill.fletching.items.crossbow; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/LimbPulse.kt b/Server/src/main/content/global/skill/fletching/items/crossbow/LimbPulse.kt similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/LimbPulse.kt rename to Server/src/main/content/global/skill/fletching/items/crossbow/LimbPulse.kt index e6c67d09d..2d6d35562 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/LimbPulse.kt +++ b/Server/src/main/content/global/skill/fletching/items/crossbow/LimbPulse.kt @@ -1,16 +1,16 @@ -package core.game.node.entity.skill.fletching.items.crossbow +package content.global.skill.fletching.items.crossbow import core.game.node.entity.player.Player import core.game.node.entity.skill.SkillPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.fletching.Fletching +import content.global.skill.fletching.Fletching import core.game.node.item.Item /** * Represents the skill pulse of attaching limbs. * @author Ceikry */ -class LimbPulse(player: Player?, node: Item, private val limb: Fletching.Limb ,private var amount: Int) : SkillPulse(player, node) { +class LimbPulse(player: Player?, node: Item, private val limb: Fletching.Limb, private var amount: Int) : SkillPulse(player, node) { override fun checkRequirements(): Boolean { if (player.skills.getLevel(Skills.FLETCHING) < limb.level) { player.dialogueInterpreter.sendDialogue("You need a fletching level of " + limb.level + " to attach these limbs.") diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/StringCross.java b/Server/src/main/content/global/skill/fletching/items/crossbow/StringCross.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/crossbow/StringCross.java rename to Server/src/main/content/global/skill/fletching/items/crossbow/StringCross.java diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/Dart.java b/Server/src/main/content/global/skill/fletching/items/darts/Dart.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/Dart.java rename to Server/src/main/content/global/skill/fletching/items/darts/Dart.java index ac19b5a75..235849496 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/Dart.java +++ b/Server/src/main/content/global/skill/fletching/items/darts/Dart.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching.items.darts; +package content.global.skill.fletching.items.darts; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/DartPulse.java b/Server/src/main/content/global/skill/fletching/items/darts/DartPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/DartPulse.java rename to Server/src/main/content/global/skill/fletching/items/darts/DartPulse.java index e1d66b501..ec2e31e0e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/darts/DartPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/darts/DartPulse.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.fletching.items.darts; +package content.global.skill.fletching.items.darts; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fletching.Fletching; +import content.global.skill.fletching.Fletching; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/Gem.java b/Server/src/main/content/global/skill/fletching/items/gem/Gem.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/Gem.java rename to Server/src/main/content/global/skill/fletching/items/gem/Gem.java index feeb7c5e4..6a3377aa4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/Gem.java +++ b/Server/src/main/content/global/skill/fletching/items/gem/Gem.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching.items.gem; +package content.global.skill.fletching.items.gem; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/GemBolt.java b/Server/src/main/content/global/skill/fletching/items/gem/GemBolt.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/GemBolt.java rename to Server/src/main/content/global/skill/fletching/items/gem/GemBolt.java diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/items/gem/GemBoltCutPulse.kt b/Server/src/main/content/global/skill/fletching/items/gem/GemBoltCutPulse.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/items/gem/GemBoltCutPulse.kt rename to Server/src/main/content/global/skill/fletching/items/gem/GemBoltCutPulse.kt index a4f0b69e9..e03781529 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/fletching/items/gem/GemBoltCutPulse.kt +++ b/Server/src/main/content/global/skill/fletching/items/gem/GemBoltCutPulse.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.skill.fletching.items.gem +package content.global.skill.fletching.items.gem import core.game.node.entity.player.Player import core.game.node.entity.skill.SkillPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.fletching.Fletching.GemBolts +import content.global.skill.fletching.Fletching.GemBolts import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/GemBoltPulse.java b/Server/src/main/content/global/skill/fletching/items/gem/GemBoltPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/GemBoltPulse.java rename to Server/src/main/content/global/skill/fletching/items/gem/GemBoltPulse.java index fa9713361..266d18dad 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/gem/GemBoltPulse.java +++ b/Server/src/main/content/global/skill/fletching/items/gem/GemBoltPulse.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.fletching.items.gem; +package content.global.skill.fletching.items.gem; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fletching.Fletching; +import content.global.skill.fletching.Fletching; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/fletching/items/grapple/GrapplePulse.java b/Server/src/main/content/global/skill/fletching/items/grapple/GrapplePulse.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/fletching/items/grapple/GrapplePulse.java rename to Server/src/main/content/global/skill/fletching/items/grapple/GrapplePulse.java index 03969803b..cbba3820f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/fletching/items/grapple/GrapplePulse.java +++ b/Server/src/main/content/global/skill/fletching/items/grapple/GrapplePulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.fletching.items.grapple; +package content.global.skill.fletching.items.grapple; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/GatheringSkillOptionListeners.kt b/Server/src/main/content/global/skill/gather/GatheringSkillOptionListeners.kt similarity index 55% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/GatheringSkillOptionListeners.kt rename to Server/src/main/content/global/skill/gather/GatheringSkillOptionListeners.kt index 37b941a2a..e29aa194e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/GatheringSkillOptionListeners.kt +++ b/Server/src/main/content/global/skill/gather/GatheringSkillOptionListeners.kt @@ -1,16 +1,16 @@ -package rs09.game.node.entity.skill.gather +package content.global.skill.gather import core.game.node.Node import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import rs09.game.node.entity.skill.gather.fishing.FishingPulse -import core.game.node.entity.skill.fishing.FishingSpot -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingSkillPulse +import content.global.skill.fishing.FishingSpot +import content.global.skill.gather.fishing.FishingPulse +import content.global.skill.gather.mining.MiningSkillPulse +import content.global.skill.gather.woodcutting.WoodcuttingSkillPulse import org.rs09.consts.NPCs -import rs09.game.content.dialogue.KjallakOnChopDialogue -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.skill.gather.mining.MiningSkillPulse +import content.region.misc.miscellania.dialogue.KjallakOnChopDialogue +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class GatheringSkillOptionListeners : InteractionListener { @@ -31,12 +31,12 @@ class GatheringSkillOptionListeners : InteractionListener { return@on true } - on(IntType.NPC,"net"){player,node -> return@on fish(player,node,"net")} - on(IntType.NPC,"lure"){player,node -> return@on fish(player,node,"lure")} - on(IntType.NPC,"bait"){player,node -> return@on fish(player,node,"bait")} - on(IntType.NPC,"harpoon"){player,node -> return@on fish(player,node,"harpoon")} - on(IntType.NPC,"cage"){player,node -> return@on fish(player,node,"cage")} - on(IntType.NPC,"fish"){player, node -> return@on fish(player,node,"fish") } + on(IntType.NPC,"net"){ player, node -> return@on fish(player,node,"net")} + on(IntType.NPC,"lure"){ player, node -> return@on fish(player,node,"lure")} + on(IntType.NPC,"bait"){ player, node -> return@on fish(player,node,"bait")} + on(IntType.NPC,"harpoon"){ player, node -> return@on fish(player,node,"harpoon")} + on(IntType.NPC,"cage"){ player, node -> return@on fish(player,node,"cage")} + on(IntType.NPC,"fish"){ player, node -> return@on fish(player,node,"fish") } } fun fish(player: Player, node: Node, opt: String): Boolean{ diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/PickaxeRepairPlugin.kt b/Server/src/main/content/global/skill/gather/PickaxeRepairPlugin.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/PickaxeRepairPlugin.kt rename to Server/src/main/content/global/skill/gather/PickaxeRepairPlugin.kt index c2298eea8..8ac6c82c9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/PickaxeRepairPlugin.kt +++ b/Server/src/main/content/global/skill/gather/PickaxeRepairPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.gather +package content.global.skill.gather import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingResource.java b/Server/src/main/content/global/skill/gather/SkillingResource.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/gather/SkillingResource.java rename to Server/src/main/content/global/skill/gather/SkillingResource.java index 100c18ec9..e2c2a982c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/SkillingResource.java +++ b/Server/src/main/content/global/skill/gather/SkillingResource.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.gather; +package content.global.skill.gather; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.skill.Skills; -import rs09.game.system.SystemLogger; -import rs09.game.world.repository.Repository; +import core.tools.SystemLogger; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import java.util.HashMap; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/FishingPulse.kt b/Server/src/main/content/global/skill/gather/fishing/FishingPulse.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/FishingPulse.kt rename to Server/src/main/content/global/skill/gather/fishing/FishingPulse.kt index 871f32b8f..15f0391fa 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/FishingPulse.kt +++ b/Server/src/main/content/global/skill/gather/fishing/FishingPulse.kt @@ -1,27 +1,27 @@ -package rs09.game.node.entity.skill.gather.fishing +package content.global.skill.gather.fishing -import api.events.ResourceProducedEvent -import core.game.content.global.SkillingPets +import core.game.event.ResourceProducedEvent +import content.data.skill.SkillingPets import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.skillertasks.SkillTasks import core.game.node.entity.skill.SkillPulse import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.fishing.Fish -import core.game.node.entity.skill.fishing.FishingOption -import core.game.node.entity.skill.summoning.familiar.Forager +import content.global.skill.fishing.Fish +import content.global.skill.fishing.FishingOption +import content.global.skill.skillcapeperks.SkillcapePerks +import content.global.skill.skillcapeperks.SkillcapePerks.Companion.isActive +import content.global.skill.summoning.familiar.Forager import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.path.Pathfinder import core.game.world.update.flag.context.Animation import core.tools.RandomFunction -import rs09.game.node.entity.player.info.stats.STATS_BASE -import rs09.game.node.entity.player.info.stats.STATS_FISH -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks.Companion.isActive -import rs09.game.world.GameWorld.Pulser -import rs09.tools.stringtools.colorize +import core.game.system.command.sets.STATS_BASE +import core.game.system.command.sets.STATS_FISH +import core.game.world.GameWorld.Pulser +import core.tools.colorize /** * Handles a fishing pulse. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt b/Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt rename to Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt index e49461f32..7963fb099 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt +++ b/Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishInteractionListeners.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.skill.gather.fishing.barbfishing +package content.global.skill.gather.fishing.barbfishing import core.game.node.item.Item -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class BarbFishInteractionListeners : InteractionListener { override fun defineListeners() { @@ -21,7 +21,7 @@ class BarbFishInteractionListeners : InteractionListener { return@on true } - on(1176, IntType.NPC, "fish"){player,_ -> + on(1176, IntType.NPC, "fish"){ player, _ -> player.pulseManager.run(BarbFishingPulse(player)) player.sendMessage("You attempt to catch a fish...") return@on true diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishingPulse.kt b/Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishingPulse.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishingPulse.kt rename to Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishingPulse.kt index 9c2cc6385..2a66a2f1f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/BarbFishingPulse.kt +++ b/Server/src/main/content/global/skill/gather/fishing/barbfishing/BarbFishingPulse.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.gather.fishing.barbfishing +package content.global.skill.gather.fishing.barbfishing import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -8,7 +8,7 @@ import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.tools.stringtools.colorize +import core.tools.colorize /** * Pulse used for barbarian fishing diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/FishCuttingPulse.kt b/Server/src/main/content/global/skill/gather/fishing/barbfishing/FishCuttingPulse.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/FishCuttingPulse.kt rename to Server/src/main/content/global/skill/gather/fishing/barbfishing/FishCuttingPulse.kt index 64563b8bd..9ec1e1466 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/FishCuttingPulse.kt +++ b/Server/src/main/content/global/skill/gather/fishing/barbfishing/FishCuttingPulse.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.gather.fishing.barbfishing +package content.global.skill.gather.fishing.barbfishing import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/KnifeWithFish.kt b/Server/src/main/content/global/skill/gather/fishing/barbfishing/KnifeWithFish.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/KnifeWithFish.kt rename to Server/src/main/content/global/skill/gather/fishing/barbfishing/KnifeWithFish.kt index 9f089a9dd..0b6e24917 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/KnifeWithFish.kt +++ b/Server/src/main/content/global/skill/gather/fishing/barbfishing/KnifeWithFish.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.gather.fishing.barbfishing +package content.global.skill.gather.fishing.barbfishing import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/SpotManager.kt b/Server/src/main/content/global/skill/gather/fishing/barbfishing/SpotManager.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/SpotManager.kt rename to Server/src/main/content/global/skill/gather/fishing/barbfishing/SpotManager.kt index 269e6153c..60946cd5a 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/fishing/barbfishing/SpotManager.kt +++ b/Server/src/main/content/global/skill/gather/fishing/barbfishing/SpotManager.kt @@ -1,16 +1,12 @@ -package rs09.game.node.entity.skill.gather.fishing.barbfishing +package content.global.skill.gather.fishing.barbfishing -import api.StartupListener -import api.TickListener +import content.global.skill.gather.fishing.barbfishing.SpotManager.Companion.locations +import content.global.skill.gather.fishing.barbfishing.SpotManager.Companion.usedLocations +import core.api.StartupListener +import core.api.TickListener import core.game.node.entity.npc.NPC import core.game.world.map.Location -import core.plugin.CorePluginTypes.ManagerPlugin -import core.plugin.CorePluginTypes.Managers -import core.plugin.Initializable -import core.plugin.Plugin import core.tools.RandomFunction -import rs09.game.node.entity.skill.gather.fishing.barbfishing.SpotManager.Companion.locations -import rs09.game.node.entity.skill.gather.fishing.barbfishing.SpotManager.Companion.usedLocations /** * Manages fishing spot spawning and relocation diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/mining/MiningNode.java b/Server/src/main/content/global/skill/gather/mining/MiningNode.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/gather/mining/MiningNode.java rename to Server/src/main/content/global/skill/gather/mining/MiningNode.java index 1d837914b..301382938 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/mining/MiningNode.java +++ b/Server/src/main/content/global/skill/gather/mining/MiningNode.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.gather.mining; +package content.global.skill.gather.mining; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.item.WeightedChanceItem; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import java.util.ArrayList; import java.util.HashMap; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt b/Server/src/main/content/global/skill/gather/mining/MiningSkillPulse.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt rename to Server/src/main/content/global/skill/gather/mining/MiningSkillPulse.kt index 4b7850e60..a485930b3 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt +++ b/Server/src/main/content/global/skill/gather/mining/MiningSkillPulse.kt @@ -1,18 +1,17 @@ -package rs09.game.node.entity.skill.gather.mining +package content.global.skill.gather.mining -import api.* -import api.events.ResourceProducedEvent +import core.api.* +import core.game.event.ResourceProducedEvent import core.cache.def.impl.ItemDefinition -import core.game.content.dialogue.FacialExpression -import core.game.content.global.SkillingPets +import content.data.skill.SkillingPets import core.game.node.Node import core.game.node.entity.impl.Animator import core.game.node.entity.npc.drop.DropFrequency import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool -import core.game.node.entity.skill.gather.mining.MiningNode +import content.data.skill.SkillingTool +import content.global.skill.skillcapeperks.SkillcapePerks import core.game.node.item.ChanceItem import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder @@ -21,11 +20,9 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.tools.RandomFunction import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.node.entity.player.info.stats.STATS_BASE -import rs09.game.node.entity.player.info.stats.STATS_ROCKS -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks -import rs09.tools.stringtools.* +import core.game.system.command.sets.STATS_BASE +import core.game.system.command.sets.STATS_ROCKS +import core.tools.prependArticle /** * Mining skill pulse diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/ProspectListener.kt b/Server/src/main/content/global/skill/gather/mining/ProspectListener.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/ProspectListener.kt rename to Server/src/main/content/global/skill/gather/mining/ProspectListener.kt index 118c73b70..13ec9b0dc 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/ProspectListener.kt +++ b/Server/src/main/content/global/skill/gather/mining/ProspectListener.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.gather.mining +package content.global.skill.gather.mining -import api.* -import core.game.node.entity.skill.gather.mining.MiningNode +import core.api.* +import content.global.skill.gather.mining.MiningNode import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author: bushtail diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java b/Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingNode.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java rename to Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingNode.java index d8c1de7c5..9415b4b2c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java +++ b/Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingNode.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.gather.woodcutting; +package content.global.skill.gather.woodcutting; -import rs09.ServerConstants; -import rs09.game.world.repository.Repository; +import core.ServerConstants; +import core.game.world.repository.Repository; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java b/Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingSkillPulse.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java rename to Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingSkillPulse.java index 354954907..43e220666 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java +++ b/Server/src/main/content/global/skill/gather/woodcutting/WoodcuttingSkillPulse.java @@ -1,18 +1,21 @@ -package core.game.node.entity.skill.gather.woodcutting; +package content.global.skill.gather.woodcutting; -import api.events.ResourceProducedEvent; +import content.data.tables.BirdNest; +import content.global.skill.farming.FarmingPatch; +import content.global.skill.farming.Patch; +import content.global.skill.skillcapeperks.SkillcapePerks; +import core.game.event.ResourceProducedEvent; import core.cache.def.impl.ItemDefinition; import core.game.container.impl.EquipmentContainer; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.BirdNest; -import core.game.content.global.SkillingPets; +import core.game.dialogue.FacialExpression; +import content.data.skill.SkillingPets; import core.game.node.entity.impl.Animator; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.gather.SkillingTool; +import content.data.skill.SkillingTool; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; @@ -22,15 +25,12 @@ import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; import org.rs09.consts.Sounds; -import rs09.game.node.entity.skill.farming.FarmingPatch; -import rs09.game.node.entity.skill.farming.Patch; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; import java.util.List; import java.util.stream.Collectors; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_LOGS; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_BASE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_LOGS; /** * Woodcutting skill pulse diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianMixPlugin.java b/Server/src/main/content/global/skill/herblore/BarbarianMixPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianMixPlugin.java rename to Server/src/main/content/global/skill/herblore/BarbarianMixPlugin.java index fcfd3e554..f82eda97c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianMixPlugin.java +++ b/Server/src/main/content/global/skill/herblore/BarbarianMixPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.entity.skill.Skills; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianPotion.java b/Server/src/main/content/global/skill/herblore/BarbarianPotion.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianPotion.java rename to Server/src/main/content/global/skill/herblore/BarbarianPotion.java index cba509270..623df9590 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/BarbarianPotion.java +++ b/Server/src/main/content/global/skill/herblore/BarbarianPotion.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; /** * Represents the barbarian potion. diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotion.java b/Server/src/main/content/global/skill/herblore/FinishedPotion.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotion.java rename to Server/src/main/content/global/skill/herblore/FinishedPotion.java index 3e1d4ca4e..e78d80432 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotion.java +++ b/Server/src/main/content/global/skill/herblore/FinishedPotion.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.item.Item; import org.rs09.consts.Items; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotionPlugin.java b/Server/src/main/content/global/skill/herblore/FinishedPotionPlugin.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotionPlugin.java rename to Server/src/main/content/global/skill/herblore/FinishedPotionPlugin.java index 9e6ca3ab7..61b871747 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/FinishedPotionPlugin.java +++ b/Server/src/main/content/global/skill/herblore/FinishedPotionPlugin.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/GenericPotion.java b/Server/src/main/content/global/skill/herblore/GenericPotion.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/herblore/GenericPotion.java rename to Server/src/main/content/global/skill/herblore/GenericPotion.java index c3d193e42..3f84a0be9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/GenericPotion.java +++ b/Server/src/main/content/global/skill/herblore/GenericPotion.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/herblore/GrindItemPlugin.kt b/Server/src/main/content/global/skill/herblore/GrindItemPlugin.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/herblore/GrindItemPlugin.kt rename to Server/src/main/content/global/skill/herblore/GrindItemPlugin.kt index 352890bf0..3d7184c06 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/herblore/GrindItemPlugin.kt +++ b/Server/src/main/content/global/skill/herblore/GrindItemPlugin.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.skill.herblore +package content.global.skill.herblore import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.entity.skill.SkillPulse -import core.game.node.entity.skill.herblore.GrindingItem +import content.global.skill.herblore.GrindingItem import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.net.packet.PacketRepository @@ -11,7 +11,7 @@ import core.net.packet.context.ChildPositionContext import core.net.packet.out.RepositionChild import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.content.dialogue.SkillDialogueHandler +import core.game.dialogue.SkillDialogueHandler /** * plugin used to handle the grinding of an item. diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/GrindingItem.java b/Server/src/main/content/global/skill/herblore/GrindingItem.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/herblore/GrindingItem.java rename to Server/src/main/content/global/skill/herblore/GrindingItem.java index df50f81ca..7f8db39df 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/GrindingItem.java +++ b/Server/src/main/content/global/skill/herblore/GrindingItem.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import org.rs09.consts.Items; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbCleanPlugin.java b/Server/src/main/content/global/skill/herblore/HerbCleanPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/herblore/HerbCleanPlugin.java rename to Server/src/main/content/global/skill/herblore/HerbCleanPlugin.java index 668993a24..5a7ff46d2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbCleanPlugin.java +++ b/Server/src/main/content/global/skill/herblore/HerbCleanPlugin.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; -import api.Container; -import static api.ContentAPIKt.*; +import core.api.Container; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPlugin.java b/Server/src/main/content/global/skill/herblore/HerbTarPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPlugin.java rename to Server/src/main/content/global/skill/herblore/HerbTarPlugin.java index c7e8f66b1..fe60ca43a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPlugin.java +++ b/Server/src/main/content/global/skill/herblore/HerbTarPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -7,7 +7,7 @@ import core.net.packet.context.ChildPositionContext; import core.net.packet.out.RepositionChild; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler; /** * Represents the plugin used to create a herb tar. diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPulse.java b/Server/src/main/content/global/skill/herblore/HerbTarPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPulse.java rename to Server/src/main/content/global/skill/herblore/HerbTarPulse.java index 87c81cecd..45793be82 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/HerbTarPulse.java +++ b/Server/src/main/content/global/skill/herblore/HerbTarPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/HerblorePulse.java b/Server/src/main/content/global/skill/herblore/HerblorePulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/herblore/HerblorePulse.java rename to Server/src/main/content/global/skill/herblore/HerblorePulse.java index de9805852..800efe53e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/HerblorePulse.java +++ b/Server/src/main/content/global/skill/herblore/HerblorePulse.java @@ -1,141 +1,141 @@ -package core.game.node.entity.skill.herblore; - -import core.game.node.entity.skill.SkillPulse; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import core.game.world.update.flag.context.Animation; -import core.tools.StringUtils; - -/** - * Represents the skill pulse used to handle the creating of potions. - * @author 'Vexia - */ -public final class HerblorePulse extends SkillPulse { - - /** - * Represents the vial of water item. - */ - public static final Item VIAL_OF_WATER = new Item(227); - - /** - * Represents the coonut milk item. - */ - public static final Item COCONUT_MILK = new Item(5935); - - /** - * Represents the animation to use when making a potion. - */ - private static final Animation ANIMATION = new Animation(363); - - /** - * Represents the generic potion. - */ - private final GenericPotion potion; - - /** - * Represents the amount to make. - */ - private int amount; - - /** - * Represents the initial amount to make. - */ - private int initialAmount; - - /** - * Represents the cycles. - */ - private int cycles; - - /** - * Constructs a new {@code HerblorePulse} {@code Object}. - * @param player the player. - * @param node the node. - */ - public HerblorePulse(final Player player, final Item node, final int amount, final GenericPotion potion) { - super(player, node); - this.amount = amount; - this.initialAmount = amount; - this.potion = potion; - } - - @Override - public boolean checkRequirements() { - if (!player.getQuestRepository().isComplete("Druidic Ritual")) { - player.getPacketDispatch().sendMessage("You must complete the Druidic Ritual quest before you can use Herblore."); - return false; - } - if (player.getSkills().getLevel(Skills.HERBLORE) < potion.getLevel()) { - player.getPacketDispatch().sendMessage("You need a Herblore level of at least " + potion.getLevel() + " in order to do this."); - return false; - } - if (!player.getInventory().containsItem(potion.getBase()) || !player.getInventory().containsItem(potion.getIngredient())) { - return false; - } - return true; - } - - @Override - public void animate() { - } - - @Override - public boolean reward() { - if (potion.getBase().getId() == VIAL_OF_WATER.getId()) { - if (initialAmount == 1 && getDelay() == 1) { - player.animate(ANIMATION); - setDelay(3); - return false; - } - handleUnfinished(); - } else { - if (initialAmount == 1 && getDelay() == 1) { - player.animate(ANIMATION); - setDelay(3); - return false; - } - if (getDelay() == 1) { - setDelay(3); - player.animate(ANIMATION); - return false; - } - handleFinished(); - } - amount--; - return amount == 0; - } - - /** - * Method used to handle the potion making of an unf-potion. - */ - public void handleUnfinished() { - if (cycles == 0) { - player.animate(ANIMATION); - } - if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) { - final Item item = potion.getProduct(); - player.getInventory().add(item); - player.getPacketDispatch().sendMessage("You put the" + StringUtils.formatDisplayName(potion.getIngredient().getName().toLowerCase().replace("clean", "")) + " leaf into the vial of water."); - player.getAudioManager().send(2608); - if (cycles++ == 3) { - player.animate(ANIMATION); - cycles = 0; - } - } - } - - /** - * Method used to handle the finished potion making. - */ - public void handleFinished() { - if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) { - final Item item = potion.getProduct(); - player.getInventory().add(item); - player.getSkills().addExperience(Skills.HERBLORE, potion.getExperience(), true); - player.getPacketDispatch().sendMessage("You mix the " + potion.getIngredient().getName().toLowerCase() + " into your potion."); - player.getAudioManager().send(2608); - player.animate(ANIMATION); - } - } -} +package content.global.skill.herblore; + +import core.game.node.entity.skill.SkillPulse; +import core.game.node.entity.skill.Skills; +import core.game.node.entity.player.Player; +import core.game.node.item.Item; +import core.game.world.update.flag.context.Animation; +import core.tools.StringUtils; + +/** + * Represents the skill pulse used to handle the creating of potions. + * @author 'Vexia + */ +public final class HerblorePulse extends SkillPulse { + + /** + * Represents the vial of water item. + */ + public static final Item VIAL_OF_WATER = new Item(227); + + /** + * Represents the coonut milk item. + */ + public static final Item COCONUT_MILK = new Item(5935); + + /** + * Represents the animation to use when making a potion. + */ + private static final Animation ANIMATION = new Animation(363); + + /** + * Represents the generic potion. + */ + private final GenericPotion potion; + + /** + * Represents the amount to make. + */ + private int amount; + + /** + * Represents the initial amount to make. + */ + private int initialAmount; + + /** + * Represents the cycles. + */ + private int cycles; + + /** + * Constructs a new {@code HerblorePulse} {@code Object}. + * @param player the player. + * @param node the node. + */ + public HerblorePulse(final Player player, final Item node, final int amount, final GenericPotion potion) { + super(player, node); + this.amount = amount; + this.initialAmount = amount; + this.potion = potion; + } + + @Override + public boolean checkRequirements() { + if (!player.getQuestRepository().isComplete("Druidic Ritual")) { + player.getPacketDispatch().sendMessage("You must complete the Druidic Ritual quest before you can use Herblore."); + return false; + } + if (player.getSkills().getLevel(Skills.HERBLORE) < potion.getLevel()) { + player.getPacketDispatch().sendMessage("You need a Herblore level of at least " + potion.getLevel() + " in order to do this."); + return false; + } + if (!player.getInventory().containsItem(potion.getBase()) || !player.getInventory().containsItem(potion.getIngredient())) { + return false; + } + return true; + } + + @Override + public void animate() { + } + + @Override + public boolean reward() { + if (potion.getBase().getId() == VIAL_OF_WATER.getId()) { + if (initialAmount == 1 && getDelay() == 1) { + player.animate(ANIMATION); + setDelay(3); + return false; + } + handleUnfinished(); + } else { + if (initialAmount == 1 && getDelay() == 1) { + player.animate(ANIMATION); + setDelay(3); + return false; + } + if (getDelay() == 1) { + setDelay(3); + player.animate(ANIMATION); + return false; + } + handleFinished(); + } + amount--; + return amount == 0; + } + + /** + * Method used to handle the potion making of an unf-potion. + */ + public void handleUnfinished() { + if (cycles == 0) { + player.animate(ANIMATION); + } + if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) { + final Item item = potion.getProduct(); + player.getInventory().add(item); + player.getPacketDispatch().sendMessage("You put the" + StringUtils.formatDisplayName(potion.getIngredient().getName().toLowerCase().replace("clean", "")) + " leaf into the vial of water."); + player.getAudioManager().send(2608); + if (cycles++ == 3) { + player.animate(ANIMATION); + cycles = 0; + } + } + } + + /** + * Method used to handle the finished potion making. + */ + public void handleFinished() { + if ((player.getInventory().containsItem(potion.getBase()) && player.getInventory().containsItem(potion.getIngredient())) && player.getInventory().remove(potion.getBase(), potion.getIngredient())) { + final Item item = potion.getProduct(); + player.getInventory().add(item); + player.getSkills().addExperience(Skills.HERBLORE, potion.getExperience(), true); + player.getPacketDispatch().sendMessage("You mix the " + potion.getIngredient().getName().toLowerCase() + " into your potion."); + player.getAudioManager().send(2608); + player.animate(ANIMATION); + } + } +} diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/Herbs.java b/Server/src/main/content/global/skill/herblore/Herbs.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/herblore/Herbs.java rename to Server/src/main/content/global/skill/herblore/Herbs.java index ff7a00c83..5ee4959eb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/Herbs.java +++ b/Server/src/main/content/global/skill/herblore/Herbs.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/PotionDecantingPlugin.java b/Server/src/main/content/global/skill/herblore/PotionDecantingPlugin.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/herblore/PotionDecantingPlugin.java rename to Server/src/main/content/global/skill/herblore/PotionDecantingPlugin.java index 76d2b9e5e..884d4917b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/PotionDecantingPlugin.java +++ b/Server/src/main/content/global/skill/herblore/PotionDecantingPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.cache.def.impl.ItemDefinition; import core.game.interaction.NodeUsageEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/SwampToadPlugin.java b/Server/src/main/content/global/skill/herblore/SwampToadPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/herblore/SwampToadPlugin.java rename to Server/src/main/content/global/skill/herblore/SwampToadPlugin.java index cba7e80a4..472846a25 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/SwampToadPlugin.java +++ b/Server/src/main/content/global/skill/herblore/SwampToadPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.cache.def.impl.ItemDefinition; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/Tars.java b/Server/src/main/content/global/skill/herblore/Tars.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/herblore/Tars.java rename to Server/src/main/content/global/skill/herblore/Tars.java index 1ac6e49cf..06484ee60 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/Tars.java +++ b/Server/src/main/content/global/skill/herblore/Tars.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotion.java b/Server/src/main/content/global/skill/herblore/UnfinishedPotion.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotion.java rename to Server/src/main/content/global/skill/herblore/UnfinishedPotion.java index 3fddde555..699a03b74 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotion.java +++ b/Server/src/main/content/global/skill/herblore/UnfinishedPotion.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotionPlugin.java b/Server/src/main/content/global/skill/herblore/UnfinishedPotionPlugin.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotionPlugin.java rename to Server/src/main/content/global/skill/herblore/UnfinishedPotionPlugin.java index 6ab24f85e..7504b00f8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/herblore/UnfinishedPotionPlugin.java +++ b/Server/src/main/content/global/skill/herblore/UnfinishedPotionPlugin.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.herblore; +package content.global.skill.herblore; import core.plugin.Initializable; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/BoxTrapNode.java b/Server/src/main/content/global/skill/hunter/BoxTrapNode.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/BoxTrapNode.java rename to Server/src/main/content/global/skill/hunter/BoxTrapNode.java index e6acb0e32..6cebfaf6a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/BoxTrapNode.java +++ b/Server/src/main/content/global/skill/hunter/BoxTrapNode.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java b/Server/src/main/content/global/skill/hunter/DeadfallSetting.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java rename to Server/src/main/content/global/skill/hunter/DeadfallSetting.java index c2d0a97a1..56202d3a9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java +++ b/Server/src/main/content/global/skill/hunter/DeadfallSetting.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import core.game.node.entity.skill.firemaking.Log; +import content.global.skill.firemaking.Log; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/FalconryActivityPlugin.java b/Server/src/main/content/global/skill/hunter/FalconryActivityPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/FalconryActivityPlugin.java rename to Server/src/main/content/global/skill/hunter/FalconryActivityPlugin.java index 311074b87..a3e8c2c87 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/FalconryActivityPlugin.java +++ b/Server/src/main/content/global/skill/hunter/FalconryActivityPlugin.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; +import content.global.skill.hunter.falconry.FalconryCatchPulse; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.hunter.falconry.FalconCatch; -import core.game.node.entity.skill.hunter.falconry.FalconryCatchPulse; +import content.global.skill.hunter.falconry.FalconCatch; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -17,7 +17,7 @@ import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the activity used during falconry practice. diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterGear.java b/Server/src/main/content/global/skill/hunter/HunterGear.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/hunter/HunterGear.java rename to Server/src/main/content/global/skill/hunter/HunterGear.java index 361e1d1b9..ac845fd41 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterGear.java +++ b/Server/src/main/content/global/skill/hunter/HunterGear.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java b/Server/src/main/content/global/skill/hunter/HunterManager.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java rename to Server/src/main/content/global/skill/hunter/HunterManager.java index 357ac6423..a026eb043 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java +++ b/Server/src/main/content/global/skill/hunter/HunterManager.java @@ -1,16 +1,16 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import api.LoginListener; -import api.LogoutListener; -import api.events.EventHook; -import api.events.TickEvent; +import core.api.LoginListener; +import core.api.LogoutListener; +import core.game.event.EventHook; +import core.game.event.TickEvent; import core.game.node.entity.Entity; import core.game.node.entity.skill.Skills; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import org.jetbrains.annotations.NotNull; -import rs09.game.Event; +import core.api.Event; import java.util.ArrayList; import java.util.Iterator; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterNPC.java b/Server/src/main/content/global/skill/hunter/HunterNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/hunter/HunterNPC.java rename to Server/src/main/content/global/skill/hunter/HunterNPC.java index 1ee31d0a5..725cdb140 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterNPC.java +++ b/Server/src/main/content/global/skill/hunter/HunterNPC.java @@ -1,22 +1,21 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import api.ContentAPIKt; +import core.api.ContentAPIKt; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager; -import core.game.world.map.RegionManager; import org.rs09.consts.NPCs; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.tools.RandomFunction; import java.util.ArrayList; import java.util.List; -import static api.ContentAPIKt.getPathableRandomLocalCoordinate; -import static api.ContentAPIKt.sendGraphics; +import static core.api.ContentAPIKt.getPathableRandomLocalCoordinate; +import static core.api.ContentAPIKt.sendGraphics; /** * Handles a hunter npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java b/Server/src/main/content/global/skill/hunter/HunterPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java rename to Server/src/main/content/global/skill/hunter/HunterPlugin.java index 713bdd321..83cb8993b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java +++ b/Server/src/main/content/global/skill/hunter/HunterPlugin.java @@ -1,14 +1,14 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; +import content.global.skill.hunter.bnet.BNetNode; +import content.global.skill.hunter.bnet.BNetTypes; +import content.global.skill.hunter.bnet.ImplingNode; import core.cache.def.Definition; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.node.entity.skill.hunter.NetTrapSetting.NetTrap; -import core.game.node.entity.skill.hunter.bnet.BNetNode; -import core.game.node.entity.skill.hunter.bnet.BNetTypes; -import core.game.node.entity.skill.hunter.bnet.ImplingNode; +import content.global.skill.hunter.NetTrapSetting.NetTrap; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -21,7 +21,7 @@ import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/ImpBoxPlugin.java b/Server/src/main/content/global/skill/hunter/ImpBoxPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/ImpBoxPlugin.java rename to Server/src/main/content/global/skill/hunter/ImpBoxPlugin.java index 7c0d6b706..800e342eb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/ImpBoxPlugin.java +++ b/Server/src/main/content/global/skill/hunter/ImpBoxPlugin.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -16,7 +16,7 @@ import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/ImpetuousImpulses.java b/Server/src/main/content/global/skill/hunter/ImpetuousImpulses.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/ImpetuousImpulses.java rename to Server/src/main/content/global/skill/hunter/ImpetuousImpulses.java index 97846c304..2ce0c9526 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/ImpetuousImpulses.java +++ b/Server/src/main/content/global/skill/hunter/ImpetuousImpulses.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import api.StartupListener; -import core.game.node.entity.skill.hunter.bnet.BNetTypes; -import core.game.node.entity.skill.hunter.bnet.ImplingNode; -import rs09.game.world.GameWorld; +import content.global.skill.hunter.bnet.BNetTypes; +import content.global.skill.hunter.bnet.ImplingNode; +import core.api.StartupListener; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/ImplingNPC.java b/Server/src/main/content/global/skill/hunter/ImplingNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/hunter/ImplingNPC.java rename to Server/src/main/content/global/skill/hunter/ImplingNPC.java index 426a5c12a..d061b7a88 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/ImplingNPC.java +++ b/Server/src/main/content/global/skill/hunter/ImplingNPC.java @@ -1,18 +1,18 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; +import content.global.skill.hunter.bnet.ImplingNode; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.hunter.bnet.ImplingNode; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import rs09.game.system.config.NPCConfigParser; -import rs09.game.world.GameWorld; +import core.game.system.config.NPCConfigParser; +import core.game.world.GameWorld; /** * Handles an impling npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/MagicBoxSetting.java b/Server/src/main/content/global/skill/hunter/MagicBoxSetting.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/MagicBoxSetting.java rename to Server/src/main/content/global/skill/hunter/MagicBoxSetting.java index d721700dc..199206040 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/MagicBoxSetting.java +++ b/Server/src/main/content/global/skill/hunter/MagicBoxSetting.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java b/Server/src/main/content/global/skill/hunter/NetTrapSetting.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java rename to Server/src/main/content/global/skill/hunter/NetTrapSetting.java index 157fe9e24..415f57c22 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java +++ b/Server/src/main/content/global/skill/hunter/NetTrapSetting.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java b/Server/src/main/content/global/skill/hunter/TrapCreatePulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java rename to Server/src/main/content/global/skill/hunter/TrapCreatePulse.java index e913fed07..642525df5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java +++ b/Server/src/main/content/global/skill/hunter/TrapCreatePulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.entity.skill.SkillPulse; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java b/Server/src/main/content/global/skill/hunter/TrapDismantlePulse.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java rename to Server/src/main/content/global/skill/hunter/TrapDismantlePulse.java index c33158578..8a468ca84 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java +++ b/Server/src/main/content/global/skill/hunter/TrapDismantlePulse.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import core.game.content.global.SkillingPets; +import content.data.skill.SkillingPets; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapHook.java b/Server/src/main/content/global/skill/hunter/TrapHook.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapHook.java rename to Server/src/main/content/global/skill/hunter/TrapHook.java index 18a04d9fe..61e484058 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapHook.java +++ b/Server/src/main/content/global/skill/hunter/TrapHook.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapNode.java b/Server/src/main/content/global/skill/hunter/TrapNode.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapNode.java rename to Server/src/main/content/global/skill/hunter/TrapNode.java index f0484f7ad..ad8608779 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapNode.java +++ b/Server/src/main/content/global/skill/hunter/TrapNode.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; -import core.game.content.global.SkillingPets; +import content.data.skill.SkillingPets; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java b/Server/src/main/content/global/skill/hunter/TrapSetting.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java rename to Server/src/main/content/global/skill/hunter/TrapSetting.java index 750bc0cd8..f20daa17e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java +++ b/Server/src/main/content/global/skill/hunter/TrapSetting.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -12,7 +12,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java b/Server/src/main/content/global/skill/hunter/TrapWrapper.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java rename to Server/src/main/content/global/skill/hunter/TrapWrapper.java index ed539af70..4cbe32987 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java +++ b/Server/src/main/content/global/skill/hunter/TrapWrapper.java @@ -1,12 +1,12 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.hunter.NetTrapSetting.NetTrap; +import content.global.skill.hunter.NetTrapSetting.NetTrap; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java b/Server/src/main/content/global/skill/hunter/Traps.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java rename to Server/src/main/content/global/skill/hunter/Traps.java index 9d0fa0290..0555254a6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java +++ b/Server/src/main/content/global/skill/hunter/Traps.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.hunter; +package content.global.skill.hunter; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetNode.java b/Server/src/main/content/global/skill/hunter/bnet/BNetNode.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetNode.java rename to Server/src/main/content/global/skill/hunter/bnet/BNetNode.java index 8ec9d2aa4..7f512bf33 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetNode.java +++ b/Server/src/main/content/global/skill/hunter/bnet/BNetNode.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.bnet; +package content.global.skill.hunter.bnet; import core.cache.def.impl.NPCDefinition; import core.game.container.impl.EquipmentContainer; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetPulse.java b/Server/src/main/content/global/skill/hunter/bnet/BNetPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetPulse.java rename to Server/src/main/content/global/skill/hunter/bnet/BNetPulse.java index d3e3e6cb5..13edf7b3b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetPulse.java +++ b/Server/src/main/content/global/skill/hunter/bnet/BNetPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.bnet; +package content.global.skill.hunter.bnet; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.SkillPulse; @@ -7,7 +7,7 @@ import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetTypes.java b/Server/src/main/content/global/skill/hunter/bnet/BNetTypes.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetTypes.java rename to Server/src/main/content/global/skill/hunter/bnet/BNetTypes.java index 0d4515fff..77747192f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/BNetTypes.java +++ b/Server/src/main/content/global/skill/hunter/bnet/BNetTypes.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.bnet; +package content.global.skill.hunter.bnet; import core.game.node.entity.npc.NPC; import core.game.node.entity.npc.drop.DropFrequency; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/ImplingNode.java b/Server/src/main/content/global/skill/hunter/bnet/ImplingNode.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/hunter/bnet/ImplingNode.java rename to Server/src/main/content/global/skill/hunter/bnet/ImplingNode.java index f0f595e7a..e454b8d3c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/bnet/ImplingNode.java +++ b/Server/src/main/content/global/skill/hunter/bnet/ImplingNode.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.bnet; +package content.global.skill.hunter.bnet; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconCatch.java b/Server/src/main/content/global/skill/hunter/falconry/FalconCatch.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconCatch.java rename to Server/src/main/content/global/skill/hunter/falconry/FalconCatch.java index 9c7d2f231..4f0c64657 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconCatch.java +++ b/Server/src/main/content/global/skill/hunter/falconry/FalconCatch.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.falconry; +package content.global.skill.hunter.falconry; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconryCatchPulse.java b/Server/src/main/content/global/skill/hunter/falconry/FalconryCatchPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconryCatchPulse.java rename to Server/src/main/content/global/skill/hunter/falconry/FalconryCatchPulse.java index eaf17a6a8..d49ee8653 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/falconry/FalconryCatchPulse.java +++ b/Server/src/main/content/global/skill/hunter/falconry/FalconryCatchPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.hunter.falconry; +package content.global.skill.hunter.falconry; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.SkillPulse; @@ -9,9 +9,9 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.HintIconManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.tools.RandomFunction; /** diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/pitfall/HunterPitfall.kt b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/pitfall/HunterPitfall.kt rename to Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt index 9d6cca769..6a5d97383 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/pitfall/HunterPitfall.kt +++ b/Server/src/main/content/global/skill/hunter/pitfall/HunterPitfall.kt @@ -1,10 +1,6 @@ import java.util.concurrent.TimeUnit; -import api.* -import core.cache.def.impl.NPCDefinition -import core.cache.def.impl.SceneryDefinition -import core.game.interaction.OptionHandler -import core.game.node.Node +import core.api.* import core.game.node.entity.Entity import core.game.node.entity.combat.CombatStyle import core.game.node.entity.impl.Animator.Priority; @@ -12,22 +8,20 @@ import core.game.node.entity.impl.ForceMovement import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.hunter.HunterManager +import content.global.skill.hunter.HunterManager import core.game.node.item.Item import core.game.node.scenery.Scenery import core.game.system.task.Pulse import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.update.flag.context.Animation -import core.game.world.update.flag.context.Graphics import core.plugin.Initializable -import core.plugin.Plugin import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld /*@Initializable class HunterPitfall : OptionHandler() { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitEast.kt b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitEast.kt rename to Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt index ae484988b..68f414773 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitEast.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitEast.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.hunter.tracking +package content.global.skill.hunter.tracking import core.cache.def.impl.SceneryDefinition import core.game.node.item.Item diff --git a/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitWest.kt b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitWest.kt new file mode 100644 index 000000000..537d44307 --- /dev/null +++ b/Server/src/main/content/global/skill/hunter/tracking/CommonKebbitWest.kt @@ -0,0 +1,4 @@ +package content.global.skill.hunter.tracking + +class CommonKebbitWest { +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt b/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt rename to Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt index d9e42c845..6b21f5990 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/HunterTracking.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.hunter.tracking +package content.global.skill.hunter.tracking import core.game.interaction.OptionHandler import core.game.node.Node @@ -12,8 +12,8 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.tools.SystemLogger +import core.game.world.GameWorld import java.util.* /** diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/PolarKebbitHunting.kt b/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/PolarKebbitHunting.kt rename to Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt index bea33f3f1..b933659b7 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/PolarKebbitHunting.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/PolarKebbitHunting.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.hunter.tracking +package content.global.skill.hunter.tracking import core.cache.def.impl.SceneryDefinition import core.game.node.item.Item diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/TrailDefinition.kt b/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/TrailDefinition.kt rename to Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt index 84577e3d2..70a223276 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/TrailDefinition.kt +++ b/Server/src/main/content/global/skill/hunter/tracking/TrailDefinition.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.hunter.tracking +package content.global.skill.hunter.tracking import core.game.world.map.Location diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListener.kt b/Server/src/main/content/global/skill/magic/SpellListener.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListener.kt rename to Server/src/main/content/global/skill/magic/SpellListener.kt index 0415788d0..95498b3a1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListener.kt +++ b/Server/src/main/content/global/skill/magic/SpellListener.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic -import api.setAttribute +import core.api.setAttribute import core.cache.def.impl.ItemDefinition import core.game.node.Node import core.game.node.entity.player.Player @@ -8,8 +8,8 @@ import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics -import rs09.game.interaction.Listener -import rs09.game.world.GameWorld +import core.game.interaction.Listener +import core.game.world.GameWorld abstract class SpellListener(val bookName: String) : Listener { companion object { @@ -81,7 +81,7 @@ abstract class SpellListener(val bookName: String) : Listener { } fun setDelay(player: Player, isTeleport: Boolean = false){ - if(!isTeleport) player.setAttribute("magic-delay",GameWorld.ticks + 3) else player.setAttribute("magic-delay",GameWorld.ticks + 5) + if(!isTeleport) player.setAttribute("magic-delay", GameWorld.ticks + 3) else player.setAttribute("magic-delay", GameWorld.ticks + 5) } fun setDelay(player: Player, delay: Int) { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListeners.kt b/Server/src/main/content/global/skill/magic/SpellListeners.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListeners.kt rename to Server/src/main/content/global/skill/magic/SpellListeners.kt index 27af60b4c..d90356132 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellListeners.kt +++ b/Server/src/main/content/global/skill/magic/SpellListeners.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic import core.game.node.Node import core.game.node.entity.player.Player -import rs09.game.system.SystemLogger +import core.tools.SystemLogger object SpellListeners { val castMap = HashMap Unit>() diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellTablets.kt b/Server/src/main/content/global/skill/magic/SpellTablets.kt similarity index 75% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellTablets.kt rename to Server/src/main/content/global/skill/magic/SpellTablets.kt index 0164fded1..f6b8f428e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellTablets.kt +++ b/Server/src/main/content/global/skill/magic/SpellTablets.kt @@ -1,26 +1,26 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic +import content.global.skill.magic.spellconsts.Modern import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.skill.magic.spellconsts.Modern +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class SpellTablets : InteractionListener { val B2P_TABLET = Items.BONES_TO_PEACHES_8015 val B2B_TABLET = Items.BONES_TO_BANANAS_8014 override fun defineListeners() { - on(B2B_TABLET, IntType.ITEM, "break"){player, node -> + on(B2B_TABLET, IntType.ITEM, "break"){ player, node -> breakTablet(player) SpellListeners.run(Modern.BONES_TO_BANANAS,SpellListener.NONE,"modern",player) player.inventory.remove(Item(node.id)) return@on true } - on(B2P_TABLET, IntType.ITEM, "break"){player, node -> + on(B2P_TABLET, IntType.ITEM, "break"){ player, node -> breakTablet(player) SpellListeners.run(Modern.BONES_TO_PEACHES,SpellListener.NONE,"modern",player) player.inventory.remove(Item(node.id)) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellUtils.kt b/Server/src/main/content/global/skill/magic/SpellUtils.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellUtils.kt rename to Server/src/main/content/global/skill/magic/SpellUtils.kt index bb9d77526..a80d646a5 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/SpellUtils.kt +++ b/Server/src/main/content/global/skill/magic/SpellUtils.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.magic.CombinationRune -import core.game.node.entity.skill.magic.MagicStaff -import core.game.node.entity.skill.magic.Runes +import core.game.node.entity.combat.spell.CombinationRune +import core.game.node.entity.combat.spell.MagicStaff +import core.game.node.entity.combat.spell.Runes import core.game.node.item.Item object SpellUtils { diff --git a/Server/src/main/java/core/game/content/dialogue/SpellbookSwapDialogue.java b/Server/src/main/content/global/skill/magic/SpellbookSwapDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SpellbookSwapDialogue.java rename to Server/src/main/content/global/skill/magic/SpellbookSwapDialogue.java index 164e38366..8f9a62c8e 100644 --- a/Server/src/main/java/core/game/content/dialogue/SpellbookSwapDialogue.java +++ b/Server/src/main/content/global/skill/magic/SpellbookSwapDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.global.skill.magic; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/TeleportMethod.kt b/Server/src/main/content/global/skill/magic/TeleportMethod.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/TeleportMethod.kt rename to Server/src/main/content/global/skill/magic/TeleportMethod.kt index 02840301f..0f092eb8b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/TeleportMethod.kt +++ b/Server/src/main/content/global/skill/magic/TeleportMethod.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic enum class TeleportMethod { JEWELRY, diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/ancient/AncientTeleportPlugin.java b/Server/src/main/content/global/skill/magic/ancient/AncientTeleportPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/magic/ancient/AncientTeleportPlugin.java rename to Server/src/main/content/global/skill/magic/ancient/AncientTeleportPlugin.java index b05c1d9be..d71501ad4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/ancient/AncientTeleportPlugin.java +++ b/Server/src/main/content/global/skill/magic/ancient/AncientTeleportPlugin.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.magic.ancient; +package content.global.skill.magic.ancient; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/BloodSpells.java b/Server/src/main/content/global/skill/magic/ancient/BloodSpells.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/BloodSpells.java rename to Server/src/main/content/global/skill/magic/ancient/BloodSpells.java index d60593f9d..b5c3b2bf4 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/BloodSpells.java +++ b/Server/src/main/content/global/skill/magic/ancient/BloodSpells.java @@ -1,13 +1,13 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.ancient; import java.util.List; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/IceSpells.java b/Server/src/main/content/global/skill/magic/ancient/IceSpells.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/IceSpells.java rename to Server/src/main/content/global/skill/magic/ancient/IceSpells.java index 9f4e0b757..1af555d40 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/IceSpells.java +++ b/Server/src/main/content/global/skill/magic/ancient/IceSpells.java @@ -1,20 +1,20 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.ancient; import java.util.List; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/MiasmicSpells.java b/Server/src/main/content/global/skill/magic/ancient/MiasmicSpells.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/spell/MiasmicSpells.java rename to Server/src/main/content/global/skill/magic/ancient/MiasmicSpells.java index 5dbbe9df5..d2c331366 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/MiasmicSpells.java +++ b/Server/src/main/content/global/skill/magic/ancient/MiasmicSpells.java @@ -1,22 +1,22 @@ - package core.game.node.entity.combat.spell; + package content.global.skill.magic.ancient; import java.util.List; import core.game.container.impl.EquipmentContainer; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/ShadowSpells.java b/Server/src/main/content/global/skill/magic/ancient/ShadowSpells.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/ShadowSpells.java rename to Server/src/main/content/global/skill/magic/ancient/ShadowSpells.java index 325f949f1..ef5083ce6 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/ShadowSpells.java +++ b/Server/src/main/content/global/skill/magic/ancient/ShadowSpells.java @@ -1,14 +1,14 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.ancient; import java.util.List; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/SmokeSpells.java b/Server/src/main/content/global/skill/magic/ancient/SmokeSpells.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/spell/SmokeSpells.java rename to Server/src/main/content/global/skill/magic/ancient/SmokeSpells.java index b8929ead5..b92c9ea02 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/SmokeSpells.java +++ b/Server/src/main/content/global/skill/magic/ancient/SmokeSpells.java @@ -1,13 +1,13 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.ancient; import java.util.List; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/DreamSpell.java b/Server/src/main/content/global/skill/magic/lunar/DreamSpell.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/DreamSpell.java rename to Server/src/main/content/global/skill/magic/lunar/DreamSpell.java index 4dfc455e2..e35542f0a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/DreamSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/DreamSpell.java @@ -1,16 +1,16 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/EnergyTransferSpell.java b/Server/src/main/content/global/skill/magic/lunar/EnergyTransferSpell.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/EnergyTransferSpell.java rename to Server/src/main/content/global/skill/magic/lunar/EnergyTransferSpell.java index 791d87eab..4a179751c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/EnergyTransferSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/EnergyTransferSpell.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HealSpell.java b/Server/src/main/content/global/skill/magic/lunar/HealSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/HealSpell.java rename to Server/src/main/content/global/skill/magic/lunar/HealSpell.java index 97249545d..8fb86e46b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HealSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/HealSpell.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HumidifySpell.java b/Server/src/main/content/global/skill/magic/lunar/HumidifySpell.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/HumidifySpell.java rename to Server/src/main/content/global/skill/magic/lunar/HumidifySpell.java index 9596c4f7e..89eb05fa9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HumidifySpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/HumidifySpell.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HunterKitSpell.java b/Server/src/main/content/global/skill/magic/lunar/HunterKitSpell.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/HunterKitSpell.java rename to Server/src/main/content/global/skill/magic/lunar/HunterKitSpell.java index dd8d67748..96e4a47b7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/HunterKitSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/HunterKitSpell.java @@ -1,15 +1,14 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; import core.cache.def.impl.ItemDefinition; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarData.kt b/Server/src/main/content/global/skill/magic/lunar/LunarData.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarData.kt rename to Server/src/main/content/global/skill/magic/lunar/LunarData.kt index 3e9bda68e..4c2d94584 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarData.kt +++ b/Server/src/main/content/global/skill/magic/lunar/LunarData.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic.lunar import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt b/Server/src/main/content/global/skill/magic/lunar/LunarListeners.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt rename to Server/src/main/content/global/skill/magic/lunar/LunarListeners.kt index 85f9cd5a3..b4cb649f4 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt +++ b/Server/src/main/content/global/skill/magic/lunar/LunarListeners.kt @@ -1,32 +1,31 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic.lunar -import api.* +import content.global.skill.cooking.CookableItems +import content.global.skill.farming.CompostBins +import content.global.skill.farming.CompostType +import content.global.skill.farming.FarmingPatch +import content.global.skill.magic.SpellListener +import content.global.skill.magic.spellconsts.Lunar +import core.api.* import core.game.component.Component import core.game.node.Node -import core.game.node.entity.Entity -import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.player.link.TeleportManager +import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.cooking.CookableItems import core.game.node.entity.state.EntityState import core.game.node.item.Item +import core.game.node.scenery.Scenery +import core.game.system.command.Privilege +import core.game.system.config.NPCConfigParser import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager +import core.game.world.repository.Repository import core.tools.RandomFunction import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.interaction.item.withnpc.graphics -import rs09.game.node.entity.skill.farming.CompostBins -import rs09.game.node.entity.skill.farming.CompostType -import rs09.game.node.entity.skill.farming.FarmingPatch -import rs09.game.node.entity.skill.magic.spellconsts.Lunar -import rs09.game.system.command.Privilege -import rs09.game.system.config.NPCConfigParser -import rs09.game.world.repository.Repository class LunarListeners : SpellListener("lunar"), Commands { @@ -55,7 +54,7 @@ class LunarListeners : SpellListener("lunar"), Commands { sendTeleport(player,69.0, Location.create(2469, 3247, 0)) } - onCast(Lunar.WATERBIRTH_TELEPORT, NONE){player, _ -> + onCast(Lunar.WATERBIRTH_TELEPORT, NONE){ player, _ -> requires(player,72, arrayOf(Item(Items.ASTRAL_RUNE_9075,2), Item(Items.LAW_RUNE_563), Item(Items.WATER_RUNE_555))) player.getAudioManager().send(Audio(200), true) sendTeleport(player,71.0, Location.create(2527, 3739, 0)) @@ -149,7 +148,7 @@ class LunarListeners : SpellListener("lunar"), Commands { removeRunes(player) addXP(player,63.0) setDelay(player,false) - visualizeSpell(player,NPC_CONTACT_ANIM,NPC_CONTACT_GFX,3618) + visualizeSpell(player, NPC_CONTACT_ANIM, NPC_CONTACT_GFX,3618) } } @@ -272,7 +271,7 @@ class LunarListeners : SpellListener("lunar"), Commands { patch.cureDisease() removeRunes(player) addXP(player,60.0) - visualizeSpell(player,CURE_PLANT_ANIM,CURE_PLANT_GFX) + visualizeSpell(player, CURE_PLANT_ANIM, CURE_PLANT_GFX) setDelay(player,false) } @@ -283,7 +282,7 @@ class LunarListeners : SpellListener("lunar"), Commands { } player.faceLocation(npc.location) - visualizeSpell(player,STATSPY_ANIM,STATSPY_GFX,3620) + visualizeSpell(player, STATSPY_ANIM, STATSPY_GFX,3620) removeRunes(player) addXP(player,66.0) setDelay(player,false) diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/MagicImbueSpell.java b/Server/src/main/content/global/skill/magic/lunar/MagicImbueSpell.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/MagicImbueSpell.java rename to Server/src/main/content/global/skill/magic/lunar/MagicImbueSpell.java index c82db0849..80574cddc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/MagicImbueSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/MagicImbueSpell.java @@ -1,16 +1,15 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/SpellbookSwapSpell.java b/Server/src/main/content/global/skill/magic/lunar/SpellbookSwapSpell.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/SpellbookSwapSpell.java rename to Server/src/main/content/global/skill/magic/lunar/SpellbookSwapSpell.java index 8e786c2eb..4c152b0af 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/SpellbookSwapSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/SpellbookSwapSpell.java @@ -1,16 +1,16 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; import core.game.component.Component; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatBoostSpell.java b/Server/src/main/content/global/skill/magic/lunar/StatBoostSpell.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatBoostSpell.java rename to Server/src/main/content/global/skill/magic/lunar/StatBoostSpell.java index 98bf67f8c..2877d1a1e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatBoostSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/StatBoostSpell.java @@ -1,15 +1,15 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; -import core.game.content.consumable.Consumables; -import core.game.content.consumable.Potion; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import content.data.consumables.Consumables; +import core.game.consumable.Potion; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; -import rs09.game.ai.AIPlayer; +import core.game.bots.AIPlayer; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatRestoreSpell.java b/Server/src/main/content/global/skill/magic/lunar/StatRestoreSpell.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatRestoreSpell.java rename to Server/src/main/content/global/skill/magic/lunar/StatRestoreSpell.java index e8ccdb38f..e702f9942 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatRestoreSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/StatRestoreSpell.java @@ -1,16 +1,16 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; -import core.game.content.consumable.Consumables; -import core.game.content.consumable.Potion; +import content.data.consumables.Consumables; +import core.game.consumable.Potion; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; -import rs09.game.ai.AIPlayer; +import core.game.bots.AIPlayer; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatSpySpell.java b/Server/src/main/content/global/skill/magic/lunar/StatSpySpell.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatSpySpell.java rename to Server/src/main/content/global/skill/magic/lunar/StatSpySpell.java index 312d046b1..009b0fb5a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/StatSpySpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/StatSpySpell.java @@ -1,14 +1,14 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; import core.game.component.CloseEvent; import core.game.component.Component; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/VengeanceSpell.java b/Server/src/main/content/global/skill/magic/lunar/VengeanceSpell.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/magic/lunar/VengeanceSpell.java rename to Server/src/main/content/global/skill/magic/lunar/VengeanceSpell.java index 98bf75cf9..5883be295 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/VengeanceSpell.java +++ b/Server/src/main/content/global/skill/magic/lunar/VengeanceSpell.java @@ -1,14 +1,14 @@ -package core.game.node.entity.skill.magic.lunar; +package content.global.skill.magic.lunar; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/AirSpell.java b/Server/src/main/content/global/skill/magic/modern/AirSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/AirSpell.java rename to Server/src/main/content/global/skill/magic/modern/AirSpell.java index b9fe9afe5..4e11ce4fb 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/AirSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/AirSpell.java @@ -1,11 +1,11 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/BindSpell.java b/Server/src/main/content/global/skill/magic/modern/BindSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/BindSpell.java rename to Server/src/main/content/global/skill/magic/modern/BindSpell.java index bbd7aa8c5..249b0fb8f 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/BindSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/BindSpell.java @@ -1,18 +1,18 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java b/Server/src/main/content/global/skill/magic/modern/ChargeOrbSpells.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java rename to Server/src/main/content/global/skill/magic/modern/ChargeOrbSpells.java index eea1739ac..115d5ebbb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java +++ b/Server/src/main/content/global/skill/magic/modern/ChargeOrbSpells.java @@ -1,10 +1,12 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; +import core.game.node.entity.combat.spell.Runes; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.SkillPulse; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeSpell.java b/Server/src/main/content/global/skill/magic/modern/ChargeSpell.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/skill/magic/ChargeSpell.java rename to Server/src/main/content/global/skill/magic/modern/ChargeSpell.java index a89242ab4..8ab28094e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/ChargeSpell.java @@ -1,12 +1,13 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.SpellBookManager.SpellBook; -import core.game.node.entity.state.EntityState; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/CrumbleUndead.java b/Server/src/main/content/global/skill/magic/modern/CrumbleUndead.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/combat/spell/CrumbleUndead.java rename to Server/src/main/content/global/skill/magic/modern/CrumbleUndead.java index 61baf8c34..be6f86bd7 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/CrumbleUndead.java +++ b/Server/src/main/content/global/skill/magic/modern/CrumbleUndead.java @@ -1,11 +1,11 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/CurseSpells.java b/Server/src/main/content/global/skill/magic/modern/CurseSpells.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/spell/CurseSpells.java rename to Server/src/main/content/global/skill/magic/modern/CurseSpells.java index 7adb3e2d8..b01e2fddf 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/CurseSpells.java +++ b/Server/src/main/content/global/skill/magic/modern/CurseSpells.java @@ -1,12 +1,11 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; -import static api.ContentAPIKt.*; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/EarthSpell.java b/Server/src/main/content/global/skill/magic/modern/EarthSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/EarthSpell.java rename to Server/src/main/content/global/skill/magic/modern/EarthSpell.java index 0a47981a0..b5858590a 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/EarthSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/EarthSpell.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/EnchantCrossbowSpell.java b/Server/src/main/content/global/skill/magic/modern/EnchantCrossbowSpell.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/skill/magic/EnchantCrossbowSpell.java rename to Server/src/main/content/global/skill/magic/modern/EnchantCrossbowSpell.java index 4feae9aba..c5ad348d7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/EnchantCrossbowSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/EnchantCrossbowSpell.java @@ -1,9 +1,10 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; import core.game.component.Component; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/FireSpell.java b/Server/src/main/content/global/skill/magic/modern/FireSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/FireSpell.java rename to Server/src/main/content/global/skill/magic/modern/FireSpell.java index 97b8138e7..85f5423f3 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/FireSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/FireSpell.java @@ -1,10 +1,10 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/GodSpells.java b/Server/src/main/content/global/skill/magic/modern/GodSpells.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/spell/GodSpells.java rename to Server/src/main/content/global/skill/magic/modern/GodSpells.java index 856bc40e5..045451c14 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/GodSpells.java +++ b/Server/src/main/content/global/skill/magic/modern/GodSpells.java @@ -1,14 +1,14 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.cache.def.impl.ItemDefinition; import core.game.container.impl.EquipmentContainer; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/GodspellChargedState.kt b/Server/src/main/content/global/skill/magic/modern/GodspellChargedState.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/GodspellChargedState.kt rename to Server/src/main/content/global/skill/magic/modern/GodspellChargedState.kt index e33d02823..3e7ef71fc 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/GodspellChargedState.kt +++ b/Server/src/main/content/global/skill/magic/modern/GodspellChargedState.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.skill.magic.modern import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio import core.game.system.task.Pulse import org.json.simple.JSONObject -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State -import rs09.game.world.GameWorld; +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State +import core.game.world.GameWorld; @PlayerState("godcharge") class GodspellChargedState(player: Player? = null) : State(player) { diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/HouseTeleportPlugin.java b/Server/src/main/content/global/skill/magic/modern/HouseTeleportPlugin.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/skill/magic/HouseTeleportPlugin.java rename to Server/src/main/content/global/skill/magic/modern/HouseTeleportPlugin.java index 7ba265bf8..37bce8a90 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/HouseTeleportPlugin.java +++ b/Server/src/main/content/global/skill/magic/modern/HouseTeleportPlugin.java @@ -1,13 +1,14 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Plugin; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/IbanBlast.java b/Server/src/main/content/global/skill/magic/modern/IbanBlast.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/combat/spell/IbanBlast.java rename to Server/src/main/content/global/skill/magic/modern/IbanBlast.java index 7665ff3d6..12be74219 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/IbanBlast.java +++ b/Server/src/main/content/global/skill/magic/modern/IbanBlast.java @@ -1,12 +1,12 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.game.container.impl.EquipmentContainer; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/MagicDart.java b/Server/src/main/content/global/skill/magic/modern/MagicDart.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/combat/spell/MagicDart.java rename to Server/src/main/content/global/skill/magic/modern/MagicDart.java index a766fb7b9..3d01de0dc 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/MagicDart.java +++ b/Server/src/main/content/global/skill/magic/modern/MagicDart.java @@ -1,13 +1,13 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/ModernListeners.kt b/Server/src/main/content/global/skill/magic/modern/ModernListeners.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/ModernListeners.kt rename to Server/src/main/content/global/skill/magic/modern/ModernListeners.kt index 007ac6947..3a09289f2 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/ModernListeners.kt +++ b/Server/src/main/content/global/skill/magic/modern/ModernListeners.kt @@ -1,13 +1,13 @@ -package rs09.game.node.entity.skill.magic +package content.global.skill.magic.modern -import api.events.ItemAlchemizationEvent -import api.events.TeleportEvent -import api.EquipmentSlot -import api.getItemFromEquipment -import api.getAttribute -import api.sendMessage -import core.game.content.activity.mta.impl.GraveyardZone -import core.game.content.global.Bones +import content.global.skill.magic.SpellListener +import content.global.skill.magic.TeleportMethod +import content.global.skill.magic.spellconsts.Modern +import core.game.event.ItemAlchemizationEvent +import core.game.event.TeleportEvent +import core.api.getAttribute +import core.api.sendMessage +import content.global.skill.prayer.Bones import core.game.interaction.MovementPulse import core.game.node.entity.Entity import core.game.node.entity.impl.Projectile @@ -16,16 +16,18 @@ import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.magic.MagicStaff -import core.game.node.entity.skill.smithing.smelting.Bar -import core.game.node.entity.skill.smithing.smelting.SmeltingPulse +import content.global.skill.smithing.smelting.Bar +import content.global.skill.smithing.smelting.SmeltingPulse import core.game.node.item.Item import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.node.entity.skill.magic.spellconsts.Modern +import core.ServerConstants +import core.api.EquipmentSlot +import core.api.getItemFromEquipment +import core.game.node.entity.combat.spell.MagicStaff +import core.game.node.entity.impl.Animator class ModernListeners : SpellListener("modern"){ @@ -47,13 +49,19 @@ class ModernListeners : SpellListener("modern"){ private val STUN_START = Graphics(173, 96) private val STUN_PROJECTILE = Projectile.create(null as Entity?, null, 174, 40, 36, 52, 75, 15, 11) private val STUN_END = Graphics(107, 96) + private val LOW_ANIMATION = Animation(716, Animator.Priority.HIGH) + private val HIGH_ANIMATION = Animation(729, Animator.Priority.HIGH) + private val LOW_ALCH_ANIM = Animation(712) + private val LOW_ALCH_GFX = Graphics(112,5) + private val HIGH_ALCH_ANIM = Animation(713) + private val HIGH_ALCH_GFX = Graphics(113,5) private val BONE_CONVERT_GFX = Graphics(141, 96) private val BONE_CONVERT_ANIM = Animation(722) override fun defineListeners() { - onCast(Modern.HOME_TELEPORT,NONE){player, _ -> + onCast(Modern.HOME_TELEPORT, NONE){ player, _ -> if (!getAttribute(player, "tutorial:complete", false)) { return@onCast } @@ -62,78 +70,78 @@ class ModernListeners : SpellListener("modern"){ setDelay(player,true) } - onCast(Modern.VARROCK_TELEPORT,NONE){player, _-> + onCast(Modern.VARROCK_TELEPORT, NONE){ player, _-> requires(player,25, arrayOf(Item(Items.FIRE_RUNE_554),Item(Items.AIR_RUNE_556,3),Item(Items.LAW_RUNE_563))) val alternateTeleport = getAttribute(player, "diaries:varrock:alttele", false) val dest = if(alternateTeleport) Location.create(3165, 3472, 0) else Location.create(3213, 3424, 0) sendTeleport(player,35.0, dest) } - onCast(Modern.LUMBRIDGE_TELEPORT,NONE){player,_ -> + onCast(Modern.LUMBRIDGE_TELEPORT, NONE){ player, _ -> requires(player,31, arrayOf(Item(Items.EARTH_RUNE_557),Item(Items.AIR_RUNE_556,3),Item(Items.LAW_RUNE_563))) sendTeleport(player,41.0,Location.create(3221, 3219, 0)) } - onCast(Modern.FALADOR_TELEPORT,NONE){player, _ -> + onCast(Modern.FALADOR_TELEPORT, NONE){ player, _ -> requires(player,37, arrayOf(Item(Items.WATER_RUNE_555),Item(Items.AIR_RUNE_556,3),Item(Items.LAW_RUNE_563))) sendTeleport(player,47.0,Location.create(2965, 3378, 0)) } - onCast(Modern.CAMELOT_TELEPORT,NONE){player, _-> + onCast(Modern.CAMELOT_TELEPORT, NONE){ player, _-> requires(player,45, arrayOf(Item(Items.AIR_RUNE_556,5),Item(Items.LAW_RUNE_563))) player.achievementDiaryManager.finishTask(player, DiaryType.SEERS_VILLAGE, 1, 5); sendTeleport(player,55.5, Location.create(2758, 3478, 0)) } - onCast(Modern.ARDOUGNE_TELEPORT,NONE){player,_ -> + onCast(Modern.ARDOUGNE_TELEPORT, NONE){ player, _ -> requires(player,51, arrayOf(Item(Items.WATER_RUNE_555,2),Item(Items.LAW_RUNE_563,2))) sendTeleport(player,61.0, Location.create(2662, 3307, 0)) } - onCast(Modern.WATCHTOWER_TELEPORT,NONE){player,_ -> + onCast(Modern.WATCHTOWER_TELEPORT, NONE){ player, _ -> requires(player,58, arrayOf(Item(Items.EARTH_RUNE_557,2),Item(Items.LAW_RUNE_563,2))) sendTeleport(player,68.0, Location.create(2549, 3112, 0)) } - onCast(Modern.TROLLHEIM_TELEPORT,NONE){player, _ -> + onCast(Modern.TROLLHEIM_TELEPORT, NONE){ player, _ -> requires(player,61, arrayOf(Item(Items.FIRE_RUNE_554,2),Item(Items.LAW_RUNE_563,2))) sendTeleport(player,68.0, Location.create(2891, 3678, 0)) } - onCast(Modern.APE_ATOLL_TELEPORT,NONE){player,_ -> + onCast(Modern.APE_ATOLL_TELEPORT, NONE){ player, _ -> requires(player,64, arrayOf(Item(Items.FIRE_RUNE_554,2),Item(Items.WATER_RUNE_555,2),Item(Items.LAW_RUNE_563,2),Item(Items.BANANA_1963))) sendTeleport(player,74.0, Location.create(2754, 2784, 0)) } - onCast(Modern.TELEPORT_TO_HOUSE,NONE){player, _ -> + onCast(Modern.TELEPORT_TO_HOUSE, NONE){ player, _ -> requires(player,40, arrayOf(Item(Items.LAW_RUNE_563), Item(Items.AIR_RUNE_556), Item(Items.EARTH_RUNE_557))) attemptHouseTeleport(player) } - onCast(Modern.LOW_ALCHEMY,ITEM){player, node -> + onCast(Modern.LOW_ALCHEMY, ITEM){ player, node -> val item = node?.asItem() ?: return@onCast requires(player,21, arrayOf(Item(Items.FIRE_RUNE_554,3),Item(Items.NATURE_RUNE_561))) alchemize(player,item,high = false) } - onCast(Modern.HIGH_ALCHEMY,ITEM){player, node -> + onCast(Modern.HIGH_ALCHEMY, ITEM){ player, node -> val item = node?.asItem() ?: return@onCast requires(player,55, arrayOf(Item(Items.FIRE_RUNE_554,5),Item(Items.NATURE_RUNE_561,1))) alchemize(player,item,high = true) } - onCast(Modern.SUPERHEAT,ITEM){player, node -> + onCast(Modern.SUPERHEAT, ITEM){ player, node -> val item = node?.asItem() ?: return@onCast requires(player,43, arrayOf(Item(Items.FIRE_RUNE_554,4),Item(Items.NATURE_RUNE_561,1))) superheat(player,item) } - onCast(Modern.BONES_TO_BANANAS,NONE){player, _ -> + onCast(Modern.BONES_TO_BANANAS, NONE){ player, _ -> requires(player,15, arrayOf(Item(Items.EARTH_RUNE_557,2), Item(Items.WATER_RUNE_555,2), Item(Items.NATURE_RUNE_561,1))) boneConvert(player,true) } - onCast(Modern.BONES_TO_PEACHES,NONE){player, _ -> + onCast(Modern.BONES_TO_PEACHES, NONE){ player, _ -> requires(player,60, arrayOf(Item(Items.EARTH_RUNE_557,4), Item(Items.WATER_RUNE_555,4), Item(Items.NATURE_RUNE_561,2))) boneConvert(player,false) } @@ -158,7 +166,7 @@ class ModernListeners : SpellListener("modern"){ if(isInMTA){ if(bones.contains(item.id)){ val inInventory = player.inventory.getAmount(item.id) - val amount = inInventory * (GraveyardZone.BoneType.forItem(Item(item.id)).ordinal + 1) + val amount = inInventory * (content.minigame.mta.impl.GraveyardZone.BoneType.forItem(Item(item.id)).ordinal + 1) if(amount > 0){ player.inventory.remove(Item(item.id,inInventory)) player.inventory.add(Item(if(bananas) Items.BANANA_1963 else Items.PEACH_6883,amount)) @@ -215,11 +223,11 @@ class ModernListeners : SpellListener("modern"){ setDelay(player,false) } - private fun alchemize(player: Player,item: Item,high:Boolean) { - if (item.name == "Coins") player.sendMessage("You can't alchemize something that's already gold!").also { return } - if (!item.definition.isTradeable) player.sendMessage("You can't cast this spell on something like that.").also { return } + private fun alchemize(player: Player,item: Item,high:Boolean){ + if(item.name == "Coins") player.sendMessage("You can't alchemize something that's already gold!").also { return } + if(!item.definition.isTradeable) player.sendMessage("You can't cast this spell on something like that.").also { return } - if (player.zoneMonitor.isInZone("Alchemists' Playground")) { + if(player.zoneMonitor.isInZone("Alchemists' Playground")){ player.sendMessage("You can only alch items from the cupboards!") return } diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/SonicWaveSpell.java b/Server/src/main/content/global/skill/magic/modern/SonicWaveSpell.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/combat/spell/SonicWaveSpell.java rename to Server/src/main/content/global/skill/magic/modern/SonicWaveSpell.java index 889dd32ae..af397dff1 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/SonicWaveSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/SonicWaveSpell.java @@ -1,9 +1,9 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/TeleblockSpell.java b/Server/src/main/content/global/skill/magic/modern/TeleblockSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/magic/TeleblockSpell.java rename to Server/src/main/content/global/skill/magic/modern/TeleblockSpell.java index 937d59383..0d0503389 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/TeleblockSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/TeleblockSpell.java @@ -1,10 +1,11 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; +import core.game.node.entity.combat.spell.Runes; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/TeleotherSpells.java b/Server/src/main/content/global/skill/magic/modern/TeleotherSpells.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/magic/TeleotherSpells.java rename to Server/src/main/content/global/skill/magic/modern/TeleotherSpells.java index c3eedb9bd..f57b76bad 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/TeleotherSpells.java +++ b/Server/src/main/content/global/skill/magic/modern/TeleotherSpells.java @@ -1,9 +1,11 @@ -package core.game.node.entity.skill.magic; +package content.global.skill.magic.modern; +import core.game.node.entity.combat.spell.Runes; import core.game.component.Component; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/WaterSpell.java b/Server/src/main/content/global/skill/magic/modern/WaterSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/spell/WaterSpell.java rename to Server/src/main/content/global/skill/magic/modern/WaterSpell.java index 09f2d213e..7a1e2ff65 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/WaterSpell.java +++ b/Server/src/main/content/global/skill/magic/modern/WaterSpell.java @@ -1,11 +1,11 @@ -package core.game.node.entity.combat.spell; +package content.global.skill.magic.modern; import core.plugin.Initializable; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.CombatSpell; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.link.SpellBookManager.SpellBook; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Lunar.kt b/Server/src/main/content/global/skill/magic/spellconsts/Lunar.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Lunar.kt rename to Server/src/main/content/global/skill/magic/spellconsts/Lunar.kt index d9100596d..acd6e54b9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Lunar.kt +++ b/Server/src/main/content/global/skill/magic/spellconsts/Lunar.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.magic.spellconsts +package content.global.skill.magic.spellconsts object Lunar { const val BARBARIAN_TELEPORT = 0 diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Modern.kt b/Server/src/main/content/global/skill/magic/spellconsts/Modern.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Modern.kt rename to Server/src/main/content/global/skill/magic/spellconsts/Modern.kt index 0cef959bc..8ca73ab62 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/spellconsts/Modern.kt +++ b/Server/src/main/content/global/skill/magic/spellconsts/Modern.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.magic.spellconsts +package content.global.skill.magic.spellconsts object Modern { const val HOME_TELEPORT = 0 diff --git a/Server/src/main/java/core/game/node/entity/skill/prayer/BoneBuryingOptionPlugin.java b/Server/src/main/content/global/skill/prayer/BoneBuryingOptionPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/prayer/BoneBuryingOptionPlugin.java rename to Server/src/main/content/global/skill/prayer/BoneBuryingOptionPlugin.java index cd2f0d833..2422af243 100644 --- a/Server/src/main/java/core/game/node/entity/skill/prayer/BoneBuryingOptionPlugin.java +++ b/Server/src/main/content/global/skill/prayer/BoneBuryingOptionPlugin.java @@ -1,7 +1,6 @@ -package core.game.node.entity.skill.prayer; +package content.global.skill.prayer; import core.cache.def.impl.ItemDefinition; -import core.game.content.global.Bones; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; @@ -10,7 +9,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/global/Bones.kt b/Server/src/main/content/global/skill/prayer/Bones.kt similarity index 97% rename from Server/src/main/java/core/game/content/global/Bones.kt rename to Server/src/main/content/global/skill/prayer/Bones.kt index f82954d6d..f6c47f01d 100644 --- a/Server/src/main/java/core/game/content/global/Bones.kt +++ b/Server/src/main/content/global/skill/prayer/Bones.kt @@ -1,6 +1,5 @@ -package core.game.content.global +package content.global.skill.prayer -import core.game.content.global.Bones import core.game.node.item.Item import java.util.ArrayList import java.util.HashMap diff --git a/Server/src/main/java/core/game/node/entity/skill/prayer/PrayerAltarPlugin.java b/Server/src/main/content/global/skill/prayer/PrayerAltarPlugin.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/prayer/PrayerAltarPlugin.java rename to Server/src/main/content/global/skill/prayer/PrayerAltarPlugin.java index de54a5a87..56d413546 100644 --- a/Server/src/main/java/core/game/node/entity/skill/prayer/PrayerAltarPlugin.java +++ b/Server/src/main/content/global/skill/prayer/PrayerAltarPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.prayer; +package content.global.skill.prayer; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java b/Server/src/main/content/global/skill/runecrafting/Altar.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java rename to Server/src/main/content/global/skill/runecrafting/Altar.java index af7463cb5..698116728 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java +++ b/Server/src/main/content/global/skill/runecrafting/Altar.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRune.java b/Server/src/main/content/global/skill/runecrafting/CombinationRune.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRune.java rename to Server/src/main/content/global/skill/runecrafting/CombinationRune.java index facb37967..62760bfdc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRune.java +++ b/Server/src/main/content/global/skill/runecrafting/CombinationRune.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java b/Server/src/main/content/global/skill/runecrafting/CombinationRunePlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java rename to Server/src/main/content/global/skill/runecrafting/CombinationRunePlugin.java index 2b9c17a85..bcfb0d2d1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/CombinationRunePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java rename to Server/src/main/content/global/skill/runecrafting/EnchantTiaraDialogue.java index ce7f30796..1d96c6b02 100644 --- a/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java +++ b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraDialogue.java @@ -1,10 +1,9 @@ -package core.game.content.dialogue; +package content.global.skill.runecrafting; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; + +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.runecrafting.Altar; -import core.game.node.entity.skill.runecrafting.EnchantTiaraPulse; -import core.game.node.entity.skill.runecrafting.Talisman; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java rename to Server/src/main/content/global/skill/runecrafting/EnchantTiaraPlugin.java index 9e5b07a87..f15985d55 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPulse.java b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPulse.java rename to Server/src/main/content/global/skill/runecrafting/EnchantTiaraPulse.java index 9be72c321..3096fb13e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPulse.java +++ b/Server/src/main/content/global/skill/runecrafting/EnchantTiaraPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.node.entity.impl.Animator; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java b/Server/src/main/content/global/skill/runecrafting/MysteriousRuin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java rename to Server/src/main/content/global/skill/runecrafting/MysteriousRuin.java index e92a01adf..55a42ce9a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java +++ b/Server/src/main/content/global/skill/runecrafting/MysteriousRuin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java b/Server/src/main/content/global/skill/runecrafting/MysteriousRuinPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java rename to Server/src/main/content/global/skill/runecrafting/MysteriousRuinPlugin.java index 1a7795051..df5663d2e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/MysteriousRuinPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -7,7 +7,7 @@ import core.game.node.entity.player.info.Rights; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/PouchManager.kt b/Server/src/main/content/global/skill/runecrafting/PouchManager.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/PouchManager.kt rename to Server/src/main/content/global/skill/runecrafting/PouchManager.kt index 150c4c25d..52aba0d4b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/PouchManager.kt +++ b/Server/src/main/content/global/skill/runecrafting/PouchManager.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.runecrafting +package content.global.skill.runecrafting import core.game.container.Container import core.game.node.entity.player.Player @@ -7,7 +7,7 @@ import core.game.node.item.Item import org.json.simple.JSONArray import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.tools.stringtools.colorize +import core.tools.colorize /** * A class for managing rune pouches. diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Rune.java b/Server/src/main/content/global/skill/runecrafting/Rune.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/Rune.java rename to Server/src/main/content/global/skill/runecrafting/Rune.java index 5f455a3d4..79762bf96 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Rune.java +++ b/Server/src/main/content/global/skill/runecrafting/Rune.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.Runes; import core.game.node.item.Item; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RuneCraftPulse.java b/Server/src/main/content/global/skill/runecrafting/RuneCraftPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/RuneCraftPulse.java rename to Server/src/main/content/global/skill/runecrafting/RuneCraftPulse.java index 3329a700b..d333dc443 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RuneCraftPulse.java +++ b/Server/src/main/content/global/skill/runecrafting/RuneCraftPulse.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.impl.Animator.Priority; @@ -10,9 +10,9 @@ import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_RC; -import rs09.game.world.GameWorld; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_BASE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_RC; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunePouch.java b/Server/src/main/content/global/skill/runecrafting/RunePouch.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/RunePouch.java rename to Server/src/main/content/global/skill/runecrafting/RunePouch.java index 36364a670..98b5a6caa 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunePouch.java +++ b/Server/src/main/content/global/skill/runecrafting/RunePouch.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; -import core.game.content.global.action.DropItemHandler; +import core.game.global.action.DropItemHandler; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/RunePouchPlugin.kt b/Server/src/main/content/global/skill/runecrafting/RunePouchPlugin.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/RunePouchPlugin.kt rename to Server/src/main/content/global/skill/runecrafting/RunePouchPlugin.kt index e3f2227e0..41779cf1f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/RunePouchPlugin.kt +++ b/Server/src/main/content/global/skill/runecrafting/RunePouchPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.runecrafting +package content.global.skill.runecrafting import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler @@ -7,7 +7,7 @@ import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Plugin import org.rs09.consts.Items -import rs09.tools.stringtools.colorize +import core.tools.colorize /** * Handles the rune pouches. diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java b/Server/src/main/content/global/skill/runecrafting/RunecraftingPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java rename to Server/src/main/content/global/skill/runecrafting/RunecraftingPlugin.java index b376f2771..903503992 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/RunecraftingPlugin.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -19,10 +19,9 @@ import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.travel.EssenceTeleport; -import rs09.game.node.entity.skill.runecrafting.RunePouchPlugin; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import content.global.travel.EssenceTeleport; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Handles runecraftign related options. diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Talisman.java b/Server/src/main/content/global/skill/runecrafting/Talisman.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/Talisman.java rename to Server/src/main/content/global/skill/runecrafting/Talisman.java index 8e4db131f..3d2f3bad4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Talisman.java +++ b/Server/src/main/content/global/skill/runecrafting/Talisman.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Tiara.java b/Server/src/main/content/global/skill/runecrafting/Tiara.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/Tiara.java rename to Server/src/main/content/global/skill/runecrafting/Tiara.java index 171d5f10c..956c63376 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Tiara.java +++ b/Server/src/main/content/global/skill/runecrafting/Tiara.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/TiaraPlugin.java b/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/TiaraPlugin.java rename to Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java index d4af182b9..adbdd260c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/TiaraPlugin.java +++ b/Server/src/main/content/global/skill/runecrafting/TiaraPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.runecrafting; +package content.global.skill.runecrafting; import core.cache.def.impl.VarbitDefinition; import core.cache.def.impl.ItemDefinition; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt rename to Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt index 64b41b79c..3c49446ee 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt +++ b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssPlugin.kt @@ -1,17 +1,20 @@ package core.game.node.entity.skill.runecrafting.abyss -import api.* +import core.api.* import core.game.node.Node -import rs09.plugin.ClassScanner.definePlugin -import rs09.tools.stringtools.colorize -import rs09.game.system.SystemLogger.logInfo +import core.plugin.ClassScanner.definePlugin +import core.tools.colorize +import core.tools.SystemLogger.logInfo import core.game.node.scenery.Scenery import core.game.node.entity.impl.Animator import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool -import core.game.node.entity.skill.runecrafting.Altar +import content.data.skill.SkillingTool +import content.global.skill.runecrafting.Altar +import content.global.skill.runecrafting.abyss.AbyssalNPC +import content.global.skill.runecrafting.abyss.DarkMageDialogue +import content.global.skill.runecrafting.abyss.ZamorakMageDialogue import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager @@ -21,13 +24,10 @@ import core.plugin.Initializable import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs -import org.rs09.consts.Vars -import org.rs09.consts.Animations -import org.rs09.consts.Graphics as Gfx import org.rs09.consts.Scenery as Sceneries -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld import kotlin.math.cos import kotlin.math.sin import kotlin.random.Random diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/AbyssalNPC.java b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssalNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/AbyssalNPC.java rename to Server/src/main/content/global/skill/runecrafting/abyss/AbyssalNPC.java index 25850c2ac..0f55805dd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/AbyssalNPC.java +++ b/Server/src/main/content/global/skill/runecrafting/abyss/AbyssalNPC.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.runecrafting.abyss; +package content.global.skill.runecrafting.abyss; -import core.game.node.entity.skill.runecrafting.RunePouch; +import content.global.skill.runecrafting.RunePouch; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/DarkMageDialogue.java b/Server/src/main/content/global/skill/runecrafting/abyss/DarkMageDialogue.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/DarkMageDialogue.java rename to Server/src/main/content/global/skill/runecrafting/abyss/DarkMageDialogue.java index e5f13ca58..b7297429e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/DarkMageDialogue.java +++ b/Server/src/main/content/global/skill/runecrafting/abyss/DarkMageDialogue.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.runecrafting.abyss; +package content.global.skill.runecrafting.abyss; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/ZamorakMageDialogue.java b/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/ZamorakMageDialogue.java rename to Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java index 519fe98cc..af161eea5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/abyss/ZamorakMageDialogue.java +++ b/Server/src/main/content/global/skill/runecrafting/abyss/ZamorakMageDialogue.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.runecrafting.abyss; +package content.global.skill.runecrafting.abyss; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/Skillcape.kt b/Server/src/main/content/global/skill/skillcapeperks/Skillcape.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/Skillcape.kt rename to Server/src/main/content/global/skill/skillcapeperks/Skillcape.kt index ec640e4b8..b69a2b5ba 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/Skillcape.kt +++ b/Server/src/main/content/global/skill/skillcapeperks/Skillcape.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.skillcapeperks +package content.global.skill.skillcapeperks enum class Skillcape { ATTACK, diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt b/Server/src/main/content/global/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt rename to Server/src/main/content/global/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt index 8505f9aac..0ad090fcd 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt +++ b/Server/src/main/content/global/skill/skillcapeperks/SkillcapeEquipmentPlugin.kt @@ -1,12 +1,11 @@ -package rs09.game.node.entity.skill.skillcapeperks +package content.global.skill.skillcapeperks -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener class SkillcapeEquipmentPlugin : InteractionListener { override fun defineListeners() { val capeIds = ArrayList() - for(cape in core.game.content.global.SkillcapePerks.values()){ + for(cape in content.data.skill.SkillcapePerks.values()){ cape.skillcapeIds.forEach { capeIds.add(it) } } val capes = capeIds.toIntArray() diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeOperatePlugin.kt b/Server/src/main/content/global/skill/skillcapeperks/SkillcapeOperatePlugin.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeOperatePlugin.kt rename to Server/src/main/content/global/skill/skillcapeperks/SkillcapeOperatePlugin.kt index f5d31a657..3b0bf601d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapeOperatePlugin.kt +++ b/Server/src/main/content/global/skill/skillcapeperks/SkillcapeOperatePlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.skillcapeperks +package content.global.skill.skillcapeperks import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler @@ -10,7 +10,7 @@ import core.plugin.Plugin @Initializable class SkillcapeOperatePlugin : OptionHandler() { override fun newInstance(arg: Any?): Plugin { - for(cape in core.game.content.global.SkillcapePerks.values()){ + for(cape in content.data.skill.SkillcapePerks.values()){ cape.skillcapeIds.forEach { ItemDefinition.forId(it).handlers["option:operate"] = this } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapePerks.kt b/Server/src/main/content/global/skill/skillcapeperks/SkillcapePerks.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapePerks.kt rename to Server/src/main/content/global/skill/skillcapeperks/SkillcapePerks.kt index 81cd8d101..b30636136 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/skillcapeperks/SkillcapePerks.kt +++ b/Server/src/main/content/global/skill/skillcapeperks/SkillcapePerks.kt @@ -1,14 +1,16 @@ -package rs09.game.node.entity.skill.skillcapeperks +package content.global.skill.skillcapeperks import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.game.node.entity.player.link.SpellBookManager import core.game.node.entity.player.link.TeleportManager -import core.game.node.entity.skill.runecrafting.Altar +import content.global.skill.runecrafting.Altar import core.game.world.map.zone.impl.DarkZone import core.plugin.Initializable -import rs09.game.world.GameWorld +import core.game.world.GameWorld +import content.global.skill.farming.* +import core.api.getAttribute +import core.api.sendDialogue enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? = null) { BAREFISTED_SMITHING("cape_perks:barefisted-smithing"), @@ -46,10 +48,10 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? SEED_ATTRACTION("cape_perks:seed_attract",{player -> val time = player.getAttribute("cape_perks:seed_attract_timer",0L) if(System.currentTimeMillis() > time){ - val possibleSeeds = rs09.game.node.entity.skill.farming.Plantable.values() + val possibleSeeds = Plantable.values() for(i in 0 until 10){ var seed = possibleSeeds.random() - while(seed == rs09.game.node.entity.skill.farming.Plantable.SCARECROW || seed.applicablePatch == rs09.game.node.entity.skill.farming.PatchType.FRUIT_TREE || seed.applicablePatch == rs09.game.node.entity.skill.farming.PatchType.TREE || seed.applicablePatch == rs09.game.node.entity.skill.farming.PatchType.SPIRIT_TREE){ + while(seed == Plantable.SCARECROW || seed.applicablePatch == PatchType.FRUIT_TREE || seed.applicablePatch == PatchType.TREE || seed.applicablePatch == PatchType.SPIRIT_TREE){ seed = possibleSeeds.random() } val reward = core.game.node.item.Item(seed.itemID) @@ -64,11 +66,11 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? } }), TRICKS_OF_THE_TRADE("cape_perks:tott",{player -> - val hasHelmetBonus = api.getAttribute(player, "cape_perks:tott:helmet-stored", false) + val hasHelmetBonus = getAttribute(player, "cape_perks:tott:helmet-stored", false) if(hasHelmetBonus){ - api.sendDialogue(player, "Your cape's pockets are lined with all the utilities you need for slayer.") + sendDialogue(player, "Your cape's pockets are lined with all the utilities you need for slayer.") } else { - api.sendDialogue(player, "Your cape is lined with empty pockets shaped like various utilities needed for slayer.") + sendDialogue(player, "Your cape is lined with empty pockets shaped like various utilities needed for slayer.") } }), HASTY_COOKING("cape_perks:hasty-cooking"), @@ -139,8 +141,8 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? } @Initializable - class MagicCapeDialogue(player: Player? = null): DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { + class MagicCapeDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MagicCapeDialogue(player) } @@ -198,8 +200,8 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? } @Initializable - class RCCapeDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { + class RCCapeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RCCapeDialogue(player) } @@ -212,28 +214,28 @@ enum class SkillcapePerks(val attribute: String, val effect: ((Player) -> Unit)? override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> when(buttonId){ - 1 -> sendAltar(player,Altar.AIR) - 2 -> sendAltar(player,Altar.MIND) - 3 -> sendAltar(player,Altar.WATER) - 4 -> sendAltar(player,Altar.EARTH) + 1 -> sendAltar(player, Altar.AIR) + 2 -> sendAltar(player, Altar.MIND) + 3 -> sendAltar(player, Altar.WATER) + 4 -> sendAltar(player, Altar.EARTH) 5 -> options("Fire","Body","Cosmic","Chaos","More...").also { stage++ } } 1 -> when(buttonId){ - 1 -> sendAltar(player,Altar.FIRE) - 2 -> sendAltar(player,Altar.BODY) - 3 -> sendAltar(player,Altar.COSMIC) - 4 -> sendAltar(player,Altar.CHAOS) + 1 -> sendAltar(player, Altar.FIRE) + 2 -> sendAltar(player, Altar.BODY) + 3 -> sendAltar(player, Altar.COSMIC) + 4 -> sendAltar(player, Altar.CHAOS) 5 -> options("Astral","Nature","Law","Death","More...").also { stage++ } } 2 -> when(buttonId){ - 1 -> sendAltar(player,Altar.ASTRAL) - 2 -> sendAltar(player,Altar.NATURE) - 3 -> sendAltar(player,Altar.LAW) - 4 -> sendAltar(player,Altar.DEATH) + 1 -> sendAltar(player, Altar.ASTRAL) + 2 -> sendAltar(player, Altar.NATURE) + 3 -> sendAltar(player, Altar.LAW) + 4 -> sendAltar(player, Altar.DEATH) 5 -> options("Blood","Nevermind").also { stage++ } } 3 -> when(buttonId){ - 1 -> sendAltar(player,Altar.BLOOD) + 1 -> sendAltar(player, Altar.BLOOD) 2 -> end() } } diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/AberrantSpectreNPC.java b/Server/src/main/content/global/skill/slayer/AberrantSpectreNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/slayer/AberrantSpectreNPC.java rename to Server/src/main/content/global/skill/slayer/AberrantSpectreNPC.java index 48a7e64b4..e32e6e46e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/AberrantSpectreNPC.java +++ b/Server/src/main/content/global/skill/slayer/AberrantSpectreNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -7,9 +7,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.world.map.Location; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MagicSwingHandler; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MagicSwingHandler; /** * Handles the aberrant spectre npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/AbyssalDemonNPC.java b/Server/src/main/content/global/skill/slayer/AbyssalDemonNPC.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/skill/slayer/AbyssalDemonNPC.java rename to Server/src/main/content/global/skill/slayer/AbyssalDemonNPC.java index fab911fb3..ababe2bd0 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/AbyssalDemonNPC.java +++ b/Server/src/main/content/global/skill/slayer/AbyssalDemonNPC.java @@ -1,19 +1,17 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.world.map.Direction; import core.game.world.map.Location; -import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import static api.ContentAPIKt.getPathableRandomLocalCoordinate; +import static core.api.ContentAPIKt.getPathableRandomLocalCoordinate; /** * Handles the abyssal npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/BansheeNPC.java b/Server/src/main/content/global/skill/slayer/BansheeNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/slayer/BansheeNPC.java rename to Server/src/main/content/global/skill/slayer/BansheeNPC.java index 9f15a94c9..da0babfce 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/BansheeNPC.java +++ b/Server/src/main/content/global/skill/slayer/BansheeNPC.java @@ -1,18 +1,17 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/BasiliskNPC.java b/Server/src/main/content/global/skill/slayer/BasiliskNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/slayer/BasiliskNPC.java rename to Server/src/main/content/global/skill/slayer/BasiliskNPC.java index 9efecbe7f..6c5a5a568 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/BasiliskNPC.java +++ b/Server/src/main/content/global/skill/slayer/BasiliskNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.combat.BattleState; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/BrutalDragonNPC.java b/Server/src/main/content/global/skill/slayer/BrutalDragonNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/skill/slayer/BrutalDragonNPC.java rename to Server/src/main/content/global/skill/slayer/BrutalDragonNPC.java index fb44f8870..401c759ff 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/BrutalDragonNPC.java +++ b/Server/src/main/content/global/skill/slayer/BrutalDragonNPC.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.AbstractNPC; @@ -11,8 +11,8 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles a brutal dragon npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/BugSwarmNPC.java b/Server/src/main/content/global/skill/slayer/BugSwarmNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/slayer/BugSwarmNPC.java rename to Server/src/main/content/global/skill/slayer/BugSwarmNPC.java index 2930c5089..5617a7dc7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/BugSwarmNPC.java +++ b/Server/src/main/content/global/skill/slayer/BugSwarmNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/BuglanternPlugin.java b/Server/src/main/content/global/skill/slayer/BuglanternPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/BuglanternPlugin.java rename to Server/src/main/content/global/skill/slayer/BuglanternPlugin.java index 656f96bbc..80a930d28 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/BuglanternPlugin.java +++ b/Server/src/main/content/global/skill/slayer/BuglanternPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.ItemDefinition; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/CaveBugNPC.java b/Server/src/main/content/global/skill/slayer/CaveBugNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/slayer/CaveBugNPC.java rename to Server/src/main/content/global/skill/slayer/CaveBugNPC.java index 2f7d95015..66a883dc3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/CaveBugNPC.java +++ b/Server/src/main/content/global/skill/slayer/CaveBugNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/CaveHorrorNPC.java b/Server/src/main/content/global/skill/slayer/CaveHorrorNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/slayer/CaveHorrorNPC.java rename to Server/src/main/content/global/skill/slayer/CaveHorrorNPC.java index e5bf16f8a..1bb494576 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/CaveHorrorNPC.java +++ b/Server/src/main/content/global/skill/slayer/CaveHorrorNPC.java @@ -1,17 +1,16 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; /** * Handles the Cave Horrors on Mos'le Harmless. You technically do not need a witchwood icon to fight them. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/CockatriceNPC.java b/Server/src/main/content/global/skill/slayer/CockatriceNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/slayer/CockatriceNPC.java rename to Server/src/main/content/global/skill/slayer/CockatriceNPC.java index d418de456..288545631 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/CockatriceNPC.java +++ b/Server/src/main/content/global/skill/slayer/CockatriceNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.combat.BattleState; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/DesertLizardPlugin.java b/Server/src/main/content/global/skill/slayer/DesertLizardPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/DesertLizardPlugin.java rename to Server/src/main/content/global/skill/slayer/DesertLizardPlugin.java index 265d787d8..49cc5a851 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/DesertLizardPlugin.java +++ b/Server/src/main/content/global/skill/slayer/DesertLizardPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/DustDevilNPC.java b/Server/src/main/content/global/skill/slayer/DustDevilNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/slayer/DustDevilNPC.java rename to Server/src/main/content/global/skill/slayer/DustDevilNPC.java index c4487cb9b..081e04d38 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/DustDevilNPC.java +++ b/Server/src/main/content/global/skill/slayer/DustDevilNPC.java @@ -1,17 +1,16 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; /** * Handles the dust devil npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java b/Server/src/main/content/global/skill/slayer/FishingExplosivePlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java rename to Server/src/main/content/global/skill/slayer/FishingExplosivePlugin.java index d73bad286..196a4c62d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java +++ b/Server/src/main/content/global/skill/slayer/FishingExplosivePlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -17,7 +17,7 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/GargoyleNPC.java b/Server/src/main/content/global/skill/slayer/GargoyleNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/slayer/GargoyleNPC.java rename to Server/src/main/content/global/skill/slayer/GargoyleNPC.java index 9b52a6420..e944ca3df 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/GargoyleNPC.java +++ b/Server/src/main/content/global/skill/slayer/GargoyleNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -11,7 +11,7 @@ import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; import org.rs09.consts.Items; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the gargoyle npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/InfernalMageNPC.java b/Server/src/main/content/global/skill/slayer/InfernalMageNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/slayer/InfernalMageNPC.java rename to Server/src/main/content/global/skill/slayer/InfernalMageNPC.java index 0f0bcb93d..8689befd3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/InfernalMageNPC.java +++ b/Server/src/main/content/global/skill/slayer/InfernalMageNPC.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/KuraskNPC.java b/Server/src/main/content/global/skill/slayer/KuraskNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/skill/slayer/KuraskNPC.java rename to Server/src/main/content/global/skill/slayer/KuraskNPC.java index 84f94896c..4f7daa530 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/KuraskNPC.java +++ b/Server/src/main/content/global/skill/slayer/KuraskNPC.java @@ -1,13 +1,10 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.world.map.Location; import core.plugin.Initializable; -import org.rs09.consts.Items; -import rs09.game.node.entity.skill.slayer.SlayerUtils; /** * Handles the kurask npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/Master.java b/Server/src/main/content/global/skill/slayer/Master.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/slayer/Master.java rename to Server/src/main/content/global/skill/slayer/Master.java index b4b3dd2e4..9382a408d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/Master.java +++ b/Server/src/main/content/global/skill/slayer/Master.java @@ -1,8 +1,7 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import rs09.game.node.entity.skill.slayer.SlayerManager; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/MirrorShieldHandler.java b/Server/src/main/content/global/skill/slayer/MirrorShieldHandler.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/skill/slayer/MirrorShieldHandler.java rename to Server/src/main/content/global/skill/slayer/MirrorShieldHandler.java index 63f6c935a..87cfea348 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/MirrorShieldHandler.java +++ b/Server/src/main/content/global/skill/slayer/MirrorShieldHandler.java @@ -1,11 +1,10 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.player.Player; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; /** * The swing handler for an npc that requires a mirror shield with its victim. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/MithrilDragonNPC.java b/Server/src/main/content/global/skill/slayer/MithrilDragonNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/slayer/MithrilDragonNPC.java rename to Server/src/main/content/global/skill/slayer/MithrilDragonNPC.java index b75b510d8..10c2d3588 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/MithrilDragonNPC.java +++ b/Server/src/main/content/global/skill/slayer/MithrilDragonNPC.java @@ -1,10 +1,10 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.AbstractNPC; @@ -13,8 +13,8 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles a mithril dragon npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/NechryaelNPC.java b/Server/src/main/content/global/skill/slayer/NechryaelNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/NechryaelNPC.java rename to Server/src/main/content/global/skill/slayer/NechryaelNPC.java index 81822be6b..2b04eaa0b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/NechryaelNPC.java +++ b/Server/src/main/content/global/skill/slayer/NechryaelNPC.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/RockSlugPlugin.java b/Server/src/main/content/global/skill/slayer/RockSlugPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/slayer/RockSlugPlugin.java rename to Server/src/main/content/global/skill/slayer/RockSlugPlugin.java index ea2e5d005..a5428a7ba 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/RockSlugPlugin.java +++ b/Server/src/main/content/global/skill/slayer/RockSlugPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -12,7 +12,7 @@ import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the interactions of a rock slug. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SkeletalWyvernNPC.java b/Server/src/main/content/global/skill/slayer/SkeletalWyvernNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SkeletalWyvernNPC.java rename to Server/src/main/content/global/skill/slayer/SkeletalWyvernNPC.java index 1508bc990..3ca02b5ce 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SkeletalWyvernNPC.java +++ b/Server/src/main/content/global/skill/slayer/SkeletalWyvernNPC.java @@ -1,14 +1,12 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.container.impl.EquipmentContainer; -import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.Item; import core.game.world.map.Location; @@ -16,8 +14,8 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles the skeletal wyvern npc. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerEquipmentFlags.kt b/Server/src/main/content/global/skill/slayer/SlayerEquipmentFlags.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerEquipmentFlags.kt rename to Server/src/main/content/global/skill/slayer/SlayerEquipmentFlags.kt index db06af8a2..ca08db7ca 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerEquipmentFlags.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerEquipmentFlags.kt @@ -1,11 +1,11 @@ -package rs09.game.node.entity.skill.slayer +package content.global.skill.slayer -import api.EquipmentSlot -import api.getAttribute -import api.getItemFromEquipment +import content.global.skill.skillcapeperks.SkillcapePerks +import core.api.EquipmentSlot +import core.api.getAttribute +import core.api.getItemFromEquipment import core.game.node.entity.player.Player import org.rs09.consts.Items -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks /** * Represents a slayer equipment. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerFlags.kt b/Server/src/main/content/global/skill/slayer/SlayerFlags.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerFlags.kt rename to Server/src/main/content/global/skill/slayer/SlayerFlags.kt index f47e52ce1..ade4ac5b7 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerFlags.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerFlags.kt @@ -1,7 +1,7 @@ -package rs09.game.node.entity.skill.slayer +package content.global.skill.slayer -import core.game.node.entity.skill.slayer.Master -import core.game.node.entity.skill.slayer.Tasks +import content.global.skill.slayer.Master +import content.global.skill.slayer.Tasks /** * Bitflag-based system for storing slayer-related data for a player and various helper functions. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerManager.kt b/Server/src/main/content/global/skill/slayer/SlayerManager.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerManager.kt rename to Server/src/main/content/global/skill/slayer/SlayerManager.kt index 2897476f5..51c523592 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerManager.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerManager.kt @@ -1,20 +1,18 @@ -package rs09.game.node.entity.skill.slayer +package content.global.skill.slayer -import api.LoginListener -import api.PersistPlayer -import api.events.EventHook -import api.events.NPCKillEvent -import api.getAttribute -import api.rewardXP +import core.api.LoginListener +import core.api.PersistPlayer +import core.game.event.EventHook +import core.game.event.NPCKillEvent +import core.api.getAttribute +import core.api.rewardXP import core.cache.def.impl.NPCDefinition import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.slayer.Master -import core.game.node.entity.skill.slayer.Tasks import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.game.Event +import core.api.Event import java.util.* /** diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerMasterDialogue.java b/Server/src/main/content/global/skill/slayer/SlayerMasterDialogue.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SlayerMasterDialogue.java rename to Server/src/main/content/global/skill/slayer/SlayerMasterDialogue.java index e6f4e843a..a1f9d9ea9 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerMasterDialogue.java +++ b/Server/src/main/content/global/skill/slayer/SlayerMasterDialogue.java @@ -1,12 +1,11 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import org.json.simple.JSONObject; -import rs09.ServerStore; -import rs09.game.node.entity.skill.slayer.SlayerManager; -import rs09.game.world.GameWorld; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.Skillcape; +import core.ServerStore; +import core.game.world.GameWorld; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; @@ -16,7 +15,7 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** * Represents the dialogue plugin used for a slayer master. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerPlugin.java b/Server/src/main/content/global/skill/slayer/SlayerPlugin.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SlayerPlugin.java rename to Server/src/main/content/global/skill/slayer/SlayerPlugin.java index c09bee668..ec6940b15 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerPlugin.java +++ b/Server/src/main/content/global/skill/slayer/SlayerPlugin.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DigAction; -import core.game.content.global.action.DigSpadeHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DigAction; +import core.game.global.action.DigSpadeHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerRewardPlugin.java b/Server/src/main/content/global/skill/slayer/SlayerRewardPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SlayerRewardPlugin.java rename to Server/src/main/content/global/skill/slayer/SlayerRewardPlugin.java index cbdf4a710..d8231167e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerRewardPlugin.java +++ b/Server/src/main/content/global/skill/slayer/SlayerRewardPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; @@ -14,8 +14,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.slayer.SlayerManager; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the slayer reward interface plugin. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java b/Server/src/main/content/global/skill/slayer/SlayerTowerPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java rename to Server/src/main/content/global/skill/slayer/SlayerTowerPlugin.java index ffe1ac96c..aa8f0e38f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java +++ b/Server/src/main/content/global/skill/slayer/SlayerTowerPlugin.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java b/Server/src/main/content/global/skill/slayer/SlayerTowerZone.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java rename to Server/src/main/content/global/skill/slayer/SlayerTowerZone.java index 292306344..c9c583f04 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java +++ b/Server/src/main/content/global/skill/slayer/SlayerTowerZone.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.Option; import core.game.node.Node; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerUtils.kt b/Server/src/main/content/global/skill/slayer/SlayerUtils.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerUtils.kt rename to Server/src/main/content/global/skill/slayer/SlayerUtils.kt index dba8282ba..14b00d7f3 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/slayer/SlayerUtils.kt +++ b/Server/src/main/content/global/skill/slayer/SlayerUtils.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.skill.slayer +package content.global.skill.slayer import core.game.node.entity.combat.BattleState import core.game.node.entity.player.Player import core.game.node.entity.player.link.SpellBookManager.SpellBook import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.slayer.Master -import core.game.node.entity.skill.slayer.Tasks +import content.global.skill.slayer.Master +import content.global.skill.slayer.Tasks import core.tools.RandomFunction import org.rs09.consts.Items import java.util.ArrayList diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/Tasks.java b/Server/src/main/content/global/skill/slayer/Tasks.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/slayer/Tasks.java rename to Server/src/main/content/global/skill/slayer/Tasks.java index 6770088dd..efd737e30 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/Tasks.java +++ b/Server/src/main/content/global/skill/slayer/Tasks.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.cache.def.impl.NPCDefinition; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/TurothNPC.java b/Server/src/main/content/global/skill/slayer/TurothNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/skill/slayer/TurothNPC.java rename to Server/src/main/content/global/skill/slayer/TurothNPC.java index 421e7730f..b046ea58e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/TurothNPC.java +++ b/Server/src/main/content/global/skill/slayer/TurothNPC.java @@ -1,13 +1,10 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.world.map.Location; import core.plugin.Initializable; -import org.rs09.consts.Items; -import rs09.game.node.entity.skill.slayer.SlayerUtils; /** * Handles the turoth npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/WaterFiendNPC.java b/Server/src/main/content/global/skill/slayer/WaterFiendNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/skill/slayer/WaterFiendNPC.java rename to Server/src/main/content/global/skill/slayer/WaterFiendNPC.java index 7a91eb928..6f7fbd669 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/WaterFiendNPC.java +++ b/Server/src/main/content/global/skill/slayer/WaterFiendNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.slayer; +package content.global.skill.slayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; @@ -9,8 +9,8 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles the water fiend npc. diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java b/Server/src/main/content/global/skill/slayer/dungeon/AncientCavern.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java rename to Server/src/main/content/global/skill/slayer/dungeon/AncientCavern.java index 5f8c4f0f5..7e8e55cd4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java +++ b/Server/src/main/content/global/skill/slayer/dungeon/AncientCavern.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.slayer.dungeon; +package content.global.skill.slayer.dungeon; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; import core.game.component.CloseEvent; import core.game.component.Component; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -17,7 +17,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; @@ -28,7 +28,7 @@ import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java b/Server/src/main/content/global/skill/slayer/dungeon/FremennikDungeon.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java rename to Server/src/main/content/global/skill/slayer/dungeon/FremennikDungeon.java index ad62afca9..cb1cb5c49 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java +++ b/Server/src/main/content/global/skill/slayer/dungeon/FremennikDungeon.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.slayer.dungeon; +package content.global.skill.slayer.dungeon; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -10,7 +10,7 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/LumbridgeDungeon.java b/Server/src/main/content/global/skill/slayer/dungeon/LumbridgeDungeon.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/LumbridgeDungeon.java rename to Server/src/main/content/global/skill/slayer/dungeon/LumbridgeDungeon.java index edeea29ac..c47cfff3c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/LumbridgeDungeon.java +++ b/Server/src/main/content/global/skill/slayer/dungeon/LumbridgeDungeon.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.slayer.dungeon; +package content.global.skill.slayer.dungeon; +import content.global.skill.slayer.SlayerEquipmentFlags; import core.cache.def.impl.NPCDefinition; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -9,7 +9,7 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; @@ -18,7 +18,7 @@ import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/SmokeDungeon.java b/Server/src/main/content/global/skill/slayer/dungeon/SmokeDungeon.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/SmokeDungeon.java rename to Server/src/main/content/global/skill/slayer/dungeon/SmokeDungeon.java index f7f020282..edce0a909 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/SmokeDungeon.java +++ b/Server/src/main/content/global/skill/slayer/dungeon/SmokeDungeon.java @@ -1,22 +1,22 @@ -package core.game.node.entity.skill.slayer.dungeon; +package content.global.skill.slayer.dungeon; +import content.global.skill.slayer.SlayerEquipmentFlags; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/StrongholdSlayerCave.java b/Server/src/main/content/global/skill/slayer/dungeon/StrongholdSlayerCave.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/StrongholdSlayerCave.java rename to Server/src/main/content/global/skill/slayer/dungeon/StrongholdSlayerCave.java index 43434f394..03852d18f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/StrongholdSlayerCave.java +++ b/Server/src/main/content/global/skill/slayer/dungeon/StrongholdSlayerCave.java @@ -1,7 +1,7 @@ /* package core.game.node.entity.skill.slayer.dungeon; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.gather.SkillingTool; import core.game.node.entity.skill.slayer.Master; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/unused-tasks b/Server/src/main/content/global/skill/slayer/unused-tasks similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/slayer/unused-tasks rename to Server/src/main/content/global/skill/slayer/unused-tasks diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/BarType.java b/Server/src/main/content/global/skill/smithing/BarType.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/BarType.java rename to Server/src/main/content/global/skill/smithing/BarType.java index fff3d85e0..1052998af 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/BarType.java +++ b/Server/src/main/content/global/skill/smithing/BarType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; /** * @author Emperor diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/Bars.java b/Server/src/main/content/global/skill/smithing/Bars.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/smithing/Bars.java rename to Server/src/main/content/global/skill/smithing/Bars.java index 38b21f09e..2a8b9f493 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/Bars.java +++ b/Server/src/main/content/global/skill/smithing/Bars.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DragonShieldDialogue.java b/Server/src/main/content/global/skill/smithing/DragonShieldDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/DragonShieldDialogue.java rename to Server/src/main/content/global/skill/smithing/DragonShieldDialogue.java index ee016d005..84d4e7edf 100644 --- a/Server/src/main/java/core/game/content/dialogue/DragonShieldDialogue.java +++ b/Server/src/main/content/global/skill/smithing/DragonShieldDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.global.skill.smithing; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java b/Server/src/main/content/global/skill/smithing/FurnaceOptionPlugin.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java rename to Server/src/main/content/global/skill/smithing/FurnaceOptionPlugin.java index 765f2a3a0..1468549d2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java +++ b/Server/src/main/content/global/skill/smithing/FurnaceOptionPlugin.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; +import content.global.skill.smithing.smelting.Bar; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.smithing.smelting.Bar; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -11,7 +11,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingBuilder.java b/Server/src/main/content/global/skill/smithing/SmithingBuilder.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/SmithingBuilder.java rename to Server/src/main/content/global/skill/smithing/SmithingBuilder.java index f523e4dfc..3638be844 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingBuilder.java +++ b/Server/src/main/content/global/skill/smithing/SmithingBuilder.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; +import content.global.skill.smithing.smelting.Bar; import core.game.component.Component; import core.game.container.access.InterfaceContainer; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.smithing.smelting.Bar; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingPulse.java b/Server/src/main/content/global/skill/smithing/SmithingPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/SmithingPulse.java rename to Server/src/main/content/global/skill/smithing/SmithingPulse.java index 8c4f95f15..ea65d0818 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingPulse.java +++ b/Server/src/main/content/global/skill/smithing/SmithingPulse.java @@ -1,6 +1,7 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; -import api.events.ResourceProducedEvent; +import content.global.skill.skillcapeperks.SkillcapePerks; +import core.game.event.ResourceProducedEvent; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; @@ -10,7 +11,6 @@ import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.tools.StringUtils; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; /** * Represents the pulse used to smith a bar. diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingType.java b/Server/src/main/content/global/skill/smithing/SmithingType.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/smithing/SmithingType.java rename to Server/src/main/content/global/skill/smithing/SmithingType.java index 3b1d93c63..99054f7ec 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/SmithingType.java +++ b/Server/src/main/content/global/skill/smithing/SmithingType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.smithing; +package content.global.skill.smithing; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/smelting/Bar.java b/Server/src/main/content/global/skill/smithing/smelting/Bar.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/smelting/Bar.java rename to Server/src/main/content/global/skill/smithing/smelting/Bar.java index b85acb89d..04177c11a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/smelting/Bar.java +++ b/Server/src/main/content/global/skill/smithing/smelting/Bar.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.smithing.smelting; +package content.global.skill.smithing.smelting; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/smelting/SmeltingPulse.java b/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/smithing/smelting/SmeltingPulse.java rename to Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java index fdd6db7ae..c1dd2e570 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/smelting/SmeltingPulse.java +++ b/Server/src/main/content/global/skill/smithing/smelting/SmeltingPulse.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.smithing.smelting; +package content.global.skill.smithing.smelting; -import static api.ContentAPIKt.*; -import api.EquipmentSlot; -import api.events.ResourceProducedEvent; +import static core.api.ContentAPIKt.*; +import core.api.EquipmentSlot; +import core.game.event.ResourceProducedEvent; import core.game.container.impl.EquipmentContainer; import org.rs09.consts.Items; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/CarvedEvilTurnipListener.kt b/Server/src/main/content/global/skill/summoning/CarvedEvilTurnipListener.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/CarvedEvilTurnipListener.kt rename to Server/src/main/content/global/skill/summoning/CarvedEvilTurnipListener.kt index 1c7f69699..c78082f27 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/CarvedEvilTurnipListener.kt +++ b/Server/src/main/content/global/skill/summoning/CarvedEvilTurnipListener.kt @@ -1,8 +1,7 @@ -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import core.tools.RandomFunction +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class CarvedEvilTurnipListener : InteractionListener { val knife = Items.KNIFE_946 diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/ObeliskOptionPlugin.java b/Server/src/main/content/global/skill/summoning/ObeliskOptionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/summoning/ObeliskOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/ObeliskOptionPlugin.java index f6f34e2d8..bddff2eee 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/ObeliskOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/ObeliskOptionPlugin.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; -import api.events.SummoningPointsRechargeEvent; +import core.game.event.SummoningPointsRechargeEvent; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreationPlugin.java b/Server/src/main/content/global/skill/summoning/SummoningCreationPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreationPlugin.java rename to Server/src/main/content/global/skill/summoning/SummoningCreationPlugin.java index dc17f2099..8e892a2a1 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreationPlugin.java +++ b/Server/src/main/content/global/skill/summoning/SummoningCreationPlugin.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -11,7 +11,7 @@ import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; import kotlin.Unit; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents a component plugin used to handle the summoning creation of a diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java b/Server/src/main/content/global/skill/summoning/SummoningCreator.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java rename to Server/src/main/content/global/skill/summoning/SummoningCreator.java index 1adb6a8c9..68d3e974a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java +++ b/Server/src/main/content/global/skill/summoning/SummoningCreator.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; import core.cache.def.impl.CS2Mapping; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningPouch.java b/Server/src/main/content/global/skill/summoning/SummoningPouch.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/summoning/SummoningPouch.java rename to Server/src/main/content/global/skill/summoning/SummoningPouch.java index 0bed6b61b..163bde484 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningPouch.java +++ b/Server/src/main/content/global/skill/summoning/SummoningPouch.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningScroll.java b/Server/src/main/content/global/skill/summoning/SummoningScroll.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/summoning/SummoningScroll.java rename to Server/src/main/content/global/skill/summoning/SummoningScroll.java index 4a217bec7..80ffe286d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningScroll.java +++ b/Server/src/main/content/global/skill/summoning/SummoningScroll.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; /** * Represents a summoning scroll. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/SummoningTabListener.kt b/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/SummoningTabListener.kt rename to Server/src/main/content/global/skill/summoning/SummoningTabListener.kt index b89efffb8..be1afbd99 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/summoning/SummoningTabListener.kt +++ b/Server/src/main/content/global/skill/summoning/SummoningTabListener.kt @@ -1,9 +1,6 @@ -import core.game.component.Component -import core.game.component.ComponentDefinition -import core.game.node.entity.skill.summoning.familiar.BurdenBeast -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial -import core.game.node.entity.player.Player -import rs09.game.interaction.InterfaceListener +import content.global.skill.summoning.familiar.BurdenBeast +import content.global.skill.summoning.familiar.FamiliarSpecial +import core.game.interaction.InterfaceListener class SummoningTabListener : InterfaceListener { override fun defineInterfaceListeners() { diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java b/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java rename to Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java index 672465efa..d061fbbac 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java +++ b/Server/src/main/content/global/skill/summoning/SummoningTrainingRoom.java @@ -1,13 +1,13 @@ -package core.game.node.entity.skill.summoning; +package content.global.skill.summoning; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.ClimbActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.ClimbActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -18,7 +18,7 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.map.path.Pathfinder; @@ -31,7 +31,7 @@ import core.net.packet.context.MinimapStateContext; import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the summoning training room. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalLurkerNPC.java b/Server/src/main/content/global/skill/summoning/familiar/AbyssalLurkerNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalLurkerNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/AbyssalLurkerNPC.java index c93e9dafa..9fb1effdc 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalLurkerNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/AbyssalLurkerNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalParasiteNPC.java b/Server/src/main/content/global/skill/summoning/familiar/AbyssalParasiteNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalParasiteNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/AbyssalParasiteNPC.java index 45e54497a..795484722 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalParasiteNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/AbyssalParasiteNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/AbyssalTitanNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/AbyssalTitanNPC.java index 25e0c3076..716a32629 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/AbyssalTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/AbyssalTitanNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/AlbinoRatNPC.java b/Server/src/main/content/global/skill/summoning/familiar/AlbinoRatNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/AlbinoRatNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/AlbinoRatNPC.java index 56ab6ef0c..28842ad58 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/AlbinoRatNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/AlbinoRatNPC.java @@ -1,8 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ArcticBearNPC.java b/Server/src/main/content/global/skill/summoning/familiar/ArcticBearNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/ArcticBearNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/ArcticBearNPC.java index e65013e9d..8639adb71 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ArcticBearNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/ArcticBearNPC.java @@ -1,9 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BabyChinchompaNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BabyChinchompaNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BabyChinchompaNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BabyChinchompaNPC.java index e6841ff27..66c03042b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BabyChinchompaNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BabyChinchompaNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.Metamorphosis; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BarkerToadNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BarkerToadNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BarkerToadNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BarkerToadNPC.java index 37b01f64c..97d7512c7 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BarkerToadNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BarkerToadNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BeaverDialogue.java b/Server/src/main/content/global/skill/summoning/familiar/BeaverDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/BeaverDialogue.java rename to Server/src/main/content/global/skill/summoning/familiar/BeaverDialogue.java index e00dfc218..dff82b323 100644 --- a/Server/src/main/java/core/game/content/dialogue/BeaverDialogue.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BeaverDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BeaverNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BeaverNPC.java index aadf2cdbc..05c810f0c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BeaverNPC.java @@ -1,15 +1,12 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.path.Pathfinder; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BloatedLeechNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BloatedLeechNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BloatedLeechNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BloatedLeechNPC.java index c8503d3c9..fc8ba7c12 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BloatedLeechNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BloatedLeechNPC.java @@ -1,9 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BullAntNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BullAntNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BullAntNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BullAntNPC.java index f2e081a96..46e4be3dd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BullAntNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BullAntNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BunyipNPC.java b/Server/src/main/content/global/skill/summoning/familiar/BunyipNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/BunyipNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/BunyipNPC.java index 34f2c8f28..dab0ee56b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BunyipNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BunyipNPC.java @@ -1,20 +1,18 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.combat.ImpactHandler; -import core.game.content.consumable.Consumable; -import core.game.content.consumable.Consumables; +import core.game.consumable.Consumable; +import content.data.consumables.Consumables; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.cooking.CookableItems; -import core.game.node.entity.skill.fishing.Fish; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.cooking.CookableItems; +import content.global.skill.fishing.Fish; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenBeast.java b/Server/src/main/content/global/skill/summoning/familiar/BurdenBeast.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenBeast.java rename to Server/src/main/content/global/skill/summoning/familiar/BurdenBeast.java index 23a9b451d..d6a3100d0 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenBeast.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BurdenBeast.java @@ -1,11 +1,11 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.game.component.CloseEvent; import core.game.component.Component; import core.game.container.Container; import core.game.container.access.InterfaceContainer; -import rs09.game.system.config.ItemConfigParser; -import core.game.node.entity.skill.summoning.SummoningPouch; +import core.game.system.config.ItemConfigParser; +import content.global.skill.summoning.SummoningPouch; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenContainerListener.java b/Server/src/main/content/global/skill/summoning/familiar/BurdenContainerListener.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenContainerListener.java rename to Server/src/main/content/global/skill/summoning/familiar/BurdenContainerListener.java index 860030941..4856fd75a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenContainerListener.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BurdenContainerListener.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.game.container.Container; import core.game.container.ContainerEvent; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenInterfacePlugin.java b/Server/src/main/content/global/skill/summoning/familiar/BurdenInterfacePlugin.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenInterfacePlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/BurdenInterfacePlugin.java index ebfbbbcb9..f9a8fd1a2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/BurdenInterfacePlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/BurdenInterfacePlugin.java @@ -1,12 +1,11 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.container.Container; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/CockatriceFamiliarNPC.java b/Server/src/main/content/global/skill/summoning/familiar/CockatriceFamiliarNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/familiar/CockatriceFamiliarNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/CockatriceFamiliarNPC.java index 7a46ba1ec..d1716b3d5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/CockatriceFamiliarNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/CockatriceFamiliarNPC.java @@ -1,21 +1,18 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the loading of a cockatrice familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java b/Server/src/main/content/global/skill/summoning/familiar/CompostMoundNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/CompostMoundNPC.java index 37430d431..77aae4d40 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/CompostMoundNPC.java @@ -1,16 +1,15 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import content.global.skill.farming.CompostBin; +import content.global.skill.farming.CompostBins; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; @@ -19,9 +18,7 @@ import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; import org.rs09.consts.Items; -import rs09.game.node.entity.skill.farming.CompostBin; -import rs09.game.node.entity.skill.farming.CompostBins; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the Compost Mound familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java b/Server/src/main/content/global/skill/summoning/familiar/DesertWyrmNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/DesertWyrmNPC.java index 82285a42c..9fc7576fd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/DesertWyrmNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import java.util.ArrayList; import java.util.List; @@ -7,10 +7,7 @@ import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.gather.SkillingResource; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; +import content.global.skill.gather.SkillingResource; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; @@ -22,14 +19,14 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the Desert Wyrm familiar. diff --git a/Server/src/main/java/core/game/content/dialogue/DismissDialoguePlugin.java b/Server/src/main/content/global/skill/summoning/familiar/DismissDialoguePlugin.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/DismissDialoguePlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/DismissDialoguePlugin.java index a44cc3d89..641f95121 100644 --- a/Server/src/main/java/core/game/content/dialogue/DismissDialoguePlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/DismissDialoguePlugin.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.pet.Pet; +import content.global.skill.summoning.pet.Pet; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/DreadfowlNPC.java b/Server/src/main/content/global/skill/summoning/familiar/DreadfowlNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/DreadfowlNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/DreadfowlNPC.java index 783dcd95f..857048cdd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/DreadfowlNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/DreadfowlNPC.java @@ -1,22 +1,20 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.WeaponInterface; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ElementalTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/ElementalTitanNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/ElementalTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/ElementalTitanNPC.java index 7d1b9558d..bfebc3988 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ElementalTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/ElementalTitanNPC.java @@ -1,9 +1,9 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.FamiliarSpecial; public abstract class ElementalTitanNPC extends Familiar { diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/EvilTurnipNPC.java b/Server/src/main/content/global/skill/summoning/familiar/EvilTurnipNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/EvilTurnipNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/EvilTurnipNPC.java index ae8a234eb..0d6de5185 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/EvilTurnipNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/EvilTurnipNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Familiar.java b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Familiar.java rename to Server/src/main/content/global/skill/summoning/familiar/Familiar.java index 6f811f6c8..ffef05556 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Familiar.java +++ b/Server/src/main/content/global/skill/summoning/familiar/Familiar.java @@ -1,5 +1,7 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; +import content.global.skill.summoning.SummoningScroll; +import content.global.skill.summoning.pet.Pet; import core.cache.def.impl.NPCDefinition; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; @@ -12,8 +14,6 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.SummoningScroll; -import core.game.node.entity.skill.summoning.pet.Pet; import core.game.node.item.Item; import core.game.system.task.Pulse; import core.game.world.map.Location; @@ -24,11 +24,11 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import core.game.node.entity.skill.summoning.SummoningPouch; +import core.game.node.entity.combat.CombatPulse; +import core.game.node.entity.combat.CombatSwingHandler; +import core.tools.SystemLogger; +import core.game.world.GameWorld; +import content.global.skill.summoning.SummoningPouch; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/content/dialogue/FamiliarDialoguePlugin.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarDialoguePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/FamiliarDialoguePlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarDialoguePlugin.java index 7ac2bc312..563165e8d 100644 --- a/Server/src/main/java/core/game/content/dialogue/FamiliarDialoguePlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarDialoguePlugin.java @@ -1,7 +1,7 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarFeedPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarFeedPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarFeedPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarFeedPlugin.java index 5277bcb3b..309047589 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarFeedPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarFeedPlugin.java @@ -1,6 +1,6 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.pet.Pet; +import content.global.skill.summoning.pet.Pet; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarItemOptionPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarItemOptionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarItemOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarItemOptionPlugin.java index f5f45dd27..7f9612c76 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarItemOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarItemOptionPlugin.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; +import content.global.skill.summoning.pet.Pets; import core.cache.def.impl.ItemDefinition; -import core.game.node.entity.skill.summoning.pet.Pets; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java index 1b5ab8791..e1538f0dd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarManager.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarManager.java @@ -1,16 +1,14 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; +import content.global.skill.summoning.pet.Pet; +import content.global.skill.summoning.pet.Pets; import core.cache.def.impl.ItemDefinition; import core.game.component.Component; -import core.game.container.Container; -import rs09.game.system.SystemLogger; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.SummoningPouch; -import core.game.node.entity.skill.summoning.pet.Pet; -import core.game.node.entity.skill.summoning.pet.PetDetails; -import core.game.node.entity.skill.summoning.pet.Pets; +import content.global.skill.summoning.SummoningPouch; +import content.global.skill.summoning.pet.PetDetails; import core.game.node.entity.combat.BattleState; import core.game.node.entity.player.Player; @@ -19,12 +17,10 @@ import core.game.world.map.Location; import core.game.world.map.zone.ZoneRestriction; import core.game.world.update.flag.context.Animation; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Map.Entry; /** * Handles a player's familiar. diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarNPCOptionPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarNPCOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarNPCOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarNPCOptionPlugin.java index 558fe0d5d..cbaf1aa92 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarNPCOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarNPCOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarSpecial.java b/Server/src/main/content/global/skill/summoning/familiar/FamiliarSpecial.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarSpecial.java rename to Server/src/main/content/global/skill/summoning/familiar/FamiliarSpecial.java index 03cff5599..2aa0b812a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/FamiliarSpecial.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FamiliarSpecial.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/FireTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/FireTitanNPC.java similarity index 78% rename from Server/src/main/java/core/game/node/entity/npc/familiar/FireTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/FireTitanNPC.java index 6f0e44fe7..524ed9a5e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/FireTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FireTitanNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.combat.equipment.WeaponInterface; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Forager.java b/Server/src/main/content/global/skill/summoning/familiar/Forager.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Forager.java rename to Server/src/main/content/global/skill/summoning/familiar/Forager.java index 82e62387e..c7ad322c2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/Forager.java +++ b/Server/src/main/content/global/skill/summoning/familiar/Forager.java @@ -1,9 +1,9 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java b/Server/src/main/content/global/skill/summoning/familiar/ForgeRegentNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/ForgeRegentNPC.java index ab69357a1..fddb9af88 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/ForgeRegentNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.container.impl.EquipmentContainer; import core.game.interaction.NodeUsageEvent; @@ -9,19 +9,17 @@ import core.game.node.item.GroundItemManager; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.player.FaceLocationFlag; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.firemaking.FireMakingPulse; -import core.game.node.entity.skill.firemaking.Log; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.firemaking.FireMakingPulse; +import content.global.skill.firemaking.Log; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/FruitBatNPC.java b/Server/src/main/content/global/skill/summoning/familiar/FruitBatNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/familiar/FruitBatNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/FruitBatNPC.java index 464b6f41f..bd701f530 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/FruitBatNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/FruitBatNPC.java @@ -1,14 +1,11 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.item.WeightedChanceItem; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/GeyserTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/GeyserTitanNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/familiar/GeyserTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/GeyserTitanNPC.java index 67683a0d9..76406f36e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/GeyserTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/GeyserTitanNPC.java @@ -1,8 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/GiantChinchompaNPC.java b/Server/src/main/content/global/skill/summoning/familiar/GiantChinchompaNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/familiar/GiantChinchompaNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/GiantChinchompaNPC.java index 2d6e46a6d..c0c57202a 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/GiantChinchompaNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/GiantChinchompaNPC.java @@ -1,16 +1,14 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import java.util.List; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/GiantEntNPC.java b/Server/src/main/content/global/skill/summoning/familiar/GiantEntNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/GiantEntNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/GiantEntNPC.java index e516c4a78..a55bd3fa5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/GiantEntNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/GiantEntNPC.java @@ -1,19 +1,16 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; +import content.global.skill.farming.FarmingPatch; +import content.global.skill.farming.PatchType; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.item.Item; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; import org.rs09.consts.Items; -import rs09.game.node.entity.skill.farming.FarmingPatch; -import rs09.game.node.entity.skill.farming.PatchType; /** * Represents the Giant Ent familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/GraniteCrabNPC.java b/Server/src/main/content/global/skill/summoning/familiar/GraniteCrabNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/GraniteCrabNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/GraniteCrabNPC.java index d26a56499..be937a0eb 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/GraniteCrabNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/GraniteCrabNPC.java @@ -1,12 +1,9 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fishing.Fish; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; +import content.global.skill.fishing.Fish; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/GraniteLobsterNPC.java b/Server/src/main/content/global/skill/summoning/familiar/GraniteLobsterNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/npc/familiar/GraniteLobsterNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/GraniteLobsterNPC.java index 400cbf7c2..b66b19993 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/GraniteLobsterNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/GraniteLobsterNPC.java @@ -1,11 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fishing.Fish; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; +import content.global.skill.fishing.Fish; import core.game.node.entity.Entity; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/HoneyBadgerNPC.java b/Server/src/main/content/global/skill/summoning/familiar/HoneyBadgerNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/HoneyBadgerNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/HoneyBadgerNPC.java index 061c45831..6005c79bb 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/HoneyBadgerNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/HoneyBadgerNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/HydraNPC.java b/Server/src/main/content/global/skill/summoning/familiar/HydraNPC.java similarity index 82% rename from Server/src/main/java/core/game/node/entity/npc/familiar/HydraNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/HydraNPC.java index 19f4ad882..1cc985a30 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/HydraNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/HydraNPC.java @@ -1,14 +1,12 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; +import content.global.skill.farming.FarmingPatch; +import content.global.skill.farming.Patch; import core.game.node.Node; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.scenery.Scenery; import core.plugin.Initializable; -import rs09.game.node.entity.skill.farming.FarmingPatch; -import rs09.game.node.entity.skill.farming.Patch; /** * Represents the Hydra familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/IbisNPC.java b/Server/src/main/content/global/skill/summoning/familiar/IbisNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/IbisNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/IbisNPC.java index 0fe94ef0f..43fc3702a 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/IbisNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/IbisNPC.java @@ -1,16 +1,13 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.fishing.Fish; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; +import content.global.skill.fishing.Fish; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/IceTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/IceTitanNPC.java similarity index 82% rename from Server/src/main/java/core/game/node/entity/npc/familiar/IceTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/IceTitanNPC.java index 028e51225..23bd94f2c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/IceTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/IceTitanNPC.java @@ -1,8 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/IronTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/IronTitanNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/IronTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/IronTitanNPC.java index 1dc684199..f47cbf8e5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/IronTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/IronTitanNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -6,13 +6,11 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Represents the Iron Titan familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/KalphiteNPC.java b/Server/src/main/content/global/skill/summoning/familiar/KalphiteNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/familiar/KalphiteNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/KalphiteNPC.java index a9c78c6d8..62b5020a0 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/KalphiteNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/KalphiteNPC.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.Metamorphosis; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/KaramthulhuOverlordNPC.java b/Server/src/main/content/global/skill/summoning/familiar/KaramthulhuOverlordNPC.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/npc/familiar/KaramthulhuOverlordNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/KaramthulhuOverlordNPC.java index c96f2eea4..d2e2bf121 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/KaramthulhuOverlordNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/KaramthulhuOverlordNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LavaTitanDialogue.java b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/LavaTitanDialogue.java rename to Server/src/main/content/global/skill/summoning/familiar/LavaTitanDialogue.java index 824ca1a54..dc1854ee9 100644 --- a/Server/src/main/java/core/game/content/dialogue/LavaTitanDialogue.java +++ b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.node.entity.skill.summoning.familiar.Familiar; import core.game.world.map.Location; import core.game.world.map.zone.impl.WildernessZone; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/LavaTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/familiar/LavaTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/LavaTitanNPC.java index 11c059e26..edac3c9ff 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/LavaTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanNPC.java @@ -1,9 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/LavaTitanOptionPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanOptionPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/npc/LavaTitanOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/LavaTitanOptionPlugin.java index db412b594..bdbe77f47 100644 --- a/Server/src/main/java/core/game/interaction/npc/LavaTitanOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/LavaTitanOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/MacawNPC.java b/Server/src/main/content/global/skill/summoning/familiar/MacawNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/MacawNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/MacawNPC.java index 7823f8640..a5ccf78d5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/MacawNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/MacawNPC.java @@ -1,20 +1,15 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; -import core.game.node.entity.skill.summoning.familiar.RemoteViewer; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/MagpieNPC.java b/Server/src/main/content/global/skill/summoning/familiar/MagpieNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/MagpieNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/MagpieNPC.java index 86d2a9794..244c48980 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/MagpieNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/MagpieNPC.java @@ -1,11 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.gem.Gems; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; +import content.global.skill.crafting.gem.Gems; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/MinotaurFamiliarNPC.java b/Server/src/main/content/global/skill/summoning/familiar/MinotaurFamiliarNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/familiar/MinotaurFamiliarNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/MinotaurFamiliarNPC.java index aebb62c0d..33e8f9ba4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/MinotaurFamiliarNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/MinotaurFamiliarNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.WeaponInterface; @@ -9,11 +7,11 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/MossTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/MossTitanNPC.java similarity index 81% rename from Server/src/main/java/core/game/node/entity/npc/familiar/MossTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/MossTitanNPC.java index 43c296d88..380ec0d5b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/MossTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/MossTitanNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ObsidianGolemNPC.java b/Server/src/main/content/global/skill/summoning/familiar/ObsidianGolemNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/ObsidianGolemNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/ObsidianGolemNPC.java index a5843e79f..6b62e34c0 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ObsidianGolemNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/ObsidianGolemNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/PackYakNPC.java b/Server/src/main/content/global/skill/summoning/familiar/PackYakNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/familiar/PackYakNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/PackYakNPC.java index 7841dd807..f159bf4c0 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/PackYakNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/PackYakNPC.java @@ -1,11 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import rs09.game.system.config.ItemConfigParser; +import core.game.system.config.ItemConfigParser; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.SummoningScroll; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.summoning.SummoningScroll; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/PrayingMantisNPC.java b/Server/src/main/content/global/skill/summoning/familiar/PrayingMantisNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/PrayingMantisNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/PrayingMantisNPC.java index 4b4b5d4ab..d6c8298dd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/PrayingMantisNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/PrayingMantisNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java b/Server/src/main/content/global/skill/summoning/familiar/PyreLordNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/PyreLordNPC.java index 05af17627..46f4b2aaf 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/PyreLordNPC.java @@ -1,14 +1,12 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.jewellery.JewelleryCrafting; -import core.game.node.entity.skill.firemaking.FireMakingPulse; -import core.game.node.entity.skill.firemaking.Log; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.crafting.jewellery.JewelleryCrafting; +import content.global.skill.firemaking.FireMakingPulse; +import content.global.skill.firemaking.Log; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.combat.equipment.WeaponInterface; @@ -19,13 +17,13 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.game.world.update.flag.player.FaceLocationFlag; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the Pyrelord familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/RavenousLocustNPC.java b/Server/src/main/content/global/skill/summoning/familiar/RavenousLocustNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/familiar/RavenousLocustNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/RavenousLocustNPC.java index 4446e06ec..bd1cb72c4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/RavenousLocustNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/RavenousLocustNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.content.consumable.Consumable; -import core.game.content.consumable.Consumables; +import core.game.consumable.Consumable; +import content.data.consumables.Consumables; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewDialogue.java b/Server/src/main/content/global/skill/summoning/familiar/RemoteViewDialogue.java similarity index 79% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewDialogue.java rename to Server/src/main/content/global/skill/summoning/familiar/RemoteViewDialogue.java index 6c930a343..01e9e812f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewDialogue.java +++ b/Server/src/main/content/global/skill/summoning/familiar/RemoteViewDialogue.java @@ -1,9 +1,8 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.summoning.familiar.RemoteViewer.ViewType; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** @@ -50,7 +49,7 @@ public final class RemoteViewDialogue extends DialoguePlugin { @Override public boolean handle(int interfaceId, int buttonId) { end(); - RemoteViewer.create(player, familiar, familiar.getViewAnimation(), ViewType.values()[-1 + buttonId]).startViewing(); + RemoteViewer.create(player, familiar, familiar.getViewAnimation(), RemoteViewer.ViewType.values()[-1 + buttonId]).startViewing(); return true; } diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewer.java b/Server/src/main/content/global/skill/summoning/familiar/RemoteViewer.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewer.java rename to Server/src/main/content/global/skill/summoning/familiar/RemoteViewer.java index b30d66f85..647bddda6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/RemoteViewer.java +++ b/Server/src/main/content/global/skill/summoning/familiar/RemoteViewer.java @@ -1,8 +1,8 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SmokeDevilNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SmokeDevilNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SmokeDevilNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SmokeDevilNPC.java index 82fd4cc32..545ce6345 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SmokeDevilNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SmokeDevilNPC.java @@ -1,11 +1,9 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import java.util.List; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SnakelingNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SnakelingNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SnakelingNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SnakelingNPC.java index 09650a274..cd6372f62 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SnakelingNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SnakelingNPC.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.Metamorphosis; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritCobraNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritCobraNPC.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritCobraNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritCobraNPC.java index f0e7bfb75..83f1d21ae 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritCobraNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritCobraNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritDagannothNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritDagannothNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritDagannothNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritDagannothNPC.java index 13ff8d652..b7e5bacd4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritDagannothNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritDagannothNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SpiritGraahkDialogue.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/SpiritGraahkDialogue.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkDialogue.java index 012053ff6..98721c62f 100644 --- a/Server/src/main/java/core/game/content/dialogue/SpiritGraahkDialogue.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritGraahkNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritGraahkNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkNPC.java index 3a642dde6..dd6b48975 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritGraahkNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkNPC.java @@ -1,9 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/SpiritGraahkOptionPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkOptionPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/npc/SpiritGraahkOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkOptionPlugin.java index 43b4977f5..44c4678a9 100644 --- a/Server/src/main/java/core/game/interaction/npc/SpiritGraahkOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritGraahkOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritJellyNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritJellyNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritJellyNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritJellyNPC.java index 0ef6c9225..86ee948ed 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritJellyNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritJellyNPC.java @@ -1,8 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKalphiteNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritKalphiteNPC.java similarity index 87% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKalphiteNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritKalphiteNPC.java index 43f8caecd..3768df594 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKalphiteNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritKalphiteNPC.java @@ -1,16 +1,13 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import java.util.List; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/SpiritKyattDialogue.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/SpiritKyattDialogue.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritKyattDialogue.java index 6ef1cf549..e0f311308 100644 --- a/Server/src/main/java/core/game/content/dialogue/SpiritKyattDialogue.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.familiar; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKyattNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKyattNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritKyattNPC.java index f4b6097a2..9bc3c4550 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritKyattNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattNPC.java @@ -1,9 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattOptionPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritKyattOptionPlugin.java index 0700cbd80..4cf912244 100644 --- a/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritKyattOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritLarupiaNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritLarupiaNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritLarupiaNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritLarupiaNPC.java index d4382db5c..64f8c2996 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritLarupiaNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritLarupiaNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritMosquitoNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritMosquitoNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritMosquitoNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritMosquitoNPC.java index c343e137f..d1104629c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritMosquitoNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritMosquitoNPC.java @@ -1,8 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritPengatriceNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritPengatriceNPC.java similarity index 81% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritPengatriceNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritPengatriceNPC.java index 1f6a4694f..4ed246f3b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritPengatriceNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritPengatriceNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritScorpionNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritScorpionNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritScorpionNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritScorpionNPC.java index 7be64fac1..f1f3600c2 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritScorpionNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritScorpionNPC.java @@ -1,8 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritSpiderNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritSpiderNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritSpiderNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritSpiderNPC.java index 59e8f2404..5857c3b59 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritSpiderNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritSpiderNPC.java @@ -1,13 +1,11 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTerrorbirdNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritTerrorbirdNPC.java similarity index 85% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTerrorbirdNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritTerrorbirdNPC.java index 7024a3e01..9895522b5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTerrorbirdNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritTerrorbirdNPC.java @@ -1,10 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTzKihNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritTzKihNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTzKihNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritTzKihNPC.java index 46cf83d2b..19f97c6ba 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritTzKihNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritTzKihNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import java.util.List; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritWolfNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SpiritWolfNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SpiritWolfNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SpiritWolfNPC.java index a7d4897b8..bd12dba8d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SpiritWolfNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SpiritWolfNPC.java @@ -1,16 +1,14 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.CutscenePlugin; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.path.Path; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SteelTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SteelTitanNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SteelTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SteelTitanNPC.java index e55e6b1b4..7a52be545 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SteelTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SteelTitanNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -7,13 +7,11 @@ import core.game.node.entity.combat.equipment.SwitchAttack; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Handles the Steel titan familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/StrangerPlantNPC.java b/Server/src/main/content/global/skill/summoning/familiar/StrangerPlantNPC.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/npc/familiar/StrangerPlantNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/StrangerPlantNPC.java index 2b42e809b..fee6e4f21 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/StrangerPlantNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/StrangerPlantNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.Entity; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/SummonFamiliarPlugin.java b/Server/src/main/content/global/skill/summoning/familiar/SummonFamiliarPlugin.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/summoning/familiar/SummonFamiliarPlugin.java rename to Server/src/main/content/global/skill/summoning/familiar/SummonFamiliarPlugin.java index 76db891c4..8f6a407d8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/familiar/SummonFamiliarPlugin.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SummonFamiliarPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.familiar; +package content.global.skill.summoning.familiar; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; @@ -9,7 +9,6 @@ import core.game.node.item.Item; import core.game.world.map.zone.ZoneBorders; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.node.entity.npc.familiar.IbisNPC; /** * Handles summoning a familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/SwampTitanNPC.java b/Server/src/main/content/global/skill/summoning/familiar/SwampTitanNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/SwampTitanNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/SwampTitanNPC.java index db07d71e2..eb9071a3f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/SwampTitanNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/SwampTitanNPC.java @@ -1,8 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/TalonBeastNPC.java b/Server/src/main/content/global/skill/summoning/familiar/TalonBeastNPC.java similarity index 83% rename from Server/src/main/java/core/game/node/entity/npc/familiar/TalonBeastNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/TalonBeastNPC.java index 5d1f8cd16..b9d85375d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/TalonBeastNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/TalonBeastNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ThornySnailNPC.java b/Server/src/main/content/global/skill/summoning/familiar/ThornySnailNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/ThornySnailNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/ThornySnailNPC.java index 7c6b38c01..6e3bf4f95 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ThornySnailNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/ThornySnailNPC.java @@ -1,9 +1,6 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -11,7 +8,7 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/UnicornStallionNPC.java b/Server/src/main/content/global/skill/summoning/familiar/UnicornStallionNPC.java similarity index 92% rename from Server/src/main/java/core/game/node/entity/npc/familiar/UnicornStallionNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/UnicornStallionNPC.java index 4ee1d7352..f22c8ed32 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/UnicornStallionNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/UnicornStallionNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.combat.equipment.WeaponInterface; @@ -13,7 +11,7 @@ import core.game.node.entity.state.EntityState; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the Unicorn Stallion familiar. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/VampireBatNPC.java b/Server/src/main/content/global/skill/summoning/familiar/VampireBatNPC.java similarity index 89% rename from Server/src/main/java/core/game/node/entity/npc/familiar/VampireBatNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/VampireBatNPC.java index e29eabcdc..5c1007c45 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/VampireBatNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/VampireBatNPC.java @@ -1,7 +1,5 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.combat.equipment.WeaponInterface; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/VetionNPC.java b/Server/src/main/content/global/skill/summoning/familiar/VetionNPC.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/npc/familiar/VetionNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/VetionNPC.java index e02446283..f939260f2 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/VetionNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/VetionNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.Metamorphosis; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/VoidFamiliarNPC.java b/Server/src/main/content/global/skill/summoning/familiar/VoidFamiliarNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/familiar/VoidFamiliarNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/VoidFamiliarNPC.java index d688e6192..4f8d3fab5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/VoidFamiliarNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/VoidFamiliarNPC.java @@ -1,12 +1,9 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; -import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.combat.BattleState; @@ -14,12 +11,12 @@ import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The plugin used to load void familiar npcs. diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/WarTortoiseNPC.java b/Server/src/main/content/global/skill/summoning/familiar/WarTortoiseNPC.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/npc/familiar/WarTortoiseNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/WarTortoiseNPC.java index 661dd8493..b3b64551a 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/WarTortoiseNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/WarTortoiseNPC.java @@ -1,10 +1,7 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.BurdenBeast; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/WolpertingerNPC.java b/Server/src/main/content/global/skill/summoning/familiar/WolpertingerNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/familiar/WolpertingerNPC.java rename to Server/src/main/content/global/skill/summoning/familiar/WolpertingerNPC.java index a69839d66..ff1cfbcb6 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/WolpertingerNPC.java +++ b/Server/src/main/content/global/skill/summoning/familiar/WolpertingerNPC.java @@ -1,10 +1,8 @@ -package core.game.node.entity.npc.familiar; +package content.global.skill.summoning.familiar; import core.plugin.Initializable; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/IncubatorEgg.java b/Server/src/main/content/global/skill/summoning/pet/IncubatorEgg.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/summoning/pet/IncubatorEgg.java rename to Server/src/main/content/global/skill/summoning/pet/IncubatorEgg.java index 3a98c948c..11a6a024d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/IncubatorEgg.java +++ b/Server/src/main/content/global/skill/summoning/pet/IncubatorEgg.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.pet; +package content.global.skill.summoning.pet; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/IncubatorState.kt b/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/IncubatorState.kt rename to Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt index e4a43c354..611d80ca9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/IncubatorState.kt +++ b/Server/src/main/content/global/skill/summoning/pet/IncubatorState.kt @@ -1,9 +1,8 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.skill.summoning.pet import core.game.node.entity.player.Player -import core.game.node.entity.skill.summoning.pet.IncubatorEgg -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State import core.game.system.task.Pulse import org.json.simple.JSONObject diff --git a/Server/src/main/java/core/game/content/dialogue/KittenInteractDialogue.java b/Server/src/main/content/global/skill/summoning/pet/KittenInteractDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/KittenInteractDialogue.java rename to Server/src/main/content/global/skill/summoning/pet/KittenInteractDialogue.java index f9b024785..ee988b453 100644 --- a/Server/src/main/java/core/game/content/dialogue/KittenInteractDialogue.java +++ b/Server/src/main/content/global/skill/summoning/pet/KittenInteractDialogue.java @@ -1,9 +1,10 @@ -package core.game.content.dialogue; +package content.global.skill.summoning.pet; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.map.path.Path; import core.game.world.map.path.Pathfinder; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pet.java b/Server/src/main/content/global/skill/summoning/pet/Pet.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pet.java rename to Server/src/main/content/global/skill/summoning/pet/Pet.java index 6775bb157..4533ec24d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pet.java +++ b/Server/src/main/content/global/skill/summoning/pet/Pet.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.summoning.pet; +package content.global.skill.summoning.pet; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; +import content.global.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/PetDetails.java b/Server/src/main/content/global/skill/summoning/pet/PetDetails.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/skill/summoning/pet/PetDetails.java rename to Server/src/main/content/global/skill/summoning/pet/PetDetails.java index 97a905e18..6bb079f44 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/PetDetails.java +++ b/Server/src/main/content/global/skill/summoning/pet/PetDetails.java @@ -1,10 +1,8 @@ -package core.game.node.entity.skill.summoning.pet; +package content.global.skill.summoning.pet; -import rs09.game.world.GameWorld; - -import java.nio.ByteBuffer; +import core.game.world.GameWorld; /** * A class containing pet details for a certain pet. diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pets.java b/Server/src/main/content/global/skill/summoning/pet/Pets.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pets.java rename to Server/src/main/content/global/skill/summoning/pet/Pets.java index ce8c539c3..6e8cb2618 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/pet/Pets.java +++ b/Server/src/main/content/global/skill/summoning/pet/Pets.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.summoning.pet; +package content.global.skill.summoning.pet; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java b/Server/src/main/content/global/skill/thieving/PickableDoorHandler.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java rename to Server/src/main/content/global/skill/thieving/PickableDoorHandler.java index 408944d2e..315984644 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java +++ b/Server/src/main/content/global/skill/thieving/PickableDoorHandler.java @@ -1,7 +1,7 @@ -package core.game.node.entity.skill.thieving; +package content.global.skill.thieving; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpockets.kt b/Server/src/main/content/global/skill/thieving/Pickpockets.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpockets.kt rename to Server/src/main/content/global/skill/thieving/Pickpockets.kt index a0233a4ea..8f376ad8b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/Pickpockets.kt +++ b/Server/src/main/content/global/skill/thieving/Pickpockets.kt @@ -1,19 +1,19 @@ -package rs09.game.node.entity.skill.thieving +package content.global.skill.thieving import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem import java.util.stream.IntStream enum class Pickpockets(val ids: IntArray, val requiredLevel: Int, val low: Double, val high: Double, val experience: Double, val stunDamageMin: Int, val stunDamageMax: Int, val stunTime: Int, val table: WeightBasedTable) { MAN(intArrayOf(1, 2, 3, 4, 5, 6, 16, 24, 25, 170, 3224, 3915, 3226, 3227, 5924, 5923), 1, 180.0, 240.0, 8.0, 1, 1,5, WeightBasedTable.create( WeightedItem(Items.COINS_995,3,3,1.0,true) )), - FARMER(intArrayOf(7, 1757, 1758), 10, 180.0, 240.0, 14.5, 1,1,5,WeightBasedTable.create( + FARMER(intArrayOf(7, 1757, 1758), 10, 180.0, 240.0, 14.5, 1,1,5, WeightBasedTable.create( WeightedItem(Items.COINS_995,9,9,1.0,true), WeightedItem(Items.POTATO_SEED_5318,1,1,1.0,true) )), diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java b/Server/src/main/content/global/skill/thieving/Stall.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java rename to Server/src/main/content/global/skill/thieving/Stall.java index cd7a897c4..bd1dcefee 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java +++ b/Server/src/main/content/global/skill/thieving/Stall.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.thieving; +package content.global.skill.thieving; import core.game.node.item.Item; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java b/Server/src/main/content/global/skill/thieving/StallThiefPulse.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java rename to Server/src/main/content/global/skill/thieving/StallThiefPulse.java index 545e20d06..4734385c3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java +++ b/Server/src/main/content/global/skill/thieving/StallThiefPulse.java @@ -1,21 +1,19 @@ -package core.game.node.entity.skill.thieving; +package content.global.skill.thieving; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; -import rs09.game.world.GameWorld; -import core.game.world.map.Location; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; import core.tools.StringUtils; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; /** * Represents the pulse used to thieve a stall. diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java b/Server/src/main/content/global/skill/thieving/ThievableChestPlugin.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java rename to Server/src/main/content/global/skill/thieving/ThievableChestPlugin.java index 8f99f1235..2b7527fc4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java +++ b/Server/src/main/content/global/skill/thieving/ThievableChestPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.thieving; +package content.global.skill.thieving; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; @@ -10,7 +10,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/ThievingListeners.kt b/Server/src/main/content/global/skill/thieving/ThievingListeners.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/ThievingListeners.kt rename to Server/src/main/content/global/skill/thieving/ThievingListeners.kt index 41d2e8f9b..1722902e4 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/thieving/ThievingListeners.kt +++ b/Server/src/main/content/global/skill/thieving/ThievingListeners.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.skill.thieving +package content.global.skill.thieving import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.impl.Animator @@ -9,9 +9,9 @@ import core.game.node.entity.state.EntityState import core.game.world.update.flag.context.Animation import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.secondsToTicks +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.secondsToTicks class ThievingListeners : InteractionListener { @@ -21,7 +21,7 @@ class ThievingListeners : InteractionListener { override fun defineListeners() { - on(IntType.NPC,"pickpocket","pick-pocket"){player, node -> + on(IntType.NPC,"pickpocket","pick-pocket"){ player, node -> val pickpocketData = Pickpockets.forID(node.id) ?: return@on false var successMod = 0 diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java b/Server/src/main/content/global/skill/thieving/ThievingOptionPlugin.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java rename to Server/src/main/content/global/skill/thieving/ThievingOptionPlugin.java index 46eab307f..f5d0c8a26 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java +++ b/Server/src/main/content/global/skill/thieving/ThievingOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.thieving; +package content.global.skill.thieving; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/DiseasedState.kt b/Server/src/main/content/global/state/DiseasedState.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/DiseasedState.kt rename to Server/src/main/content/global/state/DiseasedState.kt index 5e3eae436..9dbadb0cf 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/DiseasedState.kt +++ b/Server/src/main/content/global/state/DiseasedState.kt @@ -1,13 +1,13 @@ -package rs09.game.node.entity.state.newsys.states +package content.global.state import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.tools.RandomFunction import org.json.simple.JSONObject -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State -import rs09.game.world.GameWorld +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State +import core.game.world.GameWorld @PlayerState("disease") class DiseasedState(player: Player? = null) : State(player){ diff --git a/Server/src/main/kotlin/rs09/game/content/global/travel/EssenceTeleport.kt b/Server/src/main/content/global/travel/EssenceTeleport.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/global/travel/EssenceTeleport.kt rename to Server/src/main/content/global/travel/EssenceTeleport.kt index 6e00692c0..bdbecfcb1 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/travel/EssenceTeleport.kt +++ b/Server/src/main/content/global/travel/EssenceTeleport.kt @@ -1,9 +1,10 @@ -package rs09.game.content.global.travel +package content.global.travel -import api.events.TeleportEvent -import api.lock -import api.teleport -import api.unlock +import content.global.skill.magic.TeleportMethod +import core.game.event.TeleportEvent +import core.api.lock +import core.api.teleport +import core.api.unlock import core.game.node.Node import core.game.node.entity.impl.Projectile import core.game.node.entity.npc.NPC @@ -15,8 +16,7 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction -import rs09.game.node.entity.skill.magic.TeleportMethod -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Represents a utilitity class for rune essence teleporting. diff --git a/Server/src/main/java/core/game/content/global/travel/canoe/Canoe.java b/Server/src/main/content/global/travel/canoe/Canoe.java similarity index 97% rename from Server/src/main/java/core/game/content/global/travel/canoe/Canoe.java rename to Server/src/main/content/global/travel/canoe/Canoe.java index b77baf349..d78377227 100644 --- a/Server/src/main/java/core/game/content/global/travel/canoe/Canoe.java +++ b/Server/src/main/content/global/travel/canoe/Canoe.java @@ -1,4 +1,4 @@ -package core.game.content.global.travel.canoe; +package content.global.travel.canoe; /** * Represents a canoe to craft. diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeInterfaceListeners.kt b/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeInterfaceListeners.kt rename to Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt index 62c20629a..df896f2b9 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeInterfaceListeners.kt +++ b/Server/src/main/content/global/travel/canoe/CanoeInterfaceListeners.kt @@ -1,12 +1,10 @@ -package rs09.game.interaction.`object`.canoestation +package content.global.travel.canoe -import api.* +import core.api.* import core.cache.def.impl.VarbitDefinition import core.game.component.Component -import core.game.content.global.travel.canoe.Canoe -import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import core.net.packet.PacketRepository @@ -14,7 +12,7 @@ import core.net.packet.context.MinimapStateContext import core.net.packet.out.MinimapState import core.tools.RandomFunction import org.rs09.consts.Components -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener import kotlin.math.abs class CanoeInterfaceListeners : InterfaceListener { @@ -29,9 +27,9 @@ class CanoeInterfaceListeners : InterfaceListener { override fun defineInterfaceListeners() { onOpen(SHAPE_INTERFACE){player, _ -> - CanoeUtils.checkCanoe(player,Canoe.DUGOUT) - CanoeUtils.checkCanoe(player,Canoe.STABLE_DUGOUT) - CanoeUtils.checkCanoe(player,Canoe.WAKA) + CanoeUtils.checkCanoe(player, Canoe.DUGOUT) + CanoeUtils.checkCanoe(player, Canoe.STABLE_DUGOUT) + CanoeUtils.checkCanoe(player, Canoe.WAKA) return@onOpen true } @@ -47,16 +45,16 @@ class CanoeInterfaceListeners : InterfaceListener { } player.lock() - animate(player,CanoeUtils.getShapeAnimation(axe)) + animate(player, CanoeUtils.getShapeAnimation(axe)) player.pulseManager.run(object : Pulse(3) { override fun pulse(): Boolean { if (RandomFunction.random(if (canoe == Canoe.WAKA) 8 else 6) == 1) { - player.varpManager.setVarbit(varbit,CanoeUtils.getCraftValue(canoe,false)) + player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, false)) player.skills.addExperience(Skills.WOODCUTTING, canoe.experience) player.unlock() return true } - animate(player,CanoeUtils.getShapeAnimation(axe)) + animate(player, CanoeUtils.getShapeAnimation(axe)) return false } }) @@ -65,7 +63,7 @@ class CanoeInterfaceListeners : InterfaceListener { onOpen(DESTINATION_INTERFACE){player, component -> val varbit = player.getAttribute("canoe-varbit",VarbitDefinition.forObjectID(0)) - val canoe = CanoeUtils.getCanoeFromVarbit(player,varbit) + val canoe = CanoeUtils.getCanoeFromVarbit(player, varbit) val stationIndex = CanoeUtils.getStationIndex(player.location) val maxDistance = canoe.maxDist player.packetDispatch.sendInterfaceConfig(DESTINATION_INTERFACE,boatChilds[stationIndex],true) @@ -88,7 +86,7 @@ class CanoeInterfaceListeners : InterfaceListener { val destIndex = CanoeUtils.getStationIndex(dest) val arrivalMessage = CanoeUtils.getNameByIndex(destIndex) val stationIndex = CanoeUtils.getStationIndex(player.location) - val interfaceAnimationId = CanoeUtils.getTravelAnimation(stationIndex,destIndex) + val interfaceAnimationId = CanoeUtils.getTravelAnimation(stationIndex, destIndex) var travelAnimDur = 15 val varbit = player.getAttribute("canoe-varbit",VarbitDefinition.forObjectID(0)) diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeStationListener.kt b/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeStationListener.kt rename to Server/src/main/content/global/travel/canoe/CanoeStationListener.kt index be03defd5..ee2cf8cd9 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeStationListener.kt +++ b/Server/src/main/content/global/travel/canoe/CanoeStationListener.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.`object`.canoestation +package content.global.travel.canoe import core.game.component.Component import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Components -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class CanoeStationListener : InteractionListener { @@ -20,10 +20,10 @@ class CanoeStationListener : InteractionListener { private val FLOAT = Animation(3304) override fun defineDestinationOverrides() { - setDest(IntType.SCENERY,STATION_IDs,"chop-down"){ _,node -> + setDest(IntType.SCENERY,STATION_IDs,"chop-down"){ _, node -> return@setDest CanoeUtils.getChopLocation(node.location) } - setDest(IntType.SCENERY,STATION_IDs,"shape-canoe","float canoe","float log","float waka"){ _,node -> + setDest(IntType.SCENERY,STATION_IDs,"shape-canoe","float canoe","float log","float waka"){ _, node -> return@setDest CanoeUtils.getCraftFloatLocation(node.location) } } @@ -75,13 +75,13 @@ class CanoeStationListener : InteractionListener { on(STATION_IDs, IntType.SCENERY, "float canoe","float log","float waka"){ player, node -> val varbit = node.asScenery().definition.configFile - val canoe = CanoeUtils.getCanoeFromVarbit(player,varbit) + val canoe = CanoeUtils.getCanoeFromVarbit(player, varbit) player.animator.animate(PUSH) player.lock() player.faceLocation(CanoeUtils.getFaceLocation(player.location)) player.pulseManager.run(object : Pulse(){ override fun pulse(): Boolean { - player.varpManager.setVarbit(varbit,CanoeUtils.getCraftValue(canoe,true)) + player.varpManager.setVarbit(varbit, CanoeUtils.getCraftValue(canoe, true)) player.packetDispatch.sendSceneryAnimation(node.asScenery(), FLOAT, false) player.unlock() return true diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeUtils.kt b/Server/src/main/content/global/travel/canoe/CanoeUtils.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeUtils.kt rename to Server/src/main/content/global/travel/canoe/CanoeUtils.kt index 5b466cf5e..7552d3f8b 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/canoestation/CanoeUtils.kt +++ b/Server/src/main/content/global/travel/canoe/CanoeUtils.kt @@ -1,10 +1,9 @@ -package rs09.game.interaction.`object`.canoestation +package content.global.travel.canoe import core.cache.def.impl.VarbitDefinition -import core.game.content.global.travel.canoe.Canoe import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.Components @@ -24,7 +23,7 @@ object CanoeUtils { player.packetDispatch.sendInterfaceConfig(SHAPE_INTERFACE,canoe.textChild,false) } - fun getCanoeFromVarbit(player: Player, varbit: VarbitDefinition): Canoe{ + fun getCanoeFromVarbit(player: Player, varbit: VarbitDefinition): Canoe { var bit = varbit.getValue(player) if(bit > 10) bit -= 10 return Canoe.values()[bit - 1] diff --git a/Server/src/main/java/core/game/content/dialogue/CaptainDalburDialogue.java b/Server/src/main/content/global/travel/glider/CaptainDalburDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/CaptainDalburDialogue.java rename to Server/src/main/content/global/travel/glider/CaptainDalburDialogue.java index 639f4c7a4..099ae43b7 100644 --- a/Server/src/main/java/core/game/content/dialogue/CaptainDalburDialogue.java +++ b/Server/src/main/content/global/travel/glider/CaptainDalburDialogue.java @@ -1,7 +1,8 @@ -package core.game.content.dialogue; +package content.global.travel.glider; import core.game.component.Component; -import core.game.content.global.travel.glider.Gliders; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/GliderPlugin.java b/Server/src/main/content/global/travel/glider/GliderPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/npc/GliderPlugin.java rename to Server/src/main/content/global/travel/glider/GliderPlugin.java index 867853fcd..70ed2de87 100644 --- a/Server/src/main/java/core/game/interaction/npc/GliderPlugin.java +++ b/Server/src/main/content/global/travel/glider/GliderPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.npc; +package content.global.travel.glider; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; -import core.game.content.global.travel.glider.Gliders; +import content.global.travel.glider.Gliders; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/travel/glider/GliderPulse.java b/Server/src/main/content/global/travel/glider/GliderPulse.java similarity index 98% rename from Server/src/main/java/core/game/content/global/travel/glider/GliderPulse.java rename to Server/src/main/content/global/travel/glider/GliderPulse.java index 35b6cdf80..52a5c44e7 100644 --- a/Server/src/main/java/core/game/content/global/travel/glider/GliderPulse.java +++ b/Server/src/main/content/global/travel/glider/GliderPulse.java @@ -1,4 +1,4 @@ -package core.game.content.global.travel.glider; +package content.global.travel.glider; import core.game.component.Component; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/travel/glider/Gliders.java b/Server/src/main/content/global/travel/glider/Gliders.java similarity index 97% rename from Server/src/main/java/core/game/content/global/travel/glider/Gliders.java rename to Server/src/main/content/global/travel/glider/Gliders.java index ae44c920a..7d3f2464f 100644 --- a/Server/src/main/java/core/game/content/global/travel/glider/Gliders.java +++ b/Server/src/main/content/global/travel/glider/Gliders.java @@ -1,4 +1,4 @@ -package core.game.content.global.travel.glider; +package content.global.travel.glider; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SeamanDialoguePlugin.java b/Server/src/main/content/global/travel/ship/SeamanDialoguePlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SeamanDialoguePlugin.java rename to Server/src/main/content/global/travel/ship/SeamanDialoguePlugin.java index 9a28584da..0ed7ad2c6 100644 --- a/Server/src/main/java/core/game/content/dialogue/SeamanDialoguePlugin.java +++ b/Server/src/main/content/global/travel/ship/SeamanDialoguePlugin.java @@ -1,9 +1,10 @@ -package core.game.content.dialogue; +package content.global.travel.ship; import core.game.container.impl.EquipmentContainer; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import org.rs09.consts.Items; -import core.game.content.global.travel.ship.Ships; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/content/global/travel/ship/ShipCharter.java b/Server/src/main/content/global/travel/ship/ShipCharter.java similarity index 98% rename from Server/src/main/java/core/game/content/global/travel/ship/ShipCharter.java rename to Server/src/main/content/global/travel/ship/ShipCharter.java index c37ef52ad..e549502b4 100644 --- a/Server/src/main/java/core/game/content/global/travel/ship/ShipCharter.java +++ b/Server/src/main/content/global/travel/ship/ShipCharter.java @@ -1,13 +1,13 @@ -package core.game.content.global.travel.ship; +package content.global.travel.ship; import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; @@ -16,7 +16,7 @@ import core.tools.StringUtils; import java.util.ArrayList; import java.util.List; -import static api.ContentAPIKt.requireQuest; +import static core.api.ContentAPIKt.requireQuest; /** * Represents a class used to charter ships. diff --git a/Server/src/main/java/core/game/interaction/inter/ShipCharterInterface.java b/Server/src/main/content/global/travel/ship/ShipCharterInterface.java similarity index 88% rename from Server/src/main/java/core/game/interaction/inter/ShipCharterInterface.java rename to Server/src/main/content/global/travel/ship/ShipCharterInterface.java index fd62d649b..8dcdb8102 100644 --- a/Server/src/main/java/core/game/interaction/inter/ShipCharterInterface.java +++ b/Server/src/main/content/global/travel/ship/ShipCharterInterface.java @@ -1,9 +1,9 @@ -package core.game.interaction.inter; +package content.global.travel.ship; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.global.travel.ship.ShipCharter; +import content.global.travel.ship.ShipCharter; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/npc/ShipCharterNPCPlugin.java b/Server/src/main/content/global/travel/ship/ShipCharterNPCPlugin.java similarity index 90% rename from Server/src/main/java/core/game/interaction/npc/ShipCharterNPCPlugin.java rename to Server/src/main/content/global/travel/ship/ShipCharterNPCPlugin.java index c71ef1831..cf809e995 100644 --- a/Server/src/main/java/core/game/interaction/npc/ShipCharterNPCPlugin.java +++ b/Server/src/main/content/global/travel/ship/ShipCharterNPCPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.npc; +package content.global.travel.ship; import core.cache.def.impl.NPCDefinition; -import core.game.content.global.travel.ship.ShipCharter; +import content.global.travel.ship.ShipCharter; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/travel/ship/ShipTravelPulse.java b/Server/src/main/content/global/travel/ship/ShipTravelPulse.java similarity index 98% rename from Server/src/main/java/core/game/content/global/travel/ship/ShipTravelPulse.java rename to Server/src/main/content/global/travel/ship/ShipTravelPulse.java index 473c3e88f..95f5bc151 100644 --- a/Server/src/main/java/core/game/content/global/travel/ship/ShipTravelPulse.java +++ b/Server/src/main/content/global/travel/ship/ShipTravelPulse.java @@ -1,4 +1,4 @@ -package core.game.content.global.travel.ship; +package content.global.travel.ship; import core.game.component.Component; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/travel/ship/Ships.java b/Server/src/main/content/global/travel/ship/Ships.java similarity index 98% rename from Server/src/main/java/core/game/content/global/travel/ship/Ships.java rename to Server/src/main/content/global/travel/ship/Ships.java index 1cc0d2598..c89adbb61 100644 --- a/Server/src/main/java/core/game/content/global/travel/ship/Ships.java +++ b/Server/src/main/content/global/travel/ship/Ships.java @@ -1,4 +1,4 @@ -package core.game.content.global.travel.ship; +package content.global.travel.ship; import core.game.node.entity.player.Player; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/dialogue/TraderCrewmemberDialogue.java b/Server/src/main/content/global/travel/ship/TraderCrewmemberDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/TraderCrewmemberDialogue.java rename to Server/src/main/content/global/travel/ship/TraderCrewmemberDialogue.java index 0776a912e..189f51d64 100644 --- a/Server/src/main/java/core/game/content/dialogue/TraderCrewmemberDialogue.java +++ b/Server/src/main/content/global/travel/ship/TraderCrewmemberDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.dialogue; +package content.global.travel.ship; -import core.game.content.global.travel.ship.ShipCharter; -import core.game.content.global.travel.ship.ShipCharter.Destination; +import content.global.travel.ship.ShipCharter.Destination; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/GnomeSpiritTreeListener.kt b/Server/src/main/content/global/travel/trees/GnomeSpiritTreeListener.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/GnomeSpiritTreeListener.kt rename to Server/src/main/content/global/travel/trees/GnomeSpiritTreeListener.kt index 24b0c61e0..494a79e12 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/GnomeSpiritTreeListener.kt +++ b/Server/src/main/content/global/travel/trees/GnomeSpiritTreeListener.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.npc +package content.global.travel.trees -import api.isQuestComplete -import api.openDialogue -import api.sendDialogue -import api.teleport +import core.api.isQuestComplete +import core.api.openDialogue +import core.api.sendDialogue +import core.api.teleport import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType @@ -12,12 +12,12 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.quest.members.tree.TreeGnomeVillage -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld.Pulser -import rs09.tools.END_DIALOGUE +import content.region.kandarin.quest.tree.TreeGnomeVillage +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld.Pulser +import core.tools.END_DIALOGUE class GnomeSpiritTreeListener: InteractionListener { val spiritTrees = intArrayOf(1317,1293,1294) diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeacon.kt b/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeacon.kt rename to Server/src/main/content/minigame/allfiredup/AFUBeacon.kt index 59de2049f..54aeb81ba 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeacon.kt +++ b/Server/src/main/content/minigame/allfiredup/AFUBeacon.kt @@ -1,7 +1,7 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup import core.game.node.entity.player.Player -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.map.Location /** @@ -25,11 +25,11 @@ enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val o PLATEAU("",92,1288,12,Location.create(2964, 3931, 0),147.9); companion object { - fun forLocation(location: Location): AFUBeacon { + fun forLocation(location: Location): content.minigame.allfiredup.AFUBeacon { for (beacon in values()) { if (beacon.location.equals(location)) return beacon } - return RIVER_SALVE.also { SystemLogger.logWarn(this::class.java, "Unhandled Beacon Location ${location.toString()}") } + return content.minigame.allfiredup.AFUBeacon.RIVER_SALVE.also { SystemLogger.logWarn(this::class.java, "Unhandled Beacon Location ${location.toString()}") } } fun resetAllBeacons(player: Player){ @@ -59,8 +59,8 @@ enum class AFUBeacon(val title: String, val fmLevel: Int, val varpId: Int, val o player.varpManager.get(varpId).setVarbit(offset,1).send(player) } - fun getState(player: Player): BeaconState{ - return BeaconState.values()[player.varpManager.get(varpId).getVarbit(offset) ?: 0] + fun getState(player: Player): content.minigame.allfiredup.BeaconState { + return content.minigame.allfiredup.BeaconState.values()[player.varpManager.get(varpId).getVarbit(offset) ?: 0] } } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeaconHandler.kt b/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeaconHandler.kt rename to Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt index bde15fdf4..0d6364ce6 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUBeaconHandler.kt +++ b/Server/src/main/content/minigame/allfiredup/AFUBeaconHandler.kt @@ -1,6 +1,5 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills @@ -8,9 +7,9 @@ import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld private val VALID_LOGS = intArrayOf(Items.LOGS_1511, Items.OAK_LOGS_1521,Items.WILLOW_LOGS_1519,Items.MAPLE_LOGS_1517,Items.YEW_LOGS_1515,Items.MAGIC_LOGS_1513) private val FILL_ANIM = Animation(9136) @@ -20,30 +19,30 @@ private val LIGHT_ANIM = Animation(7307) * Handles interactions for beacons * @author Ceikry */ -class AFUBeaconListeners : InteractionListener{ +class AFUBeaconListeners : InteractionListener { override fun defineListeners() { on(IntType.SCENERY,"add-logs","light"){ player, node -> - val beacon = AFUBeacon.forLocation(node.location) + val beacon = content.minigame.allfiredup.AFUBeacon.forLocation(node.location) val questComplete = player.questRepository.isComplete("All Fired Up") val questStage = player.questRepository.getStage("All Fired Up") - if ((beacon != AFUBeacon.RIVER_SALVE && beacon != AFUBeacon.RAG_AND_BONE && !questComplete) - || (beacon == AFUBeacon.RIVER_SALVE && questStage < 20 && !questComplete) - || (beacon == AFUBeacon.RAG_AND_BONE && questStage < 50 && !questComplete)) { - player.dialogueInterpreter.sendDialogues(player, FacialExpression.THINKING, "I probably shouldn't mess with this.") + if ((beacon != content.minigame.allfiredup.AFUBeacon.RIVER_SALVE && beacon != content.minigame.allfiredup.AFUBeacon.RAG_AND_BONE && !questComplete) + || (beacon == content.minigame.allfiredup.AFUBeacon.RIVER_SALVE && questStage < 20 && !questComplete) + || (beacon == content.minigame.allfiredup.AFUBeacon.RAG_AND_BONE && questStage < 50 && !questComplete)) { + player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.THINKING, "I probably shouldn't mess with this.") return@on true } player.debug(beacon.getState(player).name) when (beacon.getState(player)) { - BeaconState.EMPTY -> fillBeacon(player, beacon, questComplete) + content.minigame.allfiredup.BeaconState.EMPTY -> fillBeacon(player, beacon, questComplete) - BeaconState.DYING -> restoreBeacon(player, beacon, questComplete) + content.minigame.allfiredup.BeaconState.DYING -> restoreBeacon(player, beacon, questComplete) - BeaconState.FILLED -> lightBeacon(player, beacon, questComplete) + content.minigame.allfiredup.BeaconState.FILLED -> lightBeacon(player, beacon, questComplete) - BeaconState.LIT, BeaconState.WARNING -> { + content.minigame.allfiredup.BeaconState.LIT, content.minigame.allfiredup.BeaconState.WARNING -> { player.debug("INVALID BEACON STATE") } } @@ -51,26 +50,26 @@ class AFUBeaconListeners : InteractionListener{ } } - fun fillBeacon(player: Player, beacon: AFUBeacon, questComplete: Boolean){ + fun fillBeacon(player: Player, beacon: content.minigame.allfiredup.AFUBeacon, questComplete: Boolean){ when(beacon){ - AFUBeacon.MONASTERY -> { + content.minigame.allfiredup.AFUBeacon.MONASTERY -> { if(player.skills.getLevel(Skills.PRAYER) < 31){ - player.dialogueInterpreter.sendDialogues(NPC(beacon.keeper).getShownNPC(player),FacialExpression.ANGRY,"You must join the monastery to light this beacon!") + player.dialogueInterpreter.sendDialogues(NPC(beacon.keeper).getShownNPC(player), core.game.dialogue.FacialExpression.ANGRY,"You must join the monastery to light this beacon!") return } } - AFUBeacon.GWD -> { - if(!AFURepairClimbHandler.isRepaired(player,beacon)){ + content.minigame.allfiredup.AFUBeacon.GWD -> { + if(!AFURepairClimbHandler.isRepaired(player, beacon)){ player.dialogueInterpreter.sendDialogue("You must repair the windbreak before you","can light this beacon.") return } } - AFUBeacon.GOBLIN_VILLAGE -> { + content.minigame.allfiredup.AFUBeacon.GOBLIN_VILLAGE -> { if(!player.questRepository.isComplete("Lost Tribe")){ - player.dialogueInterpreter.sendDialogues(NPC(beacon.keeper).getShownNPC(player),FacialExpression.THINKING,"We no trust you outsider. You no light our beacon.","(Complete Lost Tribe to use this beacon.)") + player.dialogueInterpreter.sendDialogues(NPC(beacon.keeper).getShownNPC(player), core.game.dialogue.FacialExpression.THINKING,"We no trust you outsider. You no light our beacon.","(Complete Lost Tribe to use this beacon.)") return } } @@ -117,7 +116,7 @@ class AFUBeaconListeners : InteractionListener{ } } - fun lightBeacon(player: Player,beacon: AFUBeacon, questComplete: Boolean){ + fun lightBeacon(player: Player, beacon: content.minigame.allfiredup.AFUBeacon, questComplete: Boolean){ var session: AFUSession? = null if(questComplete){ session = player.getAttribute("afu-session",null) @@ -164,7 +163,7 @@ class AFUBeaconListeners : InteractionListener{ } } - fun restoreBeacon(player: Player,beacon: AFUBeacon, questComplete: Boolean){ + fun restoreBeacon(player: Player, beacon: content.minigame.allfiredup.AFUBeacon, questComplete: Boolean){ var session: AFUSession? = null if(questComplete){ session = player.getAttribute("afu-session",null) diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFURepairClimbHandler.kt b/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFURepairClimbHandler.kt rename to Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt index 786efc57f..84d34c4eb 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFURepairClimbHandler.kt +++ b/Server/src/main/content/minigame/allfiredup/AFURepairClimbHandler.kt @@ -1,16 +1,16 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup import core.game.node.entity.impl.ForceMovement import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.construction.NailType +import content.global.skill.construction.NailType import core.game.node.item.Item import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import java.util.* /** @@ -129,11 +129,11 @@ class AFURepairClimbHandler : InteractionListener { } companion object { - fun isRepaired(player: Player, beacon: AFUBeacon): Boolean{ - if(beacon == AFUBeacon.DEATH_PLATEAU) return RepairClimbObject.DEATH_PLATEAU.isRepaired(player) - if(beacon == AFUBeacon.BURTHORPE) return RepairClimbObject.BURTHORPE.isRepaired(player) - if(beacon == AFUBeacon.GWD) return RepairClimbObject.GWD.isRepaired(player) - if(beacon == AFUBeacon.TEMPLE) return RepairClimbObject.TEMPLE.isRepaired(player) + fun isRepaired(player: Player, beacon: content.minigame.allfiredup.AFUBeacon): Boolean{ + if(beacon == content.minigame.allfiredup.AFUBeacon.DEATH_PLATEAU) return RepairClimbObject.DEATH_PLATEAU.isRepaired(player) + if(beacon == content.minigame.allfiredup.AFUBeacon.BURTHORPE) return RepairClimbObject.BURTHORPE.isRepaired(player) + if(beacon == content.minigame.allfiredup.AFUBeacon.GWD) return RepairClimbObject.GWD.isRepaired(player) + if(beacon == content.minigame.allfiredup.AFUBeacon.TEMPLE) return RepairClimbObject.TEMPLE.isRepaired(player) else return true } } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUSession.kt b/Server/src/main/content/minigame/allfiredup/AFUSession.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUSession.kt rename to Server/src/main/content/minigame/allfiredup/AFUSession.kt index 4b9566a43..ef4f837df 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/AFUSession.kt +++ b/Server/src/main/content/minigame/allfiredup/AFUSession.kt @@ -1,20 +1,19 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup -import api.LogoutListener +import core.api.LogoutListener import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld -import core.plugin.Plugin +import core.game.world.GameWorld import org.rs09.consts.Items -import rs09.tools.stringtools.colorize +import core.tools.colorize /** * Handles keeping track of lit beacons and their burn time remaining * @author Ceikry */ class AFUSession(val player: Player? = null) : LogoutListener { - private val beaconTimers = Array(14){i -> BeaconTimer(0,AFUBeacon.values()[i])} + private val beaconTimers = Array(14){i -> BeaconTimer(0, content.minigame.allfiredup.AFUBeacon.values()[i]) } private val logInventories = Array(14){Item(0,0)} private val beaconWatched = Array(14){false} private var isActive = false @@ -62,7 +61,7 @@ class AFUSession(val player: Player? = null) : LogoutListener { beaconTimers[beaconIndex].ticks = ticks } - fun refreshTimer(beacon: AFUBeacon, logID: Int){ + fun refreshTimer(beacon: content.minigame.allfiredup.AFUBeacon, logID: Int){ val ticks = getTicks(logID) * 5 beaconTimers.forEach { if(it.beacon.ordinal == beacon.ordinal) it.ticks += ticks @@ -112,11 +111,11 @@ class AFUSession(val player: Player? = null) : LogoutListener { } override fun logout(player: Player) { - AFUBeacon.resetAllBeacons(player) + content.minigame.allfiredup.AFUBeacon.resetAllBeacons(player) val session: AFUSession? = player.getAttribute("afu-session",null) session?.end() player.removeAttribute("afu-session") } - internal class BeaconTimer(var ticks: Int, val beacon: AFUBeacon) + internal class BeaconTimer(var ticks: Int, val beacon: content.minigame.allfiredup.AFUBeacon) } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/BeaconTenderDialogue.kt b/Server/src/main/content/minigame/allfiredup/BeaconTenderDialogue.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/BeaconTenderDialogue.kt rename to Server/src/main/content/minigame/allfiredup/BeaconTenderDialogue.kt index 6844c24a1..4933c0e29 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/BeaconTenderDialogue.kt +++ b/Server/src/main/content/minigame/allfiredup/BeaconTenderDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills @@ -12,21 +12,21 @@ private val VALID_LOGS = arrayOf(Items.LOGS_1511, Items.OAK_LOGS_1521, Items.WIL @Initializable //TODO: Add requirements for beacon keepers to watch beacons, most of the requirements were not possible to implement at the time of writing this. -class BeaconTenderDialogue(player: Player? = null) : DialoguePlugin(player) { +class BeaconTenderDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var index = 0 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BeaconTenderDialogue(player) } override fun open(vararg args: Any?): Boolean { index = getIndexOf((args[0] as NPC).originalId) - if(index == AFUBeacon.GWD.ordinal && player.skills.getLevel(Skills.SUMMONING) < 81){ + if(index == content.minigame.allfiredup.AFUBeacon.GWD.ordinal && player.skills.getLevel(Skills.SUMMONING) < 81){ npc("Awwf uurrrhur","(You need 81 Summoning to communicate with Nanuq.)") stage = 1000 return true } - if(index == AFUBeacon.MONASTERY.ordinal && player.skills.getLevel(Skills.PRAYER) < 53){ + if(index == content.minigame.allfiredup.AFUBeacon.MONASTERY.ordinal && player.skills.getLevel(Skills.PRAYER) < 53){ npc("I will aid you when your devotion is","strong enough.","(You need 53 Prayer for him to watch the beacon.)") stage = 1000 return true @@ -37,12 +37,12 @@ class BeaconTenderDialogue(player: Player? = null) : DialoguePlugin(player) { } override fun handle(interfaceId: Int, buttonId: Int): Boolean { - val beacon = AFUBeacon.values()[index] + val beacon = content.minigame.allfiredup.AFUBeacon.values()[index] val logs = getLogs(player,5) val session: AFUSession? = player.getAttribute("afu-session",null) when(stage){ 0 -> player("Hello!").also { stage++ } - 1 -> if(beacon.getState(player) == BeaconState.LIT && session?.isWatched(index) == false){ + 1 -> if(beacon.getState(player) == content.minigame.allfiredup.BeaconState.LIT && session?.isWatched(index) == false){ options("Can you watch this beacon for me?","Nevermind.").also { stage = 10 } } else { npc("Carry on, adventurer.").also { stage = 1000 } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/KingRoaldAFUMiniDialogue.kt b/Server/src/main/content/minigame/allfiredup/KingRoaldAFUMiniDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/activity/allfiredup/KingRoaldAFUMiniDialogue.kt rename to Server/src/main/content/minigame/allfiredup/KingRoaldAFUMiniDialogue.kt index b958f3909..a7398de98 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/allfiredup/KingRoaldAFUMiniDialogue.kt +++ b/Server/src/main/content/minigame/allfiredup/KingRoaldAFUMiniDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.content.activity.allfiredup +package content.minigame.allfiredup import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class KingRoaldAFUMiniDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/content/minigame/barbassault/CaptainCainDialogue.kt b/Server/src/main/content/minigame/barbassault/CaptainCainDialogue.kt new file mode 100644 index 000000000..f1d91e854 --- /dev/null +++ b/Server/src/main/content/minigame/barbassault/CaptainCainDialogue.kt @@ -0,0 +1,67 @@ +package content.minigame.barbassault + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE +import java.text.SimpleDateFormat +import java.time.temporal.ChronoUnit +import java.util.* + +@Initializable +class CaptainCainDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + val sdf = SimpleDateFormat("ddMMyyyy") + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CaptainCainDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello, there, adventurer. Say, you wouldn't happen to be interested in purchasing a Fighter Torso would you?") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + val start = sdf.parse("27112020").toInstant() + val now = Date().toInstant() + val days = ChronoUnit.DAYS.between(start,now) + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I'm having to offer this service because it's been $days days since Ryan promised to give us barbarian assault.").also { stage++ } + 1 -> options("Yes, please.","No, thanks.").also { stage++ } + 2 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "No, thanks.").also { stage = END_DIALOGUE } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, then, that'll be 7,500,000 gold please.").also { stage++ } + 11 -> options("Here you go!","Nevermind.").also { stage++ } + 12 -> when(buttonId){ + 1 -> if(inInventory(player, 995, 7500000)) + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Here you go!").also { stage = 20 } + else + playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Actually, I don't have that much.").also { stage = END_DIALOGUE } + + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "On second thought, nevermind.").also { stage = END_DIALOGUE } + } + + 20 -> { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Thank you much, kind sir. And here's your torso.") + if(removeItem(player, Item(995,7500000), Container.INVENTORY)) { + addItem(player, Items.FIGHTER_TORSO_10551, 1) + } + stage = END_DIALOGUE + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CAPTAIN_CAIN_5030) + } + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowBrother.java b/Server/src/main/content/minigame/barrows/BarrowBrother.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/barrows/BarrowBrother.java rename to Server/src/main/content/minigame/barrows/BarrowBrother.java index e46c2cda9..43caf987a 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowBrother.java +++ b/Server/src/main/content/minigame/barrows/BarrowBrother.java @@ -1,4 +1,4 @@ -package core.game.content.activity.barrows; +package content.minigame.barrows; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java b/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java rename to Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java index 0b4797e56..b5089c978 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java +++ b/Server/src/main/content/minigame/barrows/BarrowsActivityPlugin.java @@ -1,9 +1,9 @@ -package core.game.content.activity.barrows; +package content.minigame.barrows; import core.game.component.Component; -import core.game.content.activity.ActivityPlugin; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.activity.ActivityPlugin; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -15,7 +15,7 @@ import core.game.node.entity.npc.agg.AggressiveBehavior; import core.game.node.entity.npc.agg.AggressiveHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.ActivityData; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.Familiar; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; @@ -30,11 +30,10 @@ import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.content.activity.barrows.RewardChest; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; -import static api.ContentAPIKt.getWorldTicks; +import static core.api.ContentAPIKt.getWorldTicks; /** * Handles the barrows activity plugin. diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java b/Server/src/main/content/minigame/barrows/BarrowsCrypt.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java rename to Server/src/main/content/minigame/barrows/BarrowsCrypt.java index ce8c6da14..60c05798c 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java +++ b/Server/src/main/content/minigame/barrows/BarrowsCrypt.java @@ -1,7 +1,7 @@ -package core.game.content.activity.barrows; +package content.minigame.barrows; -import core.game.content.global.action.DigAction; -import core.game.content.global.action.DigSpadeHandler; +import core.game.global.action.DigAction; +import core.game.global.action.DigSpadeHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowsPuzzle.java b/Server/src/main/content/minigame/barrows/BarrowsPuzzle.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/barrows/BarrowsPuzzle.java rename to Server/src/main/content/minigame/barrows/BarrowsPuzzle.java index 0c158e6ee..73762e809 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowsPuzzle.java +++ b/Server/src/main/content/minigame/barrows/BarrowsPuzzle.java @@ -1,4 +1,4 @@ -package core.game.content.activity.barrows; +package content.minigame.barrows; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt b/Server/src/main/content/minigame/barrows/RewardChest.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt rename to Server/src/main/content/minigame/barrows/RewardChest.kt index 186fa0b5d..1a79be82c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/barrows/RewardChest.kt +++ b/Server/src/main/content/minigame/barrows/RewardChest.kt @@ -1,18 +1,17 @@ -package rs09.game.content.activity.barrows +package content.minigame.barrows -import api.* +import core.api.announceIfRare import core.game.component.Component import core.game.container.access.InterfaceContainer -import core.game.content.global.BossKillCounter +import content.data.BossKillCounter import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem -import java.util.* +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem /** * The reward chest. diff --git a/Server/src/main/java/core/game/content/activity/barrows/TunnelEntranceDialogue.java b/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/barrows/TunnelEntranceDialogue.java rename to Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java index 22f4af8a2..6c649e728 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/TunnelEntranceDialogue.java +++ b/Server/src/main/content/minigame/barrows/TunnelEntranceDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.activity.barrows; +package content.minigame.barrows; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.PluginManifest; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnace.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnace.kt rename to Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt index ee91fb146..bd2344dbc 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnace.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnace.kt @@ -1,360 +1,360 @@ -package rs09.game.content.activity.blastfurnace - -import api.* -import core.game.container.impl.EquipmentContainer -import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.game.node.entity.skill.smithing.smelting.Bar -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.tools.RandomFunction -import org.rs09.consts.Items -import org.rs09.consts.Items.GOLDSMITH_GAUNTLETS_776 - -/**le Blast Furnace has arrived: - * Handles most of the Blast Furnace's operating logic, there is some crosstalk between - * this file and BlastFurnaceListeners.kt as well as the BlastFurnaceZone.kt. - * This also handles a lot of the varbit fuckery for the furnace. The other - * varbit fuckery is handled in BlastFurnaceListeners. - * Varbits are still slightly busted but not in a way that breaks the operation or usage of - * Blast Furnace, just visual and I've had enough of the funny binary numbers to say fuck it - * and will just come back to it at a later date. - * @author phil lips*/ - -object BlastFurnace { - - val belt1 = getScenery(1943, 4967, 0) - val belt2 = getScenery(1943, 4966, 0) - val belt3 = getScenery(1943, 4965, 0) - val disLoc = getScenery(1941, 4963, 0) - var pipe1 = getScenery(1943, 4961, 0) - var pipe2 = getScenery(1947, 4961, 0) - var cogs1 = getScenery(1945, 4965, 0) - var cogs2 = getScenery(1945, 4967, 0) - var beltLoc1 = getScenery(1944, 4965, 0) - var beltLoc2 = getScenery(1944, 4967, 0) - var gearsLoc = getScenery(1945, 4966, 0) - var stoveLoc = getScenery(1948, 4963, 0) - - val mPot = 9098 - - var gaugeViewList = ArrayList() - var blastFurnacePlayerList = ArrayList() - var furnaceTemp = 0 - var pumpPipeBroken = false - var potPipeBroken = false - var stoveCoke = 0 - var stoveTemp = 0 - var beltRunning = false - var makeBars = false - var beltBroken = false - var cogBroken = false - var pumping = false - var pedaling = false - var barsHot = false - var giveSmithXp = 0 - - /**This pulse object handles checks between*/ - var blastPulse = object : Pulse() { - override fun pulse(): Boolean { - gaugeViewList.forEach { - var anim = furnaceTemp + 2452 - animateInterface(it, 30, 4, anim) - } - blastFurnacePlayerList.forEach { - if(it.getAttribute("BlastTimer",0) > 0 && it.getSkills().getLevel(Skills.SMITHING) < 60){ - it.incrementAttribute("BlastTimer",-1) - } else if(it.getAttribute("BlastTimer",0) <= 0 && it.getSkills().getLevel(Skills.SMITHING) < 60){ - it.removeAttribute("BlastTimer") - sendDialogue(it,"Your time in the Blast Furnace has run out!") - it.properties.teleportLocation = Location.create(2931, 10197, 0) - } else if(it.getAttribute("BlastTimer",false) && it.getSkills().getLevel(Skills.SMITHING) >= 60){ - it.removeAttribute("BlastTimer") - } - if(giveSmithXp > 0){ - rewardXP(it,Skills.SMITHING,1.0) - giveSmithXp-- - } - } - interfaceManager() - runConveyor() - stoveCokeTemperature() - furnaceTemperature() - operateFurnace() - breakStuff() - fixStuff() - return false - } - } - - /**This handles the coke stove temperature, if there is coke in the - * coke oven the temperature will raise, otherwise the temperature - * will lower, 0-33 is cold, 34-66 is warm, 67-100 is hot*/ - fun stoveCokeTemperature() { - if (getWorldTicks() % 10 == 0 && stoveCoke > 0) { - stoveCoke-- - } - if (stoveCoke > 0) { - if (stoveTemp < 100) { - stoveTemp += 1 - } - } else if (stoveTemp > 0) { - stoveTemp-- - } - if (stoveTemp > 66 && stoveLoc!!.id != 9087) { - stoveLoc = getScenery(1948, 4963, 0) - replaceScenery(stoveLoc!!, 9087, -1) - } else if (stoveTemp in 34..66 && stoveLoc!!.id != 9086) { - stoveLoc = getScenery(1948, 4963, 0) - replaceScenery(stoveLoc!!, 9086, -1) - } else if (stoveTemp < 32 && stoveLoc!!.id != 9085) { - stoveLoc = getScenery(1948, 4963, 0) - replaceScenery(stoveLoc!!, 9085, -1) - } - } - - /**This handles the raising and lowering of the furnace temperature - * depending on whether or not the coke stove is hot and if the - * furnace pump is being operated. A hot coke stove will raise the - * temperature the fastest, a warm coke stove will raise it slowly, - * and a cold stove will raise it the slowest*/ - fun furnaceTemperature() { - if (stoveTemp >= 67 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { - furnaceTemp += 3 - } else if (stoveTemp >= 34 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { - furnaceTemp += 2 - } else if (stoveTemp > 0 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { - furnaceTemp += 1 - } else if (furnaceTemp > 0) { - furnaceTemp -= 1 - } - } - - /**Tells the furnace whether or not to smelt bars depending on if - * the furnace temperature is in the right range. Also contains the - * logic for smelting the players ore given the fact that they actually - * have ore in their ore container and/or have coal in their coal container*/ - fun operateFurnace() { - makeBars = furnaceTemp in 51..66 - blastFurnacePlayerList.forEach { player -> - var playerCoal = player.blastCoal.getAmount(Items.COAL_453) - var playerOre = player.blastOre.toArray().filterNotNull() - var barsAmountFree = player.blastBars.freeSlots() - var barsAmount = player.blastBars.itemCount() - var oreAmount = player.blastOre.itemCount() - var totalAmount = barsAmount + oreAmount - if (barsHot) { - player.varpManager.get(543).setVarbit(8, 2).send(player) - }else if (makeBars && playerOre.isNotEmpty() && barsAmountFree > 0 && totalAmount < 56 && player.getAttribute("OreInPot",false) == true) { - playerOre.forEach { oreID -> - playerCoal = player.blastCoal.getAmount(Items.COAL_453) - var bars = arrayOf(Bar.forOre(oreID.id)!!) - if(oreID.id == Items.IRON_ORE_440) { - bars = arrayOf(Bar.STEEL, Bar.IRON) - } - inner@ for(bar in bars) { - var hasRequirements = true - for(required in bar.ores) { - if(required.id == Items.COAL_453) { - if(!player.blastCoal.contains(Items.COAL_453, required.amount / 2)) { - hasRequirements = false - } - } else if(!player.blastOre.containsItem(required)) { - hasRequirements = false - } - } - if(hasRequirements) { - var removed = true - for(required in bar.ores) { - if(required.id == Items.COAL_453) { - if(!player.blastCoal.remove(Item(Items.COAL_453, required.amount / 2))) { - removed = false - } - } else { - if(!player.blastOre.remove(required)) { - removed = false - } - } - } - if(removed) { - player.varpManager.get(543).setVarbit(8, 1).send(player) - barsHot = true - player.blastBars.add(bar.product) - var experience = bar.experience - if(bar.product.id == Items.GOLD_BAR_2357 && - player.equipment[EquipmentContainer.SLOT_HANDS] != null && - player.equipment[EquipmentContainer.SLOT_HANDS].id == GOLDSMITH_GAUNTLETS_776) { - experience *= 2.5; - } - rewardXP(player, Skills.SMITHING, experience) - totalAmount = barsAmount + oreAmount - giveSmithXp++ - break@inner - } - } - } - } - } - if(!barsHot && playerOre.isNotEmpty()) { - var coalToAdd = 0 - playerOre.forEach { oreID -> - when(oreID.id){ - Items.RUNITE_ORE_451 -> coalToAdd = (player.blastOre.getAmount(451) * 4) - playerCoal - Items.ADAMANTITE_ORE_449 -> coalToAdd = (player.blastOre.getAmount(449) * 3) - playerCoal - Items.MITHRIL_ORE_447 -> coalToAdd = (player.blastOre.getAmount(447) * 2) - playerCoal - Items.IRON_ORE_440 -> coalToAdd = player.blastOre.getAmount(440) - playerCoal - } - } - if (coalToAdd < 0){ - player.varpManager.get(543).setVarbit(12, 0).send(player) - } else player.varpManager.get(543).setVarbit(12, coalToAdd).send(player) - } - else if(playerOre.isEmpty()) { - player.varpManager.get(543).setVarbit(12,0).send(player) - } - if(playerOre.isEmpty() && player.getAttribute("OreInPot",false)){ - player.removeAttribute("OreInPot") - } - } - } - - /**This handles the conveyor belt, if the pedals are running and the belt - * isn't broken then the conveyor belt will run*/ - fun runConveyor() { - if (pedaling && (!beltBroken && !cogBroken)) { - animateScenery(belt1!!, 2435) - animateScenery(belt2!!, 2435) - animateScenery(belt3!!, 2435) - animateScenery(beltLoc1!!, 2436) - animateScenery(beltLoc2!!, 2436) - animateScenery(cogs1!!, 2436) - animateScenery(cogs2!!, 2436) - animateScenery(gearsLoc!!, 2436) - beltRunning = true - } else { - animateScenery(belt1!!, -1) - animateScenery(belt2!!, -1) - animateScenery(belt3!!, -1) - animateScenery(beltLoc1!!, -1) - animateScenery(beltLoc2!!, -1) - animateScenery(cogs1!!, -1) - animateScenery(cogs2!!, -1) - animateScenery(gearsLoc!!, -1) - beltRunning = false - } - - } - - /**Its just one of those days*/ - fun breakStuff() { - if (pumping && furnaceTemp > 76) { - if (RandomFunction.random(1, 100) > 20 && (!potPipeBroken || !pumpPipeBroken)) { - if (RandomFunction.random(1, 100) > 50 && !potPipeBroken) { - pipe1 = getScenery(1943, 4961, 0) - potPipeBroken = true - } - if (RandomFunction.random(1, 100) <= 50 && !pumpPipeBroken) { - pipe2 = getScenery(1947, 4961, 0) - pumpPipeBroken = true - } - } - } - if (beltRunning && (!beltBroken || !cogBroken)) { - if (RandomFunction.random(1, 100) <= 2) { - beltLoc2 = getScenery(1944, 4967, 0) - beltBroken = true - } else if (RandomFunction.random(1, 100) <= 2) { - cogs2 = getScenery(1945, 4967, 0) - cogBroken = true - } - } - if (beltBroken && beltLoc2!!.id != 9103) { - beltLoc2 = getScenery(1944, 4967, 0) - replaceScenery(beltLoc2!!, 9103, -1) - } - if (cogBroken && cogs2!!.id != 9105) { - cogs2 = getScenery(1945, 4967, 0) - replaceScenery(cogs2!!, 9105, -1) - } - if (potPipeBroken && pipe1!!.id != 9117) { - pipe1 = getScenery(1943, 4961, 0) - replaceScenery(pipe1!!, 9117, -1) - } - if (pumpPipeBroken && pipe2!!.id != 9121) { - pipe2 = getScenery(1947, 4961, 0) - replaceScenery(pipe2!!, 9121, -1) - } - } - - /**This replaces the breakable objects IDs back to their unbroken state*/ - fun fixStuff() { - if (!potPipeBroken && pipe1!!.id != 9116) { - pipe1 = getScenery(1943, 4961, 0) - replaceScenery(pipe1!!, 9116, -1) - } - if (!pumpPipeBroken && pipe2!!.id != 9120) { - pipe2 = getScenery(1947, 4961, 0) - replaceScenery(pipe2!!, 9120, -1) - } - if (!beltBroken && beltLoc2!!.id != 9102) { - beltLoc2 = getScenery(1944, 4967, 0) - replaceScenery(beltLoc2!!, 9102, -1) - } - if (!cogBroken && cogs2!!.id != 9104) { - cogs2 = getScenery(1945, 4967, 0) - replaceScenery(cogs2!!, 9104, -1) - } - } - - /**Hi kids! - * Do you like Varbits? - * Wanna see me stick Nine Binary Bytes, through each one of my eyelids? - * Wanna look at how many bars you have left inside the furnace???*/ - - fun interfaceManager() { - var playerBars = listOf() - var bronzeBit = 1 - var ironBit = 1 - var steelBit = 1 - var mithrilBit = 1 - var adamantiteBit = 1 - var runiteBit = 1 - var silverBit = 1 - var goldBit = 1 - var barTotal = 0 - blastFurnacePlayerList.forEach { player -> - playerBars = player.blastBars.toArray().filterNotNull() - var barAmount = player.blastBars.toArray().filterNotNull().count() - var updateInterface = true - if (playerBars.isNotEmpty() && updateInterface) { - playerBars.forEach { barItem -> - when (barItem.id) { - Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player) - Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player) - Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player) - Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player) - Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player) - Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player) - Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player) - Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player) - } - } - } - if (barTotal > barAmount) { - playerBars.forEach { barItem -> - when (barItem.id) { - Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit--).send(player) - Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit--).send(player) - Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit--).send(player) - Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit--).send(player) - Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit--).send(player) - Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit--).send(player) - Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit--).send(player) - Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit--).send(player) - } - } - } - } - } -} +package content.minigame.blastfurnace + +import core.api.* +import core.game.container.impl.EquipmentContainer +import core.game.node.entity.player.Player +import core.game.node.entity.skill.Skills +import core.game.node.item.Item +import content.global.skill.smithing.smelting.Bar +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.tools.RandomFunction +import org.rs09.consts.Items +import org.rs09.consts.Items.GOLDSMITH_GAUNTLETS_776 + +/**le Blast Furnace has arrived: + * Handles most of the Blast Furnace's operating logic, there is some crosstalk between + * this file and BlastFurnaceListeners.kt as well as the BlastFurnaceZone.kt. + * This also handles a lot of the varbit fuckery for the furnace. The other + * varbit fuckery is handled in BlastFurnaceListeners. + * Varbits are still slightly busted but not in a way that breaks the operation or usage of + * Blast Furnace, just visual and I've had enough of the funny binary numbers to say fuck it + * and will just come back to it at a later date. + * @author phil lips*/ + +object BlastFurnace { + + val belt1 = getScenery(1943, 4967, 0) + val belt2 = getScenery(1943, 4966, 0) + val belt3 = getScenery(1943, 4965, 0) + val disLoc = getScenery(1941, 4963, 0) + var pipe1 = getScenery(1943, 4961, 0) + var pipe2 = getScenery(1947, 4961, 0) + var cogs1 = getScenery(1945, 4965, 0) + var cogs2 = getScenery(1945, 4967, 0) + var beltLoc1 = getScenery(1944, 4965, 0) + var beltLoc2 = getScenery(1944, 4967, 0) + var gearsLoc = getScenery(1945, 4966, 0) + var stoveLoc = getScenery(1948, 4963, 0) + + val mPot = 9098 + + var gaugeViewList = ArrayList() + var blastFurnacePlayerList = ArrayList() + var furnaceTemp = 0 + var pumpPipeBroken = false + var potPipeBroken = false + var stoveCoke = 0 + var stoveTemp = 0 + var beltRunning = false + var makeBars = false + var beltBroken = false + var cogBroken = false + var pumping = false + var pedaling = false + var barsHot = false + var giveSmithXp = 0 + + /**This pulse object handles checks between*/ + var blastPulse = object : Pulse() { + override fun pulse(): Boolean { + gaugeViewList.forEach { + var anim = furnaceTemp + 2452 + animateInterface(it, 30, 4, anim) + } + blastFurnacePlayerList.forEach { + if(it.getAttribute("BlastTimer",0) > 0 && it.getSkills().getLevel(Skills.SMITHING) < 60){ + it.incrementAttribute("BlastTimer",-1) + } else if(it.getAttribute("BlastTimer",0) <= 0 && it.getSkills().getLevel(Skills.SMITHING) < 60){ + it.removeAttribute("BlastTimer") + sendDialogue(it,"Your time in the Blast Furnace has run out!") + it.properties.teleportLocation = Location.create(2931, 10197, 0) + } else if(it.getAttribute("BlastTimer",false) && it.getSkills().getLevel(Skills.SMITHING) >= 60){ + it.removeAttribute("BlastTimer") + } + if(giveSmithXp > 0){ + rewardXP(it,Skills.SMITHING,1.0) + giveSmithXp-- + } + } + interfaceManager() + runConveyor() + stoveCokeTemperature() + furnaceTemperature() + operateFurnace() + breakStuff() + fixStuff() + return false + } + } + + /**This handles the coke stove temperature, if there is coke in the + * coke oven the temperature will raise, otherwise the temperature + * will lower, 0-33 is cold, 34-66 is warm, 67-100 is hot*/ + fun stoveCokeTemperature() { + if (getWorldTicks() % 10 == 0 && stoveCoke > 0) { + stoveCoke-- + } + if (stoveCoke > 0) { + if (stoveTemp < 100) { + stoveTemp += 1 + } + } else if (stoveTemp > 0) { + stoveTemp-- + } + if (stoveTemp > 66 && stoveLoc!!.id != 9087) { + stoveLoc = getScenery(1948, 4963, 0) + replaceScenery(stoveLoc!!, 9087, -1) + } else if (stoveTemp in 34..66 && stoveLoc!!.id != 9086) { + stoveLoc = getScenery(1948, 4963, 0) + replaceScenery(stoveLoc!!, 9086, -1) + } else if (stoveTemp < 32 && stoveLoc!!.id != 9085) { + stoveLoc = getScenery(1948, 4963, 0) + replaceScenery(stoveLoc!!, 9085, -1) + } + } + + /**This handles the raising and lowering of the furnace temperature + * depending on whether or not the coke stove is hot and if the + * furnace pump is being operated. A hot coke stove will raise the + * temperature the fastest, a warm coke stove will raise it slowly, + * and a cold stove will raise it the slowest*/ + fun furnaceTemperature() { + if (stoveTemp >= 67 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { + furnaceTemp += 3 + } else if (stoveTemp >= 34 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { + furnaceTemp += 2 + } else if (stoveTemp > 0 && pumping && furnaceTemp < 100 && (!pumpPipeBroken || !pumpPipeBroken)) { + furnaceTemp += 1 + } else if (furnaceTemp > 0) { + furnaceTemp -= 1 + } + } + + /**Tells the furnace whether or not to smelt bars depending on if + * the furnace temperature is in the right range. Also contains the + * logic for smelting the players ore given the fact that they actually + * have ore in their ore container and/or have coal in their coal container*/ + fun operateFurnace() { + makeBars = furnaceTemp in 51..66 + blastFurnacePlayerList.forEach { player -> + var playerCoal = player.blastCoal.getAmount(Items.COAL_453) + var playerOre = player.blastOre.toArray().filterNotNull() + var barsAmountFree = player.blastBars.freeSlots() + var barsAmount = player.blastBars.itemCount() + var oreAmount = player.blastOre.itemCount() + var totalAmount = barsAmount + oreAmount + if (barsHot) { + player.varpManager.get(543).setVarbit(8, 2).send(player) + }else if (makeBars && playerOre.isNotEmpty() && barsAmountFree > 0 && totalAmount < 56 && player.getAttribute("OreInPot",false) == true) { + playerOre.forEach { oreID -> + playerCoal = player.blastCoal.getAmount(Items.COAL_453) + var bars = arrayOf(Bar.forOre(oreID.id)!!) + if(oreID.id == Items.IRON_ORE_440) { + bars = arrayOf(Bar.STEEL, Bar.IRON) + } + inner@ for(bar in bars) { + var hasRequirements = true + for(required in bar.ores) { + if(required.id == Items.COAL_453) { + if(!player.blastCoal.contains(Items.COAL_453, required.amount / 2)) { + hasRequirements = false + } + } else if(!player.blastOre.containsItem(required)) { + hasRequirements = false + } + } + if(hasRequirements) { + var removed = true + for(required in bar.ores) { + if(required.id == Items.COAL_453) { + if(!player.blastCoal.remove(Item(Items.COAL_453, required.amount / 2))) { + removed = false + } + } else { + if(!player.blastOre.remove(required)) { + removed = false + } + } + } + if(removed) { + player.varpManager.get(543).setVarbit(8, 1).send(player) + barsHot = true + player.blastBars.add(bar.product) + var experience = bar.experience + if(bar.product.id == Items.GOLD_BAR_2357 && + player.equipment[EquipmentContainer.SLOT_HANDS] != null && + player.equipment[EquipmentContainer.SLOT_HANDS].id == GOLDSMITH_GAUNTLETS_776) { + experience *= 2.5; + } + rewardXP(player, Skills.SMITHING, experience) + totalAmount = barsAmount + oreAmount + giveSmithXp++ + break@inner + } + } + } + } + } + if(!barsHot && playerOre.isNotEmpty()) { + var coalToAdd = 0 + playerOre.forEach { oreID -> + when(oreID.id){ + Items.RUNITE_ORE_451 -> coalToAdd = (player.blastOre.getAmount(451) * 4) - playerCoal + Items.ADAMANTITE_ORE_449 -> coalToAdd = (player.blastOre.getAmount(449) * 3) - playerCoal + Items.MITHRIL_ORE_447 -> coalToAdd = (player.blastOre.getAmount(447) * 2) - playerCoal + Items.IRON_ORE_440 -> coalToAdd = player.blastOre.getAmount(440) - playerCoal + } + } + if (coalToAdd < 0){ + player.varpManager.get(543).setVarbit(12, 0).send(player) + } else player.varpManager.get(543).setVarbit(12, coalToAdd).send(player) + } + else if(playerOre.isEmpty()) { + player.varpManager.get(543).setVarbit(12,0).send(player) + } + if(playerOre.isEmpty() && player.getAttribute("OreInPot",false)){ + player.removeAttribute("OreInPot") + } + } + } + + /**This handles the conveyor belt, if the pedals are running and the belt + * isn't broken then the conveyor belt will run*/ + fun runConveyor() { + if (pedaling && (!beltBroken && !cogBroken)) { + animateScenery(belt1!!, 2435) + animateScenery(belt2!!, 2435) + animateScenery(belt3!!, 2435) + animateScenery(beltLoc1!!, 2436) + animateScenery(beltLoc2!!, 2436) + animateScenery(cogs1!!, 2436) + animateScenery(cogs2!!, 2436) + animateScenery(gearsLoc!!, 2436) + beltRunning = true + } else { + animateScenery(belt1!!, -1) + animateScenery(belt2!!, -1) + animateScenery(belt3!!, -1) + animateScenery(beltLoc1!!, -1) + animateScenery(beltLoc2!!, -1) + animateScenery(cogs1!!, -1) + animateScenery(cogs2!!, -1) + animateScenery(gearsLoc!!, -1) + beltRunning = false + } + + } + + /**Its just one of those days*/ + fun breakStuff() { + if (pumping && furnaceTemp > 76) { + if (RandomFunction.random(1, 100) > 20 && (!potPipeBroken || !pumpPipeBroken)) { + if (RandomFunction.random(1, 100) > 50 && !potPipeBroken) { + pipe1 = getScenery(1943, 4961, 0) + potPipeBroken = true + } + if (RandomFunction.random(1, 100) <= 50 && !pumpPipeBroken) { + pipe2 = getScenery(1947, 4961, 0) + pumpPipeBroken = true + } + } + } + if (beltRunning && (!beltBroken || !cogBroken)) { + if (RandomFunction.random(1, 100) <= 2) { + beltLoc2 = getScenery(1944, 4967, 0) + beltBroken = true + } else if (RandomFunction.random(1, 100) <= 2) { + cogs2 = getScenery(1945, 4967, 0) + cogBroken = true + } + } + if (beltBroken && beltLoc2!!.id != 9103) { + beltLoc2 = getScenery(1944, 4967, 0) + replaceScenery(beltLoc2!!, 9103, -1) + } + if (cogBroken && cogs2!!.id != 9105) { + cogs2 = getScenery(1945, 4967, 0) + replaceScenery(cogs2!!, 9105, -1) + } + if (potPipeBroken && pipe1!!.id != 9117) { + pipe1 = getScenery(1943, 4961, 0) + replaceScenery(pipe1!!, 9117, -1) + } + if (pumpPipeBroken && pipe2!!.id != 9121) { + pipe2 = getScenery(1947, 4961, 0) + replaceScenery(pipe2!!, 9121, -1) + } + } + + /**This replaces the breakable objects IDs back to their unbroken state*/ + fun fixStuff() { + if (!potPipeBroken && pipe1!!.id != 9116) { + pipe1 = getScenery(1943, 4961, 0) + replaceScenery(pipe1!!, 9116, -1) + } + if (!pumpPipeBroken && pipe2!!.id != 9120) { + pipe2 = getScenery(1947, 4961, 0) + replaceScenery(pipe2!!, 9120, -1) + } + if (!beltBroken && beltLoc2!!.id != 9102) { + beltLoc2 = getScenery(1944, 4967, 0) + replaceScenery(beltLoc2!!, 9102, -1) + } + if (!cogBroken && cogs2!!.id != 9104) { + cogs2 = getScenery(1945, 4967, 0) + replaceScenery(cogs2!!, 9104, -1) + } + } + + /**Hi kids! + * Do you like Varbits? + * Wanna see me stick Nine Binary Bytes, through each one of my eyelids? + * Wanna look at how many bars you have left inside the furnace???*/ + + fun interfaceManager() { + var playerBars = listOf() + var bronzeBit = 1 + var ironBit = 1 + var steelBit = 1 + var mithrilBit = 1 + var adamantiteBit = 1 + var runiteBit = 1 + var silverBit = 1 + var goldBit = 1 + var barTotal = 0 + blastFurnacePlayerList.forEach { player -> + playerBars = player.blastBars.toArray().filterNotNull() + var barAmount = player.blastBars.toArray().filterNotNull().count() + var updateInterface = true + if (playerBars.isNotEmpty() && updateInterface) { + playerBars.forEach { barItem -> + when (barItem.id) { + Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit++).send(player) + Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit++).send(player) + Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit++).send(player) + Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit++).send(player) + Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit++).send(player) + Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit++).send(player) + Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit++).send(player) + Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit++).send(player) + } + } + } + if (barTotal > barAmount) { + playerBars.forEach { barItem -> + when (barItem.id) { + Items.BRONZE_BAR_2349 -> player.varpManager.get(545).setVarbit(0, bronzeBit--).send(player) + Items.IRON_BAR_2351 -> player.varpManager.get(545).setVarbit(8, ironBit--).send(player) + Items.STEEL_BAR_2353 -> player.varpManager.get(545).setVarbit(16, steelBit--).send(player) + Items.MITHRIL_BAR_2359 -> player.varpManager.get(545).setVarbit(24, mithrilBit--).send(player) + Items.ADAMANTITE_BAR_2361 -> player.varpManager.get(546).setVarbit(0, adamantiteBit--).send(player) + Items.RUNITE_BAR_2363 -> player.varpManager.get(546).setVarbit(8, runiteBit--).send(player) + Items.SILVER_BAR_2355 -> player.varpManager.get(546).setVarbit(24, silverBit--).send(player) + Items.GOLD_BAR_2357 -> player.varpManager.get(546).setVarbit(16, goldBit--).send(player) + } + } + } + } + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceInterfaceListener.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceInterfaceListener.kt rename to Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt index 7a059ac32..8a30d7689 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceInterfaceListener.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceInterfaceListener.kt @@ -1,72 +1,72 @@ -package rs09.game.content.activity.blastfurnace - -import api.* -import core.game.node.item.Item -import org.rs09.consts.Components -import org.rs09.consts.Items -import rs09.game.interaction.InterfaceListener - -/** - * Handles the blast furnace bar stock interface. - * @author definitely phil who didn't get help from ceikry at all haha :) - * @version 69.0 - */ -class BlastFurnaceInterfaceListener : InterfaceListener { - - override fun defineInterfaceListeners() { - - on(Components.BLAST_FURNACE_BAR_STOCK_28){ player, _, _, buttonID, _, _ -> - val bar = BFBars.forId(buttonID) ?: return@on false - val isAll = buttonID == bar.allButtonId - val playerAmt = player.varpManager.get(bar.varpIndex).getVarbitValue(bar.offset) ?: 0 - if(playerAmt == 0) return@on true - - var amtToWithdraw = if(isAll) playerAmt else 1 - - if(freeSlots(player) < amtToWithdraw){ - amtToWithdraw = freeSlots(player) - } - - val barItemId = when(bar){ - BFBars.BRONZE -> Items.BRONZE_BAR_2349 - BFBars.IRON -> Items.IRON_BAR_2351 - BFBars.STEEL -> Items.STEEL_BAR_2353 - BFBars.MITHRIL -> Items.MITHRIL_BAR_2359 - BFBars.ADAMANT -> Items.ADAMANTITE_BAR_2361 - BFBars.RUNITE -> Items.RUNITE_BAR_2363 - BFBars.SILVER -> Items.SILVER_BAR_2355 - BFBars.GOLD -> Items.GOLD_BAR_2357 - } - - player.varpManager.get(bar.varpIndex).setVarbit(bar.offset, playerAmt - amtToWithdraw).send(player) - - addItem(player, barItemId, amtToWithdraw) - while(amtToWithdraw > 0){ - player.blastBars.remove(Item(barItemId)) - amtToWithdraw-- - } - if(player.blastBars.isEmpty) player.varpManager.get(543).clear().send(player) - return@on true - } - } - - internal enum class BFBars(val buttonId: Int, val varpIndex: Int, val offset: Int, val allButtonId: Int = buttonId + 2){ - BRONZE(43, 545, 0, 44), - IRON(40, 545, 8, 41), - STEEL(36, 545, 16), - MITHRIL(33, 545, 24), - ADAMANT(30, 546, 0), - RUNITE(27, 546, 8), - SILVER(24, 546, 24), - GOLD(21, 546, 16); - - companion object { - private val idMap = values().map { it.buttonId to it }.toMap() - - fun forId(buttonId: Int): BFBars? { - return idMap[buttonId] ?: idMap[buttonId - 2] ?: idMap[buttonId - 1] - } - } - } - +package content.minigame.blastfurnace + +import core.api.* +import core.game.node.item.Item +import org.rs09.consts.Components +import org.rs09.consts.Items +import core.game.interaction.InterfaceListener + +/** + * Handles the blast furnace bar stock interface. + * @author definitely phil who didn't get help from ceikry at all haha :) + * @version 69.0 + */ +class BlastFurnaceInterfaceListener : InterfaceListener { + + override fun defineInterfaceListeners() { + + on(Components.BLAST_FURNACE_BAR_STOCK_28){ player, _, _, buttonID, _, _ -> + val bar = BFBars.forId(buttonID) ?: return@on false + val isAll = buttonID == bar.allButtonId + val playerAmt = player.varpManager.get(bar.varpIndex).getVarbitValue(bar.offset) ?: 0 + if(playerAmt == 0) return@on true + + var amtToWithdraw = if(isAll) playerAmt else 1 + + if(freeSlots(player) < amtToWithdraw){ + amtToWithdraw = freeSlots(player) + } + + val barItemId = when(bar){ + BFBars.BRONZE -> Items.BRONZE_BAR_2349 + BFBars.IRON -> Items.IRON_BAR_2351 + BFBars.STEEL -> Items.STEEL_BAR_2353 + BFBars.MITHRIL -> Items.MITHRIL_BAR_2359 + BFBars.ADAMANT -> Items.ADAMANTITE_BAR_2361 + BFBars.RUNITE -> Items.RUNITE_BAR_2363 + BFBars.SILVER -> Items.SILVER_BAR_2355 + BFBars.GOLD -> Items.GOLD_BAR_2357 + } + + player.varpManager.get(bar.varpIndex).setVarbit(bar.offset, playerAmt - amtToWithdraw).send(player) + + addItem(player, barItemId, amtToWithdraw) + while(amtToWithdraw > 0){ + player.blastBars.remove(Item(barItemId)) + amtToWithdraw-- + } + if(player.blastBars.isEmpty) player.varpManager.get(543).clear().send(player) + return@on true + } + } + + internal enum class BFBars(val buttonId: Int, val varpIndex: Int, val offset: Int, val allButtonId: Int = buttonId + 2){ + BRONZE(43, 545, 0, 44), + IRON(40, 545, 8, 41), + STEEL(36, 545, 16), + MITHRIL(33, 545, 24), + ADAMANT(30, 546, 0), + RUNITE(27, 546, 8), + SILVER(24, 546, 24), + GOLD(21, 546, 16); + + companion object { + private val idMap = values().map { it.buttonId to it }.toMap() + + fun forId(buttonId: Int): BFBars? { + return idMap[buttonId] ?: idMap[buttonId - 2] ?: idMap[buttonId - 1] + } + } + } + } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceListeners.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceListeners.kt rename to Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt index 6b08f3c81..4674ce91d 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceListeners.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceListeners.kt @@ -1,385 +1,383 @@ -package rs09.game.content.activity.blastfurnace - -import api.Container -import api.* -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.game.node.entity.skill.smithing.smelting.Bar -import core.game.system.task.Pulse -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import core.game.world.map.Location -import org.rs09.consts.Items -import rs09.game.node.entity.npc.BFOreVariant -import rs09.game.node.entity.npc.BlastFurnaceOre - -/**"Most" of the listeners for blast furnace live in this funny little file, handles - * listeners for most things from interacting with the temp gauge to putting ore on the - * conveyor belt. The only thing that's not in here as far as listeners goes is Ordan's unnoting. - * That lives in OrdanDialogue.kt - * @author phil lips*/ - -class BlastFurnaceListeners : InteractionListener { - - val disLoc = getScenery(1941, 4963, 0) - val brokenPotPipe = 9117 - val brokenPumpPipe = 9121 - val pump = 9090 - val stove = intArrayOf(9085, 9086, 9087) - val coke = 9088 - val pedals = 9097 - val conveyorLoad = 9100 - val dispenser = intArrayOf(9093, 9094, 9095, 9096) - val brokenBelt = 9103 - val brokenCog = 9105 - val tGauge = 9089 - val playerOre = intArrayOf( - Items.IRON_ORE_440, - Items.COPPER_ORE_436, - Items.TIN_ORE_438, - Items.COAL_453, - Items.MITHRIL_ORE_447, - Items.ADAMANTITE_ORE_449, - Items.SILVER_ORE_442, - Items.GOLD_ORE_444, - Items.RUNITE_ORE_451 - ) - val notedOre = intArrayOf( - Items.IRON_ORE_441, - Items.COPPER_ORE_437, - Items.TIN_ORE_439, - Items.COAL_454, - Items.MITHRIL_ORE_448, - Items.ADAMANTITE_ORE_450, - Items.SILVER_ORE_443, - Items.GOLD_ORE_445, - Items.RUNITE_ORE_452 - ) - - override fun defineListeners() { - - /**FINALLY AFK STRENGTH TRAINING*/ - - on(pump, IntType.SCENERY, "operate") { player, node -> - if(player.getSkills().getLevel(Skills.STRENGTH) >= 30) { - val pumpL = Location(1950, 4961, 0) - val pumpF = Location(1949, 4961, 0) - player.properties.teleportLocation = pumpL - submitIndividualPulse(player, object : Pulse() { - override fun pulse(): Boolean { - face(player, pumpF,) - animate(player, 2432) - BlastFurnace.pumping = true - if (!BlastFurnace.pumpPipeBroken || !BlastFurnace.potPipeBroken) rewardXP( - player, - Skills.STRENGTH, - 4.0 - ) - return false - } - - override fun stop() { - BlastFurnace.pumping = false - super.stop() - } - }) - }else{ - sendDialogue(player,"I need 30 Strength to do this!") - } - return@on true - } - - /**Logic for the pedals that run the conveyor, rewards Agility XP every tick that they're being - * pedaled but will stop once the conveyor breaks.*/ - - on(pedals, IntType.SCENERY, "pedal") { player, node -> - if(player.getSkills().getLevel(Skills.AGILITY) >= 30) { - val pedalL = Location(1947, 4966, 0) - val pedalF = Location(1946, 4966, 0) - player.properties.teleportLocation = pedalL - submitIndividualPulse(player, object : Pulse() { - override fun pulse(): Boolean { - face(player, pedalF,) - animate(player, 2433) - BlastFurnace.pedaling = true - if (BlastFurnace.beltRunning) rewardXP(player, Skills.AGILITY, 2.0) - return false - } - override fun stop() { - BlastFurnace.pedaling = false - super.stop() - } - }) - }else{ - sendDialogue(player,"I need 30 Agility to do this!") - } - return@on true - } - - /**Lets players use a spade to take coke from the pile of coke*/ - - on(coke, IntType.SCENERY, "collect") { player, node -> - if (inInventory(player, Items.SPADE_952, 1)) { - animate(player, 2441) - removeItem(player, Items.SPADE_952, Container.INVENTORY) - addItem(player, Items.SPADEFUL_OF_COKE_6448, 1) - lockInteractions(player,1) - } else { - sendMessage(player, "You need a spade to do this!") - } - return@on true - } - - /**This code is for handling the coke stove, lets players interact with it with the spadeful of coke - * and rewards firemaking XP when shoving coke in there, it will not allow players to shovel more - * coke in if it is already full.*/ - - on(stove, IntType.SCENERY, "refuel") { player, node -> - if (inInventory(player, Items.SPADEFUL_OF_COKE_6448, 1) && BlastFurnace.stoveCoke < 30 && player.getSkills().getLevel(Skills.FIREMAKING) >= 30) { - animate(player, 2442) - lockInteractions(player,2) - submitIndividualPulse(player, object : Pulse() { - override fun pulse(): Boolean { - removeItem(player, Items.SPADEFUL_OF_COKE_6448, Container.INVENTORY) - addItem(player, Items.SPADE_952, 1) - animate(player, 2443) - return true - } - }) - rewardXP(player, Skills.FIREMAKING, 5.0) - BlastFurnace.stoveCoke++ - }else if(inInventory(player, Items.SPADEFUL_OF_COKE_6448,1) && BlastFurnace.stoveCoke >= 30 && player.getSkills().getLevel(Skills.FIREMAKING) >= 30){ - sendDialogue(player,"The coke stove is already full!") - } else if(player.getSkills().getLevel(Skills.FIREMAKING) < 30){ - sendDialogue(player,"I need 30 Firemaking to do this") - } else { - sendMessage(player,"You need some coke to do that!") - } - return@on true - } - - /**This beautiiful block of bullshit handles the logic for putting coal and ores - * on the conveyor belt. It won't let you put anything on there if there's no room - * in your blast ore or blast coal player containers, the way it works is that it - * puts your coal and ore into the blast furnace containers however, the blast furnace will NOT - * smelt your ores because it's waiting for a player attribute to be set by the ore NPCs that this spawns - * Is it fucky? Yes - * Does it work? Also yes*/ - on(conveyorLoad, IntType.SCENERY, "put-ore-on") { player, node -> - val rocksInInven = playerOre.filter {inInventory(player, it)} - var oreToActuallyAdd = 0 - var coalToActuallyAdd = 0 - if(player.blastCoal.freeSlots() > 0 || player.blastOre.freeSlots() > 0) { - player.dialogueInterpreter.sendOptions("Add all your ore to the furnace?", "Yes", "No") - player.dialogueInterpreter.addAction { player, button -> - if (button == 2 && rocksInInven.isNotEmpty()) { - rocksInInven.forEach { oreID -> - val oreAmount = amountInInventory(player, oreID) - val copperInPot = player.blastOre.getAmount(436) - val tinInPot = player.blastOre.getAmount(438) - if(oreID == Items.COAL_453 && oreAmount <= player.blastCoal.freeSlots()){ - coalToActuallyAdd = oreAmount - }else if(oreID == Items.COAL_453 && oreAmount > player.blastCoal.freeSlots() && player.blastCoal.freeSlots() > 0){ - coalToActuallyAdd = player.blastCoal.freeSlots() - } - if(oreID != Items.COAL_453 && oreAmount <= player.blastOre.freeSlots()){ - oreToActuallyAdd = oreAmount - }else if(oreID != Items.COAL_453 && oreAmount > player.blastOre.freeSlots() && player.blastOre.freeSlots() > 0){ - oreToActuallyAdd = player.blastOre.freeSlots() - } - if(oreID == Items.COPPER_ORE_436 && (oreToActuallyAdd + copperInPot) > 14){ - while(oreToActuallyAdd + copperInPot > 14){ - oreToActuallyAdd-- - } - } - if(oreID == Items.TIN_ORE_438 && (oreToActuallyAdd + tinInPot) > 14){ - while(oreToActuallyAdd + tinInPot > 14){ - oreToActuallyAdd-- - } - } - val bar = Bar.forOre(oreID) - if(oreID == Items.COAL_453) { - if (coalToActuallyAdd > 0 && getStatLevel(player, Skills.SMITHING) >= 30) { - player.blastCoal.add(Item(Items.COAL_453,coalToActuallyAdd)) - removeItem(player, Item(oreID, coalToActuallyAdd), Container.INVENTORY) - BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreID)],coalToActuallyAdd).init() - } - else if(getStatLevel(player, Skills.SMITHING) < 30){ - sendDialogue(player, "My Smithing level is not high enough to use Coal!") - } - else sendDialogue(player, "It looks like the melting pot is already full of coal!") - } else if (bar != null) { - if (oreToActuallyAdd > 0 && getStatLevel(player, Skills.SMITHING) >= bar.level) { - player.blastOre.add(Item(oreID,oreToActuallyAdd)) - removeItem(player, Item(oreID, oreToActuallyAdd), Container.INVENTORY) - BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreID)],oreToActuallyAdd).init() - } - else if(getStatLevel(player, Skills.SMITHING) < bar.level){ - sendDialogue(player, "My Smithing level is not high enough to smelt ${bar.name.toLowerCase()}!") - } - else sendDialogue(player, "It looks like the melting pot is already full of ore!") - } - } - }else if (button == 2 && rocksInInven.isEmpty()){ - sendDialogue(player,"I should make sure that I have some ore before doing this.") - } - } - } - return@on true - } - - /**Added this because clicking on ore then the belt and getting "Nothing interesting happens" is annoying - * it's essentially the same thing as above except without the dialogue because if you're clicking on ore - * and trying to use it on the conveyor belt then you know what you're trying to do.*/ - onUseWith(IntType.SCENERY,conveyorLoad,*playerOre){ player, _, oreType -> - val amountInInventory = player.inventory.getAmount(oreType.id) - val spaceForCoal = player.blastCoal.freeSlots() - val spaceForOre = player.blastOre.freeSlots() - val copperInPot = player.blastOre.getAmount(436) - val tinInPot = player.blastOre.getAmount(438) - var amountToAdd = 0 - if(oreType.id == Items.COAL_453 && amountInInventory <= spaceForCoal){ - amountToAdd = amountInInventory - }else if(oreType.id == Items.COAL_453 && amountInInventory > spaceForCoal){ - amountToAdd = spaceForOre - } - if(oreType.id != Items.COAL_453 && amountInInventory <= spaceForOre){ - amountToAdd = amountInInventory - }else if(oreType.id != Items.COAL_453 && amountInInventory > spaceForOre){ - amountToAdd = spaceForOre - } - if(oreType.id == Items.COPPER_ORE_436 && (amountToAdd + copperInPot) > 14){ - while(amountToAdd + copperInPot > 14){ - amountToAdd-- - } - } - if(oreType.id == Items.TIN_ORE_438 && (amountToAdd + tinInPot) > 14){ - while(amountToAdd + tinInPot > 14){ - amountToAdd-- - } - } - val bar = Bar.forOre(oreType.id) - if(oreType.id == Items.COAL_453) { - if (amountToAdd > 0 && getStatLevel(player, Skills.SMITHING) >= 30) { - player.blastCoal.add(Item(oreType.id,amountToAdd)) - removeItem(player, Item(oreType.id, amountToAdd), Container.INVENTORY) - BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreType.id)],amountToAdd).init() - }else if(getStatLevel(player,Skills.SMITHING) < 30){ - sendDialogue(player,"My Smithing level is not high enough to use Coal!") - } - else sendDialogue(player, "It looks like the melting pot is already full of ore!") - } else if(bar != null) { - if (amountToAdd > 0 && getStatLevel(player, Skills.SMITHING) >= bar.level) { - player.blastOre.add(Item(oreType.id,amountToAdd)) - removeItem(player, Item(oreType.id, amountToAdd), Container.INVENTORY) - BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreType.id)],amountToAdd).init() - }else if(getStatLevel(player,Skills.SMITHING) < bar.level){ - sendDialogue(player,"My Smithing level is not high enough to smelt Iron!") - } - else sendDialogue(player, "It looks like the melting pot is already full of ore!") - } - return@onUseWith true - } - - /**This handles interacting with the temperature gauge on the furnace*/ - - on(tGauge, IntType.SCENERY, "read") { player, node -> - player.interfaceManager.openComponent(30) - return@on true - } - - /**This handles taking bars from the dispenser*/ - - on(dispenser, IntType.SCENERY, "search", "take"){ player, node -> - if(player.varpManager.get(543).getVarbitValue(8) == 0 || player.varpManager.get(543).getVarbitValue(8) == 3) { - player.interfaceManager.openComponent(28) - } - return@on true - } - - /**Handles using a bucket of water on the bar dispenser*/ - - onUseWith(IntType.SCENERY,dispenser,Items.BUCKET_OF_WATER_1929){ player, used, with -> - when { - player.varpManager.get(543).getVarbitValue(8) == 2 -> { - removeItem(player,Items.BUCKET_OF_WATER_1929,Container.INVENTORY) - addItem(player,Items.BUCKET_1925) - BlastFurnace.barsHot = false - player.varpManager.get(543).setVarbit(8,3).send(player) - } - player.varpManager.get(543).getVarbitValue(8) == 0 -> { - sendDialogue(player,"There's nothing to cool off!") - } - player.varpManager.get(543).getVarbitValue(8) == 1 -> { - sendDialogue(player,"I should wait until the machine is finished") - } - player.varpManager.get(543).getVarbitValue(8) == 3 -> { - sendDialogue(player,"These bars have already cooled off!") - } - } - return@onUseWith true - } - - /**The sequel to Limp Bizkits hit single, "Fix shit"*/ - - on(brokenPotPipe, IntType.SCENERY, "repair"){ player, _ -> - if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ - if(inInventory(player,Items.HAMMER_2347,1)) { - rewardXP(player, Skills.CRAFTING, 50.0) - BlastFurnace.potPipeBroken = false - } - else { - sendMessage(player, "I need a hammer to do this!") - } - }else{ - sendDialogue(player,"I need 30 Craft in order to do this") - } - return@on true - } - - on(brokenPumpPipe, IntType.SCENERY, "repair"){ player, _ -> - if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ - if(inInventory(player,Items.HAMMER_2347,1)) { - rewardXP(player, Skills.CRAFTING, 50.0) - BlastFurnace.pumpPipeBroken = false - } - else { - sendMessage(player, "I need a hammer to do this!") - } - }else{ - sendDialogue(player,"I need 30 Craft in order to do this") - } - return@on true - } - - on(brokenBelt, IntType.SCENERY, "repair"){ player, _ -> - if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ - if(inInventory(player,Items.HAMMER_2347,1)) { - rewardXP(player, Skills.CRAFTING, 50.0) - BlastFurnace.beltBroken = false - } - else { - sendMessage(player, "I need a hammer to do this!") - } - }else{ - sendDialogue(player,"I need 30 Craft in order to do this") - } - return@on true - } - - on(brokenCog, IntType.SCENERY, "repair"){ player, _ -> - if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ - if(inInventory(player,Items.HAMMER_2347,1)) { - rewardXP(player, Skills.CRAFTING, 50.0) - BlastFurnace.cogBroken = false - } - else { - sendMessage(player, "I need a hammer to do this!") - } - }else{ - sendDialogue(player,"I need 30 Craft in order to do this") - } - return@on true - } - } -} +package content.minigame.blastfurnace + +import core.api.Container +import core.api.* +import core.game.node.entity.skill.Skills +import core.game.node.item.Item +import content.global.skill.smithing.smelting.Bar +import core.game.system.task.Pulse +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.map.Location +import org.rs09.consts.Items + +/**"Most" of the listeners for blast furnace live in this funny little file, handles + * listeners for most things from interacting with the temp gauge to putting ore on the + * conveyor belt. The only thing that's not in here as far as listeners goes is Ordan's unnoting. + * That lives in OrdanDialogue.kt + * @author phil lips*/ + +class BlastFurnaceListeners : InteractionListener { + + val disLoc = getScenery(1941, 4963, 0) + val brokenPotPipe = 9117 + val brokenPumpPipe = 9121 + val pump = 9090 + val stove = intArrayOf(9085, 9086, 9087) + val coke = 9088 + val pedals = 9097 + val conveyorLoad = 9100 + val dispenser = intArrayOf(9093, 9094, 9095, 9096) + val brokenBelt = 9103 + val brokenCog = 9105 + val tGauge = 9089 + val playerOre = intArrayOf( + Items.IRON_ORE_440, + Items.COPPER_ORE_436, + Items.TIN_ORE_438, + Items.COAL_453, + Items.MITHRIL_ORE_447, + Items.ADAMANTITE_ORE_449, + Items.SILVER_ORE_442, + Items.GOLD_ORE_444, + Items.RUNITE_ORE_451 + ) + val notedOre = intArrayOf( + Items.IRON_ORE_441, + Items.COPPER_ORE_437, + Items.TIN_ORE_439, + Items.COAL_454, + Items.MITHRIL_ORE_448, + Items.ADAMANTITE_ORE_450, + Items.SILVER_ORE_443, + Items.GOLD_ORE_445, + Items.RUNITE_ORE_452 + ) + + override fun defineListeners() { + + /**FINALLY AFK STRENGTH TRAINING*/ + + on(pump, IntType.SCENERY, "operate") { player, node -> + if(player.getSkills().getLevel(Skills.STRENGTH) >= 30) { + val pumpL = Location(1950, 4961, 0) + val pumpF = Location(1949, 4961, 0) + player.properties.teleportLocation = pumpL + submitIndividualPulse(player, object : Pulse() { + override fun pulse(): Boolean { + face(player, pumpF,) + animate(player, 2432) + BlastFurnace.pumping = true + if (!BlastFurnace.pumpPipeBroken || !BlastFurnace.potPipeBroken) rewardXP( + player, + Skills.STRENGTH, + 4.0 + ) + return false + } + + override fun stop() { + BlastFurnace.pumping = false + super.stop() + } + }) + }else{ + sendDialogue(player,"I need 30 Strength to do this!") + } + return@on true + } + + /**Logic for the pedals that run the conveyor, rewards Agility XP every tick that they're being + * pedaled but will stop once the conveyor breaks.*/ + + on(pedals, IntType.SCENERY, "pedal") { player, node -> + if(player.getSkills().getLevel(Skills.AGILITY) >= 30) { + val pedalL = Location(1947, 4966, 0) + val pedalF = Location(1946, 4966, 0) + player.properties.teleportLocation = pedalL + submitIndividualPulse(player, object : Pulse() { + override fun pulse(): Boolean { + face(player, pedalF,) + animate(player, 2433) + BlastFurnace.pedaling = true + if (BlastFurnace.beltRunning) rewardXP(player, Skills.AGILITY, 2.0) + return false + } + override fun stop() { + BlastFurnace.pedaling = false + super.stop() + } + }) + }else{ + sendDialogue(player,"I need 30 Agility to do this!") + } + return@on true + } + + /**Lets players use a spade to take coke from the pile of coke*/ + + on(coke, IntType.SCENERY, "collect") { player, node -> + if (inInventory(player, Items.SPADE_952, 1)) { + animate(player, 2441) + removeItem(player, Items.SPADE_952, Container.INVENTORY) + addItem(player, Items.SPADEFUL_OF_COKE_6448, 1) + lockInteractions(player,1) + } else { + sendMessage(player, "You need a spade to do this!") + } + return@on true + } + + /**This code is for handling the coke stove, lets players interact with it with the spadeful of coke + * and rewards firemaking XP when shoving coke in there, it will not allow players to shovel more + * coke in if it is already full.*/ + + on(stove, IntType.SCENERY, "refuel") { player, node -> + if (inInventory(player, Items.SPADEFUL_OF_COKE_6448, 1) && BlastFurnace.stoveCoke < 30 && player.getSkills().getLevel(Skills.FIREMAKING) >= 30) { + animate(player, 2442) + lockInteractions(player,2) + submitIndividualPulse(player, object : Pulse() { + override fun pulse(): Boolean { + removeItem(player, Items.SPADEFUL_OF_COKE_6448, Container.INVENTORY) + addItem(player, Items.SPADE_952, 1) + animate(player, 2443) + return true + } + }) + rewardXP(player, Skills.FIREMAKING, 5.0) + BlastFurnace.stoveCoke++ + }else if(inInventory(player, Items.SPADEFUL_OF_COKE_6448,1) && BlastFurnace.stoveCoke >= 30 && player.getSkills().getLevel(Skills.FIREMAKING) >= 30){ + sendDialogue(player,"The coke stove is already full!") + } else if(player.getSkills().getLevel(Skills.FIREMAKING) < 30){ + sendDialogue(player,"I need 30 Firemaking to do this") + } else { + sendMessage(player,"You need some coke to do that!") + } + return@on true + } + + /**This beautiiful block of bullshit handles the logic for putting coal and ores + * on the conveyor belt. It won't let you put anything on there if there's no room + * in your blast ore or blast coal player containers, the way it works is that it + * puts your coal and ore into the blast furnace containers however, the blast furnace will NOT + * smelt your ores because it's waiting for a player attribute to be set by the ore NPCs that this spawns + * Is it fucky? Yes + * Does it work? Also yes*/ + on(conveyorLoad, IntType.SCENERY, "put-ore-on") { player, node -> + val rocksInInven = playerOre.filter {inInventory(player, it)} + var oreToActuallyAdd = 0 + var coalToActuallyAdd = 0 + if(player.blastCoal.freeSlots() > 0 || player.blastOre.freeSlots() > 0) { + player.dialogueInterpreter.sendOptions("Add all your ore to the furnace?", "Yes", "No") + player.dialogueInterpreter.addAction { player, button -> + if (button == 2 && rocksInInven.isNotEmpty()) { + rocksInInven.forEach { oreID -> + val oreAmount = amountInInventory(player, oreID) + val copperInPot = player.blastOre.getAmount(436) + val tinInPot = player.blastOre.getAmount(438) + if(oreID == Items.COAL_453 && oreAmount <= player.blastCoal.freeSlots()){ + coalToActuallyAdd = oreAmount + }else if(oreID == Items.COAL_453 && oreAmount > player.blastCoal.freeSlots() && player.blastCoal.freeSlots() > 0){ + coalToActuallyAdd = player.blastCoal.freeSlots() + } + if(oreID != Items.COAL_453 && oreAmount <= player.blastOre.freeSlots()){ + oreToActuallyAdd = oreAmount + }else if(oreID != Items.COAL_453 && oreAmount > player.blastOre.freeSlots() && player.blastOre.freeSlots() > 0){ + oreToActuallyAdd = player.blastOre.freeSlots() + } + if(oreID == Items.COPPER_ORE_436 && (oreToActuallyAdd + copperInPot) > 14){ + while(oreToActuallyAdd + copperInPot > 14){ + oreToActuallyAdd-- + } + } + if(oreID == Items.TIN_ORE_438 && (oreToActuallyAdd + tinInPot) > 14){ + while(oreToActuallyAdd + tinInPot > 14){ + oreToActuallyAdd-- + } + } + val bar = Bar.forOre(oreID) + if(oreID == Items.COAL_453) { + if (coalToActuallyAdd > 0 && getStatLevel(player, Skills.SMITHING) >= 30) { + player.blastCoal.add(Item(Items.COAL_453,coalToActuallyAdd)) + removeItem(player, Item(oreID, coalToActuallyAdd), Container.INVENTORY) + BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreID)],coalToActuallyAdd).init() + } + else if(getStatLevel(player, Skills.SMITHING) < 30){ + sendDialogue(player, "My Smithing level is not high enough to use Coal!") + } + else sendDialogue(player, "It looks like the melting pot is already full of coal!") + } else if (bar != null) { + if (oreToActuallyAdd > 0 && getStatLevel(player, Skills.SMITHING) >= bar.level) { + player.blastOre.add(Item(oreID,oreToActuallyAdd)) + removeItem(player, Item(oreID, oreToActuallyAdd), Container.INVENTORY) + BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreID)],oreToActuallyAdd).init() + } + else if(getStatLevel(player, Skills.SMITHING) < bar.level){ + sendDialogue(player, "My Smithing level is not high enough to smelt ${bar.name.toLowerCase()}!") + } + else sendDialogue(player, "It looks like the melting pot is already full of ore!") + } + } + }else if (button == 2 && rocksInInven.isEmpty()){ + sendDialogue(player,"I should make sure that I have some ore before doing this.") + } + } + } + return@on true + } + + /**Added this because clicking on ore then the belt and getting "Nothing interesting happens" is annoying + * it's essentially the same thing as above except without the dialogue because if you're clicking on ore + * and trying to use it on the conveyor belt then you know what you're trying to do.*/ + onUseWith(IntType.SCENERY,conveyorLoad,*playerOre){ player, _, oreType -> + val amountInInventory = player.inventory.getAmount(oreType.id) + val spaceForCoal = player.blastCoal.freeSlots() + val spaceForOre = player.blastOre.freeSlots() + val copperInPot = player.blastOre.getAmount(436) + val tinInPot = player.blastOre.getAmount(438) + var amountToAdd = 0 + if(oreType.id == Items.COAL_453 && amountInInventory <= spaceForCoal){ + amountToAdd = amountInInventory + }else if(oreType.id == Items.COAL_453 && amountInInventory > spaceForCoal){ + amountToAdd = spaceForOre + } + if(oreType.id != Items.COAL_453 && amountInInventory <= spaceForOre){ + amountToAdd = amountInInventory + }else if(oreType.id != Items.COAL_453 && amountInInventory > spaceForOre){ + amountToAdd = spaceForOre + } + if(oreType.id == Items.COPPER_ORE_436 && (amountToAdd + copperInPot) > 14){ + while(amountToAdd + copperInPot > 14){ + amountToAdd-- + } + } + if(oreType.id == Items.TIN_ORE_438 && (amountToAdd + tinInPot) > 14){ + while(amountToAdd + tinInPot > 14){ + amountToAdd-- + } + } + val bar = Bar.forOre(oreType.id) + if(oreType.id == Items.COAL_453) { + if (amountToAdd > 0 && getStatLevel(player, Skills.SMITHING) >= 30) { + player.blastCoal.add(Item(oreType.id,amountToAdd)) + removeItem(player, Item(oreType.id, amountToAdd), Container.INVENTORY) + BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreType.id)],amountToAdd).init() + }else if(getStatLevel(player,Skills.SMITHING) < 30){ + sendDialogue(player,"My Smithing level is not high enough to use Coal!") + } + else sendDialogue(player, "It looks like the melting pot is already full of ore!") + } else if(bar != null) { + if (amountToAdd > 0 && getStatLevel(player, Skills.SMITHING) >= bar.level) { + player.blastOre.add(Item(oreType.id,amountToAdd)) + removeItem(player, Item(oreType.id, amountToAdd), Container.INVENTORY) + BlastFurnaceOre(player, BFOreVariant.values()[playerOre.indexOf(oreType.id)],amountToAdd).init() + }else if(getStatLevel(player,Skills.SMITHING) < bar.level){ + sendDialogue(player,"My Smithing level is not high enough to smelt Iron!") + } + else sendDialogue(player, "It looks like the melting pot is already full of ore!") + } + return@onUseWith true + } + + /**This handles interacting with the temperature gauge on the furnace*/ + + on(tGauge, IntType.SCENERY, "read") { player, node -> + player.interfaceManager.openComponent(30) + return@on true + } + + /**This handles taking bars from the dispenser*/ + + on(dispenser, IntType.SCENERY, "search", "take"){ player, node -> + if(player.varpManager.get(543).getVarbitValue(8) == 0 || player.varpManager.get(543).getVarbitValue(8) == 3) { + player.interfaceManager.openComponent(28) + } + return@on true + } + + /**Handles using a bucket of water on the bar dispenser*/ + + onUseWith(IntType.SCENERY,dispenser,Items.BUCKET_OF_WATER_1929){ player, used, with -> + when { + player.varpManager.get(543).getVarbitValue(8) == 2 -> { + removeItem(player,Items.BUCKET_OF_WATER_1929,Container.INVENTORY) + addItem(player,Items.BUCKET_1925) + BlastFurnace.barsHot = false + player.varpManager.get(543).setVarbit(8,3).send(player) + } + player.varpManager.get(543).getVarbitValue(8) == 0 -> { + sendDialogue(player,"There's nothing to cool off!") + } + player.varpManager.get(543).getVarbitValue(8) == 1 -> { + sendDialogue(player,"I should wait until the machine is finished") + } + player.varpManager.get(543).getVarbitValue(8) == 3 -> { + sendDialogue(player,"These bars have already cooled off!") + } + } + return@onUseWith true + } + + /**The sequel to Limp Bizkits hit single, "Fix shit"*/ + + on(brokenPotPipe, IntType.SCENERY, "repair"){ player, _ -> + if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ + if(inInventory(player,Items.HAMMER_2347,1)) { + rewardXP(player, Skills.CRAFTING, 50.0) + BlastFurnace.potPipeBroken = false + } + else { + sendMessage(player, "I need a hammer to do this!") + } + }else{ + sendDialogue(player,"I need 30 Craft in order to do this") + } + return@on true + } + + on(brokenPumpPipe, IntType.SCENERY, "repair"){ player, _ -> + if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ + if(inInventory(player,Items.HAMMER_2347,1)) { + rewardXP(player, Skills.CRAFTING, 50.0) + BlastFurnace.pumpPipeBroken = false + } + else { + sendMessage(player, "I need a hammer to do this!") + } + }else{ + sendDialogue(player,"I need 30 Craft in order to do this") + } + return@on true + } + + on(brokenBelt, IntType.SCENERY, "repair"){ player, _ -> + if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ + if(inInventory(player,Items.HAMMER_2347,1)) { + rewardXP(player, Skills.CRAFTING, 50.0) + BlastFurnace.beltBroken = false + } + else { + sendMessage(player, "I need a hammer to do this!") + } + }else{ + sendDialogue(player,"I need 30 Craft in order to do this") + } + return@on true + } + + on(brokenCog, IntType.SCENERY, "repair"){ player, _ -> + if(player.getSkills().getLevel(Skills.CRAFTING) >= 30){ + if(inInventory(player,Items.HAMMER_2347,1)) { + rewardXP(player, Skills.CRAFTING, 50.0) + BlastFurnace.cogBroken = false + } + else { + sendMessage(player, "I need a hammer to do this!") + } + }else{ + sendDialogue(player,"I need 30 Craft in order to do this") + } + return@on true + } + } +} diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/BlastFurnaceOre.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceOre.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/BlastFurnaceOre.kt rename to Server/src/main/content/minigame/blastfurnace/BlastFurnaceOre.kt index aa51ee458..314bc5159 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/BlastFurnaceOre.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceOre.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.npc +package content.minigame.blastfurnace -import api.* +import core.api.* import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.player.Player import core.game.system.task.Pulse @@ -8,7 +8,6 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.activity.blastfurnace.BlastFurnace /**On god this is like 95% ceikry and 5% me adding a setAttribute to the clear code * @author funny alium man*/ diff --git a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceZone.kt b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceZone.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceZone.kt rename to Server/src/main/content/minigame/blastfurnace/BlastFurnaceZone.kt index 291c33ee0..519687625 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/BlastFurnaceZone.kt +++ b/Server/src/main/content/minigame/blastfurnace/BlastFurnaceZone.kt @@ -1,55 +1,55 @@ -package rs09.game.content.activity.blastfurnace - -import api.* -import core.game.node.entity.Entity -import core.game.node.entity.player.Player -import core.game.world.map.zone.MapZone -import core.game.world.map.zone.ZoneBorders -import core.game.world.map.zone.ZoneBuilder -import core.game.world.map.zone.ZoneMonitor -import core.plugin.Initializable -import core.plugin.Plugin - -/**Code for defining the Blast Furnace zone, Blast Furnace will only - * operate and run its logic if there are actual players in this zone - * @author phil lips*/ - - -//Remove this once the funny dupe gets fixed -//@Initializable -class BlastFurnaceZone : MapZone("Blast Furnace Zone",true), Plugin { - - var pulseStarted = false - - override fun newInstance(arg: Any?): Plugin { - ZoneBuilder.configure(this) - return this - } - - override fun fireEvent(identifier: String?, vararg args: Any?): Any { - return Unit - } - - override fun configure() { - super.register(ZoneBorders(1935,4956,1956,4974)) - } - - override fun enter(e: Entity?): Boolean { - if (!pulseStarted){ - submitWorldPulse(BlastFurnace.blastPulse) - pulseStarted = true - } - if (e != null && e.isPlayer) { - BlastFurnace.blastFurnacePlayerList.add(e.asPlayer()) - } - return super.enter(e) - } - - override fun leave(e: Entity?, logout: Boolean): Boolean { - if (e != null && e.isPlayer) { - BlastFurnace.blastFurnacePlayerList.remove(e.asPlayer()) - } - return super.leave(e, logout) - } - +package content.minigame.blastfurnace + +import core.api.* +import core.game.node.entity.Entity +import core.game.node.entity.player.Player +import core.game.world.map.zone.MapZone +import core.game.world.map.zone.ZoneBorders +import core.game.world.map.zone.ZoneBuilder +import core.game.world.map.zone.ZoneMonitor +import core.plugin.Initializable +import core.plugin.Plugin + +/**Code for defining the Blast Furnace zone, Blast Furnace will only + * operate and run its logic if there are actual players in this zone + * @author phil lips*/ + + +//Remove this once the funny dupe gets fixed +//@Initializable +class BlastFurnaceZone : MapZone("Blast Furnace Zone",true), Plugin { + + var pulseStarted = false + + override fun newInstance(arg: Any?): Plugin { + ZoneBuilder.configure(this) + return this + } + + override fun fireEvent(identifier: String?, vararg args: Any?): Any { + return Unit + } + + override fun configure() { + super.register(ZoneBorders(1935,4956,1956,4974)) + } + + override fun enter(e: Entity?): Boolean { + if (!pulseStarted){ + submitWorldPulse(BlastFurnace.blastPulse) + pulseStarted = true + } + if (e != null && e.isPlayer) { + BlastFurnace.blastFurnacePlayerList.add(e.asPlayer()) + } + return super.enter(e) + } + + override fun leave(e: Entity?, logout: Boolean): Boolean { + if (e != null && e.isPlayer) { + BlastFurnace.blastFurnacePlayerList.remove(e.asPlayer()) + } + return super.leave(e, logout) + } + } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/PhunnyGaugeTempInterfaceListener.kt b/Server/src/main/content/minigame/blastfurnace/PhunnyGaugeTempInterfaceListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/PhunnyGaugeTempInterfaceListener.kt rename to Server/src/main/content/minigame/blastfurnace/PhunnyGaugeTempInterfaceListener.kt index e2d36a9a9..7edbab79c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/blastfurnace/PhunnyGaugeTempInterfaceListener.kt +++ b/Server/src/main/content/minigame/blastfurnace/PhunnyGaugeTempInterfaceListener.kt @@ -1,25 +1,24 @@ -package rs09.game.content.activity.blastfurnace - -import api.* -import rs09.game.interaction.InterfaceListener - -/**Handles adding and removing players to the temp gauge viewing list. - * Only updates the gauge if people are actually looking at it - * @author phil lips*/ - -class PhunnyGaugeTempInterfaceListener : InterfaceListener { - - override fun defineInterfaceListeners() { - onOpen(30) {player, component -> - BlastFurnace.gaugeViewList.add(player) - return@onOpen true - } - - onClose(30) {player, component -> - BlastFurnace.gaugeViewList.remove(player) - return@onClose true - } - } - - +package content.minigame.blastfurnace + +import core.game.interaction.InterfaceListener + +/**Handles adding and removing players to the temp gauge viewing list. + * Only updates the gauge if people are actually looking at it + * @author phil lips*/ + +class PhunnyGaugeTempInterfaceListener : InterfaceListener { + + override fun defineInterfaceListeners() { + onOpen(30) {player, component -> + BlastFurnace.gaugeViewList.add(player) + return@onOpen true + } + + onClose(30) {player, component -> + BlastFurnace.gaugeViewList.remove(player) + return@onClose true + } + } + + } \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java b/Server/src/main/content/minigame/bountyhunter/BHOptionHandler.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java rename to Server/src/main/content/minigame/bountyhunter/BHOptionHandler.java index a87e47002..4af321f71 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java +++ b/Server/src/main/content/minigame/bountyhunter/BHOptionHandler.java @@ -1,13 +1,13 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BHScoreBoard.java b/Server/src/main/content/minigame/bountyhunter/BHScoreBoard.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/bountyhunter/BHScoreBoard.java rename to Server/src/main/content/minigame/bountyhunter/BHScoreBoard.java index 2f2fadd4c..c57c3efa5 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BHScoreBoard.java +++ b/Server/src/main/content/minigame/bountyhunter/BHScoreBoard.java @@ -1,4 +1,4 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyEntry.java b/Server/src/main/content/minigame/bountyhunter/BountyEntry.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/bountyhunter/BountyEntry.java rename to Server/src/main/content/minigame/bountyhunter/BountyEntry.java index e92d7e1f1..d7021abf9 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyEntry.java +++ b/Server/src/main/content/minigame/bountyhunter/BountyEntry.java @@ -1,7 +1,7 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Holds a player's bounty hunter data. diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyHunterActivity.java b/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/bountyhunter/BountyHunterActivity.java rename to Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java index 5527b0592..fd258e5d6 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyHunterActivity.java +++ b/Server/src/main/content/minigame/bountyhunter/BountyHunterActivity.java @@ -1,4 +1,4 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -6,8 +6,8 @@ import core.game.component.ComponentPlugin; import core.game.container.Container; import core.game.container.ContainerEvent; import core.game.container.ContainerListener; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -18,7 +18,7 @@ import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.GroundItem; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.Point; import core.game.world.map.zone.ZoneBorders; @@ -28,7 +28,7 @@ import core.game.world.map.zone.impl.WildernessZone; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; import java.util.*; diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyLocateSpell.java b/Server/src/main/content/minigame/bountyhunter/BountyLocateSpell.java similarity index 93% rename from Server/src/main/java/core/game/content/activity/bountyhunter/BountyLocateSpell.java rename to Server/src/main/content/minigame/bountyhunter/BountyLocateSpell.java index 473d3cf90..7e24571e5 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BountyLocateSpell.java +++ b/Server/src/main/content/minigame/bountyhunter/BountyLocateSpell.java @@ -1,18 +1,18 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import core.game.node.entity.impl.PulseType; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.interaction.MovementPulse; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/CraterType.java b/Server/src/main/content/minigame/bountyhunter/CraterType.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/bountyhunter/CraterType.java rename to Server/src/main/content/minigame/bountyhunter/CraterType.java index 03944b8dc..fe2177957 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/CraterType.java +++ b/Server/src/main/content/minigame/bountyhunter/CraterType.java @@ -1,4 +1,4 @@ -package core.game.content.activity.bountyhunter; +package content.minigame.bountyhunter; import core.game.node.entity.player.Player; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/bountyhunter/MaximillianSackvilleDialogue.kt b/Server/src/main/content/minigame/bountyhunter/MaximillianSackvilleDialogue.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/bountyhunter/MaximillianSackvilleDialogue.kt rename to Server/src/main/content/minigame/bountyhunter/MaximillianSackvilleDialogue.kt index bb324a5d2..73d3c1369 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/bountyhunter/MaximillianSackvilleDialogue.kt +++ b/Server/src/main/content/minigame/bountyhunter/MaximillianSackvilleDialogue.kt @@ -1,16 +1,16 @@ -package rs09.game.content.dialogue.region.bountyhunter +package content.minigame.bountyhunter -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Provides dialogue tree for Maximillian Sackville, @@ -19,13 +19,13 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class MaximillianSackvilleDialogue(player: Player? = null) : DialoguePlugin(player) { +class MaximillianSackvilleDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> when { hasIronmanRestriction(player, IronmanMode.ULTIMATE) -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "My apologies, dear ${if (player.isMale) "sir" else "madam"}, " + "our services are not available for Ultimate ${if (player.isMale) "Ironmen" else "Ironwomen"}." ).also { stage = END_DIALOGUE } @@ -33,7 +33,7 @@ class MaximillianSackvilleDialogue(player: Player? = null) : DialoguePlugin(play else -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Good day, how may I help you?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -46,44 +46,44 @@ class MaximillianSackvilleDialogue(player: Player? = null) : DialoguePlugin(play } 1 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Before we go any further, I should inform you that you " + "have items ready for collection from the Grand Exchange." ).also { stage++ } 2 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Who are you?" ).also { stage++ } 3 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "How inconsiderate of me, dear ${if (player.isMale) "sir" else "madam"}. " + "My name is Maximillian Sackville and I conduct operations here on behalf " + "of The Bank of Gielinor." ).also { stage++ } 4 -> showTopics( - Topic(FacialExpression.NEUTRAL, "I'd like to access my bank account.", 10), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to access my bank account.", 10), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to switch to my ${getBankAccountName(player, true)} bank account.", 11, hasActivatedSecondaryBankAccount(player) ), - Topic(FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 12), - Topic(FacialExpression.NEUTRAL, "I'd like to collect items.", 13), - Topic(FacialExpression.ASKING, "Aren't you afraid of working in the Wilderness?", 5) + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 12), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to collect items.", 13), + Topic(core.game.dialogue.FacialExpression.ASKING, "Aren't you afraid of working in the Wilderness?", 5) ) 5 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "While the Wilderness is quite a dangerous place, The Bank of Gielinor offers " + "us - roving bankers - extraordinary benefits for our hard work in hazardous environments." ).also { stage++ } 6 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "This allows us to provide our services to customers regardless of their current " + "whereabouts. Our desire to serve is stronger than our fear of the Wilderness." ).also { stage = END_DIALOGUE } @@ -97,7 +97,7 @@ class MaximillianSackvilleDialogue(player: Player? = null) : DialoguePlugin(play toggleBankAccount(player) npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Naturally. You can now access your ${getBankAccountName(player)} bank account." ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/java/core/game/content/activity/clanwars/CWChallengeOption.java b/Server/src/main/content/minigame/clanwars/CWChallengeOption.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/clanwars/CWChallengeOption.java rename to Server/src/main/content/minigame/clanwars/CWChallengeOption.java index e8329281c..2f472c84d 100644 --- a/Server/src/main/java/core/game/content/activity/clanwars/CWChallengeOption.java +++ b/Server/src/main/content/minigame/clanwars/CWChallengeOption.java @@ -1,6 +1,6 @@ -package core.game.content.activity.clanwars; +package content.minigame.clanwars; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java b/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java rename to Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java index a983721ee..fc9afe739 100644 --- a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java +++ b/Server/src/main/content/minigame/clanwars/ClanWarsActivityPlugin.java @@ -1,13 +1,13 @@ -package core.game.content.activity.clanwars; +package content.minigame.clanwars; import java.util.ArrayList; import java.util.List; import core.game.component.Component; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.pet.Pet; +import content.global.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.pet.Pet; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -21,7 +21,7 @@ import core.game.node.scenery.SceneryBuilder; import core.game.system.communication.ClanEntry; import core.game.system.communication.ClanRepository; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java b/Server/src/main/content/minigame/clanwars/ClanWarsChallengeRoom.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java rename to Server/src/main/content/minigame/clanwars/ClanWarsChallengeRoom.java index 61401fc21..7b3d9679b 100644 --- a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java +++ b/Server/src/main/content/minigame/clanwars/ClanWarsChallengeRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.clanwars; +package content.minigame.clanwars; import core.game.interaction.Option; import core.game.node.Node; @@ -12,7 +12,7 @@ import core.game.world.map.zone.ZoneRestriction; import core.game.world.map.zone.impl.WildernessZone; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the clan wars challenge room. diff --git a/Server/src/main/content/minigame/duel/AfrahDialogue.kt b/Server/src/main/content/minigame/duel/AfrahDialogue.kt new file mode 100644 index 000000000..610809294 --- /dev/null +++ b/Server/src/main/content/minigame/duel/AfrahDialogue.kt @@ -0,0 +1,174 @@ +package content.minigame.duel + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AfrahDialogue : core.game.dialogue.DialoguePlugin { + + private val conversations = arrayOf (0, 4, 10, 11, 15, 17, 20, 22, 23, 24, 29, 32) + + override fun open(vararg args: Any): Boolean { + player(core.game.dialogue.FacialExpression.ASKING, "Hi!") + stage = conversations.random() + npc = args[0] as NPC + return true + } + + constructor() {} + constructor(player: Player?) : super(player) {} + + override fun getIds(): IntArray { + return intArrayOf(968) + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + 0 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Ooh. This is exciting!") + stage++ + } + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Yup!") + stage = 99 + } + 2 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "I wouldn't want to be the poor guy that has to", "clean up after the duels.") + stage++ + } + 3 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Me neither.") + stage = 99 + } + 4 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "My son just won his first duel!") + stage++ + } + 5 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Congratulations!") + stage++ + } + 6 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "He ripped his opponent in half!") + stage++ + } + 7 -> { + player(core.game.dialogue.FacialExpression.ASKING, "That's gotta hurt!") + stage++ + } + 8 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "He's only 10 as well!") + stage++ + } + 9 -> { + player(core.game.dialogue.FacialExpression.ASKING, "You gotta start 'em young!") + stage = 99 + } + 10 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Hmph.") + stage = 99 + } + 11 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "My favourite fighter is Mubariz!") + stage++ + } + 12 -> { + player(core.game.dialogue.FacialExpression.ASKING, "The guy at the information kiosk?") + stage++ + } + 13 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Yeah! He rocks!") + stage++ + } + 14 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Takes all sorts, I guess.") + stage = 99 + } + 15 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Hi! I'm here to watch the duels!") + stage++ + } + 16 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Me too!") + stage = 99 + } + 17 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Did you know they think this place dates","back to the second age?!") + stage++ + } + 18 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Really?") + stage++ + } + 19 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Yeah. The guy at the information kiosk was telling me.") + stage = 99 + } + 20 -> { + npc(core.game.dialogue.FacialExpression.ANGRY, "Can't you see I'm watching the duels?") + stage++ + } + 21 -> { + player(core.game.dialogue.FacialExpression.SAD, "I'm sorry!") + stage = 99 + } + 22 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Well. This beats doing the shopping!") + stage = 99 + } + 23 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Hi!") + stage = 99 + } + 24 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Knock knock!") + stage++ + } + 25 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Who's there?") + stage++ + } + 26 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Boo!") + stage++ + } + 27 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Boo who?") + stage++ + } + 28 -> { + npc(core.game.dialogue.FacialExpression.LAUGH, "Don't cry, it's just me!") + stage = 99 + } + 29 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Why did the skeleton burp?") + stage++ + } + 30 -> { + player(core.game.dialogue.FacialExpression.ASKING, "I don't know?") + stage++ + } + 31 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "'Cause it didn't have the guts to fart!") + stage = 99 + } + 32 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Waaaaassssssuuuuupp?!.") + stage = 99 + } + 99 -> end() + } + return true + } + + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return AfrahDialogue(player) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/activity/duel/ChallengeOptionPlugin.java b/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/duel/ChallengeOptionPlugin.java rename to Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java index 80f1efd57..5beb213fa 100644 --- a/Server/src/main/java/core/game/content/activity/duel/ChallengeOptionPlugin.java +++ b/Server/src/main/content/minigame/duel/ChallengeOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.game.interaction.OptionHandler; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelArea.java b/Server/src/main/content/minigame/duel/DuelArea.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/duel/DuelArea.java rename to Server/src/main/content/minigame/duel/DuelArea.java index 1bc7110a3..6b78d4952 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelArea.java +++ b/Server/src/main/content/minigame/duel/DuelArea.java @@ -1,9 +1,9 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.cache.def.impl.SceneryDefinition; import core.game.container.Container; import core.game.container.impl.EquipmentContainer; -import core.game.content.dialogue.DialogueAction; +import core.game.dialogue.DialogueAction; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -14,7 +14,7 @@ import core.game.node.entity.impl.PulseManager; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.HintIconManager; import core.game.node.entity.player.link.prayer.PrayerType; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.Familiar; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; @@ -27,8 +27,8 @@ import core.game.world.map.zone.ZoneRestriction; import core.plugin.Plugin; import core.tools.RandomFunction; import core.tools.StringUtils; -import rs09.ServerConstants; -import rs09.game.world.GameWorld; +import core.ServerConstants; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelArenaActivity.java b/Server/src/main/content/minigame/duel/DuelArenaActivity.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/duel/DuelArenaActivity.java rename to Server/src/main/content/minigame/duel/DuelArenaActivity.java index a6f276fed..08fd76fb3 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelArenaActivity.java +++ b/Server/src/main/content/minigame/duel/DuelArenaActivity.java @@ -1,10 +1,10 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import java.util.ArrayList; import java.util.List; import core.game.component.Component; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -16,7 +16,7 @@ import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelComponentPlugin.java b/Server/src/main/content/minigame/duel/DuelComponentPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/duel/DuelComponentPlugin.java rename to Server/src/main/content/minigame/duel/DuelComponentPlugin.java index 09deaee25..b70f73c8f 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelComponentPlugin.java +++ b/Server/src/main/content/minigame/duel/DuelComponentPlugin.java @@ -1,10 +1,10 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelReqModule.java b/Server/src/main/content/minigame/duel/DuelReqModule.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/duel/DuelReqModule.java rename to Server/src/main/content/minigame/duel/DuelReqModule.java index 75f3bee27..9c2a86540 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelReqModule.java +++ b/Server/src/main/content/minigame/duel/DuelReqModule.java @@ -1,4 +1,4 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.request.RequestModule; diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelRule.java b/Server/src/main/content/minigame/duel/DuelRule.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/duel/DuelRule.java rename to Server/src/main/content/minigame/duel/DuelRule.java index 88de3f9d7..62a737b2a 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelRule.java +++ b/Server/src/main/content/minigame/duel/DuelRule.java @@ -1,4 +1,4 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.game.container.impl.EquipmentContainer; diff --git a/Server/src/main/java/core/game/content/activity/duel/DuelSession.java b/Server/src/main/content/minigame/duel/DuelSession.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/duel/DuelSession.java rename to Server/src/main/content/minigame/duel/DuelSession.java index dc7bf43d3..d278bf6b9 100644 --- a/Server/src/main/java/core/game/content/activity/duel/DuelSession.java +++ b/Server/src/main/content/minigame/duel/DuelSession.java @@ -1,6 +1,6 @@ -package core.game.content.activity.duel; +package content.minigame.duel; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.component.CloseEvent; import core.game.component.Component; import core.game.component.ComponentDefinition; @@ -10,16 +10,16 @@ import core.game.container.ContainerType; import core.game.container.access.InterfaceContainer; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.player.Player; +import core.game.node.entity.player.info.LogType; import core.game.node.entity.player.info.login.PlayerParser; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; import core.plugin.Plugin; import core.tools.RandomFunction; import kotlin.Unit; -import rs09.game.content.global.action.EquipHandler; -import rs09.game.node.entity.player.info.LogType; -import rs09.game.node.entity.player.info.PlayerMonitor; -import rs09.game.system.config.ItemConfigParser; +import core.game.global.action.EquipHandler; +import core.game.node.entity.player.info.PlayerMonitor; +import core.game.system.config.ItemConfigParser; import java.text.DecimalFormat; diff --git a/Server/src/main/java/core/game/content/dialogue/MubarizDialogue.java b/Server/src/main/content/minigame/duel/MubarizDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/MubarizDialogue.java rename to Server/src/main/content/minigame/duel/MubarizDialogue.java index 525cd6532..4350ab449 100644 --- a/Server/src/main/java/core/game/content/dialogue/MubarizDialogue.java +++ b/Server/src/main/content/minigame/duel/MubarizDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.minigame.duel; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/duel/StakeContainer.java b/Server/src/main/content/minigame/duel/StakeContainer.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/duel/StakeContainer.java rename to Server/src/main/content/minigame/duel/StakeContainer.java index 52f204639..c505478cd 100644 --- a/Server/src/main/java/core/game/content/activity/duel/StakeContainer.java +++ b/Server/src/main/content/minigame/duel/StakeContainer.java @@ -1,4 +1,4 @@ -package core.game.content.activity.duel; +package content.minigame.duel; import core.game.component.Component; import core.game.container.Container; diff --git a/Server/src/main/java/core/game/content/dialogue/ZahwaDialogue.java b/Server/src/main/content/minigame/duel/ZahwaDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/ZahwaDialogue.java rename to Server/src/main/content/minigame/duel/ZahwaDialogue.java index 3bffea1aa..baf7be753 100644 --- a/Server/src/main/java/core/game/content/dialogue/ZahwaDialogue.java +++ b/Server/src/main/content/minigame/duel/ZahwaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.minigame.duel; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerActivity.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerActivity.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerActivity.kt rename to Server/src/main/content/minigame/fishingtrawler/FishingTrawlerActivity.kt index c2216e843..1a2a64f1c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerActivity.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerActivity.kt @@ -1,16 +1,16 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler import core.game.node.entity.player.Player import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.game.world.map.build.DynamicRegion import core.game.world.map.zone.ZoneRestriction import core.plugin.Initializable -import rs09.tools.ticksToSeconds -import core.game.content.activity.ActivityManager -import core.game.content.activity.ActivityPlugin -import rs09.tools.stringtools.colorize +import core.tools.ticksToSeconds +import core.game.activity.ActivityManager +import core.game.activity.ActivityPlugin +import core.tools.colorize /** diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerInteractionHandler.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerInteractionHandler.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerInteractionHandler.kt rename to Server/src/main/content/minigame/fishingtrawler/FishingTrawlerInteractionHandler.kt index 79b6c7f34..eff8b243c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerInteractionHandler.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerInteractionHandler.kt @@ -1,8 +1,6 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler -import core.game.content.activity.ActivityManager -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.activity.ActivityManager import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.item.GroundItemManager @@ -12,11 +10,11 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.player.info.stats.FISHING_TRAWLER_LEAKS_PATCHED -import rs09.game.node.entity.player.info.stats.STATS_BASE -import rs09.tools.stringtools.colorize +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.system.command.sets.FISHING_TRAWLER_LEAKS_PATCHED +import core.game.system.command.sets.STATS_BASE +import core.tools.colorize import kotlin.math.ceil /** @@ -79,7 +77,7 @@ class FishingTrawlerInteractionHandler : InteractionListener { on(REWARD_NET, IntType.SCENERY, "inspect"){ player, _ -> val session: FishingTrawlerSession? = player.getAttribute("ft-session",null) if(session == null || session.boatSank){ - player.dialogueInterpreter.sendDialogues(player, FacialExpression.GUILTY,"I'd better not go stealing other people's fish.") + player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.GUILTY,"I'd better not go stealing other people's fish.") return@on true } player.dialogueInterpreter.open(18237582) @@ -94,7 +92,7 @@ class FishingTrawlerInteractionHandler : InteractionListener { return@on true } - on(FULL_BAIL_BUCKET, IntType.ITEM, "empty"){player,node -> + on(FULL_BAIL_BUCKET, IntType.ITEM, "empty"){ player, node -> player.lock() player.pulseManager.run( object : Pulse(){ @@ -155,10 +153,10 @@ class FishingTrawlerInteractionHandler : InteractionListener { } @Initializable -class NetLootDialogue(player: Player? = null): DialoguePlugin(player){ +class NetLootDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin(player){ var session: FishingTrawlerSession? = null var rolls = 0 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return NetLootDialogue(player) } @@ -195,9 +193,9 @@ class NetLootDialogue(player: Player? = null): DialoguePlugin(player){ } @Initializable -class NetRepairDialogue(player: Player? = null) : DialoguePlugin(player){ +class NetRepairDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ var session: FishingTrawlerSession? = null - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return NetRepairDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerOverlay.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerOverlay.kt rename to Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt index 542f5c3b3..16a714c9c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerOverlay.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerOverlay.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler import core.game.node.entity.player.Player @@ -20,7 +20,7 @@ object FishingTrawlerOverlay { player.configManager.set(configIndex,waterPercent) player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netRippedChild else netOkayChild, false) player.packetDispatch.sendInterfaceConfig(interfaceID,if(NetRipped) netOkayChild else netRippedChild, true) - player.packetDispatch.sendString("${if(fishCaught > 0) fishCaught else "Nothing"}",interfaceID,fishChild) + player.packetDispatch.sendString("${if(fishCaught > 0) fishCaught else "Nothing"}", interfaceID, fishChild) player.packetDispatch.sendString("$timeLeft Minutes", interfaceID, timeChild) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerRewardInterface.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerRewardInterface.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerRewardInterface.kt rename to Server/src/main/content/minigame/fishingtrawler/FishingTrawlerRewardInterface.kt index 7991057d5..5d606af77 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerRewardInterface.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerRewardInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerSession.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt rename to Server/src/main/content/minigame/fishingtrawler/FishingTrawlerSession.kt index cb86c8a02..25750b873 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt +++ b/Server/src/main/content/minigame/fishingtrawler/FishingTrawlerSession.kt @@ -1,8 +1,8 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler -import api.LogoutListener -import api.MapArea -import api.getRegionBorders +import core.api.LogoutListener +import core.api.MapArea +import core.api.getRegionBorders import core.game.component.Component import core.game.node.entity.Entity import core.game.node.scenery.Scenery @@ -12,22 +12,21 @@ import core.game.node.entity.player.Player import core.game.node.entity.state.EntityState import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.game.world.map.build.DynamicRegion import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneRestriction import core.game.world.update.flag.context.Animation -import core.plugin.Plugin import core.tools.* import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.node.entity.player.info.stats.FISHING_TRAWLER_GAMES_WON -import rs09.game.node.entity.player.info.stats.FISHING_TRAWLER_SHIPS_SANK -import rs09.game.node.entity.player.info.stats.STATS_BASE -import rs09.game.system.SystemLogger -import rs09.tools.secondsToTicks -import rs09.tools.ticksToSeconds +import core.game.system.command.sets.FISHING_TRAWLER_GAMES_WON +import core.game.system.command.sets.FISHING_TRAWLER_SHIPS_SANK +import core.game.system.command.sets.STATS_BASE +import core.tools.SystemLogger +import core.tools.secondsToTicks +import core.tools.ticksToSeconds import java.util.concurrent.TimeUnit import kotlin.random.Random @@ -276,7 +275,7 @@ class FishingTrawlerSession(val activity: FishingTrawlerActivity? = null) : Logo } fun updateOverlay(player: Player){ - FishingTrawlerOverlay.sendUpdate(player,((waterAmount / 500.0) * 100).toInt(),netRipped,fishAmount,TimeUnit.SECONDS.toMinutes(ticksToSeconds(timeLeft).toLong()).toInt() + 1) + FishingTrawlerOverlay.sendUpdate(player, ((waterAmount / 500.0) * 100).toInt(), netRipped, fishAmount, TimeUnit.SECONDS.toMinutes(ticksToSeconds(timeLeft).toLong()).toInt() + 1) } override fun logout(player: Player) { diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/TrawlerLoot.kt b/Server/src/main/content/minigame/fishingtrawler/TrawlerLoot.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/TrawlerLoot.kt rename to Server/src/main/content/minigame/fishingtrawler/TrawlerLoot.kt index 6c66cb09b..0f9058f58 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/TrawlerLoot.kt +++ b/Server/src/main/content/minigame/fishingtrawler/TrawlerLoot.kt @@ -1,6 +1,6 @@ -package rs09.game.content.activity.fishingtrawler +package content.minigame.fishingtrawler -import core.game.node.entity.skill.fishing.Fish +import content.global.skill.fishing.Fish import core.game.node.item.Item import core.game.node.item.WeightedChanceItem import core.tools.RandomFunction diff --git a/Server/src/main/java/core/game/content/activity/fog/FOGActivityPlugin.java b/Server/src/main/content/minigame/fog/FOGActivityPlugin.java similarity index 93% rename from Server/src/main/java/core/game/content/activity/fog/FOGActivityPlugin.java rename to Server/src/main/content/minigame/fog/FOGActivityPlugin.java index 41ffc53cb..05fb53d6e 100644 --- a/Server/src/main/java/core/game/content/activity/fog/FOGActivityPlugin.java +++ b/Server/src/main/content/minigame/fog/FOGActivityPlugin.java @@ -1,14 +1,14 @@ -package core.game.content.activity.fog; +package content.minigame.fog; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the fist of guthix activity. diff --git a/Server/src/main/java/core/game/content/activity/fog/FOGLobbyZone.java b/Server/src/main/content/minigame/fog/FOGLobbyZone.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/fog/FOGLobbyZone.java rename to Server/src/main/content/minigame/fog/FOGLobbyZone.java index 9b8cbf1f9..e34a02186 100644 --- a/Server/src/main/java/core/game/content/activity/fog/FOGLobbyZone.java +++ b/Server/src/main/content/minigame/fog/FOGLobbyZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.fog; +package content.minigame.fog; import core.game.component.Component; import core.game.interaction.Option; diff --git a/Server/src/main/java/core/game/content/activity/fog/FOGPlayer.java b/Server/src/main/content/minigame/fog/FOGPlayer.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/fog/FOGPlayer.java rename to Server/src/main/content/minigame/fog/FOGPlayer.java index 85a0b51df..ad015a195 100644 --- a/Server/src/main/java/core/game/content/activity/fog/FOGPlayer.java +++ b/Server/src/main/content/minigame/fog/FOGPlayer.java @@ -1,4 +1,4 @@ -package core.game.content.activity.fog; +package content.minigame.fog; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/FOGRewardsInterface.kt b/Server/src/main/content/minigame/fog/FOGRewardsInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/FOGRewardsInterface.kt rename to Server/src/main/content/minigame/fog/FOGRewardsInterface.kt index 450d080c4..d775e27ca 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/FOGRewardsInterface.kt +++ b/Server/src/main/content/minigame/fog/FOGRewardsInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction +package content.minigame.fog import core.cache.def.impl.ItemDefinition import core.game.component.Component @@ -8,7 +8,7 @@ import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.system.SystemLogger +import core.tools.SystemLogger @Initializable class FOGRewardsInterface : ComponentPlugin(){ diff --git a/Server/src/main/java/core/game/content/activity/fog/FOGWaitingZone.java b/Server/src/main/content/minigame/fog/FOGWaitingZone.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/fog/FOGWaitingZone.java rename to Server/src/main/content/minigame/fog/FOGWaitingZone.java index b9bb94261..d7ff0c975 100644 --- a/Server/src/main/java/core/game/content/activity/fog/FOGWaitingZone.java +++ b/Server/src/main/content/minigame/fog/FOGWaitingZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.fog; +package content.minigame.fog; import core.game.interaction.Option; import core.game.node.Node; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt b/Server/src/main/content/minigame/fog/FogInteractionHandler.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt rename to Server/src/main/content/minigame/fog/FogInteractionHandler.kt index 9c3dbc357..9eea115d1 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt +++ b/Server/src/main/content/minigame/fog/FogInteractionHandler.kt @@ -1,6 +1,6 @@ -package rs09.game.content.activity.fog +package content.minigame.fog -import core.game.content.global.action.ClimbActionHandler +import core.game.global.action.ClimbActionHandler import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.Node @@ -8,8 +8,8 @@ import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.plugin.Initializable import core.plugin.Plugin -import core.game.content.quest.PluginInteraction -import core.game.content.quest.PluginInteractionManager +import core.game.interaction.PluginInteraction +import core.game.interaction.PluginInteractionManager @Initializable class FogInteractionHandler : PluginInteraction(30204, 30203){ @@ -26,8 +26,8 @@ class FogInteractionHandler : PluginInteraction(30204, 30203){ override fun pulse(): Boolean { player.faceLocation(obj.location) when(obj.id) { - 30204 -> ClimbActionHandler.climbLadder(player, obj, "climb-down") - 30203 -> ClimbActionHandler.climbLadder(player,obj,"climb-up") + 30204 -> core.game.global.action.ClimbActionHandler.climbLadder(player, obj, "climb-down") + 30203 -> core.game.global.action.ClimbActionHandler.climbLadder(player,obj,"climb-up") } return true } @@ -38,7 +38,7 @@ class FogInteractionHandler : PluginInteraction(30204, 30203){ } override fun newInstance(arg: Any?): Plugin { - PluginInteractionManager.register(this,PluginInteractionManager.InteractionType.OBJECT) + PluginInteractionManager.register(this, PluginInteractionManager.InteractionType.OBJECT) return this } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fog/ReggieDialogue.kt b/Server/src/main/content/minigame/fog/ReggieDialogue.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/activity/fog/ReggieDialogue.kt rename to Server/src/main/content/minigame/fog/ReggieDialogue.kt index 5c216021f..be5618d5b 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fog/ReggieDialogue.kt +++ b/Server/src/main/content/minigame/fog/ReggieDialogue.kt @@ -1,16 +1,13 @@ -package rs09.game.content.activity.fog +package content.minigame.fog import core.game.component.Component import core.game.node.entity.player.Player import core.game.node.item.Item -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import org.rs09.consts.Components -import rs09.game.interaction.FOGRewardsInterface @Initializable -class ReggieDialogue(player: Player? = null) : DialoguePlugin(player){ +class ReggieDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(GameWorld.settings?.allow_token_purchase == true){ options("Can I see your shop?","Nevermind.","Can I buy some tokens?") @@ -21,7 +18,7 @@ class ReggieDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { FOGRewardsInterface().newInstance(Unit) return ReggieDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/DeliveryBoxHandler.kt b/Server/src/main/content/minigame/gnomecooking/DeliveryBoxHandler.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/DeliveryBoxHandler.kt rename to Server/src/main/content/minigame/gnomecooking/DeliveryBoxHandler.kt index 54e8536fa..55d6657b0 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/DeliveryBoxHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/DeliveryBoxHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCCompletionDialogue.kt b/Server/src/main/content/minigame/gnomecooking/GCCompletionDialogue.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCCompletionDialogue.kt rename to Server/src/main/content/minigame/gnomecooking/GCCompletionDialogue.kt index 40d041e2b..d069e9678 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCCompletionDialogue.kt +++ b/Server/src/main/content/minigame/gnomecooking/GCCompletionDialogue.kt @@ -1,11 +1,10 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking -import core.game.content.dialogue.FacialExpression +import content.minigame.gnomecooking.GnomeTipper.getTip import core.game.node.item.Item -import rs09.game.content.activity.gnomecooking.GnomeTipper.getTip -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.stringtools.colorize +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.colorize class GCCompletionDialogue(val job: GnomeCookingJob) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { @@ -13,7 +12,7 @@ class GCCompletionDialogue(val job: GnomeCookingJob) : DialogueFile() { 0 -> { val neededItem = player!!.getAttribute("$GC_BASE_ATTRIBUTE:$GC_NEEDED_ITEM", null) if (neededItem != null && player!!.inventory.containsItem(neededItem)) { - player!!.dialogueInterpreter.sendDialogues(job.npc_id, FacialExpression.OLD_HAPPY, "Thank you!") + player!!.dialogueInterpreter.sendDialogues(job.npc_id, core.game.dialogue.FacialExpression.OLD_HAPPY, "Thank you!") player!!.inventory.remove(neededItem) player!!.inventory.add(getTip(job.level)) player!!.removeAttribute("$GC_BASE_ATTRIBUTE:$GC_JOB_ORDINAL") @@ -33,7 +32,7 @@ class GCCompletionDialogue(val job: GnomeCookingJob) : DialogueFile() { } player!!.setAttribute("/save:$GC_BASE_ATTRIBUTE:$GC_POINTS", curPoints) } else { - player!!.dialogueInterpreter.sendDialogues(job.npc_id, FacialExpression.ANGRY, "Where's my food?!") + player!!.dialogueInterpreter.sendDialogues(job.npc_id, core.game.dialogue.FacialExpression.ANGRY, "Where's my food?!") } stage = END_DIALOGUE } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCRewardTokenHandler.kt b/Server/src/main/content/minigame/gnomecooking/GCRewardTokenHandler.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCRewardTokenHandler.kt rename to Server/src/main/content/minigame/gnomecooking/GCRewardTokenHandler.kt index 197421d14..4ab4ea72f 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GCRewardTokenHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/GCRewardTokenHandler.kt @@ -1,7 +1,6 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking import core.cache.def.impl.ItemDefinition -import core.game.content.dialogue.DialoguePlugin import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player @@ -11,7 +10,7 @@ import core.plugin.Initializable import core.plugin.Plugin import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.world.GameWorld +import core.game.world.GameWorld val gnomeItems = arrayOf( Items.FRUIT_BATTA_2277, Items.TOAD_BATTA_2255, Items.CHEESE_PLUSTOM_BATTA_2259, Items.WORM_BATTA_2253, Items.VEGETABLE_BATTA_2281, @@ -44,8 +43,8 @@ class GCRewardTokenHandler : OptionHandler() { } @Initializable - class RewardTokenActivationDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { + class RewardTokenActivationDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RewardTokenActivationDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingConstants.kt b/Server/src/main/content/minigame/gnomecooking/GnomeCookingConstants.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingConstants.kt rename to Server/src/main/content/minigame/gnomecooking/GnomeCookingConstants.kt index 4f0979fe1..80363f1da 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingConstants.kt +++ b/Server/src/main/content/minigame/gnomecooking/GnomeCookingConstants.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking const val GC_BASE_ATTRIBUTE = "gnome_cooking" const val GC_TUT_PROG = "gnome-cooking:tutorial:stage" diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingJob.kt b/Server/src/main/content/minigame/gnomecooking/GnomeCookingJob.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingJob.kt rename to Server/src/main/content/minigame/gnomecooking/GnomeCookingJob.kt index 560838c84..bf718b475 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeCookingJob.kt +++ b/Server/src/main/content/minigame/gnomecooking/GnomeCookingJob.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking enum class GnomeCookingJob(val level: GnomeTipper.LEVEL, val npc_id: Int, val tip: String) { CPT_ERRDO(GnomeTipper.LEVEL.EASY,3811, "at the top level of the Grand Tree."), diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeTipper.kt b/Server/src/main/content/minigame/gnomecooking/GnomeTipper.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeTipper.kt rename to Server/src/main/content/minigame/gnomecooking/GnomeTipper.kt index 17fa9193d..2a37668c9 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/GnomeTipper.kt +++ b/Server/src/main/content/minigame/gnomecooking/GnomeTipper.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking +package content.minigame.gnomecooking import core.game.node.item.Item import core.game.node.item.WeightedChanceItem diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaCooker.kt b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaCooker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaCooker.kt rename to Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaCooker.kt index b548a53a8..766c61b9e 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaCooker.kt +++ b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaCooker.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.battas +package content.minigame.gnomecooking.battas import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler @@ -10,7 +10,7 @@ import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin import org.rs09.consts.Items -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Handles cook options for battas diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaDishFiller.kt b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaDishFiller.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaDishFiller.kt rename to Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaDishFiller.kt index c89d4ab24..29ffc191f 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaDishFiller.kt +++ b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaDishFiller.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.battas +package content.minigame.gnomecooking.battas import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaGarnisher.kt b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaGarnisher.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaGarnisher.kt rename to Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaGarnisher.kt index 4040bfbcb..034919ae2 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaGarnisher.kt +++ b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaGarnisher.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.battas +package content.minigame.gnomecooking.battas import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaInterface.kt b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaInterface.kt rename to Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaInterface.kt index 50fd59953..d8872bf91 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaInterface.kt +++ b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.battas +package content.minigame.gnomecooking.battas import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaPrepareHandler.kt b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaPrepareHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaPrepareHandler.kt rename to Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaPrepareHandler.kt index f69059135..38cecd428 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/battas/GnomeBattaPrepareHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/battas/GnomeBattaPrepareHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.battas +package content.minigame.gnomecooking.battas import core.cache.def.impl.ItemDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlCooker.kt b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlCooker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlCooker.kt rename to Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlCooker.kt index 5dbd940db..00b7977af 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlCooker.kt +++ b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlCooker.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.bowls +package content.minigame.gnomecooking.bowls import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler @@ -10,7 +10,7 @@ import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin import org.rs09.consts.Items -import rs09.game.world.GameWorld +import core.game.world.GameWorld @Initializable class GnomeBowlCooker : UseWithHandler(Items.RAW_GNOMEBOWL_2178,9558,9559,9561,9563) { diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlGarnisher.kt b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlGarnisher.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlGarnisher.kt rename to Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlGarnisher.kt index 7ee399f4e..b1d802f87 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlGarnisher.kt +++ b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlGarnisher.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.bowls +package content.minigame.gnomecooking.bowls import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlInterface.kt b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlInterface.kt rename to Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlInterface.kt index ec9193eea..bd8eb1ce2 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlInterface.kt +++ b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.bowls +package content.minigame.gnomecooking.bowls import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlPrepareHandler.kt b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlPrepareHandler.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlPrepareHandler.kt rename to Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlPrepareHandler.kt index b21513ca5..99fa956ba 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomeBowlPrepareHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/bowls/GnomeBowlPrepareHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.bowls +package content.minigame.gnomecooking.bowls import core.cache.def.impl.ItemDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomebowlMouldFiller.kt b/Server/src/main/content/minigame/gnomecooking/bowls/GnomebowlMouldFiller.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomebowlMouldFiller.kt rename to Server/src/main/content/minigame/gnomecooking/bowls/GnomebowlMouldFiller.kt index fd75c527a..2cba2ffcc 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/bowls/GnomebowlMouldFiller.kt +++ b/Server/src/main/content/minigame/gnomecooking/bowls/GnomebowlMouldFiller.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.bowls +package content.minigame.gnomecooking.bowls import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailCooker.kt b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailCooker.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailCooker.kt rename to Server/src/main/content/minigame/gnomecooking/cocktails/CocktailCooker.kt index 8c65cfa50..01130745e 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailCooker.kt +++ b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailCooker.kt @@ -1,11 +1,11 @@ -package rs09.game.content.activity.gnomecooking.cocktails +package content.minigame.gnomecooking.cocktails import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailFinisher.kt b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailFinisher.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailFinisher.kt rename to Server/src/main/content/minigame/gnomecooking/cocktails/CocktailFinisher.kt index 60a40d87b..6eebf9c71 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailFinisher.kt +++ b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailFinisher.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.cocktails +package content.minigame.gnomecooking.cocktails import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailShakerHandler.kt b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailShakerHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailShakerHandler.kt rename to Server/src/main/content/minigame/gnomecooking/cocktails/CocktailShakerHandler.kt index b591b05d0..5e4078d12 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/CocktailShakerHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/cocktails/CocktailShakerHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.cocktails +package content.minigame.gnomecooking.cocktails import core.cache.def.impl.ItemDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/GnomeCocktailInterface.kt b/Server/src/main/content/minigame/gnomecooking/cocktails/GnomeCocktailInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/GnomeCocktailInterface.kt rename to Server/src/main/content/minigame/gnomecooking/cocktails/GnomeCocktailInterface.kt index ce18fed05..4b9fd3e62 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/GnomeCocktailInterface.kt +++ b/Server/src/main/content/minigame/gnomecooking/cocktails/GnomeCocktailInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.cocktails +package content.minigame.gnomecooking.cocktails import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/PourMixerPlugin.kt b/Server/src/main/content/minigame/gnomecooking/cocktails/PourMixerPlugin.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/PourMixerPlugin.kt rename to Server/src/main/content/minigame/gnomecooking/cocktails/PourMixerPlugin.kt index 956bcadd2..19cf50ad7 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/cocktails/PourMixerPlugin.kt +++ b/Server/src/main/content/minigame/gnomecooking/cocktails/PourMixerPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.cocktails +package content.minigame.gnomecooking.cocktails import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyCooker.kt b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyCooker.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyCooker.kt rename to Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyCooker.kt index 75d4958e6..bb360adaf 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyCooker.kt +++ b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyCooker.kt @@ -1,11 +1,11 @@ -package rs09.game.content.activity.gnomecooking.crunchies +package content.minigame.gnomecooking.crunchies import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.update.flag.context.Animation import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt rename to Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt index b12b2df36..06c7d7c5e 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt +++ b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyGarnisher.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.crunchies +package content.minigame.gnomecooking.crunchies import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyInterface.kt b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyInterface.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyInterface.kt rename to Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyInterface.kt index 5630c9c8d..99f8e445e 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyInterface.kt +++ b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.crunchies +package content.minigame.gnomecooking.crunchies import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt rename to Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt index 6aebcb50e..1416148bd 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt +++ b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyPrepareHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.crunchies +package content.minigame.gnomecooking.crunchies import core.cache.def.impl.ItemDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt rename to Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt index 80c4e4864..039d04797 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt +++ b/Server/src/main/content/minigame/gnomecooking/crunchies/GnomeCrunchyTrayFiller.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.gnomecooking.crunchies +package content.minigame.gnomecooking.crunchies import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler diff --git a/Server/src/main/java/core/game/content/activity/magearena/ChamberGuardianDialogue.java b/Server/src/main/content/minigame/magearena/ChamberGuardianDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/magearena/ChamberGuardianDialogue.java rename to Server/src/main/content/minigame/magearena/ChamberGuardianDialogue.java index dbe368ba4..6ceb0b058 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/ChamberGuardianDialogue.java +++ b/Server/src/main/content/minigame/magearena/ChamberGuardianDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.GodType; +import core.game.dialogue.DialoguePlugin; +import content.data.GodType; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/magearena/KolodionDialogue.java b/Server/src/main/content/minigame/magearena/KolodionDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/magearena/KolodionDialogue.java rename to Server/src/main/content/minigame/magearena/KolodionDialogue.java index 941416619..5d19240ea 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/KolodionDialogue.java +++ b/Server/src/main/content/minigame/magearena/KolodionDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/content/activity/magearena/KolodionNPC.java b/Server/src/main/content/minigame/magearena/KolodionNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/magearena/KolodionNPC.java rename to Server/src/main/content/minigame/magearena/KolodionNPC.java index b5c26b813..74c06d94b 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/KolodionNPC.java +++ b/Server/src/main/content/minigame/magearena/KolodionNPC.java @@ -1,8 +1,8 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; @@ -11,9 +11,9 @@ import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MagicSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MagicSwingHandler; +import core.game.world.GameWorld; /** * Handles the kolodion npc. diff --git a/Server/src/main/java/core/game/content/activity/magearena/KolodionSession.java b/Server/src/main/content/minigame/magearena/KolodionSession.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/magearena/KolodionSession.java rename to Server/src/main/content/minigame/magearena/KolodionSession.java index 1362b201d..17df19efb 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/KolodionSession.java +++ b/Server/src/main/content/minigame/magearena/KolodionSession.java @@ -1,9 +1,9 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/java/core/game/content/activity/magearena/LundailDialogue.java b/Server/src/main/content/minigame/magearena/LundailDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/activity/magearena/LundailDialogue.java rename to Server/src/main/content/minigame/magearena/LundailDialogue.java index a2ad927fb..5504d238f 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/LundailDialogue.java +++ b/Server/src/main/content/minigame/magearena/LundailDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the lundail dialogue. diff --git a/Server/src/main/java/core/game/content/activity/magearena/MageArenaNPC.java b/Server/src/main/content/minigame/magearena/MageArenaNPC.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/magearena/MageArenaNPC.java rename to Server/src/main/content/minigame/magearena/MageArenaNPC.java index 39628e8af..e4a448940 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/MageArenaNPC.java +++ b/Server/src/main/content/minigame/magearena/MageArenaNPC.java @@ -1,8 +1,8 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; -import core.game.content.global.GodType; +import content.data.GodType; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java b/Server/src/main/content/minigame/magearena/MageArenaPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java rename to Server/src/main/content/minigame/magearena/MageArenaPlugin.java index 144a795d3..82cf8b271 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java +++ b/Server/src/main/content/minigame/magearena/MageArenaPlugin.java @@ -1,13 +1,13 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueAction; -import core.game.content.global.GodType; +import core.game.dialogue.DialogueAction; +import content.data.GodType; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; @@ -18,9 +18,9 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.action.PickupHandler; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import core.game.global.action.PickupHandler; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Handles the mage arena activity. diff --git a/Server/src/main/java/core/game/content/activity/magearena/MageArenaZone.java b/Server/src/main/content/minigame/magearena/MageArenaZone.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/magearena/MageArenaZone.java rename to Server/src/main/content/minigame/magearena/MageArenaZone.java index bb274329b..4a386519c 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/MageArenaZone.java +++ b/Server/src/main/content/minigame/magearena/MageArenaZone.java @@ -1,11 +1,11 @@ -package core.game.content.activity.magearena; +package content.minigame.magearena; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/activity/mta/AlchemyGuardianDialogue.java b/Server/src/main/content/minigame/mta/AlchemyGuardianDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/mta/AlchemyGuardianDialogue.java rename to Server/src/main/content/minigame/mta/AlchemyGuardianDialogue.java index bebb8897b..3fed6d0e2 100644 --- a/Server/src/main/java/core/game/content/activity/mta/AlchemyGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/AlchemyGuardianDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/activity/mta/CharmedWarriorDialogue.java b/Server/src/main/content/minigame/mta/CharmedWarriorDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/mta/CharmedWarriorDialogue.java rename to Server/src/main/content/minigame/mta/CharmedWarriorDialogue.java index 4c6bc46cd..269f7d7ca 100644 --- a/Server/src/main/java/core/game/content/activity/mta/CharmedWarriorDialogue.java +++ b/Server/src/main/content/minigame/mta/CharmedWarriorDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/mta/EnchantSpell.kt b/Server/src/main/content/minigame/mta/EnchantSpell.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/activity/mta/EnchantSpell.kt rename to Server/src/main/content/minigame/mta/EnchantSpell.kt index 6fc657fa8..37a61430b 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/mta/EnchantSpell.kt +++ b/Server/src/main/content/minigame/mta/EnchantSpell.kt @@ -1,16 +1,14 @@ -package rs09.game.content.activity.mta +package content.minigame.mta -import core.game.content.activity.mta.MTAType -import core.game.content.activity.mta.impl.EnchantingZone -import core.game.content.activity.mta.impl.EnchantingZone.Shapes +import content.minigame.mta.impl.EnchantingZone.Shapes import core.game.node.Node import core.game.node.entity.Entity -import core.game.node.entity.combat.equipment.SpellType +import core.game.node.entity.combat.spell.SpellType import core.game.node.entity.player.Player import core.game.node.entity.player.link.SpellBookManager.SpellBook import core.game.node.entity.player.link.audio.Audio -import core.game.node.entity.skill.magic.MagicSpell -import core.game.node.entity.skill.magic.Runes +import core.game.node.entity.combat.spell.MagicSpell +import core.game.node.entity.combat.spell.Runes import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics @@ -81,14 +79,14 @@ class EnchantSpell : MagicSpell { convert = 0 } entity.setAttribute("mta-convert", convert) - if (shape == EnchantingZone.BONUS_SHAPE) { + if (shape == content.minigame.mta.impl.EnchantingZone.BONUS_SHAPE) { pizazz += 1 entity.sendMessage("You get " + pizazz + " bonus point" + (if (pizazz != 1) "s" else "") + "!") } } } if (pizazz != 0) { - EnchantingZone.ZONE.incrementPoints(entity, MTAType.ENCHANTERS.ordinal, pizazz) + content.minigame.mta.impl.EnchantingZone.ZONE.incrementPoints(entity, content.minigame.mta.MTAType.ENCHANTERS.ordinal, pizazz) } } return true diff --git a/Server/src/main/java/core/game/content/activity/mta/EnchantmentGuardianDialogue.java b/Server/src/main/content/minigame/mta/EnchantmentGuardianDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/mta/EnchantmentGuardianDialogue.java rename to Server/src/main/content/minigame/mta/EnchantmentGuardianDialogue.java index db065b958..8f61a9e9e 100644 --- a/Server/src/main/java/core/game/content/activity/mta/EnchantmentGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/EnchantmentGuardianDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/activity/mta/EntranceGuardianDialogue.java b/Server/src/main/content/minigame/mta/EntranceGuardianDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/EntranceGuardianDialogue.java rename to Server/src/main/content/minigame/mta/EntranceGuardianDialogue.java index 7fe6a502b..4870b051a 100644 --- a/Server/src/main/java/core/game/content/activity/mta/EntranceGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/EntranceGuardianDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the entrance guardian dialogue. diff --git a/Server/src/main/java/core/game/content/activity/mta/GraveyardGuardianDialogue.java b/Server/src/main/content/minigame/mta/GraveyardGuardianDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/mta/GraveyardGuardianDialogue.java rename to Server/src/main/content/minigame/mta/GraveyardGuardianDialogue.java index 384b5d7a4..2e79c1657 100644 --- a/Server/src/main/java/core/game/content/activity/mta/GraveyardGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/GraveyardGuardianDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/kotlin/rs09/game/content/activity/mta/MTAListeners.kt b/Server/src/main/content/minigame/mta/MTAListeners.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/content/activity/mta/MTAListeners.kt rename to Server/src/main/content/minigame/mta/MTAListeners.kt index f3f72d033..5c823d98c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/mta/MTAListeners.kt +++ b/Server/src/main/content/minigame/mta/MTAListeners.kt @@ -1,20 +1,19 @@ -package rs09.game.content.activity.mta +package content.minigame.mta -import core.game.content.activity.mta.impl.AlchemistZone +import content.global.skill.magic.SpellListener +import content.global.skill.magic.spellconsts.Modern import core.game.node.item.Item import core.game.world.map.Direction import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.skill.magic.SpellListener -import rs09.game.node.entity.skill.magic.spellconsts.Modern +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class MTAListeners : InteractionListener { override fun defineListeners() { - on(NPCs.MAZE_GUARDIAN_3102, IntType.NPC, "talk-to"){player,node -> + on(NPCs.MAZE_GUARDIAN_3102, IntType.NPC, "talk-to"){ player, node -> player.dialogueInterpreter.open(node.id, node) return@on true } @@ -29,18 +28,18 @@ class MTASpellListeners : SpellListener("modern"){ private val LOW_ALCH_GFX = Graphics(112,5) private val HIGH_ALCH_ANIM = Animation(713) private val HIGH_ALCH_GFX = Graphics(113,5) - private val MTA_ALCH_ITEMS = AlchemistZone.AlchemistItem.values().map{it.item.id}.toIntArray() + private val MTA_ALCH_ITEMS = content.minigame.mta.impl.AlchemistZone.AlchemistItem.values().map{it.item.id}.toIntArray() override fun defineListeners() { - onCast(Modern.HIGH_ALCHEMY,ITEM,*MTA_ALCH_ITEMS){p, node -> + onCast(Modern.HIGH_ALCHEMY,ITEM,*MTA_ALCH_ITEMS){ p, node -> val item = node?.asItem() ?: return@onCast requires(p,55) - val alchItem = AlchemistZone.AlchemistItem.forItem(item.id) ?: return@onCast - val coins = Item(AlchemistZone.COINS.id, alchItem.cost) - val freeAlch = alchItem == AlchemistZone.freeConvert + val alchItem = content.minigame.mta.impl.AlchemistZone.AlchemistItem.forItem(item.id) ?: return@onCast + val coins = Item(content.minigame.mta.impl.AlchemistZone.COINS.id, alchItem.cost) + val freeAlch = alchItem == content.minigame.mta.impl.AlchemistZone.freeConvert - if (p.inventory.getAmount(AlchemistZone.COINS.id) + alchItem.cost > 10000) { + if (p.inventory.getAmount(content.minigame.mta.impl.AlchemistZone.COINS.id) + alchItem.cost > 10000) { p.dialogueInterpreter.sendDialogue("Warning: You can't deposit more than 12000 coins at a time.") } @@ -71,11 +70,11 @@ class MTASpellListeners : SpellListener("modern"){ onCast(Modern.LOW_ALCHEMY,ITEM,*MTA_ALCH_ITEMS){p, node -> val item = node?.asItem() ?: return@onCast requires(p,21) - val alchItem = AlchemistZone.AlchemistItem.forItem(item.id) ?: return@onCast - val coins = Item(AlchemistZone.COINS.id, alchItem.cost) - val freeAlch = alchItem == AlchemistZone.freeConvert + val alchItem = content.minigame.mta.impl.AlchemistZone.AlchemistItem.forItem(item.id) ?: return@onCast + val coins = Item(content.minigame.mta.impl.AlchemistZone.COINS.id, alchItem.cost) + val freeAlch = alchItem == content.minigame.mta.impl.AlchemistZone.freeConvert - if (p.inventory.getAmount(AlchemistZone.COINS.id) + alchItem.cost > 10000) { + if (p.inventory.getAmount(content.minigame.mta.impl.AlchemistZone.COINS.id) + alchItem.cost > 10000) { p.dialogueInterpreter.sendDialogue("Warning: You can't deposit more than 12000 coins at a time.") } diff --git a/Server/src/main/java/core/game/content/activity/mta/MTAShop.java b/Server/src/main/content/minigame/mta/MTAShop.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/MTAShop.java rename to Server/src/main/content/minigame/mta/MTAShop.java index de454fd4a..beb64a1b2 100644 --- a/Server/src/main/java/core/game/content/activity/mta/MTAShop.java +++ b/Server/src/main/content/minigame/mta/MTAShop.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import api.ContainerisedItem; +import core.api.ContainerisedItem; import core.game.component.CloseEvent; import core.game.component.Component; import core.game.component.ComponentPlugin; @@ -11,12 +11,12 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; import core.plugin.Plugin; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; -import static api.ContentAPIKt.hasAnItem; +import static core.api.ContentAPIKt.hasAnItem; /** * Represents the mage training arena shop. diff --git a/Server/src/main/java/core/game/content/activity/mta/MTAType.java b/Server/src/main/content/minigame/mta/MTAType.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/mta/MTAType.java rename to Server/src/main/content/minigame/mta/MTAType.java index b0c716faf..35ad046ab 100644 --- a/Server/src/main/java/core/game/content/activity/mta/MTAType.java +++ b/Server/src/main/content/minigame/mta/MTAType.java @@ -1,15 +1,19 @@ -package core.game.content.activity.mta; +package content.minigame.mta; +import content.minigame.mta.impl.AlchemistZone; +import content.minigame.mta.impl.EnchantingZone; +import content.minigame.mta.impl.GraveyardZone; +import content.minigame.mta.impl.TelekineticZone; import core.game.component.Component; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.map.Location; -import core.game.content.activity.mta.impl.AlchemistZone; -import core.game.content.activity.mta.impl.EnchantingZone; -import core.game.content.activity.mta.impl.GraveyardZone; -import core.game.content.activity.mta.impl.TelekineticZone; +import content.minigame.mta.impl.AlchemistZone; +import content.minigame.mta.impl.EnchantingZone; +import content.minigame.mta.impl.GraveyardZone; +import content.minigame.mta.impl.TelekineticZone; /** * A magic training arena game type. diff --git a/Server/src/main/java/core/game/content/activity/mta/MTAZone.java b/Server/src/main/content/minigame/mta/MTAZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/MTAZone.java rename to Server/src/main/content/minigame/mta/MTAZone.java index ba8dbf9b9..7110812f0 100644 --- a/Server/src/main/java/core/game/content/activity/mta/MTAZone.java +++ b/Server/src/main/content/minigame/mta/MTAZone.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/content/activity/mta/MageTrainingArenaPlugin.java b/Server/src/main/content/minigame/mta/MageTrainingArenaPlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/mta/MageTrainingArenaPlugin.java rename to Server/src/main/content/minigame/mta/MageTrainingArenaPlugin.java index 481f028b8..31dfc56c9 100644 --- a/Server/src/main/java/core/game/content/activity/mta/MageTrainingArenaPlugin.java +++ b/Server/src/main/content/minigame/mta/MageTrainingArenaPlugin.java @@ -1,14 +1,14 @@ -package core.game.content.activity.mta; +package content.minigame.mta; +import content.minigame.mta.impl.TelekineticZone; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.mta.impl.TelekineticZone; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.item.GroundItem; import core.game.node.item.Item; import core.game.world.map.Direction; @@ -17,8 +17,8 @@ import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.activity.mta.EnchantSpell; -import rs09.plugin.ClassScanner; +import content.minigame.mta.EnchantSpell; +import core.plugin.ClassScanner; /** * Handles the mage training area interactions. diff --git a/Server/src/main/java/core/game/content/activity/mta/MazeGuardianDialogue.java b/Server/src/main/content/minigame/mta/MazeGuardianDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/activity/mta/MazeGuardianDialogue.java rename to Server/src/main/content/minigame/mta/MazeGuardianDialogue.java index cabdd1fd8..1a6aac8a2 100644 --- a/Server/src/main/java/core/game/content/activity/mta/MazeGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/MazeGuardianDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import content.minigame.mta.impl.TelekineticZone; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.content.activity.mta.impl.TelekineticZone; +import content.minigame.mta.impl.TelekineticZone; /** * Handles the maze guardian dialogue. diff --git a/Server/src/main/java/core/game/content/activity/mta/ProgressHatDialogue.java b/Server/src/main/content/minigame/mta/ProgressHatDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/mta/ProgressHatDialogue.java rename to Server/src/main/content/minigame/mta/ProgressHatDialogue.java index d3e731e2b..49030e00f 100644 --- a/Server/src/main/java/core/game/content/activity/mta/ProgressHatDialogue.java +++ b/Server/src/main/content/minigame/mta/ProgressHatDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/activity/mta/RewardsGuardianDialogue.java b/Server/src/main/content/minigame/mta/RewardsGuardianDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/mta/RewardsGuardianDialogue.java rename to Server/src/main/content/minigame/mta/RewardsGuardianDialogue.java index 830fcf3de..39cd0e8c1 100644 --- a/Server/src/main/java/core/game/content/activity/mta/RewardsGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/RewardsGuardianDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/activity/mta/TelekineticGrabSpell.java b/Server/src/main/content/minigame/mta/TelekineticGrabSpell.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/mta/TelekineticGrabSpell.java rename to Server/src/main/content/minigame/mta/TelekineticGrabSpell.java index b0b881b2c..7e1ac3530 100644 --- a/Server/src/main/java/core/game/content/activity/mta/TelekineticGrabSpell.java +++ b/Server/src/main/content/minigame/mta/TelekineticGrabSpell.java @@ -1,18 +1,18 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.activity.mta.impl.TelekineticZone; +import content.minigame.mta.impl.TelekineticZone; import core.game.interaction.SpecialGroundItems; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.combat.spell.SpellBlocks; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.audio.Audio; -import core.game.node.entity.skill.magic.MagicSpell; -import core.game.node.entity.skill.magic.Runes; +import core.game.node.entity.combat.spell.MagicSpell; +import core.game.node.entity.combat.spell.Runes; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; @@ -20,8 +20,8 @@ import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.game.content.global.action.PickupHandler; -import rs09.game.world.GameWorld; +import core.game.global.action.PickupHandler; +import core.game.world.GameWorld; /** * Represents the telekenitic grab spell. diff --git a/Server/src/main/java/core/game/content/activity/mta/TelekineticGuardianDialogue.java b/Server/src/main/content/minigame/mta/TelekineticGuardianDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/mta/TelekineticGuardianDialogue.java rename to Server/src/main/content/minigame/mta/TelekineticGuardianDialogue.java index 3cb88dff1..79c3a2b3f 100644 --- a/Server/src/main/java/core/game/content/activity/mta/TelekineticGuardianDialogue.java +++ b/Server/src/main/content/minigame/mta/TelekineticGuardianDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.mta; +package content.minigame.mta; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java b/Server/src/main/content/minigame/mta/impl/AlchemistZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java rename to Server/src/main/content/minigame/mta/impl/AlchemistZone.java index 1282754b9..35cd787a4 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java +++ b/Server/src/main/content/minigame/mta/impl/AlchemistZone.java @@ -1,10 +1,11 @@ -package core.game.content.activity.mta.impl; +package content.minigame.mta.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import content.minigame.mta.MTAZone; import core.game.node.entity.skill.Skills; import core.game.interaction.Option; import core.game.node.Node; @@ -15,15 +16,14 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.ZoneBorders; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; -import core.game.content.activity.mta.MTAType; -import core.game.content.activity.mta.MTAZone; +import content.minigame.mta.MTAType; /** * Handles the alchemist playground game. diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java b/Server/src/main/content/minigame/mta/impl/EnchantingZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java rename to Server/src/main/content/minigame/mta/impl/EnchantingZone.java index a298f0f06..47ab1606d 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java +++ b/Server/src/main/content/minigame/mta/impl/EnchantingZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.mta.impl; +package content.minigame.mta.impl; import java.util.ArrayList; import java.util.HashMap; @@ -15,14 +15,14 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.ZoneBorders; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; -import core.game.content.activity.mta.MTAZone; +import content.minigame.mta.MTAZone; /** * Handles the enchanting zone. diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java b/Server/src/main/content/minigame/mta/impl/GraveyardZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java rename to Server/src/main/content/minigame/mta/impl/GraveyardZone.java index 0e7e20ecb..ace8aaf63 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java +++ b/Server/src/main/content/minigame/mta/impl/GraveyardZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.mta.impl; +package content.minigame.mta.impl; import java.util.ArrayList; import java.util.List; @@ -13,7 +13,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.game.world.update.flag.context.Animation; @@ -21,8 +21,8 @@ import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; import core.tools.StringUtils; -import core.game.content.activity.mta.MTAType; -import core.game.content.activity.mta.MTAZone; +import content.minigame.mta.MTAType; +import content.minigame.mta.MTAZone; /** * Handles the creature graveyard zone. diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/TelekineticZone.java b/Server/src/main/content/minigame/mta/impl/TelekineticZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/mta/impl/TelekineticZone.java rename to Server/src/main/content/minigame/mta/impl/TelekineticZone.java index c5888e7b6..1ff0f9b7e 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/TelekineticZone.java +++ b/Server/src/main/content/minigame/mta/impl/TelekineticZone.java @@ -1,10 +1,10 @@ -package core.game.content.activity.mta.impl; +package content.minigame.mta.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import core.game.content.dialogue.DialogueAction; +import core.game.dialogue.DialogueAction; import core.game.node.entity.skill.Skills; import core.game.interaction.Option; import core.game.node.Node; @@ -15,7 +15,7 @@ import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; @@ -27,8 +27,8 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.tools.RandomFunction; -import core.game.content.activity.mta.MTAType; -import core.game.content.activity.mta.MTAZone; +import content.minigame.mta.MTAType; +import content.minigame.mta.MTAZone; /** * Handles the telekinetic zone. diff --git a/Server/src/main/java/core/game/content/dialogue/OutpostSquireDialogue.java b/Server/src/main/content/minigame/pestcontrol/OutpostSquireDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/OutpostSquireDialogue.java rename to Server/src/main/content/minigame/pestcontrol/OutpostSquireDialogue.java index 1ff67fdc2..9ca53a0f4 100644 --- a/Server/src/main/java/core/game/content/dialogue/OutpostSquireDialogue.java +++ b/Server/src/main/content/minigame/pestcontrol/OutpostSquireDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.minigame.pestcontrol; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCIslandZone.java b/Server/src/main/content/minigame/pestcontrol/PCIslandZone.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PCIslandZone.java rename to Server/src/main/content/minigame/pestcontrol/PCIslandZone.java index bd69e3f36..6f697b9bd 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCIslandZone.java +++ b/Server/src/main/content/minigame/pestcontrol/PCIslandZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java b/Server/src/main/content/minigame/pestcontrol/PCLanderZone.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java rename to Server/src/main/content/minigame/pestcontrol/PCLanderZone.java index d6205ae28..21cc7fce5 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java +++ b/Server/src/main/content/minigame/pestcontrol/PCLanderZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import core.game.interaction.Option; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java b/Server/src/main/content/minigame/pestcontrol/PCObjectHandler.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java rename to Server/src/main/content/minigame/pestcontrol/PCObjectHandler.java index c7ae1396e..741bbc4df 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java +++ b/Server/src/main/content/minigame/pestcontrol/PCObjectHandler.java @@ -1,12 +1,12 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import core.cache.def.impl.SceneryDefinition; -import rs09.game.world.GameWorld; -import core.game.content.activity.ActivityManager; +import core.game.world.GameWorld; +import core.game.activity.ActivityManager; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import rs09.game.ai.pvmbots.PvMBotsBuilder; +import core.game.bots.PvMBotsBuilder; import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCPortalNPC.java b/Server/src/main/content/minigame/pestcontrol/PCPortalNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PCPortalNPC.java rename to Server/src/main/content/minigame/pestcontrol/PCPortalNPC.java index dbafc9503..c19cf1887 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCPortalNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/PCPortalNPC.java @@ -1,7 +1,8 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import java.util.Random; +import content.minigame.pestcontrol.monsters.PCRavagerNPC; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; @@ -12,8 +13,8 @@ import core.game.world.map.Location; import core.game.world.map.RegionPlane; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; -import core.game.content.activity.pestcontrol.monsters.PCRavagerNPC; -import core.game.content.activity.pestcontrol.monsters.PCSpinnerNPC; +import content.minigame.pestcontrol.monsters.PCRavagerNPC; +import content.minigame.pestcontrol.monsters.PCSpinnerNPC; /** * Handles the portal NPC. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCSquireNPC.java b/Server/src/main/content/minigame/pestcontrol/PCSquireNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PCSquireNPC.java rename to Server/src/main/content/minigame/pestcontrol/PCSquireNPC.java index 45ca92029..1f156b761 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCSquireNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/PCSquireNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlActivityPlugin.java b/Server/src/main/content/minigame/pestcontrol/PestControlActivityPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PestControlActivityPlugin.java rename to Server/src/main/content/minigame/pestcontrol/PestControlActivityPlugin.java index d7a665895..4e2235981 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlActivityPlugin.java +++ b/Server/src/main/content/minigame/pestcontrol/PestControlActivityPlugin.java @@ -1,13 +1,14 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import java.util.ArrayList; import java.util.List; import java.util.PriorityQueue; -import rs09.ServerConstants; +import content.minigame.pestcontrol.monsters.*; +import core.ServerConstants; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -18,17 +19,16 @@ import core.game.node.entity.state.EntityState; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.map.zone.RegionZone; import core.game.world.map.zone.ZoneBuilder; import core.game.world.map.zone.ZoneRestriction; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; import core.tools.StringUtils; -import core.game.content.activity.pestcontrol.monsters.*; /** diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pestcontrol/PestControlHelper.kt b/Server/src/main/content/minigame/pestcontrol/PestControlHelper.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/activity/pestcontrol/PestControlHelper.kt rename to Server/src/main/content/minigame/pestcontrol/PestControlHelper.kt index 098a0091f..b9bb69c1c 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/pestcontrol/PestControlHelper.kt +++ b/Server/src/main/content/minigame/pestcontrol/PestControlHelper.kt @@ -1,11 +1,10 @@ -package rs09.game.content.activity.pestcontrol +package content.minigame.pestcontrol -import core.game.content.activity.pestcontrol.PestControlSession import core.game.node.entity.player.Player import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders -import rs09.game.ai.minigamebots.pestcontrol.PestControlTestBot -import rs09.game.ai.minigamebots.pestcontrol.PestControlTestBot2 +import content.minigame.pestcontrol.bots.PestControlTestBot +import content.minigame.pestcontrol.bots.PestControlTestBot2 import kotlin.random.Random @@ -62,12 +61,12 @@ object PestControlHelper { return false } - fun getMyPestControlSession1(p: PestControlTestBot): PestControlSession? { - return p.getExtension(PestControlSession::class.java) + fun getMyPestControlSession1(p: PestControlTestBot): content.minigame.pestcontrol.PestControlSession? { + return p.getExtension(content.minigame.pestcontrol.PestControlSession::class.java) } - fun getMyPestControlSession2(p: PestControlTestBot2): PestControlSession? { - return p.getExtension(PestControlSession::class.java) + fun getMyPestControlSession2(p: PestControlTestBot2): content.minigame.pestcontrol.PestControlSession? { + return p.getExtension(content.minigame.pestcontrol.PestControlSession::class.java) } } \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java b/Server/src/main/content/minigame/pestcontrol/PestControlSession.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java rename to Server/src/main/content/minigame/pestcontrol/PestControlSession.java index 23967b663..f902b5c14 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java +++ b/Server/src/main/content/minigame/pestcontrol/PestControlSession.java @@ -1,9 +1,9 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import java.util.*; import core.game.component.Component; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.ConfigurationManager.Configuration; @@ -14,7 +14,7 @@ import core.game.world.map.RegionPlane; import core.game.world.map.build.DynamicRegion; import core.tools.RandomFunction; -import static core.game.content.activity.pestcontrol.PestControlActivityPlugin.MAX_TEAM_SIZE; +import static content.minigame.pestcontrol.PestControlActivityPlugin.MAX_TEAM_SIZE; /** * Represents a pest control session. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSquire.java b/Server/src/main/content/minigame/pestcontrol/PestControlSquire.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSquire.java rename to Server/src/main/content/minigame/pestcontrol/PestControlSquire.java index 84a5510dc..d18ffd880 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSquire.java +++ b/Server/src/main/content/minigame/pestcontrol/PestControlSquire.java @@ -1,7 +1,7 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; import core.cache.def.impl.NPCDefinition; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/SquireDialogue.java b/Server/src/main/content/minigame/pestcontrol/SquireDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SquireDialogue.java rename to Server/src/main/content/minigame/pestcontrol/SquireDialogue.java index 1593ed347..f5afd6425 100644 --- a/Server/src/main/java/core/game/content/dialogue/SquireDialogue.java +++ b/Server/src/main/content/minigame/pestcontrol/SquireDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.minigame.pestcontrol; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SquireMagicDialougue.java b/Server/src/main/content/minigame/pestcontrol/SquireMagicDialougue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/SquireMagicDialougue.java rename to Server/src/main/content/minigame/pestcontrol/SquireMagicDialougue.java index 29c21508a..7922aad9b 100644 --- a/Server/src/main/java/core/game/content/dialogue/SquireMagicDialougue.java +++ b/Server/src/main/content/minigame/pestcontrol/SquireMagicDialougue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.minigame.pestcontrol; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SquireTypeDialogue.java b/Server/src/main/content/minigame/pestcontrol/SquireTypeDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SquireTypeDialogue.java rename to Server/src/main/content/minigame/pestcontrol/SquireTypeDialogue.java index 80163abda..7277c5d93 100644 --- a/Server/src/main/java/core/game/content/dialogue/SquireTypeDialogue.java +++ b/Server/src/main/content/minigame/pestcontrol/SquireTypeDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.minigame.pestcontrol; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/VoidSealPlugin.java b/Server/src/main/content/minigame/pestcontrol/VoidSealPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/pestcontrol/VoidSealPlugin.java rename to Server/src/main/content/minigame/pestcontrol/VoidSealPlugin.java index 4e3962be0..95244ea66 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/VoidSealPlugin.java +++ b/Server/src/main/content/minigame/pestcontrol/VoidSealPlugin.java @@ -1,5 +1,6 @@ -package core.game.content.activity.pestcontrol; +package content.minigame.pestcontrol; +import content.minigame.pestcontrol.monsters.*; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -11,7 +12,6 @@ import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; import core.tools.RandomFunction; -import core.game.content.activity.pestcontrol.monsters.*; /** * Handles the void knight seal. diff --git a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatState.kt b/Server/src/main/content/minigame/pestcontrol/bots/CombatState.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatState.kt rename to Server/src/main/content/minigame/pestcontrol/bots/CombatState.kt index a56fc69f0..171da04ce 100644 --- a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatState.kt +++ b/Server/src/main/content/minigame/pestcontrol/bots/CombatState.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.minigamebots.pestcontrol +package content.minigame.pestcontrol.bots import core.game.interaction.MovementPulse import core.game.node.Node @@ -9,11 +9,10 @@ import core.game.world.map.path.Pathfinder import core.tools.RandomFunction import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import rs09.game.content.activity.pestcontrol.PestControlHelper.GATE_ENTRIES -import rs09.game.content.activity.pestcontrol.PestControlHelper.getMyPestControlSession1 -import rs09.game.world.GameWorld +import content.minigame.pestcontrol.PestControlHelper.GATE_ENTRIES +import content.minigame.pestcontrol.PestControlHelper.getMyPestControlSession1 +import core.game.world.GameWorld import java.util.* -import java.util.concurrent.Executors class CombatState(val bot: PestControlTestBot) { diff --git a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatStateIntermediate.kt b/Server/src/main/content/minigame/pestcontrol/bots/CombatStateIntermediate.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatStateIntermediate.kt rename to Server/src/main/content/minigame/pestcontrol/bots/CombatStateIntermediate.kt index 70243a700..fe52e5040 100644 --- a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/CombatStateIntermediate.kt +++ b/Server/src/main/content/minigame/pestcontrol/bots/CombatStateIntermediate.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.minigamebots.pestcontrol +package content.minigame.pestcontrol.bots import core.game.interaction.MovementPulse import core.game.node.Node @@ -9,11 +9,10 @@ import core.game.world.map.path.Pathfinder import core.tools.RandomFunction import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import rs09.game.content.activity.pestcontrol.PestControlHelper.GATE_ENTRIES -import rs09.game.content.activity.pestcontrol.PestControlHelper.getMyPestControlSession2 -import rs09.game.world.GameWorld +import content.minigame.pestcontrol.PestControlHelper.GATE_ENTRIES +import content.minigame.pestcontrol.PestControlHelper.getMyPestControlSession2 +import core.game.world.GameWorld import java.util.* -import java.util.concurrent.Executors class CombatStateIntermediate(val bot: PestControlTestBot2) { private val Random = Random() diff --git a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlIntermediateBot.kt b/Server/src/main/content/minigame/pestcontrol/bots/PestControlIntermediateBot.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlIntermediateBot.kt rename to Server/src/main/content/minigame/pestcontrol/bots/PestControlIntermediateBot.kt index 3f19a5335..40333b842 100644 --- a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlIntermediateBot.kt +++ b/Server/src/main/content/minigame/pestcontrol/bots/PestControlIntermediateBot.kt @@ -1,11 +1,10 @@ -package rs09.game.ai.minigamebots.pestcontrol +package content.minigame.pestcontrol.bots -import core.game.content.activity.pestcontrol.PestControlActivityPlugin import core.game.world.map.Location import core.tools.RandomFunction -import rs09.game.ai.pvmbots.CombatBotAssembler -import rs09.game.ai.pvmbots.PvMBots -import rs09.game.content.activity.pestcontrol.PestControlHelper +import core.game.bots.CombatBotAssembler +import core.game.bots.PvMBots +import content.minigame.pestcontrol.PestControlHelper import java.util.* class PestControlTestBot2(l: Location) : PvMBots(legitimizeLocation(l)) { @@ -87,7 +86,7 @@ class PestControlTestBot2(l: Location) : PvMBots(legitimizeLocation(l)) { private fun attackNPCs() { if (PestControlHelper.outsideGangplankContainsLoc2(getLocation())){ - PestControlActivityPlugin().leave(this,false) + content.minigame.pestcontrol.PestControlActivityPlugin().leave(this,false) val test = getClosestNodeWithEntry(50, myBoat.ladderId) test ?: println("PC: Gangplank Null") test.interaction.handle(this, test.interaction[0])//.also { println("Intermediate - We think we is in pest control ${this.username}.") } diff --git a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlNoviceBot.kt b/Server/src/main/content/minigame/pestcontrol/bots/PestControlNoviceBot.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlNoviceBot.kt rename to Server/src/main/content/minigame/pestcontrol/bots/PestControlNoviceBot.kt index df865908f..9c867d71f 100644 --- a/Server/src/main/kotlin/rs09/game/ai/minigamebots/pestcontrol/PestControlNoviceBot.kt +++ b/Server/src/main/content/minigame/pestcontrol/bots/PestControlNoviceBot.kt @@ -1,11 +1,10 @@ -package rs09.game.ai.minigamebots.pestcontrol +package content.minigame.pestcontrol.bots -import core.game.content.activity.pestcontrol.PestControlActivityPlugin import core.game.world.map.Location import core.tools.RandomFunction -import rs09.game.ai.pvmbots.CombatBotAssembler -import rs09.game.ai.pvmbots.PvMBots -import rs09.game.content.activity.pestcontrol.PestControlHelper +import core.game.bots.CombatBotAssembler +import core.game.bots.PvMBots +import content.minigame.pestcontrol.PestControlHelper import java.util.* class PestControlTestBot(l: Location) : PvMBots(legitimizeLocation(l)){ @@ -86,7 +85,7 @@ class PestControlTestBot(l: Location) : PvMBots(legitimizeLocation(l)){ fun attackNPCs() { if (PestControlHelper.outsideGangplankContainsLoc(getLocation())){ - PestControlActivityPlugin().leave(this,false) + content.minigame.pestcontrol.PestControlActivityPlugin().leave(this,false) val test = getClosestNodeWithEntry(50, myBoat.ladderId) test ?: println("PC: Gangplank Null") test.interaction.handle(this, test.interaction[0])//.also { println("Novice - We think we is in pest control ${this.username}.") } diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCBrawlerNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCBrawlerNPC.java similarity index 72% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCBrawlerNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCBrawlerNPC.java index 830e3cca7..f9f85ea65 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCBrawlerNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCBrawlerNPC.java @@ -1,26 +1,12 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; -import core.game.content.activity.pestcontrol.PestControlSession; +import content.minigame.pestcontrol.PestControlSession; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import core.game.node.entity.combat.InteractionType; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.system.task.Pulse; import core.game.world.map.Location; -import core.game.world.map.RegionManager; -import core.game.world.update.flag.context.Animation; -import core.game.world.update.flag.context.Graphics; -import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; -import rs09.game.world.GameWorld; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; /** * Handles the pest control brawler NPCs. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCDefilerNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCDefilerNPC.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCDefilerNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCDefilerNPC.java index 711620778..73315afd2 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCDefilerNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCDefilerNPC.java @@ -1,6 +1,6 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; -import core.game.content.activity.pestcontrol.PestControlSession; +import content.minigame.pestcontrol.PestControlSession; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -10,8 +10,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.game.world.map.MapDistance; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.RangeSwingHandler; /** * Handles the Defiler NPCs. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCRavagerNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCRavagerNPC.java index 7a22f51a9..4fba76be2 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCRavagerNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; import core.game.interaction.MovementPulse; import core.game.node.Node; @@ -11,13 +11,13 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.MapDistance; import core.game.world.map.path.Pathfinder; import core.game.world.map.zone.ZoneBorders; import core.tools.RandomFunction; -import core.game.content.activity.pestcontrol.PestControlSession; +import content.minigame.pestcontrol.PestControlSession; /** * Handles the Ravager pest control NPC. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCShifterNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCShifterNPC.java similarity index 93% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCShifterNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCShifterNPC.java index 88a3a3261..8364481e9 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCShifterNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCShifterNPC.java @@ -1,6 +1,6 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; -import core.game.content.activity.pestcontrol.PestControlSession; +import content.minigame.pestcontrol.PestControlSession; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -14,10 +14,10 @@ import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatPulse; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MeleeSwingHandler; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.Collections; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSpinnerNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCSpinnerNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSpinnerNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCSpinnerNPC.java index 0f4584fba..d2c667dd6 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSpinnerNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCSpinnerNPC.java @@ -1,5 +1,6 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; +import content.minigame.pestcontrol.PestControlSession; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -11,13 +12,12 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import core.game.content.activity.pestcontrol.PestControlSession; /** * Handles a pest control spinner NPC. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCSplatterNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCSplatterNPC.java index a6eea8314..5e5111211 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCSplatterNPC.java @@ -1,7 +1,8 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; import java.util.ArrayList; +import content.minigame.pestcontrol.PestControlSession; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.impl.Animator.Priority; @@ -11,13 +12,12 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import core.game.content.activity.pestcontrol.PestControlSession; /** * Handles the pest control splatter NPC. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCTorcherNPC.java b/Server/src/main/content/minigame/pestcontrol/monsters/PCTorcherNPC.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCTorcherNPC.java rename to Server/src/main/content/minigame/pestcontrol/monsters/PCTorcherNPC.java index 276b46caf..809764585 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCTorcherNPC.java +++ b/Server/src/main/content/minigame/pestcontrol/monsters/PCTorcherNPC.java @@ -1,12 +1,12 @@ -package core.game.content.activity.pestcontrol.monsters; +package content.minigame.pestcontrol.monsters; -import core.game.content.activity.pestcontrol.PestControlSession; +import content.minigame.pestcontrol.PestControlSession; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.InteractionType; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.spell.SpellType; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.AbstractNPC; @@ -18,8 +18,8 @@ import core.game.world.map.MapDistance; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MagicSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MagicSwingHandler; /** * Handles the torcher pest control NPC. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCIslandOptionPlugin.java b/Server/src/main/content/minigame/pestcontrol/reward/PCIslandOptionPlugin.java similarity index 90% rename from Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCIslandOptionPlugin.java rename to Server/src/main/content/minigame/pestcontrol/reward/PCIslandOptionPlugin.java index 8b3843558..ca33a7358 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCIslandOptionPlugin.java +++ b/Server/src/main/content/minigame/pestcontrol/reward/PCIslandOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol.reward; +package content.minigame.pestcontrol.reward; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the option plugin used to handle the pc island related nodes. diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCRewardInterface.java b/Server/src/main/content/minigame/pestcontrol/reward/PCRewardInterface.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCRewardInterface.java rename to Server/src/main/content/minigame/pestcontrol/reward/PCRewardInterface.java index cf19fac01..ffab29af7 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/PCRewardInterface.java +++ b/Server/src/main/content/minigame/pestcontrol/reward/PCRewardInterface.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pestcontrol.reward; +package content.minigame.pestcontrol.reward; import java.util.ArrayList; import java.util.List; @@ -8,7 +8,7 @@ import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.herblore.Herbs; +import content.global.skill.herblore.Herbs; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/VoidKnightDialogue.java b/Server/src/main/content/minigame/pestcontrol/reward/VoidKnightDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/pestcontrol/reward/VoidKnightDialogue.java rename to Server/src/main/content/minigame/pestcontrol/reward/VoidKnightDialogue.java index 1675b49c9..84263bfcd 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/reward/VoidKnightDialogue.java +++ b/Server/src/main/content/minigame/pestcontrol/reward/VoidKnightDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.activity.pestcontrol.reward; +package content.minigame.pestcontrol.reward; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; diff --git a/Server/src/main/java/core/game/content/activity/puropuro/ElnockInquisitorDialogue.java b/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/puropuro/ElnockInquisitorDialogue.java rename to Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java index 363826102..068a89413 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/ElnockInquisitorDialogue.java +++ b/Server/src/main/content/minigame/puropuro/ElnockInquisitorDialogue.java @@ -1,17 +1,17 @@ -package core.game.content.activity.puropuro; +package content.minigame.puropuro; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.hunter.bnet.BNetTypes; -import core.game.node.entity.skill.hunter.bnet.ImplingNode; +import core.game.dialogue.DialoguePlugin; +import content.global.skill.hunter.bnet.BNetTypes; +import content.global.skill.hunter.bnet.ImplingNode; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; -import core.game.content.activity.puropuro.ElnockInquisitorDialogue.ElnockExchangeInterfaceHandler.ElnockExchange; +import content.minigame.puropuro.ElnockInquisitorDialogue.ElnockExchangeInterfaceHandler.ElnockExchange; /** * Handles the elnock inquisitor dialogue. diff --git a/Server/src/main/java/core/game/content/activity/puropuro/FairyAerykaDialogue.java b/Server/src/main/content/minigame/puropuro/FairyAerykaDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/puropuro/FairyAerykaDialogue.java rename to Server/src/main/content/minigame/puropuro/FairyAerykaDialogue.java index 68f2cf9e3..fd9e9b78d 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/FairyAerykaDialogue.java +++ b/Server/src/main/content/minigame/puropuro/FairyAerykaDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.puropuro; +package content.minigame.puropuro; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/activity/puropuro/ImpDefenderNPC.java b/Server/src/main/content/minigame/puropuro/ImpDefenderNPC.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/puropuro/ImpDefenderNPC.java rename to Server/src/main/content/minigame/puropuro/ImpDefenderNPC.java index 26288bb34..948a6f4ac 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/ImpDefenderNPC.java +++ b/Server/src/main/content/minigame/puropuro/ImpDefenderNPC.java @@ -1,15 +1,15 @@ -package core.game.content.activity.puropuro; +package content.minigame.puropuro; import java.util.List; import java.util.Random; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.hunter.bnet.BNetTypes; -import core.game.node.entity.skill.hunter.bnet.ImplingNode; +import content.global.skill.hunter.bnet.BNetTypes; +import content.global.skill.hunter.bnet.ImplingNode; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java b/Server/src/main/content/minigame/puropuro/PuroPuroPlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java rename to Server/src/main/content/minigame/puropuro/PuroPuroPlugin.java index 8a689c09c..a0df1d47e 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java +++ b/Server/src/main/content/minigame/puropuro/PuroPuroPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.puropuro; +package content.minigame.puropuro; import java.util.ArrayList; import java.util.List; @@ -20,7 +20,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; @@ -32,7 +32,7 @@ import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/activity/puropuro/WanderingImplingDialogue.java b/Server/src/main/content/minigame/puropuro/WanderingImplingDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/puropuro/WanderingImplingDialogue.java rename to Server/src/main/content/minigame/puropuro/WanderingImplingDialogue.java index f048fa6a0..2eabd012d 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/WanderingImplingDialogue.java +++ b/Server/src/main/content/minigame/puropuro/WanderingImplingDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.puropuro; +package content.minigame.puropuro; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/content/minigame/pyramidplunder/GuardianMummyDialogue.kt b/Server/src/main/content/minigame/pyramidplunder/GuardianMummyDialogue.kt new file mode 100644 index 000000000..afc509f39 --- /dev/null +++ b/Server/src/main/content/minigame/pyramidplunder/GuardianMummyDialogue.kt @@ -0,0 +1,74 @@ +package content.minigame.pyramidplunder + +import core.api.setAttribute +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class GuardianMummyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "*sigh* Not another one.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Another what?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "Another 'archaeologist'. I'm not going to let you plunder my master's tomb you know.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "That's a shame. Have you got anything else I could do while I'm here?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "If it will keep you out of mischief I suppose I could set something up for you... I have a few rooms full of some things you humans might consider valuable, do you want to give it a go?").also { stage++ } + 4 -> player.dialogueInterpreter.sendOptions("Play Pyramid Plunder?", "That sounds like fun; what do I do?", "Not right now.", "I know what I'm doing, so let's get on with it.").also { stage++ } + 5 -> when(buttonId) + { + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "That sounds like fun; what do I do?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Not right now.").also { stage = END_DIALOGUE } + 3 -> playerl(core.game.dialogue.FacialExpression.ANNOYED, "I know what I'm doing, so let's get on with it.").also { stage = 100 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "You have five minutes to explore the treasure rooms and collect as many artefacts as you can. The artefacts are in the urns, chests and sarcophagi found in each room.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "There are eight treasure rooms, each subsequent room requires higher thieving skills to both enter the room and thieve from the urns and other containers.").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "The rewards also become more lucrative the further into the tomb you go. You will also have to deactivate a trap in order to enter the main part of each room.").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "When you want to move onto the next room you need to find the correct door first.").also { stage++ } + 14 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "There are four possible exits... you must open the door before finding out whether it is the exit or not. Opening the doors require picking their locks. Having a lockpick will make this easier.").also { stage++ } + 15 -> player.dialogueInterpreter.sendOptions("Do you have any more questions?", "How do I leave the game?", "How do I get the artefacts?", "What do I do with the artefacts I collect?", "I'm ready to give it a go now.").also { stage++ } + 16 -> when(buttonId) + { + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "How do I leave the game?").also { stage = 20 } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "How do I get the artefacts?").also { stage = 30 } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "What do I do with the artefacts?").also { stage = 40 } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm ready to give it a go now.").also { stage = 100 } + } + + 20 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "If at any point you decide you need to leave just use a glowing door. The game will end and you will be taken out of the pyramid").also { stage = 15 } + + 30 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "The artefacts are in the urns, chests and sarcophagi. Urns contain snakes that guard them. The sarcophagi take some strength to open. They take a while to open.").also { stage++ } + 31 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "Of course, Mummies have been known to take a nap in the sarcophagi, so beware. The golden chests generally contain better artefacts, but are also trapped with scarabs!").also { stage = 15 } + + 40 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "There are a number of different artefacts, of three main types. The least valuable are the pottery statuettes and scarabs, and the ivory combs.").also { stage++ } + 41 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "Next are the stone scarabs, statuettes and seals, and finally the gold versions of those artefacts. They are not old, but are well made.").also { stage++ } + 42 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What do I do with artefacts once I've collected them?").also { stage++ } + 43 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "That Simon Simpleton, I mean Templeton, will probably give you some money for them. He couldn't spot a real artefact if it came up to him and bit him in the face.").also { stage++ } + 44 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "He usually slinks about near the pyramid north-east of Sophanem. I expect he's trying to get some poor fools to steal things from that pyramid as well.").also { stage = 15 } + + 100 -> npcl(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "Alright, fine.").also { stage++ } + 101 -> { + end() + PyramidPlunderMinigame.join(player) + setAttribute(player, "/save:pp:mummy-spoken-to", true) + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GUARDIAN_MUMMY_4476) + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GuardianMummyDialogue(player) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PharaohSceptre.kt b/Server/src/main/content/minigame/pyramidplunder/PharaohSceptre.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PharaohSceptre.kt rename to Server/src/main/content/minigame/pyramidplunder/PharaohSceptre.kt index f3034af4f..5627fd664 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PharaohSceptre.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PharaohSceptre.kt @@ -1,11 +1,10 @@ -package rs09.game.content.activity.pyramidplunder +package content.minigame.pyramidplunder -import api.EquipmentSlot -import api.openDialogue -import api.sendMessage -import rs09.game.world.GameWorld.Pulser -import rs09.game.content.activity.pyramidplunder.PyramidPlunderMinigame.Companion.GUARDIAN_ROOM -import core.plugin.Initializable +import core.api.EquipmentSlot +import core.api.openDialogue +import core.api.sendMessage +import core.game.world.GameWorld.Pulser +import content.minigame.pyramidplunder.PyramidPlunderMinigame.Companion.GUARDIAN_ROOM import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse @@ -13,10 +12,9 @@ import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Adds functionality to the pharoah's scepter @@ -26,7 +24,7 @@ class PharaohSceptre : InteractionListener { override fun defineListeners() { val SCEPTRES = intArrayOf(Items.PHARAOHS_SCEPTRE_9044, Items.PHARAOHS_SCEPTRE_9046, Items.PHARAOHS_SCEPTRE_9048, Items.PHARAOHS_SCEPTRE_9050) - on(SCEPTRES, IntType.ITEM, "teleport", "operate"){player, node -> + on(SCEPTRES, IntType.ITEM, "teleport", "operate"){ player, node -> val sceptre = node.asItem() if(sceptre.id == SCEPTRES.last()) diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderData.kt b/Server/src/main/content/minigame/pyramidplunder/PlunderData.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderData.kt rename to Server/src/main/content/minigame/pyramidplunder/PlunderData.kt index 9c7558426..bf8b622d3 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderData.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PlunderData.kt @@ -1,4 +1,4 @@ -package rs09.game.content.activity.pyramidplunder +package content.minigame.pyramidplunder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -13,7 +13,7 @@ object PlunderData { val playerLocations = HashMap() val players = ArrayList() val doorVarbits = arrayOf(2366, 2367, 2368, 2369) - val doors = Array(8){doorVarbits[0]} + val doors = Array(8){ doorVarbits[0]} val timeLeft = HashMap() val pyramidEntranceVarbits = arrayOf(2371,2372,2373,2374) diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderUtils.kt b/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderUtils.kt rename to Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt index f102b0bc7..2d99034b2 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PlunderUtils.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PlunderUtils.kt @@ -1,6 +1,6 @@ -package rs09.game.content.activity.pyramidplunder +package content.minigame.pyramidplunder -import api.* +import core.api.* import core.game.component.Component import core.game.node.Node import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PyramidPlunderMinigame.kt b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PyramidPlunderMinigame.kt rename to Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt index 7ec4eb814..d6ceb84c1 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/PyramidPlunderMinigame.kt +++ b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMinigame.kt @@ -1,8 +1,6 @@ -package rs09.game.content.activity.pyramidplunder +package content.minigame.pyramidplunder -import api.* -import core.game.content.activity.pyramidplunder.PyramidPlunderMummyNPC -import core.game.content.activity.pyramidplunder.PyramidPlunderSwarmNPC +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.entity.state.EntityState @@ -14,9 +12,9 @@ import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** @@ -59,7 +57,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener val ENTRANCES = intArrayOf(16484, 16487, 16490, 16493) //All Scenery.AN_ANONYMOUS_LOOKING_DOOR_16484/etc val SARCOPHAGUS = Scenery.SARCOPHAGUS_16495 - on(Scenery.SPEARTRAP_16517, IntType.SCENERY, "pass"){player, node -> + on(Scenery.SPEARTRAP_16517, IntType.SCENERY, "pass"){ player, node -> val anim = Animation(CHECK_ANIM) val duration = animationDuration(anim) @@ -205,7 +203,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener rewardXP(player, Skills.STRENGTH, PlunderUtils.getSarcophagusXp(player)) if(RandomFunction.roll(25)) { - val mummy = PyramidPlunderMummyNPC(player.location, player) + val mummy = content.minigame.pyramidplunder.PyramidPlunderMummyNPC(player.location, player) mummy.isRespawn = false mummy.init() mummy.attack(player) @@ -226,7 +224,7 @@ class PyramidPlunderMinigame : InteractionListener, TickListener, LogoutListener runTask(player){ if(RandomFunction.roll(25)) { - val swarm = PyramidPlunderSwarmNPC(player.location, player) + val swarm = content.minigame.pyramidplunder.PyramidPlunderSwarmNPC(player.location, player) swarm.isRespawn = false swarm.init() swarm.attack(player) diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderMummyNPC.java b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMummyNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderMummyNPC.java rename to Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMummyNPC.java index f9eb1c59d..9d18d2b26 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderMummyNPC.java +++ b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderMummyNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pyramidplunder; +package content.minigame.pyramidplunder; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderNPC.java b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderNPC.java rename to Server/src/main/content/minigame/pyramidplunder/PyramidPlunderNPC.java index ed20e9572..329887b34 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderNPC.java +++ b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pyramidplunder; +package content.minigame.pyramidplunder; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; @@ -6,7 +6,7 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.impl.PulseType; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.path.Pathfinder; diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderSwarmNPC.java b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderSwarmNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderSwarmNPC.java rename to Server/src/main/content/minigame/pyramidplunder/PyramidPlunderSwarmNPC.java index 1d0bd5594..f2d919470 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidPlunderSwarmNPC.java +++ b/Server/src/main/content/minigame/pyramidplunder/PyramidPlunderSwarmNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.pyramidplunder; +package content.minigame.pyramidplunder; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/npc/RechargeSceptre.java b/Server/src/main/content/minigame/pyramidplunder/RechargeSceptre.java similarity index 99% rename from Server/src/main/java/core/game/interaction/npc/RechargeSceptre.java rename to Server/src/main/content/minigame/pyramidplunder/RechargeSceptre.java index 1ca605cc0..00bd639d6 100644 --- a/Server/src/main/java/core/game/interaction/npc/RechargeSceptre.java +++ b/Server/src/main/content/minigame/pyramidplunder/RechargeSceptre.java @@ -1,6 +1,6 @@ -package core.game.interaction.npc; +package content.minigame.pyramidplunder; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/SimonScepterInteraction.java b/Server/src/main/content/minigame/pyramidplunder/SimonScepterInteraction.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/SimonScepterInteraction.java rename to Server/src/main/content/minigame/pyramidplunder/SimonScepterInteraction.java index 3c5972b0b..3f4d0515f 100644 --- a/Server/src/main/java/core/game/interaction/npc/SimonScepterInteraction.java +++ b/Server/src/main/content/minigame/pyramidplunder/SimonScepterInteraction.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.minigame.pyramidplunder; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/DelMontyDialogue.java b/Server/src/main/content/minigame/sorceress/DelMontyDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/DelMontyDialogue.java rename to Server/src/main/content/minigame/sorceress/DelMontyDialogue.java index b3330f8ea..5286f5e15 100644 --- a/Server/src/main/java/core/game/content/dialogue/DelMontyDialogue.java +++ b/Server/src/main/content/minigame/sorceress/DelMontyDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.minigame.sorceress; import core.game.container.impl.EquipmentContainer; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt b/Server/src/main/content/minigame/sorceress/GardenObjectsPlugin.kt similarity index 98% rename from Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt rename to Server/src/main/content/minigame/sorceress/GardenObjectsPlugin.kt index 733e7dbb5..89c33650a 100644 --- a/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt +++ b/Server/src/main/content/minigame/sorceress/GardenObjectsPlugin.kt @@ -1,10 +1,8 @@ -package core.game.interaction.`object`.sorceress +package content.minigame.sorceress import core.plugin.Initializable import core.plugin.Plugin import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.scenery.Scenery @@ -21,10 +19,10 @@ import core.net.packet.PacketRepository import core.net.packet.context.MinimapStateContext import core.net.packet.out.MinimapState import core.tools.RandomFunction -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld -import rs09.plugin.ClassScanner +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld +import core.plugin.ClassScanner class GardenObjectsPlugin : InteractionListener { @@ -40,7 +38,7 @@ class GardenObjectsPlugin : InteractionListener { SqirkMakingDialogue().init() ClassScanner.definePlugin(SorceressGardenObject()) - on(SQIRK_TREES, IntType.SCENERY, "pick-fruit"){player, node -> + on(SQIRK_TREES, IntType.SCENERY, "pick-fruit"){ player, node -> val def = SeasonDefinitions.forTreeId(node.id) if (def != null) { player.lock() @@ -74,7 +72,7 @@ class GardenObjectsPlugin : InteractionListener { } - on(FOUNTAIN, IntType.SCENERY, "drink-from"){player, _ -> + on(FOUNTAIN, IntType.SCENERY, "drink-from"){ player, _ -> player.lock() GameWorld.Pulser.submit(object : Pulse(1, player) { var counter = 0 @@ -102,7 +100,7 @@ class GardenObjectsPlugin : InteractionListener { return@on true } - on(SHELVES, IntType.SCENERY, "search"){player, node -> + on(SHELVES, IntType.SCENERY, "search"){ player, node -> if (player.inventory.freeSlots() < 1) { player.sendMessage("You don't have enough space in your inventory to take a beer glass.") } else { @@ -113,7 +111,7 @@ class GardenObjectsPlugin : InteractionListener { return@on true } - on(HERBS, IntType.SCENERY, "pick"){player, node -> + on(HERBS, IntType.SCENERY, "pick"){ player, node -> val herbDef = HerbDefinition.forId(node.getId()) if (herbDef != null) { handleElementalGarden(player, node.asScenery(), herbDef) @@ -473,7 +471,7 @@ class GardenObjectsPlugin : InteractionListener { * @date 31/12/2013 */ @Initializable - class OsmanDialogue : DialoguePlugin { + class OsmanDialogue : core.game.dialogue.DialoguePlugin { /** * Represents the quest instance. */ @@ -499,7 +497,7 @@ class GardenObjectsPlugin : InteractionListener { */ constructor(player: Player?) : super(player) {} - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return OsmanDialogue(player) } @@ -1352,7 +1350,7 @@ class GardenObjectsPlugin : InteractionListener { * Dialogue for Sqirk making * @author SonicForce41 */ - class SqirkMakingDialogue : DialoguePlugin { + class SqirkMakingDialogue : core.game.dialogue.DialoguePlugin { private var dialogueId = 0 private var definition: GardenObjectsPlugin.SeasonDefinitions? = null @@ -1385,7 +1383,7 @@ class GardenObjectsPlugin : InteractionListener { return true } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return SqirkMakingDialogue(player) } @@ -1394,7 +1392,7 @@ class GardenObjectsPlugin : InteractionListener { when (dialogueId) { 0 -> interpreter.sendDialogues( player, - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "I should get an empty beer glass to", "hold the juice before I squeeze the fruit." ) @@ -1403,7 +1401,7 @@ class GardenObjectsPlugin : InteractionListener { if (definition == null) end() interpreter.sendDialogues( player, - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "I think I should wait till I have", "enough fruits to make a full glass." ) diff --git a/Server/src/main/java/core/game/content/dialogue/SorcceresDialouge.java b/Server/src/main/content/minigame/sorceress/SorcceresDialouge.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/SorcceresDialouge.java rename to Server/src/main/content/minigame/sorceress/SorcceresDialouge.java index 439fc9acf..b795605b2 100644 --- a/Server/src/main/java/core/game/content/dialogue/SorcceresDialouge.java +++ b/Server/src/main/content/minigame/sorceress/SorcceresDialouge.java @@ -1,9 +1,11 @@ -package core.game.content.dialogue; +package content.minigame.sorceress; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticeDialogue.java b/Server/src/main/content/minigame/sorceress/SorceressApprenticeDialogue.java similarity index 97% rename from Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticeDialogue.java rename to Server/src/main/content/minigame/sorceress/SorceressApprenticeDialogue.java index 1a87a12ff..5e19d4503 100644 --- a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticeDialogue.java +++ b/Server/src/main/content/minigame/sorceress/SorceressApprenticeDialogue.java @@ -1,12 +1,12 @@ -package core.game.interaction.npc.sorceress_app; +package content.minigame.sorceress; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java b/Server/src/main/content/minigame/sorceress/SorceressApprenticePlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java rename to Server/src/main/content/minigame/sorceress/SorceressApprenticePlugin.java index 07db3e059..c2993ce52 100644 --- a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java +++ b/Server/src/main/content/minigame/sorceress/SorceressApprenticePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc.sorceress_app; +package content.minigame.sorceress; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; @@ -8,7 +8,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Teleport option for Sorceress Apprentice diff --git a/Server/src/main/java/core/game/node/entity/npc/other/SorceressElementalNPC.java b/Server/src/main/content/minigame/sorceress/SorceressElementalNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/other/SorceressElementalNPC.java rename to Server/src/main/content/minigame/sorceress/SorceressElementalNPC.java index fb52bdb5f..af3dbc8e7 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/SorceressElementalNPC.java +++ b/Server/src/main/content/minigame/sorceress/SorceressElementalNPC.java @@ -1,15 +1,15 @@ -package core.game.node.entity.npc.other; +package content.minigame.sorceress; import java.util.List; import core.game.component.Component; import core.game.node.entity.Entity; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java b/Server/src/main/content/minigame/sorceress/SorceressGardenObject.java similarity index 92% rename from Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java rename to Server/src/main/content/minigame/sorceress/SorceressGardenObject.java index d897c0ec0..bfe8136ae 100644 --- a/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java +++ b/Server/src/main/content/minigame/sorceress/SorceressGardenObject.java @@ -1,7 +1,7 @@ -package core.game.interaction.object.sorceress; +package content.minigame.sorceress; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/Vinesweeper.kt b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/Vinesweeper.kt rename to Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt index a984daa6f..8229c1530 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/Vinesweeper.kt +++ b/Server/src/main/content/minigame/vinesweeper/Vinesweeper.kt @@ -1,12 +1,10 @@ -package rs09.game.content.activity.vinesweeper +package content.minigame.vinesweeper import BlinkinDialogue import FarmerDialogue.Companion.FARMER_FLAG_LINES import WinkinDialogue -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.FacialExpression -import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.entity.Entity import core.game.node.entity.combat.DeathTask @@ -23,31 +21,29 @@ import core.game.node.scenery.SceneryBuilder import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager -import core.game.world.map.path.Pathfinder import core.game.world.map.zone.ZoneBorders import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics -import core.game.world.update.flag.player.FaceLocationFlag import core.plugin.Initializable import core.tools.RandomFunction import org.rs09.consts.Animations import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.FARMERS -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.FARMER_CLEAR_RADIUS -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.HOLES -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.NUMBERS -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.RABBITS -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.SEED_LOCS -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.populateSeeds -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.scheduleNPCs -import rs09.game.content.activity.vinesweeper.Vinesweeper.Companion.sendPoints -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InterfaceListener -import rs09.game.world.GameWorld -import rs09.game.world.GameWorld.ticks +import content.minigame.vinesweeper.Vinesweeper.Companion.FARMERS +import content.minigame.vinesweeper.Vinesweeper.Companion.FARMER_CLEAR_RADIUS +import content.minigame.vinesweeper.Vinesweeper.Companion.HOLES +import content.minigame.vinesweeper.Vinesweeper.Companion.NUMBERS +import content.minigame.vinesweeper.Vinesweeper.Companion.RABBITS +import content.minigame.vinesweeper.Vinesweeper.Companion.SEED_LOCS +import content.minigame.vinesweeper.Vinesweeper.Companion.populateSeeds +import content.minigame.vinesweeper.Vinesweeper.Companion.scheduleNPCs +import content.minigame.vinesweeper.Vinesweeper.Companion.sendPoints +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InterfaceListener +import core.game.world.GameWorld +import core.game.world.GameWorld.ticks import org.rs09.consts.Graphics as Gfx import org.rs09.consts.Scenery as Sceneries @@ -503,7 +499,7 @@ class Vinesweeper : InteractionListener, InterfaceListener, MapArea { @JvmStatic fun teleport(npc: NPC, player: Player) { if (player.stateManager.hasState(EntityState.TELEBLOCK)) { - sendNPCDialogue(player, npc.id, "I can't do that, you're teleblocked!", FacialExpression.OLD_ANGRY1) + sendNPCDialogue(player, npc.id, "I can't do that, you're teleblocked!", core.game.dialogue.FacialExpression.OLD_ANGRY1) return } npc.animate(Animation(437)) diff --git a/Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/VinesweeperDialogues.kt b/Server/src/main/content/minigame/vinesweeper/VinesweeperDialogues.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/VinesweeperDialogues.kt rename to Server/src/main/content/minigame/vinesweeper/VinesweeperDialogues.kt index 68b18958c..f51a18bde 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/vinesweeper/VinesweeperDialogues.kt +++ b/Server/src/main/content/minigame/vinesweeper/VinesweeperDialogues.kt @@ -1,11 +1,9 @@ -import api.* import core.game.component.Component -import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE abstract class FarmerDialogue : DialogueFile() { diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/heroesguild/AchiettiesDialogue.kt b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AchiettiesDialogue.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/heroesguild/AchiettiesDialogue.kt rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/AchiettiesDialogue.kt index b9d11a824..39dd956b9 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/heroesguild/AchiettiesDialogue.kt +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AchiettiesDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.heroesguild +package content.region.asgarnia.burthorpe.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -11,11 +11,11 @@ import core.plugin.Initializable */ @Initializable -class AchiettiesDialogue(player: Player? = null) : DialoguePlugin(player){ +class AchiettiesDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Greetings. Welcome to the Heroes' Guild.") + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Greetings. Welcome to the Heroes' Guild.") stage = 99 return true } @@ -27,7 +27,7 @@ class AchiettiesDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AchiettiesDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/AjjatDialoguePlugin.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AjjatDialoguePlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/AjjatDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/AjjatDialoguePlugin.java index c5a90e1b6..e92c4be3f 100644 --- a/Server/src/main/java/core/game/content/dialogue/AjjatDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AjjatDialoguePlugin.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/AntonDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AntonDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/AntonDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/AntonDialogue.java index e39d56a77..9ef0cf071 100644 --- a/Server/src/main/java/core/game/content/dialogue/AntonDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/AntonDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BreocaDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/BreocaDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/BreocaDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/BreocaDialogue.java index 14faebce1..552eeea62 100644 --- a/Server/src/main/java/core/game/content/dialogue/BreocaDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/BreocaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BurthorpeSoldierDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/BurthorpeSoldierDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/BurthorpeSoldierDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/BurthorpeSoldierDialogue.java index 366d24e0a..b34e156ce 100644 --- a/Server/src/main/java/core/game/content/dialogue/BurthorpeSoldierDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/BurthorpeSoldierDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/CeolburgDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/CeolburgDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/CeolburgDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/CeolburgDialogue.java index e4da19774..ea9ee941a 100644 --- a/Server/src/main/java/core/game/content/dialogue/CeolburgDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/CeolburgDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DenulthDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/DenulthDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/DenulthDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/DenulthDialogue.java index 453b01d3f..de0472c59 100644 --- a/Server/src/main/java/core/game/content/dialogue/DenulthDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/DenulthDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DunstanDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/DunstanDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/DunstanDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/DunstanDialogue.java index 552ac6c6e..43dec9fe4 100644 --- a/Server/src/main/java/core/game/content/dialogue/DunstanDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/DunstanDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EadburgDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EadburgDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/EadburgDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/EadburgDialogue.java index 67954f3f2..ef0623522 100644 --- a/Server/src/main/java/core/game/content/dialogue/EadburgDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EadburgDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictDialogue.kt b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictDialogue.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictDialogue.kt rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictDialogue.kt index 05e4418d2..1008ad638 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictDialogue.kt +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictDialogue.kt @@ -1,16 +1,16 @@ -package rs09.game.content.dialogue.region.roguesden +package content.region.asgarnia.burthorpe.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Handles Emerald Benedict's dialogue tree. @@ -18,17 +18,17 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class EmeraldBenedictDialogue(player: Player? = null) : DialoguePlugin(player) { +class EmeraldBenedictDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> if(hasIronmanRestriction(player, IronmanMode.ULTIMATE)) { npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Get lost, tin can." ).also { stage = END_DIALOGUE } } else { npcl( - FacialExpression.SUSPICIOUS, + core.game.dialogue.FacialExpression.SUSPICIOUS, "Got anything you don't want to lose?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -40,22 +40,22 @@ class EmeraldBenedictDialogue(player: Player? = null) : DialoguePlugin(player) { } 1 -> npcl( - FacialExpression.SUSPICIOUS, + core.game.dialogue.FacialExpression.SUSPICIOUS, "By the way, a little bird told me you got some stuff waiting for you " + "on the Grand Exchange." ).also { stage++ } 2 -> showTopics( - Topic(FacialExpression.ASKING, "Yes, actually. Can you help?", 3), + Topic(core.game.dialogue.FacialExpression.ASKING, "Yes, actually. Can you help?", 3), IfTopic( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Yes, but can you switch my bank accounts?", 4, hasActivatedSecondaryBankAccount(player) ), - Topic(FacialExpression.ASKING, "Yes, but can you show me my PIN settings?", 5), - Topic(FacialExpression.ASKING, "Yes, but can you show me my collection box?", 6), - Topic(FacialExpression.ANNOYED, "Yes, thanks. And I'll keep hold of it too.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.ASKING, "Yes, but can you show me my PIN settings?", 5), + Topic(core.game.dialogue.FacialExpression.ASKING, "Yes, but can you show me my collection box?", 6), + Topic(core.game.dialogue.FacialExpression.ANNOYED, "Yes, thanks. And I'll keep hold of it too.", END_DIALOGUE) ) 3 -> { @@ -66,7 +66,7 @@ class EmeraldBenedictDialogue(player: Player? = null) : DialoguePlugin(player) { 4 -> { toggleBankAccount(player) npcl( - FacialExpression.SUSPICIOUS, + core.game.dialogue.FacialExpression.SUSPICIOUS, "Sure thing. Feel free to rummage through whatever's in your ${getBankAccountName(player)} now." ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictListener.kt b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictListener.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictListener.kt rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictListener.kt index e06fb6269..9268d2ed5 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/roguesden/EmeraldBenedictListener.kt +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/EmeraldBenedictListener.kt @@ -1,10 +1,10 @@ -package rs09.game.content.dialogue.region.roguesden +package content.region.asgarnia.burthorpe.dialogue -import api.openBankAccount -import api.openGrandExchangeCollectionBox +import core.api.openBankAccount +import core.api.openGrandExchangeCollectionBox import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles Emerald Benedict's only available interaction. diff --git a/Server/src/main/java/core/game/content/dialogue/GamFredDialoue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/GamFredDialoue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/GamFredDialoue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/GamFredDialoue.java index 0eb75084f..ec37eca66 100644 --- a/Server/src/main/java/core/game/content/dialogue/GamFredDialoue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/GamFredDialoue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/GhommalDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/GhommalDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/GhommalDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/GhommalDialogue.java index 36a784dd7..96114bb47 100644 --- a/Server/src/main/java/core/game/content/dialogue/GhommalDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/GhommalDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/HarrallakMenarous.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HarrallakMenarous.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/HarrallakMenarous.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/HarrallakMenarous.java index 0e8b89dcb..1bdf360fd 100644 --- a/Server/src/main/java/core/game/content/dialogue/HarrallakMenarous.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HarrallakMenarous.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HildDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HildDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/HildDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/HildDialogue.java index 5d56af7ef..5ad1c4cd7 100644 --- a/Server/src/main/java/core/game/content/dialogue/HildDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HildDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HistanDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HistanDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/HistanDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/HistanDialogue.java index 1a19016c5..5779369a3 100644 --- a/Server/src/main/java/core/game/content/dialogue/HistanDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HistanDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HygdDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HygdDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/HygdDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/HygdDialogue.java index 3ecf8be80..fb1e3490f 100644 --- a/Server/src/main/java/core/game/content/dialogue/HygdDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/HygdDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/wguild/JadeDialogue.kt b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/JadeDialogue.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/wguild/JadeDialogue.kt rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/JadeDialogue.kt index 1abe81180..188d96933 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/wguild/JadeDialogue.kt +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/JadeDialogue.kt @@ -1,16 +1,16 @@ -package rs09.game.content.dialogue.region.wguild +package content.region.asgarnia.burthorpe.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Provides a dialogue tree for Jade inside Warriors' Guild. @@ -18,19 +18,19 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class JadeDialogue(player: Player? = null) : DialoguePlugin(player) { +class JadeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> if (hasIronmanRestriction(player, IronmanMode.ULTIMATE)) { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Greetings, warrior. I wish I could help you, but " + "our services are not available for Ultimate ${if (player.isMale) "Ironmen" else "Ironwomen"}." ).also { stage = END_DIALOGUE } } else { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Greetings warrior, how may I help you?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -42,36 +42,36 @@ class JadeDialogue(player: Player? = null) : DialoguePlugin(player) { } 1 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Before we go any further, I should inform you that you " + "have items ready for collection from the Grand Exchange." ).also { stage++ } 2 -> showTopics( - Topic(FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 10), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 10), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to switch to my ${getBankAccountName(player, true)} bank account.", 13, hasActivatedSecondaryBankAccount(player) ), - Topic(FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 11), - Topic(FacialExpression.NEUTRAL, "I'd like to see my collection box.", 12), - Topic(FacialExpression.ASKING, "How long have you worked here?", 3) + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 11), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to see my collection box.", 12), + Topic(core.game.dialogue.FacialExpression.ASKING, "How long have you worked here?", 3) ) 3 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Oh, ever since the Guild opened. I like it here." ).also { stage++ } 4 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Why's that?" ).also { stage++ } 5 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Well... What with all these warriors around, there's not much chance of my bank being robbed, is there?" ).also { stage = 2 } @@ -93,7 +93,7 @@ class JadeDialogue(player: Player? = null) : DialoguePlugin(player) { 13 -> { toggleBankAccount(player) npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Of course! Your ${getBankAccountName(player)} account is now active!" ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/java/core/game/content/dialogue/KamfreenaDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/KamfreenaDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/KamfreenaDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/KamfreenaDialogue.java index b4010d50d..aa398eafc 100644 --- a/Server/src/main/java/core/game/content/dialogue/KamfreenaDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/KamfreenaDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LidioDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/LidioDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/LidioDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/LidioDialogue.java index 1fb7b1d7b..6124dbf0c 100644 --- a/Server/src/main/java/core/game/content/dialogue/LidioDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/LidioDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LillyDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/LillyDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/LillyDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/LillyDialogue.java index 547a45e2b..88455aa82 100644 --- a/Server/src/main/java/core/game/content/dialogue/LillyDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/LillyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MartinThwaitDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/MartinThwaitDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/MartinThwaitDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/MartinThwaitDialogue.java index 00fd4223f..69e3a63e5 100644 --- a/Server/src/main/java/core/game/content/dialogue/MartinThwaitDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/MartinThwaitDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; import core.cache.def.impl.NPCDefinition; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -9,7 +11,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the dialogue used for martin thwait. diff --git a/Server/src/main/java/core/game/content/dialogue/OcaDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/OcaDialogue.java similarity index 87% rename from Server/src/main/java/core/game/content/dialogue/OcaDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/OcaDialogue.java index 6a3980428..0f5dbb101 100644 --- a/Server/src/main/java/core/game/content/dialogue/OcaDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/OcaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PendaDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/PendaDialogue.java similarity index 87% rename from Server/src/main/java/core/game/content/dialogue/PendaDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/PendaDialogue.java index d0508bcd0..78f6c8e24 100644 --- a/Server/src/main/java/core/game/content/dialogue/PendaDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/PendaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ReffDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ReffDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/ReffDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/ReffDialogue.java index ca23880ae..079cc6650 100644 --- a/Server/src/main/java/core/game/content/dialogue/ReffDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ReffDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ServantDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ServantDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/ServantDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/ServantDialogue.java index db100a414..c0a6e29ea 100644 --- a/Server/src/main/java/core/game/content/dialogue/ServantDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ServantDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ShanomiDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ShanomiDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/ShanomiDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/ShanomiDialogue.java index 31ebd34d1..d3c6f411f 100644 --- a/Server/src/main/java/core/game/content/dialogue/ShanomiDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/ShanomiDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SloaneDialogue.java b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/SloaneDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SloaneDialogue.java rename to Server/src/main/content/region/asgarnia/burthorpe/dialogue/SloaneDialogue.java index ae703e5e8..d74f626a1 100644 --- a/Server/src/main/java/core/game/content/dialogue/SloaneDialogue.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/dialogue/SloaneDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.burthorpe.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/AntonNPC.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/AntonNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/AntonNPC.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/AntonNPC.java index 761d9f2cd..ef37619b5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/AntonNPC.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/AntonNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.burthorpe.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeOptionPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeOptionPlugin.java index 3b2c0fd76..5af1f46d6 100644 --- a/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeOptionPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.npc; +package content.region.asgarnia.burthorpe.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpePlugin.java similarity index 89% rename from Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpePlugin.java index 7c61fb7e3..efdbe5883 100644 --- a/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpePlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.city; +package content.region.asgarnia.burthorpe.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/BurthorpeTrainNPC.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeTrainNPC.java similarity index 98% rename from Server/src/main/java/core/game/interaction/npc/BurthorpeTrainNPC.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeTrainNPC.java index bff5a6a5e..518c70715 100644 --- a/Server/src/main/java/core/game/interaction/npc/BurthorpeTrainNPC.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/BurthorpeTrainNPC.java @@ -1,11 +1,11 @@ -package core.game.interaction.npc; +package content.region.asgarnia.burthorpe.handlers; import java.util.List; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/HeroGuildPlugin.java similarity index 92% rename from Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/HeroGuildPlugin.java index 7ef3e4d3b..2cb15bbb8 100644 --- a/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/HeroGuildPlugin.java @@ -1,9 +1,9 @@ -package core.game.content.activity.guild; +package content.region.asgarnia.burthorpe.handlers; import core.cache.def.impl.SceneryDefinition; -import rs09.game.content.global.EnchantedJewellery; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.data.EnchantedJewellery; +import core.game.global.action.DoorActionHandler; +import content.global.skill.summoning.familiar.Familiar; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -15,7 +15,7 @@ import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the hero guild. diff --git a/Server/src/main/java/core/game/node/entity/npc/other/KamfreenaNPC.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/KamfreenaNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/KamfreenaNPC.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/KamfreenaNPC.java index b907e817e..8b0bb7fd8 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/KamfreenaNPC.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/KamfreenaNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.burthorpe.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ShanomiNPC.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/ShanomiNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/ShanomiNPC.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/ShanomiNPC.java index e1e62df75..fde92aa44 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ShanomiNPC.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/ShanomiNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.burthorpe.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/wguild/WGuildListeners.kt b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WGuildListeners.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/content/activity/wguild/WGuildListeners.kt rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WGuildListeners.kt index 7d3386144..e20b682fc 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/wguild/WGuildListeners.kt +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WGuildListeners.kt @@ -1,12 +1,11 @@ -package rs09.game.content.activity.wguild +package content.region.asgarnia.burthorpe.handlers.wguild import core.game.component.Component import core.game.container.impl.EquipmentContainer -import core.game.content.activity.wguild.catapult.CatapultRoom +import content.region.asgarnia.burthorpe.handlers.wguild.catapult.CatapultRoom import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener class WGuildListeners : InteractionListener { override fun defineListeners() { diff --git a/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WarriorsGuild.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WarriorsGuild.java index 46f97de44..7b22894be 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/WarriorsGuild.java @@ -1,10 +1,10 @@ -package core.game.content.activity.wguild; +package content.region.asgarnia.burthorpe.handlers.wguild; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -14,7 +14,7 @@ import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the warrior guild options. diff --git a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimatedArmour.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimatedArmour.java similarity index 93% rename from Server/src/main/java/core/game/content/activity/wguild/animator/AnimatedArmour.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimatedArmour.java index 9d59eb594..dd379992e 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimatedArmour.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimatedArmour.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.animator; +package content.region.asgarnia.burthorpe.handlers.wguild.animator; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -13,8 +13,6 @@ import core.game.world.map.path.Pathfinder; import core.game.world.update.flag.context.Animation; import core.tools.RandomFunction; -import core.game.content.activity.wguild.animator.AnimationRoom.ArmourSet; - /** * Represents an animated armour. * @author Emperor @@ -29,7 +27,7 @@ public final class AnimatedArmour extends NPC { /** * The armour set. */ - private final ArmourSet set; + private final AnimationRoom.ArmourSet set; /** * If the set is running. @@ -42,7 +40,7 @@ public final class AnimatedArmour extends NPC { * @param location The location to spawn. * @param set The armour set. */ - protected AnimatedArmour(Player player, Location location, ArmourSet set) { + protected AnimatedArmour(Player player, Location location, AnimationRoom.ArmourSet set) { super(set.getNpcId(), location); this.player = player; this.set = set; diff --git a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimationRoom.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimationRoom.java index 1fa7a24ad..2e56db3b3 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/animator/AnimationRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.animator; +package content.region.asgarnia.burthorpe.handlers.wguild.animator; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -10,7 +10,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java index 8cbdbef2a..de17ad2d0 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/barrel/BarrelRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.barrel; +package content.region.asgarnia.burthorpe.handlers.wguild.barrel; import java.util.ArrayList; import java.util.Iterator; @@ -15,7 +15,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; @@ -23,7 +23,7 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java index 0e71075fb..880802041 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/catapult/CatapultRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.catapult; +package content.region.asgarnia.burthorpe.handlers.wguild.catapult; import java.util.ArrayList; import java.util.List; @@ -9,7 +9,7 @@ import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.container.impl.EquipmentContainer; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -22,7 +22,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.MapZone; @@ -30,7 +30,7 @@ import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/cyclopes/CyclopesRoom.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/cyclopes/CyclopesRoom.java index d678132a6..a7d22cb59 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/cyclopes/CyclopesRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.cyclopes; +package content.region.asgarnia.burthorpe.handlers.wguild.cyclopes; import java.util.ArrayList; import java.util.Iterator; @@ -7,9 +7,9 @@ import java.util.List; import core.cache.def.impl.SceneryDefinition; import core.game.container.impl.EquipmentContainer; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; @@ -19,7 +19,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.path.Pathfinder; @@ -28,7 +28,7 @@ import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.map.zone.ZoneRestriction; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/dummy/DummyRoom.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/dummy/DummyRoom.java index 060e58927..bc1ad6f5a 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/dummy/DummyRoom.java @@ -1,4 +1,4 @@ -package core.game.content.activity.wguild.dummy; +package content.region.asgarnia.burthorpe.handlers.wguild.dummy; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -11,7 +11,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.chunk.AnimateObjectUpdateFlag; diff --git a/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/shot/ShotPutRoom.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java rename to Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/shot/ShotPutRoom.java index 5cc5ab71b..7e075e351 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java +++ b/Server/src/main/content/region/asgarnia/burthorpe/handlers/wguild/shot/ShotPutRoom.java @@ -1,12 +1,12 @@ -package core.game.content.activity.wguild.shot; +package content.region.asgarnia.burthorpe.handlers.wguild.shot; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.container.impl.EquipmentContainer; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -18,11 +18,11 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/dialogue/CuffsDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/CuffsDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/CuffsDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/CuffsDialogue.java index 4961acb59..261d85682 100644 --- a/Server/src/main/java/core/game/content/dialogue/CuffsDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/CuffsDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GrimgnashDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/GrimgnashDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/GrimgnashDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/GrimgnashDialogue.java index 401828907..4d19b4e8f 100644 --- a/Server/src/main/java/core/game/content/dialogue/GrimgnashDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/GrimgnashDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/IcyCavernDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/IcyCavernDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/IcyCavernDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/IcyCavernDialogue.java index f364c0dad..cdf4bf630 100644 --- a/Server/src/main/java/core/game/content/dialogue/IcyCavernDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/IcyCavernDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/dialogue/JeffDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/JeffDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/JeffDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/JeffDialogue.java index 959729dd2..22d40009b 100644 --- a/Server/src/main/java/core/game/content/dialogue/JeffDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/JeffDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LakkiDwarfDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/LakkiDwarfDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/LakkiDwarfDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/LakkiDwarfDialogue.java index 0b607d66b..96332b5f0 100644 --- a/Server/src/main/java/core/game/content/dialogue/LakkiDwarfDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/LakkiDwarfDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/dialogue/MasterCrafterDialogue.kt b/Server/src/main/content/region/asgarnia/dialogue/MasterCrafterDialogue.kt new file mode 100644 index 000000000..c74769cb8 --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dialogue/MasterCrafterDialogue.kt @@ -0,0 +1,68 @@ +package content.region.asgarnia.dialogue + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.skill.Skills +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class MasterCrafterDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + var CAPE = Items.CRAFTING_CAPE_9780 + var COIN = Items.COINS_995 + + override fun newInstance(player: Player) : core.game.dialogue.DialoguePlugin { + return MasterCrafterDialogue(player) + } + + override fun open(vararg args: Any?) : Boolean { + npc = args[0] as NPC + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int) : Boolean { + when(stage) { + 0 -> if(hasLevelStat(player, Skills.CRAFTING, 99)) { + player(core.game.dialogue.FacialExpression.ASKING, "Hey, could I buy a Skillcape of Crafting?").also{ stage = 10 } + } else { + player(core.game.dialogue.FacialExpression.ASKING,"Hey, what is that cape you're wearing? I don't recognize it.").also { stage++ } + } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "This? This is a Skillcape of Crafting. It is a symbol of my ability " + + "and standing here in the Crafting Guild. If you should ever achieve level 99 Crafting come and talk to me " + + "and we'll see if we can sort you out with one.").also{ stage = END_DIALOGUE } + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Certainly! Right after you pay me 99000 coins.").also{ stage++ } + 11 -> options("Okay, here you go.", "No thanks.").also{ stage++ } + 12 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Okay, here you go.").also{ stage++ } + 2 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "No, thanks.").also{ stage = END_DIALOGUE } + } + 13 -> if(inInventory(player, COIN, 99000)) { + removeItem(player, Item(COIN, 99000), Container.INVENTORY) + addItem(player, CAPE, 1) + npcl(core.game.dialogue.FacialExpression.HAPPY, "There you go! Enjoy.").also{ stage = END_DIALOGUE } + } else { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You don't have enough coins for a cape.").also{ stage = END_DIALOGUE } + } + 20 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Where's your brown apron? You can't come in here unless you're wearing one.").also{ stage++ } + 21 -> player(core.game.dialogue.FacialExpression.HALF_GUILTY, "Err... I haven't got one.").also{ stage = END_DIALOGUE } + } + return true + } + + override fun getIds() : IntArray { + return intArrayOf(NPCs.MASTER_CRAFTER_805) + } + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/NarfsDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/NarfsDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/NarfsDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/NarfsDialogue.java index 7a3f4258c..30659ab3d 100644 --- a/Server/src/main/java/core/game/content/dialogue/NarfsDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/NarfsDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/OracleDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/OracleDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/OracleDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/OracleDialogue.java index 95d4748f9..a4a58570c 100644 --- a/Server/src/main/java/core/game/content/dialogue/OracleDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/OracleDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/RustyDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/RustyDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/RustyDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/RustyDialogue.java index 8d9bbdf37..82d8d60c1 100644 --- a/Server/src/main/java/core/game/content/dialogue/RustyDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/RustyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/dialogue/TannerDialogue.kt b/Server/src/main/content/region/asgarnia/dialogue/TannerDialogue.kt new file mode 100644 index 000000000..d48680f3f --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dialogue/TannerDialogue.kt @@ -0,0 +1,53 @@ +package content.region.asgarnia.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class TannerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun newInstance(player: Player) : core.game.dialogue.DialoguePlugin { + return TannerDialogue(player) + } + + override fun open(vararg args: Any?) : Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Greetings friend. I am a manufacturer of leather.") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int) : Boolean { + when(stage) { + 0 -> options("Can I buy some leather then?", "Leather is rather weak stuff.").also{ stage++ } + 1 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING,"Can I buy some leather then?").also{ stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Leather is rather weak stuff.").also { stage = 20 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Certainly!").also { stage = END_DIALOGUE }.also{ npc.openShop(player) } + + 20 -> npcl(core.game.dialogue.FacialExpression.NOD_YES, "Normal leather may be quite weak, but it's very cheap - I " + + "make it from cowhides for only 1 gp per hide - and it's so easy to craft that anyone can work with it.").also{ stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Alternatively you could try hard leather. It's not so easy " + + "to craft, but I only charge 3 gp per cowhide to prepare it, and it makes much sturdier armour.").also{ stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I can also tan snake hides and dragonhides, suitable for crafting" + + "into the highest quality armour for rangers.").also{ stage++ } + 23 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Thanks, I'll bear it in mind.").also { stage = END_DIALOGUE } + } + return true + } + override fun getIds() : IntArray { + return intArrayOf(NPCs.TANNER_804) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/asgarnia/dialogue/TheDoorDialogues.kt b/Server/src/main/content/region/asgarnia/dialogue/TheDoorDialogues.kt new file mode 100644 index 000000000..a540c4aac --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dialogue/TheDoorDialogues.kt @@ -0,0 +1,32 @@ +package content.region.asgarnia.dialogue + +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import org.rs09.consts.NPCs +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +class TheDoorDialogues(val it: Int) : DialogueFile() { + override fun handle(interfaceId: Int, buttonId: Int) { + npc = NPC(NPCs.MASTER_CRAFTER_805) + when(it) { + 0 -> when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Welcome to the Guild of Master craftsmen.").also{ stage = END_DIALOGUE } + } + 1 -> when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.ASKING, "Where's your brown apron? You can't come in here unless you're wearing one.").also{ stage++ } + 1 -> player(core.game.dialogue.FacialExpression.SAD, "Err... I haven't got one.").also { stage = END_DIALOGUE } + } + 2 -> when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, only experienced crafters are allowed in here. You must be level 40 or above to enter.").also{ stage = END_DIALOGUE } + } + } + + } + + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/ThuroDialogue.java b/Server/src/main/content/region/asgarnia/dialogue/ThuroDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/ThuroDialogue.java rename to Server/src/main/content/region/asgarnia/dialogue/ThuroDialogue.java index 1af14ae17..761c0977c 100644 --- a/Server/src/main/java/core/game/content/dialogue/ThuroDialogue.java +++ b/Server/src/main/content/region/asgarnia/dialogue/ThuroDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/dialogue/ZandarHorfyreDialogue.kt b/Server/src/main/content/region/asgarnia/dialogue/ZandarHorfyreDialogue.kt new file mode 100644 index 000000000..d52161633 --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dialogue/ZandarHorfyreDialogue.kt @@ -0,0 +1,53 @@ +package content.region.asgarnia.dialogue + +import core.api.teleport +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.TeleportManager +import core.game.world.map.Location +import core.plugin.Initializable +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ +@Initializable +class ZandarHorfyreDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun newInstance(player: Player) : core.game.dialogue.DialoguePlugin { + return ZandarHorfyreDialogue(player) + } + + override fun open(vararg args: Any?) : Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.HALF_THINKING,"Who are you?") + stage = -1 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int) : Boolean { + when (stage) { + -1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"My name is Zandar Horfyre, and you ${ player.name } are trespassing in my tower, not to mention attacking my students! I thank you to leave immediately!").also{ stage++ } + 0 -> options("Ok, I was going anyway.", "No, I think I'll stay for a bit.").also{ stage++ } + 1 -> when(buttonId) { + 1 -> player("Ok, I was going anyway.").also{ stage = 10 } + 2 -> player("No, I think I'll stay for a bit.").also{ stage = 20 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Good! And don't forget to close the door behind you!").also{ stage++ } + 11 -> stage = END_DIALOGUE + + 20 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Actually, that wasn't an invitation. I've tried being polite, now we'll do it the hard way!").also{ teleport(player, Location.create(3217, 3177, 0), TeleportManager.TeleportType.INSTANT) }.also{ stage++ } + 21 -> player(core.game.dialogue.FacialExpression.ANGRY, "Zamorak curse that mage!").also{ stage++ } + 22 -> player(core.game.dialogue.FacialExpression.LAUGH, "Actually, I guess he already has!").also{ stage++ } + 23 -> end() + } + return true + } + + override fun getIds() : IntArray { + return intArrayOf(3308) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrogoDialogue.kt b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrogoDialogue.kt new file mode 100644 index 000000000..b51c91575 --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrogoDialogue.kt @@ -0,0 +1,48 @@ +package content.region.asgarnia.dwarfmine.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DrogoDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"'Ello. Welcome to my Mining shop, friend.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Do you want to trade?", "Hello, shorty.", "Why don't you ever restock ores and bars?").also { stage++ } + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Do you want to trade?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello, shorty.").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Why don't you ever restock ores and bars?").also { stage = 30 } + } + + 10 -> end().also { npc.openShop(player) } + 20 -> npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"I may be short, but at least I've got manners.").also { stage = 99 } + 30 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"The only ores and bars I sell are those sold to me.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DrogoDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DROGO_DWARF_579) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/DrokarDialogue.java b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrokarDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/DrokarDialogue.java rename to Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrokarDialogue.java index 19349d3ea..9bb56732b 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrokarDialogue.java +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DrokarDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dwarfmine.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DwarfShopDialogue.java b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarfShopDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/DwarfShopDialogue.java rename to Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarfShopDialogue.java index 96c24987c..780694907 100644 --- a/Server/src/main/java/core/game/content/dialogue/DwarfShopDialogue.java +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarfShopDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dwarfmine.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarvenMineGuardDialogue.kt b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarvenMineGuardDialogue.kt new file mode 100644 index 000000000..e5822b72c --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/DwarvenMineGuardDialogue.kt @@ -0,0 +1,44 @@ +package content.region.asgarnia.dwarfmine.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DwarvenMineGuardDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Don't distract me while I'm on duty! This mine has to be protected!").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What's going to attack a mine?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Goblins! They wander everywhere, attacking anyone they think is small enough to be an easy victim. We need more cannons to fight them off properly.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Well, I've done my bit to help with that.").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Yes, I heard. Now please let me get on with my guard duties.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, I'll leave you alone now.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DwarvenMineGuardDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GUARD_206) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/HuraDialogue.java b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/HuraDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/HuraDialogue.java rename to Server/src/main/content/region/asgarnia/dwarfmine/dialogue/HuraDialogue.java index 09ffe1f16..41e01ecd1 100644 --- a/Server/src/main/java/core/game/content/dialogue/HuraDialogue.java +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/HuraDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dwarfmine.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MiningSkillCapeDwarfDialogue.java b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/MiningSkillCapeDwarfDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/MiningSkillCapeDwarfDialogue.java rename to Server/src/main/content/region/asgarnia/dwarfmine/dialogue/MiningSkillCapeDwarfDialogue.java index 779bc5ab1..b82f8f618 100644 --- a/Server/src/main/java/core/game/content/dialogue/MiningSkillCapeDwarfDialogue.java +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/MiningSkillCapeDwarfDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dwarfmine.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/NurmofDialogue.kt b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/NurmofDialogue.kt new file mode 100644 index 000000000..de5eb0f6c --- /dev/null +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/NurmofDialogue.kt @@ -0,0 +1,47 @@ +package content.region.asgarnia.dwarfmine.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class NurmofDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"Greetings and welcome to my pickaxe shop. Do you want to buy my premium quality pickaxes?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Yes, please.", "No, thank you.", "Are your pickaxes better than other pickaxes, then?").also { stage++ } + + 1 -> when (buttonId) { + 1 -> end().also { npc.openShop(player) } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thank you.").also { stage = 99 } + 3 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Are your pickaxes better than other pickaxes, then?").also { stage = 10 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"Of course they are! My pickaxes are made of higher grade metal than your ordinary bronze pickaxes, allowing you to mine ore just that little bit faster.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return NurmofDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.NURMOF_594) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/RoladDialogue.java b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/RoladDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/RoladDialogue.java rename to Server/src/main/content/region/asgarnia/dwarfmine/dialogue/RoladDialogue.java index 55bb9a641..b59a9b30a 100644 --- a/Server/src/main/java/core/game/content/dialogue/RoladDialogue.java +++ b/Server/src/main/content/region/asgarnia/dwarfmine/dialogue/RoladDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.dwarfmine.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/falador/dialogue/AmbassadorSpanfippleDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/AmbassadorSpanfippleDialogue.kt new file mode 100644 index 000000000..93a574e0c --- /dev/null +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/AmbassadorSpanfippleDialogue.kt @@ -0,0 +1,62 @@ +package content.region.asgarnia.falador.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + + +/** + * @author qmqz + */ + +@Initializable +class AmbassadorSpanfippleDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"It's all very white round here, isn't it?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + player(core.game.dialogue.FacialExpression.THINKING, "Well, it is the White Knights' Castle.").also { stage++ } + } + + 1 -> { + npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT, "I think it would all look better in pink. At least then I wouldn't be squinting all the time.").also { stage++ } + } + + 2 -> { + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, but then they'd have to become the Pink Knights. I think they'd have problems recruiting then.").also { stage++ } + } + + 3 -> { + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "You're probably right. Maybe brown, then.").also { stage++ } + } + + 4 -> { + player(core.game.dialogue.FacialExpression.HALF_THINKING, "I think that may be worse...").also { stage++ } + } + + 5 -> { + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Bah, humans have no sense of style...").also { stage = 99 } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AmbassadorSpanfippleDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.AMBASSADOR_SPANFIPPLE_4581) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/ApprenticeWorkmanDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/ApprenticeWorkmanDialogue.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/ApprenticeWorkmanDialogue.kt rename to Server/src/main/content/region/asgarnia/falador/dialogue/ApprenticeWorkmanDialogue.kt index 197313549..356bf0600 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/ApprenticeWorkmanDialogue.kt +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/ApprenticeWorkmanDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.falador +package content.region.asgarnia.falador.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,29 +12,29 @@ import org.rs09.consts.NPCs */ @Initializable -class ApprenticeWorkmanDialogue(player: Player? = null) : DialoguePlugin(player){ +class ApprenticeWorkmanDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hiya.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hiya.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> { - npc(FacialExpression.FRIENDLY, "Sorry, I haven't got time to chat.", + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry, I haven't got time to chat.", "We've only just finished a collossal order of furniture", "for the Varrock area, and already there's more work", "coming in.").also { stage++ } } 1 -> { - player(FacialExpression.ASKING, "Varrock?").also { stage++ } + player(core.game.dialogue.FacialExpression.ASKING, "Varrock?").also { stage++ } } 2 -> { - npc(FacialExpression.FRIENDLY, "Yeah, the Council's had it redecorated.").also { stage++ } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Yeah, the Council's had it redecorated.").also { stage++ } } 3 -> { @@ -42,11 +42,11 @@ class ApprenticeWorkmanDialogue(player: Player? = null) : DialoguePlugin(player) } 4 -> { - npc(FacialExpression.FRIENDLY, "You'd better let me get on with my work.").also { stage++ } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "You'd better let me get on with my work.").also { stage++ } } 5 -> { - player(FacialExpression.FRIENDLY, "Ok, bye.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Ok, bye.").also { stage = 99 } } 99 -> end() @@ -54,7 +54,7 @@ class ApprenticeWorkmanDialogue(player: Player? = null) : DialoguePlugin(player) return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ApprenticeWorkmanDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/CassieDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/CassieDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/CassieDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/CassieDialogue.java index 664f01b98..45178296b 100644 --- a/Server/src/main/java/core/game/content/dialogue/CassieDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/CassieDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ChemistDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/ChemistDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/ChemistDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/ChemistDialogue.java index b063bb7a1..b20906efd 100644 --- a/Server/src/main/java/core/game/content/dialogue/ChemistDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/ChemistDialogue.java @@ -1,9 +1,10 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.item.GroundItemManager; import core.plugin.Initializable; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/DoricDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/DoricDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/DoricDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/DoricDialogue.java index c5601462a..462a1c2e7 100644 --- a/Server/src/main/java/core/game/content/dialogue/DoricDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/DoricDialogue.java @@ -1,12 +1,14 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the dialogue plugin used for the doric npc. diff --git a/Server/src/main/content/region/asgarnia/falador/dialogue/DrunkenManDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/DrunkenManDialogue.kt new file mode 100644 index 000000000..7f0528177 --- /dev/null +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/DrunkenManDialogue.kt @@ -0,0 +1,66 @@ +package content.region.asgarnia.falador.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DrunkenManDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + npc(core.game.dialogue.FacialExpression.DRUNK, "... whassup?").also { stage++ } + } + + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Are you alright?").also { stage++ } + } + + 2 -> { + npc(core.game.dialogue.FacialExpression.DRUNK, "... see... two of you... why there two of you?").also { stage++ } + } + + 3 -> { + player(core.game.dialogue.FacialExpression.FRIENDLY, "There's only one of me, friend.").also { stage++ } + } + + 4 -> { + npc(core.game.dialogue.FacialExpression.DRUNK, "... no, two of you... you can't count...", + "... maybe you drunk too much...").also { stage++ } + } + + 5 -> { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Whatever you say, friend.").also { stage++ } + } + + 6 -> { + npc(core.game.dialogue.FacialExpression.DRUNK, "... giant hairy cabbages...").also { stage = 99 } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DrunkenManDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DRUNKEN_MAN_3222) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/FaladorGardenerDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorGardenerDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/FaladorGardenerDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FaladorGardenerDialogue.java index 1f215517d..b2fb3cf0b 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaladorGardenerDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorGardenerDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FaladorManHouseDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorManHouseDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/FaladorManHouseDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FaladorManHouseDialogue.java index 59ecfe94c..799e25060 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaladorManHouseDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorManHouseDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FaladorShopKeeperDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorShopKeeperDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/FaladorShopKeeperDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FaladorShopKeeperDialogue.java index d975af5b6..6a5c3f949 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaladorShopKeeperDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorShopKeeperDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FaladorSquireDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorSquireDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/FaladorSquireDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FaladorSquireDialogue.java index 961eb5c4d..58c610f43 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaladorSquireDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorSquireDialogue.java @@ -1,14 +1,15 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the falador squire dialogue plugin. diff --git a/Server/src/main/java/core/game/content/dialogue/FaladorWomenParkDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorWomenParkDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/FaladorWomenParkDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FaladorWomenParkDialogue.java index 3fd187da8..d65092532 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaladorWomenParkDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FaladorWomenParkDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FlynnDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/FlynnDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/FlynnDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/FlynnDialogue.java index 6ae2ed85e..c83b0b189 100644 --- a/Server/src/main/java/core/game/content/dialogue/FlynnDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/FlynnDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HairdresserDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/HairdresserDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/HairdresserDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/HairdresserDialogue.java index 4d9d3e948..362b12403 100644 --- a/Server/src/main/java/core/game/content/dialogue/HairdresserDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/HairdresserDialogue.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; import core.game.component.Component; import core.game.container.impl.EquipmentContainer; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/HerquinDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/HerquinDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/HerquinDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/HerquinDialogue.java index 5a5e6c98f..3d49c7126 100644 --- a/Server/src/main/java/core/game/content/dialogue/HerquinDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/HerquinDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LucyPartyRoomDialoguePlugin.java b/Server/src/main/content/region/asgarnia/falador/dialogue/LucyPartyRoomDialoguePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/LucyPartyRoomDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/LucyPartyRoomDialoguePlugin.java index f0fc88d0a..663f0de78 100644 --- a/Server/src/main/java/core/game/content/dialogue/LucyPartyRoomDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/LucyPartyRoomDialoguePlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/MakeOverMageDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/MakeOverMageDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/MakeOverMageDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/MakeOverMageDialogue.java index 194fa2f90..ee56b343e 100644 --- a/Server/src/main/java/core/game/content/dialogue/MakeOverMageDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/MakeOverMageDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/MiningGuildDwarf.java b/Server/src/main/content/region/asgarnia/falador/dialogue/MiningGuildDwarf.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/MiningGuildDwarf.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/MiningGuildDwarf.java index 36906db41..b70e95e7c 100644 --- a/Server/src/main/java/core/game/content/dialogue/MiningGuildDwarf.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/MiningGuildDwarf.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/PartyPeteDialoguePlugin.java b/Server/src/main/content/region/asgarnia/falador/dialogue/PartyPeteDialoguePlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/PartyPeteDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/PartyPeteDialoguePlugin.java index c42a8e77a..02790abad 100644 --- a/Server/src/main/java/core/game/content/dialogue/PartyPeteDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/PartyPeteDialoguePlugin.java @@ -1,8 +1,10 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/RisingSunInnBartenderDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/RisingSunInnBartenderDialogue.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/RisingSunInnBartenderDialogue.kt rename to Server/src/main/content/region/asgarnia/falador/dialogue/RisingSunInnBartenderDialogue.kt index 1a69fec73..43b4b1150 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/RisingSunInnBartenderDialogue.kt +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/RisingSunInnBartenderDialogue.kt @@ -1,18 +1,17 @@ -package rs09.game.content.dialogue.region.falador +package content.region.asgarnia.falador.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Handles dialogue for Kaylee and Emily @@ -21,15 +20,15 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class RisingSunInnBartenderDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player): DialoguePlugin +class RisingSunInnBartenderDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin = RisingSunInnBartenderDialogue(player) override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Hi! What can I get you?" ) @@ -40,25 +39,25 @@ class RisingSunInnBartenderDialogue(player: Player? = null) : DialoguePlugin(pla when (stage) { START_DIALOGUE -> if (hasAnyBeerGlasses()) { showTopics( - Topic(FacialExpression.HALF_ASKING, "What ales are you serving?", 10), - Topic(FacialExpression.HALF_GUILTY, "I've got some beer glasses...", 20) + Topic(core.game.dialogue.FacialExpression.HALF_ASKING, "What ales are you serving?", 10), + Topic(core.game.dialogue.FacialExpression.HALF_GUILTY, "I've got some beer glasses...", 20) ) } else { - playerl(FacialExpression.HALF_ASKING, "What ales are you serving?") + playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What ales are you serving?") .also { stage = 10 } } 10 -> npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, we've got Asgarnian Ale, Wizard's Mind Bomb and Dwarven Stout. " + "Each for only 3 coins." ).also { stage++ } 11 -> showTopics( - Topic(FacialExpression.HAPPY, "One Asgarnian Ale, please.", 12), - Topic(FacialExpression.HAPPY, "I'll try the Mind Bomb.", 13), - Topic(FacialExpression.HALF_ASKING, "Can I have a Dwarven Stout?", 14), - Topic(FacialExpression.NEUTRAL, "I don't feel like any of those.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.HAPPY, "One Asgarnian Ale, please.", 12), + Topic(core.game.dialogue.FacialExpression.HAPPY, "I'll try the Mind Bomb.", 13), + Topic(core.game.dialogue.FacialExpression.HALF_ASKING, "Can I have a Dwarven Stout?", 14), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I don't feel like any of those.", END_DIALOGUE) ) 12 -> if (ensureHasMoney()) { @@ -75,27 +74,27 @@ class RisingSunInnBartenderDialogue(player: Player? = null) : DialoguePlugin(pla 20 -> { npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh, we will buy those from you if you're interested. We offer 2 coins for each glass." ).also { stage ++ } } 21 -> showTopics( - Topic(FacialExpression.HAPPY, "Yes, please!", 22), - Topic(FacialExpression.NEUTRAL, "No thanks, I like my empty beer glasses.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.HAPPY, "Yes, please!", 22), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "No thanks, I like my empty beer glasses.", END_DIALOGUE) ) 22 -> { trySellAllBeerGlasses() npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "There you go!" ).also { stage = END_DIALOGUE } } 30 -> { - playerl(FacialExpression.FRIENDLY, "Thanks, ${npc.name}.") + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks, ${npc.name}.") .also { stage = END_DIALOGUE } } } @@ -110,7 +109,7 @@ class RisingSunInnBartenderDialogue(player: Player? = null) : DialoguePlugin(pla private fun ensureHasMoney(): Boolean { if (!inInventory(player, Items.COINS_995, 3)) { - npcl(FacialExpression.ANGRY, "No freeloaders!") + npcl(core.game.dialogue.FacialExpression.ANGRY, "No freeloaders!") .also { sendMessage(player, "You don't have enough money to buy that.") stage = END_DIALOGUE diff --git a/Server/src/main/java/core/game/content/dialogue/SarahFarmingPlugin.java b/Server/src/main/content/region/asgarnia/falador/dialogue/SarahFarmingPlugin.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/SarahFarmingPlugin.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/SarahFarmingPlugin.java index b657694e9..e3c33b19f 100644 --- a/Server/src/main/java/core/game/content/dialogue/SarahFarmingPlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/SarahFarmingPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SirReniteeDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/SirReniteeDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/SirReniteeDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/SirReniteeDialogue.java index e8fb7db64..19b19214e 100644 --- a/Server/src/main/java/core/game/content/dialogue/SirReniteeDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/SirReniteeDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; import core.Util; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import org.rs09.consts.Items; import core.game.node.entity.npc.NPC; @@ -9,7 +11,7 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.tools.RandomFunction; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.construction.CrestType; +import content.global.skill.construction.CrestType; /** * Represents the dialogue to handle Sir Renitee diff --git a/Server/src/main/java/core/game/content/dialogue/SirTiffyCashienDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/SirTiffyCashienDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/SirTiffyCashienDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/SirTiffyCashienDialogue.java index 741beb800..0332c725b 100644 --- a/Server/src/main/java/core/game/content/dialogue/SirTiffyCashienDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/SirTiffyCashienDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SirVyvinDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/SirVyvinDialogue.java similarity index 87% rename from Server/src/main/java/core/game/content/dialogue/SirVyvinDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/SirVyvinDialogue.java index 8e0695de9..b593c1259 100644 --- a/Server/src/main/java/core/game/content/dialogue/SirVyvinDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/SirVyvinDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/WayneDialogue.java b/Server/src/main/content/region/asgarnia/falador/dialogue/WayneDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/WayneDialogue.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/WayneDialogue.java index 857b414f1..49337c22e 100644 --- a/Server/src/main/java/core/game/content/dialogue/WayneDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/WayneDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/WhiteKnightDialoguePlugin.java b/Server/src/main/content/region/asgarnia/falador/dialogue/WhiteKnightDialoguePlugin.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/WhiteKnightDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/WhiteKnightDialoguePlugin.java index ed4653eac..300edab67 100644 --- a/Server/src/main/java/core/game/content/dialogue/WhiteKnightDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/WhiteKnightDialoguePlugin.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.dialogue; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/falador/dialogue/WorkmanDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/WorkmanDialogue.kt new file mode 100644 index 000000000..26cbd5feb --- /dev/null +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/WorkmanDialogue.kt @@ -0,0 +1,49 @@ +package content.region.asgarnia.falador.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs.WORKMAN_3236 + +/** + * @author qmqz + */ + +@Initializable +class WorkmanDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hiya.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "What do you want? I've got work to do!").also { stage++ } + } + + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Can you teach me anything?").also { stage++ } + } + + 2 -> { + npcl(core.game.dialogue.FacialExpression.ANNOYED, "No - I've got one lousy apprentice already, and that's quite enough hassle! Go away!").also { stage = 99 } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return WorkmanDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(WORKMAN_3236) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WysonTheGardenerDialogue.kt b/Server/src/main/content/region/asgarnia/falador/dialogue/WysonTheGardenerDialogue.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WysonTheGardenerDialogue.kt rename to Server/src/main/content/region/asgarnia/falador/dialogue/WysonTheGardenerDialogue.kt index 8d9478ac1..4d42d5d9f 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WysonTheGardenerDialogue.kt +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/WysonTheGardenerDialogue.kt @@ -1,7 +1,6 @@ -package rs09.game.content.dialogue.region.falador +package content.region.asgarnia.falador.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.global.BirdNest +import content.data.tables.BirdNest import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType @@ -9,7 +8,7 @@ import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.node.entity.player.link.diary.DiaryLevel +import core.game.diary.DiaryLevel /** * Represents the Wyson the gardener dialogue. @@ -17,7 +16,7 @@ import rs09.game.node.entity.player.link.diary.DiaryLevel * @version 1.0 */ @Initializable -class WysonTheGardenerDialogue : DialoguePlugin { +class WysonTheGardenerDialogue : core.game.dialogue.DialoguePlugin { /** * If its a bird nest reward. */ @@ -38,7 +37,7 @@ class WysonTheGardenerDialogue : DialoguePlugin { */ constructor(player: Player?) : super(player) {} - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return WysonTheGardenerDialogue(player) } diff --git a/Server/src/main/java/core/game/node/entity/npc/city/falador/gardensupplier.java b/Server/src/main/content/region/asgarnia/falador/dialogue/gardensupplier.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/city/falador/gardensupplier.java rename to Server/src/main/content/region/asgarnia/falador/dialogue/gardensupplier.java index 4162fe4ff..e3dfa2795 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/falador/gardensupplier.java +++ b/Server/src/main/content/region/asgarnia/falador/dialogue/gardensupplier.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.city.falador; +package content.region.asgarnia.falador.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FaladorAchievementDiary.kt b/Server/src/main/content/region/asgarnia/falador/diary/FaladorAchievementDiary.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FaladorAchievementDiary.kt rename to Server/src/main/content/region/asgarnia/falador/diary/FaladorAchievementDiary.kt index ab6c24444..bdf287db7 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FaladorAchievementDiary.kt +++ b/Server/src/main/content/region/asgarnia/falador/diary/FaladorAchievementDiary.kt @@ -1,19 +1,19 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.asgarnia.falador.diary -import api.areEquipped -import api.events.* -import api.inBorders +import core.api.areEquipped +import core.api.inBorders import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.content.dialogue.region.falador.RisingSunInnBartenderDialogue -import rs09.game.interaction.inter.FairyRing -import rs09.game.node.entity.player.link.diary.AreaDiaryTask -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel +import content.region.asgarnia.falador.dialogue.RisingSunInnBartenderDialogue +import content.global.handlers.iface.FairyRing +import core.game.diary.AreaDiaryTask +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel +import core.game.event.* class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { companion object { @@ -115,19 +115,19 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { AreaDiaryTask( WHITE_KNIGHTS_CASTLE_ROOF_AREA, DiaryLevel.EASY, - EasyTasks.WHITE_KNIGHTS_CASTLE_CLIMB_TO_TOP + EasyTasks.WHITE_KNIGHTS_CASTLE_CLIMB_TO_TOP ), AreaDiaryTask( MINING_GUILD_AREA, DiaryLevel.HARD, - HardTasks.ENTER_MINING_GUILD + HardTasks.ENTER_MINING_GUILD ), AreaDiaryTask( DARK_WIZARDS_TOWER_ROOF_AREA, DiaryLevel.HARD, - HardTasks.DARK_WIZARDS_TOWER_ASCEND_IN_FULL_PROSELYTE_ARMOR, + HardTasks.DARK_WIZARDS_TOWER_ASCEND_IN_FULL_PROSELYTE_ARMOR, ) { player -> areEquipped(player, *PROSELYTE_FULL_ARMOR_MALE) || areEquipped(player, *PROSELYTE_FULL_ARMOR_FEMALE) @@ -141,7 +141,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.EASY, - EasyTasks.POP_PARTY_BALLOON + EasyTasks.POP_PARTY_BALLOON ) } } @@ -161,7 +161,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.EASY, - EasyTasks.RISING_SUN_BUY_A_STATBOOST + EasyTasks.RISING_SUN_BUY_A_STATBOOST ) } } @@ -176,7 +176,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.HARD, - HardTasks.CUT_DOWN_GROWN_YEW_OR_MAGIC_TREE + HardTasks.CUT_DOWN_GROWN_YEW_OR_MAGIC_TREE ) } } @@ -190,7 +190,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.EASY, - EasyTasks.PARK_KILL_A_DUCK + EasyTasks.PARK_KILL_A_DUCK ) } @@ -198,7 +198,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.HARD, - HardTasks.ICE_DUNGEON_KILL_SKELETAL_WYVERN + HardTasks.ICE_DUNGEON_KILL_SKELETAL_WYVERN ) } } @@ -210,7 +210,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { fulfillTaskRequirement( player, DiaryLevel.EASY, - EasyTasks.WAYNE_BUY_AND_WEAR_BLACK_CHAINBODY, + EasyTasks.WAYNE_BUY_AND_WEAR_BLACK_CHAINBODY, ATTRIBUTE_BLACK_CHAINBODY_PURCHASED ) } @@ -219,7 +219,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.EASY, - EasyTasks.PORT_SARIM_SARAH_BUY_FARMING_AMULET + EasyTasks.PORT_SARIM_SARAH_BUY_FARMING_AMULET ) } } @@ -232,7 +232,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.EASY, - EasyTasks.WAYNE_BUY_AND_WEAR_BLACK_CHAINBODY + EasyTasks.WAYNE_BUY_AND_WEAR_BLACK_CHAINBODY ) } } @@ -244,7 +244,7 @@ class FaladorAchievementDiary : DiaryEventHookBase(DiaryType.FALADOR) { finishTask( player, DiaryLevel.HARD, - HardTasks.DIAL_FAIRY_RING_MUDSKIPPER_POINT + HardTasks.DIAL_FAIRY_RING_MUDSKIPPER_POINT ) } } diff --git a/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java b/Server/src/main/content/region/asgarnia/falador/handlers/FaladorNodePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java rename to Server/src/main/content/region/asgarnia/falador/handlers/FaladorNodePlugin.java index 362942606..3bb521e84 100644 --- a/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/FaladorNodePlugin.java @@ -1,9 +1,8 @@ -package core.game.interaction.city; +package content.region.asgarnia.falador.handlers; -import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; @@ -16,7 +15,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/GiantMoleNPC.java b/Server/src/main/content/region/asgarnia/falador/handlers/GiantMoleNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/bosses/GiantMoleNPC.java rename to Server/src/main/content/region/asgarnia/falador/handlers/GiantMoleNPC.java index b3e319508..256270b58 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/GiantMoleNPC.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/GiantMoleNPC.java @@ -1,13 +1,13 @@ -package core.game.node.entity.npc.bosses; +package content.region.asgarnia.falador.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.global.BossKillCounter; -import core.game.content.global.LightSource; -import core.game.content.global.action.DigAction; -import core.game.content.global.action.DigSpadeHandler; +import content.data.BossKillCounter; +import content.data.LightSource; +import core.game.global.action.DigAction; +import core.game.global.action.DigSpadeHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; @@ -20,7 +20,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java b/Server/src/main/content/region/asgarnia/falador/handlers/MiningGuildPlugin.java similarity index 89% rename from Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java rename to Server/src/main/content/region/asgarnia/falador/handlers/MiningGuildPlugin.java index 1a4d0358b..39678d7f9 100644 --- a/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/MiningGuildPlugin.java @@ -1,9 +1,9 @@ -package core.game.content.activity.guild; +package content.region.asgarnia.falador.handlers; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -15,7 +15,7 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import static api.ContentAPIKt.getDynLevel; +import static core.api.ContentAPIKt.getDynLevel; /** * Represents the plugin used for the mining guild. diff --git a/Server/src/main/java/core/game/interaction/object/WantedPoster.java b/Server/src/main/content/region/asgarnia/falador/handlers/WantedPoster.java similarity index 93% rename from Server/src/main/java/core/game/interaction/object/WantedPoster.java rename to Server/src/main/content/region/asgarnia/falador/handlers/WantedPoster.java index 4325eebfa..67bd9780d 100644 --- a/Server/src/main/java/core/game/interaction/object/WantedPoster.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/WantedPoster.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.falador.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java rename to Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java index af26ab59e..7c4aa2ecb 100644 --- a/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/BalloonManager.java @@ -1,4 +1,4 @@ -package core.game.content.activity.partyroom; +package content.region.asgarnia.falador.handlers.partyroom; import java.util.ArrayList; import java.util.List; @@ -8,14 +8,13 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/activity/partyroom/ChestViewer.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/partyroom/ChestViewer.java rename to Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java index 4763e6f23..ab5ce8045 100644 --- a/Server/src/main/java/core/game/content/activity/partyroom/ChestViewer.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/ChestViewer.java @@ -1,4 +1,4 @@ -package core.game.content.activity.partyroom; +package content.region.asgarnia.falador.handlers.partyroom; import core.game.component.CloseEvent; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/DropPartyLeverOptionPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java rename to Server/src/main/content/region/asgarnia/falador/handlers/partyroom/DropPartyLeverOptionPlugin.java index f8431a5e5..fb0e9d992 100644 --- a/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/DropPartyLeverOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.falador.handlers.partyroom; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/PartyRoomPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java rename to Server/src/main/content/region/asgarnia/falador/handlers/partyroom/PartyRoomPlugin.java index 0f33e8836..16ef90a5f 100644 --- a/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/handlers/partyroom/PartyRoomPlugin.java @@ -1,18 +1,18 @@ -package core.game.content.activity.partyroom; +package content.region.asgarnia.falador.handlers.partyroom; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.container.Container; import core.game.container.ContainerEvent; -import core.game.content.dialogue.DialogueAction; +import core.game.dialogue.DialogueAction; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -22,12 +22,12 @@ import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the party room. diff --git a/Server/src/main/java/core/game/content/quest/free/DoricsQuest.java b/Server/src/main/content/region/asgarnia/falador/quest/DoricsQuest.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/DoricsQuest.java rename to Server/src/main/content/region/asgarnia/falador/quest/DoricsQuest.java index 50d0b6008..7c3130a75 100644 --- a/Server/src/main/java/core/game/content/quest/free/DoricsQuest.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/DoricsQuest.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.asgarnia.falador.quest; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/TheKnightsSword.java b/Server/src/main/content/region/asgarnia/falador/quest/TheKnightsSword.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/TheKnightsSword.java rename to Server/src/main/content/region/asgarnia/falador/quest/TheKnightsSword.java index ff19f2d26..535885464 100644 --- a/Server/src/main/java/core/game/content/quest/free/TheKnightsSword.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/TheKnightsSword.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.asgarnia.falador.quest; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKCabbagePlugin.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKCabbagePlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKCabbagePlugin.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKCabbagePlugin.java index 8faa8ee2d..36684ff28 100644 --- a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKCabbagePlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKCabbagePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.blackknightsfortress; +package content.region.asgarnia.falador.quest.blackknightsfortress; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKFortressPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKFortressPlugin.java index 3311d3adb..33fe3a173 100644 --- a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKFortressPlugin.java @@ -1,18 +1,18 @@ -package core.game.content.quest.free.blackknightsfortress; +package content.region.asgarnia.falador.quest.blackknightsfortress; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/dialogue/BKListenDialogue.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKListenDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/BKListenDialogue.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKListenDialogue.java index 83bf1aa6e..bf1786b24 100644 --- a/Server/src/main/java/core/game/content/dialogue/BKListenDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BKListenDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.quest.blackknightsfortress; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/BlackKnightNPC.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/BlackKnightNPC.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightNPC.java index 3df7c8395..1b38a40f8 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/BlackKnightNPC.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.falador.quest.blackknightsfortress; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BlackKnightsFortress.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightsFortress.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BlackKnightsFortress.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightsFortress.java index 8068ce5e2..6e5da0e7d 100644 --- a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BlackKnightsFortress.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/BlackKnightsFortress.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.blackknightsfortress; +package content.region.asgarnia.falador.quest.blackknightsfortress; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the black knights fortress quest. diff --git a/Server/src/main/java/core/game/content/dialogue/FortressGuardDialogue.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/FortressGuardDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/FortressGuardDialogue.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/FortressGuardDialogue.java index 8cb158113..6f3019f97 100644 --- a/Server/src/main/java/core/game/content/dialogue/FortressGuardDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/FortressGuardDialogue.java @@ -1,8 +1,10 @@ -package core.game.content.dialogue; +package content.region.asgarnia.falador.quest.blackknightsfortress; import java.util.List; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/SirAmikVarzeDialogue.java b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/SirAmikVarzeDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/blackknightsfortress/SirAmikVarzeDialogue.java rename to Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/SirAmikVarzeDialogue.java index 9e7f1ecfc..a07815927 100644 --- a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/SirAmikVarzeDialogue.java +++ b/Server/src/main/content/region/asgarnia/falador/quest/blackknightsfortress/SirAmikVarzeDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.blackknightsfortress; +package content.region.asgarnia.falador.quest.blackknightsfortress; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/GoblinVillageDialogue.java b/Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/GoblinVillageDialogue.java rename to Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageDialogue.java index a69bab074..e28c34fd8 100644 --- a/Server/src/main/java/core/game/content/dialogue/GoblinVillageDialogue.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.goblinvillage.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/GoblinVillageGuardDialogue.java b/Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageGuardDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/GoblinVillageGuardDialogue.java rename to Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageGuardDialogue.java index 4084baee1..0926dc69d 100644 --- a/Server/src/main/java/core/game/content/dialogue/GoblinVillageGuardDialogue.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/dialogue/GoblinVillageGuardDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.goblinvillage.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/GoblinVillageNPC.java b/Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillageNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/other/GoblinVillageNPC.java rename to Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillageNPC.java index 357f6aacf..0c34e38d0 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/GoblinVillageNPC.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillageNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.goblinvillage.handlers; import java.util.List; diff --git a/Server/src/main/java/core/game/interaction/object/GoblinVillagePopulationPlugin.java b/Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillagePopulationPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/GoblinVillagePopulationPlugin.java rename to Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillagePopulationPlugin.java index 63dbdaf14..2a1debd1d 100644 --- a/Server/src/main/java/core/game/interaction/object/GoblinVillagePopulationPlugin.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/handlers/GoblinVillagePopulationPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.goblinvillage.handlers; import java.util.List; diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GDiplomacyCutscene.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GDiplomacyCutscene.java rename to Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java index 14975a07c..1753e0b41 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GDiplomacyCutscene.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GDiplomacyCutscene.java @@ -1,23 +1,23 @@ -package core.game.content.quest.free.goblindiplomacy; +package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; import core.game.component.Component; import core.game.node.entity.player.link.emote.Emotes; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; import core.game.world.map.path.Pathfinder; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; @@ -25,7 +25,7 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.tools.RandomFunction; import core.tools.StringUtils; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; /** * Represents the goblin diplomacy cutscene plugin. diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacy.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacy.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacy.java rename to Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacy.java index 106ae88c6..a3e744b86 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacy.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacy.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.goblindiplomacy; +package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; @@ -6,7 +6,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the demon slayer quest. diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacyPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java rename to Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacyPlugin.java index 8045456c8..a412b1839 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GoblinDiplomacyPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.goblindiplomacy; +package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -10,9 +10,9 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.StringUtils; /** diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubFoot.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubFoot.java rename to Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java index 3b110f9d1..7881e61fc 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubFoot.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubFoot.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.goblindiplomacy; +package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubfootDialogue.java b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubfootDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubfootDialogue.java rename to Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubfootDialogue.java index 021702cb2..0eaed3038 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GrubfootDialogue.java +++ b/Server/src/main/content/region/asgarnia/goblinvillage/quest/goblindiplomacy/GrubfootDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.goblindiplomacy; +package content.region.asgarnia.goblinvillage.quest.goblindiplomacy; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/kotlin/rs09/game/content/activity/guild/crafting/CraftingGuildListeners.kt b/Server/src/main/content/region/asgarnia/handlers/CraftingGuildListeners.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/activity/guild/crafting/CraftingGuildListeners.kt rename to Server/src/main/content/region/asgarnia/handlers/CraftingGuildListeners.kt index 08d7fc5fd..6cad8f839 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/guild/crafting/CraftingGuildListeners.kt +++ b/Server/src/main/content/region/asgarnia/handlers/CraftingGuildListeners.kt @@ -1,14 +1,13 @@ -package rs09.game.content.activity.guild.crafting +package content.region.asgarnia.handlers -import api.* -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.entity.skill.Skills import core.game.world.map.Location import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.content.dialogue.region.craftingguild.TheDoorDialogues -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import content.region.asgarnia.dialogue.TheDoorDialogues +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author bushtail @@ -25,11 +24,11 @@ class CraftingGuildListeners : InteractionListener { if (hasLevelStat(player, Skills.CRAFTING, 40)) { if (inEquipment(player, APRON)) { openDialogue(player, TheDoorDialogues(0)) - DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) return@on true } else if (inEquipment(player, CAPE)) { openDialogue(player, TheDoorDialogues(0)) - DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) return@on true } else { openDialogue(player, TheDoorDialogues(1)) @@ -40,7 +39,7 @@ class CraftingGuildListeners : InteractionListener { return@on false } } else { - DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door.asScenery()) return@on true } } diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/falador/WineOfZamorakInteraction.kt b/Server/src/main/content/region/asgarnia/handlers/WineOfZamorakInteraction.kt similarity index 72% rename from Server/src/main/kotlin/rs09/game/interaction/region/falador/WineOfZamorakInteraction.kt rename to Server/src/main/content/region/asgarnia/handlers/WineOfZamorakInteraction.kt index 1da29cb31..d908028b4 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/falador/WineOfZamorakInteraction.kt +++ b/Server/src/main/content/region/asgarnia/handlers/WineOfZamorakInteraction.kt @@ -1,16 +1,16 @@ -package rs09.game.interaction.region.falador +package content.region.asgarnia.handlers import core.game.node.item.GroundItem import core.game.world.map.RegionManager import org.rs09.consts.Items -import rs09.game.content.global.action.PickupHandler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.global.action.PickupHandler +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class WineOfZamorakInteraction : InteractionListener { override fun defineListeners() { - on(Items.WINE_OF_ZAMORAK_245,IntType.GROUNDITEM,"take"){player, wine -> + on(Items.WINE_OF_ZAMORAK_245, IntType.GROUNDITEM,"take"){ player, wine -> if(player.location.regionId != 11574){ PickupHandler.take(player, wine as GroundItem) return@on true diff --git a/Server/src/main/java/core/game/content/dialogue/AhabDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/AhabDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/AhabDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/AhabDialogue.java index 6d0406266..493bc1973 100644 --- a/Server/src/main/java/core/game/content/dialogue/AhabDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/AhabDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BettyDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/BettyDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/BettyDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/BettyDialogue.java index 00632d34e..4f1196e7d 100644 --- a/Server/src/main/java/core/game/content/dialogue/BettyDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/BettyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GerrantDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/GerrantDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/GerrantDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/GerrantDialogue.java index 7acc2ddc5..391b3e357 100644 --- a/Server/src/main/java/core/game/content/dialogue/GerrantDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/GerrantDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GrumDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/GrumDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/GrumDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/GrumDialogue.java index 8b3ee9e95..1e50ce5e2 100644 --- a/Server/src/main/java/core/game/content/dialogue/GrumDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/GrumDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/JackSeagullDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/JackSeagullDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/JackSeagullDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/JackSeagullDialogue.java index c1bdfb4d1..671e7f482 100644 --- a/Server/src/main/java/core/game/content/dialogue/JackSeagullDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/JackSeagullDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/KlarenseDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/KlarenseDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/KlarenseDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/KlarenseDialogue.java index dc7e3ed95..f12e1a60e 100644 --- a/Server/src/main/java/core/game/content/dialogue/KlarenseDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/KlarenseDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/LongbowBenDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/LongbowBenDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/LongbowBenDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/LongbowBenDialogue.java index 490e05ddd..46cf18c27 100644 --- a/Server/src/main/java/core/game/content/dialogue/LongbowBenDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/LongbowBenDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MonkOfEntranaDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/MonkOfEntranaDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/MonkOfEntranaDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/MonkOfEntranaDialogue.java index 9d94aead0..8b586b36f 100644 --- a/Server/src/main/java/core/game/content/dialogue/MonkOfEntranaDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/MonkOfEntranaDialogue.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; import core.cache.def.impl.ItemDefinition; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/PortSarimBartenderDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBartenderDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/PortSarimBartenderDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBartenderDialogue.java index e3ff6b50b..dbae9fb67 100644 --- a/Server/src/main/java/core/game/content/dialogue/PortSarimBartenderDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBartenderDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/PortSarimBrianDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBrianDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/PortSarimBrianDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBrianDialogue.java index 8c901d24f..72ef74168 100644 --- a/Server/src/main/java/core/game/content/dialogue/PortSarimBrianDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/PortSarimBrianDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/RedbeardFrankDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/RedbeardFrankDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/RedbeardFrankDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/RedbeardFrankDialogue.java index 86fa86ffc..b0653940d 100644 --- a/Server/src/main/java/core/game/content/dialogue/RedbeardFrankDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/RedbeardFrankDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; @@ -9,7 +11,7 @@ import core.game.node.item.GroundItemManager; import core.plugin.Initializable; import core.game.node.item.Item; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** * Represents the dialogue to handle Rebeard Frank. diff --git a/Server/src/main/java/core/game/content/dialogue/TakiDwarfDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/TakiDwarfDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/TakiDwarfDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/TakiDwarfDialogue.java index 509cb5b5c..b55d6efd4 100644 --- a/Server/src/main/java/core/game/content/dialogue/TakiDwarfDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/TakiDwarfDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/WydinDialogue.java b/Server/src/main/content/region/asgarnia/portsarim/dialogue/WydinDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/WydinDialogue.java rename to Server/src/main/content/region/asgarnia/portsarim/dialogue/WydinDialogue.java index 31ff4db81..2530bd98a 100644 --- a/Server/src/main/java/core/game/content/dialogue/WydinDialogue.java +++ b/Server/src/main/content/region/asgarnia/portsarim/dialogue/WydinDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.portsarim.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/city/portsarim/AhabBeerInteraction.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/AhabBeerInteraction.java similarity index 90% rename from Server/src/main/java/core/game/interaction/city/portsarim/AhabBeerInteraction.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/AhabBeerInteraction.java index 556bb6217..57bcdcea1 100644 --- a/Server/src/main/java/core/game/interaction/city/portsarim/AhabBeerInteraction.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/AhabBeerInteraction.java @@ -1,4 +1,4 @@ -package core.game.interaction.city.portsarim; +package content.region.asgarnia.portsarim.handlers; import core.game.interaction.Option; import core.game.interaction.SpecialGroundInteraction; @@ -8,7 +8,7 @@ import core.game.node.entity.player.Player; import core.game.world.map.RegionManager; import org.rs09.consts.NPCs; -import static api.ContentAPIKt.findLocalNPC; +import static core.api.ContentAPIKt.findLocalNPC; /** * Handles Ahab's beer in port sarim diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ElementalWizardNPC.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/ElementalWizardNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/ElementalWizardNPC.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/ElementalWizardNPC.java index 1440c25df..e4d1281fc 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ElementalWizardNPC.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/ElementalWizardNPC.java @@ -1,20 +1,20 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.portsarim.handlers; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.magic.MagicSpell; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/PortSarimPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/PortSarimPlugin.java index a25a1a136..47df99e03 100644 --- a/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/PortSarimPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.asgarnia.portsarim.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; @@ -9,7 +9,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/PortsObjectPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/PortsObjectPlugin.java index 54530ad20..206b3860c 100644 --- a/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/PortsObjectPlugin.java @@ -1,13 +1,13 @@ -package core.game.interaction.object; +package content.region.asgarnia.portsarim.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/npc/SeamanPlugin.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/SeamanPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/npc/SeamanPlugin.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/SeamanPlugin.java index 5dd786ef2..e2c6ed29f 100644 --- a/Server/src/main/java/core/game/interaction/npc/SeamanPlugin.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/SeamanPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.asgarnia.portsarim.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java b/Server/src/main/content/region/asgarnia/portsarim/handlers/WydinDoorPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java rename to Server/src/main/content/region/asgarnia/portsarim/handlers/WydinDoorPlugin.java index 00939ab60..05ea0a1d3 100644 --- a/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java +++ b/Server/src/main/content/region/asgarnia/portsarim/handlers/WydinDoorPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.region.asgarnia.portsarim.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/pirates_treasure/GardenerNPC.java b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/GardenerNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/quest/pirates_treasure/GardenerNPC.java rename to Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/GardenerNPC.java index 339650b87..f0926dfed 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/pirates_treasure/GardenerNPC.java +++ b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/GardenerNPC.java @@ -1,11 +1,11 @@ -package core.game.node.entity.npc.quest.pirates_treasure; +package content.region.asgarnia.portsarim.quest.piratestreasure; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasure.java b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasure.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasure.java rename to Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasure.java index c14deee6d..ae22be400 100644 --- a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasure.java +++ b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasure.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.piratestreasure; +package content.region.asgarnia.portsarim.quest.piratestreasure; import core.game.component.Component; import core.game.node.entity.player.Player; @@ -6,7 +6,7 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the pirates treasure quest. diff --git a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasurePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java rename to Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasurePlugin.java index c609db1e3..a4f64a4dc 100644 --- a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java +++ b/Server/src/main/content/region/asgarnia/portsarim/quest/piratestreasure/PiratesTreasurePlugin.java @@ -1,9 +1,9 @@ -package core.game.content.quest.free.piratestreasure; +package content.region.asgarnia.portsarim.quest.piratestreasure; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DigAction; -import core.game.content.global.action.DigSpadeHandler; +import core.game.global.action.DigAction; +import core.game.global.action.DigSpadeHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/AnjaDialoguePlugin.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/AnjaDialoguePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/AnjaDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/AnjaDialoguePlugin.java index bed29eced..36ed82c7b 100644 --- a/Server/src/main/java/core/game/content/dialogue/AnjaDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/AnjaDialoguePlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.rimmington.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/BrianArcheryDialogue.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/BrianArcheryDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/BrianArcheryDialogue.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/BrianArcheryDialogue.java index c9a1f8ed1..71c8ddf82 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrianArcheryDialogue.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/BrianArcheryDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.rimmington.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HengelDialoguePlugin.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/HengelDialoguePlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/HengelDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/HengelDialoguePlugin.java index e2fe49df9..dcdc489bc 100644 --- a/Server/src/main/java/core/game/content/dialogue/HengelDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/HengelDialoguePlugin.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.rimmington.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/dialogue/HettyDialogue.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/HettyDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/HettyDialogue.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/HettyDialogue.java index 11210472e..28e99f079 100644 --- a/Server/src/main/java/core/game/content/dialogue/HettyDialogue.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/HettyDialogue.java @@ -1,224 +1,226 @@ -package core.game.content.dialogue; - -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.quest.Quest; -import core.plugin.Initializable; -import core.game.node.item.Item; - -/** - * Represents the dialogue plugin used for the hetty npc. - * @author 'Vexia - * @version 1.0 - */ -@Initializable -public final class HettyDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code HettyDialogue} {@code Object}. - */ - public HettyDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code HettyDialogue} {@code Object}. - * @param player the player. - */ - public HettyDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new HettyDialogue(player); - } - - @Override - public boolean open(Object... args) { - Quest quest = player.getQuestRepository().getQuest("Witch's Potion"); - if (quest.isCompleted(player)) { - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "How's your magic coming along?"); - stage = 0; - } - switch (quest.getStage(player)) { - case 0: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "What could you want with an old woman like me?"); - stage = 11; - break; - case 20: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "So have you found the things for the potion?"); - stage = 100; - break; - case 40: - if (args.length == 2) { - interpreter.sendDialogue("You drink from the cauldron, it tastes horrible! You feel yourself", "imbued with power."); - stage = 41; - } else { - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well are you going to drink the potion or not?"); - stage = 500; - } - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - Quest quest = player.getQuestRepository().getQuest("Witch's Potion"); - switch (stage) { - case 0: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm practicing and slowly getting better."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Good, good."); - stage = 2; - break; - case 2: - end(); - break; - case 11: - interpreter.sendOptions("Select an Option", "I am in search of a quest.", "I've heard that you are a witch."); - stage = 12; - break; - case 12: - switch (buttonId) { - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I am in search of a quest."); - stage = 13; - break; - case 2: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I've heard that you are a witch."); - stage = 20; - break; - } - break; - case 13: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Hmmm... Maybe I can think of something for you."); - stage = 14; - break; - case 14: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Would you like to become more proficient in the dark", "arts?"); - stage = 15; - break; - case 15: - interpreter.sendOptions("Select an Option", "Yes help me become one with my darker side.", "No I have my principles and honour."); - stage = 16; - break; - case 16: - switch (buttonId) { - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes help me become one with my darker side."); - stage = 30; - break; - case 2: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No I have m principles and honour."); - stage = 17; - break; - } - break; - case 17: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Suit yourself, but you're missing out."); - stage = 18; - break; - case 18: - end(); - break; - case 20: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Yes it does seem to be getting fairly common", "knowledge."); - stage = 21; - break; - case 21: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "I fear I may get a visit from the witch hunter of", "Falador before long."); - stage = 22; - break; - case 22: - end(); - break; - case 30: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok I'm going to make a potion to help bring out your", "darker self."); - stage = 31; - break; - case 31: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You will need certain ingredients."); - stage = 32; - break; - case 32: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do I need?"); - stage = 33; - break; - case 33: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You need an eye of newt, a rat's tail, and onion... Oh", "and a piece of burnt meat."); - stage = 34; - break; - case 34: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Great, I'll go get them."); - stage = 35; - break; - case 35: - quest.start(player); - quest.setStage(player, 20); - end(); - break; - case 100: - // Her:Well I can't make the potion without them! - // Remember.../You - // need an eye of newt, a rat's tail, an onion, and a/piece of - // burnt - // meat. Off you go dear! Me:end(); - if (!player.getInventory().containItems(1957, 300, 2146, 221)) { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm afraid I don't have all of them yet."); - stage = 101; - } else { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes I have everything!"); - stage = 110; - } - break; - case 110: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Excellent, can I have them then?"); - stage = 111; - break; - case 111: - interpreter.sendDialogue("You pass the ingredients to Hetty and she puts them all into her", "cauldron. Hetty closes her eyes and begins to chant. The cauldron", "bubbles mysteriously."); - stage = 112; - break; - case 112: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, is it ready?"); - stage = 113; - break; - case 113: - if (player.getInventory().remove(new Item(1957), new Item(300), new Item(2146), new Item(221))) { - quest.setStage(player, 40); - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok, now drink from the cauldron."); - stage = 114; - } - break; - case 114: - end(); - break; - case 101: - interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well I can't make the potion without them! Remember...", "You need an eye of newt, a rat's tail, an onion, and a", "piece of burnt meat. Off you go dear!"); - stage = 102; - break; - case 102: - end(); - break; - case 500: - end(); - break; - case 41: - end(); - quest.finish(player); - player.getQuestRepository().syncronizeTab(player); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 307 }; - } -} +package content.region.asgarnia.rimmington.dialogue; + +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.node.entity.player.Player; +import core.game.node.entity.player.link.quest.Quest; +import core.plugin.Initializable; +import core.game.node.item.Item; + +/** + * Represents the dialogue plugin used for the hetty npc. + * @author 'Vexia + * @version 1.0 + */ +@Initializable +public final class HettyDialogue extends DialoguePlugin { + + /** + * Constructs a new {@code HettyDialogue} {@code Object}. + */ + public HettyDialogue() { + /** + * empty. + */ + } + + /** + * Constructs a new {@code HettyDialogue} {@code Object}. + * @param player the player. + */ + public HettyDialogue(Player player) { + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new HettyDialogue(player); + } + + @Override + public boolean open(Object... args) { + Quest quest = player.getQuestRepository().getQuest("Witch's Potion"); + if (quest.isCompleted(player)) { + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "How's your magic coming along?"); + stage = 0; + } + switch (quest.getStage(player)) { + case 0: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "What could you want with an old woman like me?"); + stage = 11; + break; + case 20: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "So have you found the things for the potion?"); + stage = 100; + break; + case 40: + if (args.length == 2) { + interpreter.sendDialogue("You drink from the cauldron, it tastes horrible! You feel yourself", "imbued with power."); + stage = 41; + } else { + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well are you going to drink the potion or not?"); + stage = 500; + } + break; + } + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + Quest quest = player.getQuestRepository().getQuest("Witch's Potion"); + switch (stage) { + case 0: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm practicing and slowly getting better."); + stage = 1; + break; + case 1: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Good, good."); + stage = 2; + break; + case 2: + end(); + break; + case 11: + interpreter.sendOptions("Select an Option", "I am in search of a quest.", "I've heard that you are a witch."); + stage = 12; + break; + case 12: + switch (buttonId) { + case 1: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I am in search of a quest."); + stage = 13; + break; + case 2: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I've heard that you are a witch."); + stage = 20; + break; + } + break; + case 13: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Hmmm... Maybe I can think of something for you."); + stage = 14; + break; + case 14: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Would you like to become more proficient in the dark", "arts?"); + stage = 15; + break; + case 15: + interpreter.sendOptions("Select an Option", "Yes help me become one with my darker side.", "No I have my principles and honour."); + stage = 16; + break; + case 16: + switch (buttonId) { + case 1: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes help me become one with my darker side."); + stage = 30; + break; + case 2: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No I have m principles and honour."); + stage = 17; + break; + } + break; + case 17: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Suit yourself, but you're missing out."); + stage = 18; + break; + case 18: + end(); + break; + case 20: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Yes it does seem to be getting fairly common", "knowledge."); + stage = 21; + break; + case 21: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "I fear I may get a visit from the witch hunter of", "Falador before long."); + stage = 22; + break; + case 22: + end(); + break; + case 30: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok I'm going to make a potion to help bring out your", "darker self."); + stage = 31; + break; + case 31: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You will need certain ingredients."); + stage = 32; + break; + case 32: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "What do I need?"); + stage = 33; + break; + case 33: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "You need an eye of newt, a rat's tail, and onion... Oh", "and a piece of burnt meat."); + stage = 34; + break; + case 34: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Great, I'll go get them."); + stage = 35; + break; + case 35: + quest.start(player); + quest.setStage(player, 20); + end(); + break; + case 100: + // Her:Well I can't make the potion without them! + // Remember.../You + // need an eye of newt, a rat's tail, an onion, and a/piece of + // burnt + // meat. Off you go dear! Me:end(); + if (!player.getInventory().containItems(1957, 300, 2146, 221)) { + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm afraid I don't have all of them yet."); + stage = 101; + } else { + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes I have everything!"); + stage = 110; + } + break; + case 110: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Excellent, can I have them then?"); + stage = 111; + break; + case 111: + interpreter.sendDialogue("You pass the ingredients to Hetty and she puts them all into her", "cauldron. Hetty closes her eyes and begins to chant. The cauldron", "bubbles mysteriously."); + stage = 112; + break; + case 112: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, is it ready?"); + stage = 113; + break; + case 113: + if (player.getInventory().remove(new Item(1957), new Item(300), new Item(2146), new Item(221))) { + quest.setStage(player, 40); + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Ok, now drink from the cauldron."); + stage = 114; + } + break; + case 114: + end(); + break; + case 101: + interpreter.sendDialogues(307, FacialExpression.HALF_GUILTY, "Well I can't make the potion without them! Remember...", "You need an eye of newt, a rat's tail, an onion, and a", "piece of burnt meat. Off you go dear!"); + stage = 102; + break; + case 102: + end(); + break; + case 500: + end(); + break; + case 41: + end(); + quest.finish(player); + player.getQuestRepository().syncronizeTab(player); + break; + } + return true; + } + + @Override + public int[] getIds() { + return new int[] { 307 }; + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/RimmingtonShopKeeperDialogue.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/RimmingtonShopKeeperDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/RimmingtonShopKeeperDialogue.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/RimmingtonShopKeeperDialogue.java index 8ce24372f..3e8f07ccb 100644 --- a/Server/src/main/java/core/game/content/dialogue/RimmingtonShopKeeperDialogue.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/RimmingtonShopKeeperDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.rimmington.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/RoomikDialogue.java b/Server/src/main/content/region/asgarnia/rimmington/dialogue/RoomikDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/RoomikDialogue.java rename to Server/src/main/content/region/asgarnia/rimmington/dialogue/RoomikDialogue.java index 9ebd94ea6..2660e954a 100644 --- a/Server/src/main/java/core/game/content/dialogue/RoomikDialogue.java +++ b/Server/src/main/content/region/asgarnia/rimmington/dialogue/RoomikDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.rimmington.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/WitchsPotion.java b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/WitchsPotion.java rename to Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java index 6968f1dc8..c55e827d6 100644 --- a/Server/src/main/java/core/game/content/quest/free/WitchsPotion.java +++ b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotion.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.asgarnia.rimmington.quest.witchpotion; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/WitchsPotionPlugin.java b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/WitchsPotionPlugin.java rename to Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotionPlugin.java index fac668033..745f0837c 100644 --- a/Server/src/main/java/core/game/interaction/object/WitchsPotionPlugin.java +++ b/Server/src/main/content/region/asgarnia/rimmington/quest/witchpotion/WitchsPotionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.rimmington.quest.witchpotion; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/BernaldDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/BernaldDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/BernaldDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/BernaldDialogue.java index 9eeb1b769..de5da48e5 100644 --- a/Server/src/main/java/core/game/content/dialogue/BernaldDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/BernaldDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BrianORichardDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/BrianORichardDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/BrianORichardDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/BrianORichardDialogue.java index e708c621a..1737820fc 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrianORichardDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/BrianORichardDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/JatixDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/JatixDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/JatixDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/JatixDialogue.java index dc5516890..ecb9e7c11 100644 --- a/Server/src/main/java/core/game/content/dialogue/JatixDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/JatixDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/KaqemeexDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/KaqemeexDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/KaqemeexDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/KaqemeexDialogue.java index c5753648c..f6246e77b 100644 --- a/Server/src/main/java/core/game/content/dialogue/KaqemeexDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/KaqemeexDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/PetshopOwnerTaverly.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/PetshopOwnerTaverly.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/PetshopOwnerTaverly.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/PetshopOwnerTaverly.java index 4895dc09d..23c271d76 100644 --- a/Server/src/main/java/core/game/content/dialogue/PetshopOwnerTaverly.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/PetshopOwnerTaverly.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; import java.util.List; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/PikkupstixDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/PikkupstixDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java index dd73f339e..672af05bc 100644 --- a/Server/src/main/java/core/game/content/dialogue/PikkupstixDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/PikkupstixDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SanfewDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/SanfewDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SanfewDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/SanfewDialogue.java index 0cb3a771f..4f92cd641 100644 --- a/Server/src/main/java/core/game/content/dialogue/SanfewDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/SanfewDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/TeegidDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/TeegidDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/TeegidDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/TeegidDialogue.java index 22c21ed57..d6b8d3abc 100644 --- a/Server/src/main/java/core/game/content/dialogue/TeegidDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/TeegidDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/dialogue/TostigDialogue.java b/Server/src/main/content/region/asgarnia/taverley/dialogue/TostigDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/TostigDialogue.java rename to Server/src/main/content/region/asgarnia/taverley/dialogue/TostigDialogue.java index 8310a55dd..1718d0ea8 100644 --- a/Server/src/main/java/core/game/content/dialogue/TostigDialogue.java +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/TostigDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.taverley.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/asgarnia/taverley/dialogue/VelrakDialogue.kt b/Server/src/main/content/region/asgarnia/taverley/dialogue/VelrakDialogue.kt new file mode 100644 index 000000000..fc56ccb5a --- /dev/null +++ b/Server/src/main/content/region/asgarnia/taverley/dialogue/VelrakDialogue.kt @@ -0,0 +1,63 @@ +package content.region.asgarnia.taverley.dialogue + +import core.api.Container +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class VelrakDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return VelrakDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + if(inInventory(player, Items.DUSTY_KEY_1590)){ + playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Are you still here?").also { stage = 100 } + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Thank you for rescuing me! It isn't very comfy in this cell.") + removeItem(player, Items.JAIL_KEY_1591, Container.INVENTORY) + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("So... do you know anywhere good to explore?","Do I get a reward for freeing you?").also { stage++ } + 1 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "So... do you know anywhere good to explore?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Do I get a reward for freeing you?").also { stage = 20 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Well, this dungeon was quite good to explore...until I got captured, anyway. I was given a key to an inner part of this dungeon by a mysterious stranger!").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It's rather tough for me to get that far into the dungeon however. I just keep getting captured! Would you like to give it a go?").also { stage++ } + 12 -> options("Yes, please!", "No, it's too dangerous for me too.").also { stage++ } + 13 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please!").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No, it's too dangerous for me too.").also { stage = 15 } + } + + 14 -> sendItemDialogue(player, Items.DUSTY_KEY_1590, "Velrak reaches somewhere mysterious and passes you a key.").also { addItem(player, Items.DUSTY_KEY_1590, 1); stage = END_DIALOGUE } + + 15 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I don't blame you!").also { stage = END_DIALOGUE } + + 20 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, not really. The Black Knights took all of my stuff before throwing me in here to rot!").also { stage = 0 } + + 100 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Yes... I'm still plucking up the courage to run out past those Black Knights.").also { stage++ } + 101 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, go on. You can do it!").also { stage = END_DIALOGUE } + } + + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.VELRAK_THE_EXPLORER_798) + } + + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java b/Server/src/main/content/region/asgarnia/taverley/handlers/ArmourSuitNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java rename to Server/src/main/content/region/asgarnia/taverley/handlers/ArmourSuitNPC.java index 013071479..2a85c2bf1 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java +++ b/Server/src/main/content/region/asgarnia/taverley/handlers/ArmourSuitNPC.java @@ -1,10 +1,10 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.taverley.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/CrystalChestPlugin.java b/Server/src/main/content/region/asgarnia/taverley/handlers/CrystalChestPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/CrystalChestPlugin.java rename to Server/src/main/content/region/asgarnia/taverley/handlers/CrystalChestPlugin.java index 45f8904ca..d4eb1b2be 100644 --- a/Server/src/main/java/core/game/interaction/object/CrystalChestPlugin.java +++ b/Server/src/main/content/region/asgarnia/taverley/handlers/CrystalChestPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.taverley.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -8,7 +8,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/object/CrystalKeyObjectPlugin.java b/Server/src/main/content/region/asgarnia/taverley/handlers/CrystalKeyObjectPlugin.java similarity index 90% rename from Server/src/main/java/core/game/interaction/object/CrystalKeyObjectPlugin.java rename to Server/src/main/content/region/asgarnia/taverley/handlers/CrystalKeyObjectPlugin.java index 99dc9a38b..5bc49c4cb 100644 --- a/Server/src/main/java/core/game/interaction/object/CrystalKeyObjectPlugin.java +++ b/Server/src/main/content/region/asgarnia/taverley/handlers/CrystalKeyObjectPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.asgarnia.taverley.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt b/Server/src/main/content/region/asgarnia/taverley/handlers/TaverleyDungeonListeners.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt rename to Server/src/main/content/region/asgarnia/taverley/handlers/TaverleyDungeonListeners.kt index 71486db40..fd9c45bec 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt +++ b/Server/src/main/content/region/asgarnia/taverley/handlers/TaverleyDungeonListeners.kt @@ -1,11 +1,10 @@ -package rs09.game.interaction.region.dungeons.taverley +package content.region.asgarnia.taverley.handlers -import api.* -import core.game.content.global.action.DoorActionHandler +import core.api.* import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class TaverleyDungeonListeners : InteractionListener { @@ -14,24 +13,24 @@ class TaverleyDungeonListeners : InteractionListener { override fun defineListeners() { - on(BD_GATE, IntType.SCENERY, "open"){player, node -> + on(BD_GATE, IntType.SCENERY, "open"){ player, node -> if(!inInventory(player, Items.DUSTY_KEY_1590)){ sendMessage(player, "This gate seems to be locked.") } else { - DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) } return@on true } - on(JAIL_DOOR, IntType.SCENERY, "open"){player, node -> + on(JAIL_DOOR, IntType.SCENERY, "open"){ player, node -> when(player.location.y){ - 9689 -> DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) //inside the cell going out + 9689 -> core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) //inside the cell going out 9690 -> { //outside the cell going in if(!inInventory(player, Items.JAIL_KEY_1591)){ sendMessage(player, "This door is locked.") } else { - DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) } } } diff --git a/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java b/Server/src/main/content/region/asgarnia/taverley/handlers/TaverlyDungeonPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java rename to Server/src/main/content/region/asgarnia/taverley/handlers/TaverlyDungeonPlugin.java index 68dafd82e..4dc86deb4 100644 --- a/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java +++ b/Server/src/main/content/region/asgarnia/taverley/handlers/TaverlyDungeonPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.city; +package content.region.asgarnia.taverley.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/quest/members/DruidicRitual.java b/Server/src/main/content/region/asgarnia/taverley/quest/DruidicRitual.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/DruidicRitual.java rename to Server/src/main/content/region/asgarnia/taverley/quest/DruidicRitual.java index bf45d21fb..fe470eef7 100644 --- a/Server/src/main/java/core/game/content/quest/members/DruidicRitual.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/DruidicRitual.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members; +package content.region.asgarnia.taverley.quest; import core.game.component.CloseEvent; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/content/quest/members/WolfWhistle.java b/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/WolfWhistle.java rename to Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java index 3baab8b77..6ed7c9283 100644 --- a/Server/src/main/java/core/game/content/quest/members/WolfWhistle.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/WolfWhistle.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members; +package content.region.asgarnia.taverley.quest; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/BallInteraction.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BallInteraction.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/BallInteraction.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BallInteraction.java index b96bc61e7..df28abdb3 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/BallInteraction.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BallInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.game.interaction.MovementPulse; import core.game.interaction.Option; @@ -9,9 +9,9 @@ import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; import core.game.node.entity.combat.spell.SpellBlocks; -import core.game.content.activity.mta.TelekineticGrabSpell; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import content.minigame.mta.TelekineticGrabSpell; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; import core.game.node.entity.skill.Skills; @Initializable diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/BoyDialoguePlugin.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BoyDialoguePlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/BoyDialoguePlugin.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BoyDialoguePlugin.java index d41931124..3a92d309f 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/BoyDialoguePlugin.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/BoyDialoguePlugin.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/ExperimentSession.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/ExperimentSession.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/ExperimentSession.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/ExperimentSession.java index 24d11b697..016372446 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/ExperimentSession.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/ExperimentSession.java @@ -3,7 +3,7 @@ package core.game.content.quest.witchs_house; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; public final class ExperimentSession { diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/MouseNPC.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/MouseNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/MouseNPC.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/MouseNPC.java index 3bd8fdee2..db5b3d621 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/MouseNPC.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/MouseNPC.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/NoraTHaggNPC.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/NoraTHaggNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/NoraTHaggNPC.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/NoraTHaggNPC.java index b9395c572..2192bf840 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/NoraTHaggNPC.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/NoraTHaggNPC.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.game.node.entity.Entity; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsDiaryBook.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsDiaryBook.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsDiaryBook.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsDiaryBook.java index 47f261d87..d80375dbf 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsDiaryBook.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsDiaryBook.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.book.Book; -import core.game.content.dialogue.book.BookLine; -import core.game.content.dialogue.book.Page; -import core.game.content.dialogue.book.PageSet; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsExperimentNPC.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsExperimentNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsExperimentNPC.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsExperimentNPC.java index 1ffa48d06..cfd71aaf9 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsExperimentNPC.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsExperimentNPC.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHouse.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHouse.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java index c9e25b614..eb4b8639e 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHouse.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHouse.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHousePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java rename to Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHousePlugin.java index f2fcd696b..1e00b8efe 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java +++ b/Server/src/main/content/region/asgarnia/taverley/quest/witchshouse/WitchsHousePlugin.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.witchshouse; +package content.region.asgarnia.taverley.quest.witchshouse; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -16,7 +16,7 @@ import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/dialogue/GWDKnightDialogue.java b/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/GWDKnightDialogue.java rename to Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java index 862fe1d43..1af6de4b4 100644 --- a/Server/src/main/java/core/game/content/dialogue/GWDKnightDialogue.java +++ b/Server/src/main/content/region/asgarnia/trollheim/dialogue/GWDKnightDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.asgarnia.trollheim.dialogue; import core.cache.def.impl.NPCDefinition; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ThrowerTrollNPC.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/ThrowerTrollNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/ThrowerTrollNPC.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/ThrowerTrollNPC.java index 1d852be82..e8fbf5642 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ThrowerTrollNPC.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/ThrowerTrollNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.asgarnia.trollheim.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; diff --git a/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/TrollheimPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/TrollheimPlugin.java index 4b7e26ba4..7fb3b6d65 100644 --- a/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/TrollheimPlugin.java @@ -1,14 +1,14 @@ -package core.game.interaction.city; +package content.region.asgarnia.trollheim.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -19,13 +19,13 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; @@ -33,7 +33,7 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the plugin used to handle all trollheim node interations. diff --git a/Server/src/main/java/core/game/content/activity/gwd/EcumenicalKeyHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/EcumenicalKeyHandler.java similarity index 100% rename from Server/src/main/java/core/game/content/activity/gwd/EcumenicalKeyHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/EcumenicalKeyHandler.java diff --git a/Server/src/main/java/core/game/content/activity/gwd/GWDGraardorSwingHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDGraardorSwingHandler.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/gwd/GWDGraardorSwingHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDGraardorSwingHandler.java index 7e91dc4c0..540d48f02 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GWDGraardorSwingHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDGraardorSwingHandler.java @@ -1,4 +1,4 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import java.util.ArrayList; import java.util.List; @@ -6,8 +6,7 @@ import java.util.List; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import org.jetbrains.annotations.NotNull; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GWDKreeArraSwingHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDKreeArraSwingHandler.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/gwd/GWDKreeArraSwingHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDKreeArraSwingHandler.java index ce7052a52..925f917fd 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GWDKreeArraSwingHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDKreeArraSwingHandler.java @@ -1,4 +1,4 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import java.util.ArrayList; import java.util.List; @@ -6,7 +6,7 @@ import java.util.List; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GWDTsutsarothSwingHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDTsutsarothSwingHandler.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/gwd/GWDTsutsarothSwingHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDTsutsarothSwingHandler.java index 57032f817..b8c40462e 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GWDTsutsarothSwingHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDTsutsarothSwingHandler.java @@ -1,9 +1,9 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.impl.Projectile; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GWDZilyanaSwingHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDZilyanaSwingHandler.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/gwd/GWDZilyanaSwingHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDZilyanaSwingHandler.java index b4d721d8a..a1f060d9a 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GWDZilyanaSwingHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GWDZilyanaSwingHandler.java @@ -1,4 +1,4 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import java.util.ArrayList; import java.util.List; @@ -6,7 +6,7 @@ import java.util.List; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.impl.Animator.Priority; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodWarsFaction.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsFaction.java similarity index 90% rename from Server/src/main/java/core/game/content/activity/gwd/GodWarsFaction.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsFaction.java index d2508a87f..2c653dee3 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodWarsFaction.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsFaction.java @@ -1,11 +1,9 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; -import api.ContentAPIKt; -import api.God; +import core.api.God; import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import static api.ContentAPIKt.hasGodItem; +import static core.api.ContentAPIKt.hasGodItem; /** * The god wars factions. diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodWarsMinionNPC.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsMinionNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/gwd/GodWarsMinionNPC.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsMinionNPC.java index 885cac69b..b6841b41e 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodWarsMinionNPC.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsMinionNPC.java @@ -1,4 +1,4 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; @@ -6,7 +6,7 @@ import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodWarsNPC.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/gwd/GodWarsNPC.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsNPC.java index 52df17121..215de9f11 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodWarsNPC.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodWarsNPC.java @@ -1,9 +1,9 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import java.util.ArrayList; import java.util.List; -import api.ContentAPIKt; +import core.api.ContentAPIKt; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -20,8 +20,8 @@ import core.game.world.map.RegionManager; import core.tools.RandomFunction; import org.rs09.consts.NPCs; -import static api.ContentAPIKt.getPathableRandomLocalCoordinate; -import static api.ContentAPIKt.sendGraphics; +import static core.api.ContentAPIKt.getPathableRandomLocalCoordinate; +import static core.api.ContentAPIKt.sendGraphics; /** * Handles a god wars NPC. diff --git a/Server/src/main/java/core/game/content/dialogue/GodswordDialogue.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodswordDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/GodswordDialogue.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodswordDialogue.java index 358a37873..d6cc049a0 100644 --- a/Server/src/main/java/core/game/content/dialogue/GodswordDialogue.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodswordDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.asgarnia.trollheim.handlers.gwd; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodwarsBossNPC.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsBossNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/gwd/GodwarsBossNPC.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsBossNPC.java index 2ab79ab6b..4d62e0f41 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodwarsBossNPC.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsBossNPC.java @@ -1,6 +1,6 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -15,9 +15,9 @@ import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatPulse; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.world.GameWorld; /** * Handles a god wars boss NPC. diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java index 5253e618e..a794f2289 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsEntranceHandler.java @@ -1,8 +1,8 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -11,7 +11,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java index 5052a1e52..c743fb66e 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/GodwarsMapzone.java @@ -1,9 +1,9 @@ -package core.game.content.activity.gwd; +package content.region.asgarnia.trollheim.handlers.gwd; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.container.impl.EquipmentContainer; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.MovementPulse; import core.game.interaction.Option; import core.game.node.Node; @@ -16,8 +16,8 @@ import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; diff --git a/Server/src/main/java/core/game/content/zone/IcePathZone.java b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/IcePathZone.java similarity index 96% rename from Server/src/main/java/core/game/content/zone/IcePathZone.java rename to Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/IcePathZone.java index 3d8e1ad20..5f399c7e1 100644 --- a/Server/src/main/java/core/game/content/zone/IcePathZone.java +++ b/Server/src/main/content/region/asgarnia/trollheim/handlers/gwd/IcePathZone.java @@ -1,11 +1,11 @@ -package core.game.content.zone; +package content.region.asgarnia.trollheim.handlers.gwd; import core.game.component.Component; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/AablaDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AablaDialogue.kt new file mode 100644 index 000000000..80d06b80c --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AablaDialogue.kt @@ -0,0 +1,48 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class AablaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AablaDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 0 -> showTopics( + Topic("Can you heal me?", AlKharidHealDialogue(true)), + Topic("Do you see a lot of injured fighters?", 101), + Topic("Do you come here often?", 201) + ) + + 101 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I work here, so yes!").also { stage = END_DIALOGUE } + + 201 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } + 203 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.AABLA_959) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidHealListener.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AlKharidHealListener.kt similarity index 64% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidHealListener.kt rename to Server/src/main/content/region/desert/alkharid/dialogue/AlKharidHealListener.kt index 06dd7616d..a9413393d 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidHealListener.kt +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AlKharidHealListener.kt @@ -1,15 +1,13 @@ -package rs09.game.content.dialogue.region.alkharid +package content.region.desert.alkharid.dialogue -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC +import core.api.* import core.game.node.entity.skill.Skills import org.rs09.consts.Animations import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE /** * @author bushtail @@ -37,15 +35,15 @@ class AlKharidHealDialogue(val skipFirst: Boolean) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { if (stage == 0 && skipFirst) stage++ when(stage) { - 0 -> player(FacialExpression.ASKING, "Can you heal me?").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "Of course!").also { stage++ } + 0 -> player(core.game.dialogue.FacialExpression.ASKING, "Can you heal me?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course!").also { stage++ } 2 -> { animate(npc!!, Animations.HUMAN_PICKPOCKETING_881) if(player!!.skills.lifepoints < getStatLevel(player!!, Skills.HITPOINTS)) { player!!.skills.heal(21) - npcl(FacialExpression.FRIENDLY, "There you go!") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "There you go!") } else { - npcl(FacialExpression.FRIENDLY, "You look healthy to me!") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You look healthy to me!") } stage = END_DIALOGUE } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidShopKeeperDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AlKharidShopKeeperDialogue.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidShopKeeperDialogue.kt rename to Server/src/main/content/region/desert/alkharid/dialogue/AlKharidShopKeeperDialogue.kt index 02bfeb758..bd1d78359 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AlKharidShopKeeperDialogue.kt +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AlKharidShopKeeperDialogue.kt @@ -1,12 +1,12 @@ -package rs09.game.content.dialogue.region.alkharid +package content.region.desert.alkharid.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE /** * @author bushtail @@ -21,7 +21,7 @@ class AlKharidShopKeeperDialogue(player: Player? = null) : DialoguePlugin(player override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npcl(FacialExpression.HALF_ASKING, "Can I help you at all?") + npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "Can I help you at all?") stage = 100 return true } @@ -38,10 +38,10 @@ class AlKharidShopKeeperDialogue(player: Player? = null) : DialoguePlugin(player stage = END_DIALOGUE npc.openShop(player) } - 2 -> player(FacialExpression.ASKING, "How should I use your shop?").also { stage = 201 } - 3 -> player(FacialExpression.NEUTRAL, "No, thanks.").also { stage = END_DIALOGUE } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "How should I use your shop?").also { stage = 201 } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "No, thanks.").also { stage = END_DIALOGUE } } - 201 -> npcl(FacialExpression.FRIENDLY, "I'm glad you ask! You can buy as many of the items stocked as you wish. You can also sell most items to the shop.").also { stage = END_DIALOGUE } + 201 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm glad you ask! You can buy as many of the items stocked as you wish. You can also sell most items to the shop.").also { stage = END_DIALOGUE } } return true } diff --git a/Server/src/main/java/core/game/node/entity/npc/city/alkharid/AlTheCamelDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/AlTheCamelDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/alkharid/AlTheCamelDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/AlTheCamelDialogue.java index 5f50b90d9..d8e83e252 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/alkharid/AlTheCamelDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AlTheCamelDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.alkharid; +package content.region.desert.alkharid.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/alkharid/AliMorrisaneDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/AliMorrisaneDialogue.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/alkharid/AliMorrisaneDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/AliMorrisaneDialogue.java index dcfaf3266..0fbf496d5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/alkharid/AliMorrisaneDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliMorrisaneDialogue.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.city.alkharid; +package content.region.desert.alkharid.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/AliTheFarmerDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheFarmerDialogue.kt new file mode 100644 index 000000000..2465b2a55 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheFarmerDialogue.kt @@ -0,0 +1,73 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AliTheFarmerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there!") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Oh, er, hello. What do you want?").also { stage++ } + 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", + "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } + 2 -> when(buttonId){ + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } + 4 -> player(core.game.dialogue.FacialExpression.ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } + + } + + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"There's not much farming land around here.", "Only that little patch outside.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.ASKING,"Can you give me any advice on farming here in","the desert?").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Like I said, I only know about cactuses...").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Just tell me about cactuses, then.").also { stage++ } + 14 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"First you have to weed the patch using a rake.").also { stage++ } + 15 -> player(core.game.dialogue.FacialExpression.ASKING,"Can you give me any other advice?").also { stage++ } + 16 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Not really. I've not done much farming recently.").also { stage++ } + 17 -> player(core.game.dialogue.FacialExpression.ASKING,"Well, can you at least sell me any gardening", "tools or seeds?").also { stage++ } + 18 -> npc(core.game.dialogue.FacialExpression.GUILTY,"Sorry. They haven't been delivered yet.").also { stage = 1 } + + 20 -> npc( + core.game.dialogue.FacialExpression.FRIENDLY,"I'm going to set up a shop selling farming implements.", + "That patch out there may be small, ", "but it's all we've got.").also { stage = 11 } + + 30 -> npc( + core.game.dialogue.FacialExpression.FRIENDLY,"Yes, he bought these tents and had them put up for us.", + "He says he'll also get our goods in,", "so we can start selling them soon.").also { stage++ } + 31 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"I only know how to farm cactuses, so this spot", "is perfect.").also { stage++ } + 32 -> player(core.game.dialogue.FacialExpression.THINKING,"Maybe I should talk to him...").also { stage++ } + 33 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Of course.", "He's always happy to talk to possible business", "partners.").also { stage = 1 } + + 40 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Now why would you think that?").also { stage++ } + 41 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"One of the shopkeepers told they were threatened", "by a man with a rake...").also { stage++ } + 42 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Those people just don't want us to succeed.", "Don't listen to them!").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheFarmerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(2821) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/AliTheGuard.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheGuard.kt new file mode 100644 index 000000000..a27e67966 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheGuard.kt @@ -0,0 +1,70 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AliTheGuard(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there!") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.ANNOYED,"I'm working. What do you have to say that's so urgent?").also { stage++ } + 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", + "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } + 2 -> when(buttonId){ + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } + 4 -> player(core.game.dialogue.FacialExpression.ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } + } + + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"There's a lot of space here. More open space than back home.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.ASKING,"So where is back home?").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Pollnivneach. It's a town to the south of the", "Shantay Pass.").also { stage = 1 } + + 20 -> npc( + core.game.dialogue.FacialExpression.ANNOYED,"I'm on guard duty.", "Making sure nobody tries to steal anything from", + "the house and tents in the middle of town.").also { stage++ } + 21 -> player(core.game.dialogue.FacialExpression.ASKING,"Why are you only guarding those buildings?").also { stage++ } + 22 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"That's all I've been hired to guard.").also { stage = 1 } + + 30 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Yeah, he hired me.", "He owns this house and these two tents, too.").also { stage++ } + 31 -> player(core.game.dialogue.FacialExpression.HALF_ASKING,"Is the work good?").also { stage++ } + 32 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"It pays better than back home.").also { stage++ } + 33 -> player(core.game.dialogue.FacialExpression.ASKING,"Why, what did you do back home?").also { stage++ } + 34 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"Never you mind.").also { stage++ } + 35 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"But Ali Morrisane pays us well, at least.").also { stage++ } + 36 -> player(core.game.dialogue.FacialExpression.ASKING,"Maybe I should talk to him...").also { stage++ } + 37 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Why not?", "He always likes to meet potential business partners.").also { stage = 1 } + + 40 -> npc(core.game.dialogue.FacialExpression.ANNOYED,"So? They talk too much.").also { stage++ } + 41 -> player(core.game.dialogue.FacialExpression.HALF_ASKING,"You're not going to deny it?").also { stage++ } + 42 -> npc(core.game.dialogue.FacialExpression.LOUDLY_LAUGHING,"Why bother?", "None of them can fight back, after all.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheGuard(player) + } + + override fun getIds(): IntArray { + return intArrayOf(2823) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperDialogue.kt new file mode 100644 index 000000000..5e1305d4a --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperDialogue.kt @@ -0,0 +1,83 @@ +package content.region.desert.alkharid.dialogue + +import core.api.addItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author bushtail + * Converts AliTheLeafletDropper.java with a Kotlin implementation + */ + +@Initializable +class AliTheLeafletDropperDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheLeafletDropperDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL, "I don't have the time to talk right now! Ali Morrisane is paying me to hand out these flyers.") + stage = 100 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 100 -> options( + "Who is Ali Morissane?", + "What are the flyers for?", + "What is there to do round here, boy?" + ).also { stage++ } + 101 -> when(buttonId) { + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Who is Ali Morissane?").also{ stage = 201 } + } + 2 -> { + player(core.game.dialogue.FacialExpression.ASKING, "What are the flyers for?").also { stage = 301 } + } + 3 -> { + player(core.game.dialogue.FacialExpression.ASKING, "What is there to do round here, boy?").also { stage = 401 } + } + } + + 201 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Ali Morrisane is the greatest merchant in the east!").also { stage++ } + 202 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Were you paid to say that?").also { stage++ } + 203 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING, "Of course I was! You can find him on the north edge of town.").also { stage = END_DIALOGUE } + + 301 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING, "Well, Ali Morrisane isn't too popular with the other traders in Al Kharid, mainly because he's from Pollnivneach and they feel he has no business trading in their town.").also { stage++ } + 302 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "I think they're just sour because he's better at making money than them.").also { stage++ } + 303 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "The flyer advertises the different shops you can find in Al Kharid.").also { stage++ } + 304 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING, "It also entitles you to money off your next purchase in any of the shops listed on it. It's Ali's way of getting on the good side of the traders.").also { stage++ } + 305 -> player(core.game.dialogue.FacialExpression.ASKING, "Which shops?").also { + if(player.inventory.containItems(Items.AL_KHARID_FLYER_7922)) { + npcl(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS, "Are you trying to be funny or has age turned your brain to mush? Look at the flyer you already have!").also { stage = END_DIALOGUE } + } else { + if(addItem(player, Items.AL_KHARID_FLYER_7922)) { + npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Here! Take one and let me get back to work.").also { stage = END_DIALOGUE } + } else { + end() + } + } + } + + 401 -> npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL, "I'm very busy, so listen carefully! I shall say this only once.").also { stage++ } + 402 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING, "Apart from a busy and wonderous market place in Al Kharid to the south, there is the Duel Arena to the south-east where you can challenge other players to a fight.").also { stage++ } + 403 -> npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL, "If you're here to make money, there is a mine to the south.").also { stage++ } + 404 -> npcl(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS, "Watch out for scorpions though, they'll take a pop at you if you go too near them. To avoid them just follow the western fence as you travel south.").also { stage++ } + 405 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "If you're in the mood for a little rest and relaxation, there are a couple of nice fishing spots south of the town.").also { stage++ } + 406 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks for the help!").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.ALI_THE_LEAFLET_DROPPER_3680) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperListener.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperListener.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperListener.kt rename to Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperListener.kt index bf125f1c9..423f7e012 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperListener.kt +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheLeafletDropperListener.kt @@ -1,15 +1,14 @@ -package rs09.game.content.dialogue.region.alkharid +package content.region.desert.alkharid.dialogue -import api.addItem -import api.openDialogue -import core.game.content.dialogue.FacialExpression +import core.api.addItem +import core.api.openDialogue import core.game.node.entity.npc.NPC import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE /** * @author bushtail @@ -36,10 +35,10 @@ class DropperDialogue(val it : Int) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { when(it) { 1 -> when(stage) { - 0 -> npcl(FacialExpression.CHILD_NORMAL, "Here! Take one and let me get back to work.").also { stage++ } - 1 -> npcl(FacialExpression.CHILD_THINKING, "I still have hundreds of these flyers to hand out. I wonder if Ali would notice if I quietly dumped them somewhere?").also { stage = END_DIALOGUE } + 0 -> npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL, "Here! Take one and let me get back to work.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING, "I still have hundreds of these flyers to hand out. I wonder if Ali would notice if I quietly dumped them somewhere?").also { stage = END_DIALOGUE } } - 2 -> npcl(FacialExpression.CHILD_SUSPICIOUS, "Are you trying to be funny or has age turned your brain to mush? You already have a flyer!").also { stage = END_DIALOGUE } + 2 -> npcl(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS, "Are you trying to be funny or has age turned your brain to mush? You already have a flyer!").also { stage = END_DIALOGUE } } } diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/AliTheSmithDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheSmithDialogue.kt new file mode 100644 index 000000000..153e3d817 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/AliTheSmithDialogue.kt @@ -0,0 +1,68 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AliTheSmithDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there!") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"You seem rather cheerful. Is there anything you're after?").also { stage++ } + 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", + "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } + 2 -> when(buttonId){ + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } + 4 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } + } + + 10 ->npc(core.game.dialogue.FacialExpression.FRIENDLY,"Well, it's hot and full of sand.").also { stage++ } + 11 ->player(core.game.dialogue.FacialExpression.ASKING,"Anything else?").also { stage++ } + 12 ->npc(core.game.dialogue.FacialExpression.FRIENDLY,"Don't ask me, I'm not from around here.").also { stage++ } + 13 ->player(core.game.dialogue.FacialExpression.HALF_ASKING,"So where are you from?").also { stage++ } + 14 ->npc(core.game.dialogue.FacialExpression.HALF_GUILTY,"A town to the south of the Shantay Pass,","called Pollnivneach.").also { stage = 1 } + + 20 ->npc(core.game.dialogue.FacialExpression.SAD,"Not very much, at the moment.", "I came from further south to set up a smithy here...").also { stage++ } + 21 ->npc(core.game.dialogue.FacialExpression.SAD,"...but we still haven't set up the shops,", "so we have no customers yet.").also { stage = 1 } + + 30 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Yes, he's the one who persuaded us to come here.").also { stage++ } + 31 -> npc( + core.game.dialogue.FacialExpression.HALF_GUILTY,"He said we'd have lots of customers once we set up", + "our shops, and all he asks for is a cut"," of the profits.").also { stage++ } + 32 -> player(core.game.dialogue.FacialExpression.ASKING,"Maybe I should talk to him...").also { stage++ } + 33 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Of course.", "He's always happy to talk to possible business partners.").also { stage = 1 } + + 40 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"What? Who's spreading that rumour?").also { stage++ } + 41 -> player(core.game.dialogue.FacialExpression.THINKING,"Well, one of the shopkeepers told me a man with", "a large hammer came to threaten them.").also { stage++ } + 42 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"Don't pay any attention to those people.").also { stage++ } + 43 -> npc(core.game.dialogue.FacialExpression.LAUGH,"They're just worried that they'll lose money", "when we open our shops.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheSmithDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(2820) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/BorderGuardDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/BorderGuardDialogue.java index 3a15338f1..c31f6d468 100644 --- a/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/BorderGuardDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/DommikDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/DommikDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/DommikDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/DommikDialogue.java index 566f8f9b7..1fe401e9a 100644 --- a/Server/src/main/java/core/game/content/dialogue/DommikDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/DommikDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EllyTheCamelDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/EllyTheCamelDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/EllyTheCamelDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/EllyTheCamelDialogue.java index c5f381b3b..747a6c57f 100644 --- a/Server/src/main/java/core/game/content/dialogue/EllyTheCamelDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/EllyTheCamelDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/FadliDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/FadliDialogue.kt new file mode 100644 index 000000000..40c3d6967 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/FadliDialogue.kt @@ -0,0 +1,70 @@ +package content.region.desert.alkharid.dialogue + +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.dialogue.Topic +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class FadliDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FadliDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "What?").also { stage++ } + 1 -> showTopics( + Topic("What do you do?", 101), + Topic("What is this place?", 201), + Topic(core.game.dialogue.FacialExpression.FRIENDLY,"I'd like to store some items, please.", 301), + Topic("Do you watch any matches?", 401) + ) + + 101 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You can store your stuff here if you want. You can dump anything you don't want to carry whilst your fighting duels and then pick it up again on the way out.").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.SAD, "To be honest I'm wasted here.").also { stage++ } + 103 -> npcl(core.game.dialogue.FacialExpression.EVIL_LAUGH, "I should be winning duels in an arena! I'm the best warrior in Al Kharid!").also { stage++ } + 104 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "Easy, tiger!").also { stage = END_DIALOGUE } + + 201 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Isn't it obvious?").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "This is the Duel Arena...duh!").also { stage = END_DIALOGUE } + + 301 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Sure.").also { + end() + player.bank.open() + } + + 401 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Most aren't any good so I throw rotten fruit at them!").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FADLI_958) + } +} + +class FadliListener : InteractionListener { + override fun defineListeners() { + on(NPCs.FADLI_958, IntType.NPC, "buy") { player, node -> + if(node.asNpc().openShop(player)) { + return@on true + } + return@on false + } + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/GemTraderDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/GemTraderDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/GemTraderDialogue.kt rename to Server/src/main/content/region/desert/alkharid/dialogue/GemTraderDialogue.kt index d0455254f..3e489d020 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/GemTraderDialogue.kt +++ b/Server/src/main/content/region/desert/alkharid/dialogue/GemTraderDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.content.dialogue.region.alkharid +package content.region.desert.alkharid.dialogue -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,8 +12,8 @@ import core.plugin.Initializable */ @Initializable -class GemTraderDialogue (player: Player? = null): DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { +class GemTraderDialogue (player: Player? = null): core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GemTraderDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/HassanDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/HassanDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/HassanDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/HassanDialogue.java index 6b6a08dea..ce0192046 100644 --- a/Server/src/main/java/core/game/content/dialogue/HassanDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/HassanDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/JaraahDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/JaraahDialogue.kt new file mode 100644 index 000000000..a074e972d --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/JaraahDialogue.kt @@ -0,0 +1,66 @@ +package content.region.desert.alkharid.dialogue + +import core.api.animate +import core.api.getStatLevel +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.skill.Skills +import core.plugin.Initializable +import org.rs09.consts.Animations +import org.rs09.consts.NPCs +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class JaraahDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return JaraahDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "What? Can't you see I'm busy?!").also { stage++ } + 1 -> showTopics( + Topic("Can you heal me?", 101), + Topic("You must see some gruesome things?", 201), + Topic("Why do they call you 'The Butcher'?", 301) + ) + + // Jaraah has to be special and have different dialogue for the heal listener so I am repeating it here. + 101 -> { + animate(npc!!, Animations.HUMAN_PICKPOCKETING_881) + if(player!!.skills.lifepoints < getStatLevel(player!!, Skills.HITPOINTS)) { + player!!.skills.heal(21) + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "There you go!") + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Okay, this will hurt you more than it will me.") + } + stage = END_DIALOGUE + } + + 201 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "It's a gruesome business and with the tools they give me it gets mroe gruesome before it gets better!").also { stage = END_DIALOGUE } + + 301 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "'The Butcher'?").also { stage++ } + 302 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Ha!").also { stage++ } + 303 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "Would you like me to demonstrate?").also { stage++ } + 304 -> player(core.game.dialogue.FacialExpression.AFRAID, "Er...I'll give it a miss, thanks.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.JARAAH_962) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/KarimDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/KarimDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/KarimDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/KarimDialogue.java index e796c679a..49c499b4a 100644 --- a/Server/src/main/java/core/game/content/dialogue/KarimDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/KarimDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/LouiLegsDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/LouiLegsDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/LouiLegsDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/LouiLegsDialogue.java index 080bab582..d05b7e69d 100644 --- a/Server/src/main/java/core/game/content/dialogue/LouiLegsDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/LouiLegsDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/OllieTheCamelDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/OllieTheCamelDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/OllieTheCamelDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/OllieTheCamelDialogue.java index a480f139f..bfff7de4a 100644 --- a/Server/src/main/java/core/game/content/dialogue/OllieTheCamelDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/OllieTheCamelDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/RanaelDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/RanaelDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/RanaelDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/RanaelDialogue.java index bbf86648c..b12f36b9e 100644 --- a/Server/src/main/java/core/game/content/dialogue/RanaelDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/RanaelDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/SabreenDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/SabreenDialogue.kt new file mode 100644 index 000000000..e3c20d5e6 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/SabreenDialogue.kt @@ -0,0 +1,48 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class SabreenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SabreenDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 0 -> showTopics( + Topic("Can you heal me?", AlKharidHealDialogue(true)), + Topic("Do you see a lot of injured fighters?", 101), + Topic("Do you come here often?", 201) + ) + + 101 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I work here, so yes!").also { stage = END_DIALOGUE } + + 201 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } + 203 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.SABREEN_960) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/desert/alkharid/dialogue/SurgeonGeneralTafaniDialogue.kt b/Server/src/main/content/region/desert/alkharid/dialogue/SurgeonGeneralTafaniDialogue.kt new file mode 100644 index 000000000..f23720b63 --- /dev/null +++ b/Server/src/main/content/region/desert/alkharid/dialogue/SurgeonGeneralTafaniDialogue.kt @@ -0,0 +1,70 @@ +package content.region.desert.alkharid.dialogue + +import core.game.dialogue.DialoguePlugin +import core.api.* +import core.game.dialogue.FacialExpression +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.game.global.Skillcape +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.skill.Skills +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author bushtail + */ + +@Initializable +class SurgeonGeneralTafaniDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SurgeonGeneralTafaniDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi. How can I help?").also { stage = 100 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 100 -> showTopics( + Topic("Can you heal me?", AlKharidHealDialogue(true)), + Topic("Do you see a lot of injured fighters?", 201), + Topic("Do you come here often?", 301), + IfTopic("Can I buy a Skillcape of Hitpoints from you?", 401, hasLevelStat(player, Skills.HITPOINTS, 99)), + IfTopic("Where can I get a cape like yours?", 501, !hasLevelStat(player, Skills.HITPOINTS, 99)) + ) + + 201 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } + 203 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } + + 301 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "I work here, so yes!").also { stage = END_DIALOGUE } + + 401 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Why, certainly my friend. However, owning such an item makes you part of an elite group and that privilege will cost you 99000 coins.").also { stage++ } + 402 -> showTopics( + Topic(core.game.dialogue.FacialExpression.HALF_GUILTY, "Sorry, that's much too pricey.", 411), + Topic(core.game.dialogue.FacialExpression.HAPPY, "Sure, that's not too expensive for such a magnificent cape.", 421) + ) + + 411 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I'm sorry you feel that way. Still, if you change your mind...").also { stage = END_DIALOGUE } + 421 -> if(core.game.global.Skillcape.purchase(player, Skills.HITPOINTS)) { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "There you go! I hope you enjoy it.").also { stage = END_DIALOGUE } + } else { + npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Sorry, you can't buy that right now.").also { stage = END_DIALOGUE } + } + + 501 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Well, these capes are only available for people who have achieved a Hitpoint level of 99. You should go and train some more and come back to me when your Hitpoints are higher.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.SURGEON_GENERAL_TAFANI_961) + } +} + diff --git a/Server/src/main/java/core/game/content/dialogue/ZekeDialogue.java b/Server/src/main/content/region/desert/alkharid/dialogue/ZekeDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/ZekeDialogue.java rename to Server/src/main/content/region/desert/alkharid/dialogue/ZekeDialogue.java index 3b9817ad7..9c7b5e0ff 100644 --- a/Server/src/main/java/core/game/content/dialogue/ZekeDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/dialogue/ZekeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.alkharid.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/zone/AlKharidStairsPlugin.kt b/Server/src/main/content/region/desert/alkharid/handlers/AlKharidStairsPlugin.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/content/zone/AlKharidStairsPlugin.kt rename to Server/src/main/content/region/desert/alkharid/handlers/AlKharidStairsPlugin.kt index 483168725..782de0b4c 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/AlKharidStairsPlugin.kt +++ b/Server/src/main/content/region/desert/alkharid/handlers/AlKharidStairsPlugin.kt @@ -1,8 +1,8 @@ -package rs09.game.content.zone; +package content.region.desert.alkharid.handlers; -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition -import core.game.content.global.action.DoorActionHandler +import core.game.global.action.DoorActionHandler import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player @@ -30,7 +30,7 @@ class AlKharidStairsPlugin : OptionHandler() { if(node.location == zekeDoorOpened.location || node.location == craftingDoorOpened.location){ sendMessage(player,"This door appears to be stuck open.") } else{ - DoorActionHandler.handleDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleDoor(player,node.asScenery()) } return true } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/AlKharidWarriorNPC.kt b/Server/src/main/content/region/desert/alkharid/handlers/AlKharidWarriorNPC.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/AlKharidWarriorNPC.kt rename to Server/src/main/content/region/desert/alkharid/handlers/AlKharidWarriorNPC.kt index e3cd0bb1b..7f6cc4b4d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/AlKharidWarriorNPC.kt +++ b/Server/src/main/content/region/desert/alkharid/handlers/AlKharidWarriorNPC.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.npc +package content.region.desert.alkharid.handlers import core.cache.def.impl.NPCDefinition import core.game.interaction.OptionHandler @@ -10,7 +10,7 @@ import core.game.world.map.Location import core.game.world.map.RegionManager import core.plugin.Initializable import core.plugin.Plugin -import rs09.plugin.ClassScanner +import core.plugin.ClassScanner /** * Handles the Al-Kharid Warrior diff --git a/Server/src/main/java/core/game/interaction/npc/TanningNPC.java b/Server/src/main/content/region/desert/alkharid/handlers/TanningNPC.java similarity index 86% rename from Server/src/main/java/core/game/interaction/npc/TanningNPC.java rename to Server/src/main/content/region/desert/alkharid/handlers/TanningNPC.java index 36e7a1ce7..8fdf05cc1 100644 --- a/Server/src/main/java/core/game/interaction/npc/TanningNPC.java +++ b/Server/src/main/content/region/desert/alkharid/handlers/TanningNPC.java @@ -1,8 +1,8 @@ -package core.game.interaction.npc; +package content.region.desert.alkharid.handlers; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.node.entity.skill.crafting.TanningProduct; +import content.global.skill.crafting.TanningProduct; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliDialogue.java b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliDialogue.java rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliDialogue.java index 0284cc9a6..5cc974b9b 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliDialogue.java +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliDialogue.java @@ -1,14 +1,14 @@ -package core.game.content.quest.free.princealirescue; +package content.region.desert.alkharid.quest.princealirescue; import java.util.List; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; /** diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliNPC.java b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliNPC.java similarity index 91% rename from Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliNPC.java rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliNPC.java index 47f0cb6a0..2e9c31fe6 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/LadyKeliNPC.java +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/LadyKeliNPC.java @@ -1,8 +1,8 @@ -package core.game.content.quest.free.princealirescue; +package content.region.desert.alkharid.quest.princealirescue; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/princealirescue/NedPARDialogue.kt b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/NedPARDialogue.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/free/princealirescue/NedPARDialogue.kt rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/NedPARDialogue.kt index 2455eda3d..2c88973e7 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/princealirescue/NedPARDialogue.kt +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/NedPARDialogue.kt @@ -1,15 +1,14 @@ -package rs09.game.content.quest.free.princealirescue +package content.region.desert.alkharid.quest.princealirescue +import core.game.dialogue.DialogueFile import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE private const val STAGE_KNIT_SWEATER = 10 private const val STAGE_KNIT_WIG = 20 private const val STAGE_REPAIR_HOLES = 30 - class NedPARDialogue(val questStage: Int) : DialogueFile() { private val WIG_WOOL = Item(1759, 3) diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescue.java b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescue.java rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescue.java index 1f2409158..77a16f466 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescue.java +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.princealirescue; +package content.region.desert.alkharid.quest.princealirescue; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the prince ali rescue quest. diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescuePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescuePlugin.java index 146b02a1a..7327333fb 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/PrinceAliRescuePlugin.java @@ -1,15 +1,15 @@ -package core.game.content.quest.free.princealirescue; +package content.region.desert.alkharid.quest.princealirescue; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.scenery.Scenery; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/WigDyePlugin.java b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/WigDyePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/princealirescue/WigDyePlugin.java rename to Server/src/main/content/region/desert/alkharid/quest/princealirescue/WigDyePlugin.java index 5cf2bebfe..4d61582cd 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/WigDyePlugin.java +++ b/Server/src/main/content/region/desert/alkharid/quest/princealirescue/WigDyePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.princealirescue; +package content.region.desert.alkharid.quest.princealirescue; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java b/Server/src/main/content/region/desert/bedabin/handlers/BedabinPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/city/BedabinPlugin.java rename to Server/src/main/content/region/desert/bedabin/handlers/BedabinPlugin.java index 22b9eb696..a0a2870a9 100644 --- a/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java +++ b/Server/src/main/content/region/desert/bedabin/handlers/BedabinPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.desert.bedabin.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/java/core/game/content/dialogue/CamelDialoguePlugin.java b/Server/src/main/content/region/desert/dialogue/CamelDialoguePlugin.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/CamelDialoguePlugin.java rename to Server/src/main/content/region/desert/dialogue/CamelDialoguePlugin.java index f3b5fc846..e0b4e027f 100644 --- a/Server/src/main/java/core/game/content/dialogue/CamelDialoguePlugin.java +++ b/Server/src/main/content/region/desert/dialogue/CamelDialoguePlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EblisDialogue.java b/Server/src/main/content/region/desert/dialogue/EblisDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/EblisDialogue.java rename to Server/src/main/content/region/desert/dialogue/EblisDialogue.java index fbeacdc74..1ea4b0216 100644 --- a/Server/src/main/java/core/game/content/dialogue/EblisDialogue.java +++ b/Server/src/main/content/region/desert/dialogue/EblisDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/RugMerchantDialogue.java b/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/RugMerchantDialogue.java rename to Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java index 19e4a78dc..a82cd69b2 100644 --- a/Server/src/main/java/core/game/content/dialogue/RugMerchantDialogue.java +++ b/Server/src/main/content/region/desert/dialogue/RugMerchantDialogue.java @@ -1,11 +1,14 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; + +import core.api.Container; +import static core.api.ContentAPIKt.*; +import static core.tools.GlobalsKt.colorize; -import api.Container; -import static api.ContentAPIKt.*; import core.cache.def.impl.NPCDefinition; import core.game.container.impl.EquipmentContainer; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -13,14 +16,13 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import org.rs09.consts.Items; -import static rs09.tools.stringtools.GlobalsKt.colorize; /** diff --git a/Server/src/main/java/core/game/content/dialogue/ShantayDialogue.java b/Server/src/main/content/region/desert/dialogue/ShantayDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/ShantayDialogue.java rename to Server/src/main/content/region/desert/dialogue/ShantayDialogue.java index bcd5dcfa2..be8dde907 100644 --- a/Server/src/main/java/core/game/content/dialogue/ShantayDialogue.java +++ b/Server/src/main/content/region/desert/dialogue/ShantayDialogue.java @@ -1,10 +1,12 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/dialogue/ShantayGuard.java b/Server/src/main/content/region/desert/dialogue/ShantayGuard.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/ShantayGuard.java rename to Server/src/main/content/region/desert/dialogue/ShantayGuard.java index 1e35e76ab..f4d631071 100644 --- a/Server/src/main/java/core/game/content/dialogue/ShantayGuard.java +++ b/Server/src/main/content/region/desert/dialogue/ShantayGuard.java @@ -1,15 +1,17 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; /** * Represents the dialogue used for a shantay guard. diff --git a/Server/src/main/java/core/game/content/dialogue/SimonTempleton.java b/Server/src/main/content/region/desert/dialogue/SimonTempleton.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/SimonTempleton.java rename to Server/src/main/content/region/desert/dialogue/SimonTempleton.java index 47ea1a4c4..06267e58a 100644 --- a/Server/src/main/java/core/game/content/dialogue/SimonTempleton.java +++ b/Server/src/main/content/region/desert/dialogue/SimonTempleton.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.desert.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; @@ -10,7 +11,7 @@ import core.game.node.item.Item; * @author ceik */ @Initializable -public final class SimonTempleton extends DialoguePlugin{ +public final class SimonTempleton extends DialoguePlugin { public final Item[][] ARTIFACTS = { {new Item(9032),new Item(9036), new Item(9026)}, {new Item(9042), new Item(9030), new Item(9038)}, {new Item(9040), new Item(9028), new Item(9034)} }; public SimonTempleton(){ /** diff --git a/Server/src/main/java/core/game/content/zone/DesertZone.java b/Server/src/main/content/region/desert/handlers/DesertZone.java similarity index 98% rename from Server/src/main/java/core/game/content/zone/DesertZone.java rename to Server/src/main/content/region/desert/handlers/DesertZone.java index ab4bfa796..c761fa198 100644 --- a/Server/src/main/java/core/game/content/zone/DesertZone.java +++ b/Server/src/main/content/region/desert/handlers/DesertZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.desert.handlers; import java.util.ArrayList; import java.util.List; @@ -9,7 +9,7 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java b/Server/src/main/content/region/desert/handlers/KalphiteEntranceHandler.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java rename to Server/src/main/content/region/desert/handlers/KalphiteEntranceHandler.java index 15b7c22cd..0172a0622 100644 --- a/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java +++ b/Server/src/main/content/region/desert/handlers/KalphiteEntranceHandler.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.desert.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -9,7 +9,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/KalphiteQueenNPC.java b/Server/src/main/content/region/desert/handlers/KalphiteQueenNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/bosses/KalphiteQueenNPC.java rename to Server/src/main/content/region/desert/handlers/KalphiteQueenNPC.java index 5a6c3fb9e..5a4e59557 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/KalphiteQueenNPC.java +++ b/Server/src/main/content/region/desert/handlers/KalphiteQueenNPC.java @@ -1,13 +1,13 @@ -package core.game.node.entity.npc.bosses; +package content.region.desert.handlers; import java.util.ArrayList; import java.util.List; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.impl.Projectile; @@ -16,7 +16,7 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; @@ -25,7 +25,7 @@ import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import core.game.interaction.object.dmc.DMCHandler; +import content.region.kandarin.quest.dwarfcannon.dmc.DMCHandler; /** * Handles the Kalphite Queen. diff --git a/Server/src/main/java/core/game/interaction/city/KhardianDesertPlugin.java b/Server/src/main/content/region/desert/handlers/KhardianDesertPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/city/KhardianDesertPlugin.java rename to Server/src/main/content/region/desert/handlers/KhardianDesertPlugin.java index 6d473da80..ed0ba3d8c 100644 --- a/Server/src/main/java/core/game/interaction/city/KhardianDesertPlugin.java +++ b/Server/src/main/content/region/desert/handlers/KhardianDesertPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.city; +package content.region.desert.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java b/Server/src/main/content/region/desert/handlers/KhardianInteractionPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java rename to Server/src/main/content/region/desert/handlers/KhardianInteractionPlugin.java index 86562b787..c2dbc4200 100644 --- a/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java +++ b/Server/src/main/content/region/desert/handlers/KhardianInteractionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.desert.handlers; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/ShantayOptionPlugin.java b/Server/src/main/content/region/desert/handlers/ShantayOptionPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/npc/ShantayOptionPlugin.java rename to Server/src/main/content/region/desert/handlers/ShantayOptionPlugin.java index 7287e50bf..cfda8287c 100644 --- a/Server/src/main/java/core/game/interaction/npc/ShantayOptionPlugin.java +++ b/Server/src/main/content/region/desert/handlers/ShantayOptionPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.npc; +package content.region.desert.handlers; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; +import core.game.dialogue.DialogueInterpreter; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java b/Server/src/main/content/region/desert/handlers/ShantayPassPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java rename to Server/src/main/content/region/desert/handlers/ShantayPassPlugin.java index e308a0fd2..27084d03b 100644 --- a/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java +++ b/Server/src/main/content/region/desert/handlers/ShantayPassPlugin.java @@ -1,12 +1,12 @@ -package core.game.interaction.object; +package content.region.desert.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.agility.AgilityHandler; +import core.game.global.action.DoorActionHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java b/Server/src/main/content/region/desert/handlers/TollGateOptionPlugin.java similarity index 85% rename from Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java rename to Server/src/main/content/region/desert/handlers/TollGateOptionPlugin.java index a3fd99706..a07dcbed6 100644 --- a/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java +++ b/Server/src/main/content/region/desert/handlers/TollGateOptionPlugin.java @@ -1,18 +1,18 @@ -package core.game.interaction.object; +package content.region.desert.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.plugin.Initializable; import core.plugin.Plugin; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_ALKHARID_GATE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_ALKHARID_GATE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_BASE; @Initializable public class TollGateOptionPlugin extends OptionHandler { diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/AliTheCarter.java b/Server/src/main/content/region/desert/nardah/dialogue/AliTheCarter.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/AliTheCarter.java rename to Server/src/main/content/region/desert/nardah/dialogue/AliTheCarter.java index d0dca16ae..aabc56ca1 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/AliTheCarter.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/AliTheCarter.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/ArtimeusDialogue.java b/Server/src/main/content/region/desert/nardah/dialogue/ArtimeusDialogue.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/ArtimeusDialogue.java rename to Server/src/main/content/region/desert/nardah/dialogue/ArtimeusDialogue.java index 9ec0867d7..94ee6643f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/ArtimeusDialogue.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/ArtimeusDialogue.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Awusah.java b/Server/src/main/content/region/desert/nardah/dialogue/Awusah.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/Awusah.java rename to Server/src/main/content/region/desert/nardah/dialogue/Awusah.java index 91611802d..2d2f4717d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Awusah.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/Awusah.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Ghaslor.java b/Server/src/main/content/region/desert/nardah/dialogue/Ghaslor.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/Ghaslor.java rename to Server/src/main/content/region/desert/nardah/dialogue/Ghaslor.java index 4c6fec5d2..c8f1601a2 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Ghaslor.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/Ghaslor.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Kazemde.java b/Server/src/main/content/region/desert/nardah/dialogue/Kazemde.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/Kazemde.java rename to Server/src/main/content/region/desert/nardah/dialogue/Kazemde.java index 0429925dd..bd293d43c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Kazemde.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/Kazemde.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/nardah/Nkuku.kt b/Server/src/main/content/region/desert/nardah/dialogue/Nkuku.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/nardah/Nkuku.kt rename to Server/src/main/content/region/desert/nardah/dialogue/Nkuku.kt index 1be752237..8046f44af 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/nardah/Nkuku.kt +++ b/Server/src/main/content/region/desert/nardah/dialogue/Nkuku.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.nardah +package content.region.desert.nardah.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,18 +12,18 @@ import org.rs09.consts.NPCs */ @Initializable -class Nkuku(player: Player? = null) : DialoguePlugin(player){ +class Nkuku(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Good day to you.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Good day to you.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> { - npc(FacialExpression.FRIENDLY, "May Saradomin be with you.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "May Saradomin be with you.").also { stage = 99 } } 99 -> end() @@ -31,7 +31,7 @@ class Nkuku(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return Nkuku(player) } diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Rokuh.java b/Server/src/main/content/region/desert/nardah/dialogue/Rokuh.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/Rokuh.java rename to Server/src/main/content/region/desert/nardah/dialogue/Rokuh.java index b2eedb851..b7e4e4936 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Rokuh.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/Rokuh.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Seddu.java b/Server/src/main/content/region/desert/nardah/dialogue/Seddu.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/city/nardah/Seddu.java rename to Server/src/main/content/region/desert/nardah/dialogue/Seddu.java index 789027727..977d4a2f9 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/nardah/Seddu.java +++ b/Server/src/main/content/region/desert/nardah/dialogue/Seddu.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.nardah; +package content.region.desert.nardah.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/ZahurOptionPlugin.java b/Server/src/main/content/region/desert/nardah/handlers/ZahurOptionPlugin.java similarity index 89% rename from Server/src/main/java/core/game/interaction/npc/ZahurOptionPlugin.java rename to Server/src/main/content/region/desert/nardah/handlers/ZahurOptionPlugin.java index 161fef10a..11318c265 100644 --- a/Server/src/main/java/core/game/interaction/npc/ZahurOptionPlugin.java +++ b/Server/src/main/content/region/desert/nardah/handlers/ZahurOptionPlugin.java @@ -1,16 +1,16 @@ -package core.game.interaction.npc; +package content.region.desert.nardah.handlers; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; -import core.game.node.entity.skill.herblore.PotionDecantingPlugin; +import content.global.skill.herblore.PotionDecantingPlugin; /** * Handles the zahur options. diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliCamelMan.java b/Server/src/main/content/region/desert/pollniv/dialogue/AliCamelMan.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliCamelMan.java rename to Server/src/main/content/region/desert/pollniv/dialogue/AliCamelMan.java index a17a270cb..d7e15062b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliCamelMan.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliCamelMan.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheCamelHandler.java b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheCamelHandler.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheCamelHandler.java rename to Server/src/main/content/region/desert/pollniv/dialogue/AliTheCamelHandler.java index f8a43b7cf..653789938 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheCamelHandler.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheCamelHandler.java @@ -1,15 +1,15 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; diff --git a/Server/src/main/content/region/desert/pollniv/dialogue/AliTheHagDialogue.kt b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheHagDialogue.kt new file mode 100644 index 000000000..84265e1eb --- /dev/null +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheHagDialogue.kt @@ -0,0 +1,49 @@ +package content.region.desert.pollniv.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AliTheHagDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Good day, old hag.") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.LAUGH,"Old hag indeed! I have a name you know!").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.THINKING,"Let me guess it wouldn't be Ali would it?").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.ANNOYED,"Well how else would you abbreviate Alice then?", "And no, you can't call me Al!").also { stage++ } + 3 -> npc( + core.game.dialogue.FacialExpression.ASKING,"Now what do you want from the Old hag of Pollnivneach?", + "To hex someone? Power, beauty, eternal youth", "or something else drab like that?").also { stage++ } + 4 -> player(core.game.dialogue.FacialExpression.HALF_GUILTY,"Actually none of those, I'm new in town and", "I just wanted to get to know the locals.").also { stage++ } + 5 -> npc( + core.game.dialogue.FacialExpression.ANNOYED,"I'm busy brewing potions, so if you ", + "disturb me again without reason,","I will turn you into a frog!").also { stage++ } + 6 -> player(core.game.dialogue.FacialExpression.SCARED,"Oh I'm sorry I won't let it happen again.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheHagDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1871) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheKebabSeller.java b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheKebabSeller.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheKebabSeller.java rename to Server/src/main/content/region/desert/pollniv/dialogue/AliTheKebabSeller.java index 29de8fad9..fd540eabd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/AliTheKebabSeller.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheKebabSeller.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/content/region/desert/pollniv/dialogue/AliTheMayorDialogue.kt b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheMayorDialogue.kt new file mode 100644 index 000000000..b7fe15400 --- /dev/null +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheMayorDialogue.kt @@ -0,0 +1,59 @@ +package content.region.desert.pollniv.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AliTheMayorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc( + core.game.dialogue.FacialExpression.FRIENDLY,"Welcome adventurer to the town of Pollnivneach,", + "the gateway to Menaphos and Al-Kharid. My name is Ali", + "and I'm the mayor of this town.", + "I hope you enjoy your stay here.") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player( + core.game.dialogue.FacialExpression.FRIENDLY, "Thank you.", + "That is the warmest welcome I've had anywhere", + "for a while at least. People generally treat", + "travelling adventurers with suspicion.").also { stage++ } + 1 -> npc( + core.game.dialogue.FacialExpression.FRIENDLY,"All are welcome here, such is the way", + "of things in border regions.", + "Now more than ever I suppose.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"What do you mean by that?").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"There's trouble in town, and a lot of ", "villagers have left as a result.").also { stage++ } + 4 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I'm looking for someone called Ali.").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"I doubt that's easy in Pollnivneach.").also { stage++ } + 6 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Well can you help me?").also { stage++ } + 7 -> npc( + core.game.dialogue.FacialExpression.FRIENDLY,"I'm more than a little busy at the moment, ", + "I'm sure there are plenty of people ", "in town who could help you.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AliTheMayorDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1870) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheOperator.kt b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheOperator.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheOperator.kt rename to Server/src/main/content/region/desert/pollniv/dialogue/AliTheOperator.kt index 4b844b53b..3377b74cf 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheOperator.kt +++ b/Server/src/main/content/region/desert/pollniv/dialogue/AliTheOperator.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.pollnivneach +package content.region.desert.pollniv.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -11,47 +11,47 @@ import core.plugin.Initializable */ @Initializable -class AliTheOperator(player: Player? = null) : DialoguePlugin(player){ +class AliTheOperator(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello, good sir.") + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello, good sir.") stage = 0 return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npc(FacialExpression.ANNOYED,"What do you want?").also { stage++ } - 1 -> player(FacialExpression.HALF_ASKING,"I'm just new in town and have a few questions.").also { stage++ } - 2 -> npc(FacialExpression.ASKING,"What do you want to know?").also { stage++ } + 0 -> npc(core.game.dialogue.FacialExpression.ANNOYED,"What do you want?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.HALF_ASKING,"I'm just new in town and have a few questions.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.ASKING,"What do you want to know?").also { stage++ } 3 -> options ("Tell me about yourself.", "Tell me about the other people in the town.", "I'm looking for Ali.").also { stage++ } 4 -> when(buttonId){ 1 -> npc( - FacialExpression.ANNOYED, "That information is available on a need to know basis", + core.game.dialogue.FacialExpression.ANNOYED, "That information is available on a need to know basis", "and right now, you don't need to know.").also { stage = 10 } 2 -> npc( - FacialExpression.SUSPICIOUS,"Sheep, ready for the slau... ", + core.game.dialogue.FacialExpression.SUSPICIOUS,"Sheep, ready for the slau... ", "hang on I shouldn't be saying..., ", "listen I don't want to talk about them.").also { stage = 10 } 3 -> npc( - FacialExpression.ANNOYED,"You will have to be a lot more specific if ", + core.game.dialogue.FacialExpression.ANNOYED,"You will have to be a lot more specific if ", "you want help finding him. ", "Everyone here is called Ali.").also { stage = 30 } } - 10 -> npc(FacialExpression.HALF_ASKING,"Can I help you with anything else?").also { stage++ } + 10 -> npc(core.game.dialogue.FacialExpression.HALF_ASKING,"Can I help you with anything else?").also { stage++ } 11 -> options ("Yes I'd like to ask you about something else.", "No thanks.").also { stage++ } 12 -> when(buttonId) { - 1 -> npc(FacialExpression.ASKING,"What do you want to know?").also { stage = 3 } + 1 -> npc(core.game.dialogue.FacialExpression.ASKING,"What do you want to know?").also { stage = 3 } 2 -> end() } 30 -> player( - FacialExpression.HALF_ASKING,"I've discovered that. Well he has an uncle called", + core.game.dialogue.FacialExpression.HALF_ASKING,"I've discovered that. Well he has an uncle called", "Ali Morrisane, a market vendor in Al Kharid and","that's all I really know about him.").also { stage++ } 31 -> npc( - FacialExpression.ANNOYED,"Say no more. I too am looking for him. ", + core.game.dialogue.FacialExpression.ANNOYED,"Say no more. I too am looking for him. ", "The little tyke robbed me too. If we work together,", "perhaps we can catch him and teach him ","a lesson.").also { stage = 10 } 99 -> end() @@ -59,7 +59,7 @@ class AliTheOperator(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AliTheOperator(player) } diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/BlackJackSeller.java b/Server/src/main/content/region/desert/pollniv/dialogue/BlackJackSeller.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/BlackJackSeller.java rename to Server/src/main/content/region/desert/pollniv/dialogue/BlackJackSeller.java index fcb004294..bab4965dc 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/BlackJackSeller.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/BlackJackSeller.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/DesertBandit.java b/Server/src/main/content/region/desert/pollniv/dialogue/DesertBandit.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/DesertBandit.java rename to Server/src/main/content/region/desert/pollniv/dialogue/DesertBandit.java index ebbe9fd35..6eaaa9f81 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/DesertBandit.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/DesertBandit.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; import core.cache.def.impl.NPCDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/StreetUrchinDialogue.java b/Server/src/main/content/region/desert/pollniv/dialogue/StreetUrchinDialogue.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/StreetUrchinDialogue.java rename to Server/src/main/content/region/desert/pollniv/dialogue/StreetUrchinDialogue.java index d452edcdc..ff307b62f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/StreetUrchinDialogue.java +++ b/Server/src/main/content/region/desert/pollniv/dialogue/StreetUrchinDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/SnakeCharmerBasket.java b/Server/src/main/content/region/desert/pollniv/handlers/SnakeCharmerBasket.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/SnakeCharmerBasket.java rename to Server/src/main/content/region/desert/pollniv/handlers/SnakeCharmerBasket.java index 9e9609e84..49b940a85 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/pollnivneach/SnakeCharmerBasket.java +++ b/Server/src/main/content/region/desert/pollniv/handlers/SnakeCharmerBasket.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.pollnivneach; +package content.region.desert.pollniv.handlers; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/deserttreasure/ArchaeologistDialogue.kt b/Server/src/main/content/region/desert/quest/deserttreasure/ArchaeologistDialogue.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/quest/members/deserttreasure/ArchaeologistDialogue.kt rename to Server/src/main/content/region/desert/quest/deserttreasure/ArchaeologistDialogue.kt index 83327508c..4ad567996 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/deserttreasure/ArchaeologistDialogue.kt +++ b/Server/src/main/content/region/desert/quest/deserttreasure/ArchaeologistDialogue.kt @@ -1,8 +1,8 @@ package rs09.game.content.dialogue.region.lletya -import api.setQuestStage -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.setQuestStage +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills @@ -14,7 +14,7 @@ import org.rs09.consts.NPCs */ @Initializable -class ArchaeologistDialogue(player: Player? = null) : DialoguePlugin(player){ +class ArchaeologistDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC @@ -29,9 +29,9 @@ class ArchaeologistDialogue(player: Player? = null) : DialoguePlugin(player){ player.skills.getStaticLevel(Skills.FIREMAKING) >= 50 && player.skills.getStaticLevel(Skills.MAGIC) >= 50 && player.skills.getStaticLevel(Skills.THIEVING) >= 53 ) { - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } } else { - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 999 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 999 } } } else { @@ -46,36 +46,36 @@ class ArchaeologistDialogue(player: Player? = null) : DialoguePlugin(player){ 999 -> sendDialogue("He seems to be lost in his own thoughts...").also { stage = 99 } - 0 -> npc(FacialExpression.FRIENDLY, "Howdy stranger. What brings you out to these parts?").also { stage++ } + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Howdy stranger. What brings you out to these parts?").also { stage++ } 1 -> options("What are you doing here?", "Do you have any quests?", "Who are you?", "Nothing really.").also { stage++ } 2 -> when (buttonId) { //1 -> todo - 2 -> player(FacialExpression.FRIENDLY, "Do you have any quests?", "Call it a hunch, but you look like the type of man who", "might...").also { stage = 20 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Do you have any quests?", "Call it a hunch, but you look like the type of man who", "might...").also { stage = 20 } //3 -> todo //4 -> todo } - 20 -> npc(FacialExpression.HALF_THINKING, "Well, it's funny you should say that.", + 20 -> npc(core.game.dialogue.FacialExpression.HALF_THINKING, "Well, it's funny you should say that.", "I'm not sure if I would really call it a quest as such,", "but I found this ancient stone tablet in one of my", "excavations, and it would really help me out if you").also { stage++ } - 21 -> npc(FacialExpression.FRIENDLY, "could go and take it back to the digsite for me and get", + 21 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "could go and take it back to the digsite for me and get", "it examined.").also { stage++ } - 22 -> npc(FacialExpression.NEUTRAL, "It's very old, and I don't recognise and of the", + 22 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "It's very old, and I don't recognise and of the", "inscriptions on it.").also { stage++ } 23 -> options("Yes, I'll help you.", "No thanks, I don't want to help.").also { stage++ } 24 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Sure, I was heading that way anyways.", + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Sure, I was heading that way anyways.", "Any particular person at the digsite you want me to", "talk to?").also { stage = 30 } // 2 -> todo } - 30 -> npc(FacialExpression.NEUTRAL, "His name's Terry Balando. Give it to nobody but him.", + 30 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "His name's Terry Balando. Give it to nobody but him.", "I'm sorry, I can't entrust you with the actual tablet I", "found, but it is far too valuable to give away, but I took", "these etchings - they should be enough for him to make").also { stage++ } - 31 -> npc(FacialExpression.NEUTRAL, "a preliminary translation on.", + 31 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "a preliminary translation on.", "Come back and let me know what he says, I would hate", "to waste my time excavating anything that isn't worth", "my time as a world famous archaeologist!").also { @@ -92,7 +92,7 @@ class ArchaeologistDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ArchaeologistDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/deserttreasure/DesertTreasure.kt b/Server/src/main/content/region/desert/quest/deserttreasure/DesertTreasure.kt similarity index 100% rename from Server/src/main/kotlin/rs09/game/content/quest/members/deserttreasure/DesertTreasure.kt rename to Server/src/main/content/region/desert/quest/deserttreasure/DesertTreasure.kt diff --git a/Server/src/main/java/core/game/content/quest/members/icthlarinslittlehelper/WandererDialogue.java b/Server/src/main/content/region/desert/quest/icthlarinslittlehelper/WandererDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/quest/members/icthlarinslittlehelper/WandererDialogue.java rename to Server/src/main/content/region/desert/quest/icthlarinslittlehelper/WandererDialogue.java index 660e1a777..956ba2537 100644 --- a/Server/src/main/java/core/game/content/quest/members/icthlarinslittlehelper/WandererDialogue.java +++ b/Server/src/main/content/region/desert/quest/icthlarinslittlehelper/WandererDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.icthlarinslittlehelper; +package content.region.desert.quest.icthlarinslittlehelper; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/content/region/desert/quest/thegolem/TheGolemDialogue.kt b/Server/src/main/content/region/desert/quest/thegolem/TheGolemDialogue.kt new file mode 100644 index 000000000..a741f81f9 --- /dev/null +++ b/Server/src/main/content/region/desert/quest/thegolem/TheGolemDialogue.kt @@ -0,0 +1,438 @@ +package content.region.desert.quest.thegolem + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.book.Book +import core.game.dialogue.book.BookLine +import core.game.dialogue.book.Page +import core.game.dialogue.book.PageSet +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.game.dialogue.DialogueBuilder +import core.game.dialogue.DialogueBuilderFile + +@Initializable +public final class ClayGolemDialoguePlugin(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return ClayGolemDialoguePlugin(player) + } + override fun open(vararg objects: Any?): Boolean { + npc = objects[0] as NPC + player.dialogueInterpreter.open(ClayGolemDialogueFile(), npc) + return true + } + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + return false + } + override fun getIds(): IntArray { + return intArrayOf(1907, NPCs.BROKEN_CLAY_GOLEM_1908, NPCs.DAMAGED_CLAY_GOLEM_1909, NPCs.CLAY_GOLEM_1910) + } +} + +class ClayGolemDialogueFile : core.game.dialogue.DialogueBuilderFile() { + override fun create(b: core.game.dialogue.DialogueBuilder) { + val opt1 = b.onQuestStages("The Golem", 0) + .npc("Damage... severe...", "task... incomplete...") + .options() + opt1 + .optionIf("Shall I try to repair you?") { player -> return@optionIf player.questRepository.getQuest("The Golem").hasRequirements(player) } + .playerl("Shall I try to repair you?") + .npcl("Repairs... needed...") + .endWith(){ player -> if (player.questRepository.getStage("The Golem") < 1 ) { setQuestStage(player, "The Golem", 1) } } + opt1 + .option("I'm not going to find a conversation here!") + .playerl("I'm not going to find a conversation here!") + .end() + b.onQuestStages("The Golem", 1) + .npcl("Repairs... needed...") + .end() + b.onQuestStages("The Golem", 2) + .npcl("Damage repaired...") + .npcl("Thank you. My body and mind are fully healed.") + .npcl("Now I must complete my task by defeating the great enemy.") + .playerl("What enemy?") + .npcl("A great demon. It broke through from its dimension to attack the city.") + .npcl("The golem army was created to fight it. Many were destroyed, but we drove the demon back!") + .npcl("The demon is still wounded. You must open the portal so that I can strike the final blow and complete my task.") + .endWith() { player -> setQuestStage(player, "The Golem", 3) } + b.onQuestStages("The Golem", 3) + .npcl("The demon is still wounded. You must open the portal so that I can strike the final blow and complete my task.") + .end() + b.onQuestStages("The Golem", 4) + .npcl("My task is incomplete. You must open the portal so I can defeat the great demon.") + .playerl("It's ok, the demon is dead!") + .npcl("The demon must be defeated...") + .playerl("No, you don't understand. I saw the demon's skeleton. It must have died of its wounds.") + .npcl("Demon must be defeated! Task incomplete.") + .endWith() { player -> setQuestStage(player, "The Golem", 5) } + b.onQuestStages("The Golem", 5) + .npcl("Task incomplete.") + .playerl("Oh, how am I going to convince you?") + .endWith() { player -> setQuestStage(player, "The Golem", 6) } + b.onQuestStages("The Golem", 6, 7) + .npcl("My task is incomplete. You must open the portal so I can defeat the great demon.") + .playerl("I already told you, he's dead!") + .npcl("Task incomplete.") + .playerl("Oh, how am I going to convince you?") + .endWith() { player -> if(player.questRepository.getStage("The Golem") < 7) { setQuestStage(player, "The Golem", 7) } } + } +} + +class ClayGolemProgramDialogueFile : core.game.dialogue.DialogueBuilderFile() { + override fun create(b: core.game.dialogue.DialogueBuilder) { + b.onQuestStages("The Golem", 8) + .npc("New instructions...", "Updating program...") + .npcl("Task complete!") + .npcl("Thank you. Now my mind is at rest.") + .endWith() { player -> finishQuest(player, "The Golem") } + } +} + +class CuratorHaigHalenGolemDialogue : core.game.dialogue.DialogueBuilderFile() { + override fun create(b: core.game.dialogue.DialogueBuilder) { + val opt1 = b.onQuestStages("The Golem", 3) + .npcl("Ah yes, a very impressive artefact. The people of that city were excellent sculptors.") + .npcl("It's in the display case upstairs.") + .playerl("No, I need to take it away with me.") + .npcl("What do you want it for?") + .options() + opt1 + .option("I want to open a portal to the lair of an elder-demon.") + .playerl("I want to open a portal to the lair of an elder-demon.") + .npcl("Good heavens! I'd never let you do such a dangerous thing.") + .end() + opt1 + .option("Well, I, er, just want it.") + .playerl("Well, I, er, just want it.") + .end() + } +} + +val LETTER_LINES = arrayOf( + "", + "", + "Dearest Varmen,", + "I hope this finds you well. Here are the books you asked for", + "There has been an exciting development closer to home --", + "another city from the same period has been discovered east", + "of Varrock, and we are starting a huge excavation project", + "here. I don't know if the museum will be able to finance your", + "expedition as well as this one, so I fear your current trip will be", + "the last.", + "May Saradomin grant you a safe journey home", + "Your loving Elissa.", + ) + +val VARMEN_NOTES = arrayOf( + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Septober 19:", 55), + core.game.dialogue.book.BookLine("The nomads were right:", 56), + core.game.dialogue.book.BookLine("there is a city here,", 57), + core.game.dialogue.book.BookLine("probably buried for", 58), + core.game.dialogue.book.BookLine("millenia and revealed by", 59), + core.game.dialogue.book.BookLine("the random motions of", 60), + core.game.dialogue.book.BookLine("the sand. The", 61), + core.game.dialogue.book.BookLine("architecture is impressive", 62), + core.game.dialogue.book.BookLine("even in ruin, and must", 63), + core.game.dialogue.book.BookLine("once have been amazing.", 64), + core.game.dialogue.book.BookLine("One puzzling factor is the", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("pottery -- there are", 66), + core.game.dialogue.book.BookLine("fragments all over the", 67), + core.game.dialogue.book.BookLine("ruins, surely too much", 68), + core.game.dialogue.book.BookLine("for a city even of this", 69), + core.game.dialogue.book.BookLine("size. We have set up", 70), + core.game.dialogue.book.BookLine("camp and will do a proper", 71), + core.game.dialogue.book.BookLine("survey tomorrow.", 72), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Septober 20:", 55), + core.game.dialogue.book.BookLine("The meaning of the", 56), + core.game.dialogue.book.BookLine("pottery was explained", 57), + core.game.dialogue.book.BookLine("today in a most", 58), + core.game.dialogue.book.BookLine("surprising manner. We", 59), + core.game.dialogue.book.BookLine("found a mostly-intact clay", 60), + core.game.dialogue.book.BookLine("statue buried up to its", 61), + core.game.dialogue.book.BookLine("waist in sand, and as", 62), + core.game.dialogue.book.BookLine("soon as we dug it out, it", 63), + core.game.dialogue.book.BookLine("started to walk around! It", 64), + core.game.dialogue.book.BookLine("is a clay golem, built by", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("the city's inhabitants and", 66), + core.game.dialogue.book.BookLine("dormant all this time. Its", 67), + core.game.dialogue.book.BookLine("head is badly damaged", 68), + core.game.dialogue.book.BookLine("and it is", 69), + core.game.dialogue.book.BookLine("uncommunicative, but its", 70), + core.game.dialogue.book.BookLine("existence tells us that the", 71), + core.game.dialogue.book.BookLine("city's inhabitants were", 72), + core.game.dialogue.book.BookLine("expert magical craftsmen.", 73), + core.game.dialogue.book.BookLine("The huge kilns in some", 74), + core.game.dialogue.book.BookLine("of the buildings indicate", 75), + core.game.dialogue.book.BookLine("that at some point before", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("its destruction the whole", 55), + core.game.dialogue.book.BookLine("city was converted to the", 56), + core.game.dialogue.book.BookLine("manufacture of these", 57), + core.game.dialogue.book.BookLine("golems.", 58), + core.game.dialogue.book.BookLine("", 59), + core.game.dialogue.book.BookLine("We have also examined", 60), + core.game.dialogue.book.BookLine("the carvings on the large", 61), + core.game.dialogue.book.BookLine("building in the centre.", 62), + core.game.dialogue.book.BookLine("These are symbols", 63), + core.game.dialogue.book.BookLine("depicting several of the", 64), + core.game.dialogue.book.BookLine("ancient gods, including", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Saradomin, Zamorak, and", 66), + core.game.dialogue.book.BookLine("Armadyl, but there is", 67), + core.game.dialogue.book.BookLine("another prominent symbol", 68), + core.game.dialogue.book.BookLine("that I cannot identify. As", 69), + core.game.dialogue.book.BookLine("it seems we will need to", 70), + core.game.dialogue.book.BookLine("be here for longer than I", 71), + core.game.dialogue.book.BookLine("had thought, I have sent", 72), + core.game.dialogue.book.BookLine("to Elissa for books on", 73), + core.game.dialogue.book.BookLine("golems and religious", 74), + core.game.dialogue.book.BookLine("symbols.", 75), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Septober 21:", 55), + core.game.dialogue.book.BookLine("As we examine the ruins", 56), + core.game.dialogue.book.BookLine("one thing becomes", 57), + core.game.dialogue.book.BookLine("increasingly clear: most", 58), + core.game.dialogue.book.BookLine("of the damage was not", 59), + core.game.dialogue.book.BookLine("due to weathering. The", 60), + core.game.dialogue.book.BookLine("buildings were destroyed", 61), + core.game.dialogue.book.BookLine("by force, as if torn down", 62), + core.game.dialogue.book.BookLine("by giant hands.", 63), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Septober 22:", 66), + core.game.dialogue.book.BookLine("A breakthrough! We have", 67), + core.game.dialogue.book.BookLine("found the staircase into", 68), + core.game.dialogue.book.BookLine("the lower levels of the", 69), + core.game.dialogue.book.BookLine("temple. This part has", 70), + core.game.dialogue.book.BookLine("been untouched by the", 71), + core.game.dialogue.book.BookLine("elements, and the", 72), + core.game.dialogue.book.BookLine("carvings here are more", 73), + core.game.dialogue.book.BookLine("intact, especially four", 74), + core.game.dialogue.book.BookLine("beautiful statuettes in", 75), + core.game.dialogue.book.BookLine("alcoves framing the large", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("door. I have removed one", 55), + core.game.dialogue.book.BookLine("of them. The door will", 56), + core.game.dialogue.book.BookLine("not open. I am glad I", 57), + core.game.dialogue.book.BookLine("sent for a book on", 58), + core.game.dialogue.book.BookLine("symbols, as the", 59), + core.game.dialogue.book.BookLine("unidentified symbol is", 60), + core.game.dialogue.book.BookLine("even more prominent", 61), + core.game.dialogue.book.BookLine("here, especially on the", 62), + core.game.dialogue.book.BookLine("door.", 63), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Septober 23:", 66), + core.game.dialogue.book.BookLine("Our messenger returned", 67), + core.game.dialogue.book.BookLine("with the books I asked for", 68), + core.game.dialogue.book.BookLine("and a letter from Elissa.", 69), + core.game.dialogue.book.BookLine("It is unfortunate that the", 70), + core.game.dialogue.book.BookLine("museum will not be able", 71), + core.game.dialogue.book.BookLine("to finance a full-scale", 72), + core.game.dialogue.book.BookLine("excavation here as well as", 73), + core.game.dialogue.book.BookLine("the one closer to Varrock,", 74), + core.game.dialogue.book.BookLine("although I am of course", 75), + core.game.dialogue.book.BookLine("pleased that the other city", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("has been uncovered. But", 55), + core.game.dialogue.book.BookLine("with the books I am able", 56), + core.game.dialogue.book.BookLine("to piece together more of", 57), + core.game.dialogue.book.BookLine("the story of this city.", 58), + core.game.dialogue.book.BookLine("", 59), + core.game.dialogue.book.BookLine("The unidentified symbol", 60), + core.game.dialogue.book.BookLine("in the ruins is that of the", 61), + core.game.dialogue.book.BookLine("demon Thammaron, who", 62), + core.game.dialogue.book.BookLine("was Zamorak's chief", 63), + core.game.dialogue.book.BookLine("lieutenant during the", 64), + core.game.dialogue.book.BookLine("godwars of the Third", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Age. With that", 66), + core.game.dialogue.book.BookLine("information I can say", 67), + core.game.dialogue.book.BookLine("with confidence that these", 68), + core.game.dialogue.book.BookLine("are the ruins of Uzer, an", 69), + core.game.dialogue.book.BookLine("advanced human", 70), + core.game.dialogue.book.BookLine("civilization said to have", 71), + core.game.dialogue.book.BookLine("been destroyed towards", 72), + core.game.dialogue.book.BookLine("the end of the Third Age", 73), + core.game.dialogue.book.BookLine("(roughly 2,500 years", 74), + core.game.dialogue.book.BookLine("ago). It was allied with", 75), + core.game.dialogue.book.BookLine("Saradomin and enjoyed", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("his protection, as well as", 55), + core.game.dialogue.book.BookLine("that of its own mages and", 56), + core.game.dialogue.book.BookLine("warriors. Thammaron was", 57), + core.game.dialogue.book.BookLine("able to open a portal from", 58), + core.game.dialogue.book.BookLine("his own domain straight", 59), + core.game.dialogue.book.BookLine("into the heart of the city,", 60), + core.game.dialogue.book.BookLine("bypassing its defences.", 61), + core.game.dialogue.book.BookLine("With Saradomin's help the", 62), + core.game.dialogue.book.BookLine("army of Uzer was able to", 63), + core.game.dialogue.book.BookLine("drive Thammaron back,", 64), + core.game.dialogue.book.BookLine("but the record ends at", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("that point and it has", 66), + core.game.dialogue.book.BookLine("always been assumed that", 67), + core.game.dialogue.book.BookLine("a later attack, either by", 68), + core.game.dialogue.book.BookLine("Thammaron or by", 69), + core.game.dialogue.book.BookLine("Zamorak's other forces,", 70), + core.game.dialogue.book.BookLine("finished the city off.", 71), + core.game.dialogue.book.BookLine("", 72), + core.game.dialogue.book.BookLine("Examining the door", 73), + core.game.dialogue.book.BookLine("again, I now see that it is", 74), + core.game.dialogue.book.BookLine("exactly the sort of door", 75), + core.game.dialogue.book.BookLine("that could be used to seal", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Thammaron's portal. I am", 55), + core.game.dialogue.book.BookLine("suddently glad I was not", 56), + core.game.dialogue.book.BookLine("able to open it! I surmise", 57), + core.game.dialogue.book.BookLine("that the army of golems", 58), + core.game.dialogue.book.BookLine("was created in order to", 59), + core.game.dialogue.book.BookLine("fight the demon, since", 60), + core.game.dialogue.book.BookLine("Uzer's army had been", 61), + core.game.dialogue.book.BookLine("wiped out and", 62), + core.game.dialogue.book.BookLine("Saradomin's forces were", 63), + core.game.dialogue.book.BookLine("increasingly stretched.", 64), + core.game.dialogue.book.BookLine("However, this approach", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("evidently failed, since the", 66), + core.game.dialogue.book.BookLine("city was eventually", 67), + core.game.dialogue.book.BookLine("destroyed.", 68), + core.game.dialogue.book.BookLine("", 69), + core.game.dialogue.book.BookLine("The art of the", 70), + core.game.dialogue.book.BookLine("construction of golems", 71), + core.game.dialogue.book.BookLine("has been lost since the", 72), + core.game.dialogue.book.BookLine("Third Age, and, although", 73), + core.game.dialogue.book.BookLine("they are sometimes", 74), + core.game.dialogue.book.BookLine("discovered lying dormant", 75), + core.game.dialogue.book.BookLine("in the ground, no", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("concerted effort has been", 55), + core.game.dialogue.book.BookLine("made to regain it, thanks", 56), + core.game.dialogue.book.BookLine("largely to the modern", 57), + core.game.dialogue.book.BookLine("Saradomist Church's view", 58), + core.game.dialogue.book.BookLine("of them as unnatural.", 59), + core.game.dialogue.book.BookLine("This view is without", 60), + core.game.dialogue.book.BookLine("foundation, as golems are", 61), + core.game.dialogue.book.BookLine("neither good nor evil but", 62), + core.game.dialogue.book.BookLine("follow instructions they", 63), + core.game.dialogue.book.BookLine("are given to the letter", 64), + core.game.dialogue.book.BookLine("and without imagination,", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("indeed experiencing", 66), + core.game.dialogue.book.BookLine("extreme discomfort for as", 67), + core.game.dialogue.book.BookLine("long as a task assigned to", 68), + core.game.dialogue.book.BookLine("them remains incomplete.", 69), + core.game.dialogue.book.BookLine("Some golems were", 70), + core.game.dialogue.book.BookLine("constructed to obey", 71), + core.game.dialogue.book.BookLine("verbal instructions, but", 72), + core.game.dialogue.book.BookLine("the main method of", 73), + core.game.dialogue.book.BookLine("instruction was to place", 74), + core.game.dialogue.book.BookLine("magical words into the", 75), + core.game.dialogue.book.BookLine("golem's skull cavity.", 76), + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("These were written on", 55), + core.game.dialogue.book.BookLine("papyrus using a naturally", 56), + core.game.dialogue.book.BookLine("occurring source of ink,", 57), + core.game.dialogue.book.BookLine("and their magical power", 58), + core.game.dialogue.book.BookLine("derived from the use of a", 59), + core.game.dialogue.book.BookLine("phoenix tail feather as a", 60), + core.game.dialogue.book.BookLine("pen. These would be used", 61), + core.game.dialogue.book.BookLine("for long-term or", 62), + core.game.dialogue.book.BookLine("important tasks, and", 63), + core.game.dialogue.book.BookLine("would override any verbal", 64), + core.game.dialogue.book.BookLine("instructions.", 65), + ) + ) +) + +@Initializable +class VarmensNotesHandler : core.game.dialogue.book.Book { + constructor() {} + constructor(player: Player?) : super(player, "The Ruins of Uzer", Items.VARMENS_NOTES_4616, *VARMEN_NOTES) {} + override fun finish() { + player.setAttribute("/save:the-golem:varmen-notes-read", true) + } + + override fun display(set: Array) { + player.interfaceManager.open(getInterface()) + + for (i in 55..76) { + player.packetDispatch.sendString("", getInterface().id, i) + } + player.packetDispatch.sendString("", getInterface().id, 77) + player.packetDispatch.sendString("", getInterface().id, 78) + player.packetDispatch.sendString(getName(), getInterface().id, 6) + for (page in set) { + for (line in page.lines) { + player.packetDispatch.sendString(line.message, getInterface().id, line.child) + } + } + player.packetDispatch.sendInterfaceConfig(getInterface().id, 51, index < 1) + val lastPage = index == sets.size - 1 + player.packetDispatch.sendInterfaceConfig(getInterface().id, 53, lastPage) + if (lastPage) { + finish() + } + } + + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return VarmensNotesHandler(player) + } + + override fun getIds(): IntArray { + return intArrayOf(Items.VARMENS_NOTES_4616) + } +} + +val DISPLAY_CASE_TEXT = arrayOf("3rd age - yr 3000-4000", + "", + "This statuette was found in an underground", + "temple in the ruined city of Uzer, which was", + "destroyed late in the 3rd Age, suddenly, due to", + "causes unknown. It probably represents one of", + "the clay golems that the craftsmen of the city", + "built as warriors and servants. The statuette", + "was originally part of a mechanism whose", + "purpose is unknown.") diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemQuest.kt b/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemQuest.kt rename to Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt index 71965ff76..aba40c179 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemQuest.kt +++ b/Server/src/main/content/region/desert/quest/thegolem/TheGolemQuest.kt @@ -1,11 +1,8 @@ -package rs09.game.content.quest.members.thegolem +package content.region.desert.quest.thegolem -import api.* -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.SpecialLadders; +import core.api.* import core.game.node.Node import core.game.node.entity.npc.AbstractNPC -import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills @@ -18,14 +15,10 @@ import core.plugin.Initializable import core.tools.RandomFunction import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueBuilder -import rs09.game.content.dialogue.DialogueBuilderFile -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.InterfaceListener -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.InterfaceListener +import core.game.world.GameWorld @Initializable class TheGolemQuest : Quest("The Golem", 70, 69, 1, 437, 0, 1, 10) { @@ -377,8 +370,8 @@ class TheGolemListeners : InteractionListener { override fun defineListeners() { onUseWith(IntType.NPC, Items.SOFT_CLAY_1761, 1907) { player, used, with -> return@onUseWith repairGolem(player) } - on(34978, IntType.SCENERY, "climb-down") { player, node -> ClimbActionHandler.climb(player, ClimbActionHandler.CLIMB_DOWN, SpecialLadders.getDestination(node.location)); return@on true } - on(6372, IntType.SCENERY, "climb-up") { player, node -> ClimbActionHandler.climb(player, ClimbActionHandler.CLIMB_UP, SpecialLadders.getDestination(node.location)); return@on true } + on(34978, IntType.SCENERY, "climb-down") { player, node -> core.game.global.action.ClimbActionHandler.climb(player, core.game.global.action.ClimbActionHandler.CLIMB_DOWN, core.game.global.action.SpecialLadders.getDestination(node.location)); return@on true } + on(6372, IntType.SCENERY, "climb-up") { player, node -> core.game.global.action.ClimbActionHandler.climb(player, core.game.global.action.ClimbActionHandler.CLIMB_UP, core.game.global.action.SpecialLadders.getDestination(node.location)); return@on true } on(4615, IntType.ITEM, "read") { player, node -> player.setAttribute("ifaces:220:lines", LETTER_LINES) player.setAttribute("/save:the-golem:read-elissa-letter", true) diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/AlShabimDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/AlShabimDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/AlShabimDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/AlShabimDialogue.java index febde8bdf..93e263e25 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/AlShabimDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/AlShabimDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/AnaDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/AnaDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/AnaDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/AnaDialogue.java index 2c957e843..6f5d0444a 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/AnaDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/AnaDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.npc.AbstractNPC; @@ -8,11 +8,11 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The dialogue plugin used to handle the ana npc. diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/BedabinNomadDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/BedabinNomadDialogue.java index 20ea36f0d..e4a1b05d6 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/BedabinNomadDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/CaptainSiadDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/CaptainSiadDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/CaptainSiadDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/CaptainSiadDialogue.java index 6839eba09..447929a6c 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/CaptainSiadDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/CaptainSiadDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/DesertGuardDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/DesertGuardDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/DesertGuardDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/DesertGuardDialogue.java index 12050b4cf..e979daefd 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/DesertGuardDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/DesertGuardDialogue.java @@ -1,17 +1,17 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import java.util.List; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/IrenaDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/IrenaDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/IrenaDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/IrenaDialogue.java index 6ec1cc6d0..19b3b768f 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/IrenaDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/IrenaDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MaleSlaveDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/MaleSlaveDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MaleSlaveDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MaleSlaveDialogue.java index 3aa5ab409..2ee5e3456 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MaleSlaveDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MaleSlaveDialogue.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryCaptainDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/MercenaryCaptainDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryCaptainDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MercenaryCaptainDialogue.java index c90d3b87a..f959a1fbe 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryCaptainDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MercenaryCaptainDialogue.java @@ -1,13 +1,13 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.world.map.Location; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the mercenary captain dialogue plugin. diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/MercenaryDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MercenaryDialogue.java index d97a2263a..c9fd6d862 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MercenaryDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MercenaryDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MineSlaveNPC.java b/Server/src/main/content/region/desert/quest/thetouristrap/MineSlaveNPC.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MineSlaveNPC.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MineSlaveNPC.java index e9cbaf1b4..c0e77e062 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MineSlaveNPC.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MineSlaveNPC.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import core.game.node.entity.npc.AbstractNPC; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MinecartDriverDialogue.java b/Server/src/main/content/region/desert/quest/thetouristrap/MinecartDriverDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MinecartDriverDialogue.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MinecartDriverDialogue.java index e2c2ff30a..688320289 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MinecartDriverDialogue.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MinecartDriverDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MiningCampZone.java b/Server/src/main/content/region/desert/quest/thetouristrap/MiningCampZone.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/MiningCampZone.java rename to Server/src/main/content/region/desert/quest/thetouristrap/MiningCampZone.java index b569aeceb..75aa27944 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/MiningCampZone.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/MiningCampZone.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import core.game.interaction.Option; import core.game.node.Node; @@ -6,7 +6,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/RowdySlaveNPC.java b/Server/src/main/content/region/desert/quest/thetouristrap/RowdySlaveNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/RowdySlaveNPC.java rename to Server/src/main/content/region/desert/quest/thetouristrap/RowdySlaveNPC.java index d07887c21..0146e4f54 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/RowdySlaveNPC.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/RowdySlaveNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -11,7 +11,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrap.java b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrap.java rename to Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java index 161fd8033..be6ba786a 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrap.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrap.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import core.game.component.Component; import core.game.container.impl.EquipmentContainer; @@ -7,11 +7,11 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The main type for the tourist trap quest. diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java rename to Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java index 4d2de19cd..370f262b8 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java +++ b/Server/src/main/content/region/desert/quest/thetouristrap/TouristTrapPlugin.java @@ -1,19 +1,19 @@ -package core.game.content.quest.members.thetouristrap; +package content.region.desert.quest.thetouristrap; import core.cache.def.impl.AnimationDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.SkillPulse; -import core.game.node.entity.skill.smithing.smelting.Bar; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.smithing.smelting.Bar; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -26,17 +26,17 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; -import core.game.content.quest.members.thetouristrap.TouristTrapPlugin.AnnaCartHandler.AnnaCartCutscene; -import core.game.content.quest.members.thetouristrap.TouristTrapPlugin.BedabinAnvilHandler.AnnaWinchHandler; +import content.region.desert.quest.thetouristrap.TouristTrapPlugin.AnnaCartHandler.AnnaCartCutscene; +import content.region.desert.quest.thetouristrap.TouristTrapPlugin.BedabinAnvilHandler.AnnaWinchHandler; /** * Represents the plugin used to handle interactions for tourist trap. diff --git a/Server/src/main/content/region/desert/sophanem/dialogue/EmbalmerDialogue.kt b/Server/src/main/content/region/desert/sophanem/dialogue/EmbalmerDialogue.kt new file mode 100644 index 000000000..60e13e00f --- /dev/null +++ b/Server/src/main/content/region/desert/sophanem/dialogue/EmbalmerDialogue.kt @@ -0,0 +1,41 @@ +package content.region.desert.sophanem.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class EmbalmerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"What are you doing?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I have this acne potion which I thought might help ease your itching.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "If I thought that these spots could be cured by some potion, I would have mixed up one myself before now.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.SAD, "Sorry, I was just trying to help.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return EmbalmerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.EMBALMER_1980) + } +} diff --git a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/KlenterNPC.java b/Server/src/main/content/region/desert/sophanem/dialogue/KlenterNPC.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/npc/city/sophanem/KlenterNPC.java rename to Server/src/main/content/region/desert/sophanem/dialogue/KlenterNPC.java index c13299fe6..70e046b16 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/KlenterNPC.java +++ b/Server/src/main/content/region/desert/sophanem/dialogue/KlenterNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.sophanem; +package content.region.desert.sophanem.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/SphinxDialogue.java b/Server/src/main/content/region/desert/sophanem/dialogue/SphinxDialogue.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/sophanem/SphinxDialogue.java rename to Server/src/main/content/region/desert/sophanem/dialogue/SphinxDialogue.java index 3ae8d15cb..0d94a4972 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/SphinxDialogue.java +++ b/Server/src/main/content/region/desert/sophanem/dialogue/SphinxDialogue.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.city.sophanem; +package content.region.desert.sophanem.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/TarikDialogue.kt b/Server/src/main/content/region/desert/sophanem/dialogue/TarikDialogue.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/TarikDialogue.kt rename to Server/src/main/content/region/desert/sophanem/dialogue/TarikDialogue.kt index 8c0b54fcc..e12795c91 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/TarikDialogue.kt +++ b/Server/src/main/content/region/desert/sophanem/dialogue/TarikDialogue.kt @@ -1,15 +1,16 @@ -package rs09.game.content.dialogue.region.sophanem +package content.region.desert.sophanem.dialogue -import api.setAttribute -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.sendDialogue +import core.api.setAttribute +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE @Initializable -class TarikDialogue(player: Player? = null) : DialoguePlugin(player) { +class TarikDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { npcl(FacialExpression.WORRIED, "Ouch!") return true @@ -49,7 +50,7 @@ class TarikDialogue(player: Player? = null) : DialoguePlugin(player) { 34 -> playerl(FacialExpression.HAPPY, "Bah, I laugh in the face of danger!").also { stage++ } 35 -> npcl(FacialExpression.FRIENDLY, "Well, if you go into that pyramid then you'll be laughing a lot then. It's full of poisonous snakes and scarabs, and rather nasty Mummies as well. You could die in there.").also { stage++ } 36 -> npcl(FacialExpression.FRIENDLY, "I managed to get into one room, but the next room was harder. My lockpicking skills weren't good enough, maybe I should have brought a lockpick.").also { stage++ } - 37 -> api.sendDialogue(player, "The first room in the pyramid requires a thieving level of 21. Each subsequent room requires an extra 10 levels to enter.").also { stage++ } + 37 -> sendDialogue(player, "The first room in the pyramid requires a thieving level of 21. Each subsequent room requires an extra 10 levels to enter.").also { stage++ } 38 -> npcl(FacialExpression.NEUTRAL, "There are also lots of poisonous snakes in the urns. They'll bite you if they can. You might be able to charm them if you know how. I'd bring some antipoison anyway if I were you.").also { stage++ } 39 -> playerl(FacialExpression.FRIENDLY, "It all sounds like fun to me. So is there anything valuable in there?").also { stage++ } 40 -> npcl(FacialExpression.NEUTRAL, "There are lots of artefacts, you should be able to sell them on the black market, I mean, to a legitimate trader, for some money.").also { stage++ } @@ -76,7 +77,7 @@ class TarikDialogue(player: Player? = null) : DialoguePlugin(player) { return intArrayOf(NPCs.TARIK_4478) } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TarikDialogue(player) } } \ No newline at end of file diff --git a/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java b/Server/src/main/content/region/desert/sophanem/handlers/SophanemPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/city/SophanemPlugin.java rename to Server/src/main/content/region/desert/sophanem/handlers/SophanemPlugin.java index 4328b221c..2b03f8923 100644 --- a/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java +++ b/Server/src/main/content/region/desert/sophanem/handlers/SophanemPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.city; +package content.region.desert.sophanem.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java b/Server/src/main/content/region/desert/sophanem/handlers/WallShortcut.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java rename to Server/src/main/content/region/desert/sophanem/handlers/WallShortcut.java index 3a394d3ea..4e335a061 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java +++ b/Server/src/main/content/region/desert/sophanem/handlers/WallShortcut.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.city.sophanem; +package content.region.desert.sophanem.handlers; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; @@ -9,7 +9,7 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/dialogue/CaptainBentleyDialogue.java b/Server/src/main/content/region/fremennik/dialogue/CaptainBentleyDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/CaptainBentleyDialogue.java rename to Server/src/main/content/region/fremennik/dialogue/CaptainBentleyDialogue.java index 9ba748def..b74d3fc88 100644 --- a/Server/src/main/java/core/game/content/dialogue/CaptainBentleyDialogue.java +++ b/Server/src/main/content/region/fremennik/dialogue/CaptainBentleyDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.dialogue; +package content.region.fremennik.dialogue; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; diff --git a/Server/src/main/java/core/game/content/dialogue/JossikDialogue.java b/Server/src/main/content/region/fremennik/dialogue/JossikDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/JossikDialogue.java rename to Server/src/main/content/region/fremennik/dialogue/JossikDialogue.java index b58954d2d..4fed3f6b9 100644 --- a/Server/src/main/java/core/game/content/dialogue/JossikDialogue.java +++ b/Server/src/main/content/region/fremennik/dialogue/JossikDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.fremennik.dialogue; -import core.game.content.global.GodBook; +import core.game.dialogue.DialoguePlugin; +import content.data.GodBook; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/LokarSearunnerDialogue.java b/Server/src/main/content/region/fremennik/dialogue/LokarSearunnerDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/LokarSearunnerDialogue.java rename to Server/src/main/content/region/fremennik/dialogue/LokarSearunnerDialogue.java index 0a1271b41..4d192382e 100644 --- a/Server/src/main/java/core/game/content/dialogue/LokarSearunnerDialogue.java +++ b/Server/src/main/content/region/fremennik/dialogue/LokarSearunnerDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.dialogue; +package content.region.fremennik.dialogue; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FremennikAchievementDiary.kt b/Server/src/main/content/region/fremennik/diary/FremennikAchievementDiary.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FremennikAchievementDiary.kt rename to Server/src/main/content/region/fremennik/diary/FremennikAchievementDiary.kt index 711ef3aec..fe82a6617 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/FremennikAchievementDiary.kt +++ b/Server/src/main/content/region/fremennik/diary/FremennikAchievementDiary.kt @@ -1,18 +1,18 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.fremennik.diary -import api.events.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.content.dialogue.region.barbarianassault.CaptainCainDialogue -import rs09.game.content.dialogue.region.rellekka.HuntingExpertRellekkaDialogue -import rs09.game.interaction.inter.FairyRing -import rs09.game.node.entity.player.link.diary.AreaDiaryTask -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel +import content.minigame.barbassault.CaptainCainDialogue +import content.region.fremennik.rellekka.dialogue.HuntingExpertRellekkaDialogue +import content.global.handlers.iface.FairyRing +import core.game.diary.AreaDiaryTask +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel +import core.game.event.* class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { companion object { @@ -81,20 +81,20 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { AreaDiaryTask( WINDSWEPT_TREE_AREA, DiaryLevel.EASY, - EasyTasks.MAINLAND_FIND_HIGHEST_TREE + EasyTasks.MAINLAND_FIND_HIGHEST_TREE ) ) override fun onAttributeSet(player: Player, event: AttributeSetEvent) { when (event.attribute) { - "/save:${ATTRIBUTE_BARBARIAN_FISHING_TRAINING}" -> { + "/save:$ATTRIBUTE_BARBARIAN_FISHING_TRAINING" -> { if (event.value !is Boolean) return if (event.value) { finishTask( player, DiaryLevel.EASY, - EasyTasks.OTTO_GODBLESSED_LEARN_BARBARIAN_FISHING + EasyTasks.OTTO_GODBLESSED_LEARN_BARBARIAN_FISHING ) } } @@ -107,7 +107,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.BARBARIAN_ASSAULT_VIEW_REWARDS + EasyTasks.BARBARIAN_ASSAULT_VIEW_REWARDS ) } @@ -115,7 +115,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.FIND_HUNTING_EXPERT + EasyTasks.FIND_HUNTING_EXPERT ) } } @@ -127,7 +127,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.PIER_CATCH_FISH + EasyTasks.PIER_CATCH_FISH ) } } @@ -139,7 +139,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { progressIncrementalTask( player, DiaryLevel.EASY, - EasyTasks.KILL_5_ROCK_CRABS, + EasyTasks.KILL_5_ROCK_CRABS, ATTRIBUTE_ROCK_CRAB_KILLCOUNT, 5 ) @@ -149,7 +149,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.SLAYER_CAVE_KILL_CAVE_CRAWLER + EasyTasks.SLAYER_CAVE_KILL_CAVE_CRAWLER ) } @@ -157,7 +157,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.KILL_ADULT_BLACK_UNICORN + EasyTasks.KILL_ADULT_BLACK_UNICORN ) } } @@ -169,7 +169,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { progressIncrementalTask( player, DiaryLevel.EASY, - EasyTasks.PICK_3_SEAWEED, + EasyTasks.PICK_3_SEAWEED, ATTRIBUTE_SEAWEED_PICKED, 3 ) @@ -182,7 +182,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.DIAL_FAIRY_RING_MOUNTAINTOP + MediumTasks.DIAL_FAIRY_RING_MOUNTAINTOP ) } } @@ -193,7 +193,7 @@ class FremennikAchievementDiary : DiaryEventHookBase(DiaryType.FREMENNIK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.GATE_OBELISK_RECHARGE_POINTS + EasyTasks.GATE_OBELISK_RECHARGE_POINTS ) } } diff --git a/Server/src/main/java/core/game/content/zone/fremmenik/FremmenikPlugin.java b/Server/src/main/content/region/fremennik/handlers/FremmenikPlugin.java similarity index 93% rename from Server/src/main/java/core/game/content/zone/fremmenik/FremmenikPlugin.java rename to Server/src/main/content/region/fremennik/handlers/FremmenikPlugin.java index ff42e1fdb..ccfb066aa 100644 --- a/Server/src/main/java/core/game/content/zone/fremmenik/FremmenikPlugin.java +++ b/Server/src/main/content/region/fremennik/handlers/FremmenikPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.zone.fremmenik; +package content.region.fremennik.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/HonourGuardGFI.kt b/Server/src/main/content/region/fremennik/handlers/HonourGuardGFI.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/HonourGuardGFI.kt rename to Server/src/main/content/region/fremennik/handlers/HonourGuardGFI.kt index 279f15b22..d82806261 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/HonourGuardGFI.kt +++ b/Server/src/main/content/region/fremennik/handlers/HonourGuardGFI.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.npc +package content.region.fremennik.handlers -import api.* +import core.api.* import core.game.node.entity.npc.AbstractNPC import core.game.world.map.Location import core.plugin.Initializable diff --git a/Server/src/main/java/core/game/content/zone/rellekka/LightHousePlugin.java b/Server/src/main/content/region/fremennik/handlers/LightHousePlugin.java similarity index 91% rename from Server/src/main/java/core/game/content/zone/rellekka/LightHousePlugin.java rename to Server/src/main/content/region/fremennik/handlers/LightHousePlugin.java index 009e8dca8..b704a4b04 100644 --- a/Server/src/main/java/core/game/content/zone/rellekka/LightHousePlugin.java +++ b/Server/src/main/content/region/fremennik/handlers/LightHousePlugin.java @@ -1,7 +1,7 @@ -package core.game.content.zone.rellekka; +package content.region.fremennik.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt b/Server/src/main/content/region/fremennik/handlers/TarBarrelListener.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt rename to Server/src/main/content/region/fremennik/handlers/TarBarrelListener.kt index 8b057f0eb..18abaf1f6 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt +++ b/Server/src/main/content/region/fremennik/handlers/TarBarrelListener.kt @@ -1,11 +1,11 @@ -package rs09.game.interaction.`object` +package content.region.fremennik.handlers import core.game.node.scenery.SceneryBuilder import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author Woah, with love diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/CitizenDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/CitizenDialogue.kt new file mode 100644 index 000000000..41ad1963c --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/CitizenDialogue.kt @@ -0,0 +1,58 @@ +package content.region.fremennik.jatizso.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class CitizenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + val stages = intArrayOf(0, 100, 200, 300) + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CitizenDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + stage = stages.random() + handle(0,0) + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "It's a bit grey round here, isn't it?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It gets you down after a while, you know. There are 273 shades of grey, you know, and we have them all.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "That's grey-t.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.SAD, "That attempt at humour merely made me more depressed. Leave me alone.").also { stage = END_DIALOGUE } + + 100 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Cheer up! It's not the end of the world.").also { stage++ } + 101 -> npcl(core.game.dialogue.FacialExpression.SAD, "I'd prefer that, if it meant I didn't have to talk to people as inanely happy as you.").also { stage++ } + 102 -> playerl(core.game.dialogue.FacialExpression.AMAZED, "Whoa! I think you need to get out more.").also { stage = END_DIALOGUE } + + 200 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "How's the King treating you then?").also { stage++ } + 201 -> npcl(core.game.dialogue.FacialExpression.SAD, "Like serfs.").also { stage++ } + 202 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Serf?").also { stage++ } + 203 -> npcl(core.game.dialogue.FacialExpression.SAD, "Yes, you know - peons, plebs, the downtrodden. He treats us like his own personal possessions.").also { stage++ } + 204 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "You should leave this place.").also { stage++ } + 205 -> npcl(core.game.dialogue.FacialExpression.SAD, "I keep trying to save up enough to leave, but the King keeps taxing us! We have no money left." ).also { stage++ } + 206 -> playerl(core.game.dialogue.FacialExpression.SAD, "Oh dear." ).also { stage = END_DIALOGUE } + + 300 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "How are you today?").also { stage++ } + 301 -> npcl(core.game.dialogue.FacialExpression.SAD, "**sigh**").also { stage++ } + 302 -> playerl(core.game.dialogue.FacialExpression.ASKING, "That good? Everyone around here seems a little depressed. ").also { stage++ } + 303 -> npcl(core.game.dialogue.FacialExpression.SAD, "**sigh**").also { stage++ } + 304 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "And not particularly talkative.").also { stage++ } + 305 -> npcl(core.game.dialogue.FacialExpression.SAD, "**sigh**").also { stage++ } + 306 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING,"I'll leave you to your sighing. It looks like you have plenty to do." ).also { stage = END_DIALOGUE } + + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.LENSA_5494, NPCs.SASSILIK_5496, NPCs.FREYGERD_5493) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/EricDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/EricDialogue.kt new file mode 100644 index 000000000..2d736c299 --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/EricDialogue.kt @@ -0,0 +1,31 @@ +package content.region.fremennik.jatizso.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class EricDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return EricDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Spare us a few coppers mister") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + playerl(core.game.dialogue.FacialExpression.ANGRY, "NO!") + stage = END_DIALOGUE + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.ERIC_5499) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/GruvaPatrullDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/GruvaPatrullDialogue.kt new file mode 100644 index 000000000..1a5da89d1 --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/GruvaPatrullDialogue.kt @@ -0,0 +1,34 @@ +package content.region.fremennik.jatizso.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class GruvaPatrullDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GruvaPatrullDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Ho! Outerlander.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What's down the scary-looking staircase?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "These are the stairs down to the mining caves. There are rich veins of many types down there, and miners too. Though be careful; some of the trolls occasionally sneak into the far end of the cave.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Thanks. I'll look out for them.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GRUVA_PATRULL_5500) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/LeftieRightieDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/LeftieRightieDialogue.kt new file mode 100644 index 000000000..eb35d7f98 --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/LeftieRightieDialogue.kt @@ -0,0 +1,32 @@ +package content.region.fremennik.jatizso.dialogue + +import core.api.* +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import org.rs09.consts.NPCs +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE + +class LeftieRightieDialogue() : DialogueFile() { + val rightie = NPCs.GUARD_5491 + val leftie = NPC(NPCs.GUARD_5492) + override fun handle(componentID: Int, buttonID: Int) { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Are you all right? Leftie?").also { stage++ } + 1 -> npc2("No, I'm on the left.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Only from your perspective. Someone entering the gate should call you Rightie, right Leftie?").also { stage++ } + 3 -> npc2("Right, Rightie. So you'd be Leftie not Rightie, right?").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "That's right Leftie, that's right.").also { stage++ } + 5 -> npc2("Rightie-oh Rightie, or should I call you Leftie?").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "No, Rightie's fine Leftie.").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.ANGRY, "Aaagh! Enough! If either of you mention left or right in my presence I'll have to scream! Can I come through the gate?" ).also { stage++ } + 8 -> npc2("Don't let us stop you.").also { stage++ } + 9 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, head right on in, sir.").also { stage++ } + 10 -> playerl(core.game.dialogue.FacialExpression.ANGRY, "You said it! You said it! ARRRRRRRRGH!").also { stage = END_DIALOGUE } + } + } + + fun npc2(messages: String){ + sendNormalDialogue(leftie, core.game.dialogue.FacialExpression.NEUTRAL, *splitLines(messages)) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/MinerDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/MinerDialogue.kt new file mode 100644 index 000000000..db3a4d65a --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/MinerDialogue.kt @@ -0,0 +1,61 @@ +package content.region.fremennik.jatizso.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class MinerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + val stages = intArrayOf(0, 100, 200, 300, 400, 500) + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MinerDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + stage = stages.random() + handle(0,0) + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.SAD, "I've been here for two days straight. When I close my eyes, I see rocks.").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Why would anyone stay here for so long?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I fear the outside. I fear the big light.").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh dear. Being underground for so long may have driven you mad.").also { stage = END_DIALOGUE } + + 100 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "My back is killing me!").also { stage++ } + 101 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Could be worse, it could be the trolls killing you." ).also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "How very droll.").also { stage++ } + 103 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No, troll.").also { stage++ } + 104 -> npcl(core.game.dialogue.FacialExpression.SAD, "Bah! I resist your attempts at jollity.").also { stage = END_DIALOGUE } + + 200 -> npcl(core.game.dialogue.FacialExpression.SCARED, "Gah! Trolls everywhere. There's no escape!").also { stage++ } + 201 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "You could just leave the mine.").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Oh, I'd never thought of that.").also { stage = END_DIALOGUE } + + 300 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "How's your prospecting going?").also { stage++ } + 301 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Mine's been going pretty well.").also { stage++ } + 302 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "...").also { stage++ } + 303 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Mine? Mine...you get it?").also { stage++ } + 304 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Oh, I got it. That doesn't make it funny though.").also { stage++ } + 305 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Suit yourself.").also { stage = END_DIALOGUE } + + 400 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "High hoe, High hoe!").also { stage++ } + 401 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Why are you singing about farming implements at altitude?").also { stage++ } + 402 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I don't know, I've never thought about it. Ask my Dad, he taught me the song.").also { stage = END_DIALOGUE } + + 500 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "This place rocks!").also { stage++ } + 501 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "No it doesn't, it stays perfectly still.").also { stage++ } + 502 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Bah! Be quiet, pedant." ).also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MINER_5497, NPCs.MINER_5498) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MordGunnarsDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/MordGunnarsDialogue.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MordGunnarsDialogue.kt rename to Server/src/main/content/region/fremennik/jatizso/dialogue/MordGunnarsDialogue.kt index d30a74bdf..8cc1eb110 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MordGunnarsDialogue.kt +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/MordGunnarsDialogue.kt @@ -1,27 +1,25 @@ -package rs09.game.content.dialogue.region.jatizso +package content.region.fremennik.jatizso.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.util.region.rellekka.RellekkaDestination -import rs09.game.util.region.rellekka.RellekkaUtils -import rs09.tools.END_DIALOGUE +import content.region.fremennik.rellekka.handlers.RellekkaDestination +import content.region.fremennik.rellekka.handlers.RellekkaUtils +import core.tools.END_DIALOGUE @Initializable -class MordGunnarsDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class MordGunnarsDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MordGunnarsDialogue(player) } override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if(npc.id == NPCs.MORD_GUNNARS_5481){ - npcl(FacialExpression.FRIENDLY, "Would you like to sail to Jatizso?") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Would you like to sail to Jatizso?") } else { - npcl(FacialExpression.FRIENDLY, "Would you like to sail back to Rellekka?") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Would you like to sail back to Rellekka?") } return true } @@ -30,8 +28,8 @@ class MordGunnarsDialogue(player: Player? = null) : DialoguePlugin(player) { when(stage){ 0 -> options("Yes, please.", "No, thanks.").also { stage++ } 1 -> when(buttonId){ - 1 -> playerl(FacialExpression.FRIENDLY, "Yes, please!").also { stage++ } - 2 -> playerl(FacialExpression.FRIENDLY, "No, thank you.").also { stage = END_DIALOGUE } + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please!").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "No, thank you.").also { stage = END_DIALOGUE } } 2 -> { diff --git a/Server/src/main/content/region/fremennik/jatizso/dialogue/TowerGuardDialogue.kt b/Server/src/main/content/region/fremennik/jatizso/dialogue/TowerGuardDialogue.kt new file mode 100644 index 000000000..184051315 --- /dev/null +++ b/Server/src/main/content/region/fremennik/jatizso/dialogue/TowerGuardDialogue.kt @@ -0,0 +1,50 @@ +package content.region.fremennik.jatizso.dialogue + +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.tools.END_DIALOGUE + +@Initializable +class TowerGuardDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return TowerGuardDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What are you doing here?") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "I'M ON SHOUTING DUTY!").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "No need to shout.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "I'M SORRY I'VE BEEN SHOUTING","INSULTS SO LONG I CAN'T HELP IT!").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Who are you insulting?").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "THE TOWER IN ${if(npc.id == NPCs.GUARD_5489) "NEITIZNOT" else "JATIZSO"}.","THEY SHOUT INSULTS BACK.").also { stage++ } + 5 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Err, why?" ).also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "THE ${if(npc.id == NPCs.GUARD_5489) "KING" else "BURGHER"} TELLS US TO.").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Your ${if(npc.id == NPCs.GUARD_5489) "King" else "Burgher"} is a strange person.").also { stage++ } + 8 -> options("Can I watch? I'm curious.", "Oh well, I'd better get going.").also { stage++ } + 9 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Can I watch? I'm curious.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Oh well, I'd better get going.").also { stage = END_DIALOGUE } + } + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "IF YOU LIKE!").also { + stage = END_DIALOGUE + InteractionListeners.run(NPCs.GUARD_5489, IntType.NPC, "watch-shouting", player, npc) + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GUARD_5489, NPCs.GUARD_5490) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/IceTrollJatizsoCaves.kt b/Server/src/main/content/region/fremennik/jatizso/handlers/IceTrollJatizsoCaves.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/IceTrollJatizsoCaves.kt rename to Server/src/main/content/region/fremennik/jatizso/handlers/IceTrollJatizsoCaves.kt index d095f38f8..99820f64c 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/IceTrollJatizsoCaves.kt +++ b/Server/src/main/content/region/fremennik/jatizso/handlers/IceTrollJatizsoCaves.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.npc +package content.region.fremennik.jatizso.handlers -import api.* +import core.api.* import core.game.node.entity.npc.AbstractNPC import core.game.world.map.Location import core.plugin.Initializable diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/JatizsoListeners.kt b/Server/src/main/content/region/fremennik/jatizso/handlers/JatizsoListeners.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/region/rellekka/JatizsoListeners.kt rename to Server/src/main/content/region/fremennik/jatizso/handlers/JatizsoListeners.kt index 28f73438d..b67f84798 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/JatizsoListeners.kt +++ b/Server/src/main/content/region/fremennik/jatizso/handlers/JatizsoListeners.kt @@ -1,8 +1,6 @@ -package rs09.game.interaction.region.rellekka +package content.region.fremennik.jatizso.handlers -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.SpecialLadders +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.link.audio.Audio import core.game.system.task.Pulse @@ -10,9 +8,9 @@ import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.NPCs -import rs09.game.content.dialogue.region.jatizso.LeftieRightieDialogue -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import content.region.fremennik.jatizso.dialogue.LeftieRightieDialogue +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class JatizsoListeners : InteractionListener { val GATES_CLOSED = intArrayOf(21403,21405) @@ -41,7 +39,7 @@ class JatizsoListeners : InteractionListener { ) ) override fun defineListeners() { - on(GATES_CLOSED, IntType.SCENERY, "open"){player, node -> + on(GATES_CLOSED, IntType.SCENERY, "open"){ player, node -> if(NORTH_GATE_ZONE.insideBorder(player)){ if(node.id == GATES_CLOSED.first()){ val other = getScenery(node.location.transform(1, 0, 0)) ?: return@on true @@ -77,7 +75,7 @@ class JatizsoListeners : InteractionListener { return@on true } - on(TOWER_GUARDS, IntType.NPC, "watch-shouting"){player, _ -> + on(TOWER_GUARDS, IntType.NPC, "watch-shouting"){ player, _ -> val local = findLocalNPC(player, NPCs.GUARD_5489) lock(player, 200) face(local!!, Location.create(2371, 3801, 2)) @@ -122,23 +120,23 @@ class JatizsoListeners : InteractionListener { return@on true } - on(BELL, IntType.SCENERY, "ring-bell"){player, _ -> + on(BELL, IntType.SCENERY, "ring-bell"){ player, _ -> playAudio(player, Audio(15)) sendMessage(player, "You ring the warning bell, but everyone ignores it!") return@on true } - on(GUARDS, IntType.NPC, "talk-to"){player, node -> + on(GUARDS, IntType.NPC, "talk-to"){ player, node -> player.dialogueInterpreter.open(LeftieRightieDialogue(), NPC(NPCs.GUARD_5491)) return@on true } - on(KING_CHEST, IntType.SCENERY, "open"){player, node -> - sendPlayerDialogue(player, "I probably shouldn't mess with that.", FacialExpression.HALF_THINKING) + on(KING_CHEST, IntType.SCENERY, "open"){ player, node -> + sendPlayerDialogue(player, "I probably shouldn't mess with that.", core.game.dialogue.FacialExpression.HALF_THINKING) return@on true } - setDest(IntType.NPC, NPCs.MAGNUS_GRAM_5488){_,_ -> + setDest(IntType.NPC, NPCs.MAGNUS_GRAM_5488){ _, _ -> return@setDest Location.create(2416, 3801, 0) } diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/BabaYagaDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/BabaYagaDialogue.kt new file mode 100644 index 000000000..e64b9f872 --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/BabaYagaDialogue.kt @@ -0,0 +1,55 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Does not include Lunar Diplomacy dialogue + */ + +@Initializable +class BabaYagaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.ASKING, "Ah, a stranger to our island. How can I help?").also { stage ++ } + 1 -> options("Have you got anything to trade?", "It's a very interesting house you have here.", "I'm good thanks, bye.").also { stage ++ } + + 2 -> when(buttonId) { + 1 -> end().also { npc.openShop(player) } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING, "It's a very interesting house you have here. Does he have a name?").also { stage = 10 } + 3 -> end() + } + + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Why of course. It's Berty.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.THINKING, "Berty? Berty the Chicken leg house?").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.LAUGH, "Yes.").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.ASKING, "May I ask why?").also { stage++ } + 14 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "It just has that certain ring to it, don't you think? Beeerteeee!").also { stage++ } + 15 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "You're ins...").also { stage++ } + 16 -> npc("Insane? Very.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BabaYagaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BABA_YAGA_4513) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BouquetMacHyacinthDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/BouquetMacHyacinthDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BouquetMacHyacinthDialogue.kt rename to Server/src/main/content/region/fremennik/lunarisle/dialogue/BouquetMacHyacinthDialogue.kt index 1054953d2..dde5b6ade 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BouquetMacHyacinthDialogue.kt +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/BouquetMacHyacinthDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.lunarisle +package content.region.fremennik.lunarisle.dialogue -import api.teleport -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.teleport +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager @@ -18,7 +18,7 @@ import java.util.concurrent.TimeUnit */ @Initializable -class BouquetMacHyacinthDialogue(player: Player? = null) : DialoguePlugin(player){ +class BouquetMacHyacinthDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ private val Rellekka = Location.create(2663, 3644, 0) private var teled = false @@ -28,9 +28,9 @@ class BouquetMacHyacinthDialogue(player: Player? = null) : DialoguePlugin(player if (!teled) { if (player.inventory.contains(Items.SEAL_OF_PASSAGE_9083, 1) || player.equipment.contains(Items.SEAL_OF_PASSAGE_9083, 1)) { - player(FacialExpression.FRIENDLY, "Hi! What are you up to?").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi! What are you up to?").also { stage = 0 } } else { - player(FacialExpression.FRIENDLY, "Hi, I...").also { stage = 5 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi, I...").also { stage = 5 } } } return true @@ -38,15 +38,15 @@ class BouquetMacHyacinthDialogue(player: Player? = null) : DialoguePlugin(player override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"Watering the pretty flowers, you want to help?").also { stage++ } - 1 -> playerl(FacialExpression.HALF_WORRIED, "I don't have time to water flowers, I have people to save!").also { stage++ } - 2 -> npcl(FacialExpression.NEUTRAL, "Pft, you should take time to enjoy the simple things.").also { stage++ } - 3 -> player(FacialExpression.NEUTRAL, "I'm not a simple person.").also { stage++ } - 4 -> npc(FacialExpression.LAUGH, "So it seems.").also { stage = 99 } + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Watering the pretty flowers, you want to help?").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_WORRIED, "I don't have time to water flowers, I have people to save!").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Pft, you should take time to enjoy the simple things.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "I'm not a simple person.").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.LAUGH, "So it seems.").also { stage = 99 } - 5 -> npc(FacialExpression.ANNOYED, "What are you doing here, Fremennik?!").also { stage++ } - 6 -> player(FacialExpression.WORRIED, "I have a seal of pass...").also { stage++ } - 7 -> npc(FacialExpression.ANNOYED, "No you do not! Begone!").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "What are you doing here, Fremennik?!").also { stage++ } + 6 -> player(core.game.dialogue.FacialExpression.WORRIED, "I have a seal of pass...").also { stage++ } + 7 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "No you do not! Begone!").also { stage++ } 8 -> teleport(player, Rellekka, TeleportManager.TeleportType.LUNAR).also { wait1() } 99 -> end() @@ -58,7 +58,7 @@ class BouquetMacHyacinthDialogue(player: Player? = null) : DialoguePlugin(player Executors.newSingleThreadScheduledExecutor().schedule({ if (player.location.isInRegion(Rellekka.regionId)) { playerl( - FacialExpression.WORRIED, + core.game.dialogue.FacialExpression.WORRIED, "Ooops. Suppose I need a seal of passage when I'm walking around that island." ).also { end() } } else { @@ -67,7 +67,7 @@ class BouquetMacHyacinthDialogue(player: Player? = null) : DialoguePlugin(player }, 1, TimeUnit.SECONDS) } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BouquetMacHyacinthDialogue(player) } diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/CabinBoyDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/CabinBoyDialogue.kt new file mode 100644 index 000000000..e4ad4cd4d --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/CabinBoyDialogue.kt @@ -0,0 +1,72 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.api.addItemOrDrop +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Must have Lunar Diplomacy completed for the emerald lens + */ + +@Initializable +class CabinBoyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + if (player.inventory.contains(Items.EMERALD_LENS_9066, 1) || player.bank.contains(Items.EMERALD_LENS_9066, 1)) { + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "So you've plucked up the courage to come and confront that girl!").also { stage = 0 } + } else { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi.").also { stage = 20 } + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "That I did, that I did!").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "And?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "She turned out to be really nice! She's joining us to become a pirate!").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.HALF_WORRIED, "Really? And you're not sceptical about this? You know, after what she did last time?").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS, "She---has---no---spell---on---me.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "Huh? Why are you talking like that?").also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.CHILD_THINKING, "Like what?").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Like someone else was talking for you. Are you sure she hasn't put a spell on you again? Did she wave a watch in front of your face? You know, tell you to look deep into her eyes?").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS, "She---has---no---spell---on---me.").also { stage++ } + 9 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "I think you've been hypnotised. I wonder what happens if I click my fingers?").also { + player.sendChat("*click*").also { stage++ } + } + 10 -> npc(core.game.dialogue.FacialExpression.CHILD_SAD, "*Cluck* *cluck* *bwaarrk*").also { stage++ } + 11 -> npc(core.game.dialogue.FacialExpression.CHILD_SAD, "").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.WORRIED, "Oh dear. Oh well, I'm sure you'll learn one day.").also { stage = 99 } + + 20 -> npc(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "I bet you're after another lens!").also { stage++ } + 21 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "How could you possibly know that?").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Hey, I think I'm learning a thing or two from these Moon Clan ladies.").also { stage++ } + 23 -> options("Please", "No thanks").also { stage++ } + 24 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Oi! I need another lens, boy.").also { stage = 25} + 2 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "I think I'll pass. But thanks..").also { stage = 99 } + } + 25 -> npc(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Huh, oh ok, I suppose I owe you one.").also { addItemOrDrop(player, Items.EMERALD_LENS_9066, 1) }.also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CabinBoyDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CABIN_BOY_4539) + } +} diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/MelenaMoonlanderDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/MelenaMoonlanderDialogue.kt new file mode 100644 index 000000000..743139924 --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/MelenaMoonlanderDialogue.kt @@ -0,0 +1,64 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class MelenaMoonlanderDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi. Welcome to the general store. How might I help you?").also { stage++ } + + 1 -> options("What can you sell me?", "I have a question...", "I'm good thanks, bye.").also { stage++ } + + 2 -> when (buttonId) { + 1 -> end().also { npc.openShop(player) } + 2 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "I have a question...").also { stage = 11 } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'm good thanks, bye.").also { stage = 99 } + } + + 11 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "About magic of course.").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Sorry?").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I said about magic of course. You know, in response to your question.").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "But I didn't ask anything yet.").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, but you were thinking of asking me how I was floating.").also { stage++ } + 16 -> player(core.game.dialogue.FacialExpression.AMAZED, "That's true! How could you possibly know that?").also { stage++ } + 17 -> npc(core.game.dialogue.FacialExpression.HALF_THINKING, "Don't you realise we can read your mind.").also { stage++ } + 18 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Oh, of course. How do you manage to do that?").also { stage++ } + 19 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "It's quite simple, everyone has a resonance that is responded to by the moon. This resonance changes depending on what we are thinking. You can tune yourself in to listen to this").also { stage++ } + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "resonance with practice - it's a life long quest for the members of the Moon Clan, but its especially easy to read with outsiders like yourself,").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "as you are far louder and unguarded.").also { stage++ } + 22 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "I see. I best be careful what I think of then.").also { stage++ } + 23 -> player(core.game.dialogue.FacialExpression.WORRIED, "...").also { stage++ } + 24 -> player(core.game.dialogue.FacialExpression.THINKING, "...").also { stage++ } + 25 -> npc(core.game.dialogue.FacialExpression.DISGUSTED_HEAD_SHAKE, "That's disgusting!").also { stage++ } + 26 -> player(core.game.dialogue.FacialExpression.SAD, "Sorry.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MelenaMoonlanderDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MELANA_MOONLANDER_4516) + } +} diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/PaulinePolarisDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/PaulinePolarisDialogue.kt new file mode 100644 index 000000000..835f25d01 --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/PaulinePolarisDialogue.kt @@ -0,0 +1,48 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Does not include Lunar Diplomacy dialogue + */ + +@Initializable +class PaulinePolarisDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.ASKING, "Ah, a stranger to our island. How can I help?").also { stage ++ } + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, I've actually come here on a diplomatic mission. I want to try and settle some of the disputes between the Fremenniks and your clan.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "The Rremenniks? Pah! They are just too ignorant and stubborn to listen to anything we have to say - how can we possibly associate with a race that won't listen?").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I think they are very eager to listen, but they feel like you are keeping secrets from them.").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.HALF_THINKING, "Secrets?").also { stage++ } + 5 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Yes, as in your magic ways. To be honest, I think it is fear of the unknown.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, when the day comes that a Fremennik can prove they have the patience and interest in learning our ways, then we will perhaps share our secrets.").also { stage++ } + 7 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'm hoping I might be able to achieve that.").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Good luck. It's far from simple.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return PaulinePolarisDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.PAULINE_POLARIS_4514) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/RimaeSirsalisDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/RimaeSirsalisDialogue.kt new file mode 100644 index 000000000..7c37ba63c --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/RimaeSirsalisDialogue.kt @@ -0,0 +1,62 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class RimaeSirsalisDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("What can you sell me?", "Do you have any use for suqah teeth or hides?", "It's a very interesting island you have here.", "I'm good thanks, bye.").also { stage++ } + + 1 -> when (buttonId) { + 1 -> end().also { npc.openShop(player) } + 2 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Do you have any use for suqah teeth or hides?").also { stage = 5 } + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Why thank you. It's been our haven for a great many generations.").also { stage = 10 } + 4 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'm good thanks, bye.").also { stage = 99 } + } + + 5 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Most certainly! The hides are great for making clothes and the teeth are particularly useful for broaches, necklaces and the like. But I won't accept them from anyone.").also { stage = 99 } + + 10 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Everything seems to have a magical feel to it.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course. We integrate magic into all areas of our lives. It is a part of everyone, so why deny it? It's best to make the most of this innate gift we have all been given.").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What sort of things do you use your magic for?").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Take a look around. We use it in our day to day lives, from making a cup of tea to travelling around the island.").also { stage++ } + 14 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You see our ancestors were the ones that found the first rune essence and put it to use! The various factions were eventually created,").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "with people having different ideas on how the essence should be used (or not in some cases!)").also { stage++ } + 16 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What has kept you so secluded on this island?").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "It may be a bit beyond you, but although magic comes from within, we are all strongly linked to the moon and the").also { stage++ } + 18 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "effects it has on us cannot be denied!").also { stage++ } + 19 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "It can't?").also { stage++ } + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course not. This very island has a great link to our moon, which helps us understand ourselves - especially our dreams,").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "which is the path to understanding magic.").also { stage++ } + 22 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I think I will just have to take your word on that.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return RimaeSirsalisDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.RIMAE_SIRSALIS_4518) + } +} diff --git a/Server/src/main/content/region/fremennik/lunarisle/dialogue/SeleneDialog.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/SeleneDialog.kt new file mode 100644 index 000000000..df71877b0 --- /dev/null +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/SeleneDialog.kt @@ -0,0 +1,79 @@ +package content.region.fremennik.lunarisle.dialogue + +import core.api.teleport +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.TeleportManager +import core.game.world.map.Location +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit + +/** + * @author qmqz + */ + +@Initializable +class SeleneDialog(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + private val Rellekka = Location.create(2663, 3644, 0) + private var teled = false + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + if (!teled) { + if (player.inventory.contains(Items.SEAL_OF_PASSAGE_9083, 1) || player.equipment.contains(Items.SEAL_OF_PASSAGE_9083, 1)) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Can you tell me a bit about your people?").also { stage = 0; } + } else { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hi, I...").also { stage = 10 } + } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Ok. Like what?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "How about the values of the Moon clan!").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Let me see... We value knowledge of self because it is this that gives us our strength! It is most important!").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Well... I know things about myself. I know I like hot chocolate!").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "I was meaning something a little deeper than that. We also like to see someone listen. You know how they say a wise man listens?").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "....").also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.HALF_WORRIED, "Did you hear me?").also { stage++ } + 7 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, ".... I'm listening.").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.HALF_WORRIED, "Most wise.").also { stage++ } + 9 -> player(core.game.dialogue.FacialExpression.HALF_WORRIED, "Huh?").also { stage = 99 } + + 10 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "What are you doing here, Fremennik?!").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.WORRIED, "I have a seal of pass...").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "No you do not! Begone!").also { stage++ } + 13 -> teleport(player, Rellekka, TeleportManager.TeleportType.LUNAR).also { wait1() } + + 99 -> end() + } + return true + } + + private fun wait1() { + Executors.newSingleThreadScheduledExecutor().schedule({ + if (player.location.isInRegion(Rellekka.regionId)) { + playerl(core.game.dialogue.FacialExpression.WORRIED, "Ooops. Suppose I need a seal of passage when I'm walking around that island.").also { end() } + } else { + wait1() + } + }, 1, TimeUnit.SECONDS) + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SeleneDialog(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.SELENE_4517) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SirsalBankerDialogue.kt b/Server/src/main/content/region/fremennik/lunarisle/dialogue/SirsalBankerDialogue.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SirsalBankerDialogue.kt rename to Server/src/main/content/region/fremennik/lunarisle/dialogue/SirsalBankerDialogue.kt index a4f6b3e29..7e90bf9e9 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SirsalBankerDialogue.kt +++ b/Server/src/main/content/region/fremennik/lunarisle/dialogue/SirsalBankerDialogue.kt @@ -1,16 +1,16 @@ -package rs09.game.content.dialogue.region.lunarisle +package content.region.fremennik.lunarisle.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Handles Sirsal banker dialogue tree. @@ -18,20 +18,20 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { +class SirsalBankerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> if (hasSealOfPassage(player)) { if (hasIronmanRestriction(player, IronmanMode.ULTIMATE)) { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "My apologies, dear ${if (player.isMale) "sir" else "madam"}, " + "our services are not available for Ultimate ${if (player.isMale) "Ironmen" else "Ironwomen"}" ).also { stage = END_DIALOGUE } } else { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Good day, how may I help you?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -42,47 +42,47 @@ class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { } } } else { - playerl(FacialExpression.HALF_WORRIED, "Hi, I...") + playerl(core.game.dialogue.FacialExpression.HALF_WORRIED, "Hi, I...") stage = 30 } 1 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Before we go any further, I should inform you that you " + "have items ready for collection from the Grand Exchange." ).also { stage++ } 2 -> showTopics( - Topic(FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 10), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 10), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to switch to my ${getBankAccountName(player, true)} bank account.", 13, hasActivatedSecondaryBankAccount(player) ), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to open a secondary bank account.", 20, !hasActivatedSecondaryBankAccount(player) ), - Topic(FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 11), - Topic(FacialExpression.NEUTRAL, "I'd like to collect items.", 12), - Topic(FacialExpression.ASKING, "What is this place?", 3), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 11), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to collect items.", 12), + Topic(core.game.dialogue.FacialExpression.ASKING, "What is this place?", 3), ) 3 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "This is a branch of the Bank of Gielinor. We have branches in many towns." ).also { stage++ } 4 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "And what do you do?" ).also { stage++ } 5 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "We will look after your items and money for you. " + "Leave your valuables with us if you want to keep them safe." ).also { stage = END_DIALOGUE } @@ -106,51 +106,51 @@ class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { toggleBankAccount(player) npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Your active bank account has been switched. " + "You can now access your ${getBankAccountName(player)} account." ).also { stage = END_DIALOGUE } } 20 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Certainly. We offer secondary accounts to all our customers." ).also { stage++ } 21 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "The secondary account comes with a standard fee of 5,000,000 coins. The fee is non-refundable " + "and account activation is permanent." ).also { stage++ } 22 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "If your inventory does not contain enough money to cover the costs, we will complement " + "the amount with the money inside your primary bank account." ).also { stage++ } 23 -> npcl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Knowing all this, would you like to proceed with opening your secondary bank account?" ).also { stage++ } 24 -> showTopics( - Topic(FacialExpression.NEUTRAL, "Yes, I am still interested.", 25), - Topic(FacialExpression.NEUTRAL, "Actually, I've changed my mind.", 26) + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, I am still interested.", 25), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Actually, I've changed my mind.", 26) ) 25 -> { when (activateSecondaryBankAccount(player)) { SecondaryBankAccountActivationResult.ALREADY_ACTIVE -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Your bank account was already activated, there is no need to pay twice." ).also { stage = END_DIALOGUE } } SecondaryBankAccountActivationResult.INTERNAL_FAILURE -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I must apologize, the transaction was not successful. Please check your " + "primary bank account and your inventory - if there's money missing, please " + "screenshot your chat box and contact the game developers." @@ -159,7 +159,7 @@ class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { SecondaryBankAccountActivationResult.NOT_ENOUGH_MONEY -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "It appears that you do not have the money necessary to cover the costs " + "associated with opening a secondary bank account. I will be waiting here " + "until you do." @@ -168,7 +168,7 @@ class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { SecondaryBankAccountActivationResult.SUCCESS -> { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Your secondary bank account has been opened and can be accessed through any " + "of the Bank of Gielinor's employees. Thank you for choosing our services." ).also { stage = END_DIALOGUE } @@ -177,23 +177,23 @@ class SirsalBankerDialogue(player: Player? = null) : DialoguePlugin(player) { } 26 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Very well. Should you decide a secondary bank account is needed, do not hesitate to " + "contact any of the Bank of Gielinor's stationary employees. We will be happy to help." ).also { stage = END_DIALOGUE } 30 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "What are you doing here, Fremennik?!" ).also { stage++ } 31 -> playerl( - FacialExpression.WORRIED, + core.game.dialogue.FacialExpression.WORRIED, "I have a Seal of Pass..." ).also { stage++ } 32 -> npcl( - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "No you don't! Begone!" ).also { stage = END_DIALOGUE } diff --git a/Server/src/main/java/core/game/interaction/city/LunarIslePlugin.java b/Server/src/main/content/region/fremennik/lunarisle/handlers/LunarIslePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/LunarIslePlugin.java rename to Server/src/main/content/region/fremennik/lunarisle/handlers/LunarIslePlugin.java index 0931271a5..42f28bc4b 100644 --- a/Server/src/main/java/core/game/interaction/city/LunarIslePlugin.java +++ b/Server/src/main/content/region/fremennik/lunarisle/handlers/LunarIslePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.fremennik.lunarisle.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/java/core/game/content/dialogue/AnnaIsaakson.java b/Server/src/main/content/region/fremennik/neitiznot/dialogue/AnnaIsaakson.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/AnnaIsaakson.java rename to Server/src/main/content/region/fremennik/neitiznot/dialogue/AnnaIsaakson.java index 5e5ffe51d..2585f7d63 100644 --- a/Server/src/main/java/core/game/content/dialogue/AnnaIsaakson.java +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/AnnaIsaakson.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.fremennik.neitiznot.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/FridleifShieldsonDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/FridleifShieldsonDialogue.kt new file mode 100644 index 000000000..06f0edfa2 --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/FridleifShieldsonDialogue.kt @@ -0,0 +1,32 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class FridleifShieldsonDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FridleifShieldsonDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings!") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello!").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FRIDLEIF_SHIELDSON_5505) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/GunnarHoldstromDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/GunnarHoldstromDialogue.kt new file mode 100644 index 000000000..c1077a15b --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/GunnarHoldstromDialogue.kt @@ -0,0 +1,34 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class GunnarHoldstromDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GunnarHoldstromDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.HAPPY, "Ah, isn't it a lovely day?") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.ASKING, "It's not bad. What puts you in such a good mood?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Oh, I just love my job. The smell of the sea breeze, the smell of the arctic pine sap, the smell of the yaks. I find it all so bracing.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Bracing? Hmmm. I think I might have chosen a different word.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GUNNAR_HOLDSTROM_5511) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/JofridrMordstatterDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/JofridrMordstatterDialogue.kt new file mode 100644 index 000000000..895adbebe --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/JofridrMordstatterDialogue.kt @@ -0,0 +1,47 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class JofridrMordstatterDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return JofridrMordstatterDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello there. Would you like to see the goods I have for sale?") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + 0 -> options("Yes please, Jofridr.", "No thank you, Jofridr.", "Why do you have so much wool in your store?").also { stage++ } + 1 -> when (buttonId) { + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes please, Jofridr.").also { stage = END_DIALOGUE }.also { npc.openShop(player) } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No thank you, Jofridr.").also { stage = 5 } + 3 -> playerl(core.game.dialogue.FacialExpression.THINKING, "Why do you have so much wool in your store? I haven't seen any sheep anywhere.").also { stage = 11} + } + 5 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Fair thee well.").also { stage = END_DIALOGUE } + + 11 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Ah, I have contacts on the mainland. I have a sailor friend who brings me crates of wool on a regular basis.").also { stage++ } + 12 -> playerl(core.game.dialogue.FacialExpression.ASKING,"What do you trade for it?").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Rope of course! What else can we sell? Fish would go off before it got so far south.").also { stage++ } + 14 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Where does all this rope go?").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Err, I don't remember the name of the place very well. Dreinna? Drennor? Something like that.").also { stage++ } + 16 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"That's very interesting. Thanks Jofridr.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.JOFRIDR_MORDSTATTER_5509) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/KjedeligUppsenDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/KjedeligUppsenDialogue.kt new file mode 100644 index 000000000..b78ca7b3a --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/KjedeligUppsenDialogue.kt @@ -0,0 +1,32 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class KjedeligUppsenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return KjedeligUppsenDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I'm guarding the king, I cannot speak.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.KJEDELIG_UPPSEN_5518) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/LisseIsaaksonDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/LisseIsaaksonDialogue.kt new file mode 100644 index 000000000..bffff896f --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/LisseIsaaksonDialogue.kt @@ -0,0 +1,38 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class LisseIsaaksonDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LisseIsaaksonDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello, visitor!") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Hello. What are you up to?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ah, I was about to collect some yak's milk to make yak cheese.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_WORRIED, "Eughr! Though I am curious. Can I try some?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.SAD, "Sorry, no. The last outlander who ate my cheese was ill for a month.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.ASKING, "So why don't you get ill as well?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, we eat yak milk products every day, from when we're born. So I suppose we're used to it. Anyway I should stop yakking - haha - and get on with my work.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "I'm glad to see that puns are common everywhere in Gielinor; even here.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.LISSE_ISAAKSON_5513) + } + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/zone/neitiznot/MawnisBurowgarDialogue.java b/Server/src/main/content/region/fremennik/neitiznot/dialogue/MawnisBurowgarDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/zone/neitiznot/MawnisBurowgarDialogue.java rename to Server/src/main/content/region/fremennik/neitiznot/dialogue/MawnisBurowgarDialogue.java index d341a0c1d..29ae5a1b1 100644 --- a/Server/src/main/java/core/game/content/zone/neitiznot/MawnisBurowgarDialogue.java +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/MawnisBurowgarDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.zone.neitiznot; +package content.region.fremennik.neitiznot.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/MortenHoldstromDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/MortenHoldstromDialogue.kt new file mode 100644 index 000000000..159be36f5 --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/MortenHoldstromDialogue.kt @@ -0,0 +1,38 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class MortenHoldstromDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MortenHoldstromDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Good day to you.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Hello. What are you up to?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Ah, today is a surströmming day! The herring I buried six months ago is ready to be dug up.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.DISGUSTED, "Eughr! What are you going to do with it?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Eat it, of course! It will be fermented just-right by now.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Fermented? You eat rotten fish?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Hmmm, tasty. I'm guessing you don't want to come round and try it?").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.ANNOYED, "You guess correctly.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MORTEN_HOLDSTROM_5510) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/SlugHemliggsenDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/SlugHemliggsenDialogue.kt new file mode 100644 index 000000000..6f2e5af3e --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/SlugHemliggsenDialogue.kt @@ -0,0 +1,31 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class SlugHemliggsenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SlugHemliggsenDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.WORRIED, "Shhh. Go away. I'm not allowed to talk to you.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + playerl(core.game.dialogue.FacialExpression.ANNOYED, "Fine, whatever ...") + stage = END_DIALOGUE + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.SLUG_HEMLIGSSEN_5520) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradSigmundsonDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradSigmundsonDialogue.kt new file mode 100644 index 000000000..082b569cb --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradSigmundsonDialogue.kt @@ -0,0 +1,32 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class ThakkradSigmundsonDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ThakkradSigmundsonDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings! I can cure your Yak Hides if you'd like!") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Good to know!").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.THAKKRAD_SIGMUNDSON_5506) + } + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/zone/neitiznot/ThakkradYakDialogue.java b/Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradYakDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/neitiznot/ThakkradYakDialogue.java rename to Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradYakDialogue.java index 09a556bd5..340cb2b6c 100644 --- a/Server/src/main/java/core/game/content/zone/neitiznot/ThakkradYakDialogue.java +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/ThakkradYakDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.zone.neitiznot; +package content.region.fremennik.neitiznot.dialogue; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/content/region/fremennik/neitiznot/dialogue/TrogenKonungardeDialogue.kt b/Server/src/main/content/region/fremennik/neitiznot/dialogue/TrogenKonungardeDialogue.kt new file mode 100644 index 000000000..da55ecc0d --- /dev/null +++ b/Server/src/main/content/region/fremennik/neitiznot/dialogue/TrogenKonungardeDialogue.kt @@ -0,0 +1,32 @@ +package content.region.fremennik.neitiznot.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class TrogenKonungardeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return TrogenKonungardeDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I'm guarding the king, I cannot speak.") + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry.").also { stage = END_DIALOGUE } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.TROGEN_KONUNGARDE_5519) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/NeitiznotListeners.kt b/Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotListeners.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/interaction/region/rellekka/NeitiznotListeners.kt rename to Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotListeners.kt index 2b87af938..26fc6f658 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/NeitiznotListeners.kt +++ b/Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotListeners.kt @@ -1,7 +1,6 @@ -package rs09.game.interaction.region.rellekka +package content.region.fremennik.neitiznot.handlers -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* import core.game.node.Node import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -10,16 +9,16 @@ import core.game.world.map.Location import core.game.world.map.zone.MapZone import core.game.world.map.zone.ZoneBorders import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class NeitiznotListeners : InteractionListener { val STUMP = 21305 override fun defineListeners() { - on(STUMP, IntType.SCENERY, "cut-wood"){player, _ -> - sendPlayerDialogue(player, "I should probably leave this alone.", FacialExpression.HALF_THINKING) + on(STUMP, IntType.SCENERY, "cut-wood"){ player, _ -> + sendPlayerDialogue(player, "I should probably leave this alone.", core.game.dialogue.FacialExpression.HALF_THINKING) return@on true } diff --git a/Server/src/main/java/core/game/content/zone/neitiznot/NeitiznotZone.java b/Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotZone.java similarity index 86% rename from Server/src/main/java/core/game/content/zone/neitiznot/NeitiznotZone.java rename to Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotZone.java index a81a5e473..a609cbb20 100644 --- a/Server/src/main/java/core/game/content/zone/neitiznot/NeitiznotZone.java +++ b/Server/src/main/content/region/fremennik/neitiznot/handlers/NeitiznotZone.java @@ -1,5 +1,7 @@ -package core.game.content.zone.neitiznot; +package content.region.fremennik.neitiznot.handlers; +import content.region.fremennik.neitiznot.dialogue.MawnisBurowgarDialogue; +import content.region.fremennik.neitiznot.dialogue.ThakkradYakDialogue; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -8,7 +10,7 @@ import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBuilder; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the neitiznot zone. diff --git a/Server/src/main/java/core/game/content/zone/neitiznot/YakArmourPlugin.java b/Server/src/main/content/region/fremennik/neitiznot/handlers/YakArmourPlugin.java similarity index 93% rename from Server/src/main/java/core/game/content/zone/neitiznot/YakArmourPlugin.java rename to Server/src/main/content/region/fremennik/neitiznot/handlers/YakArmourPlugin.java index 8ac202b67..e5c86e266 100644 --- a/Server/src/main/java/core/game/content/zone/neitiznot/YakArmourPlugin.java +++ b/Server/src/main/content/region/fremennik/neitiznot/handlers/YakArmourPlugin.java @@ -1,10 +1,10 @@ -package core.game.content.zone.neitiznot; +package content.region.fremennik.neitiznot.handlers; -import rs09.game.content.dialogue.SkillDialogueHandler; -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue; +import core.game.dialogue.SkillDialogueHandler; +import core.game.dialogue.SkillDialogueHandler.SkillDialogue; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.armour.LeatherCrafting; +import content.global.skill.crafting.armour.LeatherCrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/YakNPC.kt b/Server/src/main/content/region/fremennik/neitiznot/handlers/YakNPC.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/YakNPC.kt rename to Server/src/main/content/region/fremennik/neitiznot/handlers/YakNPC.kt index d3096e24b..d7ab41342 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/YakNPC.kt +++ b/Server/src/main/content/region/fremennik/neitiznot/handlers/YakNPC.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.npc +package content.region.fremennik.neitiznot.handlers import core.game.node.entity.npc.AbstractNPC import core.game.world.map.Location diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/BjornAndEldgrimDialogues.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/BjornAndEldgrimDialogues.kt new file mode 100644 index 000000000..bd0f4d9af --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/BjornAndEldgrimDialogues.kt @@ -0,0 +1,52 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class BjornAndEldgrimDialogues(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 } + } else if (isQuestComplete(player, "Fremennik Trials")) { + npc(core.game.dialogue.FacialExpression.DRUNK, "Hey! Itsh you again! Whatshyerfashe!").also { stage = 10 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Hey! scheck it out! Itsh an outerlandub! Yer shud go shpeak to the chieftain!").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "The who?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "That guy over there by that stuff! (hic) Yeh, abshoultely! He's da bosh!").also { stage = END_DIALOGUE } + + 10 -> player(core.game.dialogue.FacialExpression.ASKING, "${player.name}?").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Nah nah nah, not them, the other one, whatshyerfashe!").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.ASKING, "${player.getAttribute("fremennikname","fremmyname")}?").also { stage++ } + 13 -> npc(core.game.dialogue.FacialExpression.DRUNK, "Thatsh what I said diddle I?").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.ASKING, "Um.... okay. I'll leave you to your drinking.").also { stage++ } + 15 -> npc(core.game.dialogue.FacialExpression.DRUNK, "Thanksh pal! You're alright!").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BjornAndEldgrimDialogues(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BJORN_1284, NPCs.ELDGRIM_1285) + } +} diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/BlaninDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/BlaninDialogue.kt new file mode 100644 index 000000000..6eaa88a99 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/BlaninDialogue.kt @@ -0,0 +1,44 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class BlaninDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Good day.").also { stage = 0 } + } else { + player(core.game.dialogue.FacialExpression.FRIENDLY, "That's one less thing to worry about.").also { stage = 10 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Good day to you, sir.").also { stage = END_DIALOGUE } + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Glad I could help.").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BlaninDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BLANIN_2940) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDialogue.kt similarity index 64% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDialogue.kt index 5cfc3e13c..1659cac86 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDialogue.kt @@ -1,21 +1,15 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import api.addItem -import api.questStage -import api.sendItemDialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import content.region.fremennik.rellekka.quest.thefremenniktrials.CouncilWorkerFTDialogue +import core.api.questStage +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.AchievementDiary import core.game.node.entity.player.link.diary.DiaryType import core.plugin.Initializable -import org.rs09.consts.Items; -import rs09.game.content.quest.members.thefremenniktrials.CouncilWorkerFTDialogue -import rs09.game.content.dialogue.region.rellekka.CouncilWorkerDiaryDialogue @Initializable -class CouncilWorkerDialogue(player: Player? = null) : DialoguePlugin(player){ +class CouncilWorkerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if(questStage(player, "Fremennik Trials") in 1..99){ @@ -38,7 +32,7 @@ class CouncilWorkerDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return CouncilWorkerDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDiaryDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDiaryDialogue.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDiaryDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDiaryDialogue.kt index 68e9f87fe..2b92f624c 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/CouncilWorkerDiaryDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/CouncilWorkerDiaryDialogue.kt @@ -1,11 +1,11 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.FacialExpression import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE const val COUNCIL_WORKER = 1287 @@ -15,7 +15,7 @@ class CouncilWorkerDiaryDialogue() : DialogueFile() { when (stage) { START_DIALOGUE -> { - player(FacialExpression.FRIENDLY, "About my achievement diary...");stage++ + player(core.game.dialogue.FacialExpression.FRIENDLY, "About my achievement diary...");stage++ } 1 -> { npc(COUNCIL_WORKER, "You have completed the Fremennik Easy Diary!");stage++ diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/DronDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/DronDialogue.kt new file mode 100644 index 000000000..82499543e --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/DronDialogue.kt @@ -0,0 +1,44 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class DronDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Making History")) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Excuse me.").also { stage = 0 } + } else { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Excuse me.").also { stage = 10 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "Leave me or I'll destroy you!").also { stage = END_DIALOGUE } + 10 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "You have your answers, now go away!").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DronDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DRON_2939) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FishmongerRellekkaDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/FishmongerRellekkaDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FishmongerRellekkaDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/FishmongerRellekkaDialogue.kt index bfa966273..5ebcc8385 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FishmongerRellekkaDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/FishmongerRellekkaDialogue.kt @@ -1,27 +1,27 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE /** * @author qmqz */ @Initializable -class FishmongerRellekkaDialogue(player: Player? = null) : DialoguePlugin(player){ +class FishmongerRellekkaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if (!isQuestComplete(player, "Fremennik Trials")) { - npc(FacialExpression.ANNOYED, "I don't sell to outerlanders.").also { stage = END_DIALOGUE } + npc(core.game.dialogue.FacialExpression.ANNOYED, "I don't sell to outerlanders.").also { stage = END_DIALOGUE } } else { - npcl(FacialExpression.FRIENDLY,"Hello there, ${player.getAttribute("fremennikname","fremmyname")}. Looking for fresh fish?").also { stage = 0 } + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there, ${player.getAttribute("fremennikname","fremmyname")}. Looking for fresh fish?").also { stage = 0 } } return true } @@ -33,7 +33,7 @@ class FishmongerRellekkaDialogue(player: Player? = null) : DialoguePlugin(player return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FishmongerRellekkaDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FurTraderDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/FurTraderDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FurTraderDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/FurTraderDialogue.kt index be7c15a98..dddc630cb 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/FurTraderDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/FurTraderDialogue.kt @@ -1,27 +1,27 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE /** * @author qmqz */ @Initializable -class FurTraderDialogue(player: Player? = null) : DialoguePlugin(player){ +class FurTraderDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if (!isQuestComplete(player, "Fremennik Trials")) { - npc(FacialExpression.ANNOYED, "I don't sell to outerlanders.").also { stage = END_DIALOGUE } + npc(core.game.dialogue.FacialExpression.ANNOYED, "I don't sell to outerlanders.").also { stage = END_DIALOGUE } } else { - npcl(FacialExpression.FRIENDLY,"Welcome back, ${player.getAttribute("fremennikname","fremmyname")}. Have you seen the furs I have today?").also { stage = 10 } + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome back, ${player.getAttribute("fremennikname","fremmyname")}. Have you seen the furs I have today?").also { stage = 10 } } return true } @@ -33,7 +33,7 @@ class FurTraderDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FurTraderDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/HuntingExpertRellekkaDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/HuntingExpertRellekkaDialogue.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/HuntingExpertRellekkaDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/HuntingExpertRellekkaDialogue.kt index d2758d82e..00ded9800 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/HuntingExpertRellekkaDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/HuntingExpertRellekkaDialogue.kt @@ -1,23 +1,23 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Represents the dialogue plugin used for the Hunting Expert in the Rellekkan Hunter area * @author vddcore */ @Initializable -class HuntingExpertRellekkaDialogue(player: Player? = null) : DialoguePlugin(player) { +class HuntingExpertRellekkaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return HuntingExpertRellekkaDialogue(player) } @@ -25,7 +25,7 @@ class HuntingExpertRellekkaDialogue(player: Player? = null) : DialoguePlugin(pla npc = args[0] as NPC npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Good day, you seem to have a keen eye. " + "Maybe even some hunter's blood in that body of yours?" ) @@ -36,48 +36,48 @@ class HuntingExpertRellekkaDialogue(player: Player? = null) : DialoguePlugin(pla override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> showTopics( - Topic(FacialExpression.ASKING, "Is there anything you can teach me?", 1), - Topic(FacialExpression.NEUTRAL, "Nevermind.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.ASKING, "Is there anything you can teach me?", 1), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Nevermind.", END_DIALOGUE) ) 1 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I can teach you how to hunt." ).also { stage++ } 2 -> playerl( - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "What kind of creatures can I hunt?" ).also { stage++ } 3 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Many creatures in many ways. You need to make some traps " + "and catch birds!" ).also { stage++ } 4 -> playerl( - FacialExpression.HALF_ASKING, + core.game.dialogue.FacialExpression.HALF_ASKING, "Birds?" ).also { stage++ } 5 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Yes, birds! Like the ones here!" ).also { stage++ } 6 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Look. Just... Get some hunting gear and go set up some traps." ).also { stage++ } 7 -> playerl( - FacialExpression.HALF_ROLLING_EYES, + core.game.dialogue.FacialExpression.HALF_ROLLING_EYES, "Is that it?" ).also { stage++ } 8 -> npcl( - FacialExpression.FURIOUS, + core.game.dialogue.FacialExpression.FURIOUS, "JUST GO DO IT!" ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/IngridHradsonDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/IngridHradsonDialogue.kt new file mode 100644 index 000000000..02bd29c44 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/IngridHradsonDialogue.kt @@ -0,0 +1,49 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class IngridHradsonDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + npcl(core.game.dialogue.FacialExpression.ANNOYED, "Outlander, I have work to be getting on with... Please stop bothering me.").also { stage = END_DIALOGUE } + } else if (isQuestComplete(player, "Fremennik Trials") && !isQuestComplete(player, "Olaf's Quest")) { + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Good afternoon! How do you like our village?").also { stage = 0 } + } else if (isQuestComplete(player, "Fremennik Trials") && isQuestComplete(player, "Olaf's Quest")) { + npc(core.game.dialogue.FacialExpression.ASKING, "Hello again! Have you any word from my husband?").also { stage = 10 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "It's lovely. You have a fine collection of goats.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "We polish them every day to get them nice and clean.").also { stage = END_DIALOGUE } + + 10 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Err, no, not yet. It takes a while for the messages to reach me you know.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, when you do, tell him we'll be more than happy to see him again.").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return IngridHradsonDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.INGRID_HRADSON_3696) + } +} diff --git a/Server/src/main/java/core/game/content/zone/rellekka/JarvaldDialogue.java b/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/zone/rellekka/JarvaldDialogue.java rename to Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java index cc1e040af..4e041a938 100644 --- a/Server/src/main/java/core/game/content/zone/rellekka/JarvaldDialogue.java +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/JarvaldDialogue.java @@ -1,13 +1,13 @@ -package core.game.content.zone.rellekka; +package content.region.fremennik.rellekka.dialogue; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; import kotlin.Unit; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/LonghallBouncerDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/LonghallBouncerDialogue.kt new file mode 100644 index 000000000..d804c10f7 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/LonghallBouncerDialogue.kt @@ -0,0 +1,44 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class LonghallBouncerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + npcl(core.game.dialogue.FacialExpression.ANNOYED, "Hey, outerlander. You can't go through there. Talent only, backstage.").also { stage = END_DIALOGUE } + } else{ + npcl(core.game.dialogue.FacialExpression.ANNOYED, "You can't go through there. Talent only, backstage.").also { stage = 0 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.PANICKED, "But I'm a Bard!").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "No you're not. I saw your performance. I was paid well to keep you from ever setting foot on stage here again.").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LonghallBouncerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.LONGHALL_BOUNCER_1278) + } +} diff --git a/Server/src/main/java/core/game/content/zone/rellekka/MariaGunnarsDialogue.java b/Server/src/main/content/region/fremennik/rellekka/dialogue/MariaGunnarsDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/zone/rellekka/MariaGunnarsDialogue.java rename to Server/src/main/content/region/fremennik/rellekka/dialogue/MariaGunnarsDialogue.java index 6c96cdf01..e29283ccf 100644 --- a/Server/src/main/java/core/game/content/zone/rellekka/MariaGunnarsDialogue.java +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/MariaGunnarsDialogue.java @@ -1,11 +1,10 @@ -package core.game.content.zone.rellekka; +package content.region.fremennik.rellekka.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.world.map.Location; -import rs09.game.util.region.rellekka.RellekkaDestination; -import rs09.game.util.region.rellekka.RellekkaUtils; +import content.region.fremennik.rellekka.handlers.RellekkaDestination; +import content.region.fremennik.rellekka.handlers.RellekkaUtils; /** * Handles the maria gunnars dialogue. diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/ReesoDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/ReesoDialogue.kt new file mode 100644 index 000000000..e01bb016d --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/ReesoDialogue.kt @@ -0,0 +1,41 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class ReesoDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + npcl(core.game.dialogue.FacialExpression.ANNOYED, "Please do not disturb me, outerlander. I have much to do.").also { stage = END_DIALOGUE } + } else { + npcl(core.game.dialogue.FacialExpression.STRUGGLE, "Sorry, ${player.getAttribute("fremennikname","fremmyname")}, I must get on with my work.").also { stage = END_DIALOGUE } + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ReesoDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.REESO_3116) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/TalkToChiefDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/TalkToChiefDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/TalkToChiefDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/TalkToChiefDialogue.kt index 50d4af42c..ae6fd91c7 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/TalkToChiefDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/TalkToChiefDialogue.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE /** * @author qmqz @@ -16,26 +16,26 @@ import rs09.tools.END_DIALOGUE */ @Initializable -class TalkToChiefDialogue(player: Player? = null) : DialoguePlugin(player){ +class TalkToChiefDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if (!isQuestComplete(player, "Fremennik Trials")) { - npcl(FacialExpression.ANNOYED, "I cannot speak to you outerlander! Talk to Brundt, the Chieftain!").also { stage = END_DIALOGUE } + npcl(core.game.dialogue.FacialExpression.ANNOYED, "I cannot speak to you outerlander! Talk to Brundt, the Chieftain!").also { stage = END_DIALOGUE } } else { - player(FacialExpression.FRIENDLY, "Hello.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.").also { stage = 0 } } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npc(FacialExpression.FRIENDLY, "Hello to you, too!").also { stage = END_DIALOGUE } + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Hello to you, too!").also { stage = END_DIALOGUE } } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TalkToChiefDialogue(player) } diff --git a/Server/src/main/content/region/fremennik/rellekka/dialogue/VolfOlasfsonDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/VolfOlasfsonDialogue.kt new file mode 100644 index 000000000..dfcc0bff6 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/VolfOlasfsonDialogue.kt @@ -0,0 +1,48 @@ +package content.region.fremennik.rellekka.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + */ + +@Initializable +class VolfOlasfsonDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Fremennik Trials")) { + npc(core.game.dialogue.FacialExpression.ANNOYED, "Sorry, outlander, but I have things to be doing.").also { stage = END_DIALOGUE } + } else if (isQuestComplete(player, "Fremennik Trials") && !isQuestComplete(player, "Olaf's Quest")) { + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there. Enjoying the view?").also { stage = 0 } + } else if (isQuestComplete(player, "Fremennik Trials") && isQuestComplete(player, "Olaf's Quest")) { + npcl(core.game.dialogue.FacialExpression.ASKING, "Hello again, friend! Does my father send any word... or treasures like before?").also { stage = 10 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes I am. You have a lovely yurt.").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks! I exercise it regularly.").also { stage = END_DIALOGUE } + + 10 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Not today, but if he does, you will be the first to know.").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return VolfOlasfsonDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.VOLF_OLAFSON_3695) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/WaitingOnTheShowDialogues.kt b/Server/src/main/content/region/fremennik/rellekka/dialogue/WaitingOnTheShowDialogues.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/WaitingOnTheShowDialogues.kt rename to Server/src/main/content/region/fremennik/rellekka/dialogue/WaitingOnTheShowDialogues.kt index a9547cbf0..70ae42bce 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/WaitingOnTheShowDialogues.kt +++ b/Server/src/main/content/region/fremennik/rellekka/dialogue/WaitingOnTheShowDialogues.kt @@ -1,23 +1,23 @@ -package rs09.game.content.dialogue.region.rellekka +package content.region.fremennik.rellekka.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE /** * @author qmqz */ @Initializable -class WaitingOnTheShowDialogues(player: Player? = null) : DialoguePlugin(player){ +class WaitingOnTheShowDialogues(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.ANNOYED, "Shhh! I'm waiting for the show!").also { stage = END_DIALOGUE } + npc(core.game.dialogue.FacialExpression.ANNOYED, "Shhh! I'm waiting for the show!").also { stage = END_DIALOGUE } return true } @@ -25,7 +25,7 @@ class WaitingOnTheShowDialogues(player: Player? = null) : DialoguePlugin(player) return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return WaitingOnTheShowDialogues(player) } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/FremennikGuards.kt b/Server/src/main/content/region/fremennik/rellekka/handlers/FremennikGuards.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/FremennikGuards.kt rename to Server/src/main/content/region/fremennik/rellekka/handlers/FremennikGuards.kt index 864e0db36..5e56fa013 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/FremennikGuards.kt +++ b/Server/src/main/content/region/fremennik/rellekka/handlers/FremennikGuards.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.npc +package content.region.fremennik.rellekka.handlers -import api.* +import core.api.* import core.game.node.entity.npc.AbstractNPC import core.game.world.map.Location import core.plugin.Initializable diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/RellekkaListeners.kt b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaListeners.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/interaction/region/rellekka/RellekkaListeners.kt rename to Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaListeners.kt index a7add85c0..ddb16861c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/rellekka/RellekkaListeners.kt +++ b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaListeners.kt @@ -1,12 +1,9 @@ -package rs09.game.interaction.region.rellekka +package content.region.fremennik.rellekka.handlers import core.game.world.map.Location -import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.util.region.rellekka.RellekkaDestination -import rs09.game.util.region.rellekka.RellekkaUtils +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * File to be used for anything Rellekka related. @@ -49,22 +46,22 @@ class RellekkaListeners : InteractionListener { return@on true } - on(NPCs.MARIA_GUNNARS_5508, IntType.NPC, "ferry-neitiznot"){player, _ -> + on(NPCs.MARIA_GUNNARS_5508, IntType.NPC, "ferry-neitiznot"){ player, _ -> RellekkaUtils.sail(player, RellekkaDestination.RELLEKKA_TO_NEITIZNOT) return@on true } - on(NPCs.MARIA_GUNNARS_5507, IntType.NPC, "ferry-rellekka"){player, node -> + on(NPCs.MARIA_GUNNARS_5507, IntType.NPC, "ferry-rellekka"){ player, node -> RellekkaUtils.sail(player, RellekkaDestination.NEITIZNOT_TO_RELLEKKA) return@on true } - on(NPCs.MORD_GUNNARS_5481, IntType.NPC, "ferry-jatizso"){player, node -> + on(NPCs.MORD_GUNNARS_5481, IntType.NPC, "ferry-jatizso"){ player, node -> RellekkaUtils.sail(player, RellekkaDestination.RELLEKKA_TO_JATIZSO) return@on true } - on(NPCs.MORD_GUNNARS_5482, IntType.NPC, "ferry-rellekka"){player, node -> + on(NPCs.MORD_GUNNARS_5482, IntType.NPC, "ferry-rellekka"){ player, node -> RellekkaUtils.sail(player, RellekkaDestination.JATIZSO_TO_RELLEKKA) return@on true } diff --git a/Server/src/main/kotlin/rs09/game/util/region/rellekka/RellekkaUtils.kt b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaUtils.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/util/region/rellekka/RellekkaUtils.kt rename to Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaUtils.kt index bd123fd66..9f8da9ca1 100644 --- a/Server/src/main/kotlin/rs09/game/util/region/rellekka/RellekkaUtils.kt +++ b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaUtils.kt @@ -1,6 +1,6 @@ -package rs09.game.util.region.rellekka +package content.region.fremennik.rellekka.handlers -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location diff --git a/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaZone.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java rename to Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaZone.java index 47883a7f7..75d7c1e34 100644 --- a/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java +++ b/Server/src/main/content/region/fremennik/rellekka/handlers/RellekkaZone.java @@ -1,9 +1,11 @@ -package core.game.content.zone.rellekka; +package content.region.fremennik.rellekka.handlers; +import content.region.fremennik.rellekka.dialogue.JarvaldDialogue; +import content.region.fremennik.rellekka.dialogue.MariaGunnarsDialogue; import core.cache.def.impl.SceneryDefinition; import core.game.system.task.Pulse; import core.plugin.Initializable; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.component.Component; @@ -19,8 +21,8 @@ import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import kotlin.Unit; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Handles the rellekka zone. diff --git a/Server/src/main/java/core/game/node/entity/npc/other/RockCrabNPC.java b/Server/src/main/content/region/fremennik/rellekka/handlers/RockCrabNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/RockCrabNPC.java rename to Server/src/main/content/region/fremennik/rellekka/handlers/RockCrabNPC.java index 4641439cc..0c3efc873 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/RockCrabNPC.java +++ b/Server/src/main/content/region/fremennik/rellekka/handlers/RockCrabNPC.java @@ -1,13 +1,11 @@ -package core.game.node.entity.npc.other; +package content.region.fremennik.rellekka.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.agg.AggressiveBehavior; import core.game.node.entity.npc.agg.AggressiveHandler; -import core.game.node.entity.player.Player; import core.game.world.map.Location; -import core.game.world.map.RegionManager; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/AskeladdenDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/AskeladdenDialogue.kt new file mode 100644 index 000000000..22196cdde --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/AskeladdenDialogue.kt @@ -0,0 +1,145 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.game.node.entity.player.Player +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +//Disabled because the quest isn't done yet. +class AskeladdenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun open(vararg args: Any?): Boolean { + player?.let { + if(player.inventory.contains(3709,1)){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I thought you really liked the long hall?") + stage = 27 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 13){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a written promise from Askeladden to stay out of the Longhall?") + stage = 15 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I've lost one of the items I was supposed to be trading.") + stage = 35 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello again Askeladden.") + stage = 40 + return true + } + else if (it.questRepository.getStage("Fremennik Trials") > 0) { + player("Hello there.") + stage = 0 + return true + } + else if(it.getAttribute("fremtrials:lalli-talkedto",false)!!){ + player("Hello there. I understand you managed to get some", "golden wool from Lalli?") + stage = 0 + return true + } + else{ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there.") + stage = 55 + return true + } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return content.region.fremennik.rellekka.quest.thefremenniktrials.AskeladdenDialogue(player) + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + 0 -> npc(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING, "HAHAHA! Yeah, that Lalli... what a maroon!").also { stage++ } + 1 -> player("So how did you manage to get the wool?").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Well, as you know, I am doing the same trials that you", "are as part of my test of manhood, and that troll is the", "only one who can get that wool.").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL, "You might have noticed he's kind of... messed in the", "head buddy! He's real paranoid about people stealing his", "golden apples, isn't he?").also { stage++ } + 4 -> player(core.game.dialogue.FacialExpression.HALF_ASKING,"Indeed he is. So how did you manage to get some", "golden wool from him?").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL, "It was easy buddy! I persuaded him he needed a pet to", "help him guard his apples. A pet that would never sleep!", "A pet that would never need food or exercise!").also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL, "A pet that would never need him to clean up its... well,", "you know, buddy. A pet that would always be loyal to", "him! A faithful companion for life!").also { stage++ } + 7 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "What pet is this then?").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING, "A pet ROCK!").also { stage++ } + 9 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL, "Man, can you believe that stupid troll traded me some", "of his golden wool for a worthless ROCK?").also { stage++ } + 10 -> npc(core.game.dialogue.FacialExpression.CHILD_FRIENDLY, "Buddy, I hafta say: if brains were explosives, that troll", "wouldn't have enough to blow his nose!").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Do you have any spare rocks then?").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.CHILD_NEUTRAL, "Sure thing buddy, although I have to say, I doubt even", "that troll is stupid enough to fall for the SAME trick", "TWICE in a row! You can try anyways though!").also { + player.inventory.add(Item(Items.PET_ROCK_3695)) + player.setAttribute("/save:fremtrials:askeladden-talkedto",true); + stage = 1000} + + 15 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING,"What? I can't believe she asked you to get a written promise from me to stay out!").also { stage++ } + 16 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Yup, she really did.").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Awwwwwww.... but the longhall is just SO MUCH FUN! I'd live there if I could! I suppose you really need that promise to help become a Fremennik, huh?").also { stage++ } + 18 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Yeah, I really do...").also { stage++ } + 19 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Well I'll tell you what buddy; As it's you, I'll give you that written promise. All I ask in return for it is a measly 5000 gold. What do you say?").also { stage++ } + 20 -> options("Yes","No").also { stage++ } + 21 -> when(buttonId){ + 1 -> if(player?.inventory?.contains(995,5000)!! && !player.inventory.isFull){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"That's all you want in return? Sure thing. Here you go.") + stage = 22 + }else stage = 25 + 2 -> stage = 25 + } + 22 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Done, and done. Let me know if you got any more cash burning a hole in your pocket I can relieve you of, buddy.").also { + player?.inventory?.remove(Item(Items.COINS_995,5000)) + player?.inventory?.add(Item(Items.PROMISSORY_NOTE_3709)) + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 25 -> playerl(core.game.dialogue.FacialExpression.SAD,"I don't think so... That's really quite a lot of money...").also { stage++ } + 26 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING,"Hey, suit yourself buddy. You change your mind, the bank of Askeladden is open for deposits 24 hours a day! Eh-heh- heh-heh-heh.").also { stage = 1000 } + + 27 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"I do!").also { stage++ } + 28 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Then why did you sign this guarantee that you will never enter it again?").also { stage++ } + 29 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Aha! It is because I am cunning! That guarantee says that Askeladden will never enter the longhall again!").also { stage++ } + 30 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"But when I have completed my Fremennik trials, and passed my trial of manhood,").also { stage++ } + 31 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING,"I will be given a new name, as is our custom, and will therefore not be Askeladden anymore!").also { stage++ } + 32 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING,"That guarantee isn't worth the paper it's written on!! You didn't think I would give up going to the longhall for only 5000 did you?").also { stage++ } + 33 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"Knowing you, I guess I didn't.").also { stage = 1000 } + + 35 -> npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL,"That's a shame. You should speak to the merchant.").also { stage = 1000 } + + 40 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Hey buddy! That ain't my name no more! My new Fremennik name is Larravak! What's yours?").also { stage++ } + 41 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"My Fremennik name is ${player.getAttribute("fremennikname","lebron james")}.").also { stage++ } + 42 -> npcl(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING,"Ha! Ain't as good as my name buddy! So what can I do ya for?").also { stage++ } + 43 -> options("Ask about things to do","Ask for a new pet rock").also { stage++ } + 44 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So, Askeladd- sorry, Larravak; What is there to do around here now that we are both Fremenniks?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I have another pet rock? I lost mine...").also { stage = 50 } + } + 45 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING,"I guess you could do a bit of shopping. We got fresh fish at the docks, and some armour and weapons at Skulgrimen's place.").also { stage++ } + 46 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Okay, thanks.").also { stage = 1000 } + + 50 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Sure thing buddy! I'd say take better care of this one, but it's just a rock! I have hundreds of them! Go wild!").also { + player.inventory.add(Item(Items.PET_ROCK_3695)) + stage = 1000 + } + + 55 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Hey there, buddy. You're an outerlander, huh? I'm not really supposed to talk to you.").also { stage++ } + 56 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Why not?").also { stage++ } + 57 -> npcl(core.game.dialogue.FacialExpression.CHILD_THINKING,"I dunno buddy. Some stupid tradition or other. We're always told not to talk to outerlanders unless the Chieftain has allowed it.").also { stage++ } + 58 -> playerl(core.game.dialogue.FacialExpression.ASKING,"The Chieftain? Who is that?").also { stage++ } + 59 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"His names Brundt, buddy. He's a real boring guy. You can find him in the long hall there.").also { stage++ } + 60 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can you take me to see him?").also { stage++ } + 61 -> npcl(core.game.dialogue.FacialExpression.CHILD_FRIENDLY,"Sorry buddy, I'm not allowed into the long hall. Don't worry, he's easy to spot. He's the one in the fancy helmet. Oh, and he only has one eye.").also { stage++ } + 62 -> playerl(core.game.dialogue.FacialExpression.ASKING,"He's a cyclops?").also { stage++ } + 63 -> npcl(core.game.dialogue.FacialExpression.CHILD_NORMAL,"Nah, nah, nah... He just wears an eyepatch! Well, see ya around buddy!").also { stage = 1000 } + + + 1000 -> end() + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(2439) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ChieftanBrundtDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ChieftanBrundtDialogue.kt new file mode 100644 index 000000000..e2e1e289a --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ChieftanBrundtDialogue.kt @@ -0,0 +1,338 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.node.entity.player.Player +import core.plugin.Initializable +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.tools.END_DIALOGUE +import kotlin.random.Random + +@Initializable +class ChieftanBrundt(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + val gender = if (player?.isMale == true){"brother"} else "sister" + val fName = player?.getAttribute("fremennikname","bringle") + + override fun open(vararg args: Any?): Boolean { + if(player?.inventory?.contains(3701,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"I got Sigli's hunting map for you.") + stage = 515 + return true + } + else if(player?.inventory?.contains(3708,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"So cutting sales tax isn't going to ruin your economy here or anything?") + stage = 520 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I've got this trade item. Is it for you?") + stage = 525 + return true + } + if(player?.getAttribute("sigmund-steps",0) == 5){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map to unspoiled hunting grounds, do you?") + stage = 510 + return true + } + else if(player?.getAttribute("sigmund-steps",0) == 4){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a guarantee of a reduction on sales taxes, do you?") + stage = 500 + return true + } + else if(player.getAttribute("fremtrials:votes",0) >= 7){ + npcl(core.game.dialogue.FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") + stage = 545 + return true + } + else if(player.getAttribute("fremtrials:votes",0) in 3..6){ + npcl(core.game.dialogue.FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") + stage = 540 + return true + } + else if(player.getAttribute("fremtrials:votes",0) == 1){ + npcl(core.game.dialogue.FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") + stage = 535 + return true + } + else if(player.getAttribute("fremtrials:votes",-1) == 0){ + npcl(core.game.dialogue.FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") + stage = 530 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again, $gender $fName. I hope your travels have brought you wealth and joy! What compels you to visit me on this day?") + stage = 600 + return true + } + else if(player?.questRepository?.getStage("Fremennik Trials")!! == 0) { + npc("Greetings outlander!") + stage = 0 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + //Pre-Quest + 0 -> { options("What is this place?", "Why will no-one talk to me?", "Do you have any quests?", "Nice hat!");stage++} + 1 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"What is this place?").also { stage ++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Why will no-one talk to me?").also { stage = 5 } + 3 -> player("Do you have any quests?").also {stage = 300} + 4 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nice hat!").also { stage = 15 } + } + 2 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This place? Why, this is Relleka! Homeland of all Fremennik! I do not recognise your face outerlander; Where do you come from?").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Hmmm... I will not press the issue then outerlander. How may my tribe and I help you?").also { stage = 0 } + + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Do not take it personally, outerlander! We are a simple people, and it is our experience that keeping ourselves to ourselves is best.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This is why speaking to outerlanders is forbidden.").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We do not wish to enter war with the outerlanders and their strange magics, so we limit all unauthorised communication.").also { stage++ } + 8 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Then how come you're talking to me?").also { stage++ } + 9 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah, this is because I am the chieftan. I am the one who authorised contact. You will not find many of my tribe so forthcoming with you, as I.").also { stage++ } + 10 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Is there a way for you to authorise your tribe to talk to me then?").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, there is one way... but I doubt it is of any interest to you.").also { stage = 0 } + + 15 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Don't mock me outerlander; this helm has saved my life more times than I care to recall right now.").also { stage = 1000 } + + + //Do you have any quests? + 300 -> {npc("Quests, you say outlander? Well, I would not call it a","quest as such, but if you are brave of heart and strong","of body, perhaps..."); stage++} + 301 -> {npc("No, you would not be interested. Forget I said","anything, outerlander."); stage++ } + 302 -> {options("Yes, I am interested.","No, I'm not interested."); stage++ } + 303 -> when(buttonId){ + 1 -> {player("Actually, I would be very interested to hear what you","have to offer."); stage = 310 } + 2 -> {player("No, I'm not interested."); stage = END_DIALOGUE } + } + + //Yes, I am interested in what you have to say. + 310 -> {npc("You would? These are unusual sentiments to hear from","an outerlander! My suggestion was going to be that if","you crave adventure and battle,"); stage++} + 311 -> {npc("and your heart sings for glory, then perhaps you would","be interested in joining our clan, and becoming a","Fremennik yourself?");stage++} + 312 -> {player("What would that involve exactly?");stage++} + 313 -> {npc("Well, there are two ways to become a member of our","clan and call yourself a Fremennik: be born a","Fremennik, or be voted in by our council of elders.");stage++} + 314 -> {player("Well, I think I've missed the first way, but how can I","get the council of elders to vote to let me join your","clan?");stage++} + 315 -> {npc("Well, that I cannot answer myself. You will need to","speak to each of them and see what they require of you","as proof of your dedication.");stage++} + 316 -> {npc("There are twelve council members around this village;","you will need to gain a majority vote of at least seven","councillors in your favor.");stage++} + 317 -> {npc("So, what say you? Give me the word and I will tell all","of my tribe of your intentions, be they yes or nay.");stage++} + 318 -> {options("I want to become a Fremennik!","I don't want to become a Fremennik.");stage++} + 319 -> when(buttonId){ + 1 -> {player("I think I would enjoy the challenge of becoming an","honorary Fremennik. Where and how do I start?");stage = 320} + 2 -> {player("That sounds too complicated to me.");stage = 322} + } + + //I think I would enjoy the challenge of becoming an honorary fremennik + 320 -> {npc("As I say outerlander, you must find and speak to the","twelve members of the council of elders, and see what","tasks they might set you.");stage++} + 321 -> {npc("If you can gain the support of seven of the twelve, then","you will be accepted as one of us without question.");stage = 1000;player?.questRepository?.getQuest("Fremennik Trials")?.start(player)} + + //That sounds too complicated for me. + 322 -> {npc("Well, that's what I expect from an outerlander.");stage = 1000} + + //No, I'm not interested + 340 -> TODO("Not implemented yet") + + 500 -> npcl(core.game.dialogue.FacialExpression.THINKING,"A reduction on sales taxes? Why, I am the only one in the Fremennik who may authorise such a thing. What does an outerlander want with that?").also { stage++ } + 501 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Actually, it's not for me. I need to get it as part of my trials").also { stage++ } + 502 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Hmmm. Interesting. Your trials seem to be very different to those I took as a young lad.").also { stage++ } + 503 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Well, I am not adverse in principle to giving a slight tax break to our shops.").also { stage++ } + 504 -> npcl(core.game.dialogue.FacialExpression.THINKING,"There will of course be a shortfall in the tribe's income, that will need to be made up for elsewhere, however.").also { stage++ } + 505 -> npcl(core.game.dialogue.FacialExpression.ASKING,"How about this. For many years Sigli has been the only one in the tribe who knows the locations of the best hunting grounds where game is easiest to catch.").also { stage++ } + 506 -> npcl(core.game.dialogue.FacialExpression.ASKING,"If you can persuade him to let the entire tribe know these hunting grounds, then we can increase productivity within the tribe, and any shortfall caused by lowering sales taxes will be covered.").also { stage++ } + 507 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I think this is a more than fair arrangement to make, dont you?").also { stage++ } + 508 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yeah, that sounds very fair.").also { stage++ } + 509 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Speak to Sigli then, and you may have my promise to reduce our sales taxes. And best of luck with the rest of your trials.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + + 510 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Ah, outerlander... if you wish to become a Fremennik you should try and pay more attention to what people tell you... ").also { stage++ } + 511 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Sigli the hunter is the only one who knows of such hunting grounds. Go and request his knowledge.").also { stage = 1000 } + + 515 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Excellent work outerlander! And so quickly, too! Here, you may take my financial report promising reduced sales taxes on all goods.").also { + removeItem(player,3701) + addItem(player,3708) + stage = 1000 + } + + 520 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Not at all outerlander; now that we have Sigli's map we can increase the amount of hunts we run, and make up any shortfall that way.").also { stage = 1000 } + + 525 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not unless it's a map of the hunting grounds.").also { stage = 1000 } + + 530 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I don't have any votes yet.").also { stage++ } + 531 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Go and speak to the twelve members of the council of elders who live in this village. I am sure at least a few will be prepared to vote for you.").also { stage = 550 } + + 535 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I only have one vote so far.").also { stage++ } + 536 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hmmm... well that is certainly a good start I would say. Keep up the good work!").also { stage++ } + 537 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Remember: You need to get at least seven council votes to be accepted as a member of the Fremennik.").also { stage = 550 } + + 540 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I only have ${player.getAttribute("fremtrials:votes",0)} votes so far.").also { stage++ } + 541 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hmmm... you are doing very well so far, outerlander. Keep up the good work!").also { stage = 537 } + + 545 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I have seven members of the council prepared to vote in my favour now!").also { stage++ } + 546 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I know outerlander, for I have been closely monitoring your progress so far!").also {stage++} + 547 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Then let us put the formality aside, and let me personally welcome you into the Fremennik! May you bring us honour!").also { + if(player.inventory.freeSlots() >= 10){ + println(GenerateFremennikName()) + player.setAttribute("/save:fremennikname", GenerateFremennikName()) + stage = 560 + } + else stage = 548 + + } + 548 -> sendDialogue("You require 10 free spaces in your backpack to claim your reward.").also { stage = 1000 } + + 550 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"If you need any help with your trials, I suggest you speak to Askeladden. He is currently doing his own trials of manhood to become a true Fremennik.") + + 560 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"From this day onward, you are outerlander no more! In honour of your acceptance into the Fremennik, you gain a new name: ${player.getAttribute("fremennikname","how did u break this")}.").also { + cleanupAttributes(player) + player.questRepository.getQuest("Fremennik Trials").finish(player) + stage = 1000 + } + + 600 -> options("I just came to say hello.","Do you have any quests?","Nice hat!","Can I hear the history of your people?").also { stage++ } + 601 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I just came by to say hello.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Do you have any quests?").also { stage = 605 } + 3 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nice hat!").also { stage = 610 } + 4 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I hear the history of your people?").also { stage = 615 } + } + 602 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well met, $gender $fName. it is always good to see your face in glorious Rellekka once more!").also { stage = 1000 } + + 605 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Not at the moment, $fName. Rest assured, should your services to the Fremennik be required, I will call upon you").also { stage = 1000 } + + 610 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Aye that it is, $gender $fName. Should you desire one of your own, you should go to Skulgrimen's shop and see what they have available!").also { stage = 1000 } + + 615 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Why, of course, $fName! Do not say 'your people' like that, for you are now a Fremennik yourself! What did you want to hear of?").also { stage++ } + 616 -> options("Tell me of the finding of Koschei","Tell me of the lands to the North","Tell me of the outerlanders","Don't tell me anything").also { stage++ } + 617 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I'm interested in finding out about that mysterious warrior I fought as part of Thorvalds' combat trial. His name is Koschei I believe.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I would like to hear of the lands across the ocean to the North.").also { stage = 635 } + 3 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I would like to hear a little of the history between the Fremenniks and the outerlanders.").also { stage = 645 } + 4 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Actually, history isn't really my thing.").also { stage = 665 } + } + + 618 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah... the deathless one... We do not even know if Koschei is his name, when we found him he had no memory,").also { stage++ } + 619 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"he was simply repeating that single word. Whatever happened to him must have rattled his soul so hard that his memory ran away from him,").also { stage++ } + 620 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"and he has not yet found its hiding place.").also { stage++ } + 621 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So how exactly did you find him?").also { stage++ } + 622 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, it was a raiding party like any other. We had just struck one of the smaller northern islands to harvest supplies by combat, as our laws allow,").also { stage++ } + 623 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"when we saw a figure in the icey waters. As we were at least a 3 week sail from any port, and saw no other ships nearby, he must have been there some time.").also { stage++ } + 624 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We could not leave someone to the cold death of the ocean, even an outerlander, so we fished him aboard. He muttered continually, but his words made no sense.").also { stage++ } + 625 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"He had no clothes or possessions with him, and seemed to have been burnt somehow before he had landed in the water. I cannot help but wonder what burnt him,").also { stage++ } + 626 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"for as you may have seen, he is incredibly powerful and resistant to damage by any means I know of! Anyway, we decided to bring him back to Rellekka,").also { stage++ } + 627 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"for he did not seem of good health or sound mind, and simply repeated the word Koschei over and over. Yrsa tended to him for many weeks, until one day it was as though a new soul had entered his burnt and broken body.").also { stage++ } + 628 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"He suddenly left her house one day, fully healed, and able to speak to us as though nothing had happened to him.").also { stage++ } + 629 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"He still had no recollection of how he had come to be in the icey ocean, or of who he was, or where he had come from, but this did not matter to us or him.").also { stage++ } + 630 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"He took his trials of adulthood, as you did, and has been a boon to our clan ever since. Someday I fear he may regain his memory, and leave us for his past...").also { stage++ } + 631 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"But I will always respect any decision he decides to make should that day ever come upon us. Until then, he is more than welcome to stay here.").also { stage++ } + 632 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"So, $fName, was there anything more you wished to hear?").also { stage = 616 } + + 635 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, I think the best thing for you would be to go to the docks and ask to join one of our longboats on a journey. My affairs are concentrated mostly on Rellekka,").also { stage++ } + 636 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"So my knowledge is not great, but I will happily share what little I do know with you, $fName. North of this town the atmosphere becomes bitterly cold.").also { stage++ } + 637 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"There are a number of small inhabited islands that we have sea routes with. The largest of these is possibly Miscellania,").also { stage++ } + 638 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Although I hear that there has been some recent incident with their monarch, but I don't know the details.").also { stage++ } + 639 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"There is also of course the island of the moon clan, who change with the tides. They are our bitterest enemies, and we are currently at war with them.").also { stage++ } + 640 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"They are an evil people, equally cursed and blessed by the magic in their blood. Beyond those islands, there is the large frozen wasteland we call Acheron.").also { stage++ } + 641 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It is an inhospitable land, and you will need an agile and sturdy body just to keep alive in its perils.").also { stage++ } + 642 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As I say, my knowledge outside of this town is rather limited, and I know no more than this.").also { stage++ } + 643 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Was there anything else you wished to hear tell of?").also { stage = 616 } + + 645 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah, now that is something I know a great deal about. Believe it or not, all outerlanders were once orginally Fremenniks.").also { stage++ } + 646 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"When first man came to these lands all were Fremenniks, and followed our ways. We lived a happy life, and never settled in one place for long.").also { stage++ } + 647 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We travelled by boat along the coastlines, never taking more from the land than could be regrown by the same time in the following year.").also { stage++ } + 648 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"However, many moons past, some of our tribesmen were weary of constantly travelling the lands, and decided to build themselves permanent homes.").also { stage++ } + 649 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Unfortunately, the other races that had also migrated here did not like this. They waged war against us at every opportunity.").also { stage++ } + 650 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We were driven mostly to the coastlines, where we could escape by boat when attacked. Remember, at this time we had no real way to defend against constant attack.").also { stage++ } + 651 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Then one day one of our Seers, whose full name has been lost in the telling of this tale, discovered a cave full of strange rocks.").also { stage++ } + 652 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This rock would never be consumed, no matter how much we took, and sparkled at its peak, and broke off in small and regular sized chunks when mined.").also { stage++ } + 653 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Stranger than this, we found that these rocks would become filled with power when taken to certain places across this land! There was a terrible argument in our tribe!").also { stage++ } + 654 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Some said that we should take as many of these rocks as we could, and use them in defending against our enemies' attacks!").also { stage++ } + 655 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Others said that we had found a place that belonged only to the gods, and that should we steal what was not ours we would find only torment and misery.").also { stage++ } + 656 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We voted on this, and decided that it was in the best interests of the tribe to leave these strange rocks where they lay, for the gods can be spiteful and cruel,").also { stage++ } + 657 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"especially to those who do not treat them with the respect they desire. Some of our number refused to accept this ruling by our council however.").also { stage++ } + 658 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"They began to mine these rocks, and set up transport systems to the various places of power that enchanted them. They even created temples at each of these places!").also { stage++ } + 659 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This was going too far! We had no choice, but to expel them from our tribe forever!").also { stage++ } + 660 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We turned our backs upon them, and let them know they would never be welcome back to our tribes until they had released themselves from the rocks.").also { stage++ } + 661 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This is the tale of how the outerlanders came about; through stealing from the gods, and from betraying our ideals. This is why we show them no trust.").also { stage++ } + 662 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Was there something else you wished to hear?").also { stage = 616 } + + 665 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well let me know should you wish to hear our lore and histories. We value them highly.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ChieftanBrundt(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1294) + } + +} + +fun GenerateFremennikName(): String { + val namePrefixes = arrayOf( + "Bal", + "Bar", + "Dal", + "Dar", + "Den", + "Dok", + "Jar", + "Jik", + "Lar", + "Rak", + "Ral", + "Ril", + "Sig", + "Tal", + "Thor", + "Ton" + ) + val nameSuffixes = arrayOf( + "dar", + "dor", + "dur", + "kal", + "kar", + "kir", + "kur", + "lah", + "lak", + "lim", + "lor", + "rak", + "rar", + "tin", + "ton", + "tor", + "vald" + ) + val randomPrefix = Random.nextInt(0, 15) + val randomSuffix = Random.nextInt(0, 16) + + return "${namePrefixes[randomPrefix]}${nameSuffixes[randomSuffix]}" +} + +fun cleanupAttributes(player: Player){ + player.removeAttribute("PeerStarted") + player.removeAttribute("housepuzzlesolved") + player.removeAttribute("fremtrials:peer-vote") + player.removeAttribute("fremtrials:votes") + player.removeAttribute("fremtrials:sigmund-vote") + player.removeAttribute("fremtrials:manni-vote") + player.removeAttribute("fremtrials:swensen-vote") + player.removeAttribute("fremtrials:olaf-accepted") + player.removeAttribute("fremtrials:lalli-talkedto") + player.removeAttribute("fremtrials:askeladden-talkedto") + player.removeAttribute("hasWool") + player.removeAttribute("lyreConcertPlayed") + player.removeAttribute("fremtrials:olaf-vote") + player.removeAttribute("fremtrials:sigli-accepted") + player.removeAttribute("fremtrials:thorvald-vote") + player.removeAttribute("fremtrials:sigli-vote") + player.removeAttribute("riddlesolved") +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/CouncilWorkerFTDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/CouncilWorkerFTDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/CouncilWorkerFTDialogue.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/CouncilWorkerFTDialogue.kt index 6da0e8c39..0258fc945 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/CouncilWorkerFTDialogue.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/CouncilWorkerFTDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE const val COUNCIL_WORKER = 1287 diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/Draugen.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/Draugen.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/Draugen.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/Draugen.kt index 7d2916239..d8bc9b6a9 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/Draugen.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/Draugen.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* +import core.api.* import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FishermanDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FishermanDialogue.kt new file mode 100644 index 000000000..a95a90c81 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FishermanDialogue.kt @@ -0,0 +1,87 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.isQuestComplete +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import core.tools.END_DIALOGUE + +@Initializable +class FishermanDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + if(player?.inventory?.contains(3704,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Here. I got you your map.") + stage = 15 + return true + } + else if(player?.inventory?.contains(3703,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't see what's so special about this so called exotic fish.") + stage = 16 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Is this trade item for you?") + stage = 17 + return true + } + if(player?.getAttribute("sigmund-steps", 0) == 8){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map of deep sea fishing spots do you?") + stage = 10 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 7){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find an exotic and extremely odd fish, do you?") + stage = 1 + return true + } else if (isQuestComplete(player, "Fremennik Trials")){ + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there.").also { stage = 100 } + } else if (!isQuestComplete(player, "Fremennik Trials")) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there.").also { stage = 200 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"Ah, so even outerlanders have heard of my amazing catch the other day!").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.THINKING,"You have it? Can I trade you something for it?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As exotic looking as it is, it is bad eating. I will happily trade it if you can find me the secret map of the best fishing spots that the navigator has hidden away.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.AMAZED,"Is that all?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Indeed it is, outerlander. The only reason I sit out here in the cold all day long is so I don't have to pay his outrageous prices.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"By getting me his copy of that map, I will finally be self sufficient. I might even make a profit!").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.THINKING,"I'll see what I can do.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 10 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"You should pay attention when I speak! I already told you, that rip off navigator has it, and I want it!").also { stage = 1000 } + + 15 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Great work outerlander! With this, I can finally catch enough fish to make an honest living from it! Here, have the stupid fish.").also { + removeItem(player,3704) + addItem(player,3703) + stage = 1000 + } + + 16 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Me neither, outerlander. That is why I gave it to you.").also { stage = 1000 } + + 17 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I don't think so.").also { stage = 1000 } + + 100 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Welcome back, ${if (player.isMale) "brother " else "sister "}${player.getAttribute("fremennikname","fremmyname")}. It has been too long since last we spoke! The fish are really biting today!").also { stage = END_DIALOGUE } + 200 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "Don't talk to me outerlander. Anything you have to say to me, you can say to the Chieftain. Goodbye.").also { stage = END_DIALOGUE } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FishermanDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1302) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikSailorDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikSailorDialogue.kt new file mode 100644 index 000000000..9ec63a43b --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikSailorDialogue.kt @@ -0,0 +1,80 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable + +@Initializable +class SailorDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + if(player?.inventory?.contains(3699,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"You'll be glad to know I have had a love song written just for you by Olaf. So can I have that flower of yours now?") + stage = 15 + } + else if(player?.inventory?.contains(3698,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"So tell me... who is this woman that you are trying to impress anyway?") + stage = 20 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I've got an item to trade.") + stage = 25 + return true + } + else if(player?.getAttribute("sigmund-steps",0) == 2){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a love ballad, do you?") + stage = 10 + return true + } + else if(player?.getAttribute("sigmund-started",false)!!){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a unique flower from across the sea, do you?") + stage = 1 + return true + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah! Even the outerlanders have heard of my mysterious flower! I found it in a country far far away from here!").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I buy it from you?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"I'm afraid not, outerlander. There is a woman in this village whose heart I seek to capture, and I think giving her this strange flower might be my best bet with her.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Maybe you could let me have the flower and do something else to impress her?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hmm... that is not a totally stupid idea outerlander. I know she is a lover of music, and a romantic ballad might be just the thing with which to woo her.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Unfortunately I don't have a musical bone in my entire body, so someone else will have to write it for me.").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So if I can find someone to write you a romantic ballad, you will give me your flower?").also { stage++ } + 8 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That sounds like a fair deal to me, outerlander.").also { + player.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Well, the only musician I know of in these parts would be that terrible bard Olaf... Ask him.").also { stage = 1000 } + + 15 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Oh. It's by Olaf? Hmm. Well, a deal's a deal. I just hope it's better than the usual rubbish he comes up with, or my chances are worse than ever.").also { + removeItem(player,3699) + addItem(player,3698) + stage = 1000 + } + + 20 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It's Thora, the longhall barkeep. Please don't tell her though. She's not like the rest of the Fremennik girls, she has a secret desire to see the world.").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Being a sailor, I can really relate to that.").also { stage = 1000 } + + 25 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Remember, it's not for me unless it's a love ballad.") + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SailorDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1385) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikTrials.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikTrials.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikTrials.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikTrials.kt index 6fda011e3..94e12b15a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikTrials.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/FremennikTrials.kt @@ -1,13 +1,13 @@ package core.game.content.quest.fremtrials import core.game.node.entity.player.Player -import api.* +import core.api.* import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.content.activity.allfiredup.AFUBeacon +import content.minigame.allfiredup.AFUBeacon @Initializable class FremennikTrials : Quest("Fremennik Trials",64,63,3,347,0,1,10){ diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/HunterTalismanListener.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/HunterTalismanListener.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/HunterTalismanListener.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/HunterTalismanListener.kt index 7e035a6b5..8cab68f23 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/HunterTalismanListener.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/HunterTalismanListener.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* +import core.api.* import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld.Pulser +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld.Pulser import kotlin.math.abs import kotlin.math.atan2 @@ -18,7 +18,7 @@ class HunterTalismanListener : InteractionListener { override fun defineListeners() { - on(TALISMAN, IntType.ITEM, "locate"){player,_ -> + on(TALISMAN, IntType.ITEM, "locate"){ player, _ -> var locationString = getAttribute(player,"fremtrials:draugen-loc","none") if(locationString == "none"){ val newLoc = possibleLocations.random() diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiNPC.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiNPC.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiNPC.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiNPC.kt index 8f4e789c2..b78d36bd8 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiNPC.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiNPC.kt @@ -1,211 +1,210 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.npc.AbstractNPC -import core.game.node.entity.player.Player -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.game.world.update.flag.context.Animation -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.world.GameWorld.Pulser -import rs09.game.world.repository.Repository - -/** - * Handles the Koschei npc. - * @author NixWigton - */ -class KoscheiNPC constructor(id: Int = 0, location: Location? = null, session: KoscheiSession? = null) : - AbstractNPC(id, location) { - - /** - * The session. - */ - val session: KoscheiSession? - - /** - * The Koschei type. - */ - var type: KoscheiType? - - /** - * If the fight has commenced. - */ - var isCommenced = false - - /** - * Constructs a new `KoscheiNPC` `Object`. - */ - init { - this.isWalks = true - this.session = session - this.isRespawn = false - type = KoscheiType.forId(id) - } - - override fun init() { - super.init() - - /** - * Ensure the player is in the arena then spawn. - */ - if (session?.player?.location?.regionId == 10653) - Pulser.submit(KoscheiSpawnPulse(session.player, this)) - else session?.close() - } - - override fun handleTickActions() { - super.handleTickActions() - if (session == null) { - return - } - if (!session.player.isActive) { - clear() - return - } - if (isCommenced && !properties.combatPulse.isAttacking) { - properties.combatPulse.attack(session.player) - } - } - - override fun startDeath(killer: Entity) { - if (killer === session!!.player) { - if (type !== KoscheiType.FOURTH_FORM) { - type!!.transform(this, session!!.player) - } else { - session?.player?.sendMessage("Congratulations! You have completed the warriors trial!") - session?.player?.setAttribute("/save:fremtrials:thorvald-vote",true) - session?.player?.setAttribute("/save:fremtrials:votes", session?.player?.getAttribute("fremtrials:votes", 0) + 1) - session?.player?.removeAttribute("fremtrials:warrior-accepted") - addItemOrDrop(session?.player!!, Items.FREMENNIK_BLADE_3757, 1) - session.close() - } - return - } - super.startDeath(killer) - } - - override fun sendImpact(state: BattleState?) { - if (type == KoscheiType.FOURTH_FORM) { - if (session?.player?.skills?.lifepoints!! < 2) { - session.player.fullRestore() - properties.combatPulse.stop() - Pulser.submit(FightEndPulse(session.player, this)) - return - } else { - session.player.skills?.decrementPrayerPoints(session.player.skills?.prayerPoints!!) - } - } - super.sendImpact(state) - } - - override fun construct(id: Int, location: Location, vararg objects: Any): AbstractNPC { - return KoscheiNPC(id, location, null) - } - - override fun isAttackable(entity: Entity, style: CombatStyle, message: Boolean): Boolean { - if (session == null) { - return false - } - return session.player == entity - } - - override fun canSelectTarget(target: Entity): Boolean { - if (target is Player) { - if (target != session!!.player) { - return false - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.KOSCHEI_THE_DEATHLESS_1290, NPCs.KOSCHEI_THE_DEATHLESS_1291, NPCs.KOSCHEI_THE_DEATHLESS_1292, NPCs.KOSCHEI_THE_DEATHLESS_1293) - } - - /** - * Represents a Koschei type. - * @author NixWigton - */ - enum class KoscheiType(var npcId: Int, var appearMessage: String?, vararg var appearDialogues: String?) { - FIRST_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1290, "You must prove yourself... now!"), - SECOND_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1291, "This is only the beginning; you can't beat me!", "It seems you have some idea of combat after all,", "outerlander! I will not hold back so much this time!"), - THIRD_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1292, "Foolish mortal; I am unstoppable.", "Impressive start... But now we fight for real!"), - FOURTH_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1293, "Aaaaaaaarrgghhhh! The power!", "You show some skill at combat... I will hold back no", "longer! This time you lose your prayer however, and", "fight like a warrior!"); - - /** - * Transforms the new npc. - */ - fun transform(koschei: KoscheiNPC, player: Player) { - val newType = next() - koschei.lock() - player.properties.combatPulse.stop() - koschei.properties.combatPulse.stop() - koschei.walkingQueue.queue.clear() - koschei.animate(Animation(1057)) - koschei.type = newType - koschei.transform(newType.npcId) - Pulser.submit(KoscheiSpawnPulse(player, koschei)) - } - - /** - * Gets the next type. - * @return the type. - */ - operator fun next(): KoscheiType { - return values()[ordinal + 1] - } - - companion object { - /** - * Gets the Koschei type for the id. - * @param id the id. - * @return the Koschei type. - */ - fun forId(id: Int): KoscheiType? { - for (type in values()) { - if (type.npcId == id) { - return type - } - } - return null - } - } - } - - class KoscheiSpawnPulse(val player: Player?, val koschei: KoscheiNPC) : Pulse() { - var counter = 0 - override fun pulse(): Boolean { - when(counter++) { - 0 -> koschei.face(player).also { koschei.unlock(); player?.face(koschei) } - 1 -> if (koschei.type?.appearDialogues?.size!! > 0) { - player?.dialogueInterpreter?.sendDialogues(NPCs.KOSCHEI_THE_DEATHLESS_1291, FacialExpression.NEUTRAL, *koschei.type!!.appearDialogues) - } else { counter = 4 } - 4 -> koschei.attack(player).also { if (koschei.type?.appearMessage?.isNotEmpty() == true) { koschei.sendChat(koschei.type?.appearMessage) }} - } - return false - } - } - - class FightEndPulse(val player: Player?, val koschei: KoscheiNPC) : Pulse() { - var counter = 0 - override fun pulse(): Boolean { - when(counter++) { - 0 -> player?.lock().also { player?.animate(Animation(1332)).also { player?.sendMessage("Oh dear you are...") }} - 1 -> player?.setAttribute("/save:fremtrials:thorvald-vote",true).also { - player?.setAttribute("/save:fremtrials:votesplayer", player.getAttribute("fremtrials:votesplayer", 0) + 1); - player?.removeAttribute("fremtrials:warrior-accepted") - } - 3 -> player?.teleport(Location.create(2666,3694,1)).also { koschei.session?.close() } - 4 -> player?.sendMessage("...still alive somehow?") - 6 -> player?.dialogueInterpreter?.open(NPCs.THORVALD_THE_WARRIOR_1289, Repository.findNPC(NPCs.THORVALD_THE_WARRIOR_1289), this) - 7 -> player?.unlock().also { player?.sendMessage("Congratulations! You have passed the warrior's trial!") } - } - return false - } - } +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.* +import core.game.node.entity.Entity +import core.game.node.entity.combat.BattleState +import core.game.node.entity.combat.CombatStyle +import core.game.node.entity.npc.AbstractNPC +import core.game.node.entity.player.Player +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.game.world.update.flag.context.Animation +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.game.world.GameWorld.Pulser +import core.game.world.repository.Repository + +/** + * Handles the Koschei npc. + * @author NixWigton + */ +class KoscheiNPC constructor(id: Int = 0, location: Location? = null, session: KoscheiSession? = null) : + AbstractNPC(id, location) { + + /** + * The session. + */ + val session: KoscheiSession? + + /** + * The Koschei type. + */ + var type: KoscheiType? + + /** + * If the fight has commenced. + */ + var isCommenced = false + + /** + * Constructs a new `KoscheiNPC` `Object`. + */ + init { + this.isWalks = true + this.session = session + this.isRespawn = false + type = KoscheiType.forId(id) + } + + override fun init() { + super.init() + + /** + * Ensure the player is in the arena then spawn. + */ + if (session?.player?.location?.regionId == 10653) + Pulser.submit(KoscheiSpawnPulse(session.player, this)) + else session?.close() + } + + override fun handleTickActions() { + super.handleTickActions() + if (session == null) { + return + } + if (!session.player.isActive) { + clear() + return + } + if (isCommenced && !properties.combatPulse.isAttacking) { + properties.combatPulse.attack(session.player) + } + } + + override fun startDeath(killer: Entity) { + if (killer === session!!.player) { + if (type !== KoscheiType.FOURTH_FORM) { + type!!.transform(this, session!!.player) + } else { + session?.player?.sendMessage("Congratulations! You have completed the warriors trial!") + session?.player?.setAttribute("/save:fremtrials:thorvald-vote",true) + session?.player?.setAttribute("/save:fremtrials:votes", session?.player?.getAttribute("fremtrials:votes", 0) + 1) + session?.player?.removeAttribute("fremtrials:warrior-accepted") + addItemOrDrop(session?.player!!, Items.FREMENNIK_BLADE_3757, 1) + session.close() + } + return + } + super.startDeath(killer) + } + + override fun sendImpact(state: BattleState?) { + if (type == KoscheiType.FOURTH_FORM) { + if (session?.player?.skills?.lifepoints!! < 2) { + session.player.fullRestore() + properties.combatPulse.stop() + Pulser.submit(FightEndPulse(session.player, this)) + return + } else { + session.player.skills?.decrementPrayerPoints(session.player.skills?.prayerPoints!!) + } + } + super.sendImpact(state) + } + + override fun construct(id: Int, location: Location, vararg objects: Any): AbstractNPC { + return KoscheiNPC(id, location, null) + } + + override fun isAttackable(entity: Entity, style: CombatStyle, message: Boolean): Boolean { + if (session == null) { + return false + } + return session.player == entity + } + + override fun canSelectTarget(target: Entity): Boolean { + if (target is Player) { + if (target != session!!.player) { + return false + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.KOSCHEI_THE_DEATHLESS_1290, NPCs.KOSCHEI_THE_DEATHLESS_1291, NPCs.KOSCHEI_THE_DEATHLESS_1292, NPCs.KOSCHEI_THE_DEATHLESS_1293) + } + + /** + * Represents a Koschei type. + * @author NixWigton + */ + enum class KoscheiType(var npcId: Int, var appearMessage: String?, vararg var appearDialogues: String?) { + FIRST_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1290, "You must prove yourself... now!"), + SECOND_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1291, "This is only the beginning; you can't beat me!", "It seems you have some idea of combat after all,", "outerlander! I will not hold back so much this time!"), + THIRD_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1292, "Foolish mortal; I am unstoppable.", "Impressive start... But now we fight for real!"), + FOURTH_FORM(NPCs.KOSCHEI_THE_DEATHLESS_1293, "Aaaaaaaarrgghhhh! The power!", "You show some skill at combat... I will hold back no", "longer! This time you lose your prayer however, and", "fight like a warrior!"); + + /** + * Transforms the new npc. + */ + fun transform(koschei: KoscheiNPC, player: Player) { + val newType = next() + koschei.lock() + player.properties.combatPulse.stop() + koschei.properties.combatPulse.stop() + koschei.walkingQueue.queue.clear() + koschei.animate(Animation(1057)) + koschei.type = newType + koschei.transform(newType.npcId) + Pulser.submit(KoscheiSpawnPulse(player, koschei)) + } + + /** + * Gets the next type. + * @return the type. + */ + operator fun next(): KoscheiType { + return values()[ordinal + 1] + } + + companion object { + /** + * Gets the Koschei type for the id. + * @param id the id. + * @return the Koschei type. + */ + fun forId(id: Int): KoscheiType? { + for (type in values()) { + if (type.npcId == id) { + return type + } + } + return null + } + } + } + + class KoscheiSpawnPulse(val player: Player?, val koschei: KoscheiNPC) : Pulse() { + var counter = 0 + override fun pulse(): Boolean { + when(counter++) { + 0 -> koschei.face(player).also { koschei.unlock(); player?.face(koschei) } + 1 -> if (koschei.type?.appearDialogues?.size!! > 0) { + player?.dialogueInterpreter?.sendDialogues(NPCs.KOSCHEI_THE_DEATHLESS_1291, core.game.dialogue.FacialExpression.NEUTRAL, *koschei.type!!.appearDialogues) + } else { counter = 4 } + 4 -> koschei.attack(player).also { if (koschei.type?.appearMessage?.isNotEmpty() == true) { koschei.sendChat(koschei.type?.appearMessage) }} + } + return false + } + } + + class FightEndPulse(val player: Player?, val koschei: KoscheiNPC) : Pulse() { + var counter = 0 + override fun pulse(): Boolean { + when(counter++) { + 0 -> player?.lock().also { player?.animate(Animation(1332)).also { player?.sendMessage("Oh dear you are...") }} + 1 -> player?.setAttribute("/save:fremtrials:thorvald-vote",true).also { + player?.setAttribute("/save:fremtrials:votesplayer", player.getAttribute("fremtrials:votesplayer", 0) + 1); + player?.removeAttribute("fremtrials:warrior-accepted") + } + 3 -> player?.teleport(Location.create(2666,3694,1)).also { koschei.session?.close() } + 4 -> player?.sendMessage("...still alive somehow?") + 6 -> player?.dialogueInterpreter?.open(NPCs.THORVALD_THE_WARRIOR_1289, Repository.findNPC(NPCs.THORVALD_THE_WARRIOR_1289), this) + 7 -> player?.unlock().also { player?.sendMessage("Congratulations! You have passed the warrior's trial!") } + } + return false + } + } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiSession.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiSession.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiSession.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiSession.kt index 92ecce793..6e2b44e47 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/KoscheiSession.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/KoscheiSession.kt @@ -1,71 +1,71 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import core.game.node.entity.player.Player -import org.rs09.consts.NPCs - -/** - * Represents a session with Koschei. - * @author NixWigton - */ -class KoscheiSession( - /** - * The player. - */ - val player: Player -) { - /** - * The Koschei npc. - */ - private val koschei: KoscheiNPC = KoscheiNPC( - NPCs.KOSCHEI_THE_DEATHLESS_1290, - player.location?.transform(1,0,0), - this - ) - - /** - * Constructs a new `KoscheiSession` `Object`. - * @param player the player. - */ - init { - if (player.getExtension(KoscheiSession::class.java) != null) { - player.removeExtension(KoscheiSession::class.java) - } - player.addExtension(KoscheiSession::class.java, this) - } - - /** - * Starts the session. - */ - fun start() { - koschei.init() - player.unlock() - } - - /** - * Closes the session. - */ - fun close() { - koschei.clear() - player.removeExtension(KoscheiSession::class.java) - } - - companion object { - /** - * Creates the Koschei session. - * @param player the player. - * @return the session. - */ - fun create(player: Player): KoscheiSession { - return KoscheiSession(player) - } - - /** - * Gets the Koschei session. - * @param player the player. - * @return the session. - */ - fun getSession(player: Player): KoscheiSession { - return player.getExtension(KoscheiSession::class.java) - } - } +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.game.node.entity.player.Player +import org.rs09.consts.NPCs + +/** + * Represents a session with Koschei. + * @author NixWigton + */ +class KoscheiSession( + /** + * The player. + */ + val player: Player +) { + /** + * The Koschei npc. + */ + private val koschei: KoscheiNPC = KoscheiNPC( + NPCs.KOSCHEI_THE_DEATHLESS_1290, + player.location?.transform(1,0,0), + this + ) + + /** + * Constructs a new `KoscheiSession` `Object`. + * @param player the player. + */ + init { + if (player.getExtension(KoscheiSession::class.java) != null) { + player.removeExtension(KoscheiSession::class.java) + } + player.addExtension(KoscheiSession::class.java, this) + } + + /** + * Starts the session. + */ + fun start() { + koschei.init() + player.unlock() + } + + /** + * Closes the session. + */ + fun close() { + koschei.clear() + player.removeExtension(KoscheiSession::class.java) + } + + companion object { + /** + * Creates the Koschei session. + * @param player the player. + * @return the session. + */ + fun create(player: Player): KoscheiSession { + return KoscheiSession(player) + } + + /** + * Gets the Koschei session. + * @param player the player. + * @return the session. + */ + fun getSession(player: Player): KoscheiSession { + return player.getExtension(KoscheiSession::class.java) + } + } } \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LalliDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LalliDialogue.kt new file mode 100644 index 000000000..80226454b --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LalliDialogue.kt @@ -0,0 +1,166 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.inInventory +import core.api.removeItem +import core.game.node.entity.player.Player +import core.plugin.Initializable +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.item.Item +import org.rs09.consts.Items + +@Initializable +class LalliDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun open(vararg args: Any?): Boolean { + player?.let { + println(it.getAttribute("lalliEatStew", false)) + if (it.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Hello there.") + stage = 100 + return true + } + if (it.getAttribute("lalliStewCabbageAdded", false)!! && it.getAttribute("lalliStewOnionAdded", false)!! && it.getAttribute("lalliStewPotatoAdded", false)!! && it.getAttribute("lalliStewRockAdded", false)!!){ + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"It am ready now?") + stage = 60 + return true + } + if(it.getAttribute("lalliStewCabbageAdded", false)!! || it.getAttribute("lalliStewOnionAdded", false)!! || it.getAttribute("lalliStewPotatoAdded", false)!! || it.getAttribute("lalliStewRockAdded", false)!!){ + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"It am ready now?") + stage = 58 + return true + } + if (it.getAttribute("lalliEatStew", false)!!){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Hello there.") + stage = 65 + return true + } + if (it.getAttribute("hasWool", false)!!){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Hello there.") + stage = 75 + return true + } + if (it.getAttribute("fremtrials:askeladden-talkedto", false)!!) { + player("Hello there.") + stage = 50 + return true + } + if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there.") + stage = 100 + return true + } + if (it.questRepository.getStage("Fremennik Trials") > 0) { + player("Hello there.").also { stage = 0; return true } + } + } + return true + } + + + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LalliDialogue(player) + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Bah! Puny humans always try steal Lalli's golden","apples! You go away now!").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.ANNOYED,"Actually, I'm not after your golden apples. I was","wondering if I could have some golden wool, I need it","to string a lyre.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Ha! You not fool me human! Me am smart! Other","trolls so jealous of how brainy I are, they kick me out","of camp and make me live down here in cave! But me","have last funny!").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Me find golden apples on tree and me build wall to stop","anyone who not Lalli eating lovely golden apples! Did","me not tell you I are smart?").also { stage++ } + 4 -> player("Yes, yes, you are incredibly clever. Now please can I","have some golden wool?").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Hmm, me think you not really think I are clever. Me","think you is trying to trick Lalli. Me not like you as much","as other human. He give me present. I give him wool.").also { stage++ } + 6 -> options("Other human?","No, honest, you're REALLY clever.","Can I give you a present?").also { stage++ } + 7 -> when(buttonId){ + 1 -> player("Other human? You mean someone else has been here","and you gave them wool?").also { stage = 10 } + 2 -> player("No, honest, you're REALLY clever!").also { stage = 20 } + 3 -> player("Can I give you a present.").also { stage = 30 } + } + + //Other human? + 10 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Human call itself Askeladden! It not trick Lalli. Lalli do","good deal with human! Stupid human get some dumb","wool, but did not get golden apples!").also { stage++ } + 11 -> player("I see... okay, well, bye!").also { player.setAttribute("/save:fremtrials:lalli-talkedto",true); stage = 1000 } + + //Honest, you're clever + 20 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Me no believe you tell truth. Go away.").also { stage = 1000 } + + //Can I give you a present + 30 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Me think about that.").also { stage = 1000 } + + 50 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Bah! Puny humans always try steal Lalli's golden","apples! You go away now!").also { stage++ } + 51 -> player("Wait! I have something that might interest you... a pet", "rock!").also { stage++ } + 52 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH2, "Hah! You think me stupid or something human? Me", "already got one! Me don't want lots of baby rocks either,", "so me don't want another one around the place!").also { stage++ } + 53 -> player(core.game.dialogue.FacialExpression.HALF_CRYING,"Please... all I want is some of your golden wool...").also { stage++ } + 54 -> npc(core.game.dialogue.FacialExpression.OLD_SNEAKY, "Stupid human think he can trick me into giving away", "some golden apples! Hah! Golden apples is all me got to", "eat. you not get them. no way!").also { stage++ } + 55 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "Hmm... So you're hungry? I think I will have the", "perfect thing for you to eat... I just need to get myself", "an onion, a potato, and a cabbage...").also { stage++ } + 56 -> interpreter.sendDialogue("You have a cunning plan to trick this troll. You need your pet rock,", "a cabbage, a potato and an onion.").also { player.removeAttribute("fremtrials:fremtrials:lalli-talkedto");stage = 1000 } + + 58 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Not just yet...").also { stage = 1000 } + + 60 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Indeed it is. Try it and see.").also { stage++ } + 61 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Hmm... YUM! That are delicious! Me never know human know to make soup out of stone? It some special stone?").also { stage++ } + 62 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Indeed it is. But I'm willing to trade it.").also { stage++ } + 63 -> npcl(core.game.dialogue.FacialExpression.OLD_SNEAKY,"Let me think about that, me like to think.").also { + player.setAttribute("/save:lalliEatStew",true) + player.removeAttribute("lalliStewOnionAdded") + player.removeAttribute("lalliStewPotatoAdded") + player.removeAttribute("lalliStewCabbageAdded") + player.removeAttribute("lalliStewRockAdded") + stage = 1000 + } + + 65 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Your soup very tasty, human! But me still not want trade golden apples for your stone. Me think pet rock get jealous.").also { stage++ } + 66 -> playerl(core.game.dialogue.FacialExpression.ANGRY,"I. DON'T. WANT. ANY. GOLDEN. APPLES. ALL. I. WANT. IS. A. GOLDEN. FLEECE.").also { stage++ } + 67 -> npcl(core.game.dialogue.FacialExpression.OLD_ALMOST_CRYING,"Gee, sorry human, all you have do is ask, me not need you to shout. You act like you think Lalli am stupid or something...").also { + if(player.inventory.isFull){ + stage = 68 + }else{ + stage = 70 + } + } + 68 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"Me would give you golden fleece if me think you have enough room in your inventory.").also { stage = 1000 } + 70 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Here you go. Hah! Me trick you Human! All you got is worthless golden fleece! Me got very rare soup-making stone!").also { stage = 71 } + 71 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Glad you're happy Lalli!").also { + player.inventory.add(Item(Items.GOLDEN_FLEECE_3693)) + player.setAttribute("/save:hasWool",true) + player.removeAttribute("lalliEatStew") + stage = 1000 + } + 75 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Hah! How you like worthless golden fleece! Me very like rare soup-making stone!").also { stage++ } + 76 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Oh it's great, thank you again for the fleece Lalli, I hope you're enjoying your soup").also { stage = 1000 } + + 100 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Ha! Stupid human! You no get any golden apples! Even though me much like stone soup!").also { stage++ } + 101 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I please have some more golden wool?").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Me will sell you some golden wool, but me no sell you any golden apples!").also { stage++ } + 103 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"How much for the golden wool?").also { stage++ } + 104 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Me want 1000 coins! You pay or go!").also { + stage = if(inInventory(player,Items.COINS_995,1000)){ + 105 + } + else 115 + } + 105 -> options("Pay","Don't pay").also { stage++ } + 106 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Is that all? Here you go!").also { + removeItem(player,Item(Items.COINS_995,1000)) + addItem(player,Items.GOLDEN_FLEECE_3693) + stage++ + } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"You no pay, then you go! You no get any golden apples!").also { stage = 1000 } + } + 107 -> npcl(core.game.dialogue.FacialExpression.OLD_HAPPY,"Ha! Stupid human think he buy golden apples, but he actually get stupid wool! Hahaha!").also { stage = 1000 } + + 115 -> playerl(core.game.dialogue.FacialExpression.THINKING,"I don't even have that much cash on me...").also { stage++ } + 116 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"Well stupid bad trade human don't get no wool then! Or any golden apples!").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(1270) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LonghallStageZone.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LonghallStageZone.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LonghallStageZone.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LonghallStageZone.kt index 65c87aaf6..0f9425439 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LonghallStageZone.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/LonghallStageZone.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials import core.game.node.entity.Entity import core.game.world.map.zone.MapZone @@ -6,7 +6,6 @@ import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneBuilder import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.node.entity.player.diary.seers.MysteriousStatueZone @Initializable class LonghallStageZone : MapZone("LonghallStageZone",true), Plugin { diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ManniDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ManniDialogue.kt new file mode 100644 index 000000000..7f734bc1f --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ManniDialogue.kt @@ -0,0 +1,201 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.node.entity.impl.Animator +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.game.system.task.Pulse +import core.game.world.GameWorld +import core.game.world.map.Location +import core.game.world.update.flag.context.Animation +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class ManniDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + var curNPC: NPC? = NPC(0,Location(0,0,0)) + override fun open(vararg args: Any?): Boolean { + curNPC = args[0] as? NPC + if(player?.questRepository?.getStage("Fremennik Trials")!! > 0){ + if(player?.inventory?.contains(3707, 1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hey. I got your cocktail for you.") + stage = 170 + return true + } + else if(player?.inventory?.contains(3706,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"So it doesn't bother you at all that you just gave up your place here for one drink?") + stage = 180 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Is this trade item for you?") + stage = 165 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 12){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find the longhall barkeeps' legendary cocktail, do you?") + stage = 162 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 11){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a token to allow a seat at the champions table, do you?") + stage = 150 + return true + } + else if(player?.getAttribute("fremtrials:manni-accepted",false) == true) { + if (player?.inventory?.containsItem(Item(3712)) == true || player?.inventory?.containsItem(Item(3711)) == true) { + npc("Ah, I see you have your keg of beer. Are ye ready to", "drink against each other?") + stage = 101 + return true + } else { + npc("Come back when you're ready to begin", "the contest.") + stage = 1000; + return true + } + } + else if(player?.getAttribute("fremtrials:manni-vote",false) == true){ + npc("e have my vote!") + stage = 1000 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Howdy!") + stage = 190 + return true + } + player("Hello there!") + stage = 0 + return true + } + else { + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 200 + return true + } + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> {npc("Hello outerlander. I overheard your conversation with","Brundt just now. You wish to become a member of the","Fremennik?");stage++} + 1 -> {player("That's right! Why, are you on the counsel?");stage++} + 2 -> {npc("Do not let my drink-ssussed appearance fool you, I","earnt my place on the council many years past.I am","always glad to see new blood enter our tribe, and will","happily vote for you.");stage++} + 3 -> {player("Great!");stage++} + 4 -> {npc("Providing you can pass a little test for me. As a","Fremennik, you will need to show cunning, stamina,","fastitude, and an iron constitution. I know of only one","way to test all of these.");stage++} + 5 -> {player("And what's that?");stage++} + 6 -> {npc("Why, a drinking contest!");stage++} + 7 -> {npc("The task is simple enough! You versus me, a stiff drink","each, last man standing wins the trial. So what say you?");stage++} + 8 -> {options("Yes","No");stage++} + 9 -> when(buttonId){ + 1 -> {player("A drinking contest? Easy. Set them up, and I'll knock","them back.");stage++} + 2 -> {player("I don't like the sound of that.");stage = 12} + } + + //Yes + 10 -> {npc("When you are ready to begin, go and pick up a keg","from that table over there, and come back here.");stage++} + 11 -> {npc("We start when you have your keg of beer with you","and finish when one of us can drink no more and","yields.");stage = 1000;player?.setAttribute("/save:fremtrials:manni-accepted",true)} + + //No + 12 -> {npc("That's a shame."); stage = 1000} + + + //Begin drinking competition + 101 -> {options("Yes","No");stage++} + 102 -> when(buttonId){ + 1 -> {player("Yes, let's start this drinking contest!");stage++} + 2 -> {player("No, I don't think I am.");stage = 1000} + } + 103 -> {npc("As you wish outerlander; I will drink first, then you will","drink.");stage++} + 104 -> { + GameWorld.submit(DrinkingPulse(player,curNPC,player?.getAttribute("fremtrials:keg-mixed",false))); end()} + + //Sigmund stuff + 150 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As a matter of fact, I do. I have one right here. I earnt my place here at the longhall for surviving over 5000 battles and raiding parties.").also { stage++ } + 151 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Due to my contribution to the tribe, I am now permitted to spend my days here in the longhall listening to the epic tales of the bard, and drinking beer.").also { stage++ } + 152 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Cool. That sounds pretty sweet! So I guess you don't want to give it away?").also { stage++ } + 153 -> npcl(core.game.dialogue.FacialExpression.SAD,"I think it sounds better than it actually is outerlander. I miss my glory days of combat on the battlefield.").also { stage++ } + 154 -> npcl(core.game.dialogue.FacialExpression.SAD,"And to tell you the truth, the beer here isn't great, and the bards' music is lousy. I would happily give up my token if it were not for the one thing that keeps me here.").also { stage++ } + 155 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Our barkeep is one of the best in the world, and has worked in taverns across the land. When she was younger, she experimented a lot with her drinks").also { stage++ } + 156 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"and invented a cocktail so alcoholic and tasty that it has become something of a legend to all who enjoy a drink.").also { stage++ } + 157 -> npcl(core.game.dialogue.FacialExpression.SAD,"Unfortunately, she decided that cocktails were not a suitable drink for Fremennik warriors, and vowed to never again make it.").also { stage++ } + 158 -> npcl(core.game.dialogue.FacialExpression.SAD,"I have been here every day since she returned, hoping that someday she might change her mind and I might try this legendary cocktail for myself. Alas, it has never come to pass...").also { stage++ } + 159 -> npcl(core.game.dialogue.FacialExpression.SAD,"If you can persuade her to make me her legendary cocktail, I will be happy to never let another drop of alcohol pass my lips, and will give you my champions token.").also { stage++ } + 160 -> playerl(core.game.dialogue.FacialExpression.THINKING,"That's all?").also { stage++ } + 161 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"That is all.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 162 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Uh... yes, the longhall barkeep has it. So could you get me my drink now please?").also { stage = 1000 } + + 165 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not me, no.").also { stage = 1000 } + 170 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"...It is true! The legendary cocktail! I have waited for this day ever since I first started drinking!").also { + removeItem(player,3707) + addItem(player,3706) + stage++ + } + 171 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here outerlander, you may take my token. I will happily give up my place at the longhalls table of champions just for a taste of this exquisite beverage!").also { stage++ } + 172 -> playerl(core.game.dialogue.FacialExpression.ASKING,"It's just a drink...").also { stage++ } + 173 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"No, it is an artform. A drink such as this should be appreciated, and admired.").also { stage++ } + 174 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It is like a fine painting, or a tasteful sculpture. If what I hear is true, then all other drinks become like unpalatable water in comparison to this!").also { stage++ } + 175 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I guess you're happy with the trade then!").also { stage = 1000 } + + 180 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah, but it was not just any drink... It was the finest cocktail ever created! Now that I have tasted it, I need never drink again, for my tastebuds will never be so excited!").also { stage++ } + 181 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So it was nice?").also { stage++ } + 182 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It was... exquisite!").also { stage++ } + 183 -> playerl(core.game.dialogue.FacialExpression.ASKING,"What did it taste of, then?").also { stage++ } + 184 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Mostly tomato juice.").also { stage = 1000 } + + 190 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hey! It's ${player.getAttribute("fremennikname","clyde smilers")}! Let me buy you a drink!").also { + addItem(player, Items.BEER_1917) + stage++ } + 191 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"There ya go! Anyone who can drink like you earns my respect!").also { stage = 1000 } + + 200 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Do not think me rude outerlander, but our customs forbid me talking to you. All contact with outerlanders must be vetted by our chieftain, Brundt.").also { stage++ } + 201 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Where is this Brundt?").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"He is standing just over there. He will speak for the tribe.").also { stage = 1000 } + + + 1000 -> end() + } + return true + } + + class DrinkingPulse(val player: Player?,val npc: NPC?, val lowAlcohol: Boolean? = false) : Pulse(){ + var counter = 0 + override fun pulse(): Boolean { + if(!lowAlcohol!!){ + when(counter++){ + 0 -> {player?.lock();npc?.lock(); npc?.isNeverWalks = true} + 1 -> {player?.face(npc); npc?.face(player)} + 3 -> npc?.animator?.animate(Animation(1330,Animator.Priority.HIGH)) + 5 -> {player?.animator?.animate(Animation(1330,Animator.Priority.HIGH)); player?.inventory?.remove(Item(3711))} + 7 -> player?.dialogueInterpreter?.sendDialogues(player, core.game.dialogue.FacialExpression.DRUNK,"Ish no fair!! I canna drink another drop! I alsho","feel veddy, veddy ill...") + 15 -> player?.dialogueInterpreter?.sendDialogues(npc, core.game.dialogue.FacialExpression.DRUNK,"I guessh I win then ouddaladder! (hic) Niche try,","anyway!") + 16 -> {player?.unlock(); npc?.unlock(); player?.face(player);npc?.face(npc); npc?.isNeverWalks = false; return true} + } + } else { + when(counter++){ + 0 -> {player?.lock();npc?.lock(); npc?.isNeverWalks = true} + 1 -> {player?.face(npc); npc?.face(player)} + 3 -> npc?.animator?.animate(Animation(1330,Animator.Priority.HIGH)) + 5 -> {player?.animator?.animate(Animation(1330,Animator.Priority.HIGH)); player?.inventory?.remove(Item(3711))} + 7 -> player?.dialogueInterpreter?.sendDialogues(player, core.game.dialogue.FacialExpression.HAPPY,"Aaaah, lovely stuff. So you want to get the next round","in, or shall I? You don't look so good there!") + 15 -> player?.dialogueInterpreter?.sendDialogues(npc, core.game.dialogue.FacialExpression.DRUNK,"Wassha? Guh? You drank that whole keg! But it dinnna","affect you at all! I conshede! You can probably","outdrink me!") + 21 -> player?.dialogueInterpreter?.sendDialogues(npc, core.game.dialogue.FacialExpression.DRUNK,"I jusht can't (hic) believe it! Thatsh shome might fine","drinking legs you got! Anyone who can drink like","THAT getsh my vote atta somsh.... coumah... gets my","vote!") + 22 -> {player?.unlock(); npc?.unlock(); player?.face(player);npc?.face(npc); npc?.isNeverWalks = false;player?.removeAttribute("fremtrials:cherrybomb");player?.removeAttribute("fremtrials:manni-accepted");player?.removeAttribute("fremtrials:keg-mixed"); player?.setAttribute("/save:fremtrials:manni-vote",true); player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1); return true} + } + } + return false + } + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ManniDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1286) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/OlafTheBard.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/OlafTheBard.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/OlafTheBard.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/OlafTheBard.kt index 6056c78b9..8a73499eb 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/OlafTheBard.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/OlafTheBard.kt @@ -1,40 +1,40 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable @Initializable -class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ +class OlafTheBard(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player.inventory.contains(3700,1)){ - playerl(FacialExpression.HAPPY,"Hello Olaf. Do you have a beautiful love song written for me?") + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello Olaf. Do you have a beautiful love song written for me?") stage = 65 } else if(player.inventory.contains(3699,1)){ - playerl(FacialExpression.ASKING,"So you think this song is pretty good then?") + playerl(core.game.dialogue.FacialExpression.ASKING,"So you think this song is pretty good then?") stage = 70 return true } else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I've got a trade item; is it for you?") + playerl(core.game.dialogue.FacialExpression.ASKING,"I've got a trade item; is it for you?") stage = 75 return true } else if(player?.getAttribute("sigmund-steps",0) == 3){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find some custom sturdy boots, do you?") + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find some custom sturdy boots, do you?") stage = 60 return true } else if(player?.getAttribute("sigmund-steps",0)!! == 2){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a love ballad, do you?") + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a love ballad, do you?") stage = 50 return true } else if(player?.getAttribute("lyreConcertPlayed",false)!!){ - playerl(FacialExpression.HAPPY,"So can I rely on your vote with the council of elders in my favour?") + playerl(core.game.dialogue.FacialExpression.HAPPY,"So can I rely on your vote with the council of elders in my favour?") stage = 40 return true } @@ -44,7 +44,7 @@ class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ return true } else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.HAPPY,"Hello again to you, ${player.getAttribute("fremennikname","schlonko")}. Us bards should stick together, what can I do for you?") + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again to you, ${player.getAttribute("fremennikname","schlonko")}. Us bards should stick together, what can I do for you?") stage = 98 return true } @@ -54,7 +54,7 @@ class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ return true } else{ - playerl(FacialExpression.HAPPY,"Hello there. So you're a bard?") + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there. So you're a bard?") stage = 150 return true } @@ -99,9 +99,9 @@ class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ 28 -> npc("Is that clear enough, outerlander? Would you like me","to repeat anything?").also { stage++ } 29 -> player("No thanks. I think I've got it.").also { stage = 1000 } - 40 -> npcl(FacialExpression.HAPPY,"You have a truly poetic soul! Anyone who can compose such a beautiful epic, and then perform it so flawlessly can only bring good to our clan!").also { stage++ } - 41 -> playerl(FacialExpression.THINKING,"Erm... so that's a yes, then?").also { stage++ } - 42 -> npcl(FacialExpression.HAPPY,"Absolutely! We must collaborate together on a duet sometime, don't you think?").also { + 40 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You have a truly poetic soul! Anyone who can compose such a beautiful epic, and then perform it so flawlessly can only bring good to our clan!").also { stage++ } + 41 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Erm... so that's a yes, then?").also { stage++ } + 42 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Absolutely! We must collaborate together on a duet sometime, don't you think?").also { setAttribute(player, "/save:fremtrials:olaf-vote",true) setAttribute(player, "/save:fremtrials:votes",getAttribute(player, "fremtrials:votes",0) + 1) stage = 1000 @@ -109,53 +109,53 @@ class OlafTheBard(player: Player? = null) : DialoguePlugin(player){ //Sigmund bullshit - 50 -> npcl(FacialExpression.HAPPY," Well, as official Fremennik bard, it falls within my remit to compose all music for the tribe. I am fully versed in all the various types of romantic music.").also { stage++ } - 51 -> playerl(FacialExpression.HAPPY,"Great! Can you write me one then?").also { stage++ } - 52 -> npcl(FacialExpression.THINKING,"Well... Normally I would be thrilled at the chance to show my skill as a poet in composing a seductively romantic ballad...").also { stage++ } - 53 -> playerl(FacialExpression.ANNOYED,"Let me guess; Here comes the 'but'.").also { stage++ } - 54 -> npcl(FacialExpression.SAD,"...but unfortunately I cannot concentrate fully upon my work recently.").also { stage++ } - 55 -> playerl(FacialExpression.ASKING,"Why is that then?").also { stage++ } - 56 -> npcl(FacialExpression.NEUTRAL,"It is these old worn out shoes of mine... As a bard I am expected to wander the lands, singing of the glorious battles of our warriors.").also { stage++ } - 57 -> npcl(FacialExpression.NEUTRAL,"If you can find me a pair of sturdy boots to replace these old worn out ones of mine, I will be happy to spend the time on composing you a romantic ballad.").also { + 50 -> npcl(core.game.dialogue.FacialExpression.HAPPY," Well, as official Fremennik bard, it falls within my remit to compose all music for the tribe. I am fully versed in all the various types of romantic music.").also { stage++ } + 51 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Great! Can you write me one then?").also { stage++ } + 52 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Well... Normally I would be thrilled at the chance to show my skill as a poet in composing a seductively romantic ballad...").also { stage++ } + 53 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"Let me guess; Here comes the 'but'.").also { stage++ } + 54 -> npcl(core.game.dialogue.FacialExpression.SAD,"...but unfortunately I cannot concentrate fully upon my work recently.").also { stage++ } + 55 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Why is that then?").also { stage++ } + 56 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"It is these old worn out shoes of mine... As a bard I am expected to wander the lands, singing of the glorious battles of our warriors.").also { stage++ } + 57 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"If you can find me a pair of sturdy boots to replace these old worn out ones of mine, I will be happy to spend the time on composing you a romantic ballad.").also { player?.incrementAttribute("sigmund-steps",1) stage = 1000 } - 60 -> npcl(FacialExpression.ANNOYED,"I'm sorry outerlander... If I did, I would not trouble you to go and find them for me, would I?").also { stage = 1000 } + 60 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I'm sorry outerlander... If I did, I would not trouble you to go and find them for me, would I?").also { stage = 1000 } - 65 -> npcl(FacialExpression.HAPPY,"That depends outerlander... Do you have some new boots for me? My feet get so tired roaming the land...").also { stage++ } - 66 -> playerl(FacialExpression.HAPPY,"As a matter of fact - I do!").also { + 65 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That depends outerlander... Do you have some new boots for me? My feet get so tired roaming the land...").also { stage++ } + 66 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"As a matter of fact - I do!").also { removeItem(player,3700) addItem(player,3699) stage++ } - 67 -> npcl(FacialExpression.HAPPY,"Oh! Superb! Those are great! They're just what I was looking for! Here, take this song with my compliments! It is one of my finest works yet!").also { stage = 1000 } + 67 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Oh! Superb! Those are great! They're just what I was looking for! Here, take this song with my compliments! It is one of my finest works yet!").also { stage = 1000 } - 70 -> npcl(FacialExpression.HAPPY,"Ahhh.... outerlander... it is the most beautiful romantic ballad I have ever been inspired to write...").also { stage++ } - 71 -> npcl(FacialExpression.HAPPY,"Only a woman with a heart of icy stone could fail be to be moved by its beauty!").also { stage++ } - 72 -> playerl(FacialExpression.HAPPY,"Thanks! That sounds perfect!").also { stage = 1000 } + 70 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahhh.... outerlander... it is the most beautiful romantic ballad I have ever been inspired to write...").also { stage++ } + 71 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Only a woman with a heart of icy stone could fail be to be moved by its beauty!").also { stage++ } + 72 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thanks! That sounds perfect!").also { stage = 1000 } - 75 -> npcl(FacialExpression.HAPPY,"Only if it's a new pair of boots.").also { stage = 1000 } + 75 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Only if it's a new pair of boots.").also { stage = 1000 } 98 -> options("I was wondering...","I forget now...").also { stage++ } 99 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"I was wondering... Can I learn to play my lyre again?").also { stage++ } - 2 -> playerl(FacialExpression.THINKING,"I forget now...").also { stage = 1000 } + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I was wondering... Can I learn to play my lyre again?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.THINKING,"I forget now...").also { stage = 1000 } } - 100 -> npcl(FacialExpression.HAPPY, "Well that is an interesting question. Let me let you into a little secret. If you make another offering to the Fossegrimen you will learn a secret melody.").also { stage++ } - 101 -> playerl(FacialExpression.ASKING,"What kind of melody?").also { stage++ } - 102 -> npcl(FacialExpression.HAPPY,"It is the song of Rellekka. When you play it, it will bring you back to this town where you are in this world.").also { stage++ } - 103 -> npcl(FacialExpression.HAPPY,"We often go adventuring with bards for precisely this reason. No matter where we have ended up we can return safe and sound to home.").also { stage++ } - 104 -> playerl(FacialExpression.HAPPY,"Thanks, Olaf!").also { stage = 1000 } + 100 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Well that is an interesting question. Let me let you into a little secret. If you make another offering to the Fossegrimen you will learn a secret melody.").also { stage++ } + 101 -> playerl(core.game.dialogue.FacialExpression.ASKING,"What kind of melody?").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It is the song of Rellekka. When you play it, it will bring you back to this town where you are in this world.").also { stage++ } + 103 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We often go adventuring with bards for precisely this reason. No matter where we have ended up we can return safe and sound to home.").also { stage++ } + 104 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thanks, Olaf!").also { stage = 1000 } - 150 -> npcl(FacialExpression.HAPPY,"I am afraid I cannot speak to outerlanders. Besides, I am busy composing an epic.").also { stage = 1000 } + 150 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am afraid I cannot speak to outerlanders. Besides, I am busy composing an epic.").also { stage = 1000 } 1000 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return OlafTheBard(player) } diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PeerTheSeerDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PeerTheSeerDialogue.kt new file mode 100644 index 000000000..d464c4500 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PeerTheSeerDialogue.kt @@ -0,0 +1,263 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.dumpContainer +import core.api.questStage +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.diary.DiaryType +import core.plugin.Initializable +import core.tools.RandomFunction +import core.tools.END_DIALOGUE +import kotlin.random.Random + +@Initializable +class PeerTheSeerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + val predictionOne = arrayOf("one","two","three","four","five","six","seven","eight","ten") + val predictionTwo = arrayOf("black","blue","brown","cyan","green","pink","purple","red","yellow") + val predictionThree = arrayOf("fire giant","ghosts","giant","goblin","green dragon","hobgoblin","lesser demon","moss giant","ogre","zombie") + val predictionFour = arrayOf("Al Kharid","Ardougne","Burthorpe","Canifis","Catherby","Falador","Karamja","Varrock","The Wilderness","Yanille") + val predictionFive = arrayOf("battleaxe","crossbow","dagger","javelin","long sword","mace","scimitar","spear","warhammer") + val predictionSix = arrayOf("Agility","Cooking","Crafting","Fishing","Fletching","Herblore","Mining","Runecrafting","Thieving") + val PREDICTIONS = arrayOf( + "You will find luck today with the number ${predictionOne[RandomFunction.getRandom(8)]}.", + "The colour ${predictionTwo[RandomFunction.getRandom(8)]} will bring you luck this day.", + "The enemy called ${predictionThree[RandomFunction.getRandom(9)]} is your lucky totem this day.", + "The place called ${predictionFour[RandomFunction.getRandom(9)]} will be worth your time to visit.", + "The stars tell me that you should use a ${predictionFive[RandomFunction.getRandom(8)]} in combat today.", + "You would be wise to train the skill ${predictionSix[RandomFunction.getRandom(8)]}") + var prediction = RandomFunction.getRandom(5) + + override fun open(vararg args: Any?): Boolean { + if(player.inventory.contains(3710,1)){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Can I have a weather forecast now please?") + stage = 15 + return true + } + else if(player.inventory.contains(3705,1)){ + playerl(core.game.dialogue.FacialExpression.ASKING,"So, about this forecast...") + stage = 20 + return true + } + else if(player.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I've got an item to trade but I don't know if it's for you.") + stage = 26 + return true + } + else if(player.getAttribute("sigmund-steps", 0) == 10){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a brave and powerful warrior to act as a bodyguard?") + stage = 8 + return true + } + else if(player.getAttribute("sigmund-steps", 0) == 9){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a weather forecast from the Fremennik Seer do you?") + stage = 1 + return true + } + else if(player.getAttribute("PeerStarted",false) && !player.inventory.isEmpty || !player.equipment.isEmpty){ + npcl(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") + stage = 100 + return true + } + else if(player.getAttribute("PeerStarted",false) && player.inventory.isEmpty && player.equipment.isEmpty){ + npcl(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") + stage = 110 + return true + } + else if(player.getAttribute("fremtrials:peer-vote",false)){ + npcl(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") + stage = 120 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") + stage = 150 + return true + } + else if(player.questRepository.hasStarted("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") + stage = 50 + return true + } + if (questStage(player, "Fremennik Trials") == 0) { + npc(core.game.dialogue.FacialExpression.SAD,"Uuuh... What was that dark presence I felt?").also { stage = 300 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Er.... Yes, because I AM the Fremennik Seer.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I have a weather forecast then please?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.THINKING,"You require a divination of the weather? This is a simple matter for me, but I will require something in return from you for this small service.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I knew you were going to say that...").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Do not fret, outerlander; it is a fairly simple matter. I require a bodyguard for protection. Find someone willing to offer me this service.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.ASKING,"That's all?").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That is all.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 10 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"If I did, then I would simply have asked them myself now, wouldn't I, outerlander?").also { stage = 1000 } + + 15 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I have already told you outerlander; You may have a reading from me when I have a signed contract from a warrior guaranteeing my protection.").also { stage++ } + 16 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yeah, I know; I have one right here from Thorvald.").also { + removeItem(player,3710) + addItem(player,3705) + stage++ + } + 17 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"You have not only persuaded one of the Fremennik to act as a servant to me, but you have enlisted the aid of mighty Thorvald himself???").also { stage++ } + 18 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You may take this forecast with my blessing outerlander. You have offered me the greatest security I can imagine.").also { stage = 1000 } + + 20 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Yes, outerlander?").also { stage++ } + 21 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I still don't know why you didn't just let me have one anyway in the first place. Surely it means nothing to you?").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.THINKING,"That is not true, outerlander. Although I see glimpses of the future all of the time, using my powers brings the attention of the gods to me.").also { stage++ } + 23 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Some of the gods are spiteful and cruel, and I fear if I use my powers too much then I will meet with unpredictable accidents.").also { stage++ } + 24 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This is why I needed protection.").also { stage++ } + 25 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Okay... I... think I understand...").also { stage = 1000 } + + 26 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not me, I'm afraid.").also { stage++ } + + //The Seer's Trial + 50 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"!").also { stage++ } + 51 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } + 52 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Hello. I'm looking for members of the council of elders to vote for me to become a Fremennik.").also { stage++ } + 53 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Are you now? Well that is interesting. Usually outerlanders do not concern themselves with our ways like that.").also { stage++ } + 54 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am one of the members of the council of elders, and should you be able to prove to me that you have something to offer my clan I will vote in your favour at the next meeting.").also { stage++ } + 55 -> playerl(core.game.dialogue.FacialExpression.ASKING,"How can I prove that to you?").also { stage++ } + 56 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, I have but a simple test. This building behind me is my house. Inside I have constructed a puzzle.").also { stage++ } + 57 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As a Seer to the clan, I value intelligence very highly, so you may think of it as an intelligence test of sorts.").also { stage++ } + 58 -> playerl(core.game.dialogue.FacialExpression.THINKING,"An intelligence test? I thought barbarians were stupid!").also { stage++ } + 59 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"That is the opinion that outerlanders usually hold of my people, it is true. But that is because people often confuse knowledge with wisdom.").also { stage++ } + 60 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"My puzzle tests not what you know, but what you can work out. All members of our clan have been tested when they took their trials.").also { stage++ } + 61 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So what exactly does this puzzle consist of, then?").also { stage++ } + 62 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, firstly you must enter my house with no items, weapons or armour. Then it is a simple matter of entering through one door and leaving by the other.").also { stage++ } + 63 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I can't take anything in there with me?").also { stage++ } + 64 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That is correct outerlander. Everything you need to complete the puzzle you will find inside the building. Nothing more.").also { stage++ } + 65 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"So what say you outerlander? You think you have the wit to earn yourself my vote?").also { stage++ } + 66 -> options("Yes","No").also { stage++ } + 67 -> when(buttonId){ + 1 ->{ playerl(core.game.dialogue.FacialExpression.HAPPY,"Yes, I accept your challenge, I have one small question, however...") + player?.setAttribute("/save:PeerStarted",true) + player?.setAttribute("/save:PeerRiddle", Random.nextInt(0,3)) + stage = 70 + } + 2 ->{ playerl(core.game.dialogue.FacialExpression.HAPPY,"No, thinking about stuff isn't really my 'thing'. I'd rather go kill something. I'll find someone else to vote for me") + stage++ + } + } + //No to challenge + 68 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As you wish, outerlander.").also { stage = 1000 } + + //Yes to challenge + 70 -> npcl(core.game.dialogue.FacialExpression.ASKING,"Yes outerlander?").also { stage++ } + 71 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Well... you say I can bring nothing with me when I enter your house...").also { stage++ } + 72 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Yes outerlander??").also { stage++ } + 73 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Well...").also { stage++ } + 74 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Yes, outerlander???").also { stage++ } + 75 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Where is the nearest bank?").also { stage++ } + 76 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah, I see your problem outerlander. The nearest bank to here is the place known to outerlanders as the Seers Village.").also { stage++ } + 77 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It is some way South. I do however have an alternative, should you wish to take it.").also { stage++ } + 78 -> playerl(core.game.dialogue.FacialExpression.ASKING,"And what is that?").also { stage++ } + 79 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I can store all the weapons, armour and items that you have upon you directly into your bank account.").also { stage++ } + 80 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"This will tax what little magic I possess however, so you will have to travel to the bank to withdraw them again.").also { stage++ } + 81 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"What say you outerlander? Do you wish me to do this for you?").also { stage++ } + 82 -> options("Yes","No").also { stage++ } + 83 -> when(buttonId){ + 1 -> { + val slotAmount = player.inventory.itemCount() + player.equipment.itemCount() + if (slotAmount < player.bank.freeSlots()){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"The task is done. I wish you luck with your test, outerlander.") + dumpContainer(player,player.inventory) + dumpContainer(player,player.equipment) + stage = 1000 + } + else { + npcl(core.game.dialogue.FacialExpression.SAD,"I am sorry outerlander, the spell is not working. I believe you may have some objects that you cannot bank with you") + stage = 1000 + } + } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"No thanks. Nobody touches my stuff but me!").also { stage++ } + } + + //No to banking + 84 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As you wish, outerlander. You may attempt my little task when you have deposited your equipment in the bank").also { + stage = 1000 + } + + //Yes to banking but cannot bank + 90 -> npcl(core.game.dialogue.FacialExpression.SAD,"I am sorry outerlander, the spell is not working. I believe you may have some objects that you cannot bank with you").also { + stage = 1000 + } + + //Returning after accepting with items. + 100 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"!").also { stage++ } + 101 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } + 102 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So I can bring nothing with me when I enter your house?").also { stage++ } + 103 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That is correct outerlander, but as I say, I can use my small skill in magic to send your items directly into your bank account from here.").also { stage++ } + 104 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You will need to manually go to the bank to withdraw them again however.").also { stage++ } + 105 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Would you like me to perform this small spell upon you, outerlander?").also { stage = 82 } + + //Returning after accepting without items. + 110 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"!").also { stage++ } + 111 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } + 112 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So I just have to enter by one door of your house, and leave by the other?").also { stage++ } + 113 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That is correct outerlander. Be warned it is not as easy as it may at first sound...").also { stage = 1000 } + + //After completing the Seer's Trial. + 120 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"!").also { stage++ } + 121 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahem, sorry about that.").also { stage++ } + 122 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"So you will vote for me at the council?").also { stage++ } + 123 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Absolutely, outerlander. Your wisdom in passing my test marks you as worthy in my eyes.").also { stage = 1000 } + + + //After Fremennik Trials + 150 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"!").also { stage++ } + 151 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ahem, sorry about that.").also { + stage = if(player.achievementDiaryManager.getDiary(DiaryType.FREMENNIK).isComplete(0)){ + 200 + }else 152 + } + 152 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello Peer.").also { stage++ } + 153 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings to you, brother ${player.getAttribute("fremennikname","dingle")}! What brings you to see me again?").also { stage++ } + 154 -> options("Can you tell my future?","Nothing really.").also{stage++} + 155 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I was wondering if you could give me a reading on my future...?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nothing really, I just stopped by to say hello").also { stage = 160 } + } + 156 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah, you would like a prediction? I do not see that that would be so difficult... Wait a moment...").also { + stage++ + } + 157 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here is your prediction: ${PREDICTIONS[prediction]}").also { stage = 1000 } + + 160 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, hello to you too!").also { stage = 1000 } + + + 200 -> options("Deposit service","Can you tell my future?","Nothing really.").also{ stage++ } + 201 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Could you deposit some things for me, please?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I was wondering if you could give me a reading on my future...?").also { stage = 156 } + 3 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nothing really, I just stopped by to say hello").also { stage = 160 } + } + 202 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Of course, ${player.getAttribute("fremennikname","dingle")}. I am always happy to aid those who have earned the right to wear Fremennik sea boots.").also { + player.bank.openDepositBox() + stage = 1000 + } + + 300 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"!").also { stage++ } + 301 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Ahem, sorry about that. I have no interest in talking to you just now outerlander.").also { stage = END_DIALOGUE } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return PeerTheSeerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1288) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PoisonSalesman.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PoisonSalesman.kt index ff96467af..44391fd20 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PoisonSalesman.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/PoisonSalesman.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class PoisonSalesman(player: Player? = null) : DialoguePlugin(player) { +class PoisonSalesman(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { options("Talk about the Murder Mystery Quest","Talk about the Fremennik Trials") @@ -92,7 +92,7 @@ class PoisonSalesman(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return PoisonSalesman(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeerLockInterfaceListener.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeerLockInterfaceListener.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeerLockInterfaceListener.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeerLockInterfaceListener.kt index 802d126ac..6be622d9d 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeerLockInterfaceListener.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeerLockInterfaceListener.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.sendMessage -import rs09.game.interaction.InterfaceListener +import core.api.sendMessage +import core.game.interaction.InterfaceListener class SeerLockInterfaceListener : InterfaceListener { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeersHouseListeners.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeersHouseListeners.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt index 5e88b9d8b..cbf3ed8ff 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SeersHouseListeners.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SeersHouseListeners.kt @@ -1,8 +1,6 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.entity.impl.Animator import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio @@ -12,9 +10,9 @@ import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class SeersHouseListeners : InteractionListener { @@ -97,7 +95,7 @@ class SeersHouseListeners : InteractionListener { override fun defineListeners() { - on(WESTDOOR, IntType.SCENERY, "open"){player,node -> + on(WESTDOOR, IntType.SCENERY, "open"){ player, node -> if(!player.getAttribute("PeerStarted",false)){ sendDialogue(player,"You should probably talk to the owner of this home.") } @@ -112,26 +110,26 @@ class SeersHouseListeners : InteractionListener { else if(player.getAttribute("riddlesolved",false)){ if(player.location.x == 2631){ player.inventory.clear() - DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) }else{ - DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) } - DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) } return@on true } on(WESTLADDER, IntType.SCENERY, "Climb-up") { player, node -> - ClimbActionHandler.climb(player, Animation(828), Location.create(2631, 3664, 2)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2631, 3664, 2)) return@on true } on(WESTTRAPDOOR.id, IntType.SCENERY, "Climb-down") { player, node -> if(player.location.x < 2634){ - ClimbActionHandler.climb(player, Animation(828), Location.create(2631, 3664, 0)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2631, 3664, 0)) } else if(player.location.x > 2634){ - ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 0)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 0)) } return@on true } @@ -158,13 +156,13 @@ class SeersHouseListeners : InteractionListener { on(EASTTRAPDOOR.id, IntType.SCENERY, "Climb-down") { player, node -> if(player.location.x > 2634){ - ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 0)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 0)) } return@on true } on(EASTLADDER, IntType.SCENERY, "Climb-Up") { player, node -> - ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 2)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2636, 3664, 2)) return@on true } @@ -930,7 +928,7 @@ class SeersHouseListeners : InteractionListener { if(player.inventory.contains(SEERSKEY,1)){ player.setAttribute("/save:housepuzzlesolved",true) player.inventory.clear() - DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) player.setAttribute("/save:fremtrials:peer-vote",true) player.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) sendNPCDialogue(player,1288,"Incredible! To have solved my puzzle so quickly! I have no choice but to vote in your favour!") diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigliTheHuntsman.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigliTheHuntsman.kt index 2533d9c3e..b5232819b 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigliTheHuntsman.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigliTheHuntsman.kt @@ -1,39 +1,39 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.addItem -import api.removeItem +import core.api.addItem +import core.api.removeItem import core.game.node.entity.player.Player import core.game.node.entity.player.info.PlayerDetails import core.game.node.item.Item import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression @Initializable -class SigliTheHuntsman(player: Player? = null) : DialoguePlugin(player){ +class SigliTheHuntsman(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { if(player?.inventory?.contains(3702,1) == true){ - npcl(FacialExpression.HAPPY,"Greetings outerlander.") + npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings outerlander.") stage = 165 return true } else if(player?.inventory?.contains(3701,1) == true){ - playerl(FacialExpression.ASKING,"So you really don't mind giving this away to me?") + playerl(core.game.dialogue.FacialExpression.ASKING,"So you really don't mind giving this away to me?") stage = 170 return true } else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I have an item to trade.") + playerl(core.game.dialogue.FacialExpression.ASKING,"I have an item to trade.") stage = 175 return true } if(player?.getAttribute("sigmund-steps", 0) == 6){ - npcl(FacialExpression.HAPPY,"Greetings outerlander.") + npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings outerlander.") stage = 160 return true } else if(player?.getAttribute("sigmund-steps", 0) == 5){ - npcl(FacialExpression.HAPPY,"Greetings outerlander.") + npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings outerlander.") stage = 150 return true } @@ -48,7 +48,7 @@ class SigliTheHuntsman(player: Player? = null) : DialoguePlugin(player){ return true } else if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello again Sigli.") + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello again Sigli.") stage = 180 return true } @@ -58,7 +58,7 @@ class SigliTheHuntsman(player: Player? = null) : DialoguePlugin(player){ return true } else{ - npcl(FacialExpression.HAPPY,"I do not speak to outerlanders. If you have anything of import to say, go and speak to the Chieftain.") + npcl(core.game.dialogue.FacialExpression.HAPPY,"I do not speak to outerlanders. If you have anything of import to say, go and speak to the Chieftain.") stage = 1000 return true } @@ -110,43 +110,43 @@ class SigliTheHuntsman(player: Player? = null) : DialoguePlugin(player){ stage = 1000 } - 150 -> playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map to unspoiled hunting grounds, do you?").also { stage++ } - 151 -> npcl(FacialExpression.HAPPY,"Well, of course I do. I wouldn't be much of a huntsman if I didn't know where to find my prey now, would I outerlander?").also { stage++ } - 152 -> playerl(FacialExpression.ASKING,"No, I guess not. So can I have it?").also { stage++ } - 153 -> npcl(FacialExpression.ANNOYED,"Directions to my hunting grounds could mean the end of my livelihood. The only way I would be prepared to give them up would be...").also { stage++ } - 154 -> playerl(FacialExpression.THINKING,"What? Power? Money? Women? Wine?").also { stage++ } - 155 -> npcl(FacialExpression.HAPPY,"...a new string for my hunting bow. Not just any bowstring; I need a custom bowstring, balanced for my bow precisely to keep my hunt competitive.").also { stage++ } - 156 -> npcl(FacialExpression.HAPPY,"Only in this way would I allow the knowledge of my hunting grounds to be passed on to strangers.").also { stage++ } - 157 -> playerl(FacialExpression.THINKING,"So where would I get that?").also { stage++ } - 158 -> npcl(FacialExpression.HAPPY,"I have no idea. But then again, I'm happy with my old bowstring and being the only person who knows where my hunting ground is.").also { + 150 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map to unspoiled hunting grounds, do you?").also { stage++ } + 151 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, of course I do. I wouldn't be much of a huntsman if I didn't know where to find my prey now, would I outerlander?").also { stage++ } + 152 -> playerl(core.game.dialogue.FacialExpression.ASKING,"No, I guess not. So can I have it?").also { stage++ } + 153 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Directions to my hunting grounds could mean the end of my livelihood. The only way I would be prepared to give them up would be...").also { stage++ } + 154 -> playerl(core.game.dialogue.FacialExpression.THINKING,"What? Power? Money? Women? Wine?").also { stage++ } + 155 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"...a new string for my hunting bow. Not just any bowstring; I need a custom bowstring, balanced for my bow precisely to keep my hunt competitive.").also { stage++ } + 156 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Only in this way would I allow the knowledge of my hunting grounds to be passed on to strangers.").also { stage++ } + 157 -> playerl(core.game.dialogue.FacialExpression.THINKING,"So where would I get that?").also { stage++ } + 158 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I have no idea. But then again, I'm happy with my old bowstring and being the only person who knows where my hunting ground is.").also { player?.incrementAttribute("sigmund-steps",1) stage = 1000 } - 160 -> playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a finely balanced custom bowstring, do you?").also { stage++ } - 161 -> npcl(FacialExpression.ANNOYED,"If I knew I would not have asked you to go and get me one, now would I?").also { stage = 1000 } + 160 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a finely balanced custom bowstring, do you?").also { stage++ } + 161 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"If I knew I would not have asked you to go and get me one, now would I?").also { stage = 1000 } - 165 -> playerl(FacialExpression.HAPPY,"Here. I have your bowstring. Give me your map to the hunting grounds.").also { + 165 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Here. I have your bowstring. Give me your map to the hunting grounds.").also { removeItem(player,3702) addItem(player,3701) stage++ } - 166 -> npcl(FacialExpression.HAPPY,"Well met, outerlander. I see some hunting potential within you. Here, take my map, I was getting too dependent on it for my skill anyway.").also { stage = 1000 } + 166 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well met, outerlander. I see some hunting potential within you. Here, take my map, I was getting too dependent on it for my skill anyway.").also { stage = 1000 } - 170 -> npcl(FacialExpression.HAPPY,"No outerlander... it is hard to explain. That map makes my role as huntsman too easy. I fear my skills are becoming dulled.").also { stage++ } - 171 -> npcl(FacialExpression.HAPPY,"Now I must track my prey once more. To begin again from scratch... I feel this may keep me sharp.").also { stage = 1000 } + 170 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"No outerlander... it is hard to explain. That map makes my role as huntsman too easy. I fear my skills are becoming dulled.").also { stage++ } + 171 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Now I must track my prey once more. To begin again from scratch... I feel this may keep me sharp.").also { stage = 1000 } - 175 -> npcl(FacialExpression.ANNOYED,"Not the one I want, outerlander.").also { stage = 1000 } + 175 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not the one I want, outerlander.").also { stage = 1000 } - 180 -> npcl(FacialExpression.HAPPY,"Hello again to you ${player.getAttribute("fremennikname","spinky")}. How goes the hunt?").also { stage++ } - 181 -> playerl(FacialExpression.ASKING,"They hunt? I've already done your task! That's why I'm a Fremennik now!").also { stage++ } - 182 -> npcl(FacialExpression.HAPPY,"You think so do you? The Draugen is always out there, just as I and my hunters are always on its trail to keep it at bay. The hunt will never end until I do.").also { stage = 1000 } + 180 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again to you ${player.getAttribute("fremennikname","spinky")}. How goes the hunt?").also { stage++ } + 181 -> playerl(core.game.dialogue.FacialExpression.ASKING,"They hunt? I've already done your task! That's why I'm a Fremennik now!").also { stage++ } + 182 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You think so do you? The Draugen is always out there, just as I and my hunters are always on its trail to keep it at bay. The hunt will never end until I do.").also { stage = 1000 } 1000 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return SigliTheHuntsman(player) } diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigmundDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigmundDialogue.kt new file mode 100644 index 000000000..6e345f2c6 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SigmundDialogue.kt @@ -0,0 +1,146 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class SigmundDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + private val QUEST_ITEMS = intArrayOf(3709,3707,3706,3710,3705,3704,3703,3702,3701,3708,3700,3699,3698) + + val gender = if(player?.isMale == true){ + "brother" + }else "sister" + + val fName = player?.getAttribute("fremennikname","uhhh fucking uhhh geoff lol") + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 50 + return true + } + else if(!player.questRepository.hasStarted("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 60 + return true + } + if(player?.inventory?.contains(3698,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Here's that flower you wanted.") + stage = 30 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true && !player.inventory.containsAtLeastOneItem(QUEST_ITEMS)){ + npcl(core.game.dialogue.FacialExpression.ASKING,"So... how goes it outerlander? Did you manage to obtain my flower for me yet? Or do you lack the necessary merchanting skills?") + stage = 35 + return true + } + if(player?.getAttribute("sigmund-started",false)!!){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 25 + return true + } + else if(!player?.getAttribute("fremtrials:sigmund-vote",false)!!){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 1 + return true + } + else if(player?.getAttribute("fremtrials:sigmund-vote",false) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there!") + stage = 40 + return true + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Hello outlander.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Are you a member of the council?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"That I am outlander; it is a position that brings my family and I pride.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"I was wondering if I can count on your vote at the council of elders?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.THINKING,"You wish to become a Fremennik? I may be persuaded to swing my vote to your favor, but you will first need to do a little task for me.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"How did I know it wouldn't be that simple for your vote?").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Calm yourself outerlander. It is but a small task really... I simply require a flower.").also { stage++ } + 8 -> playerl(core.game.dialogue.FacialExpression.ASKING,"A flower? What's the catch?").also { stage++ } + 9 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"The catch? Well, it is not just any flower. Someone in this town has an extremely unique flower from a far off land that they picked up on their travels.").also { stage++ } + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"I would like you to demonstrate your merchanting skills to me by persuading them to part with it, and then give it to me for my vote.").also { stage++ } + 11 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Well... I guess that doesn't sound too hard.").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Excellent! You will obtain this flower for me, then?").also { stage++ } + 13 -> options("Yes","No").also { stage++ } + 14 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Okay. I don't think this will be too difficult. Any suggestions on where to start looking for this flower?").also { + player?.setAttribute("/save:sigmund-started",true) + player?.setAttribute("/save:sigmund-steps",1) + stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"You know what? No. This all sounds like a lot of hassle to me, and frankly I just can't be bothered with it right now. I'll go get someone else to vote for me.").also { stage = 20 } + } + 15 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Ah, well outerlander, if I knew where to start looking I would simply do it myself!").also { stage++ } + 16 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"No help at ALL?").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"We are a very insular clan, so I would not expect you to have to leave this town to find whatever you need.").also { stage = 1000 } + + //No + 20 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"As you wish outlander. If you change your mind, come and see me again; I am very interested in getting my hands on that flower").also { stage = 1000 } + + 25 -> npcl(core.game.dialogue.FacialExpression.ASKING,"So... how goes it outerlander? Did you manage to obtain my flower for me yet? Or do you lack the necessary merchanting skills?").also { stage++ } + 26 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I'm still working on it... Do you have any suggestion where to start looking for it?").also { stage++ } + 27 -> npcl(core.game.dialogue.FacialExpression.THINKING," I suggest you ask around the other Fremennik in the town. A good merchant will find exactly what their customer needs somewhere.").also { stage = 1000 } + + 30 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"Incredible! Your merchanting skills might even match my own! I have no choice but to recommend you to the council of elders!").also { + removeItem(player,3698) + player?.removeAttribute("sigmund-steps") + player?.removeAttribute("sigmund-started") + player?.removeAttribute("sigmundreturning") + player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) + player?.setAttribute("/save:fremtrials:sigmund-vote",true) + stage = 1000 + } + + 35 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I'm still working on it... Do you have any suggestion where to start looking for it?").also { stage++ } + 36 -> npcl(core.game.dialogue.FacialExpression.ASKING,"I suggest you ask around the other Fremennik in the town. A good merchant will find exactly what their customer needs somewhere.").also { stage++ } + 37 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I was making some trades, but then I lost the goods...").also { stage++ } + 38 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Hmmm... well try and start again at the beginning. And try to be more careful of your wares in future.").also { + addItem(player, Items.PROMISSORY_NOTE_3709) + stage = 1000 } + + 40 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again outerlander! I am amazed once more at your apparent skill at merchanting!").also { stage++ } + 41 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"So I can count on your vote at the council of elders?").also { stage++ } + 42 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Absolutely, outerlander. Your merchanting skills will be a real boon to the Fremennik.").also { stage = 1000 } + + 50 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings again $gender $fName! What can I do for you this day?").also { stage++ } + 51 -> options("Can I see your wares?","Nothing thanks").also { stage++ } + 52 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Can I see your wares?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nothing thanks").also { stage = 55 } + } + 53 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Certainly, $fName.").also { + npc.openShop(player) + stage = 1000 + } + + 55 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, feel free to stop by anytime you wish $fName. You are always welcome here!").also { stage = 1000 } + + 60 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello outerlander. By the laws of our tribe, I am afraid I may not speak to you without the express permission of the chieftain.").also { stage++ } + 61 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Where would I find him?").also { stage++ } + 62 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"In the longhall, outerlander.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SigmundDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1282) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SkulgrimenDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SkulgrimenDialogue.kt new file mode 100644 index 000000000..6a09d38ce --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SkulgrimenDialogue.kt @@ -0,0 +1,103 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +@Initializable +class SkulgrimenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if(player?.inventory?.contains(3703,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hi there. I got your fish, so can I have that bowstring for Sigli now?") + stage = 20 + return true + } + else if(player?.inventory?.contains(3702,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"So about this bowstring... was it hard to make or something?") + stage = 25 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Is this trade item for you?") + stage = 26 + return true + } + if(player?.getAttribute("sigmund-steps", 0) == 7){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find an exotic and extremely odd fish, do you?") + stage = 15 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 6){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a finely balanced custom bowstring, do you?") + stage = 1 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again, ${player.getAttribute("fremennikname","ringo")}. Come to see what's for sale?") + stage = 1001 + return true + } + else{ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello!") + stage = 100 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Aye, I have a few in stock. What would an outerlander be wanting with equipment like that?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"It's for Sigli. It needs to be weighted precisely to suit his hunting bow.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"For Sigli eh? Well, I made his bow in the first place, so I'll be able to select the right string for you... just one small problem.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.THINKING,"What's that?").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.THINKING,"This string you'll be wanting... Very special it is. Take a lot of time to recreate. Not sure you have the cash for it.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Then maybe you'll accept something else...?").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Heh. Good thinking outerlander. Well, it's true, there is more to life than just making money. Making weapons is good money, but it's not why I do it. I'll tell you what.").also { stage++ } + 8 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I heard a rumour that one of the fishermen down by the docks caught some weird looking fish as they were fishing the other day. From what I hear this fish is unique.").also { stage++ } + 9 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"From what I hear this fish is unique. Nobody's ever seen its like before. This intrigues me. I'd like to have it for myself.").also { stage++ } + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Make a good trophy. You get me that fish, I give you the bowstring. What do you say? We got a deal?").also { stage++ } + 11 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Sounds good to me.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 15 -> npcl(core.game.dialogue.FacialExpression.EXTREMELY_SHOCKED,"What? There's another one?").also { stage++ } + 16 -> playerl(core.game.dialogue.FacialExpression.ANNOYED,"Er... no, it's the one for you that I'm looking for...").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Ah. I see. I already told you. Some guy down by the docks was bragging. Best ask there, I reckon.").also { stage = 1000 } + + 20 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ohh... That's a nice fish. Very pleased. Here. Take the bowstring. You fulfilled agreement. Only fair I do same. Good work outerlander.").also { + removeItem(player,3703) + addItem(player,3702) + stage++ + } + 21 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thanks!").also { stage = 1000 } + + 25 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Not hard. Just a trick to it. Takes skill to learn, but when learnt, easy. Sigli will be happy. Finest bowstring on continent. Will suit his needs perfectly.").also { stage = 1000 } + + 26 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not for me, I'm afraid.").also { stage = 1000 } + + 100 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Sorry. I can't sell weapons to outerlanders. Wouldn't be right. Against our beliefs.").also { stage = 1000 } + + 1000 -> end() + 1001 ->{ + end() + npc.openShop(player) + } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SkulgrimenDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1303) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SwensenTheNavigator.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SwensenTheNavigator.kt new file mode 100644 index 000000000..e712b989c --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/SwensenTheNavigator.kt @@ -0,0 +1,153 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.node.entity.player.Player +import core.game.node.entity.player.info.PlayerDetails +import core.plugin.Initializable +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression + +@Initializable +class SwensenTheNavigator(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + val gender = if (player?.isMale == true){"brother"} else "sister" + val fName = player?.getAttribute("fremennikname","doug hug'em") + override fun open(vararg args: Any?): Boolean { + if(player?.inventory?.contains(3705,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"I would like your map of fishing spots.") + stage = 120 + return true + } + else if(player?.inventory?.contains(3704,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"If this map of fishing spots is so valuable, why did you give it away to me so easily?") + stage = 125 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I have a trade item here.") + stage = 130 + return true + } + if(player?.getAttribute("sigmund-steps", 0) == 9){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings outerlander.") + stage = 115 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 8){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings outerlander.") + stage = 105 + return true + } + if(player?.getAttribute("fremtrials:maze-complete",false) == true){ + npc("Outerlander! You have finished my maze!","I am genuinely impressed!") + stage = 100 + return true + } else if(player?.getAttribute("fremtrials:swensen-vote",false) == true){ + npc("You have my vote!") + stage = 1000 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello!") + stage = 140 + return true + } + else if(player.questRepository.hasStarted("Fremennik Trials")){ + player("Hello!") + stage = 0 + return true + } + else{ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello!") + stage = 145 + return true + } + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> {player("I am trying to become a member of the Fremennik","clan! The Chieftan told me that I may be able to gain","your vote at the council of elders?");stage++} + 1 -> {npc("You wish to stop being an outerlander? I can","understand that! I have no reason why I would prevent","you becoming a Fremennik...");stage++} + 2 -> {npc("...but you must first pass a little test for me to prove","you are worthy.");stage++} + 3 -> {player("What kind of test?");stage++} + 4 -> {npc("Well, I serve our clan as a navigator. The seas can be","a fearful place when you know not where you are","heading.");stage++} + 5 -> {npc("Should something happen to me, all members of our","tribe have some basic sense of direction so that they","may always return safely home.");stage++} + 6 -> {npc("If you are able to demonstrate to me that you too have","a good sense of direction then I will recommend you to","the rest of the council of elders immediately.");stage++} + 7 -> {player("Well, how would I go about showing that?");stage++} + 8 -> {npc("Ah, a simple task! Below this building I have constructed","a maze; should you be able to walk from one side to the","other that will be proof to me.");stage++} + 9 -> {npc("You wish to try my challenge?");stage++} + 10 -> {options("Yes","No");stage++} + 11 -> when(buttonId){ + 1 -> {player("A maze? Is that all? Sure, it sounds simple enough.");stage++} + 2 -> {player("No, that sounds too hard.");stage = 1000} + } + + //Yes + 12 -> {npc("I will warn you outerlander, this maze was designed by","myself, and is of the most fiendish complexity!");stage++} + 13 -> {player("Oh really? Watch and learn...");stage = 1000;player?.setAttribute("/save:fremtrials:swensen-accepted",true)} + + //After maze + 100 -> {player("So does that mean I can rely on your vote at the","council of elders to allow me into your village?");stage++} + 101 -> {npc("Of course outerlander! I am nothing if not a man of","my word!");stage++} + 102 -> { + player("Thanks!"); + player?.removeAttribute("fremtrials:maze-complete") + player?.removeAttribute("fremtrials:swensen-accepted") + player?.setAttribute("/save:fremtrials:swensen-vote",true) + player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) + stage = 1000 + } + + //Sigmund subquest + 105 -> playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map of deep sea fishing spots do you?").also { stage++ } + 106 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hmmm? Why of course! As the navigator for the Fremennik I keep all of our maps secure right here.").also { stage++ } + 107 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Great! Can I have it?").also { stage++ } + 108 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Have it? Just like that? I think not outerlander. This map shows all of the prime fishing locations nearby. It is very valuable to our clan. I am afraid I can not just give it away.").also { stage++ } + 109 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Perhaps I can trade you something for it?").also { stage++ } + 110 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"A trade? For a map of the best fishing spots in a hundred leagues? I will trade it for no less than a weather forecast from our Seer.").also { stage++ } + 111 -> npcl(core.game.dialogue.FacialExpression.THINKING,"As a navigator, the weather is extremely important for plotting the best course. Unfortunately the Seer is always too busy to help me with a forecast.").also { stage++ } + 112 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Where could I get a weather forecast from then?").also { stage++ } + 113 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I just told you: from the Seer. You will need to persuade him to take the time to make a forecast somehow.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 115 -> playerl(core.game.dialogue.FacialExpression.THINKING,"I don't suppose you have any idea where I could find a weather forecast from the Fremennik Seer do you?").also { stage++ } + 116 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Uh... from the Seer perhaps?").also { stage = 1000 } + + 120 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I have already told you outerlander; I will not exchange it for anything other than a divination on the weather from our seer himself!").also { stage++ } + 121 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"What, like this one I have here?").also { stage++ } + 122 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"W-what...? I don't believe it! How did you...?").also { stage++ } + 123 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I suppose it doesn't matter, you have my gratitude outerlander! With this forecast I will be able to plan a safe course for our next raiding expedition!").also { + removeItem(player,3705) + addItem(player,3704) + stage++ + } + 124 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here, outerlander; you may take my map of local fishing patterns with my gratitude!").also { stage = 1000 } + + 125 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hmmm? Well, firstly it will be of value to our entire clan, so I have lost nothing from giving it to you.").also { stage++ } + 126 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"The other reason is of course that I have already memorised it, so I can make myself another copy whenever I want!").also { stage = 1000 } + + 130 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"It isn't for me, I'm afraid.").also { stage = 1000 } + + 140 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Greetings to you $gender $fName. How fare you today?").also { stage++ } + 141 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I am fine thanks Swensen. How are you doing?").also { stage++ } + 142 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am fine too!").also { stage = 1000 } + + 145 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello outerlander. This is my home, I would be grateful if you would leave.").also { stage++ } + 146 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Oh. Okay.").also { stage++ } + 147 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am sorry outerlander, I will not offer you hospitality until my Chieftain has vouched for your honesty. This is our way.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return SwensenTheNavigator(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1283) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/TFTInteractionListeners.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt rename to Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/TFTInteractionListeners.kt index 982b9d3ea..9bc326924 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/TFTInteractionListeners.kt @@ -1,17 +1,14 @@ -package rs09.game.content.quest.members.thefremenniktrials +package content.region.fremennik.rellekka.quest.thefremenniktrials -import api.* +import core.api.* import core.game.container.impl.EquipmentContainer.SLOT_WEAPON -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.DoorActionHandler import core.game.node.entity.impl.Animator import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.player.link.music.MusicEntry import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingSkillPulse +import content.global.skill.gather.woodcutting.WoodcuttingSkillPulse import core.game.node.scenery.Scenery import core.game.system.task.Pulse import core.game.world.map.Location @@ -20,12 +17,12 @@ import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.config.ItemConfigParser -import rs09.game.world.GameWorld.Pulser +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.system.config.ItemConfigParser +import core.game.world.GameWorld.Pulser -class TFTInteractionListeners : InteractionListener{ +class TFTInteractionListeners : InteractionListener { private val BEER = intArrayOf(Items.BEER_3803,Items.BEER_1917) private val WORKER = NPCs.COUNCIL_WORKMAN_1287 @@ -60,7 +57,7 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - onUseWith(IntType.SCENERY, FISH, FISH_ALTAR){ player,fish,_ -> + onUseWith(IntType.SCENERY, FISH, FISH_ALTAR){ player, fish, _ -> if(inInventory(player,Items.LYRE_3689) || inInventory(player,Items.ENCHANTED_LYRE_3690)) { Pulser.submit(SpiritPulse(player, fish.id)) } else { @@ -69,7 +66,7 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - onUseWith(IntType.ITEM,LOW_ALC_KEG,KEG){player,_,_ -> + onUseWith(IntType.ITEM,LOW_ALC_KEG,KEG){ player, _, _ -> if(!getAttribute(player,"fremtrials:keg-mixed",false)){ if(getAttribute(player,"fremtrials:cherrybomb",false)) { removeItem(player,LOW_ALC_KEG) @@ -84,7 +81,7 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - onUseWith(IntType.ITEM,TINDERBOX,CHERRY_BOMB){player,_,_ -> + onUseWith(IntType.ITEM,TINDERBOX,CHERRY_BOMB){ player, _, _ -> if(removeItem(player,CHERRY_BOMB)){ addItem(player,LIT_BOMB) sendMessage(player,"You light the strange object.") @@ -92,7 +89,7 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - onUseWith(IntType.ITEM,KNIFE,TREE_BRANCH){player,_,_ -> + onUseWith(IntType.ITEM,KNIFE,TREE_BRANCH){ player, _, _ -> if (!player.skills.hasLevel(Skills.CRAFTING,40)) { sendDialogue(player, "You need 40 crafting to do this!") return@onUseWith true @@ -104,7 +101,7 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - onUseWith(IntType.SCENERY, STEW_INGREDIENT_IDS, LALLIS_STEW){player,stewIngredient,_ -> + onUseWith(IntType.SCENERY, STEW_INGREDIENT_IDS, LALLIS_STEW){ player, stewIngredient, _ -> when(stewIngredient.id){ Items.ONION_1957 -> { sendDialogue(player,"You added an onion to the stew") @@ -151,14 +148,14 @@ class TFTInteractionListeners : InteractionListener{ return@onUseWith true } - on(LONGHALL_BACKDOOR, IntType.SCENERY, "open"){player,door -> + on(LONGHALL_BACKDOOR, IntType.SCENERY, "open"){ player, door -> when { getAttribute(player,"LyreEnchanted",false) -> { sendNPCDialogue(player,1278,"Yeah you're good to go through. Olaf tells me you're some kind of outerlander bard here on tour. I doubt you're worse than Olaf is.") - DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) } getAttribute(player,"lyreConcertPlayed",false) -> { - DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) } else -> { sendNPCDialogue(player,1278,"I didn't give you permission to go backstage!") @@ -167,7 +164,7 @@ class TFTInteractionListeners : InteractionListener{ return@on true } - on(LYRE_IDs, IntType.ITEM, "play"){player,lyre -> + on(LYRE_IDs, IntType.ITEM, "play"){ player, lyre -> if(getAttribute(player,"onStage",false) && !getAttribute(player,"lyreConcertPlayed",false)){ Pulser.submit(LyreConcertPulse(player,lyre.id)) } else if(questStage(player, "Fremennik Trials") < 20 || !isQuestComplete(player, "Fremennik Trials")){ @@ -213,7 +210,7 @@ class TFTInteractionListeners : InteractionListener{ on(SWENSEN_LADDER, IntType.SCENERY, "climb"){ player, _ -> if(!getAttribute(player,"fremtrials:swensen-accepted",false)){ - sendNPCDialogue(player,1283,"Where do you think you're going?",FacialExpression.ANGRY) + sendNPCDialogue(player,1283,"Where do you think you're going?", core.game.dialogue.FacialExpression.ANGRY) } return@on true } @@ -223,19 +220,19 @@ class TFTInteractionListeners : InteractionListener{ sendMessage(player,"You have no reason to go back down there.") return@on true } else if (!getAttribute(player,"fremtrials:warrior-accepted",false)) { - player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, FacialExpression.ANGRY, + player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, core.game.dialogue.FacialExpression.ANGRY, "Outerlander... do not test my patience. I do not take", "kindly to people wandering in here and acting as though", "they own the place." ) return@on true } else if (hasEquippableItems(player)) { - player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, FacialExpression.ANGRY, + player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, core.game.dialogue.FacialExpression.ANGRY, "You may not enter the battleground with any armour", "or weaponry of any kind." ) player.dialogueInterpreter.addAction { _, _ -> - player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, FacialExpression.ANGRY, + player.dialogueInterpreter?.sendDialogues(NPCs.THORVALD_THE_WARRIOR_1289, core.game.dialogue.FacialExpression.ANGRY, "If you need to place your equipment into your bank", "account, I recommend that you speak to the seer. He", "knows a spell that will do that for you." @@ -247,7 +244,7 @@ class TFTInteractionListeners : InteractionListener{ if (player.getExtension(KoscheiSession::class.java) != null) { KoscheiSession.getSession(player).close() } - ClimbActionHandler.climb(player, Animation(828), Location.create(2671, 10099, 2)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2671, 10099, 2)) Pulser.submit(KoscheiPulse(player)) return@on true } @@ -256,7 +253,7 @@ class TFTInteractionListeners : InteractionListener{ if (player.getExtension(KoscheiSession::class.java) != null) { KoscheiSession.getSession(player).close() } - ClimbActionHandler.climb(player, Animation(828), Location.create(2666, 3694, 0)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2666, 3694, 0)) return@on true } @@ -333,7 +330,7 @@ class TFTInteractionListeners : InteractionListener{ 1 -> npc.moveStep() 2 -> npc.face(player).also { player.face(npc) } 3 -> player.dialogueInterpreter?.sendDialogues(npc, - FacialExpression.HAPPY,"I will kindly accept this offering, and","bestow upon you a gift in return.") + core.game.dialogue.FacialExpression.HAPPY,"I will kindly accept this offering, and","bestow upon you a gift in return.") 4 -> if(!removeItem(player,Items.LYRE_3689)) { removeItem(player,Items.ENCHANTED_LYRE_3690) } 5 -> when(fish){ 383 -> addItem(player,Items.ENCHANTED_LYRE2_6125) diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThoraDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThoraDialogue.kt new file mode 100644 index 000000000..0b65880d0 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThoraDialogue.kt @@ -0,0 +1,129 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.game.world.map.Location +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class ThoraDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + val fName = player?.getAttribute("fremennikname","name jeff") + var curNPC: NPC? = NPC(0, Location(0,0,0)) + override fun open(vararg args: Any?): Boolean { + curNPC = args[0] as? NPC + npc = args[0] as NPC + if(player.inventory.contains(3707,1)){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Thanks for making me this cocktail. Why don't you make them anymore normally?") + stage = 35 + } + else if(player.inventory.contains(3709,1)){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hi! Can I please have one of your legendary cocktails now?") + stage = 25 + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I'm trying to remember who I was meant to give this trade item to.") + stage = 30 + } + else if(player?.getAttribute("sigmund-steps", 0) == 13){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a written promise from Askeladden to stay out of the Longhall?") + stage = 20 + } + else if(player?.getAttribute("sigmund-steps", 0) == 12){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find the longhall barkeeps' legendary cocktail, do you?") + stage = 1 + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello again, $fName. I suppose you want a drink? Or are you going to try another scam with that terrible Askeladden again?") + stage = 50 + } + else{ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello there.") + stage = 60 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"How did you hear about that? I didn't think anybody knew about that.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, it is true that in my younger years as a barkeep, I wandered the lands trying various alcoholic delicacies.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Do know how many different types of alcohol there are here in Gielinor? Lots!").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Well, anyway, I used a fusion of various drinks from all around the world to create the greatest cocktail ever made!").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Of course, when my wander lust was gone, and I returned to Rellekka to serve as barkeep here, I gave all that up.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.ASKING,"But you still remember how to make it, right?").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Of course.").also { stage++ } + 8 -> playerl(core.game.dialogue.FacialExpression.ASKING,"And you have all the ingredients here? I don't need to go chasing round the world for obscure ingredients to make it?").also { stage++ } + 9 -> npcl(core.game.dialogue.FacialExpression.ASKING,"No, I have them all here. Why?").also { stage++ } + 10 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can you make me your legendary cocktail then?").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.SAD,"I would rather not; it is a reminder of a life I left behind when I came back.").also { stage++ } + 12 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Any way I could change your mind?").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.THINKING,"You need this to become a Fremennik, right? Well, you seem okay for an outerlander, it would be a shame to see you fail. You know Askeladden?").also { stage++ } + 14 -> playerl(core.game.dialogue.FacialExpression.THINKING,"That kid outside? Sure.").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"He is nothing but a pest. He keeps sneaking in and stealing beer.").also { stage++ } + 16 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"I shudder to think what he will be like when he has passed his trial of manhood, and is allowed in here legitimately.").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"If you can get him to sign a contract promising that he will NEVER EVER EVER darken my doorway here again, you get the drink.").also { stage++ } + 18 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Any idea how I can get him to do that?").also { stage++ } + 19 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Knowing that little horror, he'll probably be willing to in exchange for some cash. You should go ask him yourself though.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 20 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Well, as I say, you should talk to him about that. Knowing the little runt as I do though He'll probably do it for the cash.").also {stage++} + + 25 -> npcl(core.game.dialogue.FacialExpression.AMAZED,"What?!?! I can't believe you... Let me look at that... Askeladden would NEVER... Gosh. It looks legitimate.").also { + player?.inventory?.remove(Item(Items.PROMISSORY_NOTE_3709)) + player?.inventory?.add(Item(Items.LEGENDARY_COCKTAIL_3707)) + player?.setAttribute("/save:sigmundreturning",true) + stage++ + } + 26 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here you go, on the house! You have made my life SO much easier! Knowing that little monster won't be bugging me in here all the time anymore!").also { stage++ } + 27 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That little weasel will have to abide by this written promise that Askeladden can never ever enter the Longhall again! He can't get round this one!").also { stage++ } + 28 -> playerl(core.game.dialogue.FacialExpression.SUSPICIOUS,"Uh... yeah... yeah, you probably won't see someone called Askeladden coming in here...").also { stage = 1000 } + + 30 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"If it's not the note from Askeladden it isn't me, I'm afraid.").also { stage = 1000 } + + 35 -> npcl(core.game.dialogue.FacialExpression.SAD,"Ah... when I gave up my travels across the world many years back, to return to my expected role as longhall barkeep,").also { stage++ } + 36 -> npcl(core.game.dialogue.FacialExpression.SAD,"as my mother, and her mother, were before me, I gave up a lot of the freedom I had found in the outside world.").also { stage++ } + 37 -> npcl(core.game.dialogue.FacialExpression.SAD,"I know it is our custom to shun outerlanders and their ways, but I didn't find them as bad as the stories say.").also { stage++ } + 38 -> npcl(core.game.dialogue.FacialExpression.SAD,"Sometimes I feel as though we Fremennik live in a prison that we have constructed for ourselves,").also { stage++ } + 39 -> npcl(core.game.dialogue.FacialExpression.SAD,"and that WE are the outerlanders, out here on the edge of the world...").also { stage++ } + 40 -> npcl(core.game.dialogue.FacialExpression.SAD,"I'm sorry, I think it is part of the job of Longhall barkeep to get philosophical about things ocassionally.").also { stage++ } + 41 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I wish you all the best of luck with your trials, outerlander.").also { stage++ } + 42 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"When you have finished, perhaps you will come back here, and we can share a drink over tales of the outside world?").also { stage++ } + 43 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thanks, I'd like that.").also { stage = 1000 } + + 50 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Scam? Oh... You mean his promise to not come in here anymore?").also { stage++ } + 51 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Yes. Yes I do. I should have never trusted him not to come in here, even with that written promise. Anyway, do you want a drink or not?").also { stage++ } + 52 -> options("Yes please","No thanks").also { stage++ } + 53 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yes please").also { + npc.openShop(player) + stage = 1000 + } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"No thanks.").also { stage++ } + } + 54 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Okay then.").also { stage = 1000 } + + 60 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello yourself, outerlander. A little out of the way up here, aren't you?").also { stage++ } + 61 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I would love to stop and chat with you, but unfortunately we have a custom that no Fremennik may speak with the outerlanders without the permission of our chieftain. Don't take it personally.").also { stage++ } + 62 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"The Chieftain is stood just over there, his name is Brundt. I suggest you go and introduce yourself.").also { stage++ } + 63 -> npcl(core.game.dialogue.FacialExpression.ASKING,"You wouldn't want to go making any enemies because you weren't aware of our customs now, would you?").also { stage++ } + 64 -> playerl(core.game.dialogue.FacialExpression.THINKING,"No, I guess not. Thanks anyway.").also { stage++ } + 65 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Not a problem, outerlander. It's always nice to see a new face in the long hall; it happens so rarely.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ThoraDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1300) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThorvaldDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThorvaldDialogue.kt new file mode 100644 index 000000000..0d3523007 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/ThorvaldDialogue.kt @@ -0,0 +1,205 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +@Initializable +class ThorvaldDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun open(vararg args: Any?): Boolean { + if(player?.inventory?.contains(3706,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"I would like your contract to offer your services as a bodyguard.") + stage = 215 + return true + } + else if(player?.inventory?.contains(3710,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"You didn't take much persuading to 'lower' yourself to a bodyguard.") + stage = 220 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Is this item for you?") + stage = 214 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 11){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find the token to allow your seat at the champions table?") + stage = 211 + return true + } + else if(player?.getAttribute("sigmund-steps", 0) == 10){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a brave and powerful warrior to act as a bodyguard?") + stage = 200 + return true + } + else if (args.size > 1) { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hahaha! Well fought outerlander! Now come down from there, you have passed my trial with flying colours!") + stage = 150 + return true + } + else if (player?.questRepository?.isComplete("Fremennik Trials")!!) { + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Howdy Thorvald!") + stage = 0 + return true + } + else if(player!!.getAttribute("fremtrials:thorvald-vote", false)!!){ + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "So can I count on your vote at the council of elders now Thorvald?") + stage = 160 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Howdy Thorvald!") + stage = 250 + return true + } + else if(!player.questRepository.hasStarted("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.ANNOYED, "Leave me be, outerlander. I have nothing to say to the likes of you.") + stage = 1000 + return true + } + else if (!player!!.getAttribute("fremtrials:thorvald-vote", false)!!) { + if (player!!.getAttribute("fremtrials:warrior-accepted", false)!!) { + options("What do I have to do again?", "Who is my opponent?", "Can't I do something else?") + stage = 100 + return true + } else { + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello!") + stage = 60 + return true + } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + //After Fremennik Trials + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "And greetings to you too. It is good to see new blood entering the Fremennik; we gain our strength by bringing new warriors into the tribe.").also { stage = 1000 } + + //Warrior Trial + 60 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello yourself, outerlander. What brings you to dare speak to a mighty Fremennik warrior such as myself?").also { stage++ } + 61 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Erm... are you a member of the council?").also { stage++ } + 62 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "The Fremennik council of elders? Why, of course I am. I am recognised as one the clans mightiest warriors.").also { stage++ } + 63 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "What is it to you outerlander?").also { stage++ } + 64 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Well... I was wondering if you could vote for me to become a Fremennik.").also { stage++ } + 65 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "An outerlander wishes to become a Fremennik!?!? Ha! That is priceless!").also { stage++ } + 66 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, let us say that I am not totally against this concept. As a warrior, I appreciate the value of brave and powerful warriors to our clan, and even though you may be an outerlander,").also { stage++ } + 67 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I will not hold this against you if you can prove yourself to be fierce of heart in a combat situation to me.").also { stage++ } + 68 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "So how can I prove that? You want to fight me? Come on then, bring it on! Right here, right now, buddy!").also { stage++ } + 69 -> npcl(core.game.dialogue.FacialExpression.LOUDLY_LAUGHING, "Hahahahaha! You certainly show some spirit for an outerlander!").also { stage++ } + 70 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "But spirit does not always make a good warrior. It takes both skill and spirit to be so. I have a test that I give all Fremenniks on their path to be a member of the clan.").also { stage++ } + 71 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "My test will challenge both your combat prowess and your bravery equally. Should you pass it you will earn my vote at the council, and more importantly my respect for you as a warrior.").also { stage++ } + 72 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "So what say you, outerlander? Are you prepared for the battle?").also { stage++ } + 73 -> options("Yes", "No").also { stage++ } + 74 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.EVIL_LAUGH, "Am I prepared? I'll show you what combat's all about, you big sissy barbarian type guy!").also { player.setAttribute("/save:fremtrials:warrior-accepted",true); stage = 80 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No thanks, I'm pretty sure that I can find someone else to vote for me.").also { stage = 90 } + } + //Yes + 80 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Hahahahaha! I'm beginning to like you already, outerlander!").also { stage++ } + 81 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Then allow me to present you with my challenge; This ladder here will take you to a place of combat. I have placed a special warrior down there to challenge you.").also { stage++ } + 82 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Battle him to the death, and you will pass my challenge. If at any point you wish to leave combat, simply climb back up the ladder, to leave that place. If you leave you will of course fail the test.").also { stage++ } + 83 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You may retry my test in the future if you fail, but you must stay down there until the death if you wish for my vote at the council. You must defeat him three times to prove that you are worthy.").also { stage++ } + 84 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "The fourth time that you fight him will be to the death, so do not show cowardice.").also { stage++ } + 85 -> playerl(core.game.dialogue.FacialExpression.EVIL_LAUGH, "Is that all? It will be easy!").also { stage++ } + 86 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "No, there is one more important rule; You may not enter the battleground with any armour or weaponry of any kind.").also { stage++ } + 87 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "If you need to place your equipment into your bank account, I recommend that you speak to the seer, who knows a spell that will do that for you.").also { stage = 1000 } + + //No thanks + 90 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmm, not so brave after all, outerlander? Perhaps it is for the best. I doubt you have what it takes to pass my challenge.").also { stage = 1000 } + + //Warrior Trial Accepted Not Completed + 100 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "So what do I have to do to earn your vote at the council again?").also { stage = 110 } + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "So, who is my opponent?").also { stage = 120 } + 3 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "I don't really like fighting that much... Isn't there something else I can do to earn your vote at the council of elders?").also { stage = 130 } + } + //What do I have to do again? + 110 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I will not offer my vote to anybody whose bravery in combat I do not trust completely. You must go down that ladder and fight your foe to the death.").also { stage = 1000 } + + //Who is my opponent? + 120 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Ah, a wise question before entering combat. His name is Koschei the deathless. He is something of a mystery, even to us.").also { stage++ } + 121 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "On one of our regular raiding parties, our longship discovered a man in the frozen waters far north-east of here. We took him aboard our ship, thinking he must be dead.").also { stage++ } + 122 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "To our amazement he was perfectly healthy, even though he must have been in those deadly icey waters for many weeks.").also { stage++ } + 123 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "He has no memory of who he is, or how he came to be there, except for his own name: Koschei. We named him 'The Deathless' because he is seemingly unkillable!").also { stage++ } + 124 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Any combat technique used against him, he learns instantly! He also apparently can heal himself from any wound at will!").also { stage++ } + 125 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "When he attacks, his weapon moves like a whirlwind! He can hide his combat level from his opponents at will as well!").also { stage++ } + 126 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "He is truly a horribly fierce opponent to face! I am only glad that he has chosen to stay here with us!").also { stage++ } + 127 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "The daylight makes him feel weak, so we have built him his own battleground beneath this building, where he can train his fiercesome skills without being disturbed.").also { stage++ } + 128 -> playerl(core.game.dialogue.FacialExpression.LAUGH, "But he can't REALLY be unkillable...").also { stage++ } + 129 -> playerl(core.game.dialogue.FacialExpression.SUSPICIOUS, "...can he?").also { stage++ } + 130 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Some say he cannot die, for he has hidden his heart outside of his body to be kept forever safe in a duck egg.").also { stage++ } + 131 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Others say he has been cursed by the gods to wander this land forever, never knowing any peace in his life, but only combat.").also { stage++ } + 132 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Some claim that the sword he carries is the source of all his power, and if he should lose it, then exactly one minute later, he will turn back into his true form; A weakened, lame, old man.").also { stage++ } + 133 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "And what do you believe?").also { stage++ } + 134 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I believe you shouldn't look a gift horse in the mouth. He is a fearfully powerful warrior, but more importantly; He is on OUR side, not against us.").also { stage++ } + 135 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "He is content testing the battle skills of anyone taking their Fremennik trials of manhood, and I am content knowing that should an enemy ever invade").also { stage++ } + 136 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "our town, while our warriors are out on a raiding party, Koschei will be able to hold off ANY invader long enough for us to make our return.").also { stage = 1000} + + //Can't I do something else? + 140 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes of course outerlander! If you bring me five raw sardines then I will vote for you instead!").also { stage++ } + 141 -> playerl(core.game.dialogue.FacialExpression.EXTREMELY_SHOCKED, "REALLY?!?!?").also { stage++ } + 142 -> npcl(core.game.dialogue.FacialExpression.LOUDLY_LAUGHING, "HAHAHAHAHAHA! No, of course not! You are stupid, even by outerlander standards!").also { stage++ } + 143 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "If you want my vote, you must pass my trial. It is as simple as that.").also { stage = 1000 } + + //Warrior Trial Completed - after the fight + 150 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "But... I don't understand... I did not manage to beat Koschei...").also { stage++ } + 151 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I did not say you had to, outerlander! All I asked was that you fought to the death! And you did! The death was your own!").also { stage++ } + 152 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I was not interested in how strong you are! I was interested in how BRAVE you are!").also { stage++ } + 153 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You fought a superior enemy to your very last breath - THAT is bravery.").also { stage++ } + 154 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I would be honoured to represent you to the council as worthy of being a Fremennik after watching that superb battle!").also { stage = 1000 } + + //Warrior Trial Completed + 160 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Absolutely! I watched the entire battle, and was extremely impressed with your bravery in combat!").also { stage = 1000 } + + //Sigmund stuff + 200 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Know you not who I am outerlander? There are none more brave or powerful than me amongst all the Fremennik!").also { stage++ } + 201 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"The role of bodyguard is below me, as a noble warrior. You might as well ask me to babysit the children!").also { stage++ } + 202 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Is there no way you would do this for me?").also { stage++ } + 203 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"There is but one way outerlander. Since I was steeled in battle, I have dreamt of earning my place at the Champions Table in the Long Hall.").also { stage++ } + 204 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"It is a tradition amongst us that the bravest and strongest are honoured with a table of champions to drink and feast all that they can in our Long Hall.").also { stage++ } + 205 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Unfortunately, there are only a fixed number of places available at the table, and these places were all filled many moons ago by others.").also { stage++ } + 206 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Although my worthiness is undeniable, the only way I may take my place is if one of those already there die, or give up their place to me voluntarily.").also { stage++ } + 207 -> playerl(core.game.dialogue.FacialExpression.THINKING,"So you want me to go kill one of them off for you? Make it look like an accident?").also { stage++ } + 208 -> npcl(core.game.dialogue.FacialExpression.EXTREMELY_SHOCKED,"WHAT? No, no, not at all! I am shocked you would suggest such a thing!").also { stage++ } + 209 -> npcl(core.game.dialogue.FacialExpression.THINKING,"If you can persuade one of the Revellers to give up their Champions' Token to you so that I might take their place, you may have my contract as a bodyguard.").also { stage++ } + 210 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Okay, I'll see what I can do.").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 211 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You will need to persuade one of the revellers in the Long Hall to give up their token, and their place, in deference to my own worthiness somehow.").also { stage = 1000 } + + 214 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I'm afraid not, outerlander.").also { stage = 1000 } + + 215 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Oh you would, would you outerlander? I have already told you, I will not demean myself with such a baby sitting job until I can sit in the Longhall with pride.").also { stage++ } + 216 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"It's a good thing I have the Champions' Token right here then, isn't it?").also { stage++ } + 217 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah... well this is a different matter. With that token I can claim my rightful place as a champion in the Long hall!").also { stage++ } + 218 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here outerlander, I can suffer the indignity of playing babysitter if it means that I can then revel with my warrior equals in the Long Hall afterwards!").also { + removeItem(player,3706) + addItem(player,3710) + stage++ + } + 219 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Here outerlander, take this contract; I will fulfill it to my utmost.").also { stage = 1000 } + + 220 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You misunderstand, outerlander. Normally I will only battle for a noble cause, but have never been recognised as a true champion here.").also { stage++ } + 221 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"With this Champion's token, I can stand alongside my warrior brethren in the Long Hall, and revel in the glories of past victories together!").also { stage = 1000 } + + 250 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"And greetings to you too. It is good to see new blood entering the Fremennik; we gain our strength by bringing new warriors into the tribe.").also { stage = 1000 } + + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ThorvaldDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.THORVALD_THE_WARRIOR_1289) + } + +} \ No newline at end of file diff --git a/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/YrsaDialogue.kt b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/YrsaDialogue.kt new file mode 100644 index 000000000..83e782706 --- /dev/null +++ b/Server/src/main/content/region/fremennik/rellekka/quest/thefremenniktrials/YrsaDialogue.kt @@ -0,0 +1,105 @@ +package content.region.fremennik.rellekka.quest.thefremenniktrials + +import core.api.addItem +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +@Initializable +class YrsaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if(player?.inventory?.contains(3708,1) == true){ + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello. Can I have those boots now? Here is a written statement from Brundt outlining future tax burdens upon Fremennik merchants and shopkeepers for the year.") + stage = 15 + return true + } + else if(player?.inventory?.contains(3700,1) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"Hey, these shoes look pretty comfy. Think you could make me a pair like them?") + stage = 20 + return true + } + else if(player?.getAttribute("sigmundreturning",false) == true){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I have this trade item but I can't remember who it's for.") + stage = 25 + return true + } + if(player?.getAttribute("sigmund-steps",0) == 4){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find a guarantee of a reduction on sales taxes, do you?") + stage = 10 + return true + } + else if(player?.getAttribute("sigmund-steps",0) == 3){ + playerl(core.game.dialogue.FacialExpression.ASKING,"I don't suppose you have any idea where I could find some custom sturdy boots, do you?") + stage = 1 + return true + } + else if(player.questRepository.isComplete("Fremennik Trials")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Welcome to my clothes shop. I can change your shoes, or I've got a fine selection of clothes for sale.") + stage = 30 + //Uncomment this out when we got the shoe shop up and running + //npcl(FacialExpression.HAPPY,"Welcome to my clothes shop. I can change your shows, or I've got a fine selection of clothes for sale") + return true + } + else { + playerl(core.game.dialogue.FacialExpression.HAPPY,"Hello!") + stage = 35 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Well, I don't usually have many shoes in stock here in my little clothes shop... I will be able to make you up a pair if you are really desperate though?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"They're not for me... I need them for Olaf.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Oh, that foolish bard... Why didn't he just ask me to make him some? It is his stupid pride, I believe! I will tell you what I will do outlander.").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.ASKING,"I know that you must have the ear of the chieftain for him to consider you as worthy of becoming a Fremennik by trial.").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I will make you a pair of sturdy boots for Olaf if you will persuade him to reduce the sales tax placed upon all Fremennik shopkeepers. It does nothing but hurt my business now.").also { stage++ } + 6 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"Okay, I will see what I can do").also { + player?.incrementAttribute("sigmund-steps",1) + stage = 1000 + } + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Yes I do outerlander. Only the Chieftain may permit such a thing. Talk to him.").also { stage = 1000 } + + 15 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Certainly! Let me have a look at what he has written here, just give me a moment...").also { + removeItem(player,3708) + addItem(player,3700) + stage++ + } + 16 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Yes, that all appears in order. Tell Olaf to come to me next time for shoes!").also { stage = 1000 } + + 20 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Maybe if you pass your trial and become a full fledged member of the Fremennik...").also { stage = 1000 } + + 25 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Not me, I'm afraid.").also { stage = 1000 } + + 30 -> options("I'd like to buy some clothes","Nothing, thanks.").also { stage++ } + 31 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I'd like to buy some clothes").also { + npc.openShop(player) + stage = 1000 + } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Nothing, thanks.").also { stage++ } + } + 32 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As you wish.").also { stage = 1000 } + + 35 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I'm sorry outerlander, I cannot sell you any clothes. Our customs forbid it.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return YrsaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(1301) + } + + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/zone/wbisland/DagannothKingNPC.java b/Server/src/main/content/region/fremennik/waterbirth/handlers/DagannothKingNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/zone/wbisland/DagannothKingNPC.java rename to Server/src/main/content/region/fremennik/waterbirth/handlers/DagannothKingNPC.java index 36dabfe40..e928e6179 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/DagannothKingNPC.java +++ b/Server/src/main/content/region/fremennik/waterbirth/handlers/DagannothKingNPC.java @@ -1,8 +1,8 @@ -package core.game.content.zone.wbisland; +package content.region.fremennik.waterbirth.handlers; import java.util.List; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; diff --git a/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java b/Server/src/main/content/region/fremennik/waterbirth/handlers/SpinolypNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java rename to Server/src/main/content/region/fremennik/waterbirth/handlers/SpinolypNPC.java index a70effa49..9fe83d2e9 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/SpinolypNPC.java +++ b/Server/src/main/content/region/fremennik/waterbirth/handlers/SpinolypNPC.java @@ -1,8 +1,8 @@ -package core.game.content.zone.wbisland; +package content.region.fremennik.waterbirth.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.SwitchAttack; @@ -11,8 +11,8 @@ import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.state.EntityState; import core.game.world.map.Location; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Represents a spinolyp npc. diff --git a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java b/Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthDungeonZone.java similarity index 97% rename from Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java rename to Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthDungeonZone.java index d3d8df358..1a5a35235 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java +++ b/Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthDungeonZone.java @@ -1,12 +1,12 @@ -package core.game.content.zone.wbisland; +package content.region.fremennik.waterbirth.handlers; import java.util.ArrayList; import java.util.List; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueAction; -import core.game.content.global.action.ClimbActionHandler; +import core.game.dialogue.DialogueAction; +import core.game.global.action.ClimbActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.Option; import core.game.interaction.OptionHandler; @@ -19,18 +19,18 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.map.zone.ZoneRestriction; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import org.rs09.consts.Items; /** diff --git a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthIslandZone.java b/Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthIslandZone.java similarity index 97% rename from Server/src/main/java/core/game/content/zone/wbisland/WaterBirthIslandZone.java rename to Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthIslandZone.java index 3a52ee15d..7d4db29bf 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthIslandZone.java +++ b/Server/src/main/content/region/fremennik/waterbirth/handlers/WaterBirthIslandZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone.wbisland; +package content.region.fremennik.waterbirth.handlers; import core.game.component.Component; import core.game.interaction.Option; diff --git a/Server/src/main/java/core/game/content/dialogue/ArdougneBaker.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneBaker.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/ArdougneBaker.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneBaker.java index 83b50d1a8..1fce150d1 100644 --- a/Server/src/main/java/core/game/content/dialogue/ArdougneBaker.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneBaker.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/ArdougneShopKeeperPlugin.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneShopKeeperPlugin.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/ArdougneShopKeeperPlugin.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneShopKeeperPlugin.java index 891fb7697..7d56d0aaa 100644 --- a/Server/src/main/java/core/game/content/dialogue/ArdougneShopKeeperPlugin.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/ArdougneShopKeeperPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/CaptainBarnabyDialogue.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/CaptainBarnabyDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/CaptainBarnabyDialogue.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/CaptainBarnabyDialogue.java index aaa56d81d..cea30040b 100644 --- a/Server/src/main/java/core/game/content/dialogue/CaptainBarnabyDialogue.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/CaptainBarnabyDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ChadwellDialogue.kt b/Server/src/main/content/region/kandarin/ardougne/dialogue/ChadwellDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ChadwellDialogue.kt rename to Server/src/main/content/region/kandarin/ardougne/dialogue/ChadwellDialogue.kt index 2b9c05bdc..2fcad3fff 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ChadwellDialogue.kt +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/ChadwellDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.ardougne +package content.region.kandarin.ardougne.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class ChadwellDialogue(player: Player? = null) : DialoguePlugin(player){ +class ChadwellDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Good day. What can I get you?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Good day. What can I get you?").also { stage = 0 } return true } @@ -24,20 +24,20 @@ class ChadwellDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 0 -> options("Let's see what you've got.", "Nothing thanks.").also { stage++ } 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Let's see what you've got.").also { stage = 5 } - 2 -> player(FacialExpression.FRIENDLY, "Nothing thanks.").also { stage = 10 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Let's see what you've got.").also { stage = 5 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Nothing thanks.").also { stage = 10 } } 5 -> end().also { npc.openShop(player) } - 10 -> npc(FacialExpression.FRIENDLY, "Okay then.").also { stage = 99 } + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Okay then.").also { stage = 99 } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ChadwellDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/GemMerchantDialogue.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/GemMerchantDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/GemMerchantDialogue.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/GemMerchantDialogue.java index 91fc251f7..a4474d0f0 100644 --- a/Server/src/main/java/core/game/content/dialogue/GemMerchantDialogue.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/GemMerchantDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/kandarin/ardougne/dialogue/MonkeyChildThingZooDialogue.kt b/Server/src/main/content/region/kandarin/ardougne/dialogue/MonkeyChildThingZooDialogue.kt new file mode 100644 index 000000000..72415b9eb --- /dev/null +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/MonkeyChildThingZooDialogue.kt @@ -0,0 +1,71 @@ +package content.region.kandarin.ardougne.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class MonkeyChildThingZooDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"").also { stage = 0 } + if (!player.equipment.contains(Items.MSPEAK_AMULET_4021, 1)) { + npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Eeekeek ookeek!").also { stage = 99 } + } else { + var a = 1..5 + when(a.random()) { + 1 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Arr!").also { stage = 10 } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Let me go, can't ye hear them? Howlin' in the dark...").also { stage = 20 } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT, "I'm not goin' back in that brewery, not fer all the Bitternuts I can carry!").also { stage = 99 } + 4 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Are ye here for...the stuff?").also { stage = 30 } + 5 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "Arr! Yer messin with me monkey plunder!").also { stage = 40 } + } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + + 10 -> player(core.game.dialogue.FacialExpression.JOLLY, "Arr!").also { stage++ } + 11 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.JOLLY, "Arr!").also { stage++ } + 13 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.JOLLY, "Arr!").also { stage++ } + 15 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } + 16 -> player(core.game.dialogue.FacialExpression.JOLLY, "Arr!").also { stage++ } + 17 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Bored now...").also { stage = 99 } + + 20 -> player(core.game.dialogue.FacialExpression.ASKING, "What do you mean?").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I'm not hangin' around te be killed!").also { stage++ } + 22 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "The Horrors, the Horrors!").also { stage = 99 } + + 30 -> player(core.game.dialogue.FacialExpression.ASKING, "What?").also { stage++ } + 31 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "You know...the 'special' bananas?").also { stage++ } + 32 -> player(core.game.dialogue.FacialExpression.ASKING, "No... why do you ask?").also { stage++ } + 33 -> npc(core.game.dialogue.FacialExpression.OLD_SAD, "No reason. Have a nice day.").also { stage = 99 } + + 40 -> player(core.game.dialogue.FacialExpression.ASKING, "What?").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MonkeyChildThingZooDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MONKEY_4363) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/SilkMerchantPlugin.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilkMerchantPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SilkMerchantPlugin.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/SilkMerchantPlugin.java index 7e358127a..c8239247c 100644 --- a/Server/src/main/java/core/game/content/dialogue/SilkMerchantPlugin.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilkMerchantPlugin.java @@ -1,10 +1,12 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/dialogue/SilkTradeDialogue.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilkTradeDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SilkTradeDialogue.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/SilkTradeDialogue.java index dfa0f3af1..3e9a8c4f7 100644 --- a/Server/src/main/java/core/game/content/dialogue/SilkTradeDialogue.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilkTradeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/SilverMechantPlugin.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilverMechantPlugin.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/SilverMechantPlugin.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/SilverMechantPlugin.java index e430324a5..9e5bfb83a 100644 --- a/Server/src/main/java/core/game/content/dialogue/SilverMechantPlugin.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/SilverMechantPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SpiceSellerPlugin.java b/Server/src/main/content/region/kandarin/ardougne/dialogue/SpiceSellerPlugin.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/SpiceSellerPlugin.java rename to Server/src/main/content/region/kandarin/ardougne/dialogue/SpiceSellerPlugin.java index 8fdb90097..b1f486cae 100644 --- a/Server/src/main/java/core/game/content/dialogue/SpiceSellerPlugin.java +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/SpiceSellerPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.ardougne.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ZookeeperDialogue.kt b/Server/src/main/content/region/kandarin/ardougne/dialogue/ZookeeperDialogue.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ZookeeperDialogue.kt rename to Server/src/main/content/region/kandarin/ardougne/dialogue/ZookeeperDialogue.kt index b49a1c657..6630c1225 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/ZookeeperDialogue.kt +++ b/Server/src/main/content/region/kandarin/ardougne/dialogue/ZookeeperDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.ardougne +package content.region.kandarin.ardougne.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,56 +13,56 @@ import org.rs09.consts.NPCs */ @Initializable -class ZookeeperDialogue(player: Player? = null) : DialoguePlugin(player){ +class ZookeeperDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hi!").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hi!").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> { - npc(FacialExpression.FRIENDLY, "Welcome to the Ardougne Zoo! How can I help you?").also { stage++ } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Welcome to the Ardougne Zoo! How can I help you?").also { stage++ } } 1 -> { options("Do you have any quests for me?", "Where did you get the animals from?").also { stage++ } } 2 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Do you have any quests for me?").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "Where did you get the animals from?").also { stage = 20 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Do you have any quests for me?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Where did you get the animals from?").also { stage = 20 } } 10 -> { - npc(FacialExpression.FRIENDLY, "Not at the moment.", + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Not at the moment.", "The explorers that come back from far away lands tell", "such amazing tales. Make sure you keep eyes and ears", "open as you may find new places to explore!").also { stage++ } } 11 -> { - player(FacialExpression.FRIENDLY, "Ooh, I will!").also { stage = 99 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Ooh, I will!").also { stage = 99 } } 20 -> { - npc(FacialExpression.FRIENDLY, "We get them from all over the place!", + npc(core.game.dialogue.FacialExpression.FRIENDLY, "We get them from all over the place!", "The most exotic creatures have been brought", "back by explorers and sold to us.").also { stage++ } } 21 -> { - player(FacialExpression.HALF_ASKING, "Where on Gielinor did you get that scary", + player(core.game.dialogue.FacialExpression.HALF_ASKING, "Where on Gielinor did you get that scary", "looking Cyclops?!").also { stage++ } } 22 -> { - npc(FacialExpression.LAUGH, "Yes he is scary looking!").also { stage++ } + npc(core.game.dialogue.FacialExpression.LAUGH, "Yes he is scary looking!").also { stage++ } } 23 -> { - npc(FacialExpression.FRIENDLY, "He's from a very far away land, we couldn't", + npc(core.game.dialogue.FacialExpression.FRIENDLY, "He's from a very far away land, we couldn't", "find out more as the explorer who brought", "him back died shortly afterwards!").also { stage = 99 } } @@ -72,7 +72,7 @@ class ZookeeperDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ZookeeperDialogue(player) } diff --git a/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java b/Server/src/main/content/region/kandarin/ardougne/handlers/WildernessLeverPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java rename to Server/src/main/content/region/kandarin/ardougne/handlers/WildernessLeverPlugin.java index 4ecac6cd5..e1399e051 100644 --- a/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java +++ b/Server/src/main/content/region/kandarin/ardougne/handlers/WildernessLeverPlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.object; +package content.region.kandarin.ardougne.handlers; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -12,11 +12,11 @@ import core.game.node.entity.player.link.audio.Audio; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles wilderness levers. diff --git a/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherCedricNPC.kt b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherCedricNPC.kt new file mode 100644 index 000000000..0f2e6b52b --- /dev/null +++ b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherCedricNPC.kt @@ -0,0 +1,122 @@ +package content.region.kandarin.ardougne.quest.monksfriend + +import core.api.questStage +import core.api.sendItemDialogue +import core.api.setQuestStage +import core.game.node.entity.npc.NPC +import core.game.node.item.Item +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE + +/** + * Handles BrotherCedricDialogue Dialogue + * @author Kya + */ +class BrotherCedricDialogue : DialogueFile() { + override fun handle(componentID: Int, buttonID: Int) { + val questName = "Monk's Friend" + val questStage = questStage(player!!, questName) + when { + questStage < 30 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello.").also{stage++} + 1 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Honey, money, woman and wine!").also{stage++} + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Are you ok?").also{stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Yesshh...hic up...beautiful!").also{stage++} + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Take care old monk.").also{ stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "La..di..da..hic..up!").also{stage = END_DIALOGUE } + } + } + questStage == 30 -> { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Brother Cedric are you okay?").also{stage++} + 1 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Yeesshhh, I'm very, very drunk..hic..up..").also{stage++} + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Brother Omad needs the wine for the party.").also{stage++} + 3 -> npcl(core.game.dialogue.FacialExpression.SAD, "Oh dear, oh dear, I knew I had to do something!").also{stage = END_DIALOGUE }.also{ setQuestStage(player!!, questName, 40) } + } + } + questStage == 40 -> { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Are you okay?").also{stage++} + 1 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Hic up! Oh my head! I need a jug of water.").also{stage++} + 2 -> if (player!!.inventory.containItems(Items.JUG_OF_WATER_1937)){ + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Cedric! Here, drink! I have some water.").also{stage=10} + } else { + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I'll see if I can get some.").also{stage = 3} + } + 3 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Thanks! *hic*").also{stage = END_DIALOGUE } + 10 -> npcl(core.game.dialogue.FacialExpression.DRUNK, "Good stuff, my head's spinning!").also {stage++} + 11 -> { + sendItemDialogue(player!!, Items.JUG_OF_WATER_1937, "You hand the monk a jug of water.") + stage=0 + player!!.inventory.remove(Item(Items.JUG_OF_WATER_1937)) + setQuestStage(player!!, questName, 41) + } + } + } + questStage == 41 -> { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Aah! That's better!").also{stage++} + 1 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Now I just need to fix this cart and we can go party.").also {stage++} + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Could you help?").also{stage++} + 3 -> options( + "No, I've helped enough monks today!", + "Yes, I'd be happy to!").also{stage++} + 4 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.ANGRY, "No, I've helped enough monks today!").also{stage++} + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, I'd be happy to!").also{stage=10} + } + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "In that case I'd better drink more wine! It helps me think.").also {stage= END_DIALOGUE } + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Excellent, I just need some wood.").also{stage++} + 11 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, I'll see what I can find.").also{stage = END_DIALOGUE }.also{setQuestStage(player!!, questName, 42)} + } + } + questStage == 42 -> { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "Did you manage to get some wood?").also{stage++} + 1 -> if (player!!.inventory.containItems(Items.LOGS_1511)){ + sendItemDialogue(player!!, Items.LOGS_1511, "You hand Cedric some logs.") + stage=2 + } else { + playerl(core.game.dialogue.FacialExpression.SAD, "Not yet, I'm afraid.").also{stage = END_DIALOGUE } + } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Here you go!").also{stage++} + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Well done! Now I'll fix this cart. You head back to Brother Omad and tell him I'll be there soon.").also{stage++} + 4 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Ok! I'll see you later!").also{ + stage= END_DIALOGUE + player!!.inventory.remove(Item(Items.LOGS_1511)) + setQuestStage(player!!, questName, 50) + } + } + } + questStage == 50 -> { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello Cedric.").also{stage++} + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hi, I'm almost done here. Could you tell Omad that I'll be back soon?").also{stage = END_DIALOGUE } + } + } + questStage == 100 -> { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Brother Omad sends you his thanks! He won't be in a fit state to thank you in person.").also{stage = END_DIALOGUE } + } + } + } + } +} + +/** + * Handles BrotherCedricListener to launch the dialogue + * @author Kya + */ +class BrotherCedricListener : InteractionListener { + override fun defineListeners() { + on(NPCs.BROTHER_CEDRIC_280, IntType.NPC, "talk-to"){ player, _ -> + player.dialogueInterpreter.open(BrotherCedricDialogue(), NPC(NPCs.BROTHER_CEDRIC_280)) + return@on true + } + } +} diff --git a/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherOmadNPC.kt b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherOmadNPC.kt new file mode 100644 index 000000000..868eae3e2 --- /dev/null +++ b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/BrotherOmadNPC.kt @@ -0,0 +1,216 @@ +package content.region.kandarin.ardougne.quest.monksfriend + +import core.api.* +import core.game.node.entity.npc.NPC +import core.game.node.item.Item +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.game.world.map.RegionManager +import core.game.world.update.flag.context.Animation +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld.Pulser +import core.tools.END_DIALOGUE + + +/** +* Handles BrotherOmadDialogue Dialogue +* @author Kya +*/ +class BrotherOmadDialogue : DialogueFile() { + override fun handle(componentID: Int, buttonID: Int) { + val questName = "Monk's Friend" + val questStage = questStage(player!!, questName) + when (questStage) { + 0 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello there. What's wrong?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.SAD, "*yawn*...oh, hello...*yawn* I'm sorry! I'm just so tired! I haven't slept in a week!").also { stage++ } + 2 -> options( + "Why can't you sleep, what's wrong?", + "Sorry! I'm too busy to hear your problems!").also { stage++ } + 3 -> when (buttonID) { + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Why can't you sleep, what's wrong?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry! I'm too busy to hear your problems!").also { stage = END_DIALOGUE } + } + 4 -> npcl(core.game.dialogue.FacialExpression.SAD, "It's brother Androe's son! With his constant: Waaaaaah! Waaaaaaaaah! Androe said it's natural, but it's so annoying!").also { stage++ } + + 5 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I suppose that's what kids do.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.SAD, "He was fine, up until last week! Thieves broke in! They stole his favourite sleeping blanket!").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.SAD, "Now he won't rest until it's returned... ...and that, means neither can I!").also { stage++ } + 8 -> options( + "Can I help at all?", + "I'm sorry to hear that! I hope you find his blanket.").also { stage++ } + 9 -> when (buttonID) { + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Can I help at all?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm sorry to hear that! I hope you find his blanket.").also { stage = END_DIALOGUE } + } + 10 -> npcl(core.game.dialogue.FacialExpression.HALF_WORRIED, "Please do. We won't be able to help you as we are peaceful men but we would be grateful for your help!").also { stage++ } + 11 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Where are they?").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.SAD, "They hide in a secret cave in the forest. It's hidden under a ring of stones. Please, bring back the blanket!").also { stage = END_DIALOGUE }.also { player!!.questRepository.getQuest("Monk's Friend").start(player) }.also { player!!.questRepository.syncronizeTab(player) } + } + } + 10 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello.").also{stage = 20 } + 20 -> npcl(core.game.dialogue.FacialExpression.SAD, "*yawn*...oh, hello again...*yawn*").also{stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.SAD, "Please tell me you have the blanket.").also{stage++} + 22 -> if(player!!.inventory.containItems(Items.CHILDS_BLANKET_90)){ + playerl(core.game.dialogue.FacialExpression.HAPPY, "Yes! I've recovered it from the clutches of the evil thieves!").also{stage = 30} + } else { + playerl(core.game.dialogue.FacialExpression.SAD, "I'm afraid not.").also{stage++} + } + 23 -> npcl(core.game.dialogue.FacialExpression.SAD, "I need some sleep!").also{stage = END_DIALOGUE } + 30 -> { + sendItemDialogue(player!!, Items.CHILDS_BLANKET_90, "You hand the monk the childs blanket.") + stage=31 + } + 31 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Really, that's excellent, well done! Maybe now I will be able to get some rest.").also{stage++} + 32 -> npcl(core.game.dialogue.FacialExpression.SAD, "*yawn*..I'm off to bed! Farewell brave traveller!").also{player!!.inventory.remove(Item(Items.CHILDS_BLANKET_90)) + setQuestStage(player!!, questName, 20); stage = END_DIALOGUE + } + } + } + 20 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello, how are you?").also{stage = 30 } + 30 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Much better now I'm sleeping well! Now I can organise the party.").also{stage++} + 31 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Ooh! What party?").also{stage++} + 32 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "The son of Brother Androe's birthday party. He's going to be one year old!").also {stage++} + 33 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "That's sweet!").also{stage++ } + 34 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "It's also a great excuse for a drink!").also{stage++} + 35 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "We just need Brother Cedric to return with the wine.").also{stage++} + 36 -> options( + "Who's Brother Cedric?", + "Enjoy it! I'll see you soon!").also { stage++} + 37 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Who's Brother Cedric?").also{stage++} + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Enjoy it! I'll see you soon!").also{stage = 998} + } + 998 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Take care traveller.").also{stage = END_DIALOGUE } + 38 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Cedric is a member of the order too. We sent him out three days ago to collect wine. But he didn't return!").also{stage++} + 39 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "He most probably got drunk and lost in the forest!").also{stage++} + 40 -> options( + "I've no time for that, sorry.", + "Where should I look?", + "Can I come to the party?").also { stage++} + 41 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I've no time for that, sorry.").also {stage = 996} + 2 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Where should I look?").also {stage++} + 3 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Can I come to the party?").also{stage = 997} + } + 996 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Okay traveller, take care.").also{stage = END_DIALOGUE } + 997 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Of course, but we need the wine first.").also{stage = END_DIALOGUE } + 42 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, he won't be far. Probably out in the forest.").also{stage++} + 43 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Ok, I'll go and find him.").also { stage = END_DIALOGUE }.also{ setQuestStage(player!!, questName, 30)} + } + } + 30 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello brother Omad.").also{stage = 50} + 50 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello adventurer, have you found Brother Cedric?").also{stage++} + 51 -> playerl(core.game.dialogue.FacialExpression.SAD, "Not yet.").also{stage++} + 52 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, keep looking, we need that wine!").also{stage = END_DIALOGUE } + } + } + 40 -> { + when(stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Hello adventurer, have you found Brother Cedric?").also{stage = 60} + 60 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes I've seen him, he's a bit drunk!").also{stage++} + 61 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, try your best to get him back here!").also{stage = END_DIALOGUE } + } + } + 41, 42 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hello again brother Omad.").also{stage = 70} + 70 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello adventurer, where's Brother Cedric?").also{stage++} + 71 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "He's having a bit of trouble with his cart.").also{stage++} + 72 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmmm! Maybe you could help?").also{stage = END_DIALOGUE } + } + } + 50 -> { + when(stage) { + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Hi Omad, Brother Cedric is on his way!").also{stage = 80} + 80 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Good! Good! Now we can party!").also{stage++} + 81 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "I have little to repay you with, but I'd like to offer you some rune stones. But first, let's party!").also{stage++} + 82 -> sendDialogue(player!!, "Brother Omad gives you 8 Law Runes").also{stage++} + 83 -> playerl(core.game.dialogue.FacialExpression.HAPPY, "Thanks Brother Omad!").also{stage++} + 84 -> { + commenceMonkParty(true) + end() + } + } + } + 100 -> { + commenceMonkParty(false) + } + } + } + + private fun commenceMonkParty(questComplete : Boolean) { + val brotherOmad: NPC? = RegionManager.getNpc(Location(2604, 3209, 0), 279, 6) + val monk: NPC? = RegionManager.getNpc(Location(2609, 3207, 0), 281, 6) + + // Spawn balloons when PartyRoom code is fixed. + + Pulser.submit(object : Pulse(1) { + var count = 0 + override fun pulse(): Boolean { + when (count) { + 1 -> { + brotherOmad!!.sendChat("Party!") + brotherOmad.animator.animate(Animation(866)) // Dance + + } + 3 -> { + player!!.sendChat("Woop!") + player!!.animator.animate(Animation(866)) // Dance + } + 5 -> { + monk!!.sendChat("Yeah!") + monk.animator.animate(Animation(2106)) // Jig + } + 7 -> brotherOmad!!.sendChat("Let's boogie!") + 9 -> player!!.sendChat("Oh, baby!") + 11 -> monk!!.sendChat("GO!") + 13 -> { + brotherOmad!!.sendChat("Get down!") + brotherOmad.animator.animate(Animation(2108)) // Headbang + } + 15 -> player!!.sendChat("Feel the rhythm!") + 17 -> monk!!.sendChat("Dance!") + 19 -> brotherOmad!!.sendChat("Oh my!") + 21 -> { + player!!.sendChat("Watch me go!") + player!!.animator.animate(Animation(861)) // Laugh + } + 23 -> { + monk!!.sendChat("You go!") + monk.animator.animate(Animation(2109)) // Jump for joy + } + 25 -> if (questComplete) { + player!!.questRepository.getQuest("Monk's Friend").finish(player) + } + } + count++ + return false + } + }) + } +} + +/** + * Handles BrotherCedricListener to launch the dialogue + * @author Kya + */ +class BrotherOmadListener : InteractionListener { + override fun defineListeners() { + on(NPCs.BROTHER_OMAD_279, IntType.NPC, "talk-to"){ player, _ -> + player.dialogueInterpreter.open(BrotherOmadDialogue(), NPC(NPCs.BROTHER_OMAD_279)) + return@on true + } + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonasteryMonkNPC.kt b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonasteryMonkNPC.kt similarity index 61% rename from Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonasteryMonkNPC.kt rename to Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonasteryMonkNPC.kt index ed4c9b42c..8279ba5ce 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonasteryMonkNPC.kt +++ b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonasteryMonkNPC.kt @@ -1,12 +1,11 @@ -package rs09.game.content.quest.members.monksfriend +package content.region.kandarin.ardougne.quest.monksfriend -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE /** * Handles MonasteryMonkDialogue Dialogue @@ -17,15 +16,15 @@ class MonasteryMonkDialogue : DialogueFile() { var questStage = player!!.questRepository.getStage("Monk's Friend") if (questStage == 0){ when(stage) { - 0 -> npcl(FacialExpression.NEUTRAL,"Peace brother.").also { stage = END_DIALOGUE } + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Peace brother.").also { stage = END_DIALOGUE } } } else if (questStage < 100) { when(stage) { - 0 -> npcl(FacialExpression.FRIENDLY,"*yawn*").also{stage = END_DIALOGUE} + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY,"*yawn*").also{stage = END_DIALOGUE } } } else { when(stage) { - 0 -> npcl(FacialExpression.HAPPY,"Can't wait for the party!").also{stage = END_DIALOGUE} + 0 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Can't wait for the party!").also{stage = END_DIALOGUE } } } } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonksFriend.kt b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonksFriend.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonksFriend.kt rename to Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonksFriend.kt index 66eba34d3..8b20528b7 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/MonksFriend.kt +++ b/Server/src/main/content/region/kandarin/ardougne/quest/monksfriend/MonksFriend.kt @@ -1,66 +1,66 @@ -package rs09.game.content.quest.members.monksfriend - - -import api.* -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.quest.Quest -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items - -/** -* Represents the "Monk's Friend" quest. -* @author Kya -*/ - -@Initializable -class MonksFriend: Quest("Monk's Friend", 89, 88, 1, 30, 0, 1, 80) { - - override fun newInstance(`object`: Any?): Quest { - return this - } - - override fun drawJournal(player: Player?, stage: Int) { - super.drawJournal(player, stage) - var line = 11 - player?: return - if(stage == 0){ - line(player, "I can start this quest by speaking to !!Brother Omad?? in the", line++) - line(player, "!!Monastery?? south of !!Ardougne??.", line++) - line++ - } - if(stage == 10){ - line(player, "Brother Omad asked me to recover a child's blanket.", line++) - } - if(stage >= 20){ - line(player, "Brother Omad asked me to recover a child's blanket, I ", line++, true) - line(player, "found the secret cave and gave back the blanket.", line++, true) - - } - if(stage ==30){ - line(player, "I agreed to find !!Brother Cedric.?? he is somewhere in the", line++) - line(player, "!!forest?? south of !!Ardougne??", line++) - } - if(stage >= 50){ - line(player, "I found Brother Cedric in the forest south of Ardougne.", line++, true) - line(player, "I sobered him up and I helped him fix his cart.", line++, true) - } - if(stage == 100){ - line(player, "I had a party with the Monks. There were party balloons and we danced the night away!", line++, true) - } - } - - override fun finish(player: Player?) { - super.finish(player) - player ?: return - var ln = 10 - player.packetDispatch.sendItemZoomOnInterface(Items.LAW_RUNE_563, 230, 277, 5) - drawReward(player,"1 Quest Point", ln++) - drawReward(player,"8 Law Runes", ln++) - drawReward(player,"2000 Woodcutting XP", ln++) - - rewardXP(player, Skills.WOODCUTTING, 2000.0) - player.inventory.add(Item(563, 8)) - } -} +package content.region.kandarin.ardougne.quest.monksfriend + + +import core.api.* +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.quest.Quest +import core.game.node.entity.skill.Skills +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items + +/** +* Represents the "Monk's Friend" quest. +* @author Kya +*/ + +@Initializable +class MonksFriend: Quest("Monk's Friend", 89, 88, 1, 30, 0, 1, 80) { + + override fun newInstance(`object`: Any?): Quest { + return this + } + + override fun drawJournal(player: Player?, stage: Int) { + super.drawJournal(player, stage) + var line = 11 + player?: return + if(stage == 0){ + line(player, "I can start this quest by speaking to !!Brother Omad?? in the", line++) + line(player, "!!Monastery?? south of !!Ardougne??.", line++) + line++ + } + if(stage == 10){ + line(player, "Brother Omad asked me to recover a child's blanket.", line++) + } + if(stage >= 20){ + line(player, "Brother Omad asked me to recover a child's blanket, I ", line++, true) + line(player, "found the secret cave and gave back the blanket.", line++, true) + + } + if(stage ==30){ + line(player, "I agreed to find !!Brother Cedric.?? he is somewhere in the", line++) + line(player, "!!forest?? south of !!Ardougne??", line++) + } + if(stage >= 50){ + line(player, "I found Brother Cedric in the forest south of Ardougne.", line++, true) + line(player, "I sobered him up and I helped him fix his cart.", line++, true) + } + if(stage == 100){ + line(player, "I had a party with the Monks. There were party balloons and we danced the night away!", line++, true) + } + } + + override fun finish(player: Player?) { + super.finish(player) + player ?: return + var ln = 10 + player.packetDispatch.sendItemZoomOnInterface(Items.LAW_RUNE_563, 230, 277, 5) + drawReward(player,"1 Quest Point", ln++) + drawReward(player,"8 Law Runes", ln++) + drawReward(player,"2000 Woodcutting XP", ln++) + + rewardXP(player, Skills.WOODCUTTING, 2000.0) + player.inventory.add(Item(563, 8)) + } +} diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/GateInteractionHandler.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/GateInteractionHandler.java similarity index 87% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/GateInteractionHandler.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/GateInteractionHandler.java index 9a7012033..af008a0d6 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/GateInteractionHandler.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/GateInteractionHandler.java @@ -1,16 +1,15 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; import core.game.node.Node; import core.game.node.entity.impl.PulseType; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.dialogue.FacialExpression; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/HalgriveDialogue.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HalgriveDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/HalgriveDialogue.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HalgriveDialogue.java index 930a9e693..4a9a09e86 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/HalgriveDialogue.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HalgriveDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; @Initializable public class HalgriveDialogue extends DialoguePlugin { diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/HerderSheepNPC.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HerderSheepNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/HerderSheepNPC.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HerderSheepNPC.java index ddd2368ab..8576e3fcb 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/HerderSheepNPC.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/HerderSheepNPC.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/IncineratorHandler.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/IncineratorHandler.java index acca54416..dd6a0448e 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/IncineratorHandler.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; @@ -9,8 +9,8 @@ import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; import java.util.Objects; diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/OrbonDialogue.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/OrbonDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/OrbonDialogue.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/OrbonDialogue.java index 07a6476a9..ec371b44a 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/OrbonDialogue.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/OrbonDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; @Initializable public class OrbonDialogue extends DialoguePlugin { diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/ProdActionHandler.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/ProdActionHandler.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/ProdActionHandler.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/ProdActionHandler.java index f152ba95b..a9385fa2b 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/ProdActionHandler.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/ProdActionHandler.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; @@ -7,16 +7,15 @@ import core.game.node.Node; import core.game.node.entity.impl.PulseType; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class ProdActionHandler extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/SheepHerder.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepHerder.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/SheepHerder.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepHerder.java index ee05f0f88..e3941023f 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/SheepHerder.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepHerder.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/SheepPoisonHandler.java b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepPoisonHandler.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/members/sheepherder/SheepPoisonHandler.java rename to Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepPoisonHandler.java index 147f16a92..585210c92 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/SheepPoisonHandler.java +++ b/Server/src/main/content/region/kandarin/ardougne/quest/sheepherder/SheepPoisonHandler.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.sheepherder; +package content.region.kandarin.ardougne.quest.sheepherder; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; @@ -6,15 +6,14 @@ import core.game.interaction.NodeUsageEvent; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; -import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class SheepPoisonHandler extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java rename to Server/src/main/content/region/kandarin/barcrawl/BarcrawlDialogue.java index be4045762..26f913ee9 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java +++ b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.miniquest.barcrawl; +package content.region.kandarin.barcrawl; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; import core.plugin.Initializable; -import rs09.game.world.GameWorld; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.world.GameWorld; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; /** * The barcrawl diaogue plugin. diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlManager.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java rename to Server/src/main/content/region/kandarin/barcrawl/BarcrawlManager.java index 492388009..95f1a4150 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlManager.java +++ b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlManager.java @@ -1,7 +1,7 @@ -package core.game.content.quest.miniquest.barcrawl; +package content.region.kandarin.barcrawl; -import api.LoginListener; -import api.PersistPlayer; +import core.api.LoginListener; +import core.api.PersistPlayer; import core.game.component.Component; import core.game.node.entity.player.Player; @@ -10,8 +10,6 @@ import org.jetbrains.annotations.NotNull; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import java.nio.ByteBuffer; - /** * Manages the players barcrawl quest. * @author 'Vexia diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlType.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java rename to Server/src/main/content/region/kandarin/barcrawl/BarcrawlType.java index 8573d9b54..0ae18f671 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java +++ b/Server/src/main/content/region/kandarin/barcrawl/BarcrawlType.java @@ -1,4 +1,4 @@ -package core.game.content.quest.miniquest.barcrawl; +package content.region.kandarin.barcrawl; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; @@ -9,7 +9,7 @@ import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; import core.net.packet.out.CameraViewPacket; import core.tools.StringUtils; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * A barcrawl type npc. diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/catherby/ArheinDialogue.kt b/Server/src/main/content/region/kandarin/catherby/dialogue/ArheinDialogue.kt similarity index 73% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/catherby/ArheinDialogue.kt rename to Server/src/main/content/region/kandarin/catherby/dialogue/ArheinDialogue.kt index 9ca851907..ed8427af0 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/catherby/ArheinDialogue.kt +++ b/Server/src/main/content/region/kandarin/catherby/dialogue/ArheinDialogue.kt @@ -1,18 +1,16 @@ -package rs09.game.content.dialogue.region.catherby -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +package content.region.kandarin.catherby.dialogue +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import core.tools.StringUtils import org.rs09.consts.NPCs -import rs09.ServerStore -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE +import core.ServerStore +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE import org.rs09.consts.Items -import rs09.game.content.quest.members.merlinsquest.ArheinMCDialogue +import content.region.kandarin.seers.quest.merlinsquest.ArheinMCDialogue /** @@ -30,7 +28,7 @@ import rs09.game.content.quest.members.merlinsquest.ArheinMCDialogue */ @Initializable -class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { +class ArheinDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { val limits = mapOf( Items.PINEAPPLE_2114 to 40, @@ -76,10 +74,10 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { npc = args[0] as NPC if (args.size > 1) { - npcl(FacialExpression.ANGRY, "Hey buddy! Get away from my ship alright?") + npcl(core.game.dialogue.FacialExpression.ANGRY, "Hey buddy! Get away from my ship alright?") stage = 701 } else { - npcl(FacialExpression.HAPPY, "Hello! Would you like to trade? I've a variety of wares for sale!") + npcl(core.game.dialogue.FacialExpression.HAPPY, "Hello! Would you like to trade? I've a variety of wares for sale!") stage = 1 } return true @@ -99,22 +97,22 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { Topic("Is that your ship?", 100) ) 7 -> npc.openShop(player).also { stage = END_DIALOGUE } - 100 -> npcl(FacialExpression.NEUTRAL, "Yes, I use it to make deliveries to my customers up and down the coast. These crates here are all ready for my next trip.").also { stage++ } + 100 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, I use it to make deliveries to my customers up and down the coast. These crates here are all ready for my next trip.").also { stage++ } 101 -> showTopics( Topic("Where do you deliver to?",120), Topic("Are you rich then?", 110), Topic("Do you deliver to the fort just down the coast?",500) ) - 110 -> npcl(FacialExpression.NEUTRAL, "Business is going reasonably well... I wouldn't say I was the richest of merchants ever, but I'm doing fairly well all things considered.").also { stage = END_DIALOGUE } - 120 -> npcl(FacialExpression.NEUTRAL, "Various places up and down the coast. Mostly Karamja and Port Sarim.").also { stage++ } + 110 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Business is going reasonably well... I wouldn't say I was the richest of merchants ever, but I'm doing fairly well all things considered.").also { stage = END_DIALOGUE } + 120 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Various places up and down the coast. Mostly Karamja and Port Sarim.").also { stage++ } 121 -> showTopics( Topic("I don't suppose I could get a lift anywhere?",140), Topic("Well, good luck with your business.",130) ) - 130 -> npcl(FacialExpression.HAPPY,"Thanks buddy!").also { stage = END_DIALOGUE } - 140 -> npcl(FacialExpression.GUILTY,"Sorry pal, but I'm afraid I'm not quite ready to sail yet.").also { stage++ } - 141 -> npcl(FacialExpression.NEUTRAL,"I'm waiting on a big delivery of candles which I need to deliver further along the coast.").also { stage = END_DIALOGUE } - 500 -> npcl(FacialExpression.HALF_THINKING, "Yes, I do have orders to deliver there from time to time. I think I may have some bits and pieces for them when I leave here next actually.").also { + 130 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Thanks buddy!").also { stage = END_DIALOGUE } + 140 -> npcl(core.game.dialogue.FacialExpression.GUILTY,"Sorry pal, but I'm afraid I'm not quite ready to sail yet.").also { stage++ } + 141 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"I'm waiting on a big delivery of candles which I need to deliver further along the coast.").also { stage = END_DIALOGUE } + 500 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "Yes, I do have orders to deliver there from time to time. I think I may have some bits and pieces for them when I leave here next actually.").also { val queststage = player.questRepository.getStage("Merlin's Crystal") if(queststage == 30 || queststage == 40) { loadFile(ArheinMCDialogue(queststage)) @@ -122,18 +120,18 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { stage = END_DIALOGUE } } - 701 -> playerl(FacialExpression.GUILTY,"Yeah... uh... sorry...").also{ stage = END_DIALOGUE } + 701 -> playerl(core.game.dialogue.FacialExpression.GUILTY,"Yeah... uh... sorry...").also{ stage = END_DIALOGUE } 800 -> { // Pineapples selectGoods(Items.PINEAPPLE_2114) // and now the conditional block to handle cases if(stock==0) { - npcl(FacialExpression.SAD,"Actually, I've run out. Come back tomorrow and I should have some more.") + npcl(core.game.dialogue.FacialExpression.SAD,"Actually, I've run out. Come back tomorrow and I should have some more.") stage = END_DIALOGUE } else { // approximately authentic dialogue prompt for buying pineapples from arhein. (closest known dialogues do not make grammatical sense when spliced.) this.goodsMessage = "I certainly do! I've got ${stock} in stock, going for 2 coins each. How many would you like?" - npcl(FacialExpression.HAPPY,this.goodsMessage) + npcl(core.game.dialogue.FacialExpression.HAPPY,this.goodsMessage) this.goodsName = if(stock==1) getItemName(this.goods) else StringUtils.plusS(getItemName(this.goods)) stage = 1200 } @@ -143,12 +141,12 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { selectGoods(Items.SEAWEED_401) // and now the conditional block to handle cases if(stock==0) { - npcl(FacialExpression.SAD,"Actually, I've run out. Come back tomorrow and I should have some more.") + npcl(core.game.dialogue.FacialExpression.SAD,"Actually, I've run out. Come back tomorrow and I should have some more.") stage = END_DIALOGUE } else { // approximately authentic dialogue prompt for buying seaweed from arhein. (closest known dialogues do not make grammatical sense when spliced.) this.goodsMessage = "I certainly do! I've ${stock} at the moment and they cost 2 coins each. How many would you like?" - npcl(FacialExpression.HAPPY,this.goodsMessage) + npcl(core.game.dialogue.FacialExpression.HAPPY,this.goodsMessage) this.goodsName = getItemName(this.goods) stage = 1200 } @@ -169,7 +167,7 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { // same deal here, inauthentic exit dialogue based on arhein's authentic personality. exitMsg = "Take care, buddy!" } - npcl(FacialExpression.HAPPY,exitMsg) + npcl(core.game.dialogue.FacialExpression.HAPPY,exitMsg) } stage = END_DIALOGUE } @@ -179,7 +177,7 @@ class ArheinDialogue(player: Player? = null) : DialoguePlugin(player) { // finale funz - newInstance, getIds - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ArheinDialogue(player) } override fun getIds(): IntArray { diff --git a/Server/src/main/java/core/game/content/dialogue/CandleSellerPlugin.java b/Server/src/main/content/region/kandarin/catherby/dialogue/CandleSellerPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/CandleSellerPlugin.java rename to Server/src/main/content/region/kandarin/catherby/dialogue/CandleSellerPlugin.java index b2c8fd710..8be253971 100644 --- a/Server/src/main/java/core/game/content/dialogue/CandleSellerPlugin.java +++ b/Server/src/main/content/region/kandarin/catherby/dialogue/CandleSellerPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.catherby.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/HarryDialogue.java b/Server/src/main/content/region/kandarin/catherby/dialogue/HarryDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/HarryDialogue.java rename to Server/src/main/content/region/kandarin/catherby/dialogue/HarryDialogue.java index 8e1d65163..84c57b098 100644 --- a/Server/src/main/java/core/game/content/dialogue/HarryDialogue.java +++ b/Server/src/main/content/region/kandarin/catherby/dialogue/HarryDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.catherby.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import org.rs09.consts.Items; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/HicktonDialogue.java b/Server/src/main/content/region/kandarin/catherby/dialogue/HicktonDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/HicktonDialogue.java rename to Server/src/main/content/region/kandarin/catherby/dialogue/HicktonDialogue.java index febb0b3bc..2a291621e 100644 --- a/Server/src/main/java/core/game/content/dialogue/HicktonDialogue.java +++ b/Server/src/main/content/region/kandarin/catherby/dialogue/HicktonDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.kandarin.catherby.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/VanessaDialogue.java b/Server/src/main/content/region/kandarin/catherby/dialogue/VanessaDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/VanessaDialogue.java rename to Server/src/main/content/region/kandarin/catherby/dialogue/VanessaDialogue.java index c9ae93385..31472391b 100644 --- a/Server/src/main/java/core/game/content/dialogue/VanessaDialogue.java +++ b/Server/src/main/content/region/kandarin/catherby/dialogue/VanessaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.catherby.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaDialogue.kt b/Server/src/main/content/region/kandarin/dialogue/EniolaDialogue.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaDialogue.kt rename to Server/src/main/content/region/kandarin/dialogue/EniolaDialogue.kt index 77b5e037b..e8af8d314 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaDialogue.kt +++ b/Server/src/main/content/region/kandarin/dialogue/EniolaDialogue.kt @@ -1,31 +1,31 @@ -package rs09.game.content.dialogue.region.ourania +package content.region.kandarin.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.Components import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class EniolaDialogue(player: Player? = null) : DialoguePlugin(player) { +class EniolaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> if (hasIronmanRestriction(player, IronmanMode.ULTIMATE)) { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "My apologies, dear ${if (player.isMale) "sir" else "madam"}, " + "our services are not available for Ultimate ${if (player.isMale) "Ironmen" else "Ironwomen"}." ).also { stage = END_DIALOGUE } } else { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Good day, how may I help you?" ).also { if (hasAwaitingGrandExchangeCollections(player)) { @@ -37,107 +37,107 @@ class EniolaDialogue(player: Player? = null) : DialoguePlugin(player) { } 1 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Before we go any further, I should inform you that you " + "have items ready for collection from the Grand Exchange." ).also { stage++ } - 2 -> playerl(FacialExpression.ASKING, "Who are you?") + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Who are you?") .also { stage++ } 3 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "How frightfully rude of me, my dear ${if (player.isMale) "sir" else "lady"}. " + "My name is Eniola and I work for that excellent enterprise, the Bank of Gielinor." ).also { stage++ } 4 -> showTopics( - Topic(FacialExpression.HALF_THINKING, "If you work for the bank, what are you doing here?", 10), - Topic(FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 30), - Topic(FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 31), - Topic(FacialExpression.NEUTRAL, "I'd like to see my collection box.", 32), - Topic(FacialExpression.NEUTRAL, "Never mind.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.HALF_THINKING, "If you work for the bank, what are you doing here?", 10), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to access my bank account, please.", 30), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to check my PIN settings.", 31), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to see my collection box.", 32), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Never mind.", END_DIALOGUE) ) 10 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "My presence here is the start of a new enterprise of travelling banks. " + "I, and others like me, will provide you with the convenience of having " + "bank facilities where they will be of optimum use to you." ).also { stage++ } 11 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "So... What are you doing here?" ).also { stage++ } 12 -> npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "The Z.M.I. - that is - the Zamorakian Magical Institute, required my services " + "upon discovery of this altar." ).also { stage++ } 13 -> npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "We at the Bank of Gielinor are a neutral party and are willing to offer our " + "services regardless of affiliation. So that is why I am here." ).also { stage++ } 14 -> playerl( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Can I access my bank account by speaking to you?" ).also { stage++ } 15 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Of course, dear ${if (player.isMale) "sir" else "lady"}. However, I must inform you " + "that because the Z.M.I. are paying for my services, they require anyone not part of " + "the Institute to pay an access fee to open their bank account." ).also { stage++ } 16 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "But, as our goal as travelling bankers is to make our customers' lives more convenient, " + "we have accomodated to your needs." ).also { stage++ } 17 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "We know you will be busy creating runes and do not wish " + "to carry money with you." ).also { stage++ } 18 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "The charge to open your account is the small amount of twenty of one type of rune. " + "The type of rune is up to you." ).also { stage++ } 19 -> npcl( - FacialExpression.HALF_ASKING, + core.game.dialogue.FacialExpression.HALF_ASKING, "Would you like to pay the price of twenty runes to open " + "your bank account?" ).also { stage++ } 20 -> showTopics( - Topic(FacialExpression.NEUTRAL, "Yes, please.", 30), - Topic(FacialExpression.SUSPICIOUS, "Let me open my account and then I'll give you the runes.", 21), - Topic(FacialExpression.ANNOYED, "No way! I'm not paying to withdraw my own stuff.", 22) + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, please.", 30), + Topic(core.game.dialogue.FacialExpression.SUSPICIOUS, "Let me open my account and then I'll give you the runes.", 21), + Topic(core.game.dialogue.FacialExpression.ANNOYED, "No way! I'm not paying to withdraw my own stuff.", 22) ) 21 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "It's not that I don't trust you, old ${if (player.isMale) "chap" else "girl"}, " + "but as the old adage goes: 'Payment comes before friends'." ).also { stage = END_DIALOGUE } 22 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'm sorry to hear that, dear ${if (player.isMale) "sir" else "madam"}. " ).also { stage++ } 23 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Should you reconsider, because I believe this service offers excellent " + "value for the price, do not hesitate to contact me." ).also { stage = END_DIALOGUE } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaListener.kt b/Server/src/main/content/region/kandarin/dialogue/EniolaListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaListener.kt rename to Server/src/main/content/region/kandarin/dialogue/EniolaListener.kt index 74f6990fa..9a7656d25 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ourania/EniolaListener.kt +++ b/Server/src/main/content/region/kandarin/dialogue/EniolaListener.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.ourania +package content.region.kandarin.dialogue -import api.openInterface -import api.restrictForIronman -import api.setAttribute +import core.api.openInterface +import core.api.restrictForIronman +import core.api.setAttribute import core.game.node.entity.player.link.IronmanMode import org.rs09.consts.Components import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles special banking interactions for Eniola at ZMI altar area. diff --git a/Server/src/main/java/core/game/content/dialogue/GalahadDialogue.java b/Server/src/main/content/region/kandarin/dialogue/GalahadDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/GalahadDialogue.java rename to Server/src/main/content/region/kandarin/dialogue/GalahadDialogue.java index 814b8f6d5..f7ab01f90 100644 --- a/Server/src/main/java/core/game/content/dialogue/GalahadDialogue.java +++ b/Server/src/main/content/region/kandarin/dialogue/GalahadDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.dialogue; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import org.rs09.consts.Items; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ottosgrotto/OttoGodblessedDialogue.kt b/Server/src/main/content/region/kandarin/dialogue/OttoGodblessedDialogue.kt similarity index 61% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ottosgrotto/OttoGodblessedDialogue.kt rename to Server/src/main/content/region/kandarin/dialogue/OttoGodblessedDialogue.kt index 03e493c8a..aa20a9618 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ottosgrotto/OttoGodblessedDialogue.kt +++ b/Server/src/main/content/region/kandarin/dialogue/OttoGodblessedDialogue.kt @@ -1,24 +1,23 @@ -package rs09.game.content.dialogue.region.ottosgrotto +package content.region.kandarin.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Represents the dialogue plugin used for Otto * @author vddCore */ @Initializable -class OttoGodblessedDialogue(player: Player? = null) : DialoguePlugin(player) { +class OttoGodblessedDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return OttoGodblessedDialogue(player) } @@ -26,7 +25,7 @@ class OttoGodblessedDialogue(player: Player? = null) : DialoguePlugin(player) { npc = args[0] as NPC npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Good day, you seem a hearty warrior. " + "Maybe even some barbarian blood in that body of yours?" ) @@ -37,48 +36,48 @@ class OttoGodblessedDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> showTopics( - Topic(FacialExpression.ASKING, "Is there anything you can teach me?", 1), - Topic(FacialExpression.NEUTRAL, "Nevermind.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.ASKING, "Is there anything you can teach me?", 1), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "Nevermind.", END_DIALOGUE) ) 1 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I can teach you how to fish." ).also { stage++ } 2 -> playerl( - FacialExpression.HALF_ROLLING_EYES, + core.game.dialogue.FacialExpression.HALF_ROLLING_EYES, "Oh, that's pretty underwhelming. But uhhh, okay!" ).also { stage++ } 3 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Alright, so here's what you gotta do: you need to grab a pole and some bait, and then... " + "Fling it into the water!" ).also { stage++ } 4 -> playerl( - FacialExpression.HALF_ASKING, + core.game.dialogue.FacialExpression.HALF_ASKING, "The whole... Pole?" ).also { stage++ } 5 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "No, not the whole pole!" ).also { stage++ } 6 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Look. Just... Grab the pole from under my bed and go click on that fishing spot." ).also { stage++ } 7 -> playerl( - FacialExpression.STRUGGLE, + core.game.dialogue.FacialExpression.STRUGGLE, "...click?" ).also { stage++ } 8 -> npcl( - FacialExpression.FURIOUS, + core.game.dialogue.FacialExpression.FURIOUS, "JUST GO DO IT!" ).also { stage = END_DIALOGUE; diff --git a/Server/src/main/java/core/game/content/dialogue/StankersDialogue.java b/Server/src/main/content/region/kandarin/dialogue/StankersDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/StankersDialogue.java rename to Server/src/main/content/region/kandarin/dialogue/StankersDialogue.java index 3fff17488..5e419f60a 100644 --- a/Server/src/main/java/core/game/content/dialogue/StankersDialogue.java +++ b/Server/src/main/content/region/kandarin/dialogue/StankersDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.dialogue; +import core.game.dialogue.DialoguePlugin; import org.rs09.consts.Items; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HuntingExpert.java b/Server/src/main/content/region/kandarin/feldip/dialogue/HuntingExpert.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/HuntingExpert.java rename to Server/src/main/content/region/kandarin/feldip/dialogue/HuntingExpert.java index d96b35b74..e69ff6954 100644 --- a/Server/src/main/java/core/game/content/dialogue/HuntingExpert.java +++ b/Server/src/main/content/region/kandarin/feldip/dialogue/HuntingExpert.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.feldip.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/interaction/npc/BogrogPlugin.java b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/npc/BogrogPlugin.java rename to Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPlugin.java index 8098e214b..691ee67f3 100644 --- a/Server/src/main/java/core/game/interaction/npc/BogrogPlugin.java +++ b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPlugin.java @@ -1,17 +1,17 @@ -package core.game.interaction.npc; +package content.region.kandarin.feldip.gutanoth.handlers; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; import core.game.container.access.InterfaceContainer; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the bogrog npc. diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPouchSwapper.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt rename to Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPouchSwapper.kt index b707d0910..8af239407 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt +++ b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/BogrogPouchSwapper.kt @@ -1,14 +1,12 @@ -package rs09.game.interaction.npc +package content.region.kandarin.feldip.gutanoth.handlers -import api.* +import core.api.* import core.game.component.Component import core.game.node.entity.player.Player -import core.game.node.entity.player.link.RunScript -import core.game.node.entity.skill.summoning.SummoningPouch -import core.game.node.entity.skill.summoning.SummoningScroll +import content.global.skill.summoning.SummoningPouch +import content.global.skill.summoning.SummoningScroll import core.game.node.item.Item import core.game.world.map.zone.ZoneBorders -import kotlin.math.ceil import kotlin.math.floor /** diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/GutanothChestPlugin.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt rename to Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/GutanothChestPlugin.kt index 9a069455b..c98daee42 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt +++ b/Server/src/main/content/region/kandarin/feldip/gutanoth/handlers/GutanothChestPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.`object` +package content.region.kandarin.feldip.gutanoth.handlers import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder @@ -9,13 +9,13 @@ import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld import java.util.concurrent.TimeUnit private const val CHEST = 2827 -class GutanothChestInteractionHandler : InteractionListener{ +class GutanothChestInteractionHandler : InteractionListener { override fun defineListeners() { @@ -65,7 +65,7 @@ class GutanothChestInteractionHandler : InteractionListener{ } } - enum class Rewards(val id: Int,val type: Type,val message: String){ + enum class Rewards(val id: Int, val type: Type, val message: String){ BONES(Items.BONES_2530, Type.ITEM, "Oh! Some bones. Delightful."), EMERALD(Items.EMERALD_1605, Type.ITEM, "Ooh! A lovely emerald!"), ROTTEN_APPLE(Items.ROTTEN_APPLE_1984, Type.ITEM, "Oh, joy, spoiled fruit! My favorite!"), diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/BalneaDialogue.kt b/Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/BalneaDialogue.kt similarity index 64% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/BalneaDialogue.kt rename to Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/BalneaDialogue.kt index 3c000d8b1..4fb34c407 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/BalneaDialogue.kt +++ b/Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/BalneaDialogue.kt @@ -1,12 +1,12 @@ -package rs09.game.content.dialogue.region.ooglog +package content.region.kandarin.feldip.ooglog.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Provides dialogue tree for Balnea NPC involved in the @@ -15,31 +15,31 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class BalneaDialogue(player: Player? = null) : DialoguePlugin(player) { +class BalneaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> playerl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Hi there!" ).also { stage++ } 1 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'm ever so busy at the moment; please come back after the grand opening." ).also { stage++ } 2 -> playerl( - FacialExpression.HALF_ASKING, + core.game.dialogue.FacialExpression.HALF_ASKING, "What grand reopening?" ).also { stage++ } 3 -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "I'm sorry, I really can't spare the time to talk to you." ).also { stage++ } 4 -> playerl( - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "Uh, sure." ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/OgressBankerDialogue.kt b/Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/OgressBankerDialogue.kt similarity index 70% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/OgressBankerDialogue.kt rename to Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/OgressBankerDialogue.kt index 2d1cad824..21b5b8d7b 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ooglog/OgressBankerDialogue.kt +++ b/Server/src/main/content/region/kandarin/feldip/ooglog/dialogue/OgressBankerDialogue.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.ooglog +package content.region.kandarin.feldip.ooglog.dialogue -import api.sendNPCDialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.sendNPCDialogue +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Provides dialogue tree for the Ogress Bankers in the city of Oo'glog. @@ -15,7 +15,7 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class OgressBankerDialogue(player: Player? = null) : DialoguePlugin(player) { +class OgressBankerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun getIds(): IntArray = intArrayOf( NPCs.OGRESS_BANKER_7049, NPCs.OGRESS_BANKER_7050 @@ -24,17 +24,17 @@ class OgressBankerDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> npcl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "..." ).also { stage++ } 1 -> playerl( - FacialExpression.ANNOYED, + core.game.dialogue.FacialExpression.ANNOYED, "Excuse me, can I get some service here, please?" ).also { stage++ } 2 -> npcl( - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "GRAAAAAH! You go away, human! Me too busy with training to talk to puny thing like you." ).also { stage++ } @@ -42,7 +42,7 @@ class OgressBankerDialogue(player: Player? = null) : DialoguePlugin(player) { player, NPCs.BALNEA_7047, "I do apologise, sir. We're temporarily unable to meet your banking needs.", - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, ).also { stage++ } 4 -> sendNPCDialogue( @@ -51,11 +51,11 @@ class OgressBankerDialogue(player: Player? = null) : DialoguePlugin(player) { "We'll be open as soon as we realize our customer experience goals " + "and can guarantee the high standards of service that you expect from all " + "branches of the Bank of Gielinor.", - FacialExpression.NEUTRAL + core.game.dialogue.FacialExpression.NEUTRAL ).also { stage++ } 5 -> playerl( - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "What did you just say to me?" ).also { stage++ } @@ -63,11 +63,11 @@ class OgressBankerDialogue(player: Player? = null) : DialoguePlugin(player) { player, NPCs.BALNEA_7047, "We're closed until I can teach these wretched creatures some manners.", - FacialExpression.ANNOYED + core.game.dialogue.FacialExpression.ANNOYED ).also { stage++ } 7 -> playerl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Ah, right. Good luck with that." ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/BloatedToadNPC.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/BloatedToadNPC.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/BloatedToadNPC.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/BloatedToadNPC.kt index e0930cc87..2865888b4 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/BloatedToadNPC.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/BloatedToadNPC.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* +import core.api.* import org.rs09.consts.NPCs import org.rs09.consts.Items import org.rs09.consts.Graphics -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.command.Privilege +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.system.command.Privilege import core.plugin.Initializable import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.npc.NPC @@ -121,7 +121,7 @@ class BloatedToadListeners : InteractionListener, StartupListener, Commands { } override fun defineListeners() { - on(Items.BLOATED_TOAD_2875, IntType.ITEM, "drop") {player, used -> + on(Items.BLOATED_TOAD_2875, IntType.ITEM, "drop") { player, used -> val quest = player.questRepository.getQuest("Big Chompy Bird Hunting") val inExtraBorder = extraBorders.filter { it.insideBorder(player) }.count() > 0 diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBird.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBird.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBird.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBird.kt index 0438ca54b..8b48ff43e 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBird.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBird.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* +import core.api.* import org.rs09.consts.Vars import org.rs09.consts.Items @@ -17,13 +17,10 @@ import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.world.update.flag.context.Graphics as Gfx -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.content.dialogue.SkillDialogueHandler -import rs09.game.content.dialogue.SkillDialogueHandler.SkillDialogue -import rs09.game.system.config.ItemConfigParser -import rs09.game.system.config.NPCConfigParser -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.system.config.NPCConfigParser +import core.game.world.GameWorld import kotlin.math.min import java.util.Random @@ -138,19 +135,19 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C override fun defineListeners() { val filledBellows = intArrayOf(Items.OGRE_BELLOWS_3_2872, Items.OGRE_BELLOWS_2_2873, Items.OGRE_BELLOWS_1_2874) - on(3379, IntType.SCENERY, "enter") {player, _ -> + on(3379, IntType.SCENERY, "enter") { player, _ -> teleport(player, CAVE_ENTRANCE) sendMessage(player, "You walk through the cave entrance into a dimly lit cave.") return@on true } - on(intArrayOf(32068, 32069), IntType.SCENERY, "pass-through") {player, _ -> + on(intArrayOf(32068, 32069), IntType.SCENERY, "pass-through") { player, _ -> teleport(player, CAVE_EXIT) sendMessage(player, "You walk back out of the darkness of the cave into daylight.") return@on true } - on(3377, IntType.SCENERY, "unlock") {player, node -> + on(3377, IntType.SCENERY, "unlock") { player, node -> if (freeSlots(player) == 0) { sendMessage(player, "You don't have enough space to do that.") return@on true @@ -178,7 +175,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@on true } - onUseWith(IntType.SCENERY, Items.RAW_CHOMPY_2876, 3375) {player, used, _ -> + onUseWith(IntType.SCENERY, Items.RAW_CHOMPY_2876, 3375) { player, used, _ -> val rantzIngredient = getAttribute(player, ATTR_ING_RANTZ, -1) val bugsIngredient = getAttribute(player, ATTR_ING_BUGS, -1) val fycieIngredient = getAttribute(player, ATTR_ING_FYCIE, -1) @@ -222,7 +219,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@onUseWith true } - onUseWith(IntType.SCENERY, Items.OGRE_BELLOWS_2871, 684) {player, used, _ -> + onUseWith(IntType.SCENERY, Items.OGRE_BELLOWS_2871, 684) { player, used, _ -> if (removeItem(player, used.asItem())) { lock(player, 2) visualize(player, Animations.HUMAN_USING_BELLOWS_1026, Gfx(Graphics.USING_BELLOWS, 80)) @@ -232,7 +229,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@onUseWith true } - onUseWith(IntType.NPC, filledBellows, NPCs.SWAMP_TOAD_1013) {player, used, with -> + onUseWith(IntType.NPC, filledBellows, NPCs.SWAMP_TOAD_1013) { player, used, with -> val hasTooManyToads = amountInInventory(player, Items.BLOATED_TOAD_2875) >= 3 if (hasTooManyToads) { @@ -258,7 +255,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@onUseWith true } - onUseWith(IntType.ITEM, Items.OGRE_ARROW_SHAFT_2864, Items.FEATHER_314) {player, used, with -> + onUseWith(IntType.ITEM, Items.OGRE_ARROW_SHAFT_2864, Items.FEATHER_314) { player, used, with -> val shaftAmount = amountInInventory(player, used.id) val featherAmount = amountInInventory(player, with.id) var maxAmount = min(shaftAmount, featherAmount) @@ -279,7 +276,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@onUseWith true } - onUseWith(IntType.ITEM, Items.WOLF_BONES_2859, Items.CHISEL_1755) {player, used, with -> + onUseWith(IntType.ITEM, Items.WOLF_BONES_2859, Items.CHISEL_1755) { player, used, with -> val maxAmount = amountInInventory(player, used.id) if (getStage(player) == 0) { @@ -315,7 +312,7 @@ class ChompyBird : Quest("Big Chompy Bird Hunting", 35, 34, 2, Vars.VARP_QUEST_C return@onUseWith true } - onUseWith(IntType.ITEM, Items.WOLFBONE_ARROWTIPS_2861, Items.FLIGHTED_OGRE_ARROW_2865) {player, used, with -> + onUseWith(IntType.ITEM, Items.WOLFBONE_ARROWTIPS_2861, Items.FLIGHTED_OGRE_ARROW_2865) { player, used, with -> fun getMaxAmount(_unused: Int = 0): Int { val tips = amountInInventory(player, Items.WOLFBONE_ARROWTIPS_2861) val shafts = amountInInventory(player, Items.FLIGHTED_OGRE_ARROW_2865) diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdDialogues.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdDialogues.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdDialogues.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdDialogues.kt index c83ae0862..e54cf011a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdDialogues.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdDialogues.kt @@ -1,16 +1,16 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* +import core.api.* import org.rs09.consts.NPCs import org.rs09.consts.Items -import rs09.tools.END_DIALOGUE -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.Topic -import rs09.game.content.dialogue.IfTopic -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.dialogue.Topic +import core.game.dialogue.IfTopic +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.tools.RandomFunction import core.plugin.Initializable @@ -20,12 +20,12 @@ import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest @Initializable -class RantzDialogue(player: Player? = null) : DialoguePlugin(player) { +class RantzDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun getIds() : IntArray { return intArrayOf(NPCs.RANTZ_1010) } - override fun newInstance(player: Player?) : DialoguePlugin { + override fun newInstance(player: Player?) : core.game.dialogue.DialoguePlugin { return RantzDialogue(player) } @@ -54,37 +54,37 @@ class RantzDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(componentId: Int, buttonId: Int) : Boolean { when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Creature done good, cooking da chompy. Maybe you wants a free hatsie? Rantz got lots of hatsies for chompy shooters.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Creature done good, cooking da chompy. Maybe you wants a free hatsie? Rantz got lots of hatsies for chompy shooters.").also { stage++ } 1 -> options("What are these 'hatsies'?", "Okay, show me your 'hatsies'.", "No thanks.").also { stage++ } 2 -> when(buttonId) { - 1 -> playerl(FacialExpression.FRIENDLY, "What are these 'hatsies'?").also { stage = 3 } - 2 -> playerl(FacialExpression.FRIENDLY, "Okay, show me your 'hatsies'.").also { stage = 100 } - 3 -> playerl(FacialExpression.FRIENDLY, "No thanks.").also { stage = END_DIALOGUE } + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "What are these 'hatsies'?").also { stage = 3 } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Okay, show me your 'hatsies'.").also { stage = 100 } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = END_DIALOGUE } } - 3 -> npcl(FacialExpression.OLD_NORMAL, "Creature stupid? Hatsies to wear on head, make you look good. Huh huh huh.").also { stage++ } - 4 -> playerl(FacialExpression.FRIENDLY, "Ah, I see, you're offering me hats.").also { stage++ } - 5 -> npcl(FacialExpression.OLD_NORMAL, "Dat's what Rantz said. You want hatsies or not?").also { stage = 1 } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Creature stupid? Hatsies to wear on head, make you look good. Huh huh huh.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Ah, I see, you're offering me hats.").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dat's what Rantz said. You want hatsies or not?").also { stage = 1 } 100 -> { val hasBow = inInventory(player, Items.OGRE_BOW_2883) || inEquipment(player, Items.OGRE_BOW_2883) if (!hasBow) { - npcl(FacialExpression.OLD_NORMAL, "Stupid creature. Me need bow to see how many chompy creature kill. Bring bow.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Stupid creature. Me need bow to see how many chompy creature kill. Bring bow.") stage = 200 return true } val hats = ChompyHat.getApplicableHats(player) if (hats.isEmpty()) { - npcl(FacialExpression.OLD_NORMAL, "Sorry, creature, no hatsies for you. Come back when kill more chompy.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Sorry, creature, no hatsies for you. Come back when kill more chompy.") } else { val spaces = freeSlots(player) if (spaces < hats.size) { for (i in 0 until spaces) addItem(player, hats[i]) - npcl(FacialExpression.OLD_NORMAL, "There all hats you can fit, creature. Come back when have more room for hatsies.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "There all hats you can fit, creature. Come back when have more room for hatsies.") } else { for (hat in hats) addItem(player, hat) - npcl(FacialExpression.OLD_NORMAL, "There all hats, creature. Come back when kill more chompy. Unless you kill all chompy already.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "There all hats, creature. Come back when kill more chompy. Unless you kill all chompy already.") } } stage = END_DIALOGUE @@ -95,15 +95,15 @@ class RantzDialogue(player: Player? = null) : DialoguePlugin(player) { Topic("Okay.", END_DIALOGUE) ) - 201 -> npcl(FacialExpression.OLD_NORMAL, "Yes, creature?").also { stage++ } - 202 -> playerl(FacialExpression.HALF_GUILTY, "I lost my bow.").also { stage++ } - 203 -> npcl(FacialExpression.OLD_NORMAL, "Haha! Stupid creature! That okay, me can sell new one.").also { stage++ } - 204 -> playerl(FacialExpression.FRIENDLY, "Really? How much?").also { stage++ } - 205 -> npcl(FacialExpression.OLD_NORMAL, "Hmm.. let me think...").also { stage++ } + 201 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Yes, creature?").also { stage++ } + 202 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I lost my bow.").also { stage++ } + 203 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Haha! Stupid creature! That okay, me can sell new one.").also { stage++ } + 204 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Really? How much?").also { stage++ } + 205 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hmm.. let me think...").also { stage++ } 206 -> { val cost = RandomFunction.random(500,550) setAttribute(player, "/save:chompybird:new-bow-cost", cost) - npcl(FacialExpression.OLD_NORMAL, "Me think $cost shiny coins be ok.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Me think $cost shiny coins be ok.") stage++ } @@ -112,15 +112,15 @@ class RantzDialogue(player: Player? = null) : DialoguePlugin(player) { "Okay.", 208, amountInInventory(player, Items.COINS_995) >= getAttribute(player, "chompybird:new-bow-cost", 500) ), - Topic("No thank you...", END_DIALOGUE) + Topic("No thank you...", END_DIALOGUE) ) 208 -> { if (removeItem(player, Item(Items.COINS_995, getAttribute(player, "chompybird:new-bow-cost", 500)))) { addItemOrDrop(player, Items.OGRE_BOW_2883) - npcl(FacialExpression.OLD_NORMAL, "There you go, creature, now hunt chompy.") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "There you go, creature, now hunt chompy.") } else { - playerl(FacialExpression.FRIENDLY, "Actually, I can't afford it right now.") + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Actually, I can't afford it right now.") } stage = END_DIALOGUE } @@ -130,12 +130,12 @@ class RantzDialogue(player: Player? = null) : DialoguePlugin(player) { } @Initializable -class BugsDialogue(player: Player? = null) : DialoguePlugin(player) { +class BugsDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun getIds() : IntArray { return intArrayOf(NPCs.BUGS_1012) } - override fun newInstance(player: Player?) : DialoguePlugin { + override fun newInstance(player: Player?) : core.game.dialogue.DialoguePlugin { return BugsDialogue(player) } @@ -160,12 +160,12 @@ class BugsDialogue(player: Player? = null) : DialoguePlugin(player) { } @Initializable -class FycieDialogue(player: Player? = null) : DialoguePlugin(player) { +class FycieDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun getIds() : IntArray { return intArrayOf(NPCs.FYCIE_1011) } - override fun newInstance(player: Player?) : DialoguePlugin { + override fun newInstance(player: Player?) : core.game.dialogue.DialoguePlugin { return FycieDialogue(player) } @@ -192,7 +192,7 @@ class FycieDialogue(player: Player? = null) : DialoguePlugin(player) { class BugsChompyBirdDialogue(val quest: Quest) : DialogueFile() { override fun handle(componentId: Int, buttonId: Int) { when (quest.getStage(player)) { - in 0 until 20 -> npcl(FacialExpression.OLD_NORMAL, "You's better talk to Dad, him chasey sneaky da chompy.").also { stage = END_DIALOGUE } + in 0 until 20 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "You's better talk to Dad, him chasey sneaky da chompy.").also { stage = END_DIALOGUE } in 20 until 70 -> handleBellowsDialogue(player, buttonId) in 70 until 90 -> handleIngredientDialogue(player, buttonId) } @@ -201,14 +201,14 @@ class BugsChompyBirdDialogue(val quest: Quest) : DialogueFile() { private fun handleBellowsDialogue(player: Player?, buttonId: Int) { when(stage) { 0 -> playerl("Rantz said that you play with the fatsy toadies, what are they?").also { stage++ } - 1 -> npcl(FacialExpression.OLD_NORMAL, "Oh, we sometimes use da blower on da toadies but Dad don't let us get in da locked box no more. He he it was good fun making da toadies fat on da swamp gas.").also { stage = END_DIALOGUE } + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Oh, we sometimes use da blower on da toadies but Dad don't let us get in da locked box no more. He he it was good fun making da toadies fat on da swamp gas.").also { stage = END_DIALOGUE } } } private fun handleIngredientDialogue(player: Player?, buttonId: Int) { val bugsIngredient = getAttribute(player!!, ChompyBird.ATTR_ING_BUGS, -1) when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Dad say's you's making da chompy for us! Slurp! Me's has to have ${getItemName(bugsIngredient)} wiv mine! Chompy is our favourite yummms!").also { stage = END_DIALOGUE } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dad say's you's making da chompy for us! Slurp! Me's has to have ${getItemName(bugsIngredient)} wiv mine! Chompy is our favourite yummms!").also { stage = END_DIALOGUE } } setAttribute(player!!, ChompyBird.ATTR_BUGS_ASKED, true) } @@ -217,7 +217,7 @@ class BugsChompyBirdDialogue(val quest: Quest) : DialogueFile() { class FycieChompyBirdDialogue(val quest: Quest) : DialogueFile() { override fun handle(componentId: Int, buttonId: Int) { when (quest.getStage(player)) { - in 0 until 70 -> npcl(FacialExpression.OLD_NORMAL, "You's better talk to Dad, We not talk to wierdly 'umans.").also { stage = END_DIALOGUE } + in 0 until 70 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "You's better talk to Dad, We not talk to wierdly 'umans.").also { stage = END_DIALOGUE } in 70 until 90 -> handleIngredientDialogue(player, buttonId) } } @@ -225,7 +225,7 @@ class FycieChompyBirdDialogue(val quest: Quest) : DialogueFile() { private fun handleIngredientDialogue(player: Player?, buttonId: Int) { val fycieIngredient = getAttribute(player!!, ChompyBird.ATTR_ING_FYCIE, -1) when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Dad say's you's roasting da chompy for us! Slurp! Me's wants ${getItemName(fycieIngredient)} wiv mine! Yummy can't wait to eats it.").also { stage = END_DIALOGUE } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dad say's you's roasting da chompy for us! Slurp! Me's wants ${getItemName(fycieIngredient)} wiv mine! Yummy can't wait to eats it.").also { stage = END_DIALOGUE } } setAttribute(player!!, ChompyBird.ATTR_FYCIE_ASKED, true) } @@ -247,7 +247,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { private fun handleQuestStartDialogue(player: Player?, buttonId: Int) { when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Hey you creature! Make some stabbers! I wanna hunt da chompy?").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey you creature! Make some stabbers! I wanna hunt da chompy?").also { stage++ } 1 -> options("What are 'stabbers'?", "What's a 'chompy'?", "Ok, I’ll make you some 'stabbers'.", "Er, make your own 'stabbers'!").also { stage++ } 2 -> when(buttonId) { 1 -> playerl("What are 'stabbers'?").also { stage = 3 } @@ -255,14 +255,14 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { 3 -> playerl("Ok, I'll make you some 'stabbers'.").also { stage = 10 } 4 -> playerl("Er, make your own 'stabbers'!").also { stage = END_DIALOGUE } } - 3 -> npcl(FacialExpression.OLD_NORMAL, "For da stabbie chucker, I's wanna hunt da chompy! Creature knows what Rantz wants... ...flyin' to stabbie da chompy!").also { stage++ } - 4 -> npcl(FacialExpression.OLD_NORMAL, "The ogre shows you a huge but crude bow and then starts to nod energetically in an effort to help you understand.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "For da stabbie chucker, I's wanna hunt da chompy! Creature knows what Rantz wants... ...flyin' to stabbie da chompy!").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "The ogre shows you a huge but crude bow and then starts to nod energetically in an effort to help you understand.").also { stage++ } 5 -> playerl("I think I understand. You want me to make some arrows for you?").also { stage++ } - 6 -> npcl(FacialExpression.OLD_NORMAL, "Yeah, is what Rantz sayed, make da stabbers for da stabby chucker!").also { stage = 1 } - 7 -> npcl(FacialExpression.OLD_NORMAL, "Da chompy is der bestest yummies for Rantz, Fycie and Bugs! We's looking for da yummies all da time. Da chompy is a big flapper, Rantz want's stabbers to sneaky, sneaky, stick da chompy.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Yeah, is what Rantz sayed, make da stabbers for da stabby chucker!").also { stage = 1 } + 7 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Da chompy is der bestest yummies for Rantz, Fycie and Bugs! We's looking for da yummies all da time. Da chompy is a big flapper, Rantz want's stabbers to sneaky, sneaky, stick da chompy.").also { stage++ } 8 -> playerl("Ah, so 'da chompy' is some kind of bird?").also { stage++ } - 9 -> npcl(FacialExpression.OLD_NORMAL, "Yeah, is what Rantz sayed, Da chompy is da big flapper and is bestest yummies. But Rantz needs stabbers to stick da chompy... Will creatures make dem stabbers for us?").also {stage = 1 } - 10 -> npcl(FacialExpression.OLD_NORMAL, "Good you creature, you need sticksies from achey tree and stabbies from dog bones.").also { stage = END_DIALOGUE; quest.start(player) } + 9 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Yeah, is what Rantz sayed, Da chompy is da big flapper and is bestest yummies. But Rantz needs stabbers to stick da chompy... Will creatures make dem stabbers for us?").also {stage = 1 } + 10 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Good you creature, you need sticksies from achey tree and stabbies from dog bones.").also { stage = END_DIALOGUE; quest.start(player) } } } @@ -270,27 +270,27 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { val hasArrows = amountInInventory(player!!, Items.OGRE_ARROW_2866) > 0 when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Hey you creature... Have you made me da stabbers? I wanna stick da chompy?").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey you creature... Have you made me da stabbers? I wanna stick da chompy?").also { stage++ } 1 -> { if (!hasArrows) { playerl("Er not exactly?").also { stage++ } } else { - playerl(FacialExpression.ANNOYED, "Well, yes actually, as you asked so nicely. Here you go! Here's your 'stabbers'.") + playerl(core.game.dialogue.FacialExpression.ANNOYED, "Well, yes actually, as you asked so nicely. Here you go! Here's your 'stabbers'.") stage = 100 } } - 2 -> npcl(FacialExpression.OLD_NORMAL, "You do stabbers quick!...quick!.. Or Rantz make stabbers for Rantz and then practice for chompy sticking on creature!").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "You do stabbers quick!...quick!.. Or Rantz make stabbers for Rantz and then practice for chompy sticking on creature!").also { stage++ } 3 -> options("How do I make the 'stabbers' again?", "Ok, I'll make the 'stabbers' for you.").also { stage++ } 4 -> when(buttonId) { 1 -> playerl("How do I make the 'stabbers' again?").also { stage = 5 } 2 -> playerl("Ok, I'll make the 'stabbers' for you.").also { stage = END_DIALOGUE } } - 5 -> npcl(FacialExpression.OLD_NORMAL, "Grrr creature... you's no good stabber maker! You's make da stabbie bit from da dog bones, and get da sticksies from da Achey tree... simple see! Oh and da flufgies from da flappers as well!").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Grrr creature... you's no good stabber maker! You's make da stabbie bit from da dog bones, and get da sticksies from da Achey tree... simple see! Oh and da flufgies from da flappers as well!").also { stage++ } 6 -> playerl("Oh, so I need logs from the achey tree, bones from a canine... and feather?").also { stage++ } - 7 -> npcl(FacialExpression.OLD_NORMAL, "Is just what Rantz sayed!").also { stage++ } - 8 -> npcl(FacialExpression.OLD_NORMAL, "The hulking ogre nods excitedly.").also { stage = END_DIALOGUE } + 7 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Is just what Rantz sayed!").also { stage++ } + 8 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "The hulking ogre nods excitedly.").also { stage = END_DIALOGUE } 100 -> { sendItemDialogue(player!!, Item(Items.OGRE_ARROW_2866, 20), "Rantz takes six ogre arrows off you.") @@ -299,7 +299,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { } 101 -> { - npcl(FacialExpression.OLD_NORMAL, "Ahh, der creature has dem...goodly, goodly. Now us can stick der chompy bird...") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Ahh, der creature has dem...goodly, goodly. Now us can stick der chompy bird...") stage = 4 //Skips to "How do we make the chompsys come?" in the dialogue below quest.setStage(player, 20) } @@ -310,8 +310,8 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { val hasToads = amountInInventory(player!!, Items.BLOATED_TOAD_2875) > 0 when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Hey you creature you still here?").also { stage++ } - 1 -> npcl(FacialExpression.OLD_NORMAL, "Da chompy still not coming! We need da fatsy toady to get da chompy, do you got it? Do you got da fatsy toady? Then we can sneaky, sneaky stick da chompy.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey you creature you still here?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Da chompy still not coming! We need da fatsy toady to get da chompy, do you got it? Do you got da fatsy toady? Then we can sneaky, sneaky stick da chompy.").also { stage++ } 2 -> { if (hasToads) { playerl("Yes, I have a 'fatsy toady' for you, here look!") @@ -320,7 +320,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { playerl("No I haven't got the 'fatsy toady' yet!").also { stage++ } } } - 3 -> npcl(FacialExpression.OLD_NORMAL, "Dat's a pidy... but maybe Rantz can help da creature?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dat's a pidy... but maybe Rantz can help da creature?").also { stage++ } 4 -> options("How do we make the chompys come?", "What are 'fatsy toadies'?", "Where do we put the fatsy toadies?", "What do you mean 'sneaky..sneaky.. stick da chompy?'", "Ok, thanks.").also { stage++ } 5 -> when(buttonId) { 1 -> playerl("How do we make the chompys come?").also { stage = 6 } @@ -329,16 +329,16 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { 4 -> playerl("What do you mean 'sneaky..sneaky.. stick da chompy?'").also { stage = 12 } 5 -> playerl("Ok, thanks.").also { stage = END_DIALOGUE } } - 6 -> npcl(FacialExpression.OLD_NORMAL, "Chompys love da fatsy toadies. Toadies get big on der swamp gas and der chomys are licking der lips for em as me is licking lips for da chompy. Da chompys don't like da smaller toadies from nearby swampy.").also { stage++ } - 7 -> npcl(FacialExpression.OLD_NORMAL, "Dey's fussie eaters like Rantz. Fycie an Bugs play with toadies and blower dey's all times making fatsy toadies.").also { stage = 4 } - 8 -> npcl(FacialExpression.OLD_NORMAL, "Fatsy toadies are da chompy burds bestest yumms. But da toadies here are too small for da chompy. You've godda make da toadies big and round!").also { stage = 4 } - 9 -> npcl(FacialExpression.OLD_NORMAL, "Over der!").also { stage++ } - 10 -> npcl(FacialExpression.OLD_NORMAL, "The ogre points to a small clearing to da south.").also { stage++ } - 11 -> npcl(FacialExpression.OLD_NORMAL, "Ok creature? You got dat? Over here by der no tree's place.").also { stage = 4 } - 12 -> npcl(FacialExpression.OLD_NORMAL, "Duh! You creature is a bit stoopid yes? Us needs to sneaky, sneaky.. and stick da chompy! Den we can eat da chompy!").also { stage = 4 } + 6 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Chompys love da fatsy toadies. Toadies get big on der swamp gas and der chomys are licking der lips for em as me is licking lips for da chompy. Da chompys don't like da smaller toadies from nearby swampy.").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dey's fussie eaters like Rantz. Fycie an Bugs play with toadies and blower dey's all times making fatsy toadies.").also { stage = 4 } + 8 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Fatsy toadies are da chompy burds bestest yumms. But da toadies here are too small for da chompy. You've godda make da toadies big and round!").also { stage = 4 } + 9 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Over der!").also { stage++ } + 10 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "The ogre points to a small clearing to da south.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Ok creature? You got dat? Over here by der no tree's place.").also { stage = 4 } + 12 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Duh! You creature is a bit stoopid yes? Us needs to sneaky, sneaky.. and stick da chompy! Den we can eat da chompy!").also { stage = 4 } 100 -> sendItemDialogue(player!!, Items.BLOATED_TOAD_2875, "You show the bloated toad to Rantz. He nods with approval.").also { stage++ } - 101 -> npcl(FacialExpression.OLD_NORMAL, "Dat's a good fatsy toady, now we's need to put it for da chompy to come.").also { stage++ } + 101 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dat's a good fatsy toady, now we's need to put it for da chompy to come.").also { stage++ } 102 -> { playerl("Where do I put the 'fatsy toadies'?").also { stage++ } quest.setStage(player, 30) @@ -348,7 +348,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { } private fun handlePlaceToadsiesDialogue(player: Player?, buttonId: Int) { - npcl(FacialExpression.OLD_NORMAL, "Over 'dere creature, put da toadies over der! ~ The ogre points to a clearing to the south. ~") + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Over 'dere creature, put da toadies over der! ~ The ogre points to a clearing to the south. ~") clearHintIcon(player!!) registerHintIcon(player!!, ChompyBird.TOAD_LOCATION, 5) //TODO: ADD OFFSETS WHEN WE UNFUCK ARIOS'S MISTAKES, YEET stage = END_DIALOGUE @@ -357,9 +357,9 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { private fun handlePlacedBaitDialogue(player: Player?, buttonId: Int) { when(stage) { 0 -> playerl("There you go, I've placed the bait.").also { stage++ } - 1 -> npcl(FacialExpression.OLD_NORMAL, "Goodz me now waits for da chompy! It shouldn't be long now. Sneaky...sneaky...").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Goodz me now waits for da chompy! It shouldn't be long now. Sneaky...sneaky...").also { stage++ } 2 -> playerl("Yes, I know...stick da chompy!").also { stage++ } - 3 -> npcl(FacialExpression.OLD_NORMAL, "Hey.. you's creature, is da fatsy toady still dere? Go get more fatsy toadies if dey all gone!").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey.. you's creature, is da fatsy toady still dere? Go get more fatsy toadies if dey all gone!").also { stage++ } 4 -> playerl("What? I have to get more bait if there's none there? Does this Chompy Bird even exist I wonder?").also { stage = END_DIALOGUE } } } @@ -367,19 +367,19 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { private fun handleRantzSucksDialogue(player: Player?, buttonId: Int) { when(stage) { 0 -> playerl("Hey there, you keep missing the chompy bird.").also { stage++ } - 1 -> npcl(FacialExpression.OLD_NORMAL, "I knows, I keeps missing... because your stabbers are worserer at flying than a dead dog.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "I knows, I keeps missing... because your stabbers are worserer at flying than a dead dog.").also { stage++ } 2 -> options("Oh, keep trying then... you might hit one through pure luck.", "Come on, let me have a go...").also { stage++ } 3 -> when(buttonId) { 1 -> playerl("Oh, keep trying then... you might hit one through pure luck.").also { stage = END_DIALOGUE } 2 -> playerl("Come on, let me have a go...").also { stage = 4 } } - 4 -> npcl(FacialExpression.OLD_NORMAL, "No, is Rantz stabby thrower... you too weedy...").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "No, is Rantz stabby thrower... you too weedy...").also { stage++ } 5 -> options("I'm actually quite strong... please let me try.", "Oh suit yourself, you'll just have to go hungry.").also { stage++ } 6 -> when(buttonId) { 1 -> playerl("I'm actually quite strong... please let me try.").also { stage = 7 } 2 -> playerl("Oh suit yourself, you'll just have to go hungry.").also { stage = END_DIALOGUE } } - 7 -> npcl(FacialExpression.OLD_NORMAL, "Oh, ok... I lend you other stabby thrower... but creature don't better cry when it hurts itself.").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Oh, ok... I lend you other stabby thrower... but creature don't better cry when it hurts itself.").also { stage++ } 8 -> { sendItemDialogue(player!!, Items.OGRE_BOW_2883, "Rantz hands over an ogre bow. It's huge! You can barely drawn back the string!") addItemOrDrop(player!!, Items.OGRE_BOW_2883) @@ -396,7 +396,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { val rantzIngredient = getAttribute(player, ChompyBird.ATTR_ING_RANTZ, -1) when(stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Hey You! Got da chompy yet?").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey You! Got da chompy yet?").also { stage++ } 1 -> { if (hasChompyBird) { playerl("Yep, here's your chompy Bird!") @@ -405,14 +405,14 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { playerl("Not yet!").also { stage++ } } } - 2 -> npcl(FacialExpression.OLD_NORMAL, "Well hurry up and get some, we is hungry!").also { stage = END_DIALOGUE } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Well hurry up and get some, we is hungry!").also { stage = END_DIALOGUE } 100 -> sendItemDialogue(player!!, Items.RAW_CHOMPY_2876, "You show Rantz the freshly plucked chompy carcass.").also { stage++ } - 101 -> npcl(FacialExpression.OLD_NORMAL, "Dat's a great chompy, you musta got a lucky shot wiv da stabbie chucker.").also { stage++ } - 102 -> npcl(FacialExpression.OLD_NORMAL, "Okay's now you's needs to cook da chompy! Slurp! You's can cook it's over der! ~Rantz points to a nearby spit roast.~").also { stage++ } - 103 -> npcl(FacialExpression.OLD_NORMAL, "But's we's particular about our chompy yumms. Me's wants ${getItemName(rantzIngredient)} wiv mine! Fycie and Bugs want something wiv der's as well, go and ask 'em wat dey want.").also { stage++ } + 101 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Dat's a great chompy, you musta got a lucky shot wiv da stabbie chucker.").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Okay's now you's needs to cook da chompy! Slurp! You's can cook it's over der! ~Rantz points to a nearby spit roast.~").also { stage++ } + 103 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "But's we's particular about our chompy yumms. Me's wants ${getItemName(rantzIngredient)} wiv mine! Fycie and Bugs want something wiv der's as well, go and ask 'em wat dey want.").also { stage++ } 104 -> playerl("What! Now I've got the chompy bird, you expect me to cook it as well?").also { stage++ } - 105 -> npcl(FacialExpression.OLD_NORMAL, "Yep, da spit's over der! Last time Rantz did yummies, got very bad, did bad things to food.. and belly.").also { stage++ } + 105 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Yep, da spit's over der! Last time Rantz did yummies, got very bad, did bad things to food.. and belly.").also { stage++ } 106 -> { playerl("HUH!").also { stage = END_DIALOGUE } quest.setStage(player, 70) @@ -424,7 +424,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { val hasCookedChompy = amountInInventory(player!!, Items.SEASONED_CHOMPY_2882) > 0 when (stage) { - 0 -> npcl(FacialExpression.OLD_NORMAL, "Hey You! Cook da chompy yet?").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey You! Cook da chompy yet?").also { stage++ } 1 -> { if (hasCookedChompy) { playerl("Yep, here you go, here's your cooked chompy bird.") @@ -433,11 +433,11 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { playerl("Not yet!").also { stage++ } } } - 2 -> npcl(FacialExpression.OLD_NORMAL, "Well hurry up, we is hungry!").also { stage = END_DIALOGUE } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Well hurry up, we is hungry!").also { stage = END_DIALOGUE } 100 -> sendItemDialogue(player!!, Items.SEASONED_CHOMPY_2882, "You hand over the cooked chompy bird to Rantz.").also { stage++ } - 101 -> npcl(FacialExpression.OLD_NORMAL, "Hey hey! We got da delicious chompy bird Yay! This looks really tasty as well!").also { stage++ } - 102 -> npcl(FacialExpression.OLD_NORMAL, "Tank's very much for da chompy... Fycie an Bugs like very much da chompy yumms!").also { stage++ } + 101 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Hey hey! We got da delicious chompy bird Yay! This looks really tasty as well!").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Tank's very much for da chompy... Fycie an Bugs like very much da chompy yumms!").also { stage++ } 103 -> sendDialogue(player, "~The family of ogres sit down together~").also { stage++ } 104 -> sendDialogue(player, "~and enjoy your well cooked chompy bird.~").also { stage++ } 105 -> playerl("It's my pleasure!").also { stage = END_DIALOGUE; quest.finish(player) } @@ -454,7 +454,7 @@ class RantzChompyBirdDialogue(val quest: Quest) : DialogueFile() { Items.CABBAGE_1965 ) - setAttribute(player, ChompyBird.ATTR_ING_RANTZ, possibleIngredients.random().also { possibleIngredients.remove(it) }) + setAttribute(player, ChompyBird.ATTR_ING_RANTZ, possibleIngredients.random().also { possibleIngredients.remove(it) }) setAttribute(player, ChompyBird.ATTR_ING_BUGS, possibleIngredients.random().also { possibleIngredients.remove(it) }) setAttribute(player, ChompyBird.ATTR_ING_FYCIE, possibleIngredients.random().also { possibleIngredients.remove(it) }) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdNPC.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdNPC.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdNPC.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdNPC.kt index bfccf8391..8f0b000ed 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyBirdNPC.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyBirdNPC.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* +import core.api.* import org.rs09.consts.NPCs import org.rs09.consts.Items @@ -21,8 +21,8 @@ import core.game.node.entity.combat.CombatStyle import core.game.world.map.Location import core.game.world.map.path.Pathfinder import core.game.interaction.MovementPulse -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import core.game.world.update.flag.context.Animation @Initializable @@ -144,12 +144,12 @@ class ChompyBirdNPC : AbstractNPC, InteractionListener { sendMessage(killer, "You scratch a notch on your bow for the chompy bird kill.") val old = killer.getAttribute("chompy-kills", 0) killer.setAttribute("/save:chompy-kills", old + 1) - ChompyHat.checkForNewRank(killer) + ChompyHat.checkForNewRank(killer) } } override fun defineListeners() { - on(NPCs.CHOMPY_BIRD_1016, IntType.NPC, "pluck") { player, node -> + on(NPCs.CHOMPY_BIRD_1016, IntType.NPC, "pluck") { player, node -> val bird = node.asNpc() if (!bird.getAttribute("plucked", false)) { @@ -164,7 +164,7 @@ class ChompyBirdNPC : AbstractNPC, InteractionListener { return@on true } - on(Items.OGRE_BOW_2883, IntType.ITEM, "check kills") { player, _ -> + on(Items.OGRE_BOW_2883, IntType.ITEM, "check kills") { player, _ -> val amount = player.getAttribute("chompy-kills", 0) sendDialogue(player, "You have killed $amount chompy birds.") return@on true diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyHat.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyHat.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyHat.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyHat.kt index ab61ce40b..7e09f0025 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/ChompyHat.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/ChompyHat.kt @@ -1,12 +1,11 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* -import rs09.tools.stringtools.colorize +import core.api.* +import core.tools.colorize import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener import core.game.node.entity.player.Player import java.util.* @@ -59,7 +58,7 @@ enum class ChompyHat(val id: Int, val kills: Int, val rankName: String) { class ChompyEquipListener : InteractionListener { override fun defineListeners() { - ChompyHat.values().forEach { hat -> + ChompyHat.values().forEach { hat -> onEquip(hat.id) {player, node -> val kills = getAttribute(player, "chompy-kills", 0) if (kills < hat.kills) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/RantzNPC.kt b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/RantzNPC.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/RantzNPC.kt rename to Server/src/main/content/region/kandarin/feldip/quest/chompybird/RantzNPC.kt index 6e4204f7a..94173377d 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/chompybird/RantzNPC.kt +++ b/Server/src/main/content/region/kandarin/feldip/quest/chompybird/RantzNPC.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.chompybird +package content.region.kandarin.feldip.quest.chompybird -import api.* +import core.api.* import org.rs09.consts.NPCs diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneJrDialogue.kt b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneJrDialogue.kt similarity index 63% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneJrDialogue.kt rename to Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneJrDialogue.kt index cc586fe23..d9accfee9 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneJrDialogue.kt +++ b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneJrDialogue.kt @@ -1,23 +1,23 @@ -package rs09.game.content.dialogue.region.grandtree +package content.region.kandarin.gnomestronghold.dialogue +import content.minigame.gnomecooking.GC_BASE_ATTRIBUTE +import content.minigame.gnomecooking.GC_TUT_PROG import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable -import rs09.game.content.activity.gnomecooking.GC_BASE_ATTRIBUTE -import rs09.game.content.activity.gnomecooking.GC_TUT_PROG @Initializable -class AluftGianneJrDialogue(player: Player? = null) : DialoguePlugin(player) { +class AluftGianneJrDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var tutorialStage = -1 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AluftGianneJrDialogue(player) } override fun npc(vararg messages: String?): Component { - return super.npc(FacialExpression.OLD_NORMAL,*messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } override fun open(vararg args: Any?): Boolean { @@ -33,7 +33,7 @@ class AluftGianneJrDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> npc("Sure, go talk to my dad. I'll put","a good word in!").also { stage++ } - 1 -> player(FacialExpression.THINKING,"Th-thanks...?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.THINKING,"Th-thanks...?").also { stage++ } 2 -> { end() player.setAttribute("/save:$GC_BASE_ATTRIBUTE:$GC_TUT_PROG",0) diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneSnrDialogue.kt b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneSnrDialogue.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneSnrDialogue.kt rename to Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneSnrDialogue.kt index dc004249d..8d0c10ecf 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/AluftGianneSnrDialogue.kt +++ b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/AluftGianneSnrDialogue.kt @@ -1,8 +1,7 @@ -package rs09.game.content.dialogue.region.grandtree +package content.region.kandarin.gnomestronghold.dialogue +import content.minigame.gnomecooking.* import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item @@ -11,9 +10,8 @@ import core.plugin.Initializable import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.Items -import rs09.game.content.activity.gnomecooking.* -import rs09.game.world.GameWorld -import rs09.tools.stringtools.colorize +import core.game.world.GameWorld +import core.tools.colorize import java.util.concurrent.TimeUnit val gnomeItems = arrayOf( @@ -24,16 +22,16 @@ Items.SHORT_GREEN_GUY_9510,Items.BLURBERRY_SPECIAL_9520,Items.PINEAPPLE_PUNCH_95 val ALUFT_ALOFT_BOX = Item(Items.ALUFT_ALOFT_BOX_9477) @Initializable -class AluftGianneSnrDialogue(player: Player? = null) : DialoguePlugin(player) { +class AluftGianneSnrDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var tutorialProgress = -1 var tutorialComplete = false - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AluftGianneSnrDialogue(player) } override fun npc(vararg messages: String?): Component { - return super.npc(FacialExpression.OLD_NORMAL,*messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } override fun open(vararg args: Any?): Boolean { @@ -66,9 +64,9 @@ class AluftGianneSnrDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> player(FacialExpression.HAPPY,"Yes, how do I get started?").also { stage++ } + 0 -> player(core.game.dialogue.FacialExpression.HAPPY,"Yes, how do I get started?").also { stage++ } 1 -> npc("Well first thing's first I need to teach","you how to cook!").also { stage++ } - 2 -> player(FacialExpression.THINKING,"But I already-").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.THINKING,"But I already-").also { stage++ } 3 -> npc("Stop whatever it is you're saying, no one knows","how to cook gnome food except gnomes!").also { stage++ } 4 -> player("Alright, go on...").also{stage++} 5 -> npc("Alright, first thing I want you to do is","make me a toad batta. Here's all the","ingredients, now get to work!").also { stage++ } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/BlurberryDialogue.kt b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/BlurberryDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/BlurberryDialogue.kt rename to Server/src/main/content/region/kandarin/gnomestronghold/dialogue/BlurberryDialogue.kt index c81c6aa0c..83c544994 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/grandtree/BlurberryDialogue.kt +++ b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/BlurberryDialogue.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.grandtree +package content.region.kandarin.gnomestronghold.dialogue -import core.game.content.dialogue.DialoguePlugin +import content.minigame.gnomecooking.GC_BASE_ATTRIBUTE +import content.minigame.gnomecooking.GC_TUT_FIN +import content.minigame.gnomecooking.GC_TUT_PROG +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.content.activity.gnomecooking.GC_BASE_ATTRIBUTE -import rs09.game.content.activity.gnomecooking.GC_TUT_FIN -import rs09.game.content.activity.gnomecooking.GC_TUT_PROG @Initializable class BlurberryDialogue(player: Player? = null): DialoguePlugin(player) { diff --git a/Server/src/main/java/core/game/content/dialogue/GnomeTrainerPlugin.java b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/GnomeTrainerPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/GnomeTrainerPlugin.java rename to Server/src/main/content/region/kandarin/gnomestronghold/dialogue/GnomeTrainerPlugin.java index 1cc5945e7..8549ba948 100644 --- a/Server/src/main/java/core/game/content/dialogue/GnomeTrainerPlugin.java +++ b/Server/src/main/content/region/kandarin/gnomestronghold/dialogue/GnomeTrainerPlugin.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.gnomestronghold.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java b/Server/src/main/content/region/kandarin/gnomestronghold/handlers/GnomeStrongholdPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java rename to Server/src/main/content/region/kandarin/gnomestronghold/handlers/GnomeStrongholdPlugin.java index 88116c5b6..3356cca1f 100644 --- a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java +++ b/Server/src/main/content/region/kandarin/gnomestronghold/handlers/GnomeStrongholdPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.city; +package content.region.kandarin.gnomestronghold.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; @@ -11,7 +11,7 @@ import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.path.Pathfinder; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java b/Server/src/main/content/region/kandarin/guilds/FishingGuild.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/guild/FishingGuild.java rename to Server/src/main/content/region/kandarin/guilds/FishingGuild.java index 93802cf69..673f6158d 100644 --- a/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java +++ b/Server/src/main/content/region/kandarin/guilds/FishingGuild.java @@ -1,10 +1,10 @@ -package core.game.content.activity.guild; +package content.region.kandarin.guilds; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.Skillcape; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; diff --git a/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java b/Server/src/main/content/region/kandarin/guilds/WizardGuildPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java rename to Server/src/main/content/region/kandarin/guilds/WizardGuildPlugin.java index 27edf9020..7cec187ec 100644 --- a/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java +++ b/Server/src/main/content/region/kandarin/guilds/WizardGuildPlugin.java @@ -1,12 +1,12 @@ -package core.game.content.activity.guild; +package content.region.kandarin.guilds; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.Skillcape; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -16,7 +16,7 @@ import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.travel.EssenceTeleport; +import content.global.travel.EssenceTeleport; /** * Represents the wizard guild plugin. diff --git a/Server/src/main/java/core/game/interaction/object/BeehivePlugin.java b/Server/src/main/content/region/kandarin/handlers/BeehivePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/BeehivePlugin.java rename to Server/src/main/content/region/kandarin/handlers/BeehivePlugin.java index b2edb87a7..3308b3e2a 100644 --- a/Server/src/main/java/core/game/interaction/object/BeehivePlugin.java +++ b/Server/src/main/content/region/kandarin/handlers/BeehivePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.kandarin.handlers; import core.cache.def.impl.SceneryDefinition; import org.rs09.consts.Items; @@ -8,7 +8,7 @@ import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/RasoloNPC.java b/Server/src/main/content/region/kandarin/handlers/RasoloNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/RasoloNPC.java rename to Server/src/main/content/region/kandarin/handlers/RasoloNPC.java index 8d38342ad..b75407700 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/RasoloNPC.java +++ b/Server/src/main/content/region/kandarin/handlers/RasoloNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.other; +package content.region.kandarin.handlers; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java b/Server/src/main/content/region/kandarin/handlers/SinclairFlourBarrelPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java rename to Server/src/main/content/region/kandarin/handlers/SinclairFlourBarrelPlugin.java index 6d16c483d..a3b5ecd46 100644 --- a/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java +++ b/Server/src/main/content/region/kandarin/handlers/SinclairFlourBarrelPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.kandarin.handlers; import core.cache.def.impl.SceneryDefinition; import org.rs09.consts.Items; @@ -12,7 +12,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** diff --git a/Server/src/main/kotlin/rs09/game/content/zone/StoneCircleZone.kt b/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/zone/StoneCircleZone.kt rename to Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt index a7267e77e..f1a3ae2c8 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/StoneCircleZone.kt +++ b/Server/src/main/content/region/kandarin/handlers/StoneCircleZone.kt @@ -1,4 +1,4 @@ -package rs09.game.content.zone +package content.region.kandarin.handlers import core.game.node.entity.Entity import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piscatoris/ArnoldLydsporDialogue.kt b/Server/src/main/content/region/kandarin/pisc/dialogue/ArnoldLydsporDialogue.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/piscatoris/ArnoldLydsporDialogue.kt rename to Server/src/main/content/region/kandarin/pisc/dialogue/ArnoldLydsporDialogue.kt index 297aa798c..cb048284c 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piscatoris/ArnoldLydsporDialogue.kt +++ b/Server/src/main/content/region/kandarin/pisc/dialogue/ArnoldLydsporDialogue.kt @@ -1,17 +1,17 @@ -package rs09.game.content.dialogue.region.piscatoris +package content.region.kandarin.pisc.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Provides the regular dialogue for Arnold Lydspor. @@ -20,36 +20,36 @@ import rs09.tools.START_DIALOGUE * @author vddCore */ @Initializable -class ArnoldLydsporDialogue(player: Player? = null) : DialoguePlugin(player) { +class ArnoldLydsporDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Ah, you come back! What you want from Arnold, heh?" ).also { stage++ } 1 -> showTopics( IfTopic( - FacialExpression.ASKING, + core.game.dialogue.FacialExpression.ASKING, "Can you open my bank account, please?", 2, !hasIronmanRestriction(player, IronmanMode.ULTIMATE) ), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to check my bank PIN settings.", 3, !hasIronmanRestriction(player, IronmanMode.ULTIMATE) ), IfTopic( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "I'd like to collect items.", 4, !hasIronmanRestriction(player, IronmanMode.ULTIMATE) ), - Topic(FacialExpression.ASKING, "Would you like to trade?", 5), - Topic(FacialExpression.FRIENDLY, "Nothing, I just came to chat.", 7) + Topic(core.game.dialogue.FacialExpression.ASKING, "Would you like to trade?", 5), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "Nothing, I just came to chat.", 7) ) 2 -> { @@ -68,7 +68,7 @@ class ArnoldLydsporDialogue(player: Player? = null) : DialoguePlugin(player) { } 5 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Ja, I have wide range of stock..." ).also { stage++ } @@ -77,7 +77,7 @@ class ArnoldLydsporDialogue(player: Player? = null) : DialoguePlugin(player) { end() } - 7 -> npcl(FacialExpression.FRIENDLY, + 7 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ah, that is nice - always I like to chat, but " + "Herr Caranos tell me to get back to work! " + "Here, you been nice, so have a present." @@ -93,17 +93,17 @@ class ArnoldLydsporDialogue(player: Player? = null) : DialoguePlugin(player) { } 9 -> playerl( - FacialExpression.HALF_THINKING, + core.game.dialogue.FacialExpression.HALF_THINKING, "A cabbage?" ).also { stage++ } 10 -> npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Ja, cabbage is good for you!" ).also { stage++ } 11 -> playerl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Um... Thanks!" ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/java/core/game/content/dialogue/MathiasFlaconryDialogue.java b/Server/src/main/content/region/kandarin/pisc/dialogue/MathiasFlaconryDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/MathiasFlaconryDialogue.java rename to Server/src/main/content/region/kandarin/pisc/dialogue/MathiasFlaconryDialogue.java index a028320a9..dd3a27bd2 100644 --- a/Server/src/main/java/core/game/content/dialogue/MathiasFlaconryDialogue.java +++ b/Server/src/main/content/region/kandarin/pisc/dialogue/MathiasFlaconryDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.kandarin.pisc.dialogue; import core.game.container.impl.EquipmentContainer; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/SeaweedNetHandler.kt b/Server/src/main/content/region/kandarin/pisc/handlers/SeaweedNetHandler.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/interaction/object/SeaweedNetHandler.kt rename to Server/src/main/content/region/kandarin/pisc/handlers/SeaweedNetHandler.kt index e2d9d9869..b33c40068 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/SeaweedNetHandler.kt +++ b/Server/src/main/content/region/kandarin/pisc/handlers/SeaweedNetHandler.kt @@ -1,15 +1,14 @@ -package rs09.game.interaction.`object` +package content.region.kandarin.pisc.handlers -import api.* -import core.game.node.entity.skill.Skills +import core.api.* import core.game.node.item.Item import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.system.task.Pulse import org.rs09.consts.Animations import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class SeaweedNetHandler : InteractionListener { diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofDialogue.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofDialogue.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java index d1be4ca8f..664a727e5 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofNPC.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofNPC.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofNPC.java index ea462387d..36268288f 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/CaptainLawgofNPC.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/CaptainLawgofNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannon.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannon.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java index 3b6917cac..6e52ee494 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannon.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannon.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.game.node.entity.skill.Skills; /** diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannonPlugin.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannonPlugin.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java index 264e75ffc..1f0f52ffb 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/DwarfCannonPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/DwarfCannonPlugin.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.dialogue.DialogueAction; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueAction; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -16,9 +16,9 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/LollkDialogue.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/LollkDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/LollkDialogue.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/LollkDialogue.java index c1c00777d..11cc1886d 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/LollkDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/LollkDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/NulodionDialogue.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/dwarfcannon/NulodionDialogue.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java index a2c1accd9..b38a3004d 100644 --- a/Server/src/main/java/core/game/content/quest/members/dwarfcannon/NulodionDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/NulodionDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.dwarfcannon; +package content.region.kandarin.quest.dwarfcannon; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCHandler.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCHandler.java index 170b5716a..5dd8a9439 100644 --- a/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCHandler.java @@ -1,6 +1,6 @@ -package core.game.interaction.object.dmc; +package content.region.kandarin.quest.dwarfcannon.dmc; -import api.LogoutListener; +import core.api.LogoutListener; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.impl.Projectile; @@ -17,11 +17,10 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.ZoneRestriction; import core.game.world.update.flag.context.Animation; -import core.plugin.Plugin; import core.tools.RandomFunction; import org.jetbrains.annotations.NotNull; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.world.GameWorld; /** * Handles a player's Dwarf Multi-cannon. diff --git a/Server/src/main/java/core/game/interaction/object/dmc/DMCRevolution.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCRevolution.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/dmc/DMCRevolution.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCRevolution.java index 57af5b3de..ff9f8ceee 100644 --- a/Server/src/main/java/core/game/interaction/object/dmc/DMCRevolution.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCRevolution.java @@ -1,4 +1,4 @@ -package core.game.interaction.object.dmc; +package content.region.kandarin.quest.dwarfcannon.dmc; /** * The DMC aiming directions. diff --git a/Server/src/main/java/core/game/interaction/object/dmc/DMCZone.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCZone.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/dmc/DMCZone.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCZone.java index 193d31d84..7f1327e24 100644 --- a/Server/src/main/java/core/game/interaction/object/dmc/DMCZone.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DMCZone.java @@ -1,4 +1,4 @@ -package core.game.interaction.object.dmc; +package content.region.kandarin.quest.dwarfcannon.dmc; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/interaction/object/dmc/DwarfMultiCannonPlugin.java b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DwarfMultiCannonPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/dmc/DwarfMultiCannonPlugin.java rename to Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DwarfMultiCannonPlugin.java index 92ad615cc..736bb57eb 100644 --- a/Server/src/main/java/core/game/interaction/object/dmc/DwarfMultiCannonPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/dwarfcannon/dmc/DwarfMultiCannonPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object.dmc; +package content.region.kandarin.quest.dwarfcannon.dmc; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -11,7 +11,7 @@ import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the Dwarf multi-cannon. diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/BigDaveDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/BigDaveDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/BigDaveDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/BigDaveDialogue.java index 9623d5585..d677eb5b1 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/BigDaveDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/BigDaveDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/BonzoDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/BonzoDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/BonzoDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/BonzoDialogue.java index f6d6665a9..9a62eb53b 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/BonzoDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/BonzoDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.player.link.quest.QuestRepository; import core.game.node.item.Item; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.activity.ActivityManager; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.dialogue.DialoguePlugin; @Initializable diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/DwarfDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/DwarfDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/DwarfDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/DwarfDialogue.java index 1f3b66bc0..a48682faa 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/DwarfDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/DwarfDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; @Initializable public class DwarfDialogue extends DialoguePlugin { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FenceInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/FenceInteraction.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/FenceInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/FenceInteraction.java index fdca09b3c..bc6f158d8 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FenceInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/FenceInteraction.java @@ -1,17 +1,17 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.Node; import core.game.node.entity.impl.PulseType; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class FenceInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContest.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContest.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContest.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContest.java index 7b413d739..62a62682d 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContest.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContest.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContestCutscene.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContestCutscene.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContestCutscene.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContestCutscene.java index c21102162..b5ea21118 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingContestCutscene.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingContestCutscene.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; @@ -6,15 +6,15 @@ import core.game.node.entity.impl.PulseType; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.map.zone.ZoneBorders; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; @Initializable public class FishingContestCutscene extends CutscenePlugin { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingSpotInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingSpotInteraction.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingSpotInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/FishingSpotInteraction.java index 4bf4dfa4b..c9449afdb 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/FishingSpotInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/FishingSpotInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.interaction.Option; @@ -8,9 +8,9 @@ import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.dialogue.FacialExpression; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class FishingSpotInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/ForesterDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/ForesterDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/ForesterDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/ForesterDialogue.java index ae49b472e..0815774f0 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/ForesterDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/ForesterDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/GarlicPipeInteraction.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/GarlicPipeInteraction.java index 5ce5871c1..27ad753db 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/GarlicPipeInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.interaction.NodeUsageEvent; @@ -11,8 +11,8 @@ import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; import org.rs09.consts.Items; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class GarlicPipeInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GateInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/GateInteraction.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/GateInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/GateInteraction.java index 041d20b03..96829b11d 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GateInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/GateInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.Node; @@ -7,8 +7,8 @@ import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class GateInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/JoshuaDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/JoshuaDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/JoshuaDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/JoshuaDialogue.java index 1bdf638a6..40a26dd25 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/JoshuaDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/JoshuaDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/MorrisDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/MorrisDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/MorrisDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/MorrisDialogue.java index af0684b99..1c145b1c3 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/MorrisDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/MorrisDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; @Initializable public final class MorrisDialogue extends DialoguePlugin { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/SinisterStrangerDialogue.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/SinisterStrangerDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/SinisterStrangerDialogue.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/SinisterStrangerDialogue.java index ef09b148a..bd3e90e63 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/SinisterStrangerDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/SinisterStrangerDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** * Handles the SinisterStrangerDialogue dialogue. diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/StairInteraction.java similarity index 90% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/StairInteraction.java index 9adf450c1..60b103359 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/StairInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.Node; @@ -8,8 +8,8 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class StairInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/VineInteraction.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/VineInteraction.java index b9eb4956c..50d7e4a53 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/VineInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.Node; @@ -8,8 +8,8 @@ import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; -import core.game.content.quest.PluginInteraction; -import core.game.content.quest.PluginInteractionManager; +import core.game.interaction.PluginInteraction; +import core.game.interaction.PluginInteractionManager; @Initializable public class VineInteraction extends PluginInteraction { diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/grandpaJack.java b/Server/src/main/content/region/kandarin/quest/fishingcontest/grandpaJack.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/fishingcontest/grandpaJack.java rename to Server/src/main/content/region/kandarin/quest/fishingcontest/grandpaJack.java index cb2198ea6..2a89313ac 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/grandpaJack.java +++ b/Server/src/main/content/region/kandarin/quest/fishingcontest/grandpaJack.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.fishingcontest; +package content.region.kandarin.quest.fishingcontest; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** * Represents the dialogue plugin used for the grandpaJack npc. diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/BallistaDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/BallistaDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/BallistaDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/BallistaDialogue.kt index 662882752..f4f477d60 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/BallistaDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/BallistaDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.api.* +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class BallistaDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/CommanderMontaiDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/CommanderMontaiDialogue.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/CommanderMontaiDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/CommanderMontaiDialogue.kt index 5639664e4..7a4541651 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/CommanderMontaiDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/CommanderMontaiDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class CommanderMontaiDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/ElkoyDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/ElkoyDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/ElkoyDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/ElkoyDialogue.kt index 14a3ce9b3..135a7e179 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/ElkoyDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/ElkoyDialogue.kt @@ -1,19 +1,18 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.mazeEntrance -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.mazeVillage -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.questName -import rs09.game.world.GameWorld.Pulser -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeVillage +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.questName +import core.game.world.GameWorld.Pulser +import core.tools.END_DIALOGUE class ElkoyDialogue : DialogueFile(){ fun travelCutscene(player: Player, location: Location){ diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordDialogue.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordDialogue.kt index ac85b7fb9..1e1f3c715 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordDialogue.kt @@ -1,12 +1,12 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.questStage -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.api.questStage +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class KhazardWarlordDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { - val questStage = questStage(player!!,TreeGnomeVillage.questName) + val questStage = questStage(player!!, TreeGnomeVillage.questName) if(questStage == 31){ when(stage) { 0 -> playerl("Hello there.").also { stage++ } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordNPC.kt b/Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordNPC.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordNPC.kt rename to Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordNPC.kt index 79a0690e2..526acfc06 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KhazardWarlordNPC.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/KhazardWarlordNPC.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.addItemOrDrop -import api.questStage -import api.sendDialogue +import core.api.addItemOrDrop +import core.api.questStage +import core.api.sendDialogue import core.game.node.entity.Entity import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.player.Player @@ -10,8 +10,7 @@ import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener @Initializable class KhazardWarlordNPC(id: Int = 0, location: Location? = null) : AbstractNPC(id,location), InteractionListener { @@ -28,7 +27,7 @@ class KhazardWarlordNPC(id: Int = 0, location: Location? = null) : AbstractNPC(i } override fun finalizeDeath(killer: Entity?) { - if(questStage(killer as Player,TreeGnomeVillage.questName) == 40) { + if(questStage(killer as Player, TreeGnomeVillage.questName) == 40) { sendDialogue(killer,"As the warlord falls to the ground, a ghostly vapour floats upwards from his battle-worn armour. You search his satchel and find the orbs of protection.") addItemOrDrop(killer, Items.ORBS_OF_PROTECTION_588) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KingBolrenDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/KingBolrenDialogue.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/KingBolrenDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/KingBolrenDialogue.kt index 309cf6165..f0cd48ed2 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/KingBolrenDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/KingBolrenDialogue.kt @@ -1,20 +1,17 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* -import core.game.component.Component -import core.game.node.entity.player.Player +import core.api.* import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation -import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.mazeEntrance -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.questName -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.questName +import core.game.world.GameWorld +import core.tools.END_DIALOGUE class KingBolrenDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/LieutenantSchepburDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/LieutenantSchepburDialogue.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/LieutenantSchepburDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/LieutenantSchepburDialogue.kt index 67b91b05f..7f29582d1 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/LieutenantSchepburDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/LieutenantSchepburDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class LieutenantSchepburDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/LocalGnomeDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/LocalGnomeDialogue.kt similarity index 72% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/LocalGnomeDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/LocalGnomeDialogue.kt index 1ab3ea2da..b78813553 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/LocalGnomeDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/LocalGnomeDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class LocalGnomeDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/RemsaiDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/RemsaiDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/RemsaiDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/RemsaiDialogue.kt index 57a4a8845..dc1ac4c7e 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/RemsaiDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/RemsaiDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.inInventory -import api.questStage +import core.api.inInventory +import core.api.questStage import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class RemsaiDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeOneDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeOneDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeOneDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeOneDialogue.kt index 3430defe5..fb84466a1 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeOneDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeOneDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class TrackerGnomeOneDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeThreeDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeThreeDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeThreeDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeThreeDialogue.kt index 987606362..8c1776707 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeThreeDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeThreeDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.api.* +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class TrackerGnomeThreeDialogue : DialogueFile(){ diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeTwoDialogue.kt b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeTwoDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeTwoDialogue.kt rename to Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeTwoDialogue.kt index a84f31c24..88dfce52b 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TrackerGnomeTwoDialogue.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/TrackerGnomeTwoDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE class TrackerGnomeTwoDialogue : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillage.kt b/Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillage.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillage.kt rename to Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillage.kt index fa2ed8995..cccce11d8 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillage.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillage.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.addItemOrDrop -import api.inInventory +import core.api.addItemOrDrop +import core.api.inInventory import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillageListeners.kt b/Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillageListeners.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillageListeners.kt rename to Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillageListeners.kt index 4afd351a3..f3d6254d6 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tree/TreeGnomeVillageListeners.kt +++ b/Server/src/main/content/region/kandarin/quest/tree/TreeGnomeVillageListeners.kt @@ -1,12 +1,10 @@ -package rs09.game.content.quest.members.tree +package content.region.kandarin.quest.tree -import api.* -import core.game.content.global.action.DoorActionHandler -import core.game.node.Node +import core.api.* import core.game.node.entity.impl.ForceMovement import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.agility.AgilityHandler +import content.global.skill.agility.AgilityHandler import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.system.task.Pulse @@ -16,12 +14,12 @@ import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.mazeEntrance -import rs09.game.content.quest.members.tree.TreeGnomeVillage.Companion.mazeVillage -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.dialogue.DialogueFile +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeEntrance +import content.region.kandarin.quest.tree.TreeGnomeVillage.Companion.mazeVillage +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld class TreeGnomeVillageListeners : InteractionListener { private val ballista = 2181 @@ -125,11 +123,11 @@ class TreeGnomeVillageListeners : InteractionListener { } on(strongholdDoor, IntType.SCENERY, "open"){ player, node -> if(player.location.y >= 3251){ - DoorActionHandler.handleAutowalkDoor(player, node as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node as Scenery) } return@on true } - on(NPCs.LIEUTENANT_SCHEPBUR_3817, IntType.NPC, "talk-to"){player, node -> + on(NPCs.LIEUTENANT_SCHEPBUR_3817, IntType.NPC, "talk-to"){ player, node -> openDialogue(player, LieutenantSchepburDialogue(),node) return@on true } diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/AlmeraDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/AlmeraDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/AlmeraDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/AlmeraDialogue.java index 739f73716..91285e36d 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/AlmeraDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/AlmeraDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/BookOnBaxtorianPlugin.java b/Server/src/main/content/region/kandarin/quest/waterfall/BookOnBaxtorianPlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/BookOnBaxtorianPlugin.java rename to Server/src/main/content/region/kandarin/quest/waterfall/BookOnBaxtorianPlugin.java index b6577572b..635425717 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/BookOnBaxtorianPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/BookOnBaxtorianPlugin.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.book.Book; -import core.game.content.dialogue.book.BookLine; -import core.game.content.dialogue.book.Page; -import core.game.content.dialogue.book.PageSet; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/GolrieDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/GolrieDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/GolrieDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/GolrieDialogue.java index 133503c71..f16af0ea8 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/GolrieDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/GolrieDialogue.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; /** * Handles Golrie's Dialogue for the Waterfall quest diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/HadleyDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/HadleyDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/HadleyDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/HadleyDialogue.java index d3a51e5e3..919a031dc 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/HadleyDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/HadleyDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles Almera's Dialogue for the Waterfall Quest. diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/HudonDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/HudonDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/HudonDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/HudonDialogue.java index cebc27e7c..5e59576fe 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/HudonDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/HudonDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsDialogue.java index 5e5a95020..509b3cfb3 100644 --- a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsDialogue.java @@ -1,11 +1,12 @@ -package core.game.content.dialogue; +package content.region.kandarin.quest.waterfall; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.game.world.update.flag.player.FaceLocationFlag; diff --git a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java b/Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java rename to Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsPlugin.java index a9a300f21..565e45593 100644 --- a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/MithrilSeedsPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package content.region.kandarin.quest.waterfall; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; @@ -8,7 +8,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.player.FaceLocationFlag; diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterFall.java b/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterFall.java rename to Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java index fd6387b5b..7fcc50d38 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterFall.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/WaterFall.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The main type for the waterfall quest. diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/waterfall/WaterfallListeners.kt b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallListeners.kt similarity index 56% rename from Server/src/main/kotlin/rs09/game/content/quest/members/waterfall/WaterfallListeners.kt rename to Server/src/main/content/region/kandarin/quest/waterfall/WaterfallListeners.kt index 05eed9761..eb99eef08 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/waterfall/WaterfallListeners.kt +++ b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallListeners.kt @@ -1,22 +1,22 @@ -package rs09.game.content.quest.members.waterfall +package content.region.kandarin.quest.waterfall import core.game.world.map.Location import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType -class WaterfallListeners : InteractionListener{ +class WaterfallListeners : InteractionListener { val HUDON = NPCs.HUDON_305 override fun defineListeners() { - on(HUDON, IntType.NPC, "talk-to"){player, node -> + on(HUDON, IntType.NPC, "talk-to"){ player, node -> player.dialogueInterpreter.open(HUDON,node.asNpc()) return@on true } } override fun defineDestinationOverrides() { - setDest(IntType.NPC,HUDON){_,_ -> + setDest(IntType.NPC,HUDON){ _, _ -> return@setDest Location.create(2512, 3481, 0) } } diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java rename to Server/src/main/content/region/kandarin/quest/waterfall/WaterfallPlugin.java index 4818bcb45..9f31ed13e 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; import java.util.ArrayList; import java.util.List; @@ -6,10 +6,10 @@ import java.util.List; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.agility.AgilityHandler; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -26,7 +26,7 @@ import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import kotlin.Unit; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Master plugin file for the Waterfall quest. diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallTreeDialogue.java b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallTreeDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallTreeDialogue.java rename to Server/src/main/content/region/kandarin/quest/waterfall/WaterfallTreeDialogue.java index 1b7bd1271..54b39a043 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallTreeDialogue.java +++ b/Server/src/main/content/region/kandarin/quest/waterfall/WaterfallTreeDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.waterfallquest; +package content.region.kandarin.quest.waterfall; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/dialogue/CamelotGuardDialogue.java b/Server/src/main/content/region/kandarin/seers/dialogue/CamelotGuardDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/CamelotGuardDialogue.java rename to Server/src/main/content/region/kandarin/seers/dialogue/CamelotGuardDialogue.java index 2cab50764..d8f856276 100644 --- a/Server/src/main/java/core/game/content/dialogue/CamelotGuardDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/dialogue/CamelotGuardDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.seers.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/FionellaDialogue.kt b/Server/src/main/content/region/kandarin/seers/dialogue/FionellaDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/FionellaDialogue.kt rename to Server/src/main/content/region/kandarin/seers/dialogue/FionellaDialogue.kt index f5ed2f5f3..fbdc2faa7 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/FionellaDialogue.kt +++ b/Server/src/main/content/region/kandarin/seers/dialogue/FionellaDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.legendsguild +package content.region.kandarin.seers.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FionellaDialogue(player: Player? = null) : DialoguePlugin(player){ +class FionellaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } return true } @@ -30,15 +30,15 @@ class FionellaDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } } 2 -> { - player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } } } - 10 -> npc(FacialExpression.FRIENDLY, "Take a look.").also { stage = 100 } + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Take a look.").also { stage = 100 } 99 -> end() 100 -> end().also { npc.openShop(player) } @@ -46,7 +46,7 @@ class FionellaDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FionellaDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/seersvillage/GeoffreyDialogue.kt b/Server/src/main/content/region/kandarin/seers/dialogue/GeoffreyDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/seersvillage/GeoffreyDialogue.kt rename to Server/src/main/content/region/kandarin/seers/dialogue/GeoffreyDialogue.kt index 76128e88f..944e3c7df 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/seersvillage/GeoffreyDialogue.kt +++ b/Server/src/main/content/region/kandarin/seers/dialogue/GeoffreyDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.seersvillage +package content.region.kandarin.seers.dialogue import core.Util -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item @@ -9,7 +9,7 @@ import core.plugin.Initializable import org.rs09.consts.Items @Initializable -class GeoffreyDialogue(player: Player? = null) : DialoguePlugin(player) { +class GeoffreyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { val diary = player.achievementDiaryManager.getDiary(DiaryType.SEERS_VILLAGE) if (diary.levelRewarded.any()) { @@ -38,7 +38,7 @@ class GeoffreyDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GeoffreyDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java b/Server/src/main/content/region/kandarin/seers/dialogue/IgnatiusVulcanDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java rename to Server/src/main/content/region/kandarin/seers/dialogue/IgnatiusVulcanDialogue.java index aec85e33c..2d5a75762 100644 --- a/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/dialogue/IgnatiusVulcanDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.seers.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; import core.game.node.entity.skill.Skills; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; @@ -8,7 +9,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/content/region/kandarin/seers/dialogue/LegendsGuardDialogue.kt b/Server/src/main/content/region/kandarin/seers/dialogue/LegendsGuardDialogue.kt new file mode 100644 index 000000000..c12725198 --- /dev/null +++ b/Server/src/main/content/region/kandarin/seers/dialogue/LegendsGuardDialogue.kt @@ -0,0 +1,47 @@ +package content.region.kandarin.seers.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * Dialogue for Legends Guards at the Legends Guild + * @author qmqz + */ +@Initializable +class LegendsGuardDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + fun gender (male : String = "sir", female : String = "madam") = if (player.isMale) male else female + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"! ! ! Attention ! ! !") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Legends Guild Member Approaching").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome "+ gender() + "!", "I hope you enjoy your time in the Legends Guild.").also { stage = 99 } + + //while doing legend's quest + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"I hope the quest is going well " + gender() + ".").also { stage = 99 } + + //after the legend's quest is done + 20 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Legends Guild Member Approaching!").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LegendsGuardDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(398, 399) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/PhantuwtiFantstuwiFarSight.java b/Server/src/main/content/region/kandarin/seers/dialogue/PhantuwtiFantstuwiFarSight.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/PhantuwtiFantstuwiFarSight.java rename to Server/src/main/content/region/kandarin/seers/dialogue/PhantuwtiFantstuwiFarSight.java index f5fcd18ef..95155b718 100644 --- a/Server/src/main/java/core/game/content/dialogue/PhantuwtiFantstuwiFarSight.java +++ b/Server/src/main/content/region/kandarin/seers/dialogue/PhantuwtiFantstuwiFarSight.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.seers.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SeerBartenderDialogue.java b/Server/src/main/content/region/kandarin/seers/dialogue/SeerBartenderDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SeerBartenderDialogue.java rename to Server/src/main/content/region/kandarin/seers/dialogue/SeerBartenderDialogue.java index 492bd93f2..d55659f43 100644 --- a/Server/src/main/java/core/game/content/dialogue/SeerBartenderDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/dialogue/SeerBartenderDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.seers.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/SeerDialoguePlugin.java b/Server/src/main/content/region/kandarin/seers/dialogue/SeerDialoguePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/SeerDialoguePlugin.java rename to Server/src/main/content/region/kandarin/seers/dialogue/SeerDialoguePlugin.java index febf6bddc..327e2e4d4 100644 --- a/Server/src/main/java/core/game/content/dialogue/SeerDialoguePlugin.java +++ b/Server/src/main/content/region/kandarin/seers/dialogue/SeerDialoguePlugin.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.seers.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/SeersVillageAchivementDiary.kt b/Server/src/main/content/region/kandarin/seers/diary/SeersVillageAchivementDiary.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/SeersVillageAchivementDiary.kt rename to Server/src/main/content/region/kandarin/seers/diary/SeersVillageAchivementDiary.kt index 9e1c034ac..b2e7eb072 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/SeersVillageAchivementDiary.kt +++ b/Server/src/main/content/region/kandarin/seers/diary/SeersVillageAchivementDiary.kt @@ -1,7 +1,6 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.kandarin.seers.diary -import api.* -import api.events.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item @@ -9,11 +8,11 @@ import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items import org.rs09.consts.NPCs -import org.rs09.consts.Scenery -import rs09.game.interaction.inter.FairyRing -import rs09.game.interaction.item.withnpc.PoisonChaliceOnKingArthurDialogue -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel +import content.global.handlers.iface.FairyRing +import content.global.handlers.item.withnpc.PoisonChaliceOnKingArthurDialogue +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel +import core.game.event.* class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) { companion object { @@ -98,7 +97,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) progressIncrementalTask( player, DiaryLevel.HARD, - HardTasks.CUT_5_YEW_LOGS, + HardTasks.CUT_5_YEW_LOGS, ATTRIBUTE_CUT_YEW_COUNT, 5 ) @@ -109,7 +108,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.EASY, - EasyTasks.CATCH_MACKEREL + EasyTasks.CATCH_MACKEREL ) } @@ -117,7 +116,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) fulfillTaskRequirement( player, DiaryLevel.MEDIUM, - MediumTasks.CATHERBY_CATCH_AND_COOK_BASS, + MediumTasks.CATHERBY_CATCH_AND_COOK_BASS, ATTRIBUTE_BASS_CAUGHT ) } @@ -127,7 +126,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CATHERBY_CATCH_AND_COOK_BASS + MediumTasks.CATHERBY_CATCH_AND_COOK_BASS ) } } @@ -136,7 +135,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) progressIncrementalTask( player, DiaryLevel.HARD, - HardTasks.CATHERBY_CATCH_5_SHARKS, + HardTasks.CATHERBY_CATCH_5_SHARKS, ATTRIBUTE_SHARK_CAUGHT_COUNT, 5 ) @@ -147,7 +146,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) progressIncrementalTask( player, DiaryLevel.HARD, - HardTasks.CATHERBY_COOK_5_SHARKS_WITH_COOKING_GAUNTLETS, + HardTasks.CATHERBY_COOK_5_SHARKS_WITH_COOKING_GAUNTLETS, ATTRIBUTE_SHARK_COOKED_COUNT, 5 ) @@ -163,7 +162,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) progressFlaggedTask( player, DiaryLevel.MEDIUM, - MediumTasks.DEFEAT_EACH_ELEMENTAL_TYPE, + MediumTasks.DEFEAT_EACH_ELEMENTAL_TYPE, ATTRIBUTE_ELEMENTAL_KILL_FLAGS, 1 shl (event.npc.id - NPCs.FIRE_ELEMENTAL_1019), 0xF @@ -174,7 +173,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) progressFlaggedTask( player, DiaryLevel.MEDIUM, - MediumTasks.RANGING_GUILD_KILL_EACH_TOWER_GUARD, + MediumTasks.RANGING_GUILD_KILL_EACH_TOWER_GUARD, ATTRIBUTE_ARCHER_KILL_FLAGS, /* Thanks for sequential NPC IDs, Jagex! */ 1 shl (event.npc.id - NPCs.TOWER_ARCHER_688), @@ -191,7 +190,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.HARD, - HardTasks.RANGING_GUILD_TELEPORT + HardTasks.RANGING_GUILD_TELEPORT ) } } @@ -205,7 +204,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.HARD, - HardTasks.LIGHT_MAGIC_LOG + HardTasks.LIGHT_MAGIC_LOG ) } } @@ -220,7 +219,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.TRANSPORT_FULL_LOAD_OF_COAL + MediumTasks.TRANSPORT_FULL_LOAD_OF_COAL ) } } @@ -235,7 +234,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.EASY, - EasyTasks.TAKE_POISON_TO_KING_ARTHUR + EasyTasks.TAKE_POISON_TO_KING_ARTHUR ) } } @@ -251,7 +250,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) fulfillTaskRequirement( player, DiaryLevel.MEDIUM, - MediumTasks.TRANSPORT_FULL_LOAD_OF_COAL, + MediumTasks.TRANSPORT_FULL_LOAD_OF_COAL, ATTRIBUTE_COAL_TRUCK_FULL ) } @@ -265,7 +264,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.HARD, - HardTasks.HIGH_ALCH_MAGIC_SHORTBOW_INSIDE_BANK + HardTasks.HIGH_ALCH_MAGIC_SHORTBOW_INSIDE_BANK ) } } @@ -276,7 +275,7 @@ class SeersVillageAchivementDiary : DiaryEventHookBase(DiaryType.SEERS_VILLAGE) finishTask( player, DiaryLevel.HARD, - HardTasks.DIAL_FAIRY_RING_MCGRUBORS_WOOD + HardTasks.DIAL_FAIRY_RING_MCGRUBORS_WOOD ) } } diff --git a/Server/src/main/java/core/game/interaction/object/BuyCrateOptionPlugin.java b/Server/src/main/content/region/kandarin/seers/handlers/BuyCrateOptionPlugin.java similarity index 84% rename from Server/src/main/java/core/game/interaction/object/BuyCrateOptionPlugin.java rename to Server/src/main/content/region/kandarin/seers/handlers/BuyCrateOptionPlugin.java index 5ff264f16..0c9f81ea3 100644 --- a/Server/src/main/java/core/game/interaction/object/BuyCrateOptionPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/handlers/BuyCrateOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.kandarin.seers.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -6,8 +6,8 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.shops.Shops; -import rs09.game.system.config.ShopParser; +import core.game.shops.Shops; +import core.game.system.config.ShopParser; /** * Represents the buy crate option plugin for the seers village city. diff --git a/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java b/Server/src/main/content/region/kandarin/seers/handlers/CamelotNodePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java rename to Server/src/main/content/region/kandarin/seers/handlers/CamelotNodePlugin.java index 8503dc735..cdf3aff78 100644 --- a/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java +++ b/Server/src/main/content/region/kandarin/seers/handlers/CamelotNodePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.kandarin.seers.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/MysteriousStatueZone.kt b/Server/src/main/content/region/kandarin/seers/handlers/MysteriousStatueZone.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/MysteriousStatueZone.kt rename to Server/src/main/content/region/kandarin/seers/handlers/MysteriousStatueZone.kt index 9c1466f45..6d62923fe 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/MysteriousStatueZone.kt +++ b/Server/src/main/content/region/kandarin/seers/handlers/MysteriousStatueZone.kt @@ -1,16 +1,14 @@ -package rs09.game.node.entity.player.diary.seers +package content.region.kandarin.seers.handlers import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.plugin.Initializable import core.game.world.map.zone.MapZone -import core.tools.Vector3d import core.game.node.entity.player.link.diary.DiaryType import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneBuilder import core.plugin.Plugin -import rs09.game.content.activity.blastfurnace.BlastFurnace @Initializable class MysteriousStatueZone : MapZone("mysterious-statue", true), Plugin { diff --git a/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java b/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java rename to Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java index ddf6879c4..5db42eeb0 100644 --- a/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/handlers/RangingGuildPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.guild; +package content.region.kandarin.seers.handlers; import java.util.List; @@ -11,15 +11,15 @@ import core.plugin.Initializable; import org.rs09.consts.Items; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.link.diary.DiaryType; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.Skillcape; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.crafting.TanningProduct; +import content.global.skill.crafting.TanningProduct; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.combat.equipment.Ammunition; diff --git a/Server/src/main/java/core/game/interaction/object/SeersCageUnlockPlugin.java b/Server/src/main/content/region/kandarin/seers/handlers/SeersCageUnlockPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/SeersCageUnlockPlugin.java rename to Server/src/main/content/region/kandarin/seers/handlers/SeersCageUnlockPlugin.java index efbc82d61..8f0f09929 100644 --- a/Server/src/main/java/core/game/interaction/object/SeersCageUnlockPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/handlers/SeersCageUnlockPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.kandarin.seers.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/SeersCourthouseZone.kt b/Server/src/main/content/region/kandarin/seers/handlers/SeersCourthouseZone.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/SeersCourthouseZone.kt rename to Server/src/main/content/region/kandarin/seers/handlers/SeersCourthouseZone.kt index 6b7815479..9fd5ce160 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/diary/seers/SeersCourthouseZone.kt +++ b/Server/src/main/content/region/kandarin/seers/handlers/SeersCourthouseZone.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.player.diary.seers +package content.region.kandarin.seers.handlers -import api.MapArea +import core.api.MapArea import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/BatteredBookHandler.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/BatteredBookHandler.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/BatteredBookHandler.kt rename to Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/BatteredBookHandler.kt index e64501678..d005f60e8 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/BatteredBookHandler.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/BatteredBookHandler.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.elementalworkshop +package content.region.kandarin.seers.quest.elementalworkshop -import api.setQuestStage -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.book.Book -import core.game.content.dialogue.book.Page +import core.api.setQuestStage +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.book.Book +import core.game.dialogue.book.Page import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items @@ -14,7 +14,7 @@ import org.rs09.consts.Items * @author Woah, with love */ @Initializable -class BatteredBookHandler : Book { +class BatteredBookHandler : core.game.dialogue.book.Book { constructor(player: Player?) : super(player, "Book of the elemental shield", Items.BATTERED_BOOK_2886, *EWUtils.PAGES) {} @@ -30,7 +30,7 @@ class BatteredBookHandler : Book { } } - override fun display(set: Array) { + override fun display(set: Array) { player.lock() player.interfaceManager.open(getInterface()) @@ -54,7 +54,7 @@ class BatteredBookHandler : Book { player.unlock() } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return BatteredBookHandler(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWListeners.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWListeners.kt rename to Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt index 6deb89702..fab55b910 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWListeners.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWListeners.kt @@ -1,8 +1,6 @@ -package rs09.game.content.quest.members.elementalworkshop +package content.region.kandarin.seers.quest.elementalworkshop -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.skill.Skills import core.game.node.item.Item @@ -10,15 +8,15 @@ import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.* -import rs09.game.content.quest.members.elementalworkshop.EWUtils.BELLOWS_STATE -import rs09.game.content.quest.members.elementalworkshop.EWUtils.FURNACE_STATE -import rs09.game.content.quest.members.elementalworkshop.EWUtils.LEFT_WATER_CONTROL_STATE -import rs09.game.content.quest.members.elementalworkshop.EWUtils.RIGHT_WATER_CONTROL_STATE -import rs09.game.content.quest.members.elementalworkshop.EWUtils.WATER_WHEEL_STATE -import rs09.game.content.quest.members.elementalworkshop.EWUtils.currentStage -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.SystemLogger +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.BELLOWS_STATE +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.FURNACE_STATE +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.LEFT_WATER_CONTROL_STATE +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.RIGHT_WATER_CONTROL_STATE +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.WATER_WHEEL_STATE +import content.region.kandarin.seers.quest.elementalworkshop.EWUtils.currentStage +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.SystemLogger /** * Listeners for the Elemental Workshop I quest @@ -171,7 +169,7 @@ class EWListeners : InteractionListener { } // Player is allowed to exit without key if (player.location == Location.create(2710, 3496, 0) || player.location == Location.create(2709, 3496, 0)) { - DoorActionHandler.handleAutowalkDoor(player, wall.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, wall.asScenery()) return@on true } // Player does not have battered key in inventory @@ -185,7 +183,7 @@ class EWListeners : InteractionListener { } // Allow player through the wall sendMessage(player, "You use the battered key to open the doors.") - DoorActionHandler.handleAutowalkDoor(player, wall.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, wall.asScenery()) return@on true } @@ -202,7 +200,7 @@ class EWListeners : InteractionListener { if (stage < 6) { sendPlayerDialogue(player, "Now to explore this area thoroughly, to find what " + - "forgotten secrets it contains.", FacialExpression.NEUTRAL) + "forgotten secrets it contains.", core.game.dialogue.FacialExpression.NEUTRAL) setQuestStage(player, "Elemental Workshop I", 7) } return@on true diff --git a/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt new file mode 100644 index 000000000..b065c4040 --- /dev/null +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/EWUtils.kt @@ -0,0 +1,115 @@ +package content.region.kandarin.seers.quest.elementalworkshop + +import core.api.getVarbitValue +import core.game.dialogue.book.BookLine +import core.game.dialogue.book.Page +import core.game.dialogue.book.PageSet +import core.game.node.entity.player.Player +import org.rs09.consts.Vars + +/** + * Utils for the Elemental Workshop I quest + * Book/Varp/Method Utils + * + * @author Woah, with love + */ +object EWUtils { + + // Helpers for the battered/slashed book + /** + * Represents the book id + */ + const val BATTERED_BOOK_ID = 49610760 + const val SLASHED_BOOK_ID = 49610761 + + /** + * Represents the array of pages for this book. + */ + val PAGES = arrayOf( + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Within the pages of this", 55), + core.game.dialogue.book.BookLine("book you will find the", 56), + core.game.dialogue.book.BookLine("secret to working the", 57), + core.game.dialogue.book.BookLine("very elements themselves.", 58), + core.game.dialogue.book.BookLine("Early in the fifth age, a", 59), + core.game.dialogue.book.BookLine("new ore was discovered.", 60), + core.game.dialogue.book.BookLine("This ore has a unique", 61), + core.game.dialogue.book.BookLine("property of absorbing,", 62), + core.game.dialogue.book.BookLine("transforming or focusing", 63), + core.game.dialogue.book.BookLine("elemental energy. A", 64), + core.game.dialogue.book.BookLine("workshop was erected", 65), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("close by to work this new", 66), + core.game.dialogue.book.BookLine("material. The workshop", 67), + core.game.dialogue.book.BookLine("was set up for artisans", 68), + core.game.dialogue.book.BookLine("and inventors to be able", 69), + core.game.dialogue.book.BookLine("to come and create", 70), + core.game.dialogue.book.BookLine("devices made from the", 71), + core.game.dialogue.book.BookLine("unique ore, found only in", 72), + core.game.dialogue.book.BookLine("the village of the Seers.", 73) + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("After some time of", 55), + core.game.dialogue.book.BookLine("successful industry the", 56), + core.game.dialogue.book.BookLine("true power of this ore", 57), + core.game.dialogue.book.BookLine("became apparent, as", 58), + core.game.dialogue.book.BookLine("greater and more", 59), + core.game.dialogue.book.BookLine("powerful weapons were", 60), + core.game.dialogue.book.BookLine("created. Realising the", 61), + core.game.dialogue.book.BookLine("threat this posed, the magi", 62), + core.game.dialogue.book.BookLine("of the time closed down", 63), + core.game.dialogue.book.BookLine("the workshop and bound", 64), + core.game.dialogue.book.BookLine("it under lock and key,", 65) + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("also trying to destroy all", 66), + core.game.dialogue.book.BookLine("knowledge of ", 67), + core.game.dialogue.book.BookLine("manufacturing processes.", 68), + core.game.dialogue.book.BookLine("Yet this book remains and", 69), + core.game.dialogue.book.BookLine("you may still find a way", 70), + core.game.dialogue.book.BookLine("to enter the workshop", 71), + core.game.dialogue.book.BookLine("within this leather bound", 72), + core.game.dialogue.book.BookLine("volume.", 73), + ) + ) + ) + + /* OFFSETS */ + const val LEFT_WATER_CONTROL_STATE = 3 + const val RIGHT_WATER_CONTROL_STATE = 4 + const val WATER_WHEEL_STATE = 5 + const val FURNACE_STATE = 7 + const val BELLOWS_STATE = 9 + + fun leftWaterControlBit(player: Player): Int { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) + } + + fun rightWaterControlBit(player: Player): Int { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) + } + + fun leftWaterControlEnabled(player: Player): Boolean { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) == 1 + } + + fun rightWaterControlEnabled(player: Player): Boolean { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) == 1 + } + + fun waterWheelEnabled(player: Player): Boolean { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE) == 1 + } + + fun bellowsEnabled(player: Player): Boolean { + return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE) == 1 + } + + fun currentStage(player: Player): Int { + return player.questRepository.getStage("Elemental Workshop I") + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalRockNPC.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalRockNPC.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalRockNPC.kt rename to Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalRockNPC.kt index 8e234c011..a1a759eb0 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalRockNPC.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalRockNPC.kt @@ -1,18 +1,18 @@ -package rs09.game.content.quest.members.elementalworkshop +package content.region.kandarin.seers.quest.elementalworkshop -import api.getTool -import api.sendDialogue +import core.api.getTool +import core.api.sendDialogue import core.game.node.entity.Entity import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Npc(s): diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalWorkshopQuest.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalWorkshopQuest.kt rename to Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt index df64d3239..bfa7fdfe3 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/ElementalWorkshopQuest.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/ElementalWorkshopQuest.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.elementalworkshop +package content.region.kandarin.seers.quest.elementalworkshop -import api.Commands -import api.addItem -import api.setAttribute -import api.setVarbit +import core.api.Commands +import core.api.addItem +import core.api.setAttribute +import core.api.setVarbit import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills @@ -11,7 +11,7 @@ import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.Vars -import rs09.game.system.command.Privilege +import core.game.system.command.Privilege /** * Elemental Workshop I diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/SlashedBookHandler.kt b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/SlashedBookHandler.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/SlashedBookHandler.kt rename to Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/SlashedBookHandler.kt index b3a6940d5..afa260d27 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/SlashedBookHandler.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/elementalworkshop/SlashedBookHandler.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.elementalworkshop +package content.region.kandarin.seers.quest.elementalworkshop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.book.Book -import core.game.content.dialogue.book.Page +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.book.Book +import core.game.dialogue.book.Page import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items @@ -13,7 +13,7 @@ import org.rs09.consts.Items * @author Woah, with love */ @Initializable -class SlashedBookHandler : Book { +class SlashedBookHandler : core.game.dialogue.book.Book { constructor(player: Player?) : super(player, "Book of the elemental shield", Items.SLASHED_BOOK_9715, *EWUtils.PAGES) {} constructor() { @@ -24,7 +24,7 @@ class SlashedBookHandler : Book { override fun finish() {} - override fun display(set: Array) { + override fun display(set: Array) { player.lock() player.interfaceManager.open(getInterface()) @@ -48,7 +48,7 @@ class SlashedBookHandler : Book { player.unlock() } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return BatteredBookHandler(player) } diff --git a/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ArheinMCDialogue.kt b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ArheinMCDialogue.kt new file mode 100644 index 000000000..a4d4cf715 --- /dev/null +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ArheinMCDialogue.kt @@ -0,0 +1,29 @@ +package content.region.kandarin.seers.quest.merlinsquest + +import core.game.dialogue.FacialExpression +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE + +/** + * @author lila + */ + +/** + * This class handles dialogue for Arhein for the Merlin's Crystal quest + */ + +class ArheinMCDialogue (val questStage: Int) : DialogueFile() { + override fun handle(componentID: Int, buttonID: Int) { + when (stage) { + START_DIALOGUE -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Can you drop me off on the way down please?").also { stage++ } + 1 -> { + npcl(core.game.dialogue.FacialExpression.ANNOYED,"I don't think Sir Mordred would like that. He wants as few outsiders visiting as possible. I wouldn't want to lose his business.") + val quest = player!!.questRepository.getQuest("Merlin's Crystal") + player!!.questRepository.setStage(quest, 40) + stage = END_DIALOGUE + } + } + } + +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/BeggarDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/BeggarDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/BeggarDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/BeggarDialogue.java index fafb2f487..0c422017d 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/BeggarDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/BeggarDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CandleMakerDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CandleMakerDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/CandleMakerDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CandleMakerDialogue.java index 70092c9f4..a9d3369cf 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CandleMakerDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CandleMakerDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -9,9 +9,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.game.content.global.shops.Shops; -import rs09.game.system.config.ShopParser; -import rs09.plugin.ClassScanner; +import core.game.shops.Shops; +import core.plugin.ClassScanner; /** * Represents the dialogue plugin used to handle the candle maker npc. diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CrateCutscenePlugin.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CrateCutscenePlugin.java index b026b7195..aab24ce71 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/CrateCutscenePlugin.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/KingArthurDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/KingArthurDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/KingArthurDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/KingArthurDialogue.java index 95944860c..694cc4c04 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/KingArthurDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/KingArthurDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import org.rs09.consts.Items; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystal.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystal.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystal.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystal.java index 0fbac8411..1c2a16978 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystal.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystal.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; -import rs09.game.content.quest.members.merlinsquest.TheLadyOfTheLake; -import rs09.plugin.ClassScanner; +import content.region.kandarin.seers.quest.merlinsquest.TheLadyOfTheLake; +import core.plugin.ClassScanner; /** * Represents the merlin's crystal quest. diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalOptionPlugin.java index 431d99244..66a51581b 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalPlugin.java index 825495df7..d6a07c71a 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/MerlinCrystalPlugin.java @@ -1,15 +1,15 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; -import core.game.content.global.action.DropItemHandler; +import core.game.activity.ActivityManager; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; +import core.game.global.action.DropItemHandler; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -23,13 +23,13 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the Merlin's Crystal Dialogue/Interactions. diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/RenegadeKnightDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/RenegadeKnightDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/RenegadeKnightDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/RenegadeKnightDialogue.java index c66a97092..1750d17a9 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/RenegadeKnightDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/RenegadeKnightDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; public class RenegadeKnightDialogue extends DialoguePlugin { public RenegadeKnightDialogue() {} diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirGawainDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirGawainDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirGawainDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirGawainDialogue.java index 65e78b594..c94ab7d0b 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirGawainDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirGawainDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.player.link.quest.Quest; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirKayDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirKayDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirKayDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirKayDialogue.java index c0f75f7ce..14f4bd3ca 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirKayDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirKayDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.quest.Quest; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLancelotDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLancelotDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLancelotDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLancelotDialogue.java index 310f7b2c1..09b3eb285 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLancelotDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLancelotDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.player.link.quest.Quest; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLucan.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLucan.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLucan.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLucan.java index a78534880..9ce08250b 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirLucan.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirLucan.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirMordredNPC.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirMordredNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirMordredNPC.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirMordredNPC.java index d49803fa0..c7ec62b1c 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirMordredNPC.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirMordredNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; @@ -6,7 +6,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirPalomedes.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirPalomedes.java similarity index 92% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirPalomedes.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirPalomedes.java index ff3d47c3d..61420baa8 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/SirPalomedes.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/SirPalomedes.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/TheLadyOfTheLake.kt b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/TheLadyOfTheLake.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/TheLadyOfTheLake.kt rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/TheLadyOfTheLake.kt index c66175559..2489694e0 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/TheLadyOfTheLake.kt +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/TheLadyOfTheLake.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.merlinsquest +package content.region.kandarin.seers.quest.merlinsquest -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType @@ -15,7 +15,7 @@ import org.rs09.consts.Items * @author Splinter * @author pain */ -class TheLadyOfTheLake(player: Player? = null) : DialoguePlugin(player) { +class TheLadyOfTheLake(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any): Boolean { npc = args[0] as NPC @@ -24,7 +24,7 @@ class TheLadyOfTheLake(player: Player? = null) : DialoguePlugin(player) { 0 } else if(player.achievementDiaryManager.getDiary(DiaryType.SEERS_VILLAGE).isComplete(2) && player.equipment.contains(14631,1) && player.equipment.contains(35,1)){ - npcl(FacialExpression.HAPPY,"I am the Lady of the Lake.") + npcl(core.game.dialogue.FacialExpression.HAPPY,"I am the Lady of the Lake.") 110 } else { @@ -49,7 +49,7 @@ class TheLadyOfTheLake(player: Player? = null) : DialoguePlugin(player) { } 3 -> player("Good day.").also { stage = 10000 } } - 100 -> npcl(FacialExpression.HAPPY,"I am the Lady of the Lake.").also { stage = 145 } + 100 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am the Lady of the Lake.").also { stage = 145 } 110 -> player("And I'm-").also { stage++ } 111 -> npc( "You're " + player.name + ". And I see from the sign you", @@ -143,7 +143,7 @@ class TheLadyOfTheLake(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return TheLadyOfTheLake(player) } diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/ThrantaxDialogue.java b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ThrantaxDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/merlinscrystal/ThrantaxDialogue.java rename to Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ThrantaxDialogue.java index 1737c9d5b..fd9b4a68e 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/ThrantaxDialogue.java +++ b/Server/src/main/content/region/kandarin/seers/quest/merlinsquest/ThrantaxDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.merlinscrystal; +package content.region.kandarin.seers.quest.merlinsquest; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/BrotherMaledictDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/BrotherMaledictDialogue.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/BrotherMaledictDialogue.kt rename to Server/src/main/content/region/kandarin/witchhaven/dialogue/BrotherMaledictDialogue.kt index 4ba9409c5..17c70f0bd 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/BrotherMaledictDialogue.kt +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/BrotherMaledictDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.witchaven +package content.region.kandarin.witchhaven.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class BrotherMaledictDialogue(player: Player? = null) : DialoguePlugin(player){ +class BrotherMaledictDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"The blessings of Saradomin be with you child.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"The blessings of Saradomin be with you child.").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class BrotherMaledictDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BrotherMaledictDialogue(player) } diff --git a/Server/src/main/content/region/kandarin/witchhaven/dialogue/CarolineDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/CarolineDialogue.kt new file mode 100644 index 000000000..86ca9527d --- /dev/null +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/CarolineDialogue.kt @@ -0,0 +1,41 @@ +package content.region.kandarin.witchhaven.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class CarolineDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello again.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Hello traveller, how are you?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Not bad thanks, yourself?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm good. Busy as always looking after Kent and Kennith but no complaints.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CarolineDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CAROLINE_696) + } +} diff --git a/Server/src/main/content/region/kandarin/witchhaven/dialogue/ColONiallDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/ColONiallDialogue.kt new file mode 100644 index 000000000..9ed6feb21 --- /dev/null +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/ColONiallDialogue.kt @@ -0,0 +1,56 @@ +package content.region.kandarin.witchhaven.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Does not take quest into consideration + */ + +@Initializable +class ColONiallDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Hello. What can I do for you?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, I'm just wondering what you're doing.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "A spot of fishing.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "That doesn't look much like a fishing rod.").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "That my friend, depends on what you're fishing for.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "And what would that be?").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "A little of this, a little of that; the usual things.").also { stage++ } + 7 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Have you caught much?").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "The odd bite here and there. Hmm.").also { stage++ } + 9 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What?").also { stage++ } + 10 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You look like a capable lad. Tell you what, when you've got a bit more experience under your belt, get yourself over to Falador.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What's in Falador?").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "An old friend of mine. You'll find him sitting on a bench in Falador Park. See what he can do for you.").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What's his name? Who should I say sent me?").also { stage++ } + 14 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "None of that matters if you can find him and if you're ready my name isn't necessary.").also { stage++ } + 15 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Oh right. I'll get going then. Goodbye.").also { stage++ } + 16 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Goodbye and good luck.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ColONiallDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.COL_ONIALL_4872) + } +} diff --git a/Server/src/main/content/region/kandarin/witchhaven/dialogue/EzekialLovecraftDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/EzekialLovecraftDialogue.kt new file mode 100644 index 000000000..4d3ab3772 --- /dev/null +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/EzekialLovecraftDialogue.kt @@ -0,0 +1,64 @@ +package content.region.kandarin.witchhaven.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Does not take quests into consideration + */ + +@Initializable +class EzekialLovecraftDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Well hello there; welcome to our little village. Pray, stay awhile.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("What do you do here?", "Can I buy some fishing supplies please?", "You are a bit too strange for me. Bye.").also { stage++ } + + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What do you do here?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Can I buy some fishing supplies please?").also { stage = 25 } + 3 -> player(core.game.dialogue.FacialExpression.ANNOYED, "You are a bit too strange for me. Bye.").also { stage = 30 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I supply the local fishermen with the tools and bait they need to do their job.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Interesting. Have you been doing it long?").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Why yes, all of my life. I took over from my father, who inherited the business from his father and so on. In fact, there have been Lovecraft's selling bait for over ten generations.").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Wow, that's some lineage.").also { stage++ } + 14 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Oh yes, we have a long and interesting family history. For one reason or another the Lovecraft's have always been bait sellers or writers.").also { stage++ } + 15 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hmm, yes well. I'm sure it's all fascinating, but I...").also { stage++ } + 16 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Oh very, very fascinating, for instance my great grandfather Howard...").also { stage++ } + 17 -> playerl(core.game.dialogue.FacialExpression.HALF_ROLLING_EYES, "Yawn. Oh, I'm sorry but I really must be getting on. I think my giraffe needs feeding.").also { stage++ } + 18 -> npc(core.game.dialogue.FacialExpression.HALF_ASKING, "Your?").also { stage++ } + 19 -> playerl(core.game.dialogue.FacialExpression.ANNOYED, "Giraffe. Sorry, but he gets cranky without enough sugar. Bye now!").also { stage++ } + 20 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Oh right, goodbye.").also { stage = 99 } + + 25 -> end().also { npc.openShop(player) } + + 30 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Sniff. Yes, everyone says that.").also { stage = 99 } + + + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return EzekialLovecraftDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.EZEKIAL_LOVECRAFT_4856) + } +} diff --git a/Server/src/main/content/region/kandarin/witchhaven/dialogue/HolgartDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/HolgartDialogue.kt new file mode 100644 index 000000000..83c827b9f --- /dev/null +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/HolgartDialogue.kt @@ -0,0 +1,43 @@ +package content.region.kandarin.witchhaven.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class HolgartDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + fun gender (male : String = "sir", female : String = "madam") = if (player.isMale) male else female + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Well hello " + gender() + ", beautiful day isn't it?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Not bad I suppose.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Just smell that sea air... beautiful.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Hmm... lovely...").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return HolgartDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.HOLGART_4866) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/JebDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/JebDialogue.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/JebDialogue.kt rename to Server/src/main/content/region/kandarin/witchhaven/dialogue/JebDialogue.kt index 78315cc95..c750ebf71 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/JebDialogue.kt +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/JebDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.witchaven +package content.region.kandarin.witchhaven.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class JebDialogue(player: Player? = null) : DialoguePlugin(player){ +class JebDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Hello there.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class JebDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return JebDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/MayorHobbDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/MayorHobbDialogue.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/MayorHobbDialogue.kt rename to Server/src/main/content/region/kandarin/witchhaven/dialogue/MayorHobbDialogue.kt index b3f8982c0..d1367e81e 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/MayorHobbDialogue.kt +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/MayorHobbDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.witchaven +package content.region.kandarin.witchhaven.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class MayorHobbDialogue(player: Player? = null) : DialoguePlugin(player){ +class MayorHobbDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY,"Well hello there; welcome to our little village. Pray, stay awhile.").also { stage = 99 } + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Well hello there; welcome to our little village. Pray, stay awhile.").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class MayorHobbDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MayorHobbDialogue(player) } diff --git a/Server/src/main/content/region/kandarin/witchhaven/dialogue/WitchhavenVillageDialogue.kt b/Server/src/main/content/region/kandarin/witchhaven/dialogue/WitchhavenVillageDialogue.kt new file mode 100644 index 000000000..68f9b6d42 --- /dev/null +++ b/Server/src/main/content/region/kandarin/witchhaven/dialogue/WitchhavenVillageDialogue.kt @@ -0,0 +1,78 @@ +package content.region.kandarin.witchhaven.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class WitchhavenVillageDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + private val conversations = arrayOf (0, 7, 11, 19, 24) + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello there.").also { stage = conversations.random() } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + + 0 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Ye mariners all, as ye pass by,").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Come in and drink if you are dry,").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Come spend, me lads, your money brisk,").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "And pop your nose in a jug of this.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "You're not fooling anyone you know.").also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "We fooled you easily enough.").also { stage = 99 } + + 7 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Free. She is free...").also { stage++ } + 9 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "What?").also { stage++ } + 10 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "The mother is free.").also { stage = 99 } + + 11 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } + 12 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "You! You did it!").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "I didn't mean to!").also { stage++ } + 14 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "You killed him!").also { stage++ } + 15 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "It was an accide... Killed who?").also { stage++ } + 16 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Our Prince, you killed our Prince.").also { stage++ } + 17 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Oh that, yes I did.").also { stage++ } + 18 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Leave us alone.").also { stage = 99 } + + 19 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } + 20 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Soon now... So soon...").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "The stars are almost right.").also { stage++ } + 22 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "For what?").also { stage++ } + 23 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, ". . .").also { stage = 99 } + + 24 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } + 25 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Ahh, our saviour.").also { stage++ } + 26 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Please don't remind me.").also { stage++ } + 27 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Do not worry, soon your regret will be gone.").also { stage++ } + 28 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "If you think you will get to me...").also { stage++ } + 29 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "All in good time.").also { stage = 99 } + + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return WitchhavenVillageDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.WITCHAVEN_VILLAGER_4883, NPCs.WITCHAVEN_VILLAGER_4884, + NPCs.WITCHAVEN_VILLAGER_4885, NPCs.WITCHAVEN_VILLAGER_4886, + NPCs.WITCHAVEN_VILLAGER_4887, NPCs.WITCHAVEN_VILLAGER_4888) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/AleckDialogue.java b/Server/src/main/content/region/kandarin/yanille/dialogue/AleckDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/AleckDialogue.java rename to Server/src/main/content/region/kandarin/yanille/dialogue/AleckDialogue.java index 1111f51c3..9eb3ebeeb 100644 --- a/Server/src/main/java/core/game/content/dialogue/AleckDialogue.java +++ b/Server/src/main/content/region/kandarin/yanille/dialogue/AleckDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.yanille.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FenitasDialogue.java b/Server/src/main/content/region/kandarin/yanille/dialogue/FenitasDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/FenitasDialogue.java rename to Server/src/main/content/region/kandarin/yanille/dialogue/FenitasDialogue.java index 19cac707b..c3f117ace 100644 --- a/Server/src/main/java/core/game/content/dialogue/FenitasDialogue.java +++ b/Server/src/main/content/region/kandarin/yanille/dialogue/FenitasDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.yanille.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LeonDialogue.java b/Server/src/main/content/region/kandarin/yanille/dialogue/LeonDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/LeonDialogue.java rename to Server/src/main/content/region/kandarin/yanille/dialogue/LeonDialogue.java index 04e126753..836b9280a 100644 --- a/Server/src/main/java/core/game/content/dialogue/LeonDialogue.java +++ b/Server/src/main/content/region/kandarin/yanille/dialogue/LeonDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.kandarin.yanille.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MagicStoreDialogue.java b/Server/src/main/content/region/kandarin/yanille/dialogue/MagicStoreDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/MagicStoreDialogue.java rename to Server/src/main/content/region/kandarin/yanille/dialogue/MagicStoreDialogue.java index 911400983..ba13e7c3d 100644 --- a/Server/src/main/java/core/game/content/dialogue/MagicStoreDialogue.java +++ b/Server/src/main/content/region/kandarin/yanille/dialogue/MagicStoreDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.kandarin.yanille.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/zone/YanilleAgilityDungeon.kt b/Server/src/main/content/region/kandarin/yanille/handlers/YanilleAgilityDungeon.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/content/zone/YanilleAgilityDungeon.kt rename to Server/src/main/content/region/kandarin/yanille/handlers/YanilleAgilityDungeon.kt index 47ad28c22..1c26cee2c 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/YanilleAgilityDungeon.kt +++ b/Server/src/main/content/region/kandarin/yanille/handlers/YanilleAgilityDungeon.kt @@ -1,17 +1,12 @@ -package rs09.game.content.zone +package content.region.kandarin.yanille.handlers -import api.* +import core.api.* import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import core.game.content.global.action.ClimbActionHandler +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.agility.AgilityHandler -import core.game.interaction.Option -import core.game.node.Node -import core.game.node.entity.Entity +import content.global.skill.agility.AgilityHandler import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatSpell import core.game.node.entity.combat.CombatStyle import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.player.Player @@ -20,7 +15,7 @@ import core.game.node.item.Item import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.map.zone.MapZone @@ -39,7 +34,7 @@ public class YanilleAgilityDungeonListeners : InteractionListener { override fun defineListeners() { ZoneBuilder.configure(YanilleAgilityDungeon()); - on(1728, IntType.SCENERY, "climb-down") { player, _ -> + on(1728, IntType.SCENERY, "climb-down") { player, _ -> player.teleport(Location(2620, 9565, 0)) return@on true } @@ -57,7 +52,7 @@ public class YanilleAgilityDungeonListeners : InteractionListener { return@on true } val loc = if (target.id == 2317) { Location(2615, 9503, 0) } else { Location(2617, 9572, 0) } - ClimbActionHandler.climb(player, if(target.id == 2317) { ClimbActionHandler.CLIMB_UP } else { ClimbActionHandler.CLIMB_DOWN }, loc) + core.game.global.action.ClimbActionHandler.climb(player, if(target.id == 2317) { core.game.global.action.ClimbActionHandler.CLIMB_UP } else { core.game.global.action.ClimbActionHandler.CLIMB_DOWN }, loc) player.sendMessage("You climb " + if(target.id == 2317) { "up" } else { "down" } + " the pile of rubble...") player.skills.addExperience(Skills.AGILITY, 5.5, true) return@on true diff --git a/Server/src/main/java/core/game/content/dialogue/AlfonseWaiterDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/AlfonseWaiterDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/AlfonseWaiterDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/AlfonseWaiterDialogue.java index bb10029b5..72c201399 100644 --- a/Server/src/main/java/core/game/content/dialogue/AlfonseWaiterDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/AlfonseWaiterDialogue.java @@ -1,90 +1,92 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Represents the dialogue plugin for the npc alfonse the waiter. - * @author 'Vexia - * @version 1.0 - */ -@Initializable -public final class AlfonseWaiterDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code AlfonseWaiterDialogue} {@code Object}. - */ - public AlfonseWaiterDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code AlfonseWaiterDialogue} {@code Object}. - * @param player the player. - */ - public AlfonseWaiterDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new AlfonseWaiterDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Welcome to the Shrimp and Parrot.", "Would you like to order, sir?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendOptions("Select an Option", "Yes, please.", "No, thank you.", "Where do you get your Karambwan from?"); - stage = 1; - break; - case 1: - switch (buttonId) { - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes, please."); - stage = 10; - break; - case 2: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No, thank you."); - stage = 20; - break; - case 3: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Where do you get your Karambwan from?"); - stage = 30; - break; - } - break; - case 10: - end(); - npc.openShop(player); - break; - case 20: - end(); - break; - case 30: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "We buy directly off Lubufu, a local fisherman. He", "seems to have a monopoly over Karambwan sales."); - stage = 31; - break; - case 31: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 793 }; - } -} +package content.region.karamja.brimhaven.dialogue; + +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.node.entity.npc.NPC; +import core.plugin.Initializable; +import core.game.node.entity.player.Player; + +/** + * Represents the dialogue plugin for the npc alfonse the waiter. + * @author 'Vexia + * @version 1.0 + */ +@Initializable +public final class AlfonseWaiterDialogue extends DialoguePlugin { + + /** + * Constructs a new {@code AlfonseWaiterDialogue} {@code Object}. + */ + public AlfonseWaiterDialogue() { + /** + * empty. + */ + } + + /** + * Constructs a new {@code AlfonseWaiterDialogue} {@code Object}. + * @param player the player. + */ + public AlfonseWaiterDialogue(Player player) { + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new AlfonseWaiterDialogue(player); + } + + @Override + public boolean open(Object... args) { + npc = (NPC) args[0]; + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Welcome to the Shrimp and Parrot.", "Would you like to order, sir?"); + stage = 0; + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + switch (stage) { + case 0: + interpreter.sendOptions("Select an Option", "Yes, please.", "No, thank you.", "Where do you get your Karambwan from?"); + stage = 1; + break; + case 1: + switch (buttonId) { + case 1: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes, please."); + stage = 10; + break; + case 2: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No, thank you."); + stage = 20; + break; + case 3: + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Where do you get your Karambwan from?"); + stage = 30; + break; + } + break; + case 10: + end(); + npc.openShop(player); + break; + case 20: + end(); + break; + case 30: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "We buy directly off Lubufu, a local fisherman. He", "seems to have a monopoly over Karambwan sales."); + stage = 31; + break; + case 31: + end(); + break; + } + return true; + } + + @Override + public int[] getIds() { + return new int[] { 793 }; + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/BrimhavenBartenderDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenBartenderDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/BrimhavenBartenderDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenBartenderDialogue.java index eec906e9e..4499c5f39 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrimhavenBartenderDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenBartenderDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/BrimhavenPirateDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenPirateDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/BrimhavenPirateDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenPirateDialogue.java index 28c7eb27f..0c1c3cd9d 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrimhavenPirateDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/BrimhavenPirateDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/CapnIzzyDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/CapnIzzyDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/CapnIzzyDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/CapnIzzyDialogue.java index 807eac738..88155d7c6 100644 --- a/Server/src/main/java/core/game/content/dialogue/CapnIzzyDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/CapnIzzyDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DavonDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/DavonDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/DavonDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/DavonDialogue.java index 1ec2a7140..65599fbee 100644 --- a/Server/src/main/java/core/game/content/dialogue/DavonDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/DavonDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GarvDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/GarvDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/GarvDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/GarvDialogue.java index 2c25885a4..8f995db1e 100644 --- a/Server/src/main/java/core/game/content/dialogue/GarvDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/GarvDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GruborDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/GruborDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/GruborDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/GruborDialogue.java index eb27daaca..c181f9399 100644 --- a/Server/src/main/java/core/game/content/dialogue/GruborDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/GruborDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LubufuDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/LubufuDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/LubufuDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/LubufuDialogue.java index dd96e353e..0ad34449c 100644 --- a/Server/src/main/java/core/game/content/dialogue/LubufuDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/LubufuDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PirateJackieDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/PirateJackieDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/PirateJackieDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/PirateJackieDialogue.java index ccda301e3..96aa03693 100644 --- a/Server/src/main/java/core/game/content/dialogue/PirateJackieDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/PirateJackieDialogue.java @@ -1,12 +1,13 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; -import core.game.node.item.Item; /** * Represents the dialogue plugin used for pirate jackie. diff --git a/Server/src/main/java/core/game/content/dialogue/SandyDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/SandyDialogue.java similarity index 85% rename from Server/src/main/java/core/game/content/dialogue/SandyDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/SandyDialogue.java index be3217aee..736424e92 100644 --- a/Server/src/main/java/core/game/content/dialogue/SandyDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/SandyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SanibochDialogue.java b/Server/src/main/content/region/karamja/brimhaven/dialogue/SanibochDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SanibochDialogue.java rename to Server/src/main/content/region/karamja/brimhaven/dialogue/SanibochDialogue.java index 0288317eb..141d3d467 100644 --- a/Server/src/main/java/core/game/content/dialogue/SanibochDialogue.java +++ b/Server/src/main/content/region/karamja/brimhaven/dialogue/SanibochDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.brimhaven.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenDungeonListeners.kt b/Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenDungeonListeners.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenDungeonListeners.kt rename to Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenDungeonListeners.kt index 19bee4f5a..ff2067d84 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenDungeonListeners.kt +++ b/Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenDungeonListeners.kt @@ -1,12 +1,12 @@ -package rs09.game.interaction.region.dungeons.brimhaven +package content.region.karamja.brimhaven.handlers import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.agility.AgilityHandler +import content.global.skill.agility.AgilityHandler import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class BrimhavenDungeonListeners : InteractionListener { @@ -24,21 +24,21 @@ class BrimhavenDungeonListeners : InteractionListener { } on(STAIRS, IntType.SCENERY, "walk-up","walk-down"){ player, node -> - BrimhavenUtils.handleStairs(node.asScenery(),player) + BrimhavenUtils.handleStairs(node.asScenery(), player) return@on true } on(STEPPING_STONES, IntType.SCENERY, "jump-from"){ player, node -> - BrimhavenUtils.handleSteppingStones(player,node.asScenery()) + BrimhavenUtils.handleSteppingStones(player, node.asScenery()) return@on true } on(VINES, IntType.SCENERY, "chop-down"){ player, node -> - BrimhavenUtils.handleVines(player,node.asScenery()) + BrimhavenUtils.handleVines(player, node.asScenery()) return@on true } - on(SANIBOCH, IntType.NPC, "pay"){player, node -> + on(SANIBOCH, IntType.NPC, "pay"){ player, node -> player.dialogueInterpreter.open(SANIBOCH,node.asNpc(),10) return@on true } diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt b/Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenUtils.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt rename to Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenUtils.kt index 1513cd645..2aaefa255 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt +++ b/Server/src/main/content/region/karamja/brimhaven/handlers/BrimhavenUtils.kt @@ -1,19 +1,18 @@ -package rs09.game.interaction.region.dungeons.brimhaven +package content.region.karamja.brimhaven.handlers -import api.* -import core.game.content.global.action.ClimbActionHandler +import core.api.* import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.agility.AgilityHandler -import core.game.node.entity.skill.gather.SkillingTool +import content.global.skill.agility.AgilityHandler +import content.data.skill.SkillingTool import core.game.system.task.Pulse import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.update.flag.context.Animation -import rs09.game.world.GameWorld +import core.game.world.GameWorld object BrimhavenUtils { fun getVineDestination(player: Player, node: Scenery): Location { @@ -29,14 +28,14 @@ object BrimhavenUtils { fun handleStairs(node: Scenery, player: Player){ when(node.id){ - 5094 -> ClimbActionHandler.climb(player, null, Location.create(2643, 9594, 2)) - 5096 -> ClimbActionHandler.climb(player, null, Location.create(2649, 9591, 0)) + 5094 -> core.game.global.action.ClimbActionHandler.climb(player, null, Location.create(2643, 9594, 2)) + 5096 -> core.game.global.action.ClimbActionHandler.climb(player, null, Location.create(2649, 9591, 0)) 5097 -> { // Climb the stairs within Brimhaven Dungeon player.achievementDiaryManager.finishTask(player, DiaryType.KARAMJA, 1, 16) - ClimbActionHandler.climb(player, null, Location.create(2636, 9510, 2)) + core.game.global.action.ClimbActionHandler.climb(player, null, Location.create(2636, 9510, 2)) } - 5098 -> ClimbActionHandler.climb(player, null, Location.create(2636, 9517, 0)) + 5098 -> core.game.global.action.ClimbActionHandler.climb(player, null, Location.create(2636, 9517, 0)) } } diff --git a/Server/src/main/java/core/game/interaction/npc/SanibochPlugin.java b/Server/src/main/content/region/karamja/brimhaven/handlers/SanibochPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/npc/SanibochPlugin.java rename to Server/src/main/content/region/karamja/brimhaven/handlers/SanibochPlugin.java index a012c9e25..2c2e0496b 100644 --- a/Server/src/main/java/core/game/interaction/npc/SanibochPlugin.java +++ b/Server/src/main/content/region/karamja/brimhaven/handlers/SanibochPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.karamja.brimhaven.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/CaptainShanksDialogue.java b/Server/src/main/content/region/karamja/dialogue/CaptainShanksDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/CaptainShanksDialogue.java rename to Server/src/main/content/region/karamja/dialogue/CaptainShanksDialogue.java index 015ac50e3..3bcabdfc7 100644 --- a/Server/src/main/java/core/game/content/dialogue/CaptainShanksDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/CaptainShanksDialogue.java @@ -1,8 +1,9 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import org.rs09.consts.Items; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/CustomsOfficerDialogue.java b/Server/src/main/content/region/karamja/dialogue/CustomsOfficerDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/CustomsOfficerDialogue.java rename to Server/src/main/content/region/karamja/dialogue/CustomsOfficerDialogue.java index 37ab988b8..fbb999f17 100644 --- a/Server/src/main/java/core/game/content/dialogue/CustomsOfficerDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/CustomsOfficerDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; -import core.game.content.global.travel.ship.Ships; +import content.global.travel.ship.Ships; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/JungleForesterDialogue.java b/Server/src/main/content/region/karamja/dialogue/JungleForesterDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/JungleForesterDialogue.java rename to Server/src/main/content/region/karamja/dialogue/JungleForesterDialogue.java index 63e487ade..23946f84d 100644 --- a/Server/src/main/java/core/game/content/dialogue/JungleForesterDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/JungleForesterDialogue.java @@ -1,11 +1,10 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; -import core.game.component.CloseEvent; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; -import core.game.node.item.Item; /** * Represents the dialoge used for a jungle forester. diff --git a/Server/src/main/java/core/game/content/dialogue/KaramajaManDialogue.java b/Server/src/main/content/region/karamja/dialogue/KaramajaManDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/KaramajaManDialogue.java rename to Server/src/main/content/region/karamja/dialogue/KaramajaManDialogue.java index f54cd096e..ffe40ec31 100644 --- a/Server/src/main/java/core/game/content/dialogue/KaramajaManDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/KaramajaManDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LuthasDialogue.java b/Server/src/main/content/region/karamja/dialogue/LuthasDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/LuthasDialogue.java rename to Server/src/main/content/region/karamja/dialogue/LuthasDialogue.java index bcf330a0e..eb002ac8f 100644 --- a/Server/src/main/java/core/game/content/dialogue/LuthasDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/LuthasDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; diff --git a/Server/src/main/java/core/game/content/dialogue/MonkeyDialogue.java b/Server/src/main/content/region/karamja/dialogue/MonkeyDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/MonkeyDialogue.java rename to Server/src/main/content/region/karamja/dialogue/MonkeyDialogue.java index f96e33cfc..a2680da4d 100644 --- a/Server/src/main/java/core/game/content/dialogue/MonkeyDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/MonkeyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ZamboDialogue.java b/Server/src/main/content/region/karamja/dialogue/ZamboDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/ZamboDialogue.java rename to Server/src/main/content/region/karamja/dialogue/ZamboDialogue.java index f75fa6aa9..14031211a 100644 --- a/Server/src/main/java/core/game/content/dialogue/ZamboDialogue.java +++ b/Server/src/main/content/region/karamja/dialogue/ZamboDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/KaramjaAchievementDiary.kt b/Server/src/main/content/region/karamja/diary/KaramjaAchievementDiary.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/KaramjaAchievementDiary.kt rename to Server/src/main/content/region/karamja/diary/KaramjaAchievementDiary.kt index 1b2af945e..eb7ed8589 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/KaramjaAchievementDiary.kt +++ b/Server/src/main/content/region/karamja/diary/KaramjaAchievementDiary.kt @@ -1,16 +1,16 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.karamja.diary -import api.events.NPCKillEvent -import api.events.PickUpEvent -import api.events.ResourceProducedEvent -import api.inBorders +import core.game.event.NPCKillEvent +import core.game.event.PickUpEvent +import core.game.event.ResourceProducedEvent +import core.api.inBorders import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.world.map.zone.ZoneBorders import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { companion object { @@ -86,7 +86,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.MINE_RED_TOPAZ + MediumTasks.MINE_RED_TOPAZ ) } @@ -94,7 +94,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.EASY, - EasyTasks.BRIMHAVEN_MINE_GOLD + EasyTasks.BRIMHAVEN_MINE_GOLD ) } } @@ -107,7 +107,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.EASY, - EasyTasks.USE_FISHING_SPOTS_BANANA_PLANTATION + EasyTasks.USE_FISHING_SPOTS_BANANA_PLANTATION ) } } @@ -119,7 +119,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CUT_MAHOGANY_TREE + MediumTasks.CUT_MAHOGANY_TREE ) } @@ -127,7 +127,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CUT_TEAK_TREE + MediumTasks.CUT_TEAK_TREE ) } } @@ -141,7 +141,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.HARD, - HardTasks.BRIMHAVEN_DUNGEON_KILL_METAL_DRAGON + HardTasks.BRIMHAVEN_DUNGEON_KILL_METAL_DRAGON ) } @@ -149,7 +149,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.EASY, - EasyTasks.POTHOLE_DUNGEON_KILL_JOGRE + EasyTasks.POTHOLE_DUNGEON_KILL_JOGRE ) } @@ -158,7 +158,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { finishTask( player, DiaryLevel.HARD, - HardTasks.FIGHT_CAVE_KILL_KET_ZEK + HardTasks.FIGHT_CAVE_KILL_KET_ZEK ) } } @@ -171,7 +171,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { progressIncrementalTask( player, DiaryLevel.EASY, - EasyTasks.PICK_5_SEAWEED, + EasyTasks.PICK_5_SEAWEED, ATTRIBUTE_SEAWEED_PICKED, 5 ) @@ -181,7 +181,7 @@ class KaramjaAchievementDiary : DiaryEventHookBase(DiaryType.KARAMJA) { progressIncrementalTask( player, DiaryLevel.HARD, - HardTasks.PICK_5_PALM_LEAVES, + HardTasks.PICK_5_PALM_LEAVES, ATTRIBUTE_PALM_LEAF_PICKED, 5 ) diff --git a/Server/src/main/java/core/game/content/dialogue/BananaCrateDialogue.java b/Server/src/main/content/region/karamja/handlers/BananaCrateDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/BananaCrateDialogue.java rename to Server/src/main/content/region/karamja/handlers/BananaCrateDialogue.java index e6b7dbb3c..a7eaeb46a 100644 --- a/Server/src/main/java/core/game/content/dialogue/BananaCrateDialogue.java +++ b/Server/src/main/content/region/karamja/handlers/BananaCrateDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.karamja.handlers; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/zone/CairnIslandZone.java b/Server/src/main/content/region/karamja/handlers/CairnIslandZone.java similarity index 96% rename from Server/src/main/java/core/game/content/zone/CairnIslandZone.java rename to Server/src/main/content/region/karamja/handlers/CairnIslandZone.java index e6ce81b89..b56d6ab6b 100644 --- a/Server/src/main/java/core/game/content/zone/CairnIslandZone.java +++ b/Server/src/main/content/region/karamja/handlers/CairnIslandZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.karamja.handlers; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/CustomsOfficerPlugin.java b/Server/src/main/content/region/karamja/handlers/CustomsOfficerPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/CustomsOfficerPlugin.java rename to Server/src/main/content/region/karamja/handlers/CustomsOfficerPlugin.java index 068de18ce..826467b8b 100644 --- a/Server/src/main/java/core/game/interaction/npc/CustomsOfficerPlugin.java +++ b/Server/src/main/content/region/karamja/handlers/CustomsOfficerPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.karamja.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt b/Server/src/main/content/region/karamja/handlers/JungleBushHandler.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt rename to Server/src/main/content/region/karamja/handlers/JungleBushHandler.kt index 0bf5e3d9c..f5da3dc61 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt +++ b/Server/src/main/content/region/karamja/handlers/JungleBushHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.`object` +package content.region.karamja.handlers import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder @@ -7,15 +7,15 @@ import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld /** * Handles the chopping down of dense jungle, mainly to grant access to the Kharazi Jungle. * @author Ceikry */ -class JungleBushHandler : InteractionListener{ +class JungleBushHandler : InteractionListener { val chopped_bush = 2895 val chop_a = Animation(910) val chop_b = Animation(2382) diff --git a/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java b/Server/src/main/content/region/karamja/handlers/KaramajaOptionPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java rename to Server/src/main/content/region/karamja/handlers/KaramajaOptionPlugin.java index fc2020660..3b45719af 100644 --- a/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java +++ b/Server/src/main/content/region/karamja/handlers/KaramajaOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.karamja.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; @@ -6,10 +6,10 @@ import core.game.component.Component; import core.plugin.Initializable; import org.rs09.consts.Items; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.world.GameWorld; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -19,7 +19,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/interaction/object/MossGiantRopePlugin.java b/Server/src/main/content/region/karamja/handlers/MossGiantRopePlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/MossGiantRopePlugin.java rename to Server/src/main/content/region/karamja/handlers/MossGiantRopePlugin.java index 86b6faf0b..ed17bbc7f 100644 --- a/Server/src/main/java/core/game/interaction/object/MossGiantRopePlugin.java +++ b/Server/src/main/content/region/karamja/handlers/MossGiantRopePlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.region.karamja.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/TribesmanNPC.java b/Server/src/main/content/region/karamja/handlers/TribesmanNPC.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/other/TribesmanNPC.java rename to Server/src/main/content/region/karamja/handlers/TribesmanNPC.java index dfb40dc23..184357c1d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/TribesmanNPC.java +++ b/Server/src/main/content/region/karamja/handlers/TribesmanNPC.java @@ -1,9 +1,9 @@ -package core.game.node.entity.npc.other; +package content.region.karamja.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; import core.plugin.Initializable; -import rs09.game.system.config.NPCConfigParser; +import core.game.system.config.NPCConfigParser; /** * Represents the tribesamn npc. diff --git a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java rename to Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java index 348038da8..8b7027c9c 100644 --- a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java +++ b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotion.java @@ -1,20 +1,18 @@ -package core.game.content.quest.members.junglepotion; +package content.region.karamja.quest.junglepotion; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.herblore.Herbs; +import content.global.skill.herblore.Herbs; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; import core.tools.StringUtils; -import core.game.content.quest.members.junglepotion.JunglePotionPlugin.JogreCavernDialogue; - /** * The main type or the jungle potion quest. * @author Vexia @@ -38,7 +36,7 @@ public final class JunglePotion extends Quest { @Override public Quest newInstance(Object object) { ClassScanner.definePlugin(new TrufitusDialogue()); - ClassScanner.definePlugin(new JogreCavernDialogue()); + ClassScanner.definePlugin(new JunglePotionPlugin.JogreCavernDialogue()); ClassScanner.definePlugin(new JunglePotionPlugin()); return this; } diff --git a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotionPlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java rename to Server/src/main/content/region/karamja/quest/junglepotion/JunglePotionPlugin.java index d8d4bf7a5..d1ac8fcf9 100644 --- a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java +++ b/Server/src/main/content/region/karamja/quest/junglepotion/JunglePotionPlugin.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.junglepotion; +package content.region.karamja.quest.junglepotion; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -12,7 +12,7 @@ import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Plugin; -import core.game.content.quest.members.junglepotion.JunglePotion.JungleObjective; +import content.region.karamja.quest.junglepotion.JunglePotion.JungleObjective; /** * Handles any interactions of the jungle potion quest. diff --git a/Server/src/main/java/core/game/content/quest/members/junglepotion/TrufitusDialogue.java b/Server/src/main/content/region/karamja/quest/junglepotion/TrufitusDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/junglepotion/TrufitusDialogue.java rename to Server/src/main/content/region/karamja/quest/junglepotion/TrufitusDialogue.java index 05864a255..df5e52885 100644 --- a/Server/src/main/java/core/game/content/quest/members/junglepotion/TrufitusDialogue.java +++ b/Server/src/main/content/region/karamja/quest/junglepotion/TrufitusDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.members.junglepotion; +package content.region.karamja.quest.junglepotion; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.content.quest.members.junglepotion.JunglePotion.JungleObjective; +import content.region.karamja.quest.junglepotion.JunglePotion.JungleObjective; /** * Handles the trufitus dialogue. diff --git a/Server/src/main/content/region/karamja/quest/tribaltotem/ArdougneGuideBook.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/ArdougneGuideBook.kt new file mode 100644 index 000000000..36fa06a8b --- /dev/null +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/ArdougneGuideBook.kt @@ -0,0 +1,163 @@ +package content.region.karamja.quest.tribaltotem + +import core.game.dialogue.book.BookLine +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.book.Book +import core.game.dialogue.book.Page +import core.game.dialogue.book.PageSet +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * This was some code for a post-tutorial RSPS guide book a long ass + * time ago, but it was using the ID for the guide book for Tribal Totem + * and I kind of need that, bro + * + * @author Splinter + * @author Phil + */ +@Initializable +class ArdougneGuideBook : core.game.dialogue.book.Book { + /** + * Constructs a new `ShieldofArravBook` `Object`. + */ + constructor(player: Player?) : super(player, "Ardougne Guide Book", 1856, *PAGES) {} + + /** + * Constructs a new `ShieldofArravBook` `Object`. + */ + constructor() { + /** + * empty. + */ + } + + override fun finish() {} + override fun display(set: Array) { + player.lock() + player.interfaceManager.open(getInterface()) + player.packetDispatch.sendString("Previous", getInterface().id, 77) + player.packetDispatch.sendString("Next", getInterface().id, 78) + for (i in 55..76) { + player.packetDispatch.sendString("", getInterface().id, i) + } + player.packetDispatch.sendString(getName(), getInterface().id, 6) + for (page in set) { + for (line in page.lines) { + player.packetDispatch.sendString(line.message, getInterface().id, line.child) + } + } + val lastPage = index == sets.size - 1 + if (lastPage) { + finish() + } + player.unlock() + } + + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return ArdougneGuideBook(player) + } + + override fun getIds(): IntArray { + return intArrayOf(ID) + } + + companion object { + /** + * Represents the book id + */ + var ID = 387454 + + /** + * Represents the array of pages for this book. + */ + private val PAGES = arrayOf( + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Introduction", 57), + core.game.dialogue.book.BookLine("This book is your guide to", 59), + core.game.dialogue.book.BookLine("the vibrant city of Ardougne.", 60), + core.game.dialogue.book.BookLine("Ardougne is known as an", 61), + core.game.dialogue.book.BookLine("exciting modern city located", 62), + core.game.dialogue.book.BookLine("on the sun drenched southern", 63), + core.game.dialogue.book.BookLine("coast of Kandarin", 64), + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Ardougne: City of Shopping!", 66), + core.game.dialogue.book.BookLine("Come sample the delights of", 67), + core.game.dialogue.book.BookLine("the Ardougne market - the", 68), + core.game.dialogue.book.BookLine("biggest in the known world!", 69), + core.game.dialogue.book.BookLine("From spices to silk, there", 70), + core.game.dialogue.book.BookLine("is something here for", 71), + core.game.dialogue.book.BookLine("everybody! Other popular", 72), + core.game.dialogue.book.BookLine("shopping destinations in", 73), + core.game.dialogue.book.BookLine("the area include the Armoury", 74), + core.game.dialogue.book.BookLine("and the ever popular", 75), + core.game.dialogue.book.BookLine("Adventurers' supply store.", 76) + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Ardougne: City of Fun!", 55), + core.game.dialogue.book.BookLine("If you're looking for", 56), + core.game.dialogue.book.BookLine("entertainment in Ardougne,", 57), + core.game.dialogue.book.BookLine("why not pay a visit to the", 58), + core.game.dialogue.book.BookLine("Ardougne City zoo? Or relax", 59), + core.game.dialogue.book.BookLine("with a drink in the ever", 60), + core.game.dialogue.book.BookLine("popular Flying Horse Inn?", 61), + core.game.dialogue.book.BookLine("And for the adventurous,", 62), + core.game.dialogue.book.BookLine("there are always rats to be", 63), + core.game.dialogue.book.BookLine("slaughtered in the expansive", 64), + core.game.dialogue.book.BookLine("and vermin-ridden sewers", 65) + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("There is something truly", 66), + core.game.dialogue.book.BookLine("for everybody here!", 67) + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Ardougne: City of History!", 55), + core.game.dialogue.book.BookLine("Ardougne is renowned as an", 56), + core.game.dialogue.book.BookLine("important city of historical", 57), + core.game.dialogue.book.BookLine("interest. One historic building", 58), + core.game.dialogue.book.BookLine("is the magnificent Handelmort", 59), + core.game.dialogue.book.BookLine("Mansion, currently owned by", 60), + core.game.dialogue.book.BookLine("Lord Francis Kurt Handelmort.", 61), + core.game.dialogue.book.BookLine("Also of historical interest is", 62), + core.game.dialogue.book.BookLine("Ardougne Castle in the east of", 63), + core.game.dialogue.book.BookLine("the city recently opened to the", 64), + core.game.dialogue.book.BookLine("public. And of course the Holy", 65) + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Order of Paladins still wander", 66), + core.game.dialogue.book.BookLine("the streets of Ardougne, and", 67), + core.game.dialogue.book.BookLine("are often of interest to", 68), + core.game.dialogue.book.BookLine("tourists.", 69) + ) + ), + core.game.dialogue.book.PageSet( + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("Further Fields", 55), + core.game.dialogue.book.BookLine("", 56), + core.game.dialogue.book.BookLine("The area surrounding Ardougne", 57), + core.game.dialogue.book.BookLine("is also of great interest to", 58), + core.game.dialogue.book.BookLine("the cultural tourist. If you", 59), + core.game.dialogue.book.BookLine("want to go further afield, why", 60), + core.game.dialogue.book.BookLine("not have a look at the ominous", 61), + core.game.dialogue.book.BookLine("Pillars of Zanash, the", 62), + core.game.dialogue.book.BookLine("mysterious marble pillars", 63), + core.game.dialogue.book.BookLine("located just West of the city?", 64), + core.game.dialogue.book.BookLine("Or perhaps the town of Brimhaven,", 65) + ), + core.game.dialogue.book.Page( + core.game.dialogue.book.BookLine("on the exotic island of Karamja?", 66), + core.game.dialogue.book.BookLine("It's only a short boat trip with", 67), + core.game.dialogue.book.BookLine("regular transport leaving from", 68), + core.game.dialogue.book.BookLine("Ardougne harbor at all times", 69), + core.game.dialogue.book.BookLine("of the day, all year round.", 70) + ) + ) + ) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/karamja/quest/tribaltotem/CrompertyDialogue.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/CrompertyDialogue.kt new file mode 100644 index 000000000..d1ce9ee2f --- /dev/null +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/CrompertyDialogue.kt @@ -0,0 +1,131 @@ +package content.region.karamja.quest.tribaltotem + +import core.game.node.entity.impl.Projectile +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.game.world.update.flag.context.Animation +import core.game.world.update.flag.context.Graphics +import core.plugin.Initializable +import org.rs09.consts.NPCs +import content.global.travel.EssenceTeleport +import core.game.world.GameWorld + +@Initializable +class CrompertyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello ${player.name}, I'm Cromperty. Sedridor has told me about you. As a wizard and an inventor he has aided me in my great invention!") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Two jobs? that's got to be tough","So what have you invented?","Can you teleport me to the Rune Essence?").also { stage++ } + 1 ->when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Two jobs? That's got to be tough.").also { stage = 5 } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So, what have you invented?").also { stage = 10 } + 3 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Can you teleport me to the Rune Essence?").also { + if(player.questRepository.isComplete("Rune Mysteries")){ + EssenceTeleport.teleport(npc,player) + end() + } + else stage = 2 + } + } + 2 -> npcl(core.game.dialogue.FacialExpression.THINKING,"I have no idea what you're talking about.") + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Not when you combine them it isn't! Invent MAGIC things!").also { stage++ } + 6 -> options("So what have you invented?","Well I shall leave you to your inventing").also { stage++ } + 7 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So, what have you invented?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Well I shall leave you to your inventing").also { stage++ } + } + 8 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Thanks for dropping by! Stop again anytime!").also { stage = 1000 } + + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah! My latest invention is my patent pending teleportation block! It emits a low level magical signal,").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"that will allow me to locate it anywhere in the world, and teleport anything directly to it! I hope to revolutionize the entire teleportation system!").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Don't you think I'm great? Uh, I mean it's great?").also { stage++ } + 13 -> options("So where is the other block?","Can I be teleported please?").also { stage++ } + 14 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So where is the other block?").also { stage = 15 } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Can I be teleported please?").also { stage = 25 } + } + + 15 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Well...Hmm. I would guess somewhere between here and the Wizards' Tower in Misthalin.").also { stage++ } + 16 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"All I know is that it hasn't got there yet as the wizards there would have contacted me.").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.THINKING,"I'm using the GPDT for delivery. They assured me it would be delivered promptly.").also { stage++ } + 18 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Who are the GPDT?").also { stage++ } + 19 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"The Gielinor Parcel Delivery Team. They come very highly recommended.").also { stage++ } + 20 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Their motto is: \"We aim to deliver your stuff at some point after you have paid us!\"").also { stage = 1000 } + + 25 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"By all means! I'm afraid I can't give you any specifics as to where you will come out however. Presumably wherever the other block is located.").also { stage++ } + 26 -> options("Yes, that sounds good. Teleport me!","That sounds dangerous. Leave me here.").also { stage++ } + 27 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yes, that sounds good. Teleport me!").also { stage = 30 } + 2 -> playerl(core.game.dialogue.FacialExpression.THINKING,"That sounds dangerous. Leave me here.").also { stage++ } + } + 28 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"As you wish.").also { stage = 1000 } + + 30 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Okey dokey! Ready?").also { + stage = if(player.questRepository.hasStarted("Tribal Totem") && player.questRepository.getStage("Tribal Totem") < 50) { + 35 + } + else 31 + } + 31 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Hmmm... that's odd... I can't seem to get a signal...").also { stage++ } + 32 -> playerl(core.game.dialogue.FacialExpression.SAD,"Oh well, never mind.").also { stage = 1000 } + + 35 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Okay, I got a signal. Get ready!").also { + TribalTotemTeleport(player, npc) + end() + } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CrompertyDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(844,NPCs.WIZARD_CROMPERTY_2328) + } + + fun TribalTotemTeleport(player : Player, npc: NPC) { + val LOCATIONS = arrayOf(Location.create(2649, 3272, 0),Location.create(2642, 3321, 0)) + npc.animate(Animation(437)) + npc.faceTemporary(player, 1) + npc.graphics(Graphics(108)) + player.lock() + player.audioManager.send(125) + Projectile.create(npc, player, 109).send() + npc.sendChat("Dipsolum sententa sententi!") + GameWorld.Pulser.submit(object : Pulse(1) { + var counter = 0 + var delivered = player.questRepository.getStage("Tribal Totem") >= 25 + override fun pulse(): Boolean { + when(counter++){ + 2 -> { + if(delivered) { + player.questRepository.getQuest("Tribal Totem").setStage(player,30) + player.properties.teleportLocation = LOCATIONS[1] + } + else player.properties.teleportLocation = LOCATIONS[0] + } + 3 ->{ + player.graphics(Graphics(110)) + player.unlock() + return true + } + } + return false + } + }) + } +} + diff --git a/Server/src/main/content/region/karamja/quest/tribaltotem/GPDTEmployeeDialogue.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/GPDTEmployeeDialogue.kt new file mode 100644 index 000000000..f7ed2539e --- /dev/null +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/GPDTEmployeeDialogue.kt @@ -0,0 +1,41 @@ +package content.region.karamja.quest.tribaltotem + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +@Initializable +class GPDTEmployeeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.HAPPY,"Welcome to G.P.D.T.!") + stage = if(player.questRepository.getStage("Tribal Totem") == 20){ + 5 + }else 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thank you very much.").also { stage = 1000 } + + 5 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So, when are you going to deliver this crate?").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Well... I guess we could do it now...").also { + player.questRepository.getQuest("Tribal Totem").setStage(player,25) + stage = 1000 + } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GPDTEmployeeDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.RPDT_EMPLOYEE_843) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/karamja/quest/tribaltotem/HoracioDialogue.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/HoracioDialogue.kt new file mode 100644 index 000000000..c6f2b8a16 --- /dev/null +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/HoracioDialogue.kt @@ -0,0 +1,58 @@ +package content.region.karamja.quest.tribaltotem + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable + +@Initializable +class HoracioDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + if(player.questRepository.hasStarted("Tribal Totem")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"It's a fine day to be out in a garden, isn't it? ") + stage = 5 + } + else{ + npcl(core.game.dialogue.FacialExpression.HAPPY,"It's a fine day to be out in a garden, isn't it? ") + stage = 0 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yes it's very nice.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Days like these make me glad to be alive!").also { stage = 1000 } + + 5 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So... who are you?").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"My name is Horacio Dobson. I'm a gardener to Lord Handlemort.").also { stage++ } + 7 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Take a look around this beautiful garden, all of this is my handiwork.").also { stage++ } + 8 -> options("So... do you garden round the back too?","Do you need any help?").also { stage++ } + 9 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.THINKING,"So... do you garden round the back, too?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Do you need any help?").also { stage = 20 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"That I do!").also { stage++ } + 11 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Doesn't all of the security around the house get in your way then?").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Ah. I'm used to all that. I have my keys, the guard dogs know me, and I know the combination to the door lock.").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"It's rather easy, it's his middle name.").also { stage++ } + 14 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Whose middle name?").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Hum. I probably shouldn't have said that. Forget I mentioned it.").also { stage = 1000 } + + 20 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Trying to muscle in on my job, eh? I'm more than happy to do this all by myself!").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return HoracioDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(845) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/karamja/quest/tribaltotem/KangaiMauDialogue.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/KangaiMauDialogue.kt new file mode 100644 index 000000000..57968ab94 --- /dev/null +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/KangaiMauDialogue.kt @@ -0,0 +1,91 @@ +package content.region.karamja.quest.tribaltotem + +import core.api.isQuestComplete +import core.api.removeItem +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class KangaiMauDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + if(!player.questRepository.hasStarted("Tribal Totem")){ + npcl(core.game.dialogue.FacialExpression.HAPPY,"Hello. I'm Kangai Mau of the Rantuki Tribe.") + stage = 0 + } else if(isQuestComplete(player, "Tribal Totem")) { + npcl(core.game.dialogue.FacialExpression.HAPPY, "Many greetings esteemed thief.") + stage = 40 + } + else if(player.inventory.containsAtLeastOneItem(Items.TOTEM_1857)){ + npcl(core.game.dialogue.FacialExpression.ASKING,"Have you got our totem back?") + stage = 35 + } + else if(player.questRepository.hasStarted("Tribal Totem")){ + npcl(core.game.dialogue.FacialExpression.ASKING,"Have you got our totem back?") + stage = 30 + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("And what are you doing here in Brimhaven?","I'm in search of adventure!","Who are the Rantuki tribe?").also { stage++ } + 1 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"And what are you doing here in Brimhaven?").also { stage = 5 } + 2 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"I'm in search of adventure!").also { stage = 15 } + 3 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Who are the Rantuki Tribe?").also { stage = 10 } + } + + 5 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I'm looking for someone brave to go on important mission. Someone skilled in thievery and sneaking about.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"I am told I can find such people in Brimhaven.").also { stage++ } + 7 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yep. I have heard there are many of that type here.").also { stage++ } + 8 -> npcl(core.game.dialogue.FacialExpression.THINKING,"Let's hope I find them.").also { stage = 1000 } + + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"A proud and noble tribe of Karamja.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"But now we are few, as men come from across, steal our land, and settle on our hunting grounds").also { stage = 1000 } + + 15 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Adventure is something I may be able to give. I need someone to go on a mission to the city of Ardougne.").also { stage++ } + 16 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"There you will find the house of Lord Handlemort. In his house he has our tribal totem. We need it back.").also { stage++ } + 17 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Why does he have it?").also { stage++ } + 18 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Lord Handlemort is an Ardougnese explorer which means he think he have the right to come to my tribal home,").also { stage++ } + 19 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"steal our stuff and put in his private museum.").also { stage++ } + 20 -> playerl(core.game.dialogue.FacialExpression.THINKING,"How can I find Handlemoret's house? Ardougne IS a big place...").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"I don't know Ardougne. You tell me.").also { stage++ } + 22 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Ok, I will get it back.").also { + player.questRepository.getQuest("Tribal Totem").start(player) + player.questRepository.getQuest("Tribal Totem").setStage(player, 10) + stage++ + } + 23 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Best of luck with that adventurer").also { stage = 1000 } + + 30 -> playerl(core.game.dialogue.FacialExpression.SAD,"Not yet, sorry.").also { stage = 1000 } + + 35 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Yes I have.").also { stage++ } + 36 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"You have??? Many thanks brave adventurer! Here, have some freshly cooked Karamjan fish, caught specially by my tribe.").also { stage++ } + 37 -> sendDialogue("You hand over the totem").also { + if(!isQuestComplete(player, "Tribal Totem") && removeItem(player, Items.TOTEM_1857)) { + player.questRepository.getQuest("Tribal Totem").finish(player) + stage = 1000 + } else { + stage = 1000 + } + } + + 40 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Hey.").also { stage = 1000 } + + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return KangaiMauDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(846) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TTDoorCodeInterfaceListener.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/TTDoorCodeInterfaceListener.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TTDoorCodeInterfaceListener.kt rename to Server/src/main/content/region/karamja/quest/tribaltotem/TTDoorCodeInterfaceListener.kt index 2b041fc58..e3e2fe633 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TTDoorCodeInterfaceListener.kt +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/TTDoorCodeInterfaceListener.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.tribaltotem +package content.region.karamja.quest.tribaltotem -import api.closeInterface -import api.sendMessage -import api.setInterfaceText +import core.api.closeInterface +import core.api.sendMessage +import core.api.setInterfaceText import core.game.world.map.Location -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class TTDoorCodeInterfaceListener : InterfaceListener { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemListeners.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemListeners.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemListeners.kt rename to Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemListeners.kt index cfe85a410..4cfd74f3e 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemListeners.kt +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemListeners.kt @@ -1,17 +1,15 @@ -package rs09.game.content.quest.members.tribaltotem +package content.region.karamja.quest.tribaltotem -import api.* -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.entity.skill.Skills import core.game.node.scenery.SceneryBuilder import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType -class TribalTotemListeners : InteractionListener{ +class TribalTotemListeners : InteractionListener { val frontDoor = 2706 val wizCrate = 2707 @@ -25,7 +23,7 @@ class TribalTotemListeners : InteractionListener{ override fun defineListeners() { on(frontDoor, IntType.SCENERY, "Open"){ player, door -> if(player.questRepository.getStage("Tribal Totem") >= 35){ - DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,door.asScenery()) } sendMessage(player,"The door is locked shut.") return@on true @@ -56,7 +54,7 @@ class TribalTotemListeners : InteractionListener{ on(lockedDoor, IntType.SCENERY, "Open"){ player, node -> if(player.getAttribute("TT:DoorUnlocked",false) == true){ - DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node.asScenery()) }else{ openInterface(player,285) } @@ -65,7 +63,7 @@ class TribalTotemListeners : InteractionListener{ on(stairs, IntType.SCENERY, "Climb-up"){ player, node -> if(player.getAttribute("TT:StairsChecked",false)){ - ClimbActionHandler.climb(player, Animation(828), Location.create(2629, 3324, 1)) + core.game.global.action.ClimbActionHandler.climb(player, Animation(828), Location.create(2629, 3324, 1)) } else{ sendMessage(player,"You set off a trap and the stairs give way under you, dropping you into the sewers.") diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemQuest.kt b/Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemQuest.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemQuest.kt rename to Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemQuest.kt index 4ebd344d6..ea707ce49 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/TribalTotemQuest.kt +++ b/Server/src/main/content/region/karamja/quest/tribaltotem/TribalTotemQuest.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.tribaltotem +package content.region.karamja.quest.tribaltotem -import api.rewardXP +import core.api.rewardXP import core.game.content.quest.fremtrials.FremennikTrials import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest @@ -14,7 +14,7 @@ import org.rs09.consts.Items class TribalTotem : Quest("Tribal Totem",126,125,1,200,0,1,5){ class SkillRequirement(val skill: Int?, val level: Int?) - val requirements = arrayListOf() + val requirements = arrayListOf() override fun drawJournal(player: Player?, stage: Int) { super.drawJournal(player, stage) @@ -71,7 +71,7 @@ class TribalTotem : Quest("Tribal Totem",126,125,1,200,0,1,5){ } override fun newInstance(`object`: Any?): Quest { - requirements.add(TribalTotem.SkillRequirement(Skills.THIEVING, 21)) + requirements.add(SkillRequirement(Skills.THIEVING, 21)) return this } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/FernaheiDialogue.kt b/Server/src/main/content/region/karamja/shilo/dialogue/FernaheiDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/FernaheiDialogue.kt rename to Server/src/main/content/region/karamja/shilo/dialogue/FernaheiDialogue.kt index 27412a910..ba79870d7 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/FernaheiDialogue.kt +++ b/Server/src/main/content/region/karamja/shilo/dialogue/FernaheiDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.shilovillage +package content.region.karamja.shilo.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FernaheiDialogue(player: Player? = null) : DialoguePlugin(player){ +class FernaheiDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Welcome to Fernahei's Fishing Shop Bwana!", + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome to Fernahei's Fishing Shop Bwana!", "Would you like to see my items?").also { stage = 0 } return true } @@ -28,8 +28,8 @@ class FernaheiDialogue(player: Player? = null) : DialoguePlugin(player){ } 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "No, but thanks for the offer.").also { stage = 20 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No, but thanks for the offer.").also { stage = 20 } } 10 -> { @@ -37,7 +37,7 @@ class FernaheiDialogue(player: Player? = null) : DialoguePlugin(player){ } 20 -> { - npc(FacialExpression.FRIENDLY, "That's fine, and thanks for your interest.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "That's fine, and thanks for your interest.").also { stage = 99 } } 99 -> end() @@ -45,7 +45,7 @@ class FernaheiDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FernaheiDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/KalebParamaya.java b/Server/src/main/content/region/karamja/shilo/dialogue/KalebParamaya.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/KalebParamaya.java rename to Server/src/main/content/region/karamja/shilo/dialogue/KalebParamaya.java index 11a4e7887..977ee1000 100644 --- a/Server/src/main/java/core/game/content/dialogue/KalebParamaya.java +++ b/Server/src/main/content/region/karamja/shilo/dialogue/KalebParamaya.java @@ -1,10 +1,10 @@ -package core.game.content.dialogue; +package content.region.karamja.shilo.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; -import core.game.node.item.Item; /** * Represents the dialoge used for kaleb paramaya. diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/ObliDialogue.kt b/Server/src/main/content/region/karamja/shilo/dialogue/ObliDialogue.kt similarity index 58% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/ObliDialogue.kt rename to Server/src/main/content/region/karamja/shilo/dialogue/ObliDialogue.kt index d238b77ce..2f7b5d11a 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/shilovillage/ObliDialogue.kt +++ b/Server/src/main/content/region/karamja/shilo/dialogue/ObliDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.shilovillage +package content.region.karamja.shilo.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class ObliDialogue(player: Player? = null) : DialoguePlugin(player){ +class ObliDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Welcome to Obli's General Store Bwana!", + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome to Obli's General Store Bwana!", "Would you like to see my items?").also { stage = 0 } return true } @@ -28,8 +28,8 @@ class ObliDialogue(player: Player? = null) : DialoguePlugin(player){ } 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "No, but thanks for the offer.").also { stage = 99 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No, but thanks for the offer.").also { stage = 99 } } 10 -> { @@ -41,7 +41,7 @@ class ObliDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ObliDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/SeravelDialogue.java b/Server/src/main/content/region/karamja/shilo/dialogue/SeravelDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/SeravelDialogue.java rename to Server/src/main/content/region/karamja/shilo/dialogue/SeravelDialogue.java index 41102970a..2f3009766 100644 --- a/Server/src/main/java/core/game/content/dialogue/SeravelDialogue.java +++ b/Server/src/main/content/region/karamja/shilo/dialogue/SeravelDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.karamja.shilo.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/interaction/object/BrokenCartBypass.java b/Server/src/main/content/region/karamja/shilo/handlers/BrokenCartBypass.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/BrokenCartBypass.java rename to Server/src/main/content/region/karamja/shilo/handlers/BrokenCartBypass.java index 127b32b70..7011a44ca 100644 --- a/Server/src/main/java/core/game/interaction/object/BrokenCartBypass.java +++ b/Server/src/main/content/region/karamja/shilo/handlers/BrokenCartBypass.java @@ -1,11 +1,11 @@ -package core.game.interaction.object; +package content.region.karamja.shilo.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/ShiloVillagePlugin.java b/Server/src/main/content/region/karamja/shilo/handlers/ShiloVillagePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/city/ShiloVillagePlugin.java rename to Server/src/main/content/region/karamja/shilo/handlers/ShiloVillagePlugin.java index 725d48834..afb1c65a4 100644 --- a/Server/src/main/java/core/game/interaction/city/ShiloVillagePlugin.java +++ b/Server/src/main/content/region/karamja/shilo/handlers/ShiloVillagePlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.city; +package content.region.karamja.shilo.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -13,7 +13,7 @@ import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles shilo village interactions. diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/taibwowannai/GabootyDialogue.kt b/Server/src/main/content/region/karamja/taibwo/dialogue/GabootyDialogue.kt similarity index 70% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/taibwowannai/GabootyDialogue.kt rename to Server/src/main/content/region/karamja/taibwo/dialogue/GabootyDialogue.kt index 373c165c9..1908b4c3f 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/taibwowannai/GabootyDialogue.kt +++ b/Server/src/main/content/region/karamja/taibwo/dialogue/GabootyDialogue.kt @@ -1,36 +1,35 @@ -package rs09.game.content.dialogue.region.taibwowannai +package content.region.karamja.taibwo.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import rs09.game.content.global.shops.Shops -import rs09.game.system.config.ShopParser +import core.game.shops.Shops /** * Dialogue for Gabooty * @author qmqz */ @Initializable -class GabootyDialogue(player: Player? = null) : DialoguePlugin(player){ +class GabootyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "What do you do here?").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "What do you do here?").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"Not much really... I run a local shop which earns", "me a few trading sticks, but that's about it.", "I keep myself to myself really.").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "What are trading sticks?").also { stage++ } - 2 -> npc(FacialExpression.FRIENDLY, + 0 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Not much really... I run a local shop which earns", "me a few trading sticks, but that's about it.", "I keep myself to myself really.").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "What are trading sticks?").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "They're the local currency Bwana, ", "it's used in Tai Bwo Wannai, there's usually", "some odd jobs that need doing around the village", "which you could do to earn some trading sticks.").also { stage++ } - 3 -> npc(FacialExpression.FRIENDLY, + 3 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Or, if you have something which the local villagers", "might like, you could sell it to me and I'll pay", "you for it in trading sticks.").also { stage++ } @@ -49,29 +48,29 @@ class GabootyDialogue(player: Player? = null) : DialoguePlugin(player){ 4 -> player("Ok, thanks.").also { stage = 99 } } - 10 -> npc(FacialExpression.FRIENDLY, + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Gnome cocktails! It's amazing but we all just love them!", "Luckily I've managed to get stocks of the gnome made", "cocktails and I supply those to my favourite customers.", "However, many of the customers really like the cocktails").also { stage++ } - 11 -> npc(FacialExpression.FRIENDLY, + 11 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "made by the adventurers passing through this way.", "If you ever happen to have any, bring them my way! ", "I'll give you a good deal on it that's for sure!").also { stage++ } - 12 -> player(FacialExpression.FRIENDLY, "How did the villagers ever get to try any gnome cocktails?").also { stage++ } - 13 -> npc(FacialExpression.FRIENDLY, + 12 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "How did the villagers ever get to try any gnome cocktails?").also { stage++ } + 13 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "I think it was that gnome pilot who crashed his glider,", "perhaps he had a little mini-bar on board?", "Come to think about it, you'd expect the little guy to get ", "his stuff together and move on out of here wouldn't you?").also { stage++ } - 14 -> npc(FacialExpression.FRIENDLY, "He must love the jungle to have stayed here so long!").also { stage = 4 } + 14 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "He must love the jungle to have stayed here so long!").also { stage = 4 } - 21 -> npc(FacialExpression.FRIENDLY, + 21 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, it's the Tai Bwo cooperative... catchy name huh!", "We sell a few local village trinkets and tools.", "Also, there are a few items that we're actually", "looking to stock for the locals' sake.").also { stage++ } - 22 -> npc(FacialExpression.FRIENDLY, + 22 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "If you happen across any of them please bring them to me,", "I'll pay a good price for them.", "I'm sure you'll find the prices very reasonable.").also { stage++ } @@ -91,7 +90,7 @@ class GabootyDialogue(player: Player? = null) : DialoguePlugin(player){ 5 -> player("I want to ask another question.").also { stage = 4 } } - 30 -> npc(FacialExpression.FRIENDLY, "Sure you can...which shop would you like to see?", + 30 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Sure you can...which shop would you like to see?", "The Cooperative or Drinks store?").also { stage++ } 31 ->interpreter.sendOptions("Select an Option", @@ -106,13 +105,13 @@ class GabootyDialogue(player: Player? = null) : DialoguePlugin(player){ 3 -> player("None thanks...").also { stage = 99 } } - 40 -> npc(FacialExpression.FRIENDLY, "It's funny that, actually. I've managed to get a ", + 40 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "It's funny that, actually. I've managed to get a ", "good deal with the pilot of that gnome glider. He can supply", "me directly now. However, it's really interesting that the ", "local villagers really like the gnome cocktails made by the").also { stage++ } - 41 -> npc(FacialExpression.FRIENDLY, "adventurers passing through this way.").also { stage++ } - 42 -> player(FacialExpression.FRIENDLY, "Why, what's the difference?").also { stage++ } - 43 -> npc(FacialExpression.FRIENDLY, "I think it may just be that they're made fresher,", + 41 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "adventurers passing through this way.").also { stage++ } + 42 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Why, what's the difference?").also { stage++ } + 43 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "I think it may just be that they're made fresher,", "or there is a slight twist in the flavour of the drink,", "you know, a little more of this, a little less of that, it all", "adds up and makes for an interesting tipple!").also { stage = 23 } @@ -125,7 +124,7 @@ class GabootyDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GabootyDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/JiminuaDialogue.java b/Server/src/main/content/region/karamja/taibwo/dialogue/JiminuaDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/JiminuaDialogue.java rename to Server/src/main/content/region/karamja/taibwo/dialogue/JiminuaDialogue.java index ec3dcc3ce..d2bf7aae6 100644 --- a/Server/src/main/java/core/game/content/dialogue/JiminuaDialogue.java +++ b/Server/src/main/content/region/karamja/taibwo/dialogue/JiminuaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.karamja.taibwo.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import org.rs09.consts.Items; import core.game.interaction.NodeUsageEvent; @@ -8,7 +10,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.item.Item; import core.game.node.entity.player.Player; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the jiminua dialogue plugin. diff --git a/Server/src/main/java/core/game/interaction/npc/GabootyTrade.java b/Server/src/main/content/region/karamja/taibwo/handlers/GabootyTrade.java similarity index 92% rename from Server/src/main/java/core/game/interaction/npc/GabootyTrade.java rename to Server/src/main/content/region/karamja/taibwo/handlers/GabootyTrade.java index b0cb4c8b9..135a78f0c 100644 --- a/Server/src/main/java/core/game/interaction/npc/GabootyTrade.java +++ b/Server/src/main/content/region/karamja/taibwo/handlers/GabootyTrade.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.karamja.taibwo.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -7,8 +7,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.content.global.shops.Shops; -import rs09.game.system.config.ShopParser; +import core.game.shops.Shops; +import core.game.system.config.ShopParser; /** * Represents the plugin used for trading with Gabooty diff --git a/Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejJah.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejJah.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejJah.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejJah.java index 91148bde0..09653c566 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejJah.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejJah.java @@ -1,13 +1,13 @@ -package core.game.node.entity.npc.city.tzhaar; +package content.region.karamja.tzhaar.handlers; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the TzHaarMejJal dialogue. diff --git a/Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejKah.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejKah.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejKah.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejKah.java index cf221138c..97a62c9a1 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/tzhaar/TzHaarMejKah.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzHaarMejKah.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.tzhaar; +package content.region.karamja.tzhaar.handlers; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/TzRekJadNPC.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzRekJadNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/bosses/TzRekJadNPC.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzRekJadNPC.java index 944211cb1..2c5993906 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/TzRekJadNPC.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzRekJadNPC.java @@ -1,17 +1,17 @@ -package core.game.node.entity.npc.bosses; +package content.region.karamja.tzhaar.handlers; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarCityPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarCityPlugin.java index ba088c5fd..b4b23b029 100644 --- a/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarCityPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.city; +package content.region.karamja.tzhaar.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.ActivityManager; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCaveNPC.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCaveNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCaveNPC.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCaveNPC.java index 15effc144..1fd8b7f9d 100644 --- a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCaveNPC.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCaveNPC.java @@ -1,9 +1,9 @@ -package core.game.content.activity.tzhaar; +package content.region.karamja.tzhaar.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.combat.equipment.ArmourSet; @@ -11,8 +11,6 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.MapDistance; diff --git a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCavesPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCavesPlugin.java index 09a643f84..b6054f080 100644 --- a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightCavesPlugin.java @@ -1,8 +1,9 @@ -package core.game.content.activity.tzhaar; +package content.region.karamja.tzhaar.handlers; -import api.events.NPCKillEvent; -import core.game.content.activity.ActivityPlugin; -import core.game.content.global.BossKillCounter; +import content.global.skill.slayer.SlayerManager; +import core.game.event.NPCKillEvent; +import core.game.activity.ActivityPlugin; +import content.data.BossKillCounter; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -10,7 +11,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.slayer.Tasks; +import content.global.skill.slayer.Tasks; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.scenery.Scenery; @@ -20,9 +21,8 @@ import core.game.world.map.build.DynamicRegion; import core.game.world.map.zone.ZoneRestriction; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.skill.slayer.SlayerManager; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java index 062b61c59..9abbe6e08 100644 --- a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarFightPitsPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.tzhaar; +package content.region.karamja.tzhaar.handlers; import java.util.ArrayList; import java.util.Iterator; @@ -7,9 +7,9 @@ import java.util.Random; import core.game.component.Component; import core.game.container.impl.EquipmentContainer; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.plugin.Initializable; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.interaction.Option; import core.game.node.Node; @@ -24,7 +24,7 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/zone/TzhaarZone.java b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarZone.java similarity index 94% rename from Server/src/main/java/core/game/content/zone/TzhaarZone.java rename to Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarZone.java index 2e56f6dea..dc3b2e1cb 100644 --- a/Server/src/main/java/core/game/content/zone/TzhaarZone.java +++ b/Server/src/main/content/region/karamja/tzhaar/handlers/TzhaarZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.karamja.tzhaar.handlers; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/content/region/misc/apeatoll/dialogue/bananaplantation/BonzaraDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/bananaplantation/BonzaraDialogue.kt new file mode 100644 index 000000000..e61eb228a --- /dev/null +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/bananaplantation/BonzaraDialogue.kt @@ -0,0 +1,54 @@ +package content.region.misc.apeatoll.dialogue.bananaplantation + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class BonzaraDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT,"It looks like you're trying to escape. Would you like some help?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Yes", "No").also { stage++ } + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.WORRIED, "I ... uh ... yes.").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.ASKING, "No thank you. Who are you by the way?").also { stage = 20 } + } + + 10 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Right you are.").also { stage++ } + 11 -> { + end() + //teleport to ape atoll + } + + 20 -> npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Never mind that child. You should worry more about who you are and the nature of the forces that have driven you here.").also { stage++ } + 21 -> player(core.game.dialogue.FacialExpression.THINKING, "I'll ... keep that in mind, thanks.").also { stage++ } + 22 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "We WILL meet again, " + player.name + ".").also { stage++ } + 23 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Ok...").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BonzaraDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BONZARA_1468) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogue.kt rename to Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogue.kt index 9fa537a0a..4c1ec3698 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogue.kt +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.apeatoll.dungeon +package content.region.misc.apeatoll.dialogue.dungeon -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,15 +13,15 @@ import org.rs09.consts.NPCs */ @Initializable -class ZooknockDialogue(player: Player? = null) : DialoguePlugin(player){ +class ZooknockDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ - var fr = FacialExpression.FRIENDLY - var neu = FacialExpression.NEUTRAL - var ask = FacialExpression.ASKING - var nor = FacialExpression.OLD_NORMAL - var ntalk1 = FacialExpression.OLD_CALM_TALK1 - var ntalk2 = FacialExpression.OLD_CALM_TALK2 + var fr = core.game.dialogue.FacialExpression.FRIENDLY + var neu = core.game.dialogue.FacialExpression.NEUTRAL + var ask = core.game.dialogue.FacialExpression.ASKING + var nor = core.game.dialogue.FacialExpression.OLD_NORMAL + var ntalk1 = core.game.dialogue.FacialExpression.OLD_CALM_TALK1 + var ntalk2 = core.game.dialogue.FacialExpression.OLD_CALM_TALK2 var hasSpokenToZook = false @@ -52,7 +52,7 @@ class ZooknockDialogue(player: Player? = null) : DialoguePlugin(player){ 12 -> playerl(neu, "No, I have been accompanied by Flight Commander Waydar. We flew south on a special type of glider and landed on a small island to our east.").also { stage++ } 13 -> npcl(ntalk2, "The so called Crash Island. We left there one of our number, Lumdo, to guard our gliders until our return.").also { stage++ } 14 -> player(neu, "Yes, we have met. He ferried me across to the atoll.").also { stage++ } - 15 -> npcl(FacialExpression.OLD_ANGRY1, "He did!? He was explicitly ordered to guard the gliders! How did this happen? Who is guarding the gliders now?").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.OLD_ANGRY1, "He did!? He was explicitly ordered to guard the gliders! How did this happen? Who is guarding the gliders now?").also { stage++ } 16 -> playerl(ntalk1, "Waydar ordered him to leave his post. He is guarding the gliders himself.").also { stage++ } 17 -> npcl(ntalk2, "Flight Commander Waydar you said? For some reason that name is familiar...").also { stage++ } 18 -> player(ask, "So why are you here?").also { stage++ } @@ -61,7 +61,7 @@ class ZooknockDialogue(player: Player? = null) : DialoguePlugin(player){ 21 -> npc(ntalk1, "Correct. I assume Lumdo told you this?").also { stage++ } 22 -> player(ask, "Yes. What happened when you landed here?").also { stage++ } 23 -> npcl(ntalk2, "We split up into several small groups to search the island for potential gnome glider launch sites. Whilst we knew the island to be inhabited, we did not expect its occupants to be quite so ... militant.").also { stage++ } - 24 -> player(FacialExpression.THINKING, "...").also { stage++ } + 24 -> player(core.game.dialogue.FacialExpression.THINKING, "...").also { stage++ } 25 -> npcl(ntalk1, "Monkeys. Lots of monkeys. They are unlike any other type of monkey we've come across. A far cry from the usual wild variety, these were armed with high quality weaponry and uncanny tactical ability.").also { stage++ } 26 -> npcl(ntalk2, "We were overwhelmed in numbers. Some of us managed to escape, but the rest were taken captive.").also { stage++ } 27 -> player(ask, "Who survived?").also { stage++ } @@ -135,7 +135,7 @@ class ZooknockDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ZooknockDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogueFile.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogueFile.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogueFile.kt rename to Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogueFile.kt index 05e180fe2..7fa68c04f 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/dungeon/ZooknockDialogueFile.kt +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/dungeon/ZooknockDialogueFile.kt @@ -1,14 +1,13 @@ -package rs09.game.content.dialogue.region.examcentre +package content.region.misc.apeatoll.dialogue.dungeon -import api.addItemOrDrop -import api.sendDoubleItemDialogue -import api.sendItemDialogue -import core.game.content.dialogue.FacialExpression +import content.global.handlers.item.withnpc.ZooknockListener +import core.api.addItemOrDrop +import core.api.sendDoubleItemDialogue +import core.api.sendItemDialogue import core.game.node.entity.npc.NPC import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.item.withnpc.ZooknockListener +import core.game.dialogue.DialogueFile +import core.game.dialogue.FacialExpression /** * @author qmqz diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/AberabDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/AberabDialogue.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/AberabDialogue.kt rename to Server/src/main/content/region/misc/apeatoll/dialogue/marim/AberabDialogue.kt index 593b63ac2..8eee92aa5 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/AberabDialogue.kt +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/AberabDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.apeatoll.marim +package content.region.misc.apeatoll.dialogue.marim -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import core.plugin.Initializable */ @Initializable -class AberabDialogue(player: Player? = null) : DialoguePlugin(player){ +class AberabDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_ANGRY1,"Grr ... Get out of my way...") + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"Grr ... Get out of my way...") stage = 99 return true } @@ -28,7 +28,7 @@ class AberabDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AberabDialogue(player) } diff --git a/Server/src/main/content/region/misc/apeatoll/dialogue/marim/DagaDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/DagaDialogue.kt new file mode 100644 index 000000000..572138fcb --- /dev/null +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/DagaDialogue.kt @@ -0,0 +1,62 @@ +package content.region.misc.apeatoll.dialogue.marim + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +/** + * @author qmqz + * Does not include treasure trails dialogue + */ + +@Initializable +class DagaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Would you like to buy or sell some scimitars?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Yes, please.", "No, thanks.", "Do you have any Dragon Scimitars in stock?").also { stage++ } + + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No, thanks.").also { stage = END_DIALOGUE } + 3 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "Do you have any Dragon Scimitars in stock?").also { stage = 30 } + } + + 10 -> end().also { npc.openShop(player) } + + 30 -> npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT, "It just so happens I recently got a fresh delivery, do you want to buy one?").also { stage++ } + 31 -> options("Yes, please.", "No, thanks.").also { stage++ } + + 32 -> when (buttonId) { + 1 -> if (inInventory(player, Items.COINS_995, 100000)) { + end().also { return removeItem(player, Item(Items.COINS_995, 100000)) && addItem(player, Items.DRAGON_SCIMITAR_4587, 1) } + } else { + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL, "Sorry but you don't have enough to buy one, at the moment it costs 100,000 gold coins.").also { stage = END_DIALOGUE } + } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = END_DIALOGUE } + } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DagaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DAGA_1434) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/ElderGuardDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/ElderGuardDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/ElderGuardDialogue.kt rename to Server/src/main/content/region/misc/apeatoll/dialogue/marim/ElderGuardDialogue.kt index a33c1e8e8..85a38feb8 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/ElderGuardDialogue.kt +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/ElderGuardDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.apeatoll.marim +package content.region.misc.apeatoll.dialogue.marim -import api.toIntArray -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.toIntArray +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,7 +13,7 @@ import org.rs09.consts.NPCs */ @Initializable -class ElderGuardDialogue(player: Player? = null) : DialoguePlugin(player){ +class ElderGuardDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ val ids = 4025..4031 @@ -27,11 +27,11 @@ class ElderGuardDialogue(player: Player? = null) : DialoguePlugin(player){ if (player.equipment.containsAtLeastOneItem(ids.toIntArray())) { if (outside) { - npc(FacialExpression.OLD_ANGRY1, "Grrr ... What do you want?").also { stage = 10 } + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Grrr ... What do you want?").also { stage = 10 } } else if(cornerGuard){ - npc(FacialExpression.OLD_ANGRY1, "Grrr ... What do you want?").also { stage = 20 } + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Grrr ... What do you want?").also { stage = 20 } } else { - npc(FacialExpression.OLD_ANGRY1, "Move!").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1, "Move!").also { stage = 99 } } } else { //todo monke is gonna knock you out if you don't have a monkey gree gree thang, chicken wang @@ -42,18 +42,18 @@ class ElderGuardDialogue(player: Player? = null) : DialoguePlugin(player){ override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 10 -> playerl(FacialExpression.ASKING, "I must speak with Awowogei on a subject of great import.").also { stage ++ } - 11 -> npc(FacialExpression.OLD_NORMAL, "As you wish.").also { stage = 99 } + 10 -> playerl(core.game.dialogue.FacialExpression.ASKING, "I must speak with Awowogei on a subject of great import.").also { stage ++ } + 11 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "As you wish.").also { stage = 99 } - 20 -> player(FacialExpression.ASKING, "I would like to leave now.").also { stage ++ } - 21 -> npc(FacialExpression.OLD_NORMAL, "As you wish.").also { stage = 99 } + 20 -> player(core.game.dialogue.FacialExpression.ASKING, "I would like to leave now.").also { stage ++ } + 21 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "As you wish.").also { stage = 99 } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ElderGuardDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/MuruwoiDialogue.kt b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/MuruwoiDialogue.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/MuruwoiDialogue.kt rename to Server/src/main/content/region/misc/apeatoll/dialogue/marim/MuruwoiDialogue.kt index 9eb5f376b..c9f5e9f57 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/MuruwoiDialogue.kt +++ b/Server/src/main/content/region/misc/apeatoll/dialogue/marim/MuruwoiDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.apeatoll.marim +package content.region.misc.apeatoll.dialogue.marim -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class MuruwoiDialogue(player: Player? = null) : DialoguePlugin(player){ +class MuruwoiDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_ANGRY1,"Grr ... Get out of my way...") + npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"Grr ... Get out of my way...") stage = 99 return true } @@ -29,7 +29,7 @@ class MuruwoiDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MuruwoiDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/dialogues/CrateDialogues.kt b/Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateDialogues.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/object/dialogues/CrateDialogues.kt rename to Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateDialogues.kt index adf904d82..573a36171 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/dialogues/CrateDialogues.kt +++ b/Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateDialogues.kt @@ -1,13 +1,13 @@ -package rs09.game.interaction.`object`.dialogues +package content.region.misc.apeatoll.quest.monkeymadness -import api.* +import core.api.* +import core.game.dialogue.DialogueFile import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.link.TeleportManager import core.game.system.task.Pulse import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile import java.util.concurrent.Executors import java.util.concurrent.TimeUnit diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/objects/CrateHandler.kt b/Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateHandler.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/interaction/object/objects/CrateHandler.kt rename to Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateHandler.kt index 3c2b41ad8..f6b557a6c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/objects/CrateHandler.kt +++ b/Server/src/main/content/region/misc/apeatoll/quest/monkeymadness/CrateHandler.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction.`object`.objects +package content.region.misc.apeatoll.quest.monkeymadness -import api.openDialogue -import api.sendMessage +import core.api.openDialogue +import core.api.sendMessage import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.`object`.dialogues.CrateDialogues +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author qmqz diff --git a/Server/src/main/java/core/game/content/zone/CrandorZone.java b/Server/src/main/content/region/misc/crandor/handlers/CrandorZone.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/CrandorZone.java rename to Server/src/main/content/region/misc/crandor/handlers/CrandorZone.java index 70c3fc020..aeaead05b 100644 --- a/Server/src/main/java/core/game/content/zone/CrandorZone.java +++ b/Server/src/main/content/region/misc/crandor/handlers/CrandorZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.misc.crandor.handlers; import core.game.node.entity.Entity; import core.game.world.map.zone.MapZone; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/EnchantedValleyListeners.kt b/Server/src/main/content/region/misc/enchvalley/handlers/EnchantedValleyListeners.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/interaction/object/EnchantedValleyListeners.kt rename to Server/src/main/content/region/misc/enchvalley/handlers/EnchantedValleyListeners.kt index fd1bd1aea..ddcff97b7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/EnchantedValleyListeners.kt +++ b/Server/src/main/content/region/misc/enchvalley/handlers/EnchantedValleyListeners.kt @@ -1,12 +1,12 @@ -package rs09.game.interaction.`object` +package content.region.misc.enchvalley.handlers import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class EnchantedValleyListeners : InteractionListener { val ENCHANTED_V_TREE = 16265 diff --git a/Server/src/main/java/core/game/content/dialogue/CaveMonk.java b/Server/src/main/content/region/misc/entrana/dialogue/CaveMonk.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/CaveMonk.java rename to Server/src/main/content/region/misc/entrana/dialogue/CaveMonk.java index 1a9d79e95..beaaccd03 100644 --- a/Server/src/main/java/core/game/content/dialogue/CaveMonk.java +++ b/Server/src/main/content/region/misc/entrana/dialogue/CaveMonk.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.entrana.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/ConeDialogue.java b/Server/src/main/content/region/misc/entrana/dialogue/ConeDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/ConeDialogue.java rename to Server/src/main/content/region/misc/entrana/dialogue/ConeDialogue.java index cb74607d8..e2ba278aa 100644 --- a/Server/src/main/java/core/game/content/dialogue/ConeDialogue.java +++ b/Server/src/main/content/region/misc/entrana/dialogue/ConeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.entrana.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EntranaChurchMonk.java b/Server/src/main/content/region/misc/entrana/dialogue/EntranaChurchMonk.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/EntranaChurchMonk.java rename to Server/src/main/content/region/misc/entrana/dialogue/EntranaChurchMonk.java index 99906b51e..4086b195f 100644 --- a/Server/src/main/java/core/game/content/dialogue/EntranaChurchMonk.java +++ b/Server/src/main/content/region/misc/entrana/dialogue/EntranaChurchMonk.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.entrana.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FrincosDialogue.java b/Server/src/main/content/region/misc/entrana/dialogue/FrincosDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/FrincosDialogue.java rename to Server/src/main/content/region/misc/entrana/dialogue/FrincosDialogue.java index 708c9a3db..cc49de3b6 100644 --- a/Server/src/main/java/core/game/content/dialogue/FrincosDialogue.java +++ b/Server/src/main/content/region/misc/entrana/dialogue/FrincosDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.entrana.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FritzGlassBlowerDialogue.java b/Server/src/main/content/region/misc/entrana/dialogue/FritzGlassBlowerDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/FritzGlassBlowerDialogue.java rename to Server/src/main/content/region/misc/entrana/dialogue/FritzGlassBlowerDialogue.java index cbdf0dd21..0e2840222 100644 --- a/Server/src/main/java/core/game/content/dialogue/FritzGlassBlowerDialogue.java +++ b/Server/src/main/content/region/misc/entrana/dialogue/FritzGlassBlowerDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.entrana.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; diff --git a/Server/src/main/content/region/misc/entrana/dialogue/HighPriestEntranaDialogue.kt b/Server/src/main/content/region/misc/entrana/dialogue/HighPriestEntranaDialogue.kt new file mode 100644 index 000000000..bee5903bd --- /dev/null +++ b/Server/src/main/content/region/misc/entrana/dialogue/HighPriestEntranaDialogue.kt @@ -0,0 +1,68 @@ +package content.region.misc.entrana.dialogue + +import core.api.addItemOrDrop +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class HighPriestEntranaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + if (!player.questRepository.isComplete("Heroes' Quest")) { + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Many greetings. Welcome to our fair island.").also { stage = 10 } + } else { + options("Have you seen a pair of ice gloves?", "Ask about Entrana").also { stage = 5 } + } + + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "and devoted the island to those who wish peace for the world.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "The inhabitants of this island are mostly monks who spend their time meditating on Saradomin's ways.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course, there are now more pilgrims to this holy site, since Saradomin defeated Zamorak in the battle of Lumbridge. It is good that so many see Saradomin's true glory!").also { stage = 99 } + + 5 -> when (buttonId) { + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "By which you mean the pair of mythical gloves you stole from the cold dead body of the Queen of the Ice?").also { stage = 20 } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY,"You are standing on the holy island of Entrana. It was here that Saradomin first stepped upon Gielinor. In homage to Saradomin's first arrival, we have built a great church,").also { stage = 1 } + } + + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Enjoy our stay here. May it be spiritually uplifting!").also { stage = 99 } + + 20 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Er...").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "The gloves that you acquired to aid you in plucking the Entranan firebird? Another victim of your murderous nature, I should add.").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "The ice gloves that, from context, I would assume you have lost, if not carelessly discarded?").also { stage++ } + + 23 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Those ice gloves, yes.").also { stage++ } + 24 -> sendDialogue("The high priest of Entrana shivers as he hands you your lost ice gloves.").also { + addItemOrDrop(player, Items.ICE_GLOVES_1580, 1) + stage++ + } + 25 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "One of my monks found these gloves. If only to spare this world from further carnage, I return them to you.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return HighPriestEntranaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.HIGH_PRIEST_216) + } +} diff --git a/Server/src/main/content/region/misc/entrana/dialogue/MazionDialogue.kt b/Server/src/main/content/region/misc/entrana/dialogue/MazionDialogue.kt new file mode 100644 index 000000000..6c084daae --- /dev/null +++ b/Server/src/main/content/region/misc/entrana/dialogue/MazionDialogue.kt @@ -0,0 +1,41 @@ +package content.region.misc.entrana.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class MazionDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when ((1..3).random()) { + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Nice weather we're having today!").also { stage = 99 } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Hello " + player.name + ", fine day today!").also { stage = 99 } + 3 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "Please leave me alone, a parrot stole my banana.").also { stage = 99 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MazionDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MAZION_3114) + } +} diff --git a/Server/src/main/java/core/game/interaction/city/EntranaObjectPlugin.java b/Server/src/main/content/region/misc/entrana/handlers/EntranaObjectPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/city/EntranaObjectPlugin.java rename to Server/src/main/content/region/misc/entrana/handlers/EntranaObjectPlugin.java index a61706255..d81a1be5c 100644 --- a/Server/src/main/java/core/game/interaction/city/EntranaObjectPlugin.java +++ b/Server/src/main/content/region/misc/entrana/handlers/EntranaObjectPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.misc.entrana.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/etceteria/FishmongerEtcDialogue.kt b/Server/src/main/content/region/misc/etceteria/dialogue/FishmongerEtcDialogue.kt similarity index 55% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/etceteria/FishmongerEtcDialogue.kt rename to Server/src/main/content/region/misc/etceteria/dialogue/FishmongerEtcDialogue.kt index 47c24565a..297e80eef 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/etceteria/FishmongerEtcDialogue.kt +++ b/Server/src/main/content/region/misc/etceteria/dialogue/FishmongerEtcDialogue.kt @@ -1,8 +1,7 @@ -package rs09.game.content.dialogue.region.etceteria +package content.region.misc.etceteria.dialogue -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FishmongerEtcDialogue(player: Player? = null) : DialoguePlugin(player){ +class FishmongerEtcDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY,"Welcome, ${player.getAttribute("fremennikname","fremmyname")}. My fish is fresher than any in Miscellania.").also { stage = 0 } + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome, ${player.getAttribute("fremennikname","fremmyname")}. My fish is fresher than any in Miscellania.").also { stage = 0 } return true } @@ -28,7 +27,7 @@ class FishmongerEtcDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FishmongerEtcDialogue(player) } diff --git a/Server/src/main/content/region/misc/keldagrim/dialogue/AgmundiDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/AgmundiDialogue.kt new file mode 100644 index 000000000..6e097d97d --- /dev/null +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/AgmundiDialogue.kt @@ -0,0 +1,67 @@ +package content.region.misc.keldagrim.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * @author qmqz + */ + +@Initializable +class AgmundiDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"Oh no, not another human... what do you want then?") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.ASKING, "Oh, do you get humans here often?").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "Not that often, no, but sometimes.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "Of course, since you people are too big for dwarven", + "clothes, they typically don't stay very long.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Why don't you make bigger clothes then?").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "What'd be the point? Besides, I don't make", "these clothes myself.").also { stage++ } + + 5 -> options ("Who makes these clothes then?", "I still want to buy your clothes.", "So do you have any quests for me?").also { stage++ } + 6 -> when(buttonId){ + 1 -> player(core.game.dialogue.FacialExpression.GUILTY, "Who makes the clothes then?").also { stage = 10 } + 2 -> npc.openShop(player) + 3 -> npc(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED,"Quests? Why would I have any quests?").also { stage = 20 } + + } + + 10 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Oh, my sister, she lives in Keldagrim-East.", + "Has a little stall on the other side of", + "the Kelda.").also { stage++ } + 11 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"If she only worked a little harder, like me,", + "she wouldn't have to live in the sewers of the city.", + "Shame really.").also { stage++ } + 12 -> player("The sewers? Your sister lives in the sewers?").also { stage++ } + 13 -> npc(core.game.dialogue.FacialExpression.OLD_SAD,"Keldagrim-East, such a ghastly place.", + "Not civil, polite and clean like we are in the West.").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "Uh-huh.").also { stage=99 } + + 20 -> player("Oh, just anything to do would be fine.").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED,"No, not right now... maybe I'll have something", + "for you to do later, but nothing at the moment.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AgmundiDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(2161) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/BlackGuardDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/BlackGuardDialogue.kt similarity index 73% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/BlackGuardDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/BlackGuardDialogue.kt index 1e8a93bd1..d56b17611 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/worldwide/BlackGuardDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/BlackGuardDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.content.dialogue.region.worldwide +package content.region.misc.keldagrim.dialogue -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -11,7 +11,7 @@ import org.rs09.consts.NPCs */ @Initializable -class BlackGuardDialogue(player: Player? = null) : DialoguePlugin(player){ +class BlackGuardDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC @@ -26,7 +26,7 @@ class BlackGuardDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BlackGuardDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/CartConductorDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/CartConductorDialogue.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/CartConductorDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/CartConductorDialogue.kt index 3d6e04c2c..f47aca3ac 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/CartConductorDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/CartConductorDialogue.kt @@ -1,20 +1,21 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.dialogue import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.world.map.Location import core.plugin.Initializable +import content.region.misc.keldagrim.handlers.KeldagrimCartMethods private const val ICE_MOUNTAIN_CONDUCTOR = 2180 private const val WHITE_WOLF_CONDUCTOR = 2181 private const val KELDAGRIM_CONDUCTOR = 2182 @Initializable -class CartConductorDialogue(player: Player? = null) : DialoguePlugin(player) { +class CartConductorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var visitedKeldagrim = false override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ @@ -41,8 +42,8 @@ class CartConductorDialogue(player: Player? = null) : DialoguePlugin(player) { 301 -> options("Grand Exchange","White Wolf Mountain","Ice Mountain").also { stage++ } 302 -> when(buttonId){ 1 -> KeldagrimCartMethods.leaveKeldagrimTo(player, Location.create(3140, 3507, 0)).also{ end() } - 2 -> KeldagrimCartMethods.leaveKeldagrimTo(player,Location.create(2875, 9871, 0)).also{ end() } - 3 -> KeldagrimCartMethods.leaveKeldagrimTo(player,Location.create(2997, 9837, 0)).also{ end() } + 2 -> KeldagrimCartMethods.leaveKeldagrimTo(player, Location.create(2875, 9871, 0)).also{ end() } + 3 -> KeldagrimCartMethods.leaveKeldagrimTo(player, Location.create(2997, 9837, 0)).also{ end() } } 1000 -> end() } @@ -60,7 +61,7 @@ class CartConductorDialogue(player: Player? = null) : DialoguePlugin(player) { } override fun npc(vararg messages: String?): Component { - return super.npc(FacialExpression.OLD_NORMAL, *messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_NORMAL, *messages) } override fun open(vararg args: Any?): Boolean { @@ -76,7 +77,7 @@ class CartConductorDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return CartConductorDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/DwarvenBoatmanDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/DwarvenBoatmanDialogue.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/DwarvenBoatmanDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/DwarvenBoatmanDialogue.kt index 78daf00b6..85e4daa39 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/DwarvenBoatmanDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/DwarvenBoatmanDialogue.kt @@ -1,17 +1,15 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.dialogue import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.Components -import rs09.game.world.GameWorld +import core.game.world.GameWorld @Initializable -class DwarvenBoatmanDialogue(player: Player? = null) : DialoguePlugin(player) { +class DwarvenBoatmanDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage++){ 0 -> player("I'd like to go to Keldagrim please.") @@ -39,7 +37,7 @@ class DwarvenBoatmanDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DwarvenBoatmanDialogue(player) } @@ -48,7 +46,7 @@ class DwarvenBoatmanDialogue(player: Player? = null) : DialoguePlugin(player) { } override fun npc(vararg messages: String?): Component { - return super.npc(FacialExpression.OLD_NORMAL, *messages) + return super.npc(core.game.dialogue.FacialExpression.OLD_NORMAL, *messages) } } diff --git a/Server/src/main/content/region/misc/keldagrim/dialogue/InnKeeperDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/InnKeeperDialogue.kt new file mode 100644 index 000000000..1dfaebdeb --- /dev/null +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/InnKeeperDialogue.kt @@ -0,0 +1,57 @@ +package content.region.misc.keldagrim.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class InnKeeperDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + npc(core.game.dialogue.FacialExpression.CHILD_NEUTRAL, "Welcome to the King's Axe inn!", "What can I help you with?").also { stage++ } + } + + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Can I have some beer please?").also { stage++ } + } + + 2 -> { + npc(core.game.dialogue.FacialExpression.CHILD_NORMAL, "Go to the bar downstairs.", "I only deal with residents.").also { stage++ } + } + + 3 -> { + player(core.game.dialogue.FacialExpression.THINKING, "Residents? People live here?").also { stage++ } + } + + 4 -> { + npc(core.game.dialogue.FacialExpression.CHILD_LOUDLY_LAUGHING, "No, just guests that stay the night.").also { stage = 99 } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return InnKeeperDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.INN_KEEPER_2177) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/JorzikDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/JorzikDialogue.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/JorzikDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/JorzikDialogue.kt index e7e6f490f..0c0b33e7e 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/JorzikDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/JorzikDialogue.kt @@ -1,11 +1,11 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.dialogue -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import api.* -import rs09.tools.END_DIALOGUE +import core.api.* +import core.tools.END_DIALOGUE const val JORZIK = 2565 @@ -13,7 +13,7 @@ const val JORZIK = 2565 * @author phil lips*/ @Initializable -class JorzikDialogue(player: Player? = null) : DialoguePlugin(player) { +class JorzikDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC @@ -41,7 +41,7 @@ class JorzikDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return JorzikDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/NolarDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/NolarDialogue.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/NolarDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/NolarDialogue.kt index 950b81ae4..99a22d6cf 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/NolarDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/NolarDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.keldagrim +package content.region.misc.keldagrim.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class NolarDialogue(player: Player? = null) : DialoguePlugin(player){ +class NolarDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.CHILD_NORMAL,"I have a wide variety of crafting tools on offer,", + npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"I have a wide variety of crafting tools on offer,", "care to take a look?").also { stage = 0 } return true } @@ -29,10 +29,10 @@ class NolarDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "Yes please!").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes please!").also { stage = 10 } } 2 -> { - player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } } } @@ -45,7 +45,7 @@ class NolarDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return NolarDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/OrdanDialogue.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/OrdanDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/OrdanDialogue.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/OrdanDialogue.kt index fc8abea7a..567720bf3 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/OrdanDialogue.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/OrdanDialogue.kt @@ -1,16 +1,15 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.dialogue -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import api.* +import core.api.* import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.END_DIALOGUE /**It's just some simple Ordan dialogue * don't look at the unnoting code if you care @@ -20,7 +19,7 @@ import rs09.tools.END_DIALOGUE const val ORDAN = 2564 @Initializable -class OrdanDialogue(player: Player? = null) : DialoguePlugin(player) { +class OrdanDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC @@ -37,7 +36,7 @@ class OrdanDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return OrdanDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/Reinald.kt b/Server/src/main/content/region/misc/keldagrim/dialogue/Reinald.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/Reinald.kt rename to Server/src/main/content/region/misc/keldagrim/dialogue/Reinald.kt index 64e8e5d24..96b102e62 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/Reinald.kt +++ b/Server/src/main/content/region/misc/keldagrim/dialogue/Reinald.kt @@ -1,8 +1,8 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.dialogue import core.cache.def.impl.NPCDefinition import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player @@ -16,7 +16,7 @@ const val REINALD = 2194 * @author Ceikry */ @Initializable -class ReinaldDialogue(player: Player? = null) : DialoguePlugin(player){ +class ReinaldDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage++){ 0 -> options("Yes, please!", "No, thanks.") @@ -34,7 +34,7 @@ class ReinaldDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ReinaldDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimCartMethods.kt b/Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimCartMethods.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimCartMethods.kt rename to Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimCartMethods.kt index 31797319d..0fb6f4cf8 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimCartMethods.kt +++ b/Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimCartMethods.kt @@ -1,4 +1,4 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.handlers import core.game.component.Component import core.game.node.entity.npc.NPC @@ -7,7 +7,7 @@ import core.game.system.task.Pulse import core.game.world.map.Direction import core.game.world.map.Location import org.rs09.consts.Components -import rs09.game.world.GameWorld +import core.game.world.GameWorld object KeldagrimCartMethods { @JvmStatic diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimPlugin.kt b/Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimPlugin.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimPlugin.kt rename to Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimPlugin.kt index 770a316ae..496e0aaca 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/KeldagrimPlugin.kt +++ b/Server/src/main/content/region/misc/keldagrim/handlers/KeldagrimPlugin.kt @@ -1,18 +1,17 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.handlers -import api.* +import core.api.* import core.cache.def.impl.SceneryDefinition -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.node.scenery.Scenery import core.game.world.map.Location import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.content.dialogue.DialogueFile +import core.game.dialogue.DialogueFile /** * File that contains several plugins relating to Keldagrim, @@ -79,7 +78,7 @@ class KeldagrimOptionHandlers : OptionHandler() { * Dialogue used for the trapdoor in the grand exchange. */ @Initializable -class GETrapdoorDialogue(player: Player? = null) : DialoguePlugin(player){ +class GETrapdoorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> end() @@ -103,7 +102,7 @@ class GETrapdoorDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GETrapdoorDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/ReinaldSmithingEmporiumInterface.kt b/Server/src/main/content/region/misc/keldagrim/handlers/ReinaldSmithingEmporiumInterface.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/content/zone/keldagrim/ReinaldSmithingEmporiumInterface.kt rename to Server/src/main/content/region/misc/keldagrim/handlers/ReinaldSmithingEmporiumInterface.kt index 378e813d4..c6f0a0f9b 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/keldagrim/ReinaldSmithingEmporiumInterface.kt +++ b/Server/src/main/content/region/misc/keldagrim/handlers/ReinaldSmithingEmporiumInterface.kt @@ -1,4 +1,4 @@ -package rs09.game.content.zone.keldagrim +package content.region.misc.keldagrim.handlers import core.game.component.Component import core.game.component.ComponentDefinition diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/AlvissDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/AlvissDialogue.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/AlvissDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/AlvissDialogue.kt index 4391c9622..354ab4f80 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/AlvissDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/AlvissDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class AlvissDialogue(player: Player? = null) : DialoguePlugin(player){ +class AlvissDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } return true } @@ -28,26 +28,26 @@ class AlvissDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } } } 10 -> { - npc(FacialExpression.OLD_DEFAULT,"I'm waiting for my shift, of course.", + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"I'm waiting for my shift, of course.", "We can't dig all the time, you know.").also { stage++ } } 11 -> { - npc(FacialExpression.OLD_DEFAULT," I'm also researching the links between the ", + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT," I'm also researching the links between the ", "Fremenniks and the Dwarves.").also { stage++ } } 12 -> { - npc(FacialExpression.OLD_DEFAULT,"I've found that we have some mythology in common.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"I've found that we have some mythology in common.").also { stage = 99 } } 99 -> end() @@ -55,7 +55,7 @@ class AlvissDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AlvissDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DerrikDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/DerrikDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DerrikDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/DerrikDialogue.kt index a54f0abd0..cefd28535 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DerrikDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/DerrikDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class DerrikDialogue(player: Player? = null) : DialoguePlugin(player){ +class DerrikDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Good day, Sir. Can I help you with anything?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Good day, Sir. Can I help you with anything?").also { stage = 0 } return true } @@ -30,15 +30,15 @@ class DerrikDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.ASKING, "Can I use your anvil?").also { stage = 5 } + player(core.game.dialogue.FacialExpression.ASKING, "Can I use your anvil?").also { stage = 5 } } 2 -> { - player(FacialExpression.NEUTRAL, "Nothing, thanks.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "Nothing, thanks.").also { stage = 99 } } } 5 -> { - npc(FacialExpression.NEUTRAL, "You may.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.NEUTRAL, "You may.").also { stage = 99 } } 99 -> end() @@ -46,7 +46,7 @@ class DerrikDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DerrikDialogue(player) } diff --git a/Server/src/main/content/region/misc/miscellania/dialogue/DonalDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/DonalDialogue.kt new file mode 100644 index 000000000..77447aa88 --- /dev/null +++ b/Server/src/main/content/region/misc/miscellania/dialogue/DonalDialogue.kt @@ -0,0 +1,52 @@ +package content.region.misc.miscellania.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DonalDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"What do you want?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + player(core.game.dialogue.FacialExpression.THINKING, "Just wondering if you were still here.").also { stage++ } + } + + 1 -> { + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Of course I'm still here.").also { stage++ } + } + + 2 -> { + npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I'm not going near that crack in the wall again.").also { stage++ } + } + + 3 -> { + npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "Rock falls and so on are fine, ", "but sea monsters in caves - never!").also { stage = 99 } + } + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DonalDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DONAL_3938) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/misc/miscellania/dialogue/FerdDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/FerdDialogue.kt new file mode 100644 index 000000000..22c7cf8f0 --- /dev/null +++ b/Server/src/main/content/region/misc/miscellania/dialogue/FerdDialogue.kt @@ -0,0 +1,66 @@ +package content.region.misc.miscellania.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class FerdDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + player(core.game.dialogue.FacialExpression.THINKING, "What are you doing down here?.").also { stage++ } + } + + 1 -> { + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Shoring up the walls.").also { stage++ } + } + + 2 -> { + player(core.game.dialogue.FacialExpression.ASKING, "What does that do?").also { stage++ } + } + + 3 -> { + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "Stops them falling down.").also { stage = 99 } + } + + 4 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Oh, I see.").also { stage++ } + } + + 5 -> { + npc(core.game.dialogue.FacialExpression.OLD_NOT_INTERESTED, "Aye.", + "If you want to chatter, you'd better talk to ", + "Thorodin over there. I'm working.").also { stage = 99 } + } + + 6 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Okay then.").also { stage++ } + } + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FerdDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FERD_3937) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FinnDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/FinnDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FinnDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/FinnDialogue.kt index f3908a8c4..df03a1062 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FinnDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/FinnDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FinnDialogue(player: Player? = null) : DialoguePlugin(player){ +class FinnDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Can I help you, your Royal Highness?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Can I help you, your Royal Highness?").also { stage = 0 } stage = 0 return true } @@ -30,15 +30,15 @@ class FinnDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.ASKING, "Yes please. What are you selling?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.ASKING, "Yes please. What are you selling?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "No thanks.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "No thanks.").also { stage = 99 } } 3 -> { - player(FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } + player(core.game.dialogue.FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } } } @@ -47,7 +47,7 @@ class FinnDialogue(player: Player? = null) : DialoguePlugin(player){ } 20 -> { - npc(FacialExpression.HALF_WORRIED, "A lot drier in the winter than it is above ground.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.HALF_WORRIED, "A lot drier in the winter than it is above ground.").also { stage = 99 } } 99 -> { @@ -58,7 +58,7 @@ class FinnDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FinnDialogue(player) } diff --git a/Server/src/main/content/region/misc/miscellania/dialogue/FishmongerMiscDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/FishmongerMiscDialogue.kt new file mode 100644 index 000000000..18d23fee0 --- /dev/null +++ b/Server/src/main/content/region/misc/miscellania/dialogue/FishmongerMiscDialogue.kt @@ -0,0 +1,42 @@ +package content.region.misc.miscellania.dialogue + +import core.api.isQuestComplete +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class FishmongerMiscDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if (!isQuestComplete(player, "Throne of Miscellania")) { + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Greetings, Sir. Get your fresh fish here! I've heard that the Etceterian fish is stored in a cow shed.").also { stage = 0 } + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Greetings, Your Highness. Have some fresh fish! I've heard that the Etceterian fish is stored in a cow shed.").also { stage = 0 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> end().also { npc.openShop(player) } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FishmongerMiscDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FISHMONGER_1393) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FlowerGirlDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/FlowerGirlDialogue.kt similarity index 65% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FlowerGirlDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/FlowerGirlDialogue.kt index e5ee5fa99..9b4fcfcb1 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FlowerGirlDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/FlowerGirlDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import api.addItemOrDrop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.addItemOrDrop +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item @@ -15,7 +15,7 @@ import org.rs09.consts.NPCs */ @Initializable -class FlowerGirlDialogue(player: Player? = null) : DialoguePlugin(player){ +class FlowerGirlDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC @@ -27,14 +27,14 @@ class FlowerGirlDialogue(player: Player? = null) : DialoguePlugin(player){ false -> npc(FacialExpression.NEUTRAL, "Hello.").also { stage = 1 } } */ - npc(FacialExpression.NEUTRAL, "Hello.").also { stage = 1 } + npc(core.game.dialogue.FacialExpression.NEUTRAL, "Hello.").also { stage = 1 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 1 -> { - player(FacialExpression.ASKING, "Good day. What are you doing?").also { stage++ } + player(core.game.dialogue.FacialExpression.ASKING, "Good day. What are you doing?").also { stage++ } } 2 -> { @@ -44,7 +44,7 @@ class FlowerGirlDialogue(player: Player? = null) : DialoguePlugin(player){ false -> npc(FacialExpression.NEUTRAL, "I'm selling flowers, 15gp for three. Would you like some?").also { stage++ } } */ - npc(FacialExpression.NEUTRAL, "I'm selling flowers, 15gp for three. Would you like some?").also { stage++ } + npc(core.game.dialogue.FacialExpression.NEUTRAL, "I'm selling flowers, 15gp for three. Would you like some?").also { stage++ } } 3 -> { @@ -54,15 +54,15 @@ class FlowerGirlDialogue(player: Player? = null) : DialoguePlugin(player){ 4 -> when(buttonId){ 1 -> { if (player.inventory.contains(995,15)) { - npc(FacialExpression.HAPPY, "Thank you! Here you go.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.HAPPY, "Thank you! Here you go.").also { stage = 99 } player.inventory.remove(Item(995, 15)) addItemOrDrop(player, 2460, 1) } else { - player(FacialExpression.HALF_THINKING, "I'm sorry, but I don't have 15gp.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.HALF_THINKING, "I'm sorry, but I don't have 15gp.").also { stage = 99 } } } 2 -> { - player(FacialExpression.NEUTRAL, "No, thank you.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "No, thank you.").also { stage = 99 } } } @@ -71,7 +71,7 @@ class FlowerGirlDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FlowerGirlDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FullangrDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/FullangrDialogue.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FullangrDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/FullangrDialogue.kt index 5583157d7..0ab58465e 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FullangrDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/FullangrDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FullangrDialogue(player: Player? = null) : DialoguePlugin(player){ +class FullangrDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } return true } @@ -28,16 +28,16 @@ class FullangrDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } } } 10 -> { - npc(FacialExpression.OLD_DEFAULT,"I'm working on the digging, of course.", + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"I'm working on the digging, of course.", "It's a small excavation, so only two of us ", "can work on it at a time.").also { stage = 99 } } @@ -47,7 +47,7 @@ class FullangrDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FullangrDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/GreengrocerMiscDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/GreengrocerMiscDialogue.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/GreengrocerMiscDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/GreengrocerMiscDialogue.kt index cfea553c9..74ff66ee0 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/GreengrocerMiscDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/GreengrocerMiscDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class GreengrocerMiscDialogue(player: Player? = null) : DialoguePlugin(player){ +class GreengrocerMiscDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Welcome, Sir.", + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome, Sir.", "I sell only the finest and freshest vegetables!").also { stage = 0 } return true } @@ -31,7 +31,7 @@ class GreengrocerMiscDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GreengrocerMiscDialogue(player) } diff --git a/Server/src/main/content/region/misc/miscellania/dialogue/HallaDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/HallaDialogue.kt new file mode 100644 index 000000000..93acdbee3 --- /dev/null +++ b/Server/src/main/content/region/misc/miscellania/dialogue/HallaDialogue.kt @@ -0,0 +1,70 @@ +package content.region.misc.miscellania.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class HallaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome to Miscellania's first clothing store!", "We sell clothing made especially for Fremenniks", "and Dwarves.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Can I help you with anything, your Royal Highness?").also { stage++ } + } + + 1 -> { + options("I'd like to look at what you have for sale.", "No thank you, I'm fine.", "What's it like living down here?").also { stage++ } + } + + 2 -> when(buttonId){ + 1 -> { + player(core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to look at what you have for sale.").also { stage = 10 } + } + + 2 -> { + player(core.game.dialogue.FacialExpression.NEUTRAL, "No thank you, I'm fine.").also { stage = 99 } + } + + 3 -> { + player(core.game.dialogue.FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } + } + } + + 10 -> { + end().also { npc.openShop(player) } + } + + 20 -> { + npc(core.game.dialogue.FacialExpression.NEUTRAL, "It's very spacious down here.", "One of the dwarves said that the caves go on for miles!").also { stage++ } + } + 21 -> { + npc(core.game.dialogue.FacialExpression.NEUTRAL, "The only problem I find is that the lighting's not very good,", "which means I make mistakes when cutting cloth.").also { stage = 99 } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return HallaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.HALLA_3921) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/JariDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/JariDialogue.kt similarity index 52% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/JariDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/JariDialogue.kt index a54d349eb..b765c7fff 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/JariDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/JariDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class JariDialogue(player: Player? = null) : DialoguePlugin(player){ +class JariDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } return true } @@ -28,20 +28,20 @@ class JariDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } } } 10 -> { - npc(FacialExpression.OLD_DEFAULT,"I'm waiting to work on the digging.").also { stage++ } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"I'm waiting to work on the digging.").also { stage++ } } 11 -> { - npc(FacialExpression.OLD_HAPPY,"It's the first excavation I've worked on, ", + npc(core.game.dialogue.FacialExpression.OLD_HAPPY,"It's the first excavation I've worked on, ", "and I'm looking forward to it.").also { stage = 99 } } @@ -50,7 +50,7 @@ class JariDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return JariDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/KjallakOnChopDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/KjallakOnChopDialogue.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/dialogue/KjallakOnChopDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/KjallakOnChopDialogue.kt index 20a3cccbf..a8e674228 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/KjallakOnChopDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/KjallakOnChopDialogue.kt @@ -1,6 +1,7 @@ -package rs09.game.content.dialogue +package content.region.misc.miscellania.dialogue -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile class KjallakOnChopDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/MiscCitizenGoodDayDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/MiscCitizenGoodDayDialogue.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/MiscCitizenGoodDayDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/MiscCitizenGoodDayDialogue.kt index cafaad19e..ea3f56294 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/MiscCitizenGoodDayDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/MiscCitizenGoodDayDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,25 +12,25 @@ import org.rs09.consts.NPCs */ @Initializable -class MiscCitizenGoodDayDialogue(player: Player? = null) : DialoguePlugin(player){ +class MiscCitizenGoodDayDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0 -> { - npc(FacialExpression.FRIENDLY, "Good day, Your Royal Highness.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Good day, Your Royal Highness.").also { stage = 99 } } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MiscCitizenGoodDayDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/OsvaldDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/OsvaldDialogue.kt similarity index 56% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/OsvaldDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/OsvaldDialogue.kt index 59fd5c7d0..82e271b32 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/OsvaldDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/OsvaldDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,18 +12,18 @@ import org.rs09.consts.NPCs */ @Initializable -class OsvaldDialogue(player: Player? = null) : DialoguePlugin(player){ +class OsvaldDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Welcome to the Miscellania food store.","We've only opened recently.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Welcome to the Miscellania food store.","We've only opened recently.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ 0-> { - npc(FacialExpression.NEUTRAL, "Would you like to buy anything,", + npc(core.game.dialogue.FacialExpression.NEUTRAL, "Would you like to buy anything,", "your Royal Highness?").also { stage++ } } @@ -35,15 +35,15 @@ class OsvaldDialogue(player: Player? = null) : DialoguePlugin(player){ 2 -> when(buttonId){ 1 -> { - player(FacialExpression.ASKING, "Could you show me what you have for sale?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.ASKING, "Could you show me what you have for sale?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "No thank you, I don't need food just now.").also { end() } + player(core.game.dialogue.FacialExpression.NEUTRAL, "No thank you, I don't need food just now.").also { end() } } 3 -> { - player(FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } + player(core.game.dialogue.FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } } } @@ -52,7 +52,7 @@ class OsvaldDialogue(player: Player? = null) : DialoguePlugin(player){ } 20 -> { - npc(FacialExpression.FRIENDLY, "The town's thriving.", + npc(core.game.dialogue.FacialExpression.FRIENDLY, "The town's thriving.", "I'm sure it'll soon be as busy as Rellekka!").also { stage = 99 } } @@ -63,7 +63,7 @@ class OsvaldDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return OsvaldDialogue(player) } diff --git a/Server/src/main/content/region/misc/miscellania/dialogue/RunaDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/RunaDialogue.kt new file mode 100644 index 000000000..fb8a6b062 --- /dev/null +++ b/Server/src/main/content/region/misc/miscellania/dialogue/RunaDialogue.kt @@ -0,0 +1,77 @@ +package content.region.misc.miscellania.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class RunaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Would you like to try some fine Miscellanian ale,", "your Royal Highness?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + npc(core.game.dialogue.FacialExpression.ASKING, "Well I say Miscellanian, but it's actually brewed", "on the mainland.").also { stage++ } + } + + 1 -> { + npc(core.game.dialogue.FacialExpression.FRIENDLY, "Would you like to try some anyway?").also { stage++ } + } + + 2 -> { + options("Yes, please.", "No, thank you.", "What's it like living down here?").also { stage++ } + } + + 3 -> when(buttonId){ + 1 -> { + player(core.game.dialogue.FacialExpression.ASKING, "Yes please.").also { stage = 10 } + } + + 2 -> { + player(core.game.dialogue.FacialExpression.NEUTRAL, "No thank you.").also { stage = 99 } + } + + 3 -> { + player(core.game.dialogue.FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } + } + } + + 10 -> { + end().also { npc.openShop(player) } + } + + 20 -> { + npc(core.game.dialogue.FacialExpression.HALF_WORRIED, "Business is booming!").also { stage++ } + } + + 21 -> { + npc(core.game.dialogue.FacialExpression.HALF_WORRIED, "Now, if only I hadn't taken a loss to the beer I sold", "to those teenagers.").also { end() } + } + + 99 -> { + end() + } + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return RunaDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.RUNA_3920) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/ThorodinDialogue.kt b/Server/src/main/content/region/misc/miscellania/dialogue/ThorodinDialogue.kt similarity index 53% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/ThorodinDialogue.kt rename to Server/src/main/content/region/misc/miscellania/dialogue/ThorodinDialogue.kt index f34e99b96..c34711819 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/ThorodinDialogue.kt +++ b/Server/src/main/content/region/misc/miscellania/dialogue/ThorodinDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.miscellania +package content.region.misc.miscellania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class ThorodinDialogue(player: Player? = null) : DialoguePlugin(player){ +class ThorodinDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } return true } @@ -28,35 +28,35 @@ class ThorodinDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId){ 1 -> { - player(FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } + player(core.game.dialogue.FacialExpression.FRIENDLY, "What are you doing down here?").also { stage = 10 } } 2 -> { - player(FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } + player(core.game.dialogue.FacialExpression.NEUTRAL, "Good day.").also { stage = 99 } } } 10 -> { - npc(FacialExpression.OLD_DEFAULT,"We're extending the cave so more people can live in it.", + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"We're extending the cave so more people can live in it.", "These Miscellanians aren't so bad.", "They appreciate the benefits of living underground.").also { stage++ } } 11 -> { - player(FacialExpression.ASKING,"...such as?").also { stage++ } + player(core.game.dialogue.FacialExpression.ASKING,"...such as?").also { stage++ } } 12 -> { - npc(FacialExpression.OLD_DEFAULT,"Not getting rained on, for example.", + npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"Not getting rained on, for example.", "Did you do anything about that monster Donal", "was talking about?").also { stage++ } } 13 -> { - player(FacialExpression.FRIENDLY,"It's been taken care of.").also { stage++ } + player(core.game.dialogue.FacialExpression.FRIENDLY,"It's been taken care of.").also { stage++ } } 14 -> { - npc(FacialExpression.OLD_HAPPY,"Glad to hear it.", + npc(core.game.dialogue.FacialExpression.OLD_HAPPY,"Glad to hear it.", "Now we can get on with excavating.").also { stage = 99 } } @@ -65,7 +65,7 @@ class ThorodinDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ThorodinDialogue(player) } diff --git a/Server/src/main/content/region/misc/mosle/dialogue/CharleyDialogue.kt b/Server/src/main/content/region/misc/mosle/dialogue/CharleyDialogue.kt new file mode 100644 index 000000000..ab1ee240f --- /dev/null +++ b/Server/src/main/content/region/misc/mosle/dialogue/CharleyDialogue.kt @@ -0,0 +1,77 @@ +package content.region.misc.mosle.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class CharleyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + if (player.inventory.contains(Items.BOOK_O_PIRACY_7144, 1)) { + npc(core.game.dialogue.FacialExpression.FRIENDLY, "I got fish, you got gold?").also { stage = 10 } + } else { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello!").also { stage = 0 } + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Arr? Be ye wantin' te go on account with our gang o' fillibusters?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "The powder monkey be takin' a caulk after gettin' rowdy on bumboo, so there be plenty of room for ye.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Riiiiight...").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'll just be over here if you need me.").also { stage = 99 } + + 10 -> options("Yes.", "Yes, but I don't want your fish.", "What happened to your legs?").also { stage++ } + + 11 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes.").also { stage = 80 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, but I don't want your fish.").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "What happened to your legs?").also { stage = 30 } + } + + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Then what are ye doin' in a fish shop? Looking fer work?").also { stage++ } + 21 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Possibly, do you have any quests?").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "I dunno, I haven't gone through the last catch yet. What sort of a fish is it?").also { stage++ } + 23 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "A quest isn't a type of fish!").also { stage++ } + 24 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Then I don't have any, and yer wastin' my time!").also { stage = 99 } + + 30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ye wanna know what happened to my legs?").also { stage++ } + 31 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yer too much of a lilly-livered, hat wearin' landlubber to know what happened to my legs!").also { stage++ } + 32 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "No I'm not! I've seen some freaky stuff! I can take it!").also { stage++ } + 33 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "All right, lad, since yer so insistent, I'll tell ye.").also { stage++ } + 34 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "See, I was clingin' onto a barrel, me ship havin' just had an encounter with this albatross.").also { stage++ } + 35 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "The sea was thrashin' and wild, but not so wild that I didn't see the fins of some sharks closin' in on me.").also { stage++ } + 36 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I managed to yank a sliver of wood from the barrel just as one of them grabbed me from below, but I slipped down the things throat by about two feet before I managed te kill it.").also { stage++ } + 37 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "How did you survive?").also { stage++ } + 38 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "A passin' ship saw the sharks and knew there would be survivors in the water. They sent a longboat and picked me up, but not before the sharks had taken off my legs.").also { stage++ } + 39 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "And that lad is why they call me two feet Charley, because they found me jammed two feet down a shark's throat.").also { stage++ } + 40 -> player(core.game.dialogue.FacialExpression.DISGUSTED, "I think I'm gonna be sick...").also { stage++ } + 41 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I knew ye couldn't handle the truth!").also { stage = 99 } + + 80 -> end().also { npc.openShop(player) } + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CharleyDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CHARLEY_3161) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/MamaDialogue.java b/Server/src/main/content/region/misc/mosle/dialogue/MamaDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/MamaDialogue.java rename to Server/src/main/content/region/misc/mosle/dialogue/MamaDialogue.java index 3f7d8e79e..91c1f1591 100644 --- a/Server/src/main/java/core/game/content/dialogue/MamaDialogue.java +++ b/Server/src/main/content/region/misc/mosle/dialogue/MamaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.mosle.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PatchyDialogue.java b/Server/src/main/content/region/misc/mosle/dialogue/PatchyDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/PatchyDialogue.java rename to Server/src/main/content/region/misc/mosle/dialogue/PatchyDialogue.java index aaab1bcfc..36c74c651 100644 --- a/Server/src/main/java/core/game/content/dialogue/PatchyDialogue.java +++ b/Server/src/main/content/region/misc/mosle/dialogue/PatchyDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misc.mosle.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/misc/piratecove/dialogue/BeefyBurnsDialogue.kt b/Server/src/main/content/region/misc/piratecove/dialogue/BeefyBurnsDialogue.kt new file mode 100644 index 000000000..0744cdc74 --- /dev/null +++ b/Server/src/main/content/region/misc/piratecove/dialogue/BeefyBurnsDialogue.kt @@ -0,0 +1,43 @@ +package content.region.misc.piratecove.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class BeefyBurnsDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.HALF_ASKING, "What are you cooking?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.LAUGH, "My speciality! What else could I be cooking?").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.THINKING, "Ok, and your speciality is...?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Boiled shark guts with a hint of rosemary and a dash of squid ink.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I think I'll stick to making my own food.").also { stage++ } + 4 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Your loss!").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BeefyBurnsDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BEEFY_BURNS_4541) + } +} diff --git a/Server/src/main/content/region/misc/piratecove/dialogue/DaveyBoyDialogue.kt b/Server/src/main/content/region/misc/piratecove/dialogue/DaveyBoyDialogue.kt new file mode 100644 index 000000000..70e35c311 --- /dev/null +++ b/Server/src/main/content/region/misc/piratecove/dialogue/DaveyBoyDialogue.kt @@ -0,0 +1,51 @@ +package content.region.misc.piratecove.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DaveyBoyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when ((1..2).random()) { + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What does it take to become first mate on a ship?").also { stage = 0 } + 2 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "It is customary when stowing away on a vessel to not introduce yourself to the Captains First Mate, oh foolish one.").also { stage = 10 } + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Good question. We have a diplomatic consession at the turn of the financial year. Said pirate is chosen should the existing mate be absent without leave.").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.THINKING, "I had no idea. I always figured it was all about popularity.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "It is. I'm just pulling your leg.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Oh....").also { stage = 99 } + + 10 -> player(core.game.dialogue.FacialExpression.ANNOYED, "Hey! I'm not a stowaway!").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.ANNOYED, "That Lokar guy invited me aboard...").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I see. Well, don't distract me as I'm making preparations for departure.").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Try not to distract any of the crew either, Zamorak knows it's hard enough to get them to do any work around here without strangers wandering round the ship asking them inane questions.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DaveyBoyDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FIRST_MATE_DAVEY_BOY_4543) + } +} diff --git a/Server/src/main/content/region/misc/piratecove/dialogue/EagleEyeShultzDialogue.kt b/Server/src/main/content/region/misc/piratecove/dialogue/EagleEyeShultzDialogue.kt new file mode 100644 index 000000000..486498765 --- /dev/null +++ b/Server/src/main/content/region/misc/piratecove/dialogue/EagleEyeShultzDialogue.kt @@ -0,0 +1,42 @@ +package content.region.misc.piratecove.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class EagleEyeShultzDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "What do you do for fun on this ship? You know, when you're not doing pirate stuff.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "All sorts! Hide and seek, pin the patch on the pirate, walk the plank!").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.WORRIED, "What a life! Wait a minute. 'Walk the plank'? Surely that's a bit dangerous?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Well of course, but where's the fun without a few deaths?").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.HALF_THINKING,"I think I'll stick to Runelink.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return EagleEyeShultzDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.EAGLE_EYE_SHULTZ_4542) + } +} diff --git a/Server/src/main/content/region/misc/piratecove/dialogue/LecherousLeeDialogue.kt b/Server/src/main/content/region/misc/piratecove/dialogue/LecherousLeeDialogue.kt new file mode 100644 index 000000000..63aa1c1e3 --- /dev/null +++ b/Server/src/main/content/region/misc/piratecove/dialogue/LecherousLeeDialogue.kt @@ -0,0 +1,107 @@ +package content.region.misc.piratecove.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class LecherousLeeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + private val conversations = arrayOf (0, 10, 13, 17, 21, 27, 31, 36, 43, 52) + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.").also { stage = conversations.random() } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "So how's life as a pirate?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "What kind of question is that? How's life as a... I dunno. Whatever it is that you do for a living.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I'm a freelance troubleshooter.").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "What does that entail then?").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"Mostly killing things for money and delivering items around the planet for people.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I collect stuff.").also { stage++ } + 6 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "So how's that life?").also { stage++ } + 7 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Can't complain, can't complain...").also { stage++ } + 8 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Well, there you go.").also { stage = 99 } + + 10 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Aren't you a little short for a pirate?").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "My mother was a gnome. Apparently it was a very painful birth.").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"More info than I wanted, thanks!").also { stage = 99 } + + 13 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry, can't stop, the Captain will have my guts for garters if he catches me slacking off talking to the stowaway.").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I'm not a stowaway! I was invited aboard!").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yeah, whatever guy, it doesn't really matter who you are I'll get in trouble!").also { stage = 99 } + + 17 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "You know, I've always wondered what life as a pirate actually entails.").also { stage++ } + 18 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Well, at the moment it mostly involves being asked random questions by a stowaway.").also { stage++ } + 19 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"I'm not a stowaway! I was invited aboard! By Lokar! Ask him!").also { stage++ } + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hey, whatever pal. Just make sure the captain doesn't catch you, pirates don't like stowaways much.").also { stage = 99 } + + 21 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "Ah, good day to you sirrah! Your face is unfamiliar, did you perhaps join us aboard the ship at Lunar Isle?").also { stage++ } + 22 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"No, Lokar offered me a lift in Rellekka actually.").also { stage++ } + 23 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, really? You don't look like a Fremennik to me!").also { stage++ } + 24 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"Well... I kind of am, and I kind of aren't. It's a long story.").also { stage++ } + 25 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry I don't have time to hear it then! See you around young fremennik-who-is-not-really-a- fremennik!").also { stage++ } + 26 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"'Bye.").also { stage = 99 } + + 27 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Brrrr! Its cold up here!").also { stage++ } + 28 -> npcl(core.game.dialogue.FacialExpression.LAUGH, "You think this is cold? Up by Acheron it gets so cold that when you talk you see the words freeze in the air in front of you!").also { stage++ } + 29 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"REALLY?").also { stage++ } + 30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Nah, not really. I was exaggerating for humourous effect. It is very very cold though!").also { stage = 99 } + + + 31 -> npc(core.game.dialogue.FacialExpression.LAUGH, "Hello to you too.").also { stage++ } + 32 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"Yar! We be pirates, yar! Avast, ye scurvy land-lubbing lychee!").also { stage++ } + 33 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Please don't talk like that, it is extremely irritating.").also { stage++ } + 34 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Also, please don't call me a lychee, whatever that may be.").also { stage++ } + 35 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Oh. Okay. Sorry.").also { stage = 99} + + + 36 -> npc(core.game.dialogue.FacialExpression.LAUGH, "ARGH!", "SOUND THE ALARM!", "STOWAWAY ON BOARD!", "STOWAWAY ON BOARD!").also { stage++ } + 37 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"No! I'm not a stowaway! Honest! I was invited here!").also { stage++ } + 38 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, sorry, my mistake then.").also { stage++ } + 39 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You must admit you do look a lot like a stowaway though.").also { stage++ } + 40 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Why, what do they usually look like?").also { stage++ } + 41 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Erm... I've never actually met one...").also { stage++ } + 42 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Okay then...").also { stage = 99 } + + 43 -> npc(core.game.dialogue.FacialExpression.LAUGH, "Hello.").also { stage++ } + 44 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"So... You're a pirate, huh?").also { stage++ } + 45 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "It's what it says on my pay-packet at the end of the month.").also { stage++ } + 46 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"How's that working out for you?").also { stage++ } + 47 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Pretty good so far. All the grog and loot that we can plunder, plus full medical including dental.").also { stage++ } + 48 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"You mean you have insurance?").also { stage++ } + 49 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Not as such. If any of us get sick we kidnap a doctor and don't let him go until we're better.").also { stage++ } + 50 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You'd be surprised what an incentive for expert health care that is.").also { stage++ } + 51 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"I can imagine.").also { stage = 99 } + + 52 -> npc(core.game.dialogue.FacialExpression.LAUGH, "Hello there. So what brings you aboard the Lady Zay?").also { stage++ } + 53 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"Well, I was planning on visiting the Moon Clan, but I have to say your ship is very impressive.").also { stage++ } + 54 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Aye, she's a beauty alright! The Lady Zay has been my home for many hard months, through storm and sun, and she always gets us to here we were headed!").also { stage++ } + 55 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY,"Yes, she's certainly one of the finest boats I've seen on my travels!").also { stage++ } + 56 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "That she is lad, that she is.").also { stage = 99 } + + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LecherousLeeDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.LECHEROUS_LEE_4556) + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/BankerTutorDialogue.java b/Server/src/main/content/region/misc/tutisland/dialogue/BankerTutorDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/BankerTutorDialogue.java rename to Server/src/main/content/region/misc/tutisland/dialogue/BankerTutorDialogue.java index 6d0b00d94..8e5640807 100644 --- a/Server/src/main/java/core/game/content/dialogue/BankerTutorDialogue.java +++ b/Server/src/main/content/region/misc/tutisland/dialogue/BankerTutorDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misc.tutisland.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/SkipTutorialDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/SkipTutorialDialogue.kt similarity index 63% rename from Server/src/main/kotlin/rs09/game/content/tutorial/SkipTutorialDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/SkipTutorialDialogue.kt index 4bbbe8b24..99503423a 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/SkipTutorialDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/SkipTutorialDialogue.kt @@ -1,26 +1,27 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.setAttribute -import api.teleport -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.setAttribute +import core.api.teleport +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles Skippy's skip tutorial dialogue * @author Ceikry */ @Initializable -class SkipTutorialDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class SkipTutorialDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return SkipTutorialDialogue(player) } override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY, "Hey, would you like to skip to the end? Choose wisely! This is the only time you get this choice.") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hey, would you like to skip to the end? Choose wisely! This is the only time you get this choice.") return true } diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/SurvivalExpertDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/SurvivalExpertDialogue.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/content/tutorial/SurvivalExpertDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/SurvivalExpertDialogue.kt index ecc58c600..01006fed9 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/SurvivalExpertDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/SurvivalExpertDialogue.kt @@ -1,24 +1,25 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.addItem -import api.inInventory -import api.setAttribute +import core.api.addItem +import core.api.inInventory +import core.api.setAttribute import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the survival expert's dialogue * @author Ceikry */ @Initializable -class SurvivalExpertDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class SurvivalExpertDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return SurvivalExpertDialogue(player) } @@ -31,7 +32,7 @@ class SurvivalExpertDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Hello there, newcomer. My name is Brynna. My job is", "to teach you a few suvival tips and tricks. First off", "we're going to start with the most basic skill of", @@ -43,7 +44,7 @@ class SurvivalExpertDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Well done! Next we need to get some food in our", "bellies. We'd need something to cook. There are shrimp", "in the pond there. So let's catch and cook some." diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialCombatInstructorDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialCombatInstructorDialogue.kt similarity index 64% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialCombatInstructorDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialCombatInstructorDialogue.kt index 9e456f14e..058eb4db2 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialCombatInstructorDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialCombatInstructorDialogue.kt @@ -1,21 +1,22 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the combat instructor's dialogue * @author Ceikry */ @Initializable -class TutorialCombatInstructorDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class TutorialCombatInstructorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialCombatInstructorDialogue(player) } @@ -24,9 +25,9 @@ class TutorialCombatInstructorDialogue(player: Player? = null) : DialoguePlugin( when(getAttribute(player, "tutorial:stage", 0)) { - 44 -> playerl(FacialExpression.FRIENDLY, "Hi! My name's ${player.username}.") - 47 -> npcl(FacialExpression.FRIENDLY, "Very good, but that little butter knife isn't going to protect you much. Here, take these.") - 53 -> playerl(FacialExpression.FRIENDLY, "I did it! I killed a giant rat!") + 44 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi! My name's ${player.username}.") + 47 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Very good, but that little butter knife isn't going to protect you much. Here, take these.") + 53 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I did it! I killed a giant rat!") 54 -> { player.dialogueInterpreter.sendDoubleItemMessage(Items.SHORTBOW_841, Items.BRONZE_ARROW_882, "The Combat Guide gives you some bronze arrows and a shortbow!") if(!inInventory(player, Items.SHORTBOW_841) && !inEquipment(player, Items.SHORTBOW_841)) @@ -42,9 +43,9 @@ class TutorialCombatInstructorDialogue(player: Player? = null) : DialoguePlugin( when(getAttribute(player, "tutorial:stage", 0)) { 44 -> when(stage){ - 0 -> npcl(FacialExpression.ANGRY, "Do I look like I care? To me you're just another newcomer who thinks they're ready to fight.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "I'm Vannaka, the greatest swordsman alive.").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "Let's get started by teaching you to wield a weapon.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.ANGRY, "Do I look like I care? To me you're just another newcomer who thinks they're ready to fight.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm Vannaka, the greatest swordsman alive.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Let's get started by teaching you to wield a weapon.").also { stage++ } 3 -> { end() setAttribute(player, "tutorial:stage", 45) @@ -67,8 +68,8 @@ class TutorialCombatInstructorDialogue(player: Player? = null) : DialoguePlugin( } 53 -> when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "I saw, ${player.username}. You seem better at this than I thought. Now that you have grasped basic swordplay, let's move on.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "Let's try some ranged attacking, with this you can kill foes from a distance. Also, foes unable to reach you are as good as dead. You'll be able to attack the rats, without entering the pit.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I saw, ${player.username}. You seem better at this than I thought. Now that you have grasped basic swordplay, let's move on.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Let's try some ranged attacking, with this you can kill foes from a distance. Also, foes unable to reach you are as good as dead. You'll be able to attack the rats, without entering the pit.").also { stage++ } 2 -> { sendDoubleItemDialogue(player, Items.SHORTBOW_841, Items.BRONZE_ARROW_882, "The Combat Guide gives you some bronze arrows and a shortbow!") if(!inInventory(player, Items.SHORTBOW_841) && !inEquipment(player, Items.SHORTBOW_841)) diff --git a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialFinanceAdvisorDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialFinanceAdvisorDialogue.kt new file mode 100644 index 000000000..305911ae5 --- /dev/null +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialFinanceAdvisorDialogue.kt @@ -0,0 +1,58 @@ +package content.region.misc.tutisland.dialogue + +import core.api.getAttribute +import core.api.setAttribute +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage +import core.game.world.GameWorld.settings + +/** + * Handles the finance tutor's dialogue + * @author Ceikry + */ +@Initializable +class TutorialFinanceAdvisorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return TutorialFinanceAdvisorDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when(getAttribute(player, "tutorial:stage", 0)) + { + 58 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello, who are you?") + 59 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Move along, now.").also { return false } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(getAttribute(player, "tutorial:stage", 0)){ + 58 -> when(stage++){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm the Financial Advisor. I'm here to tell people how to make money.") + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Okay. How can I make money then?") + 2 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "How you can make money? Quite.") + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well there are three basic ways of making money here: combat, quests, and trading. I will talk you through each of them very quickly.") + 4 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Let's start with combat as it is probably still fresh in your mind. Many enemies, both human and monster will drop items when they die.") + 5 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Now, the next way to earn money quickly is by quests. Many people on " + settings!!.name + " have things they need doing, which they will reward you for.") + 6 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "By getting a high level in skills such as Cooking, Mining, Smithing or Fishing, you can create or catch your own items and sell them for pure profit.") + 7 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Lastly, we have jobs you can get from tutors in Lumbridge. These pay very handsomely early on!").also { stage++ } + 8 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, that about covers it. Move along now.") + 9 -> { + end() + setAttribute(player, "tutorial:stage", 59) + TutorialStage.load(player, 59) + } + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FINANCIAL_ADVISOR_947) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMagicTutorDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt similarity index 81% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMagicTutorDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt index 4e80fcba3..4bee2197f 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMagicTutorDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMagicTutorDialogue.kt @@ -1,35 +1,29 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.* -import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import content.region.misc.tutisland.handlers.* +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.InterfaceManager import core.game.node.entity.player.link.IronmanMode import core.game.node.entity.player.link.TeleportManager import core.game.node.item.Item -import core.game.system.communication.ClanRepository import core.game.world.map.Location -import core.net.amsc.MSPacketRepository -import core.net.amsc.WorldCommunicator import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs import proto.management.JoinClanRequest -import rs09.ServerConstants -import rs09.game.interaction.inter.RulesAndInfo -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE -import rs09.worker.ManagementEvents +import core.ServerConstants +import content.global.handlers.iface.RulesAndInfo +import core.game.world.GameWorld +import core.tools.END_DIALOGUE +import core.worker.ManagementEvents /** * Handles the magic tutor's dialogue * @author Ceikry */ @Initializable -class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player) { +class TutorialMagicTutorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { private val STARTER_PACK = arrayOf( Item(1351, 1), Item(590, 1), @@ -52,7 +46,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player ) private val STARTER_BANK = arrayOf(Item(995, 25)) - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialMagicTutorDialogue(player) } @@ -60,8 +54,8 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player npc = args[0] as NPC when(getAttribute(player, "tutorial:stage", 0)) { - 67 -> playerl(FacialExpression.FRIENDLY, "Hello.") - 69 -> npcl(FacialExpression.FRIENDLY, "Good. This is a list of your spells. Currently you can only cast one offensive spell called Wind Strike. Let's try it out on one of those chickens.") + 67 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.") + 69 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good. This is a list of your spells. Currently you can only cast one offensive spell called Wind Strike. Let's try it out on one of those chickens.") 70 -> if(!inInventory(player, Items.AIR_RUNE_556) && !inInventory(player, Items.MIND_RUNE_558)) { player.dialogueInterpreter.sendDoubleItemMessage(Items.AIR_RUNE_556, Items.MIND_RUNE_558, "You receive some spare runes.") @@ -69,7 +63,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player addItem(player, Items.MIND_RUNE_558, 15) return false } - 71 -> npcl(FacialExpression.FRIENDLY, "Alright, last thing. Are you interested in being an ironman or changing your experience rate?") + 71 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, last thing. Are you interested in being an ironman or changing your experience rate?") else -> return false } return true @@ -79,7 +73,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player when(getAttribute(player, "tutorial:stage", 0)) { 67 -> when(stage++){ - 0 -> npcl(FacialExpression.FRIENDLY, "Good day, newcomer. My name is Terrova. I'm here to tell you about Magic. Let's start by opening your spell list.") + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good day, newcomer. My name is Terrova. I'm here to tell you about Magic. Let's start by opening your spell list.") 1 -> { end() setAttribute(player, "tutorial:stage", 68) @@ -103,7 +97,7 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player 1 -> when(buttonId){ 1 -> options("None","Standard","Hardcore (Permadeath!)","Ultimate","Nevermind.").also { stage = 10 } 2 -> options("1.0x","2.5x","5.0x","10x").also { stage = 20 } - 3 -> npcl(FacialExpression.FRIENDLY, "Well, you're all finished here now. I'll give you a reasonable number of starting items when you leave.").also { stage = 30 } + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, you're all finished here now. I'll give you a reasonable number of starting items when you leave.").also { stage = 30 } } 10 -> { @@ -137,8 +131,8 @@ class TutorialMagicTutorDialogue(player: Player? = null) : DialoguePlugin(player 30 -> player.dialogueInterpreter.sendOptions("Leave Tutorial Island?", "Yes, I'm ready.", "No, not yet.").also { stage++ } 31 -> when(buttonId) { - 1 -> playerl(FacialExpression.FRIENDLY, "I'm ready to go now, thank you.").also { stage = 40 } - 2 -> playerl(FacialExpression.FRIENDLY, "I'm not quite ready to go yet, thank you.").also { stage = END_DIALOGUE } + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm ready to go now, thank you.").also { stage = 40 } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm not quite ready to go yet, thank you.").also { stage = END_DIALOGUE } } 40 -> { diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMasterChefDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMasterChefDialogue.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMasterChefDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialMasterChefDialogue.kt index 91f48c742..52dbcb923 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMasterChefDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMasterChefDialogue.kt @@ -1,22 +1,23 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the cooking tutor's dialogue * @author Ceikry */ @Initializable -class TutorialMasterChefDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class TutorialMasterChefDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialMasterChefDialogue(player) } @@ -28,7 +29,7 @@ class TutorialMasterChefDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Ahh! Welcome, newcomer. I am the Master Chef, Lev. It", "is here I will teach you how to cook food truly fit for a", "king." @@ -68,7 +69,7 @@ class TutorialMasterChefDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( player, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "I already know how to cook. Brynna taught me just", "now." ) @@ -77,7 +78,7 @@ class TutorialMasterChefDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.LAUGH, + core.game.dialogue.FacialExpression.LAUGH, "Hahahahahaha! You call THAT cooking? Some shrimp", "on an open log fire? Oh, no, no no. I am going to", "teach you the fine art of cooking bread." @@ -87,7 +88,7 @@ class TutorialMasterChefDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "And no fine meal is complete without good music, so", "we'll cover that while you're here too." ) diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMiningInstructorDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMiningInstructorDialogue.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMiningInstructorDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialMiningInstructorDialogue.kt index 1c37bba21..736c0d08c 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialMiningInstructorDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialMiningInstructorDialogue.kt @@ -1,32 +1,33 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.addItem -import api.getAttribute -import api.inInventory -import api.setAttribute -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.addItem +import core.api.getAttribute +import core.api.inInventory +import core.api.setAttribute +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the mining tutor's dialogue * @author Ceikry */ @Initializable -class TutorialMiningInstructorDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class TutorialMiningInstructorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialMiningInstructorDialogue(player) } override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC when(getAttribute(player, "tutorial:stage", 0)) { - 30 -> npcl(FacialExpression.FRIENDLY, "Hi there. You must be new around here. So what do I call you? 'Newcomer' seems so impersonal, and if we're going to be working together, I'd rather call you by name.") - 34 -> playerl(FacialExpression.FRIENDLY, "I prospected both types of rock! One set contains tin and the other has copper ore inside.") + 30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Hi there. You must be new around here. So what do I call you? 'Newcomer' seems so impersonal, and if we're going to be working together, I'd rather call you by name.") + 34 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I prospected both types of rock! One set contains tin and the other has copper ore inside.") 35 -> { if(!inInventory(player, Items.BRONZE_PICKAXE_1265)) { addItem(player, Items.BRONZE_PICKAXE_1265) @@ -37,7 +38,7 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : DialoguePlugin( TutorialStage.load(player, 35) } } - 40 -> playerl(FacialExpression.ASKING, "How do I make a weapon out of this?") + 40 -> playerl(core.game.dialogue.FacialExpression.ASKING, "How do I make a weapon out of this?") 41 -> { if(!inInventory(player, Items.HAMMER_2347)) { addItem(player, Items.HAMMER_2347) @@ -58,8 +59,8 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : DialoguePlugin( override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(getAttribute(player, "tutorial:stage", 0)) { 30 -> when(stage) { - 0 -> playerl(FacialExpression.FRIENDLY, "You can call me ${player.username}.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "Ok then, ${player.username}. My name is Dezzick and I'm a miner by Trade. Let's prospect some of these rocks.").also { stage++ } + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "You can call me ${player.username}.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Ok then, ${player.username}. My name is Dezzick and I'm a miner by Trade. Let's prospect some of these rocks.").also { stage++ } 2 -> { end() setAttribute(player, "tutorial:stage", 31) @@ -68,8 +69,8 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : DialoguePlugin( } 34,35 -> when(stage) { - 0 -> npcl(FacialExpression.FRIENDLY, "Absolutely right, ${player.username}. These two ore types can be smelted together to make bronze.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "So now you know what ore is in the rocks over there, why don't you have a go at mining some tin and copper? Here, you'll need this to start with.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Absolutely right, ${player.username}. These two ore types can be smelted together to make bronze.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "So now you know what ore is in the rocks over there, why don't you have a go at mining some tin and copper? Here, you'll need this to start with.").also { stage++ } 2 -> { addItem(player, Items.BRONZE_PICKAXE_1265) player.dialogueInterpreter.sendItemMessage(Items.BRONZE_PICKAXE_1265, "Dezzick gives you a bronze pickaxe!") @@ -83,7 +84,7 @@ class TutorialMiningInstructorDialogue(player: Player? = null) : DialoguePlugin( } 40,41 -> when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Okay, I'll show you how to make a dagger out of it. You'll be needing this..").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Okay, I'll show you how to make a dagger out of it. You'll be needing this..").also { stage++ } 1 -> { addItem(player, Items.HAMMER_2347) player.dialogueInterpreter.sendItemMessage(Items.HAMMER_2347, "Drezzick gives you a hammer!") diff --git a/Server/src/main/content/region/misc/tutisland/dialogue/TutorialPrayerDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialPrayerDialogue.kt new file mode 100644 index 000000000..680a929b0 --- /dev/null +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialPrayerDialogue.kt @@ -0,0 +1,69 @@ +package content.region.misc.tutisland.dialogue + +import core.api.getAttribute +import core.api.setAttribute +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage + +/** + * Handles the prayer guide's dialogue + * @author Ceikry + */ +@Initializable +class TutorialPrayerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return TutorialPrayerDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when(getAttribute(player, "tutorial:stage", 0)) + { + 60 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings! I'd just like to briefly go over two topics with you: prayer, and friends.") + 62 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Prayers have all sorts of wonderful benefits! From boosting defence and damage, to protecting you from outside damage, to saving items on death!") + 65 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "For your friend and ignore lists, it's quite simple really! Use your friend list to keep track of players who you like, and ignore those you don't!") + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(getAttribute(player, "tutorial:stage", 0)) + { + 60 -> when(stage++){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Alright, sounds fun!") + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Right, so first thing: prayer. Prayer is trained by offering bones to the gods, and can grant you many boons!") + 2 -> { + end() + setAttribute(player, "tutorial:stage", 61) + TutorialStage.load(player, 61) + } + } + + 62 -> when(stage++){ + 0 -> playerl(core.game.dialogue.FacialExpression.AMAZED, "Very cool!") + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Next up, let's talk about friends.") + 2 -> { + end() + setAttribute(player, "tutorial:stage", 63) + TutorialStage.load(player, 63) + } + } + + 65 -> { + end() + setAttribute(player, "tutorial:stage", 66) + TutorialStage.load(player, 66) + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BROTHER_BRACE_954) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialQuestGuideDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialQuestGuideDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt index 220e59f47..34fc5eecc 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialQuestGuideDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialQuestGuideDialogue.kt @@ -1,24 +1,25 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.getAttribute -import api.setAttribute -import api.setVarbit +import core.api.getAttribute +import core.api.setAttribute +import core.api.setVarbit import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Components import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the quest guide's dialogue * @author Ceikry */ @Initializable -class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class TutorialQuestGuideDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialQuestGuideDialogue(player) } @@ -30,7 +31,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Ah. Welcome adventurer. I'm here to tell you all about", "quests. Lets start by opening the Quest list." ) @@ -40,7 +41,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Now you have the journal open. I'll tell you a bit about", "it At the moment all the quests are shown in red. Which", "means you have not started them yet." @@ -75,7 +76,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "When you start a quest it will change colour to yellow,", "and to green when you've finished. This is so you can", "easily see what's complete, what's started and what's left", @@ -86,7 +87,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "The start of quests are easy to find. Look out for the", "star icons on the minimap, just like the one you should", "see marking my house." @@ -96,7 +97,7 @@ class TutorialQuestGuideDialogue(player: Player? = null) : DialoguePlugin(player player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "There's not a lot more I can tell you about questing.", "You have to experience the thrill of it yourself to fully", "understand. You may find some adevnture in the caves", diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialRSGuideDialogue.kt b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialRSGuideDialogue.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialRSGuideDialogue.kt rename to Server/src/main/content/region/misc/tutisland/dialogue/TutorialRSGuideDialogue.kt index aa0b6cbb0..5eff3bfb7 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialRSGuideDialogue.kt +++ b/Server/src/main/content/region/misc/tutisland/dialogue/TutorialRSGuideDialogue.kt @@ -1,21 +1,22 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.dialogue -import api.setAttribute +import core.api.setAttribute import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.NPCs +import content.region.misc.tutisland.handlers.TutorialStage /** * Handles the RuneSccape guide's dialogue * @author Ceikry */ @Initializable -class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class TutorialRSGuideDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TutorialRSGuideDialogue(player) } @@ -27,7 +28,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Greetings! Please follow the onscreen", "instructions!" ) @@ -41,7 +42,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Greetings! I see you are a new arrival to this land. My", "job is to welcome all new visitors. So welcome!" ) @@ -55,7 +56,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Please follow the onscreen instructions!" ) ) @@ -70,7 +71,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "You have already learned the first thing needed to", "succeed in this world: talking to other people!" ) @@ -80,7 +81,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "You will find many inhabitants of this world have useful", "things to say to you. By clicking on them with your", "mouse you can talk to them." @@ -91,7 +92,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I would also suggest reading through some of the", "supporting information on the website. There you can", "find the starter guides, which contain all the", @@ -103,7 +104,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "contain helpful tips to help you on your", "journey." ) @@ -113,7 +114,7 @@ class TutorialRSGuideDialogue(player: Player? = null) : DialoguePlugin(player) { player, interpreter.sendDialogues( npc, - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "To continue the tutorial go through that door over", "there and speak to your first instructor!" ) diff --git a/Server/src/main/java/core/game/node/entity/npc/other/RatTutorialNPC.java b/Server/src/main/content/region/misc/tutisland/handlers/RatTutorialNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/RatTutorialNPC.java rename to Server/src/main/content/region/misc/tutisland/handlers/RatTutorialNPC.java index 1128692af..6d7b8a5b1 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/RatTutorialNPC.java +++ b/Server/src/main/content/region/misc/tutisland/handlers/RatTutorialNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misc.tutisland.handlers; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/SkippyNPC.java b/Server/src/main/content/region/misc/tutisland/handlers/SkippyNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/SkippyNPC.java rename to Server/src/main/content/region/misc/tutisland/handlers/SkippyNPC.java index 88bdfbc2c..828e2606e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/SkippyNPC.java +++ b/Server/src/main/content/region/misc/tutisland/handlers/SkippyNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misc.tutisland.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialEventReceivers.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialEventReceivers.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialEventReceivers.kt rename to Server/src/main/content/region/misc/tutisland/handlers/TutorialEventReceivers.kt index 48892dce9..e9319bcc2 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialEventReceivers.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialEventReceivers.kt @@ -1,13 +1,13 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.handlers -import api.events.* -import api.getAttribute -import api.setAttribute +import core.api.getAttribute +import core.api.setAttribute import core.game.node.entity.Entity import core.game.node.entity.player.Player -import core.game.node.entity.skill.fishing.FishingSpot -import core.game.node.entity.skill.gather.mining.MiningNode -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingNode +import content.global.skill.fishing.FishingSpot +import content.global.skill.gather.mining.MiningNode +import content.global.skill.gather.woodcutting.WoodcuttingNode +import core.game.event.* import org.rs09.consts.Items import org.rs09.consts.NPCs diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFurnaceListener.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialFurnaceListener.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFurnaceListener.kt rename to Server/src/main/content/region/misc/tutisland/handlers/TutorialFurnaceListener.kt index 0a60cc396..c4139d6f5 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFurnaceListener.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialFurnaceListener.kt @@ -1,15 +1,15 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.handlers -import api.* -import api.events.ResourceProducedEvent +import core.api.* +import core.game.event.ResourceProducedEvent import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.smithing.smelting.Bar +import content.global.skill.smithing.smelting.Bar import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for tutorial island furnace diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialListeners.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialListeners.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialListeners.kt rename to Server/src/main/content/region/misc/tutisland/handlers/TutorialListeners.kt index 525628a32..c7dd26f50 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialListeners.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialListeners.kt @@ -1,16 +1,13 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.handlers -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.ClimbActionHandler -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.scenery.Scenery import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.repository.Repository +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.repository.Repository /** * Handles tutorial-specific node interactions @@ -32,58 +29,58 @@ class TutorialListeners : InteractionListener { val RAT_GATES = intArrayOf(3022, 3023) override fun defineListeners() { - on(GUIDE_HOUSE_DOOR, IntType.SCENERY, "open"){player, door -> + on(GUIDE_HOUSE_DOOR, IntType.SCENERY, "open"){ player, door -> if(getAttribute(player, "tutorial:stage", 0) != 3) return@on true setAttribute(player, "tutorial:stage", 4) TutorialStage.load(player, 4) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery, Location.create(3098, 3107, 0)) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery, Location.create(3098, 3107, 0)) return@on true } - on(FIRST_GATE, IntType.SCENERY, "open"){player, gate -> + on(FIRST_GATE, IntType.SCENERY, "open"){ player, gate -> if(getAttribute(player, "tutorial:stage", 0) != 16) return@on true setAttribute(player, "tutorial:stage", 17) TutorialStage.load(player, 17) - DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) return@on true } - on(COOKS_DOOR, IntType.SCENERY, "open"){player, door -> + on(COOKS_DOOR, IntType.SCENERY, "open"){ player, door -> if(getAttribute(player, "tutorial:stage", 0) != 17) return@on true setAttribute(player, "tutorial:stage", 18) TutorialStage.load(player, 18) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) return@on true } - on(COOKS_EXIT, IntType.SCENERY, "open"){player, door -> + on(COOKS_EXIT, IntType.SCENERY, "open"){ player, door -> if(getAttribute(player, "tutorial:stage", 0) != 22) return@on true setAttribute(player, "tutorial:stage", 23) TutorialStage.load(player, 23) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) return@on true } - on(QUEST_ENTER, IntType.SCENERY, "open") {player, door -> + on(QUEST_ENTER, IntType.SCENERY, "open") { player, door -> if(getAttribute(player, "tutorial:stage", 0) != 26) return@on true setAttribute(player, "tutorial:stage", 27) TutorialStage.load(player, 27) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) return@on true } - on(QUEST_LADDER, IntType.SCENERY, "climb-down") {player, ladder -> + on(QUEST_LADDER, IntType.SCENERY, "climb-down") { player, ladder -> if(getAttribute(player, "tutorial:stage", 0) < 29) return@on true @@ -91,11 +88,11 @@ class TutorialListeners : InteractionListener { setAttribute(player, "tutorial:stage", 30) TutorialStage.load(player, 30) } - ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-down") + core.game.global.action.ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-down") } on(QUEST_EXIT_LADDER, IntType.SCENERY, "climb-up") { player, ladder -> - ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-up") + core.game.global.action.ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-up") submitWorldPulse(object : Pulse(2) { override fun pulse(): Boolean { @@ -108,19 +105,19 @@ class TutorialListeners : InteractionListener { return@on true } - on(COMBAT_GATES, IntType.SCENERY, "open"){player, gate -> + on(COMBAT_GATES, IntType.SCENERY, "open"){ player, gate -> if(getAttribute(player, "tutorial:stage", 0) != 43) return@on true setAttribute(player, "tutorial:stage", 44) TutorialStage.load(player, 44) - DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) } - on(RAT_GATES, IntType.SCENERY, "open") {player, gate -> + on(RAT_GATES, IntType.SCENERY, "open") { player, gate -> val stage = getAttribute(player, "tutorial:stage", 0) if(stage !in 50..53){ - player.dialogueInterpreter.sendDialogues(NPCs.COMBAT_INSTRUCTOR_944, FacialExpression.ANGRY, "Oi, get away from there!","Don't enter my rat pen unless I say so!") + player.dialogueInterpreter.sendDialogues(NPCs.COMBAT_INSTRUCTOR_944, core.game.dialogue.FacialExpression.ANGRY, "Oi, get away from there!","Don't enter my rat pen unless I say so!") return@on true } @@ -128,44 +125,44 @@ class TutorialListeners : InteractionListener { setAttribute(player, "tutorial:stage", 51) TutorialStage.load(player, 51) } - DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, gate as Scenery) return@on true } - on(COMBAT_EXIT, IntType.SCENERY, "climb-up") {player, ladder -> + on(COMBAT_EXIT, IntType.SCENERY, "climb-up") { player, ladder -> if(getAttribute(player, "tutorial:stage", 0) != 55) return@on true setAttribute(player, "tutorial:stage", 56) TutorialStage.load(player, 56) - ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-up") + core.game.global.action.ClimbActionHandler.climbLadder(player, ladder.asScenery(), "climb-up") } - on(BANK_EXIT, IntType.SCENERY, "open") {player, door -> + on(BANK_EXIT, IntType.SCENERY, "open") { player, door -> if(getAttribute(player, "tutorial:stage", 0) != 57) return@on true setAttribute(player, "tutorial:stage", 58) TutorialStage.load(player, 58) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) } - on(FINANCE_EXIT, IntType.SCENERY, "open") {player,door -> + on(FINANCE_EXIT, IntType.SCENERY, "open") { player, door -> if(getAttribute(player, "tutorial:stage", 0) != 59) return@on true setAttribute(player, "tutorial:stage", 60) TutorialStage.load(player, 60) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) } - on(CHURCH_EXIT, IntType.SCENERY, "open") {player, door -> + on(CHURCH_EXIT, IntType.SCENERY, "open") { player, door -> if(getAttribute(player, "tutorial:stage", 0) != 66) return@on true setAttribute(player, "tutorial:stage", 67) TutorialStage.load(player, 67) - DoorActionHandler.handleAutowalkDoor(player, door as Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, door as Scenery) } } diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialLoginCheck.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialLoginCheck.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialLoginCheck.kt rename to Server/src/main/content/region/misc/tutisland/handlers/TutorialLoginCheck.kt index 9950d5e2b..a123a793a 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialLoginCheck.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialLoginCheck.kt @@ -1,9 +1,9 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.handlers -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Login listener that checks for tutorial completion and loads the current tutorial stage diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialStage.kt b/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/content/tutorial/TutorialStage.kt rename to Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt index 2e88a0090..8ec2666db 100644 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialStage.kt +++ b/Server/src/main/content/region/misc/tutisland/handlers/TutorialStage.kt @@ -1,8 +1,8 @@ -package rs09.game.content.tutorial +package content.region.misc.tutisland.handlers -import api.* +import core.api.* import core.game.component.Component -import core.game.content.quest.tutorials.tutorialisland.CharacterDesign +import content.region.misc.tutisland.handlers.iface.CharacterDesign import core.game.node.Node import core.game.node.entity.combat.equipment.WeaponInterface import core.game.node.entity.player.Player @@ -10,10 +10,10 @@ import core.game.node.entity.player.link.HintIconManager import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.Components -import rs09.game.Event -import rs09.game.world.GameWorld.Pulser -import rs09.game.world.GameWorld.settings -import rs09.game.world.repository.Repository +import core.api.Event +import core.game.world.GameWorld.Pulser +import core.game.world.GameWorld.settings +import core.game.world.repository.Repository /** * Loads stage-relevant tutorial data diff --git a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/CharacterDesign.java b/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/CharacterDesign.java rename to Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java index 0d3c31cfc..64e6d6b82 100644 --- a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/CharacterDesign.java +++ b/Server/src/main/content/region/misc/tutisland/handlers/iface/CharacterDesign.java @@ -1,15 +1,10 @@ -package core.game.content.quest.tutorials.tutorialisland; +package content.region.misc.tutisland.handlers.iface; import core.game.component.CloseEvent; import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.appearance.Gender; -import core.game.node.entity.player.link.music.MusicEntry; import core.game.node.item.Item; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.net.amsc.MSPacketRepository; -import core.net.amsc.WorldCommunicator; import core.tools.RandomFunction; /** diff --git a/Server/src/main/content/region/misc/zanaris/dialogue/BlaecDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/BlaecDialogue.kt new file mode 100644 index 000000000..6fb736c4f --- /dev/null +++ b/Server/src/main/content/region/misc/zanaris/dialogue/BlaecDialogue.kt @@ -0,0 +1,42 @@ +package content.region.misc.zanaris.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class BlaecDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when ((1..3).random()) { + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Wunnerful weather we're having today!").also { stage = 99 } + 2 -> npc(core.game.dialogue.FacialExpression.FRIENDLY,"Greetin's " + player.name + ", fine day today!").also { stage = 99 } + 3 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Please leave me alone, I'm busy trapping the pygmy shrews.").also { stage = 99 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BlaecDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BLAEC_3115) + } +} diff --git a/Server/src/main/content/region/misc/zanaris/dialogue/CoOrdinatorDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/CoOrdinatorDialogue.kt new file mode 100644 index 000000000..929b91cc9 --- /dev/null +++ b/Server/src/main/content/region/misc/zanaris/dialogue/CoOrdinatorDialogue.kt @@ -0,0 +1,47 @@ +package content.region.misc.zanaris.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class CoOrdinatorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello, what are you doing?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> { + when ((1..5).random()) { + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to find a Winter Fairy to send to Trollheim!").also { stage = 99 } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to send a fairy to get little Freddie's tooth!").also { stage = 99 } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to send an Autumn Fairy off to Burthorpe!").also { stage = 99 } + 4 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time to talk, I need to send a Tooth Fairy to visit Sarah-Jane!").also { stage = 99 } + 5 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time to stop, I need to send a weather fairy off to Etceteria!").also { stage = 99 } + } + } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CoOrdinatorDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CO_ORDINATOR_3302) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyChefDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/FairyChefDialogue.kt similarity index 56% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyChefDialogue.kt rename to Server/src/main/content/region/misc/zanaris/dialogue/FairyChefDialogue.kt index 865adfbc3..95f0c2b8e 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyChefDialogue.kt +++ b/Server/src/main/content/region/misc/zanaris/dialogue/FairyChefDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.zanaris +package content.region.misc.zanaris.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FairyChefDialogue(player: Player? = null) : DialoguePlugin(player){ +class FairyChefDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npcl(FacialExpression.OLD_DEFAULT,"'Ello, sugar. I'm afraid I can't gossip right now, I've got a cake in the oven.").also { stage = 99 } + npcl(core.game.dialogue.FacialExpression.OLD_DEFAULT,"'Ello, sugar. I'm afraid I can't gossip right now, I've got a cake in the oven.").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class FairyChefDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FairyChefDialogue(player) } diff --git a/Server/src/main/content/region/misc/zanaris/dialogue/FairyDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/FairyDialogue.kt new file mode 100644 index 000000000..84708542c --- /dev/null +++ b/Server/src/main/content/region/misc/zanaris/dialogue/FairyDialogue.kt @@ -0,0 +1,53 @@ +package content.region.misc.zanaris.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class FairyDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + when ((1..7).random()) { + 1 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK1,"Err, hello. Do you have any idea what a Winter Fairy actually does?").also { stage = 10 } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Have you got any idea where Burthorpe is? The co-ordinator says I need to go there and paint all the leaves yellow, but I've never heard of that place!").also { stage = 99 } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Be careful when you pick mushrooms near the strange ruins to the south. Some of them will try to eat you!").also { stage = 99 } + 4 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"I'm afraid I can't stop to chat. I've just been told to get ready to go to Etceteria for some reason or other!").also { stage = 99 } + 5 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK2,"Picking mushrooms near the forge will probably end quite badly for you. Not as bad as the ones by the strange ruins to the south though. They're much bigger.").also { stage = 99 } + 6 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Sorry, I can't talk I'm looking for Sarah-Jane!").also { stage = 99 } + 7 -> npc(core.game.dialogue.FacialExpression.OLD_CALM_TALK2,"Is your name Freddie, and are you losing your teeth?").also { stage = 20 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 10 -> player(core.game.dialogue.FacialExpression.THINKING, "No, no idea at all.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Oh, pity. Neither do I, but I'm supposed to be one this week.").also { stage = 99 } + + 20 -> player(core.game.dialogue.FacialExpression.THINKING, "Err, no. I'm afraid not.").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK2, "Oh, right. You don't have any idea where I can find him do you?").also { stage++ } + 22 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "No, I don't know that either.").also { stage++ } + 23 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "Oh, ok then. If you do find out please let me know. The co-ordinator has sent me to find him.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FairyDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FAIRY_4443, NPCs.FAIRY_4444, NPCs.FAIRY_4445, NPCs.FAIRY_4446, NPCs.FAIRY_567, NPCs.FAIRY_57) + } +} diff --git a/Server/src/main/content/region/misc/zanaris/dialogue/FairyFixit.kt b/Server/src/main/content/region/misc/zanaris/dialogue/FairyFixit.kt new file mode 100644 index 000000000..0ca46939a --- /dev/null +++ b/Server/src/main/content/region/misc/zanaris/dialogue/FairyFixit.kt @@ -0,0 +1,72 @@ +package content.region.misc.zanaris.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class FairyFixit(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + //tempvar + //post quest dialogue is missing for rs3 and osrs is too modern, so i'm just gonna use osrs as a placeholder + var completedFairyQueen = false + if (completedFairyQueen) { + npc(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "Pssst! Human! I've got something for you.").also { stage = 20 } + } else { + npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "What is it, human? Busy busy busy!").also { stage = 0 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Why are you carrying that toolbox?", "I'm okay, thanks.").also { stage++ } + 1 -> when (buttonId){ + 1 -> player(core.game.dialogue.FacialExpression.ASKING,"Why are you carrying that toolbox?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'm okay, thanks.").also { stage = 99 } + } + + + 10 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT, "It's the fizgog! It's picking up cable again!").also { stage++ } + 11 -> playerl(core.game.dialogue.FacialExpression.ASKING, "Uh, right. So is it safe to use the fairy rings then?").also { stage++ } + 12 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "Sure, as long as you have been given permission to use them. You should just be aware that using the fairy rings sometimes has strange results - the locations that you have been to may").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK2, "affect the locations you are trying to reach. I could fix it by replacing the fizgog and the whosprangit; I've put in a request for some new parts, but they're").also { stage++ } + 14 -> npc(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "pretty hard to get hold of it seems.").also { stage = 99 } + + 20 -> options("What have you got for me?", "Why are you carrying that toolbox?", "Not interested, thanks.").also { stage++ } + 21 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What have you got for me?").also { stage = 30 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING,"Why are you carrying that toolbox?").also { stage = 10 } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Not interested, thanks.").also { stage = 99 } + } + + 30 -> npcl(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "They said you'd helped cure our Queen. I haven't got a lot of rewards to offer, but my enchantment scrolls might help if you're working with fairy rings in your home.").also { stage++ } + 31 -> { + end() + npc.openShop(player) + } + + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return FairyFixit(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FAIRY_FIXIT_4455) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyShopAssistantDialogue.kt b/Server/src/main/content/region/misc/zanaris/dialogue/FairyShopAssistantDialogue.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyShopAssistantDialogue.kt rename to Server/src/main/content/region/misc/zanaris/dialogue/FairyShopAssistantDialogue.kt index 910f9f942..a1d436613 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyShopAssistantDialogue.kt +++ b/Server/src/main/content/region/misc/zanaris/dialogue/FairyShopAssistantDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.zanaris +package content.region.misc.zanaris.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class FairyShopAssistantDialogue(player: Player? = null) : DialoguePlugin(player){ +class FairyShopAssistantDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_NORMAL,"Can I help you at all?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Can I help you at all?").also { stage = 0 } return true } @@ -26,7 +26,7 @@ class FairyShopAssistantDialogue(player: Player? = null) : DialoguePlugin(player 1 -> when (buttonId) { 1 -> end().also { npc.openShop(player) } - 2 -> player(FacialExpression.NEUTRAL, "No thanks.").also { stage = 99 } + 2 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "No thanks.").also { stage = 99 } } 99 -> end() @@ -34,7 +34,7 @@ class FairyShopAssistantDialogue(player: Player? = null) : DialoguePlugin(player return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return FairyShopAssistantDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/FairyRingPlugin.kt b/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/interaction/object/FairyRingPlugin.kt rename to Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt index 2147860f8..a6b08daf5 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/FairyRingPlugin.kt +++ b/Server/src/main/content/region/misc/zanaris/handlers/FairyRingPlugin.kt @@ -1,14 +1,14 @@ -package rs09.game.interaction.`object` +package content.region.misc.zanaris.handlers -import api.isEquipped -import api.isQuestComplete +import core.api.isEquipped +import core.api.isQuestComplete import core.game.component.Component import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.world.map.Location import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles interactions with fairy rings diff --git a/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java b/Server/src/main/content/region/misc/zanaris/handlers/ZanarisPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java rename to Server/src/main/content/region/misc/zanaris/handlers/ZanarisPlugin.java index 3470536e9..4179ab857 100644 --- a/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java +++ b/Server/src/main/content/region/misc/zanaris/handlers/ZanarisPlugin.java @@ -1,11 +1,11 @@ -package core.game.interaction.city; +package content.region.misc.zanaris.handlers; import core.cache.def.impl.SceneryDefinition; import core.plugin.Initializable; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.crafting.gem.Gems; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.global.action.DoorActionHandler; +import content.global.skill.crafting.gem.Gems; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -13,7 +13,7 @@ import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the zanaris city plugin. diff --git a/Server/src/main/java/core/game/content/dialogue/BarbarianDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/dialogue/BarbarianDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/BarbarianDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/dialogue/BarbarianDialogue.java index 9bd76f415..a8573dfd6 100644 --- a/Server/src/main/java/core/game/content/dialogue/BarbarianDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/dialogue/BarbarianDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GunthorBraveDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/dialogue/GunthorBraveDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/GunthorBraveDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/dialogue/GunthorBraveDialogue.java index 66c7dbf6b..79e14b967 100644 --- a/Server/src/main/java/core/game/content/dialogue/GunthorBraveDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/dialogue/GunthorBraveDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LitaraDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/dialogue/LitaraDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/LitaraDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/dialogue/LitaraDialogue.java index a23319235..692272475 100644 --- a/Server/src/main/java/core/game/content/dialogue/LitaraDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/dialogue/LitaraDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PeksaDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/dialogue/PeksaDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/PeksaDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/dialogue/PeksaDialogue.java index 18abcbe4a..00779051a 100644 --- a/Server/src/main/java/core/game/content/dialogue/PeksaDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/dialogue/PeksaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SigurdDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/dialogue/SigurdDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SigurdDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/dialogue/SigurdDialogue.java index f8dfe0c86..29677bb1b 100644 --- a/Server/src/main/java/core/game/content/dialogue/SigurdDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/dialogue/SigurdDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/BarbarianNPC.java b/Server/src/main/content/region/misthalin/barbvillage/handlers/BarbarianNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/BarbarianNPC.java rename to Server/src/main/content/region/misthalin/barbvillage/handlers/BarbarianNPC.java index a2d17429e..def8e11ac 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/BarbarianNPC.java +++ b/Server/src/main/content/region/misthalin/barbvillage/handlers/BarbarianNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.barbvillage.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/BoxOfHealthDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/BoxOfHealthDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/stronghold/BoxOfHealthDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/BoxOfHealthDialogue.java index 73f33c179..47dc6d842 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/BoxOfHealthDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/BoxOfHealthDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.stronghold; +package content.region.misthalin.barbvillage.stronghold; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/CatableponNPC.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/CatableponNPC.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/other/CatableponNPC.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/CatableponNPC.java index 284652414..776f5d12b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/CatableponNPC.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/CatableponNPC.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.barbvillage.stronghold; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.SwitchAttack; import core.game.node.entity.npc.AbstractNPC; @@ -8,8 +8,8 @@ import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; /** * Represents the catablepon npc type. diff --git a/Server/src/main/java/core/game/content/activity/stronghold/CradleOfLifeDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/CradleOfLifeDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/stronghold/CradleOfLifeDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/CradleOfLifeDialogue.java index e634eb8ee..193bfb984 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/CradleOfLifeDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/CradleOfLifeDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.activity.stronghold; +package content.region.misthalin.barbvillage.stronghold; import core.game.container.Container; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/GiftOfPeaceDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/GiftOfPeaceDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/stronghold/GiftOfPeaceDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/GiftOfPeaceDialogue.java index 6a4eadb6c..93d9d33fb 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/GiftOfPeaceDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/GiftOfPeaceDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.stronghold; +package content.region.misthalin.barbvillage.stronghold; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/GrainOfPlentyDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/GrainOfPlentyDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/stronghold/GrainOfPlentyDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/GrainOfPlentyDialogue.java index 94746edd5..05a585c6c 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/GrainOfPlentyDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/GrainOfPlentyDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.activity.stronghold; +package content.region.misthalin.barbvillage.stronghold; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/SkullSceptreDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/SkullSceptreDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/SkullSceptreDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/SkullSceptreDialogue.java index 9661657ee..a2926a5d1 100644 --- a/Server/src/main/java/core/game/content/dialogue/SkullSceptreDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/SkullSceptreDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.barbvillage.stronghold; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/StrongHoldSecurityPlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/StrongHoldSecurityPlugin.java index caa363638..86127ad17 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/StrongHoldSecurityPlugin.java @@ -1,13 +1,13 @@ -package core.game.content.activity.stronghold; +package content.region.misthalin.barbvillage.stronghold; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.component.ComponentPlugin; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -16,14 +16,14 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/GuardDialoguePlugin.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/GuardDialoguePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/GuardDialoguePlugin.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/GuardDialoguePlugin.java index da210b400..ada88a5e8 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/GuardDialoguePlugin.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/GuardDialoguePlugin.java @@ -1,13 +1,13 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * @author Tyler Telis diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java similarity index 80% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java index 9d2bc2c15..b43269175 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PSOptionHandler.java @@ -1,20 +1,20 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_DOWN_STAIRS; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_ID_ENTER; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LEAVE; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LOCATION_ENTER; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LOCATION_LEAVE; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_STAIRS_DOWN; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_STAIRS_UP; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_UP_STAIRS; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.TEST_PAPER_ITEM_ID; -import static core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.forId; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_DOWN_STAIRS; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_ID_ENTER; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LEAVE; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LOCATION_ENTER; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_ENTRANCE_LOCATION_LEAVE; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_STAIRS_DOWN; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_STAIRS_UP; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JAIL_UP_STAIRS; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.TEST_PAPER_ITEM_ID; +import static content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.forId; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.DialogueAction; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueAction; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -25,7 +25,7 @@ import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Plugin; -import core.game.content.activity.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JailPlaques; +import content.region.misthalin.barbvillage.stronghold.playersafety.StrongHoldOfPlayerSafetyPlugin.JailPlaques; /** * @author Tyler Telis diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PlayerSafetyTest.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PlayerSafetyTest.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/PlayerSafetyTest.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PlayerSafetyTest.java index 455b50ff1..41a110c0b 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PlayerSafetyTest.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/PlayerSafetyTest.java @@ -1,9 +1,9 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.game.component.Component; import core.game.component.ComponentPlugin; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/ProfessorHenryDialogue.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/ProfessorHenryDialogue.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java index f40477ba9..52c459993 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/ProfessorHenryDialogue.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/ProfessorHenryDialogue.java @@ -1,9 +1,9 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.game.component.Component; import core.game.node.entity.player.link.emote.Emotes; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/SafetyMapZone.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/SafetyMapZone.java similarity index 75% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/SafetyMapZone.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/SafetyMapZone.java index 010521824..940125f7c 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/SafetyMapZone.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/SafetyMapZone.java @@ -1,4 +1,4 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.game.world.map.zone.MapZone; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java index 6a5ea30cf..f286c6058 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.activity.stronghold.playersafety; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.game.component.CloseEvent; import core.game.component.Component; @@ -12,7 +12,7 @@ import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * @author Tyler Telis diff --git a/Server/src/main/java/core/game/node/entity/npc/other/Student.java b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/Student.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/other/Student.java rename to Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/Student.java index 3b4fedb10..a9977779a 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/Student.java +++ b/Server/src/main/content/region/misthalin/barbvillage/stronghold/playersafety/Student.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.barbvillage.stronghold.playersafety; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/HoodedMonkDialogue.java b/Server/src/main/content/region/misthalin/dialogue/HoodedMonkDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/HoodedMonkDialogue.java rename to Server/src/main/content/region/misthalin/dialogue/HoodedMonkDialogue.java index 889036451..b1dc3b675 100644 --- a/Server/src/main/java/core/game/content/dialogue/HoodedMonkDialogue.java +++ b/Server/src/main/content/region/misthalin/dialogue/HoodedMonkDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ResearcherDialogue.java b/Server/src/main/content/region/misthalin/dialogue/ResearcherDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/ResearcherDialogue.java rename to Server/src/main/content/region/misthalin/dialogue/ResearcherDialogue.java index e106c720b..fde14e0eb 100644 --- a/Server/src/main/java/core/game/content/dialogue/ResearcherDialogue.java +++ b/Server/src/main/content/region/misthalin/dialogue/ResearcherDialogue.java @@ -1,9 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the dialogue plugin for the new Researcher NPC that sells unobtainable items. diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/examcentre/ArchaeologistcalExpertUsedOnDialogueFile.kt b/Server/src/main/content/region/misthalin/digsite/dialogue/ArchaeologistcalExpertUsedOnDialogueFile.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/examcentre/ArchaeologistcalExpertUsedOnDialogueFile.kt rename to Server/src/main/content/region/misthalin/digsite/dialogue/ArchaeologistcalExpertUsedOnDialogueFile.kt index 5dffe09e2..bd7a3597c 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/examcentre/ArchaeologistcalExpertUsedOnDialogueFile.kt +++ b/Server/src/main/content/region/misthalin/digsite/dialogue/ArchaeologistcalExpertUsedOnDialogueFile.kt @@ -1,13 +1,13 @@ -package rs09.game.content.dialogue.region.examcentre +package content.region.misthalin.digsite.dialogue -import api.addItemOrDrop -import api.sendDialogue -import core.game.content.dialogue.FacialExpression +import content.global.handlers.item.withnpc.ArchaeologicalExpertListener +import core.api.addItemOrDrop +import core.api.sendDialogue +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.item.withnpc.ArchaeologicalExpertListener +import core.game.dialogue.DialogueFile /** * @author qmqz diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/digsite/ElissaDialogue.kt b/Server/src/main/content/region/misthalin/digsite/dialogue/ElissaDialogue.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/digsite/ElissaDialogue.kt rename to Server/src/main/content/region/misthalin/digsite/dialogue/ElissaDialogue.kt index d7fb3e740..9bda3a0a5 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/digsite/ElissaDialogue.kt +++ b/Server/src/main/content/region/misthalin/digsite/dialogue/ElissaDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.digsite +package content.region.misthalin.digsite.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,18 +12,18 @@ import org.rs09.consts.NPCs */ @Initializable -class ElissaDialogue(player: Player? = null) : DialoguePlugin(player){ +class ElissaDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ - var fr = FacialExpression.FRIENDLY - var ask = FacialExpression.ASKING - var ann = FacialExpression.ANNOYED - var neu = FacialExpression.ANNOYED - var ama = FacialExpression.AMAZED + var fr = core.game.dialogue.FacialExpression.FRIENDLY + var ask = core.game.dialogue.FacialExpression.ASKING + var ann = core.game.dialogue.FacialExpression.ANNOYED + var neu = core.game.dialogue.FacialExpression.ANNOYED + var ama = core.game.dialogue.FacialExpression.AMAZED var qb = 2 override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } return true } @@ -91,7 +91,7 @@ class ElissaDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ElissaDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BarlakDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BarlakDialogue.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BarlakDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BarlakDialogue.kt index 4462bfe0f..8d8a9cd53 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BarlakDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BarlakDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.dorgeshuun -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +package content.region.misthalin.dorgeshuun.dialogue +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills @@ -9,20 +9,19 @@ import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs -import java.text.NumberFormat /** * @author qmqz */ @Initializable -class BarlakDialogue(player: Player? = null) : DialoguePlugin(player){ - private var pask = FacialExpression.ASKING - private var pfr = FacialExpression.FRIENDLY - private var pneu = FacialExpression.NEUTRAL - private var nhap = FacialExpression.OLD_HAPPY - private var ntalk1 = FacialExpression.OLD_CALM_TALK1 - private var ntalk2 = FacialExpression.OLD_CALM_TALK2 +class BarlakDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + private var pask = core.game.dialogue.FacialExpression.ASKING + private var pfr = core.game.dialogue.FacialExpression.FRIENDLY + private var pneu = core.game.dialogue.FacialExpression.NEUTRAL + private var nhap = core.game.dialogue.FacialExpression.OLD_HAPPY + private var ntalk1 = core.game.dialogue.FacialExpression.OLD_CALM_TALK1 + private var ntalk2 = core.game.dialogue.FacialExpression.OLD_CALM_TALK2 private var curItem = 0 @@ -165,22 +164,22 @@ class BarlakDialogue(player: Player? = null) : DialoguePlugin(player){ } } - 150 -> player(FacialExpression.THINKING, "What?").also { stage++ } - 151 -> npc(FacialExpression.OLD_DISTRESSED, "I don't have any bones!").also { stage++ } + 150 -> player(core.game.dialogue.FacialExpression.THINKING, "What?").also { stage++ } + 151 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I don't have any bones!").also { stage++ } 152 -> options("Then how do you stand up?", "What do you need bones for?", "Will you buy anything besides bones?", "What kind of bones do you need?", "Goodbye").also { stage++ } 153 -> when (buttonId) { - 1 -> player(FacialExpression.THINKING, "Then how do you stand up?").also { stage = 200 } - 2 -> player(FacialExpression.THINKING, "What do you need bones for?").also { stage = 220 } - 3 -> player(FacialExpression.THINKING, "Will you buy anything besides bones?").also { stage = 240 } - 4 -> player(FacialExpression.THINKING, "What kind of bones do you need?").also { stage = 260 } + 1 -> player(core.game.dialogue.FacialExpression.THINKING, "Then how do you stand up?").also { stage = 200 } + 2 -> player(core.game.dialogue.FacialExpression.THINKING, "What do you need bones for?").also { stage = 220 } + 3 -> player(core.game.dialogue.FacialExpression.THINKING, "Will you buy anything besides bones?").also { stage = 240 } + 4 -> player(core.game.dialogue.FacialExpression.THINKING, "What kind of bones do you need?").also { stage = 260 } 5 -> player(pfr, "Goodbye.").also { stage = 280 } } - 200 -> npc(FacialExpression.OLD_CALM_TALK1, "What?").also { stage++ } - 201 -> playerl(FacialExpression.FRIENDLY, "How do you stand up if you have no bones? Shouldn't you collapse into a gelatinous blob?").also { stage++ } - 202 -> npc(FacialExpression.OLD_LAUGH1, "Ha, ha, ha, ha, ha!").also { stage = 152 } + 200 -> npc(core.game.dialogue.FacialExpression.OLD_CALM_TALK1, "What?").also { stage++ } + 201 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "How do you stand up if you have no bones? Shouldn't you collapse into a gelatinous blob?").also { stage++ } + 202 -> npc(core.game.dialogue.FacialExpression.OLD_LAUGH1, "Ha, ha, ha, ha, ha!").also { stage = 152 } - 220 -> npcl(FacialExpression.OLD_LAUGH1, "To stand up properly. Otherwise I'd collapse into a gelatinous blob! Ha, ha, ha, ha, ha! No, seriously, I need bones to use as a Construction material.").also { stage++ } + 220 -> npcl(core.game.dialogue.FacialExpression.OLD_LAUGH1, "To stand up properly. Otherwise I'd collapse into a gelatinous blob! Ha, ha, ha, ha, ha! No, seriously, I need bones to use as a Construction material.").also { stage++ } 221 -> npcl(ntalk1, "We always need big bones to prop up the mine shafts and to make other temporary structures.").also { stage = 152 } 240 -> npcl(ntalk2, "Well, I've had a few people bring me some interesting giant shells. They say they came from giant snails and giant tortoises. Of course, like the bones, some shells are better than others.").also { stage++ } 241 -> npcl(ntalk1, "I'll give you 250gp for ordinary shells, but what I really need are perfect shells.").also { stage++ } @@ -238,7 +237,7 @@ class BarlakDialogue(player: Player? = null) : DialoguePlugin(player){ return sets[curItem][3] } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BarlakDialogue(player) } diff --git a/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BartakDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BartakDialogue.kt new file mode 100644 index 000000000..38a23edfd --- /dev/null +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/BartakDialogue.kt @@ -0,0 +1,44 @@ +package content.region.misthalin.dorgeshuun.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class BartakDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED,"Oh no! What's broken?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.ASKING, "What? Nothing's broken?").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I'm sorry. I'm just a bit jumpy.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I'm in charge of all the metalworking of Dorgesh-Kaan. It's a big responsibility!").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "If something metal breaks I have to fix it. And lots of things are made of metal!").also { stage++ } + 4 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Don't worry, I'm sure you're up to the task!").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.OLD_DISTRESSED, "I hope you're right.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BartakDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.BARTAK_5778) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/CrateGoblinDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/CrateGoblinDialogue.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/CrateGoblinDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/CrateGoblinDialogue.kt index e1040289c..255e41303 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/CrateGoblinDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/CrateGoblinDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.dorgeshuun +package content.region.misthalin.dorgeshuun.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class CrateGoblinDialogue(player: Player? = null) : DialoguePlugin(player){ +class CrateGoblinDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_NORMAL,"Excuse me, I need to deliver this.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Excuse me, I need to deliver this.").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class CrateGoblinDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return CrateGoblinDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DartogDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DartogDialogue.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DartogDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DartogDialogue.kt index 9be60a7df..bbd41294b 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DartogDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DartogDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.dorgeshuun +package content.region.misthalin.dorgeshuun.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,17 +13,17 @@ import org.rs09.consts.NPCs */ @Initializable -class DartogDialogue(player: Player? = null) : DialoguePlugin(player){ +class DartogDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.OLD_NORMAL,"Hello, surface-dweller.").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Hello, surface-dweller.").also { stage = 0 } return true } - private var fr = FacialExpression.FRIENDLY - private var ask = FacialExpression.ASKING - private var nor = FacialExpression.OLD_NORMAL + private var fr = core.game.dialogue.FacialExpression.FRIENDLY + private var ask = core.game.dialogue.FacialExpression.ASKING + private var nor = core.game.dialogue.FacialExpression.OLD_NORMAL override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage) { @@ -62,7 +62,7 @@ class DartogDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DartogDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DurgokDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DurgokDialogue.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DurgokDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DurgokDialogue.kt index 72807995a..25f0f8e41 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/DurgokDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/DurgokDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.dorgeshuun +package content.region.misthalin.dorgeshuun.dialogue -import api.addItemOrDrop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.addItemOrDrop +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item @@ -15,11 +15,11 @@ import org.rs09.consts.NPCs */ @Initializable -class DurgokDialogue(player: Player? = null) : DialoguePlugin(player){ +class DurgokDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npcl(FacialExpression.OLD_NORMAL,"Frogburger! There's nothing like grilled frog in a bun. Do you want one? Only 10gp!").also { stage = 0 } + npcl(core.game.dialogue.FacialExpression.OLD_NORMAL,"Frogburger! There's nothing like grilled frog in a bun. Do you want one? Only 10gp!").also { stage = 0 } return true } @@ -27,16 +27,16 @@ class DurgokDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 0 -> options("Yes, please.", "No, thanks.").also { stage++ } 1 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes please!").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes please!").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } } 10 -> if (player.inventory.contains(Items.COINS_995, 10)) { player.inventory.remove(Item(Items.COINS_995, 10)) addItemOrDrop(player, Items.FROGBURGER_10962, 1) - npc(FacialExpression.OLD_NORMAL, "There you go.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "There you go.").also { stage = 99 } } else { - npc(FacialExpression.OLD_NORMAL, "I'm sorry, but you need 10gp for that.").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "I'm sorry, but you need 10gp for that.").also { stage = 99 } } 99 -> end() @@ -44,7 +44,7 @@ class DurgokDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DurgokDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/MistagDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/MistagDialogue.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/MistagDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/MistagDialogue.kt index 6fce578b7..5d70b2c2b 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/MistagDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/MistagDialogue.kt @@ -1,24 +1,24 @@ -package rs09.game.content.dialogue.region.dorgeshuun +package content.region.misthalin.dorgeshuun.dialogue import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import rs09.game.content.quest.members.thelosttribe.GoblinFollower -import rs09.game.content.quest.members.thelosttribe.MistagLTDialogue -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import content.region.misthalin.dorgeshuun.quest.thelosttribe.GoblinFollower +import content.region.misthalin.dorgeshuun.quest.thelosttribe.MistagLTDialogue +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class MistagDialogue (player: Player? = null) : DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { +class MistagDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return MistagDialogue(player) } override fun npc(vararg messages: String?): Component { - return npc(FacialExpression.OLD_NORMAL,*messages) + return npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } override fun open(vararg args: Any?): Boolean { diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/randomChildrenDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/randomChildrenDialogue.kt similarity index 72% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/randomChildrenDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/dialogue/randomChildrenDialogue.kt index e14b711af..0e24c7d25 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/randomChildrenDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/dialogue/randomChildrenDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.dorgeshuun +package content.region.misthalin.dorgeshuun.dialogue -import api.toIntArray -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.toIntArray +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,14 +12,14 @@ import core.plugin.Initializable */ @Initializable -class randomChildrenDialogue(player: Player? = null) : DialoguePlugin(player){ - var a = FacialExpression.OLD_NORMAL - var b = FacialExpression.FRIENDLY +class randomChildrenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + var a = core.game.dialogue.FacialExpression.OLD_NORMAL + var b = core.game.dialogue.FacialExpression.FRIENDLY override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC when ((1..5).random()) { - 1 -> npc(FacialExpression.OLD_NORMAL, "Are you a surface-dweller?").also { stage = 0 } + 1 -> npc(core.game.dialogue.FacialExpression.OLD_NORMAL, "Are you a surface-dweller?").also { stage = 0 } 2 -> npcl(a, "Are you " + player.name + "? Did you help Zanik save the city?").also { stage = 10 } 3 -> npc(a, "Sorry, I'm not meant to talk to strangers.").also { stage = 99 } 4 -> npc(a, "Shh! Don't tell anyone!").also { stage = 20 } @@ -47,7 +47,7 @@ class randomChildrenDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return randomChildrenDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveGoblinMinerNPC.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveGoblinMinerNPC.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveGoblinMinerNPC.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveGoblinMinerNPC.kt index bb144e6fb..6813ad0b9 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveGoblinMinerNPC.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveGoblinMinerNPC.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.node.entity.Entity import core.game.node.entity.npc.AbstractNPC diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveRockHandler.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveRockHandler.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveRockHandler.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveRockHandler.kt index deb567a76..bad59c4fe 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveRockHandler.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveRockHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.cache.def.impl.SceneryDefinition import core.game.component.Component diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveZone.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveZone.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveZone.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveZone.kt index 79ca033a7..68744f6ca 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/CaveZone.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/CaveZone.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.node.entity.Entity import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.game.world.map.zone.MapZone import core.game.world.map.zone.ZoneBorders diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DorgCbowEquipPlugin.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DorgCbowEquipPlugin.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DorgCbowEquipPlugin.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DorgCbowEquipPlugin.kt index 88e8382e3..daa187a4b 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DorgCbowEquipPlugin.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DorgCbowEquipPlugin.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.cache.def.impl.ItemDefinition import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DukeHoracioTLTDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DukeHoracioTLTDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt index ca1fecb5c..bb31324de 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/DukeHoracioTLTDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/DukeHoracioTLTDialogue.kt @@ -1,12 +1,12 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { private val Sigmund = NPC(2082) @@ -28,7 +28,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 4 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "Yes your grace, but if there is any possibility that this", "is a goblin incursion then we should take that possibility", "very seriously!" @@ -37,7 +37,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 5 -> player("I think we should at least investigate.").also { stage++ } 6 -> sendNormalDialogue( Sigmund, - FacialExpression.WORRIED, + core.game.dialogue.FacialExpression.WORRIED, "Your grace, I think you should listen to " + (if (player!!.isMale) "him" else "her") + "." ).also { stage++ } @@ -63,7 +63,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 2 -> sendNormalDialogue( Sigmund, - FacialExpression.WORRIED, + core.game.dialogue.FacialExpression.WORRIED, "It is unknown to me, your grace. But the fact it is", "there is enough to prove the Cook's story. It must have", "been dropped by a goblin as it fled." @@ -72,14 +72,14 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 3 -> npc("I've never heard of a goblin wearing something so well-", "crafted.").also { stage++ } 4 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "Then it must have been stolen!" ).also { stage++ } 5 -> npc("But it wasn't stolen from us. Where could it be from?").also { stage++ } 6 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "That doesn't matter! You said yourself that goblins", "couldn't have made that, so they must have stolen it", "from somewhere." @@ -87,14 +87,14 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 7 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "Horrible, thieving goblins have broken into our cellar!", "We must retaliate immediately!" ).also { stage++ } 8 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "First we should wipe out the goblins east of the river,", "then we can march on the goblin village to the north-", "west..." @@ -123,7 +123,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 1 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "What more proof do we need? Nasty, smelly goblins", "have been living under our feet all this time! We must", "crush them at once!" @@ -155,7 +155,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 1 -> sendNormalDialogue( Sigmund, - FacialExpression.ANGRY, + core.game.dialogue.FacialExpression.ANGRY, "And I suppose you believe them, goblin lover?" ).also { stage++ } @@ -180,7 +180,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 1 -> npc("Sigmund! Is this your doing?").also { stage++ } 2 -> sendNormalDialogue( Sigmund, - FacialExpression.WORRIED, + core.game.dialogue.FacialExpression.WORRIED, "Of...of course not! The goblins must have, um, dropped", "the silverware as they ran away." ).also { stage++ } @@ -193,7 +193,7 @@ class DukeHoracioTLTDialogue(val questStage: Int) : DialogueFile() { 4 -> sendNormalDialogue( Sigmund, - FacialExpression.THINKING, + core.game.dialogue.FacialExpression.THINKING, "But don't you see it was for the best? For goblins to be", "living under our feet like this... ugh. It doesn't matter", "how civilised they are: all sub-human species must be", diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/GoblinFollower.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/GoblinFollower.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/GoblinFollower.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/GoblinFollower.kt index 699e11768..987f73012 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/GoblinFollower.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/GoblinFollower.kt @@ -1,11 +1,11 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.component.Component import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.Components -import rs09.game.world.GameWorld +import core.game.world.GameWorld /** * Small object for the goblin follow options diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/HistoryOfTheGoblinRace.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/HistoryOfTheGoblinRace.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/HistoryOfTheGoblinRace.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/HistoryOfTheGoblinRace.kt index d7db3d751..16e3e2914 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/HistoryOfTheGoblinRace.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/HistoryOfTheGoblinRace.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.component.Component import core.game.component.ComponentDefinition import core.game.component.ComponentPlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.plugin.Initializable import core.plugin.Plugin @@ -26,7 +26,7 @@ class HistoryOfTheGoblinRace : ComponentPlugin() { val qstage = player.questRepository.getQuest("Lost Tribe").getStage(player) component?.setCloseEvent { player, c -> if(qstage == 42 || qstage == 41 ) { - player.dialogueInterpreter.sendDialogues(player, FacialExpression.THINKING, "Hey... The symbol of the 'Dorgeshuun' tribe looks just", "like the symbol on the brooch I found.") + player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.THINKING, "Hey... The symbol of the 'Dorgeshuun' tribe looks just", "like the symbol on the brooch I found.") player.questRepository.getQuest("Lost Tribe").setStage(player, 43) } player.removeAttribute("hgr-index") diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/KazgarDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/KazgarDialogue.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/KazgarDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/KazgarDialogue.kt index c206fc67c..ab1355c83 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/KazgarDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/KazgarDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -10,8 +10,8 @@ import core.plugin.Initializable * Dialogue for Kazgar * @author Ceikry */ -class KazgarDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class KazgarDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return KazgarDialogue(player) } @@ -31,7 +31,7 @@ class KazgarDialogue(player: Player? = null) : DialoguePlugin(player) { 10 -> npc("I'm Kazgar, I guide people through the mines.").also { stage = 1000 } 20 -> npc("Certainly!").also { stage++ } 21 -> end().also { - GoblinFollower.sendToMines(player) + GoblinFollower.sendToMines(player) } 1000 -> end() diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribe.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribe.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt index 161ecc35d..1bd8ac31c 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribe.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribe.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeCutscene.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeCutscene.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeCutscene.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeCutscene.kt index f5cc757eb..a9413b011 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeCutscene.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeCutscene.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe -import Cutscene -import api.animate -import api.face -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.DoorActionHandler +import core.api.animate +import core.api.face +import core.game.activity.Cutscene import core.game.node.entity.player.Player import core.game.node.entity.player.link.emote.Emotes import core.game.world.map.Direction import core.game.world.map.Location +import core.game.global.action.DoorActionHandler +import core.game.dialogue.FacialExpression class LostTribeCutscene(player: Player) : Cutscene(player) { override fun setup() { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeOptionHandler.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeOptionHandler.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeOptionHandler.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeOptionHandler.kt index 9975fcf24..0a511d53a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/LostTribeOptionHandler.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/LostTribeOptionHandler.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.cache.def.impl.ItemDefinition import core.cache.def.impl.NPCDefinition import core.cache.def.impl.SceneryDefinition import core.game.component.Component -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.interaction.OptionHandler import core.game.node.Node import core.game.node.entity.player.Player @@ -56,7 +56,7 @@ class LostTribeOptionHandler : OptionHandler(){ } } 32952,32953 -> { - player.dialogueInterpreter.sendDialogues(player,FacialExpression.THINKING,"I don't think I have permission to go in there.") + player.dialogueInterpreter.sendDialogues(player, core.game.dialogue.FacialExpression.THINKING,"I don't think I have permission to go in there.") } } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/MistagLTDialogue.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/MistagLTDialogue.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/MistagLTDialogue.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/MistagLTDialogue.kt index cd3d47b9b..0e986e528 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/MistagLTDialogue.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/MistagLTDialogue.kt @@ -1,10 +1,10 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.component.Component -import core.game.content.dialogue.FacialExpression -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.FacialExpression +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class MistagLTDialogue(val isGreeting: Boolean, val questStage: Int) : DialogueFile() { @@ -53,6 +53,6 @@ class MistagLTDialogue(val isGreeting: Boolean, val questStage: Int) : DialogueF } override fun npc(vararg messages: String?): Component? { - return npc(FacialExpression.OLD_NORMAL,*messages) + return npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickaxeOnRubble.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickaxeOnRubble.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt index c15869a7d..84c1061ed 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickaxeOnRubble.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickaxeOnRubble.kt @@ -1,11 +1,11 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickpocketSigmund.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickpocketSigmund.kt similarity index 77% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickpocketSigmund.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickpocketSigmund.kt index d3bddde85..fa6194e68 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/PickpocketSigmund.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/PickpocketSigmund.kt @@ -1,24 +1,23 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe -import core.game.content.dialogue.FacialExpression import core.game.node.item.Item import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld /** * handles pickpocketing sigmund during the lost tribe quest * @author Ceikry */ -class PickpocketSigmund : InteractionListener{ +class PickpocketSigmund : InteractionListener { val SIGMUND = NPCs.SIGMUND_2082 override fun defineListeners() { - on(SIGMUND, IntType.NPC, "pickpocket"){player, node -> + on(SIGMUND, IntType.NPC, "pickpocket"){ player, node -> player.lock() GameWorld.Pulser.submit(object : Pulse(){ var counter = 0 @@ -30,7 +29,7 @@ class PickpocketSigmund : InteractionListener{ player.inventory.add(Item(Items.KEY_423)) player.dialogueInterpreter.sendItemMessage(Items.KEY_423,"You find a small key on Sigmund.") } else { - player.dialogueInterpreter.sendDialogues(2082,FacialExpression.ANGRY,"What do you think you're doing?!") + player.dialogueInterpreter.sendDialogues(2082, core.game.dialogue.FacialExpression.ANGRY,"What do you think you're doing?!") } player.unlock() return true diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/SigmundChestHandler.kt b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/SigmundChestHandler.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/SigmundChestHandler.kt rename to Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/SigmundChestHandler.kt index 95cfc4e0f..246b139f8 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelosttribe/SigmundChestHandler.kt +++ b/Server/src/main/content/region/misthalin/dorgeshuun/quest/thelosttribe/SigmundChestHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.thelosttribe +package content.region.misthalin.dorgeshuun.quest.thelosttribe import core.cache.def.impl.SceneryDefinition import core.game.interaction.OptionHandler diff --git a/Server/src/main/java/core/game/content/dialogue/AggieDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/AggieDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/AggieDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/AggieDialogue.java index af4e639be..6e4b64ded 100644 --- a/Server/src/main/java/core/game/content/dialogue/AggieDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/AggieDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/DiangoDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/DiangoDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/DiangoDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/DiangoDialogue.java index 37d5c6c2d..75b103eaf 100644 --- a/Server/src/main/java/core/game/content/dialogue/DiangoDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/DiangoDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DraynorBankGuard.java b/Server/src/main/content/region/misthalin/draynor/dialogue/DraynorBankGuard.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/DraynorBankGuard.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/DraynorBankGuard.java index 12ac334f5..6548122c2 100644 --- a/Server/src/main/java/core/game/content/dialogue/DraynorBankGuard.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/DraynorBankGuard.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/FortunatoDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/FortunatoDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/FortunatoDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/FortunatoDialogue.java index 62c819ae3..a30851fe4 100644 --- a/Server/src/main/java/core/game/content/dialogue/FortunatoDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/FortunatoDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/JoeGuardDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/JoeGuardDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/JoeGuardDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/JoeGuardDialogue.java index f7d1018e7..8351ddd49 100644 --- a/Server/src/main/java/core/game/content/dialogue/JoeGuardDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/JoeGuardDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/LeelaDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/LeelaDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/LeelaDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/LeelaDialogue.java index b5c35101c..bc7a4c283 100644 --- a/Server/src/main/java/core/game/content/dialogue/LeelaDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/LeelaDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/MartinTheMasterGardener.java b/Server/src/main/content/region/misthalin/draynor/dialogue/MartinTheMasterGardener.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/MartinTheMasterGardener.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/MartinTheMasterGardener.java index afc6cecd8..b3646c209 100644 --- a/Server/src/main/java/core/game/content/dialogue/MartinTheMasterGardener.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/MartinTheMasterGardener.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/MissSchismDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/MissSchismDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/MissSchismDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/MissSchismDialogue.java index 2b490b1d2..3cc707120 100644 --- a/Server/src/main/java/core/game/content/dialogue/MissSchismDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/MissSchismDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MorganDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/MorganDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/MorganDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/MorganDialogue.java index 1bbbae1ff..eb6270e1e 100644 --- a/Server/src/main/java/core/game/content/dialogue/MorganDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/MorganDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/OliviaDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/OliviaDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/OliviaDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/OliviaDialogue.java index 4987e797b..639d7460f 100644 --- a/Server/src/main/java/core/game/content/dialogue/OliviaDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/OliviaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PrinceAliDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/PrinceAliDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/PrinceAliDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/PrinceAliDialogue.java index 0289f245c..3a3c1647d 100644 --- a/Server/src/main/java/core/game/content/dialogue/PrinceAliDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/PrinceAliDialogue.java @@ -1,12 +1,13 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the dialogue used to handle the Pricne Ali NPC. diff --git a/Server/src/main/java/core/game/content/dialogue/ProfessorOddensteinPlugin.java b/Server/src/main/content/region/misthalin/draynor/dialogue/ProfessorOddensteinPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/ProfessorOddensteinPlugin.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/ProfessorOddensteinPlugin.java index 55f3866b8..294c14ec7 100644 --- a/Server/src/main/java/core/game/content/dialogue/ProfessorOddensteinPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/ProfessorOddensteinPlugin.java @@ -1,14 +1,16 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/content/dialogue/VeronicaDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/VeronicaDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/VeronicaDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/VeronicaDialogue.java index 942982b2e..25796ff04 100644 --- a/Server/src/main/java/core/game/content/dialogue/VeronicaDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/VeronicaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/WiseOldManDialogue.java b/Server/src/main/content/region/misthalin/draynor/dialogue/WiseOldManDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/WiseOldManDialogue.java rename to Server/src/main/content/region/misthalin/draynor/dialogue/WiseOldManDialogue.java index 54a0eab0b..fd67dd044 100644 --- a/Server/src/main/java/core/game/content/dialogue/WiseOldManDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/dialogue/WiseOldManDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java b/Server/src/main/content/region/misthalin/draynor/handlers/DBRCutscenePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DBRCutscenePlugin.java index 5c3221b4f..6c68b2a23 100644 --- a/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DBRCutscenePlugin.java @@ -1,9 +1,9 @@ -package core.game.content.cutscene; +package content.region.misthalin.draynor.handlers; import core.game.component.Component; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.global.action.DoorActionHandler; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.global.action.DoorActionHandler; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.Node; @@ -22,7 +22,7 @@ import core.game.node.item.ItemPlugin; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; @@ -35,7 +35,7 @@ import core.net.packet.context.CameraContext; import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the draynor bank robbery cutscene plugin. diff --git a/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorManorPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DraynorManorPlugin.java index 5ce18a965..27ba1d922 100644 --- a/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorManorPlugin.java @@ -1,10 +1,10 @@ -package core.game.interaction.city; +package content.region.misthalin.draynor.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.agility.AgilityHandler; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -13,7 +13,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.path.Pathfinder; diff --git a/Server/src/main/java/core/game/content/zone/DraynorMansionCourtyardZone.java b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorMansionCourtyardZone.java similarity index 96% rename from Server/src/main/java/core/game/content/zone/DraynorMansionCourtyardZone.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DraynorMansionCourtyardZone.java index e75b30b8c..3a286e242 100644 --- a/Server/src/main/java/core/game/content/zone/DraynorMansionCourtyardZone.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorMansionCourtyardZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.misthalin.draynor.handlers; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/zone/DraynorMarketZone.java b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorMarketZone.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/DraynorMarketZone.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DraynorMarketZone.java index 8861f10c4..6e64da158 100644 --- a/Server/src/main/java/core/game/content/zone/DraynorMarketZone.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorMarketZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.misthalin.draynor.handlers; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorNodePlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DraynorNodePlugin.java index 5408317e9..474822f01 100644 --- a/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorNodePlugin.java @@ -1,22 +1,22 @@ -package core.game.interaction.city; +package content.region.misthalin.draynor.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.scenery.SceneryBuilder; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/DraynorTreeNPC.java b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorTreeNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/DraynorTreeNPC.java rename to Server/src/main/content/region/misthalin/draynor/handlers/DraynorTreeNPC.java index f136479ef..713c21ba4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/DraynorTreeNPC.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/DraynorTreeNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.draynor.handlers; import java.util.List; @@ -6,7 +6,7 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/dialogue/ManorFountainDialogue.java b/Server/src/main/content/region/misthalin/draynor/handlers/ManorFountainDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/ManorFountainDialogue.java rename to Server/src/main/content/region/misthalin/draynor/handlers/ManorFountainDialogue.java index 773004070..2ef389491 100644 --- a/Server/src/main/java/core/game/content/dialogue/ManorFountainDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/handlers/ManorFountainDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.handlers; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AliceDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AliceDialogue.java index 296a6e3df..0dcfe9778 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AliceDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceHusbandDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AliceHusbandDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceHusbandDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AliceHusbandDialogue.java index 1e76b57e0..b9dbb405c 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AliceHusbandDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AliceHusbandDialogue.java @@ -1,28 +1,10 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.Entity; -import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.impl.Animator.Priority; -import core.game.node.entity.npc.NPC; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.system.task.Pulse; -import rs09.game.content.quest.members.anma.AnmaCutscene; -import rs09.game.world.GameWorld; -import core.game.world.map.Location; -import core.game.world.map.build.DynamicRegion; -import core.game.world.map.path.Pathfinder; -import core.game.world.update.flag.context.Animation; -import core.net.packet.PacketRepository; -import core.net.packet.context.CameraContext; -import core.net.packet.context.CameraContext.CameraType; -import core.net.packet.out.CameraViewPacket; -import rs09.plugin.ClassScanner; +import content.region.misthalin.draynor.quest.anma.AnmaCutscene; /** * Handles the husband of alice's npc dialogue. diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetism.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetism.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetism.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetism.java index 2f3459723..4e2f9dc9c 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetism.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetism.java @@ -1,16 +1,16 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; -import core.game.content.quest.members.animalmagnetism.AnimalMagnetismPlugin.ContainerHandler; -import core.game.content.quest.members.animalmagnetism.AnimalMagnetismPlugin.HammerMagnetPlugin; -import core.game.content.quest.members.animalmagnetism.AnimalMagnetismPlugin.ResearchNoteHandler; +import content.region.misthalin.draynor.quest.anma.AnimalMagnetismPlugin.ContainerHandler; +import content.region.misthalin.draynor.quest.anma.AnimalMagnetismPlugin.HammerMagnetPlugin; +import content.region.misthalin.draynor.quest.anma.AnimalMagnetismPlugin.ResearchNoteHandler; import core.plugin.Initializable; -import core.game.content.quest.members.animalmagnetism.AnimalMagnetismPlugin.UndeadTreePlugin; +import content.region.misthalin.draynor.quest.anma.AnimalMagnetismPlugin.UndeadTreePlugin; /** * Handles the animal magnetism quest. diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetismPlugin.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetismPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetismPlugin.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetismPlugin.java index d5aaa3565..3e77bcd3b 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AnimalMagnetismPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnimalMagnetismPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; import java.util.HashMap; import java.util.Map; @@ -11,7 +11,7 @@ import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.gather.SkillingTool; +import content.data.skill.SkillingTool; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -23,7 +23,7 @@ import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; @@ -31,10 +31,10 @@ import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; -import static api.ContentAPIKt.teleport; +import static core.api.ContentAPIKt.teleport; /** * Handles the animal magnetism plugin. diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/anma/AnmaCutscene.kt b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnmaCutscene.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/anma/AnmaCutscene.kt rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AnmaCutscene.kt index 9983a9014..18f6a0438 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/anma/AnmaCutscene.kt +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AnmaCutscene.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.anma +package content.region.misthalin.draynor.quest.anma -import Cutscene -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* +import core.game.activity.Cutscene +import core.game.dialogue.FacialExpression import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player import core.game.world.map.Direction diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AvaDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/AvaDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java index a5023701d..a04139a72 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/AvaDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvaDialogue.java @@ -1,16 +1,16 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; import java.util.ArrayList; import java.util.List; import core.game.container.Container; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the ava npc dialogue. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/equipment/AvasDevice.kt b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvasDevice.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/equipment/AvasDevice.kt rename to Server/src/main/content/region/misthalin/draynor/quest/anma/AvasDevice.kt index d51191109..511e4137f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/equipment/AvasDevice.kt +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/AvasDevice.kt @@ -1,18 +1,16 @@ -package rs09.game.node.entity.equipment +package content.region.misthalin.draynor.quest.anma -import api.* -import api.events.EventHook -import api.events.TickEvent +import core.api.* +import core.game.event.EventHook +import core.game.event.TickEvent import core.game.node.entity.Entity -import core.game.node.entity.combat.equipment.Ammunition import core.game.node.entity.player.Player import org.rs09.consts.Items -import rs09.game.Event -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.config.ItemConfigParser -import rs09.tools.secondsToTicks -import rs09.tools.stringtools.colorize +import core.api.Event +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.secondsToTicks +import core.tools.colorize /** * Handles Ava's device diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/OldCronDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/OldCronDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/OldCronDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/OldCronDialogue.java index 741330b0a..c5f97165f 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/OldCronDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/OldCronDialogue.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.content.quest.free.therestlessghost.RestlessGhost; +import content.region.misthalin.lumbridge.quest.therestlessghost.RestlessGhost; /** * Handles the dialogue used for the old crone. diff --git a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/WitchDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/anma/WitchDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/animalmagnetism/WitchDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/anma/WitchDialogue.java index cd893002f..2e53bb979 100644 --- a/Server/src/main/java/core/game/content/quest/members/animalmagnetism/WitchDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/anma/WitchDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.animalmagnetism; +package content.region.misthalin.draynor.quest.anma; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/ErnestDialogue.java b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/ErnestDialogue.java rename to Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestDialogue.java index 459875009..bc29f3b16 100644 --- a/Server/src/main/java/core/game/content/dialogue/ErnestDialogue.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.draynor.quest.ernest; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/ErnestTheChicken.java b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChicken.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/ErnestTheChicken.java rename to Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChicken.java index 5eb898e20..d18e635cd 100644 --- a/Server/src/main/java/core/game/content/quest/free/ErnestTheChicken.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChicken.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.misthalin.draynor.quest.ernest; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; @@ -7,7 +7,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.world.map.Location; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the ernest the chicken quest. diff --git a/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java rename to Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java index 63d6eb349..5221f5e2f 100644 --- a/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/ernest/ErnestTheChickenPlugin.java @@ -1,11 +1,11 @@ -package core.game.interaction.object; +package content.region.misthalin.draynor.quest.ernest; import java.awt.Point; import java.util.Arrays; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; -import core.game.node.entity.skill.agility.AgilityHandler; +import core.game.global.action.DoorActionHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; @@ -13,7 +13,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/content/quest/free/VampireSlayer.java b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayer.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/VampireSlayer.java rename to Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayer.java index 72104e3f0..6231e659e 100644 --- a/Server/src/main/java/core/game/content/quest/free/VampireSlayer.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayer.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.misthalin.draynor.quest.vampire; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/VampireSlayerNPC.java b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/other/VampireSlayerNPC.java rename to Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerNPC.java index 6bb939d2f..35d9e8df3 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/VampireSlayerNPC.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.draynor.quest.vampire; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java rename to Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerPlugin.java index e9fe41fb3..243b76966 100644 --- a/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java +++ b/Server/src/main/content/region/misthalin/draynor/quest/vampire/VampireSlayerPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.draynor.quest.vampire; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/edgeville/BrotherBordissDialogue.kt b/Server/src/main/content/region/misthalin/edgeville/dialogue/BrotherBordissDialogue.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/edgeville/BrotherBordissDialogue.kt rename to Server/src/main/content/region/misthalin/edgeville/dialogue/BrotherBordissDialogue.kt index ff4ce3520..9726db1c7 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/edgeville/BrotherBordissDialogue.kt +++ b/Server/src/main/content/region/misthalin/edgeville/dialogue/BrotherBordissDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.edgeville +package content.region.misthalin.edgeville.dialogue import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.player.Player import core.game.node.item.Item import core.plugin.Initializable @@ -13,13 +13,13 @@ import org.rs09.consts.Items * Handles Boriss' dialogue * @author Ceikry */ -class BrotherBordissDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class BrotherBordissDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BrotherBordissDialogue(player) } override fun npc(vararg messages: String?): Component { - return npc(FacialExpression.OLD_NORMAL,*messages) + return npc(core.game.dialogue.FacialExpression.OLD_NORMAL,*messages) } override fun open(vararg args: Any?): Boolean { diff --git a/Server/src/main/java/core/game/content/dialogue/EdgevilleMonkDialogue.java b/Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleMonkDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/EdgevilleMonkDialogue.java rename to Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleMonkDialogue.java index 3e6cf3538..665ab07b2 100644 --- a/Server/src/main/java/core/game/content/dialogue/EdgevilleMonkDialogue.java +++ b/Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleMonkDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.edgeville.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EdgevilleShopKeeperDialogue.java b/Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleShopKeeperDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/EdgevilleShopKeeperDialogue.java rename to Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleShopKeeperDialogue.java index 613ba47e0..0003b70c7 100644 --- a/Server/src/main/java/core/game/content/dialogue/EdgevilleShopKeeperDialogue.java +++ b/Server/src/main/content/region/misthalin/edgeville/dialogue/EdgevilleShopKeeperDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.edgeville.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HariDialogue.java b/Server/src/main/content/region/misthalin/edgeville/dialogue/HariDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/HariDialogue.java rename to Server/src/main/content/region/misthalin/edgeville/dialogue/HariDialogue.java index c65644d19..be922970d 100644 --- a/Server/src/main/java/core/game/content/dialogue/HariDialogue.java +++ b/Server/src/main/content/region/misthalin/edgeville/dialogue/HariDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.edgeville.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java b/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java rename to Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java index 9539a3176..a72034698 100644 --- a/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java +++ b/Server/src/main/content/region/misthalin/edgeville/handlers/EdgevilleNodePlugin.java @@ -1,10 +1,10 @@ -package core.game.interaction.city; +package content.region.misthalin.edgeville.handlers; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/edgeville/PosterListener.kt b/Server/src/main/content/region/misthalin/edgeville/handlers/PosterListener.kt similarity index 66% rename from Server/src/main/kotlin/rs09/game/interaction/region/dungeons/edgeville/PosterListener.kt rename to Server/src/main/content/region/misthalin/edgeville/handlers/PosterListener.kt index 8dcd4495d..63de7555e 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/edgeville/PosterListener.kt +++ b/Server/src/main/content/region/misthalin/edgeville/handlers/PosterListener.kt @@ -1,15 +1,15 @@ -package rs09.game.interaction.region.dungeons.edgeville +package content.region.misthalin.edgeville.handlers -import api.sendDialogue -import api.teleport +import core.api.sendDialogue +import core.api.teleport import core.game.world.map.Location import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener class PosterListener : InteractionListener { override fun defineListeners() { - on(Scenery.POSTER_29586, IntType.SCENERY, "pull-back") {player, _ -> + on(Scenery.POSTER_29586, IntType.SCENERY, "pull-back") { player, _ -> sendDialogue(player, "There appears to be a tunnel behind this poster.") teleport(player, Location.create(3140, 4230, 2)) return@on true diff --git a/Server/src/main/java/core/game/content/dialogue/BarfyBill.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/BarfyBill.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/BarfyBill.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/BarfyBill.java index 8c6ccc5dc..1207ee094 100644 --- a/Server/src/main/java/core/game/content/dialogue/BarfyBill.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/BarfyBill.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/bob/BobDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/BobDialogue.java similarity index 98% rename from Server/src/main/java/core/game/interaction/npc/bob/BobDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/BobDialogue.java index d60fffa55..c39e162aa 100644 --- a/Server/src/main/java/core/game/interaction/npc/bob/BobDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/BobDialogue.java @@ -1,15 +1,15 @@ -package core.game.interaction.npc.bob; +package content.region.misthalin.lumbridge.dialogue; import core.cache.def.impl.ItemDefinition; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.RepairItem; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import content.data.RepairItem; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import rs09.game.node.entity.equipment.BarrowsEquipmentRegister; +import content.global.handlers.item.equipment.BarrowsEquipmentRegister; /** * Represents the dialogue plugin used for the bob npc who repairs items. diff --git a/Server/src/main/java/core/game/content/dialogue/CookingTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/CookingTutorDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/CookingTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/CookingTutorDialogue.java index 2e5568425..c7c2f7197 100644 --- a/Server/src/main/java/core/game/content/dialogue/CookingTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/CookingTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/CraftingTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/CraftingTutorDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/CraftingTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/CraftingTutorDialogue.java index f7fee7485..d51457996 100644 --- a/Server/src/main/java/core/game/content/dialogue/CraftingTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/CraftingTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/DonieDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DonieDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/DonieDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/DonieDialogue.java index 6ce8ea051..dbe66ddbf 100644 --- a/Server/src/main/java/core/game/content/dialogue/DonieDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DonieDialogue.java @@ -1,9 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the dialogue plugin used for the donie npc. diff --git a/Server/src/main/java/core/game/content/dialogue/DoomsayerDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DoomsayerDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/DoomsayerDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/DoomsayerDialogue.java index 69b53d9c0..76f0161af 100644 --- a/Server/src/main/java/core/game/content/dialogue/DoomsayerDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DoomsayerDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/DukeHoracioDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DukeHoracioDialogue.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/DukeHoracioDialogue.kt rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/DukeHoracioDialogue.kt index dc05ebec6..e664607be 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/DukeHoracioDialogue.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/DukeHoracioDialogue.kt @@ -1,22 +1,21 @@ -package rs09.game.content.dialogue.region.lumbridge +package content.region.misthalin.lumbridge.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.content.quest.free.dragonslayer.DragonSlayer +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import content.region.misthalin.varrock.quest.dragonslayer.DragonSlayer import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType -import rs09.game.content.quest.free.dragonslayer.DukeHoracioDSDialogue -import rs09.game.content.quest.free.runemysteries.DukeHoracioRMDialogue -import rs09.game.content.quest.members.thelosttribe.DukeHoracioTLTDialogue -import rs09.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE -import rs09.tools.END_DIALOGUE +import content.region.misthalin.varrock.quest.dragonslayer.DukeHoracioDSDialogue +import content.region.misthalin.lumbridge.quest.runemysteries.DukeHoracioRMDialogue +import content.region.misthalin.dorgeshuun.quest.thelosttribe.DukeHoracioTLTDialogue +import core.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE +import core.tools.END_DIALOGUE /** * Core dialogue plugin for Duke Horacio, redirects to more specific DialogueFiles. * @author Ceikry */ -class DukeHoracioDialogue(player: Player? = null) : DialoguePlugin(player) { +class DukeHoracioDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun getIds(): IntArray { return intArrayOf(741) @@ -31,7 +30,7 @@ class DukeHoracioDialogue(player: Player? = null) : DialoguePlugin(player) { addOption("Lost Tribe", DukeHoracioTLTDialogue(player.questRepository.getStage("Lost Tribe"))) } if (!sendChoices()) { - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Greetings. Welcome to my castle.") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.HALF_GUILTY, "Greetings. Welcome to my castle.") } return true @@ -51,13 +50,13 @@ class DukeHoracioDialogue(player: Player? = null) : DialoguePlugin(player) { } 1 -> when (buttonId) { 1 -> { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Have any quests for me?") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HALF_GUILTY, "Have any quests for me?") stage = 20 } 2 -> { interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "I hear many of the local people earn money by learning a", "skill. Many people get by in life by becoming accomplished", "smiths, cooks, miners and woodcutters." @@ -81,7 +80,7 @@ class DukeHoracioDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return DukeHoracioDialogue(player) } } \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/ExplorerJackDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/ExplorerJackDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/ExplorerJackDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/ExplorerJackDialogue.java index 744fef1e2..d5b061576 100644 --- a/Server/src/main/java/core/game/content/dialogue/ExplorerJackDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/ExplorerJackDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.emote.Emotes; import core.plugin.Initializable; -import core.game.node.item.Item; /** * Handles the explorer jack dialogue. diff --git a/Server/src/main/java/core/game/content/dialogue/FishingTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/FishingTutorDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/FishingTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/FishingTutorDialogue.java index 277642b8a..1202aa487 100644 --- a/Server/src/main/java/core/game/content/dialogue/FishingTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/FishingTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FredTheFarmer.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/FredTheFarmer.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/FredTheFarmer.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/FredTheFarmer.java index 08e316b94..890c64800 100644 --- a/Server/src/main/java/core/game/content/dialogue/FredTheFarmer.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/FredTheFarmer.java @@ -1,11 +1,13 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; -import core.game.content.quest.free.SheepShearer; +import content.region.misthalin.lumbridge.quest.sheepshearer.SheepShearer; /** * Represents the dialogue plugin used for fred the farmer npc. diff --git a/Server/src/main/java/core/game/content/dialogue/GeeDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/GeeDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/GeeDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/GeeDialogue.java index 74dc447e1..5fdc5bcfb 100644 --- a/Server/src/main/java/core/game/content/dialogue/GeeDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/GeeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HansDialoguePlugin.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/HansDialoguePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/HansDialoguePlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/HansDialoguePlugin.java index 9e052bd37..59b1f70f6 100644 --- a/Server/src/main/java/core/game/content/dialogue/HansDialoguePlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/HansDialoguePlugin.java @@ -1,12 +1,14 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.IronmanMode; import core.game.world.map.zone.ZoneBorders; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** diff --git a/Server/src/main/java/core/game/content/dialogue/HarlanDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/HarlanDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/HarlanDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/HarlanDialogue.java index f14365e00..d1dd299e3 100644 --- a/Server/src/main/java/core/game/content/dialogue/HarlanDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/HarlanDialogue.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; import core.game.container.Container; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/hamdungeon/JimmyTheChiselDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/dialogue/JimmyTheChiselDialogue.kt similarity index 62% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/hamdungeon/JimmyTheChiselDialogue.kt rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/JimmyTheChiselDialogue.kt index c0ba7cdf2..eba170e5f 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/hamdungeon/JimmyTheChiselDialogue.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/JimmyTheChiselDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.hamdungeon +package content.region.misthalin.lumbridge.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,11 +13,11 @@ import org.rs09.consts.NPCs */ @Initializable -class JimmyTheChiselDialogue(player: Player? = null) : DialoguePlugin(player) { +class JimmyTheChiselDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Hello mate!").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Hello mate!").also { stage = 99 } return true } @@ -28,7 +28,7 @@ class JimmyTheChiselDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return JimmyTheChiselDialogue(player) } diff --git a/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeGuideDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeGuideDialogue.kt new file mode 100644 index 000000000..73344f2b6 --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeGuideDialogue.kt @@ -0,0 +1,127 @@ +package content.region.misthalin.lumbridge.dialogue + +import core.api.isQuestComplete +import core.api.sendGraphics +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.IronmanMode +import core.game.node.entity.player.link.diary.DiaryType +import core.game.world.map.zone.impl.ModeratorZone +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE + +@Initializable +class LumbridgeGuideDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LumbridgeGuideDialogue(player) + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + val staff = player.isStaff + val ironman = player.ironmanManager.isIronman + val sheepShearerComplete = isQuestComplete(player, "Sheep Shearer") + val cooksAssistantComplete = isQuestComplete(player, "Cook's Assistant") + + when (stage) { + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Greetings, adventurer. I am Phileas, the Lumbridge Guide. I am here to give information and directions to new players. Do you require any help?").also { stage++ } + 1 -> showTopics( + Topic("Where can I find a quest to go on?", 10), + Topic("What monsters should I fight?", 20), + Topic("Where can I make money?", 30), + Topic("I'd like to know more about security.", 40), + IfTopic("Where can I find a bank?", 50, !staff && !ironman), + IfTopic("More Options...", 100, staff || ironman, skipPlayer = true), + ) + + //More Options... + 100 -> showTopics( + Topic("Where can I find a bank?", 50), + IfTopic("I would like to access the P-Mod room.", 200, staff), + IfTopic("I would like to de-iron.", 300, ironman), + Topic("Go back...", 1, skipPlayer = true) + ) + + //Where can I find a quest? + 10 -> { + if (!cooksAssistantComplete) + npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "You can try talking to the Cook in the Lumbridge Castle. I hear he is always looking for some help.") + else if (!sheepShearerComplete) + npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "You can try talking to Fred the Farmer north-west of here. I hear he is always looking for some help.") + else + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You are such an accomplished adventurer already; you should be telling me some good quests to go on.") + stage = END_DIALOGUE + } + + //What monsters should I fight? + 20 -> if (player.properties.currentCombatLevel >= 30) { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You're strong enough to work out what monsters to fight for yourself now, but the tutors might help you with any questions you have about the skills; they're just south of the general store.") + stage = END_DIALOGUE + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "There are things to kill all over the place! At your level, you might like to try wandering westwards to the Wizards' Tower or north-west to the Barbarian Village.") + stage++ + } + 21 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Non-player characters usually appear as yellow dots on your mini-map, although there are some that you won't be able to fight, such as myself. Watch out for monsters which are tougher").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "than you. A monster's combat level is shown next to their 'Attack' option. If that level is coloured green it means the monster is weaker than you. If it is red, it means the monster is tougher than you.").also { stage++ } + 23 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Remember, you will do better if you have better armour and weapons and it's always worth carrying a bit of food to heal yourself.").also { stage = 1 } + + //Where can I make money? + 30 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "There are many ways to make money in the game. I would suggest either killing monsters or doing a trade skill such as Smithing or Fishing.").also { stage++ } + 31 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Please don't try to get money by begging off other players. It will make you unpopular. Nobody likes a beggar. It is very irritating to have other players asking for your hard-earned cash.").also { stage = 1 } + + //I'd like to know more about security + 40 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I can tell you about password security, avoiding item scamming and in-game moderation. I can also tell you about a place called the Stronghold of Security, where you can learn more about account security and have a").also { stage++ } + 41 -> { + player.achievementDiaryManager.finishTask(player, DiaryType.LUMBRIDGE, 0, 17) + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "bit of an adventure at the same time. In fact, why don't you just head there instead? It's a lot more fun, I promise. You can find it down the hole in the middle of Barbarian Village to the north-west.") + stage = 1 + } + + //Where can I find a bank? + 50 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "You'll find a bank upstairs in Lumbridge Castle - go right to the top!").also { stage = 1 } + + //visit pmod room + 200 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, of course.").also { stage++ } + 201 -> { + end() + if (player.isStaff) + ModeratorZone.teleport(player) + } + + //deiron + 300 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course, but first let me give you a word of warning.").also { stage++ } + 301 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Should you choose to step away from the path of the ironman now, you will not have the option to return.").also { stage++ } + 302 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Now I ask you to make sure, are you sure you want to permanently remove ironman mode?").also { stage++ } + 303 -> showTopics( + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, I'm sure.", 310), + Topic(core.game.dialogue.FacialExpression.FRIENDLY, "No, I've changed my mind.", END_DIALOGUE) + ) + + //yes - deiron + 310 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Very well, let me just check one thing...").also { stage++ } + 311 -> if (player.ironmanManager.mode == IronmanMode.HARDCORE) { + npcl(core.game.dialogue.FacialExpression.WORRIED, "Oh, dear, it's just as I feared. You're a hardcore ironman! My apologies, but there's nothing I can do to help.").also { stage = END_DIALOGUE } + } else { + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Oh, wonderful. It appears everything is in order. Sit still for a moment...").also { stage++ } + } + 312 -> { + sendGraphics(342, player.location) + sendDialogue("------------------", "The wise old wizard casts a strange spell.", "------------------") + stage++ + } + 313 -> { + player.ironmanManager.mode = IronmanMode.NONE + npcl(core.game.dialogue.FacialExpression.HALF_ASKING, "There, I believe it is done. You should no longer be restricted from the wider world.") + stage = END_DIALOGUE + } + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.LUMBRIDGE_GUIDE_2244) + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/LumbridgeJailGuard.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeJailGuard.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/LumbridgeJailGuard.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeJailGuard.java index 8f1060749..4e6ae256d 100644 --- a/Server/src/main/java/core/game/content/dialogue/LumbridgeJailGuard.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeJailGuard.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampArcher.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampArcher.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/LumbridgeSwampArcher.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampArcher.java index 6b22afdc3..cdc54f615 100644 --- a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampArcher.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampArcher.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampMonk.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampMonk.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/LumbridgeSwampMonk.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampMonk.java index 1867cb940..5ad40d929 100644 --- a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampMonk.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampMonk.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampWizard.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampWizard.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/LumbridgeSwampWizard.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampWizard.java index 4de3879aa..aea5dc02d 100644 --- a/Server/src/main/java/core/game/content/dialogue/LumbridgeSwampWizard.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/LumbridgeSwampWizard.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MagicTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/MagicTutorDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/MagicTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/MagicTutorDialogue.java index ed19f0d0f..db1e45435 100644 --- a/Server/src/main/java/core/game/content/dialogue/MagicTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/MagicTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; diff --git a/Server/src/main/java/core/game/content/dialogue/MiningtutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/MiningtutorDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/MiningtutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/MiningtutorDialogue.java index 8f6415694..73f483494 100644 --- a/Server/src/main/java/core/game/content/dialogue/MiningtutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/MiningtutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PrayerTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/PrayerTutorDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/PrayerTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/PrayerTutorDialogue.java index 1c11daecc..4ccdfc95d 100644 --- a/Server/src/main/java/core/game/content/dialogue/PrayerTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/PrayerTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/RangedTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/RangedTutorDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/RangedTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/RangedTutorDialogue.java index 95175dc15..8e322cc48 100644 --- a/Server/src/main/java/core/game/content/dialogue/RangedTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/RangedTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/SethGroatsDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/SethGroatsDialogue.java similarity index 85% rename from Server/src/main/java/core/game/content/dialogue/SethGroatsDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/SethGroatsDialogue.java index 2606158d1..3bbb3be36 100644 --- a/Server/src/main/java/core/game/content/dialogue/SethGroatsDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/SethGroatsDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SigmundDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/SigmundDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/SigmundDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/SigmundDialogue.java index 238aab13c..f384019e9 100644 --- a/Server/src/main/java/core/game/content/dialogue/SigmundDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/SigmundDialogue.java @@ -1,10 +1,12 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** diff --git a/Server/src/main/java/core/game/content/dialogue/WoodsmanTutorDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/dialogue/WoodsmanTutorDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/WoodsmanTutorDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/dialogue/WoodsmanTutorDialogue.java index ae0cc228b..03ad3d400 100644 --- a/Server/src/main/java/core/game/content/dialogue/WoodsmanTutorDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/dialogue/WoodsmanTutorDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.lumbridge.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/LumbridgeAchivementDiary.kt b/Server/src/main/content/region/misthalin/lumbridge/diary/LumbridgeAchivementDiary.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/LumbridgeAchivementDiary.kt rename to Server/src/main/content/region/misthalin/lumbridge/diary/LumbridgeAchivementDiary.kt index 32d32b9b3..a7b16274c 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/LumbridgeAchivementDiary.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/diary/LumbridgeAchivementDiary.kt @@ -1,8 +1,9 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.misthalin.lumbridge.diary -import api.events.* -import api.inBorders -import api.questStage +import content.global.skill.magic.TeleportMethod +import content.global.skill.magic.spellconsts.Modern +import core.api.inBorders +import core.api.questStage import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType @@ -11,14 +12,12 @@ import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.content.dialogue.region.lumbridge.DukeHoracioDialogue -import rs09.game.content.jobs.JobType -import rs09.game.content.quest.free.dragonslayer.DukeHoracioDSDialogue -import rs09.game.node.entity.player.link.diary.AreaDiaryTask -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel -import rs09.game.node.entity.skill.magic.TeleportMethod -import rs09.game.node.entity.skill.magic.spellconsts.Modern +import content.region.misthalin.lumbridge.dialogue.DukeHoracioDialogue +import content.region.misthalin.varrock.quest.dragonslayer.DukeHoracioDSDialogue +import core.game.diary.AreaDiaryTask +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel +import core.game.event.* class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { @@ -107,13 +106,13 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { AreaDiaryTask( CASTLE_ROOF_AREA, DiaryLevel.BEGINNER, - BeginnerTasks.CASTLE_CLIMB_TO_HIGHEST_POINT + BeginnerTasks.CASTLE_CLIMB_TO_HIGHEST_POINT ), AreaDiaryTask( WIZARDS_TOWER_TOP_FLOOR_AREA, DiaryLevel.BEGINNER, - BeginnerTasks.WIZARDS_TOWER_CLIMB_TO_TOP + BeginnerTasks.WIZARDS_TOWER_CLIMB_TO_TOP ) ) @@ -123,7 +122,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.CHAMPIONS_GUILD_MINE_CLAY + BeginnerTasks.CHAMPIONS_GUILD_MINE_CLAY ) } @@ -133,7 +132,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.SWAMP_CATCH_SHRIMPS + BeginnerTasks.SWAMP_CATCH_SHRIMPS ) } @@ -141,7 +140,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.SWAMP_MINE_COPPER_ORE + BeginnerTasks.SWAMP_MINE_COPPER_ORE ) } @@ -149,7 +148,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.SWAMP_MINE_COAL + MediumTasks.SWAMP_MINE_COAL ) } @@ -158,7 +157,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.SWAMP_CUT_DEAD_TREE + EasyTasks.SWAMP_CUT_DEAD_TREE ) } } @@ -168,7 +167,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.SWAMP_COOK_RAT_MEAT_ON_CAMPFIRE + EasyTasks.SWAMP_COOK_RAT_MEAT_ON_CAMPFIRE ) } } @@ -180,7 +179,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.RIVER_GATHER_WILLOW_LOGS + MediumTasks.RIVER_GATHER_WILLOW_LOGS ) } @@ -188,7 +187,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.RIVER_CATCH_PIKE + EasyTasks.RIVER_CATCH_PIKE ) } @@ -196,7 +195,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.RIVER_CATCH_SALMON + MediumTasks.RIVER_CATCH_SALMON ) } @@ -207,7 +206,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CASTLE_COOK_LOBSTER_ON_RANGE + MediumTasks.CASTLE_COOK_LOBSTER_ON_RANGE ) } } @@ -219,7 +218,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CRAFT_HOLY_SYMBOL + MediumTasks.CRAFT_HOLY_SYMBOL ) } } @@ -230,7 +229,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.AL_KHARID_MINE_IRON + EasyTasks.AL_KHARID_MINE_IRON ) } @@ -238,7 +237,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.AL_KHARID_MINE_SILVER + MediumTasks.AL_KHARID_MINE_SILVER ) } } @@ -251,7 +250,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.SWAMP_KILL_GIANT_RAT + EasyTasks.SWAMP_KILL_GIANT_RAT ) } @@ -259,7 +258,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.DRAYNOR_JAIL_SEWER_KILL_ZOMBIE + EasyTasks.DRAYNOR_JAIL_SEWER_KILL_ZOMBIE ) } } @@ -271,7 +270,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.WIZARDS_TOWER_TELEPORT_ESSENCE_MINE + EasyTasks.WIZARDS_TOWER_TELEPORT_ESSENCE_MINE ) } } @@ -283,7 +282,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.SWAMP_LIGHT_NORMAL_LOGS + EasyTasks.SWAMP_LIGHT_NORMAL_LOGS ) } @@ -292,7 +291,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CASTLE_LIGHT_WILLOW_LOGS + MediumTasks.CASTLE_LIGHT_WILLOW_LOGS ) } } @@ -307,7 +306,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.WIZARDS_TOWER_TAUNT_DEMON + EasyTasks.WIZARDS_TOWER_TAUNT_DEMON ) } } @@ -319,7 +318,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.RIDE_GNOMECOPTER + MediumTasks.RIDE_GNOMECOPTER ) } } @@ -330,7 +329,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.CASTLE_SPEAK_TO_DUKE_HORACIO + BeginnerTasks.CASTLE_SPEAK_TO_DUKE_HORACIO ) } } @@ -345,7 +344,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CASTLE_OBTAIN_ANTIDRAGON_SHIELD + MediumTasks.CASTLE_OBTAIN_ANTIDRAGON_SHIELD ) } } @@ -363,7 +362,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.COWFIELD_OBTAIN_COW_HIDE + EasyTasks.COWFIELD_OBTAIN_COW_HIDE ) } } @@ -377,7 +376,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.EASY, - EasyTasks.DRAYNOR_ACCESS_BANK + EasyTasks.DRAYNOR_ACCESS_BANK ) } @@ -385,7 +384,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.BROWSE_GENERAL_STORE + BeginnerTasks.BROWSE_GENERAL_STORE ) } } @@ -397,7 +396,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CAST_LUMBRIDGE_TELEPORT + MediumTasks.CAST_LUMBRIDGE_TELEPORT ) } } @@ -409,7 +408,7 @@ class LumbridgeAchivementDiary : DiaryEventHookBase(DiaryType.LUMBRIDGE) { finishTask( player, DiaryLevel.BEGINNER, - BeginnerTasks.SWAMP_FISHING_TUTOR_GET_A_JOB + BeginnerTasks.SWAMP_FISHING_TUTOR_GET_A_JOB ) } } diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/NedDiaryDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/diary/NedDiaryDialogue.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/NedDiaryDialogue.kt rename to Server/src/main/content/region/misthalin/lumbridge/diary/NedDiaryDialogue.kt index 4b6f9f0c6..18819c749 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/NedDiaryDialogue.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/diary/NedDiaryDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.node.entity.player.link.diary.dialogues +package content.region.misthalin.lumbridge.diary import core.game.node.entity.player.link.diary.AchievementDiary import core.game.node.entity.player.link.diary.DiaryType -import rs09.game.content.dialogue.DialogueFile +import core.game.dialogue.DialogueFile class NedDiaryDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/java/core/game/interaction/npc/bob/BobRepairItem.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/BobRepairItem.java similarity index 91% rename from Server/src/main/java/core/game/interaction/npc/bob/BobRepairItem.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/BobRepairItem.java index fee2b7184..12025ef46 100644 --- a/Server/src/main/java/core/game/interaction/npc/bob/BobRepairItem.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/BobRepairItem.java @@ -1,13 +1,14 @@ -package core.game.interaction.npc.bob; +package content.region.misthalin.lumbridge.handlers; -import core.game.content.global.RepairItem; +import content.region.misthalin.lumbridge.dialogue.BobDialogue; +import content.data.RepairItem; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Plugin; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the plugin used to handle an item being used on bob. diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/ChurchSignListener.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/ChurchSignListener.kt similarity index 74% rename from Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/ChurchSignListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/ChurchSignListener.kt index 0f74e3134..111e757dd 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/ChurchSignListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/ChurchSignListener.kt @@ -1,17 +1,17 @@ -package rs09.game.interaction.region.lumbridge +package content.region.misthalin.lumbridge.handlers -import api.* +import core.api.* import org.rs09.consts.Scenery -import rs09.GlobalStats -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.GlobalStats +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class ChurchSignListener : InteractionListener { val CHURCH_SIGN = Scenery.SIGNPOST_31299 override fun defineListeners() { - on(CHURCH_SIGN, IntType.SCENERY, "read"){player, _ -> + on(CHURCH_SIGN, IntType.SCENERY, "read"){ player, _ -> val deaths = GlobalStats.getDailyDeaths() if(deaths > 0) { sendDialogue(player, "So far today $deaths unlucky adventurers have died on RuneScape and been sent to their respawn location. Be careful out there.") diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/CowFieldSignListener.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/CowFieldSignListener.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/CowFieldSignListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/CowFieldSignListener.kt index fef7bf2cc..fbad9dc8b 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/CowFieldSignListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/CowFieldSignListener.kt @@ -1,10 +1,10 @@ -package rs09.game.interaction.region.lumbridge +package content.region.misthalin.lumbridge.handlers -import api.* +import core.api.* import org.rs09.consts.Scenery -import rs09.GlobalStats -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.GlobalStats +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author bushtail diff --git a/Server/src/main/java/core/game/interaction/city/lumbridge/CowPenZone.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/CowPenZone.java similarity index 93% rename from Server/src/main/java/core/game/interaction/city/lumbridge/CowPenZone.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/CowPenZone.java index 6c14c1eea..ffccf94f0 100644 --- a/Server/src/main/java/core/game/interaction/city/lumbridge/CowPenZone.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/CowPenZone.java @@ -1,4 +1,4 @@ -package core.game.interaction.city.lumbridge; +package content.region.misthalin.lumbridge.handlers; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; @@ -8,7 +8,7 @@ import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.GlobalStats; +import core.GlobalStats; /** * Zone for the lumbridge cow pen diff --git a/Server/src/main/java/core/game/interaction/object/CulinoChestListener.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinoChestListener.kt similarity index 64% rename from Server/src/main/java/core/game/interaction/object/CulinoChestListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/CulinoChestListener.kt index 50c575485..9b5aefc13 100644 --- a/Server/src/main/java/core/game/interaction/object/CulinoChestListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinoChestListener.kt @@ -1,11 +1,10 @@ -package core.game.interaction.`object` +package content.region.misthalin.lumbridge.handlers -import api.getUsedOption -import api.openBankAccount -import core.game.content.global.shop.CulinomancerShop +import core.api.getUsedOption +import core.api.openBankAccount import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the culino chest options. @@ -17,12 +16,12 @@ class CulinoChestListener : InteractionListener { } override fun defineListeners() { - on(CULINO_CHEST, IntType.SCENERY, "buy-items", "buy-food"){player, _ -> + on(CULINO_CHEST, IntType.SCENERY, "buy-items", "buy-food"){ player, _ -> CulinomancerShop.openShop(player, food = getUsedOption(player).lowercase() == "buy-food") return@on true } - on(CULINO_CHEST, IntType.SCENERY, "bank"){player, _ -> + on(CULINO_CHEST, IntType.SCENERY, "bank"){ player, _ -> openBankAccount(player) return@on true } diff --git a/Server/src/main/java/core/game/content/global/shop/CulinomancerShop.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt similarity index 96% rename from Server/src/main/java/core/game/content/global/shop/CulinomancerShop.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt index 3156b2654..b867ca67d 100644 --- a/Server/src/main/java/core/game/content/global/shop/CulinomancerShop.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/CulinomancerShop.kt @@ -1,15 +1,15 @@ -package core.game.content.global.shop +package content.region.misthalin.lumbridge.handlers -import api.LoginListener -import api.getAttribute -import api.setAttribute +import core.api.LoginListener +import core.api.getAttribute +import core.api.setAttribute import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse import org.rs09.consts.Items -import rs09.game.content.global.shops.Shop -import rs09.game.content.global.shops.ShopItem -import rs09.game.world.GameWorld +import core.game.shops.Shop +import core.game.shops.ShopItem +import core.game.world.GameWorld import java.lang.Integer.min import kotlin.collections.HashMap diff --git a/Server/src/main/java/core/game/interaction/npc/DoomsayerTogglePlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/DoomsayerTogglePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/DoomsayerTogglePlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/DoomsayerTogglePlugin.java index ccc856fd3..5d7c2722c 100644 --- a/Server/src/main/java/core/game/interaction/npc/DoomsayerTogglePlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/DoomsayerTogglePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/FredChestListener.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/FredChestListener.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/FredChestListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/FredChestListener.kt index ec2ed3883..0157925ba 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/FredChestListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/FredChestListener.kt @@ -1,10 +1,9 @@ -package rs09.game.interaction.region.lumbridge +package content.region.misthalin.lumbridge.handlers -import api.* -import core.game.world.map.Direction +import core.api.* import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author bushtail diff --git a/Server/src/main/java/core/game/content/zone/FredsFarmHouseZone.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/FredsFarmHouseZone.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/FredsFarmHouseZone.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/FredsFarmHouseZone.java index 81a6d9213..d5b059254 100644 --- a/Server/src/main/java/core/game/content/zone/FredsFarmHouseZone.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/FredsFarmHouseZone.java @@ -1,4 +1,4 @@ -package core.game.content.zone; +package content.region.misthalin.lumbridge.handlers; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/GameInstructorPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/GameInstructorPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/npc/GameInstructorPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/GameInstructorPlugin.java index 7872c6d6d..cae3db799 100644 --- a/Server/src/main/java/core/game/interaction/npc/GameInstructorPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/GameInstructorPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/GnomeCopterSignListener.kt b/Server/src/main/content/region/misthalin/lumbridge/handlers/GnomeCopterSignListener.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/GnomeCopterSignListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/handlers/GnomeCopterSignListener.kt index ee785a4bf..668e13113 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/lumbridge/GnomeCopterSignListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/GnomeCopterSignListener.kt @@ -1,10 +1,9 @@ -package rs09.game.interaction.region.lumbridge +package content.region.misthalin.lumbridge.handlers -import api.sendDialogue -import api.sendMessage +import core.api.sendDialogue import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * @author bushtail diff --git a/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java index 8c095a871..41ec22e8c 100644 --- a/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/HamHideoutPlugin.java @@ -1,13 +1,13 @@ -package core.game.interaction.city; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/HansNPC.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/HansNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/HansNPC.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/HansNPC.java index 92c574ced..7cae51688 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/HansNPC.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/HansNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.lumbridge.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeBasementPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeBasementPlugin.java index 2c9b239f5..ec7831b24 100644 --- a/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeBasementPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.NodeUsageEvent; @@ -11,13 +11,13 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.path.Pathfinder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/LumbridgeInstructorNPC.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeInstructorNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/LumbridgeInstructorNPC.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeInstructorNPC.java index 385b55050..53f19c653 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/LumbridgeInstructorNPC.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeInstructorNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.lumbridge.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeNodePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeNodePlugin.java index c705175af..e170abbe7 100644 --- a/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeNodePlugin.java @@ -1,10 +1,10 @@ -package core.game.interaction.city; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.node.entity.player.link.diary.DiaryType; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.global.action.ClimbActionHandler; +import core.game.activity.ActivityManager; +import core.game.global.action.ClimbActionHandler; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -16,7 +16,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeSwampHolePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeSwampHolePlugin.java index 08f4e568e..e22f68882 100644 --- a/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/LumbridgeSwampHolePlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.region.misthalin.lumbridge.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/OrganCutScene.java similarity index 94% rename from Server/src/main/java/core/game/content/cutscene/OrganCutScene.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/OrganCutScene.java index 61427a5c5..2662cd751 100644 --- a/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/OrganCutScene.java @@ -1,13 +1,13 @@ -package core.game.content.cutscene; +package content.region.misthalin.lumbridge.handlers; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/TormentedDemonNPC.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/TormentedDemonNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/bosses/TormentedDemonNPC.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/TormentedDemonNPC.java index 30fee5e5e..5702373c2 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/TormentedDemonNPC.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/TormentedDemonNPC.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.bosses; +package content.region.misthalin.lumbridge.handlers; import java.util.concurrent.TimeUnit; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -16,7 +16,7 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; /** * Handles the Tormented Demon NPC. diff --git a/Server/src/main/java/core/game/content/activity/gnomecopter/GCInformationSign.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GCInformationSign.java similarity index 95% rename from Server/src/main/java/core/game/content/activity/gnomecopter/GCInformationSign.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GCInformationSign.java index 728ed6a2e..1d1284ed6 100644 --- a/Server/src/main/java/core/game/content/activity/gnomecopter/GCInformationSign.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GCInformationSign.java @@ -1,4 +1,4 @@ -package core.game.content.activity.gnomecopter; +package content.region.misthalin.lumbridge.handlers.gnomecopter; import core.game.component.Component; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java b/Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GnomeCopterActivity.java similarity index 97% rename from Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java rename to Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GnomeCopterActivity.java index 0d8cb36fd..021e8efaa 100644 --- a/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java +++ b/Server/src/main/content/region/misthalin/lumbridge/handlers/gnomecopter/GnomeCopterActivity.java @@ -1,8 +1,7 @@ -package core.game.content.activity.gnomecopter; +package content.region.misthalin.lumbridge.handlers.gnomecopter; import core.game.container.impl.EquipmentContainer; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -12,7 +11,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/CooksAssistant.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/CooksAssistant.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/CooksAssistant.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/CooksAssistant.kt index 83a2e429e..790b6aec2 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/CooksAssistant.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/CooksAssistant.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.free.cooksassistant +package content.region.misthalin.lumbridge.quest.cooksassistant import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/GillieGroatsDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/GillieGroatsDialogue.kt new file mode 100644 index 000000000..6de7e8101 --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/GillieGroatsDialogue.kt @@ -0,0 +1,73 @@ +package content.region.misthalin.lumbridge.quest.cooksassistant + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable + +/** + * Dialogue for Gillie Groats. + * @author Qweqker + */ + +@Initializable +class GillieGroatsDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + var milk = false + if (args.size == 2) milk = true + if (milk) { //If the player attempts to milk a dairy cow without a bucket + npc(core.game.dialogue.FacialExpression.LAUGH, "Tee hee! You've never milked a cow before, have you?") + stage = 100 + return true + } + npc(core.game.dialogue.FacialExpression.HAPPY, "Hello, I'm Gillie the Milkmaid. What can I do for you?") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + + //If the player talks to Gillie directly + 0 -> options("Who are you?", "Can you tell me how to milk a cow?", "I'm fine, thanks.").also { stage++ } + 1 -> when(buttonId) { + 1 -> npc(core.game.dialogue.FacialExpression.HAPPY, "My name's Gillie Groats. My father is a farmer and I", "milk the cows for him.").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "So how do you get milk from a cow then?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "I'm fine, thanks.").also { stage = 1000 } + } + + //Who are you? + 10 -> player(core.game.dialogue.FacialExpression.ASKING, "Do you have any buckets of milk spare?").also { stage++ } + 11 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS, "I'm afraid not. We need all of our milk to sell to", "market, but you can milk the cow yourself if you need", "milk.").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.HAPPY,"Thanks.").also { stage = 1000 } + + //Can you tell me how to milk a cow? + 20 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "It's very easy. First you need an empty bucket to hold", "the milk.").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Then find a dairy cow to milk - you can't milk just", "any cow.").also { stage++ } + 22 -> player(core.game.dialogue.FacialExpression.ASKING, "How do I find a dairy cow?").also { stage++ } + 23 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "They are easy to spot - they are dark brown and", "white, unlike beef cows, which are light brown and white.", "We also tether them to a post to stop them wandering", "around all over the place.").also {stage++ } + 24 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "There are a couple very near, in this field.").also { stage++ } + 25 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Then just milk the cow and your bucket will fill with", "tasty, nutritious milk.").also { stage = 1000 } + + //Continuation of attempting to milk a dairy cow without a bucket + 100 -> player(core.game.dialogue.FacialExpression.ASKING, "Erm... No. How could you tell?").also { stage++ } + 101 -> npc(core.game.dialogue.FacialExpression.LAUGH, "Because you're spilling milk all over the floor. What a","waste ! You need something to hold the milk.").also { stage++ } + 102 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Ah yes, I really should have guessed that one, shouldn't", "I?").also { stage++ } + 103 -> npc(core.game.dialogue.FacialExpression.LAUGH, "You're from the city, aren't you... Try it again with an","empty bucket.").also{ stage++ } + 104 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"Right, I'll do that.").also { stage = 1000 } + + //Dialogue Endpoint + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GillieGroatsDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(3807) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/LumbridgeCookDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/LumbridgeCookDialogue.kt new file mode 100644 index 000000000..a6fa452b8 --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/LumbridgeCookDialogue.kt @@ -0,0 +1,283 @@ +package content.region.misthalin.lumbridge.quest.cooksassistant + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable + +/** + * Dialogue for the Lumbridge Cook. + * @author Qweqker + */ + +@Initializable +class LumbridgeCookDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + //Item declaration + val EMPTY_BUCKET = 1925 + val MILK = 1927 + val EMPTY_POT = 1931 + val FLOUR = 1933 + val EGG = 1944 + + //Default settings for the Cook checking for ingredients in the player's inventory + var gave = false + var leftoverItems = "" + + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + if(player?.questRepository?.getQuest("Lost Tribe")?.getStage(player) == 10){ + player("Did you see what happened in the cellar?") + stage = 0 + return true + } + if (player?.questRepository?.getQuest("Cook's Assistant")!!.getStage(player) <= 0) { //If the player has ot started cook's assistant + npc(core.game.dialogue.FacialExpression.SAD, "What am I to do?") + stage = 0 + return true + } else if (player?.questRepository?.getQuest("Cook's Assistant")!!.getStage(player) in 10..99) { //During the Cook's Assistant Quest + if (player.getAttribute("cooks_assistant:all_submitted", false) || (player.getAttribute("cooks_assistant:milk_submitted", false) && player.getAttribute("cooks_assistant:flour_submitted", false) && player.getAttribute("cooks_assistant:egg_submitted", false))){ //If the player has handed all the ingredients to the chef but did not continue the dialogue + npc(core.game.dialogue.FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!") + stage = 200 + return true + } else { //If the player has not handed all the items to the chef + npc(core.game.dialogue.FacialExpression.SAD, "How are you getting on with finding the ingredients?") + gave = false //Resetting to false here to prevent dialogue skipping later + stage = 100 + return true + } + } + //After completing Cook's Assistant + npc(core.game.dialogue.FacialExpression.HAPPY, "Hello friend, how is the adventuring going?") + stage = 300 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + if(player.questRepository.getQuest("Lost Tribe").getStage(player) == 10){ + when(stage){ + //Lost Tribe + 0 -> npc("Last night I was in the kitchen and I heard a noise","from the cellar. I opened the trapdoor and saw a","creature dart into a hole in the wall.").also { stage++ } + 1 -> npc("It looked a bit like a goblin, but it had big bulging eyes.","It wasn't wearing armour, but it had this odd helmet","with a light on it.").also { stage++ } + 2 -> npc("The tunnel was too dark for me to follow it, so I went","to tell the Duke. But when we went down to the cellar","the hole had been blocked up, and no one believes me.").also { stage++ } + 3 -> player("I believe you.").also { stage++ } + 4 -> npc("Thank you, ${player.name}! If you can convince the Duke","I'm telling the truth then we can get to the bottom of","this mystery.").also { stage = 1000; player.questRepository.getQuest("Lost Tribe").setStage(player,20) } + 5 -> end() + } + return true + } + when (stage) { + 0 -> options("What's wrong?", "Can you make me a cake?", "You don't look very happy.", "Nice hat!").also { stage++ } + 1 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "You're a cook, why don't you bake me a cake?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"You don't look very happy.").also { stage = 30; } + 4 -> player(core.game.dialogue.FacialExpression.HAPPY, "Nice hat!").also { stage = 40 } + } + + //What's wrong? + 10 -> npc(core.game.dialogue.FacialExpression.SCARED, "Oh dear, oh dear, oh dear, I'm in a terrible terrible", "mess! It's the Duke's birthday today, and I should be", "making him a lovely big birthday cake.").also { stage++ } + 11 -> npc(core.game.dialogue.FacialExpression.SAD, "I've forgotten to buy the ingredients. I'll never get", "them in time now. He'll sack me! What will I do? I have", "four children and a goat to look after. Would you help", "me? Please?").also { stage++ } + 12 -> options("I'm always happy to help a cook in distress.", "I can't right now, Maybe later.").also { stage++ } + 13 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.HAPPY, "Yes, I'll help you.").also { stage = 50 } + 2 -> player(core.game.dialogue.FacialExpression.ANNOYED, "No, I don't feel like it. Maybe later.").also { stage++ } + } + + //I can't right now + 14 -> npc(core.game.dialogue.FacialExpression.SAD, "Fine. I always knew you Adventurer types were callous", "beasts. Go on your merry way!").also { stage = 1000 } + + //Can you make me a cake? + 20 -> npc(core.game.dialogue.FacialExpression.SAD, "*sniff* Don't talk to me about cakes...").also { stage++ } + 21 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10} + + //You don't look very happy + 30 -> npc(core.game.dialogue.FacialExpression.SAD, "No, I'm not. The world is caving in around me - I am", "overcome by dark feelings of impending doom.").also { stage++ } + 31 -> options("What's wrong?","I'd take the rest of the day off if I were you.").also { stage++ } + 32 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10} + 2 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"I'd take the rest of the day off if I were you.").also { stage++ } + } + 33 -> npc(core.game.dialogue.FacialExpression.SAD,"No, that's the worst thing I could do. I'd get in terrible","trouble.").also { stage++ } + 34 -> player(core.game.dialogue.FacialExpression.ASKING,"Well maybe you need to take a holiday...").also { stage++ } + 35 -> npc(core.game.dialogue.FacialExpression.SAD,"That would be nice, but the Duke doesn't allow holidays","for core staff").also { stage++ } + 36 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS,"Hmm, why not run away to the sea and start a new","life as a Pirate?").also { stage++ } + 37 -> npc(core.game.dialogue.FacialExpression.SAD,"My wife gets sea sick, and I have an irrational fear of","eyepatches. I don't see it working myself.").also { stage++ } + 38 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"I'm afraid I've run out of ideas.").also { stage++ } + 39 -> npc(core.game.dialogue.FacialExpression.SAD,"I know I'm doomed.").also { stage = 21 } + + //Nice hat! + 40 -> npc(core.game.dialogue.FacialExpression.SAD, "Er, thank you. It's a pretty ordinary cook's hat, really.").also { stage++ } + 41 -> player(core.game.dialogue.FacialExpression.HAPPY, "Still, it suits you. The trousers are pretty special too.").also { stage++ } + 42 -> npc(core.game.dialogue.FacialExpression.SAD, "It's all standard-issue cook's uniform.").also { stage++ } + 43 -> player(core.game.dialogue.FacialExpression.HAPPY, "The whole hat, apron, stripy trousers ensemble. It", "works. It makes you looks like a real cook.").also { stage++ } + 44 -> npc(core.game.dialogue.FacialExpression.ANGRY, "I AM a real cook! I haven't got time to be chatting", "about culinary fashion. I'm in desperate need of help!").also { stage = 21 } + + //Yes, I'll help you + 50 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Oh thank you, thank you. I need milk, an egg and", "flour. I'd be very grateful if you can get them for me.").also{ player?.questRepository?.getQuest("Cook's Assistant")?.start(player!!); stage++ } + 51 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "So where do I find these ingredients then?").also { stage = 60 } + + //Where do I find these ingredients? + 60 -> options("Where do I find some flour?","How about milk?","And eggs? Where are they found?","Actually, I know where to find this stuff.").also { stage++ } + 61 -> when(buttonId) { + 1 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"There is a Mill fairly close, go North and then West.","Mill Lane Mill is just off the road to Draynor. I","usually get my flour from there.").also {stage = 70 } + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"There is a cattle field on the other side of the river,","just across the road from the Groats' Farm.").also { stage = 71 } + 3 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"I normally get my eggs from the Groats' farm, on the","other side of the river.").also { stage = 73 } + 4 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"Actually, I know where to find this stuff.").also { stage = 1000 } + } + + //Where do I find some flour? + 70 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"Talk to Millie, she'll help, she's a lovely girl and a fine","Miler. Make sure you take a pot with you for the flour","though, " + if (player.inventory.contains(EMPTY_POT, 1)) "you've got one on you already." else "there should be one on the table in here.").also { stage = 80 } + + //How about milk? + 71 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS,"Talk to Gillie Groats, she looks after the Dairy cows -","she'll tell you everything you need to know about","milking cows!").also { stage++ } + 72 -> + if (player.inventory.contains(EMPTY_BUCKET , 1)) { + npc(core.game.dialogue.FacialExpression.NEUTRAL,"You'll need an empty bucket for the milk itself. I do see", "you've got a bucket with you already luckily!").also { stage = 80 } + } else { + npc(core.game.dialogue.FacialExpression.NEUTRAL,"You'll need an empty bucket for the milk itself. The", "general store just north of the castle will sell you one", "for a couple of coins.").also { stage = 80 } + } + + //And Eggs? + 73 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"But any chicken should lay eggs.").also { stage = 80 } + + //Alternative menu for "Where do I find these ingredients?" + 80 -> options("Where do I find some flour?","How about milk?","And eggs? Where are they found?","I've got all the information I need. Thanks.").also { stage++ } + 81 -> when(buttonId) { + 1 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"There is a Mill fairly close, go North and then West.","Mill Lane Mill is just off the road to Draynor. I","usually get my flour from there.").also {stage = 70 } + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"There is a cattle field on the other side of the river,","just across the road from the Groats' Farm.").also { stage = 71 } + 3 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"I normally get my eggs from the Groats' farm, on the","other side of the river.").also { stage = 73 } + 4 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"I've got all the information I need. Thanks.").also { stage = 1000 } + } + + 100 -> + if (!player.getAttribute("cooks_assistant:milk_submitted", false) && player.inventory.contains(MILK, 1)) { + player.setAttribute("/save:cooks_assistant:milk_submitted", true).also { + player(core.game.dialogue.FacialExpression.HAPPY, "Here's a bucket of milk.") + player.inventory.remove(Item(MILK)) + gave = true + stage = 100 + } + } else if (!player.getAttribute("cooks_assistant:flour_submitted", false) && player.inventory.contains(FLOUR, 1)) { + player.setAttribute("/save:cooks_assistant:flour_submitted", true).also { + player(core.game.dialogue.FacialExpression.HAPPY, "Here's a pot of flour.") + player.inventory.remove(Item(FLOUR)) + gave = true + stage = 100 + } + } else if (!player.getAttribute("cooks_assistant:egg_submitted", false) && player.inventory.contains(EGG, 1)) { + player.setAttribute("/save:cooks_assistant:egg_submitted", true).also { + player(core.game.dialogue.FacialExpression.HAPPY, "Here's a fresh egg.") + player.inventory.remove(Item(EGG)) + gave = true + stage = 100 + } + } else { + if (gave) { + + //If this is the first time the player gave an item (or items) to the Lumbridge cook + if (!player.getAttribute("cooks_assistant:submitted_some_items", false)) { + player.setAttribute("/save:cooks_assistant:submitted_some_items", true) + } + + //If the player has now handed in all the ingredients + if (player.getAttribute("cooks_assistant:milk_submitted", false) && player.getAttribute("cooks_assistant:flour_submitted", false) && player.getAttribute("cooks_assistant:egg_submitted", false)) { + npc(core.game.dialogue.FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!").also { player.setAttribute("/save:cooks_assistant:all_submitted",true); stage = 200 } + } else { + npc(core.game.dialogue.FacialExpression.WORRIED,"Thanks for the ingredients you have got so far, please get","the rest quickly. I'm running out of time! The Duke","will throw me into the streets!").also { stage = 151 } + } + + } else { //If the player did not give an item to the Lumbridge cook + + //If the player also has never submitted anything before + if (!player.getAttribute("cooks_assistant:submitted_some_items", false)) { + player(core.game.dialogue.FacialExpression.NEUTRAL, "I haven't gotten any of them yet, I'm still looking.").also { stage = 155 } + } else { + options("I'll get right on it.", "Can you remind me how to find these things again?").also { stage = 161 } + } + } + } + + //If the player has submitted some ingredients but not all of them + 150 -> npc(core.game.dialogue.FacialExpression.WORRIED,"Thanks for the ingredients you have got so far, please get","the rest quickly. I'm running out of time! The Duke","will throw me into the streets!").also { stage++ } + + //Checking what the player has left over + 151 -> leftoverItems = "".also{ + if (!player.getAttribute("cooks_assistant:milk_submitted", false)){ + leftoverItems += "A bucket of milk. " + } + if (!player.getAttribute("cooks_assistant:flour_submitted", false)){ + leftoverItems += "A pot of flour. " + } + if (!player.getAttribute("cooks_assistant:egg_submitted", false)){ + leftoverItems += "An egg." + } + if (leftoverItems != ""){ + sendDialogue("You still need to get:",leftoverItems).also {stage = 160} + } else { + npc(core.game.dialogue.FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!").also { player.setAttribute("/save:cooks_assistant:all_submitted",true); stage = 200 } + } + } + + //If the player has yet to collect or hand in any of the ingredients + 155 -> npc(core.game.dialogue.FacialExpression.WORRIED,"Please get the ingredients quickly. I'm running out of","time! The Duke will throw me into the streets!").also { stage++ } + 156 -> sendDialogue("You still need to get:", "A bucket of milk. A pot of flour. An egg.").also { stage = 160 } + + + // Menu after checking the items handed in + 160 -> options("I'll get right on it.","Can you remind me how to find these things again?").also { stage++ } + 161 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.NEUTRAL,"I'll get right on it.").also { stage = 1000 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING,"Can you remind me how to find these things again?").also { stage = 60 } + } + + //Final Cooks Assistant Dialogue + 200 -> player(core.game.dialogue.FacialExpression.HAPPY, "So do I get to go to the Duke's Party?").also { stage++ } + 201 -> npc(core.game.dialogue.FacialExpression.SAD, "I'm afraid not, only the big cheeses get to dine with the", "Duke.").also { stage++ } + 202 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Well, maybe one day I'll be important enough to sit on", "the Duke's table.").also { stage ++ } + 203 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Maybe, but I won't be holding my breath.").also { stage++ } + + //Activate the Cook's Assistant Quest Complete Certificate + 204 -> end().also { player?.questRepository?.getQuest("Cook's Assistant")?.finish(player!!) } + + //Dialogue after Cook's Assistant Completion + 300 -> if(player.questRepository.getQuest("Lost Tribe").getStage(player) == 10) { + player("Do you know what happened in the castle cellar?").also { stage = 600 } + } else { + options("I am getting strong and mighty.", "I keep on dying.", "Can I use your range?").also { stage++ } + } + 301 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.HAPPY, "I am getting strong and mighty. Grrr").also { stage = 310 } + 2 -> player(core.game.dialogue.FacialExpression.SAD, "I keep on dying.").also { stage = 320 } + 3 -> player(core.game.dialogue.FacialExpression.ASKING, "Can I use your range?").also { stage = 330 } + } + + //I am getting strong and mighty + 310 -> npc(core.game.dialogue.FacialExpression.HAPPY,"Glad to hear it!").also { stage = 1000 } + + //I keep on dying + 320 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Ah, well, at least you keep coming back to life too!").also { stage = 1000 } + + //Can I use your range? + 330 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Go ahead! It's a very good range; it's better than most" ,"other ranges.").also { stage++ } + 331 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "It's called the Cook-o-Matic 100 and it uses a combination","of state-of-the-art temperature regulation and magic.").also { stage++ } + 332 -> player(core.game.dialogue.FacialExpression.ASKING,"Will it mean my food will burn less often?").also { stage++ } + 333 -> npc(core.game.dialogue.FacialExpression.NEUTRAL,"Well, that's what the salesman told us anyway...").also { stage++ } + 334 -> player(core.game.dialogue.FacialExpression.THINKING, "Thanks?").also { stage = 1000 } + //Conversation Endpoint + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return LumbridgeCookDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(278) + } +} \ No newline at end of file diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/MillieMillerDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/MillieMillerDialogue.kt new file mode 100644 index 000000000..ea7b4f5ea --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/cooksassistant/MillieMillerDialogue.kt @@ -0,0 +1,68 @@ + package content.region.misthalin.lumbridge.quest.cooksassistant + + import core.ServerConstants + import core.game.node.entity.player.Player + import core.plugin.Initializable + + /** + * Dialogue for Millie Miller. + * @author Qweqker + */ + + @Initializable + class MillieMillerDialogue (player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + + npc(core.game.dialogue.FacialExpression.HAPPY, "Hello Adventurer. Welcome to Mill Lane Mill. Can I", "help you?") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when (stage) { + + //Continuation of Millie's greeting + 0 -> options("Who are you?", "What is this place?", "How do I mill flour?", "I'm fine, thanks.").also { stage++ } + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "Who are you?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "What is this place?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } + 4 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "I'm fine, thanks.").also { stage = 1000 } + } + + //Who are you? + 10 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "I'm Miss Millicent Miller the Miller of Mill Lane Mill.", "Our family have been milling flour for generations.").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "It's a good business to be in. People will always need", "flour.").also { stage++ } + 12 -> player(core.game.dialogue.FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } + + //What is this place? + 20 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS, "This is Mill Lane Mill. Millers of the finest flour in", ServerConstants.SERVER_NAME + ", and home to the Miller family for many", "generations").also { stage++ } + 21 -> npc(core.game.dialogue.FacialExpression.HAPPY, "We take grain from the field nearby and mill into flour.").also { stage++ } + 22 -> player(core.game.dialogue.FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } + + //How do I mill flour? + 30 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Making flour is pretty easy. First of all you need to", "get some grain. You can pick some from wheat fields.", "There is one just outside the Mill, but there are many", "others scattered across " + ServerConstants.SERVER_NAME + ". Feel free to pick wheat").also { stage++ } + 31 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "from our field! There always seems to be plenty of", "wheat there.").also { stage++ } + 32 -> player(core.game.dialogue.FacialExpression.ASKING, "Then I bring my wheat here?").also { stage++ } + 33 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, or one of the other mills in " + ServerConstants.SERVER_NAME + ". They all work", "the same way. Just take your grain to the top floor of", "the mill (up two ladders, there are three floors including", "this one) and then place some grain in to the hopper.").also { stage++ } + 34 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Then you need to start the grinding process by pulling", "the hopper lever. You can add more grain, but each", "time you add grain you have to pul the hopper lever", "again.").also { stage++ } + 35 -> player(core.game.dialogue.FacialExpression.ASKING, "So where does the flour go then?").also { stage++ } + 36 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS, "The flour appears in this room here, you'll need a pot", "to put the flour into. One pot will hold the flour made", "by one load of grain").also { stage++ } + 37 -> npc(core.game.dialogue.FacialExpression.HAPPY, "And that's it! You now have some pots of finely ground", "flour of the highest quality. Ideal for making tasty cakes", "or delicous bread. I'm not a cook so you'll have to ask a", "cook to ind out how to bake things.").also { stage++ } + 38 -> player(core.game.dialogue.FacialExpression.HAPPY, "Great! Thanks for your help.").also { stage = 1000 } + + //Conversation Endpoint + 1000 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MillieMillerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(3806) + } + } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/DramenTreeListener.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/DramenTreeListener.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/DramenTreeListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/DramenTreeListener.kt index 7174d2e56..cefb58d12 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/DramenTreeListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/DramenTreeListener.kt @@ -1,16 +1,15 @@ -package rs09.game.content.quest.members.lostcity +package content.region.misthalin.lumbridge.quest.lostcity import core.game.node.scenery.Scenery -import core.game.node.entity.skill.gather.SkillingTool -import core.game.node.entity.skill.gather.woodcutting.WoodcuttingSkillPulse +import content.data.skill.SkillingTool +import content.global.skill.gather.woodcutting.WoodcuttingSkillPulse import core.game.world.map.Location -import core.plugin.Initializable import org.rs09.consts.NPCs import org.rs09.consts.Scenery as Sceneries -import rs09.game.interaction.InteractionListener -import api.questStage -import api.sendMessage -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.api.questStage +import core.api.sendMessage +import core.game.interaction.IntType class DramenTreeListener : InteractionListener { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCity.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCity.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCity.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCity.kt index 1ccb758e9..f83e0248a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCity.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCity.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.lostcity +package content.region.misthalin.lumbridge.quest.lostcity import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest @@ -18,7 +18,7 @@ class LostCity : Quest("Lost City", 83, 82, 3, 147, 0, 1, 6) { class SkillRequirement(val skill: Int?, val level: Int?) - val requirements = arrayListOf() + val requirements = arrayListOf() override fun finish(player: Player?) { player ?: return diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCityListeners.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCityListeners.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCityListeners.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCityListeners.kt index 75c7538a5..143070cf5 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/LostCityListeners.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/LostCityListeners.kt @@ -1,7 +1,6 @@ -package rs09.game.content.quest.members.lostcity +package content.region.misthalin.lumbridge.quest.lostcity -import api.* -import core.game.content.global.action.DoorActionHandler +import core.api.* import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.node.entity.skill.Skills import core.game.node.item.Item @@ -10,10 +9,10 @@ import core.game.system.task.Pulse import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.interaction.IntType +import core.game.interaction.IntType import org.rs09.consts.Scenery as Sceneries -import rs09.game.interaction.InteractionListener -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.world.GameWorld /** * This class covers some listeners for the Lost City quest @@ -25,8 +24,8 @@ class LostCityListeners : InteractionListener { override fun defineListeners() { // the shed teleport, to allow players to access zanaris if they enter the shed while wielding the dramen staff - on(Sceneries.DOOR_2406,IntType.SCENERY,"open"){ player, node -> - DoorActionHandler.handleAutowalkDoor(player,node as Scenery) + on(Sceneries.DOOR_2406, IntType.SCENERY,"open"){ player, node -> + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player,node as Scenery) val quest = "Lost City" val isOutsideShed = player.location.x < node.location.x val canDramenTeleport = inEquipment(player,Items.DRAMEN_STAFF_772) && ( questStage(player,quest) > 20 ) && isOutsideShed diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusDialogue.kt new file mode 100644 index 000000000..c6726cffb --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusDialogue.kt @@ -0,0 +1,70 @@ +package content.region.misthalin.lumbridge.quest.lostcity + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.api.questStage +import core.api.setQuestStage + +/** + * ShamusDialogue, to handle the dialogue of Shamus the Leprechaun from the Lost City quest + * @author lila + * @author Vexia + */ +@Initializable +class ShamusDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + val quest = "Lost City" + + override fun open(vararg args: Any?): Boolean { + npcl(core.game.dialogue.FacialExpression.ANNOYED,"Ay yer big elephant! Yer've caught me, to be sure! What would an elephant like yer be wanting wid ol' Shamus then?") + stage = 0 + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(questStage(player,quest)) { + 0 -> when(stage++) { + 0 -> playerl(core.game.dialogue.FacialExpression.THINKING, "I'm not sure.") + 1 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"Well you'll have to be catchin' me again when yer are, elephant!") + 2 -> end().also { ShamusTreeListener.disappearShamus() } + } + 10 -> when(stage++) { + 0 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"I want to find Zanaris.") + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Zanaris is it now? Well well well... Yer'll be needing to be going to that funny little shed out there in the swamp, so you will.") + 2 -> playerl(core.game.dialogue.FacialExpression.THINKING,"...but... I thought... Zanaris was a city?") + 3 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Aye that it is!") + 4 -> playerl(core.game.dialogue.FacialExpression.THINKING,"...How does it fit in a shed then?") + 5 -> npcl(core.game.dialogue.FacialExpression.LAUGH,"Ah yer stupid elephant! The city isn't IN the shed! The doorway to the shed is being a portal to Zanaris, so it is.") + 6 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING,"So I just walk into the shed and end up in Zanaris then?") + 7 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Oh, was I fergetting to say? Yer need to be carrying a Dramenwood staff to be getting there! Otherwise Yer'll just be ending up in the shed.") + 8 -> playerl(core.game.dialogue.FacialExpression.ASKING,"So where would I get a staff?") + 9 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Dramenwood staffs are crafted from branches of the Dramen tree, so they are. I hear there's a Dramen tree over on the island of Entrana in a cave.") + 10 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING,"or some such. There would be probably be a good place for an elephant like yer to be starting looking I reckon.") + 11 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"The monks are running a ship from Port Sarim to Entrana, I hear too. Now leave me alone yer elephant!") + 12 -> end().also { + ShamusTreeListener.disappearShamus() + sendDialogue("The leprechaun magically disappears.") + setQuestStage(player,quest,20) + } + } + else -> when(stage++) { + 0 -> playerl(core.game.dialogue.FacialExpression.THINKING, "I'm not sure.") + 1 -> { + val pronoun = if(player.isMale) "he" else "she" + npcl(core.game.dialogue.FacialExpression.ANNOYED,"HA! Look at yer! Look at the stupid elephant who tries to go catching a leprechaun when $pronoun don't even be knowing what $pronoun wants!") + } + 2 -> end().also { ShamusTreeListener.disappearShamus() } + } + + } + return true + } + + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return ShamusDialogue(player) + } + override fun getIds(): IntArray = intArrayOf(NPCs.SHAMUS_654) +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusTreeListener.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusTreeListener.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusTreeListener.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusTreeListener.kt index 498bc70de..a35fc5bcb 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusTreeListener.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/ShamusTreeListener.kt @@ -1,19 +1,18 @@ -package rs09.game.content.quest.members.lostcity +package content.region.misthalin.lumbridge.quest.lostcity -import api.sendMessage -import api.sendNPCDialogue -import core.game.content.dialogue.FacialExpression +import core.api.sendMessage +import core.api.sendNPCDialogue import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.gather.SkillingTool +import content.data.skill.SkillingTool import core.game.system.task.Pulse import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld /** @@ -52,7 +51,7 @@ class ShamusTreeListener : InteractionListener { SHAMUS.isInvisible = false SHAMUS.properties.teleportLocation = SHAMUS.properties.spawnLocation } - sendNPCDialogue(player,NPCs.SHAMUS_654,"Hey! Yer big elephant! Don't go choppin' down me house, now!",FacialExpression.FURIOUS) + sendNPCDialogue(player,NPCs.SHAMUS_654,"Hey! Yer big elephant! Don't go choppin' down me house, now!", core.game.dialogue.FacialExpression.FURIOUS) GameWorld.Pulser.submit(object : Pulse(100) { override fun pulse(): Boolean { if (SHAMUS.dialoguePlayer == null) { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/TreeSpiritNPC.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/TreeSpiritNPC.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/TreeSpiritNPC.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/TreeSpiritNPC.kt index 0703e883c..7bdba52c6 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/TreeSpiritNPC.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/TreeSpiritNPC.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.lostcity +package content.region.misthalin.lumbridge.quest.lostcity import core.game.node.entity.Entity import core.game.node.entity.combat.CombatStyle @@ -7,9 +7,9 @@ import core.game.node.entity.player.Player import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.NPCs -import api.questStage -import api.sendDialogue -import api.setQuestStage +import core.api.questStage +import core.api.sendDialogue +import core.api.setQuestStage /** * TreeSpiritNPC class to handle the tree spirit that spawns out of the dramen tree diff --git a/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/WarriorDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/WarriorDialogue.kt new file mode 100644 index 000000000..ce337ef88 --- /dev/null +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/lostcity/WarriorDialogue.kt @@ -0,0 +1,100 @@ +package content.region.misthalin.lumbridge.quest.lostcity + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.api.questStage +import core.api.startQuest + +/** + * WarriorDialogue, to handle the dialogue for the Warrior in the Lost City quest + * @author lila + * @author Vexia + */ +@Initializable +class WarriorDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + + override fun open(vararg args: Any?): Boolean { + when(questStage(player,"Lost City")) { + 10 -> playerl(core.game.dialogue.FacialExpression.THINKING,"So let me get this straight: I need to search the trees around here for a leprechaun; and then when I find him, he will tell me where this 'Zanaris' is?").also { stage = 1000 } + 20, 21 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Have you found anything yet?").also { stage = 2000 } + 100 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Hey, thanks for all the information. It REALLY helped me out in finding the lost city of Zanaris and all.").also { stage = 3000 } + else -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Hello there traveller.").also { stage = 1 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + 1 -> showTopics( + Topic(core.game.dialogue.FacialExpression.THINKING,"What are you camped out here for?",100), + Topic(core.game.dialogue.FacialExpression.HALF_THINKING,"Do you know any good adventures I can go on?",101) + ) + 2 -> showTopics( + Topic(core.game.dialogue.FacialExpression.ASKING,"Please tell me.",200), + Topic(core.game.dialogue.FacialExpression.ANGRY,"I don't think you've found a good adventure at all!",250) + ) + 3 -> showTopics( + Topic(core.game.dialogue.FacialExpression.ASKING,"Who's Zanaris?",301), + Topic(core.game.dialogue.FacialExpression.ASKING,"What's Zanaris?",302), + Topic(core.game.dialogue.FacialExpression.ASKING,"What makes you think it's out here?",300) + ) + 4 -> showTopics( + Topic(core.game.dialogue.FacialExpression.ASKING,"If it's hidden how are you planning to find it?",400), + Topic(core.game.dialogue.FacialExpression.LAUGH,"There's no such thing!",450) + ) + 5 -> options("Please tell me.", "Looks like you don't know either.").also { stage = 500 } + 6 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"So a leprechaun knows where Zanaris is eh?").also { stage = 600 } + 7 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"Thanks for the help!").also { stage = 700 } + 8 -> end().also { + startQuest(player,"Lost City") + } + 100 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"We're looking for Zanaris...GAH! I mean we're not here for any particular reason at all.").also { stage = 3 } + 101 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Well we're on an adventure right now. Mind you, this is OUR adventure and we don't want to share it - find your own!").also { stage = 2 } + 200 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"No.").also { stage++ } + 201 -> playerl(core.game.dialogue.FacialExpression.SAD,"Please?").also { stage++ } + 202 -> npcl(core.game.dialogue.FacialExpression.ANNOYED,"No!").also { stage++ } + 203 -> playerl(core.game.dialogue.FacialExpression.SAD,"PLEEEEEEEEEEEEEEEEEEEEEEEEASE???").also { stage++ } + 204 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"NO!").also { stage = END_DIALOGUE } + 250 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Hah! Adventurers of our calibre don't just hang around in forests for fun, whelp!").also { stage++ } + 251 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Oh Really?").also { stage++ } + 252 -> playerl(core.game.dialogue.FacialExpression.THINKING,"What are you camped out here for?").also{ stage = 100 } + 300 -> npcl(core.game.dialogue.FacialExpression.HAPPY,"Don't you know of the legends that tell of the magical city, hidden in the swamp... Uh, no, you're right, we're wasting our time here.").also { stage = 4 } + 301 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Ahahahaha! Zanaris isn't a person! It's a magical hidden city filled with treasure and rich... uh, nothing. It's nothing.").also { stage = 4 } + 302 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING,"I don't think we want other people competing with us to find it. Forget I said anything.").also { stage = 5 } + 400 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Well, we don't want to tell anyone else about that, because we don't want anyone else sharing in all that glory and treasure.").also { stage = 5 } + 450 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"When we've found Zanaris you'll... GAH! I mean, we're not here for any particular reason at all.").also { stage = 3 } + 500 -> when(buttonId) { + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING,"Please tell me.").also{ stage = 200 } + 2 -> playerl(core.game.dialogue.FacialExpression.THINKING,"Well, it looks to ME like YOU don't know EITHER, seeing as you're all just sat around here.").also { stage++ } + } + 501 -> npcl(core.game.dialogue.FacialExpression.ANGRY,"Of course we know! We just haven't found which tree the stupid leprechaun's hiding in yet!").also { stage++ } + 502 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"GAH! I didn't mean to tell you that! Look, just forget I said anything okay?").also { stage = 6 } + 600 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Ye.. uh, no. No, not at all. And even if he did - which he doesn't - he DEFINITELY ISN'T hiding in some tree around here. Nope, definitely not. Honestly.").also { stage = 7 } + 700 -> npcl(core.game.dialogue.FacialExpression.WORRIED,"Help? What help? I didn't help! Please don't say I did, I'll get in trouble!").also { stage = 8 } + 1000 -> npcl(core.game.dialogue.FacialExpression.WORRIED,"What? How did you know that? Uh... I mean, no, no you're very wrong. Very wrong, and not right at all, and I definitely didn't tell you about that at all.").also { stage = END_DIALOGUE } + 2000 -> npcl(core.game.dialogue.FacialExpression.SAD,"We're still searching for Zanaris...GAH! I mean we're not doing anything here at all.").also { stage++ } + 2001 -> playerl(core.game.dialogue.FacialExpression.SAD,"I haven't found it yet either.").also { stage = END_DIALOGUE } + 3000 -> npcl(core.game.dialogue.FacialExpression.SAD,"Oh please don't say that anymore! If the rest of my party knew I'd helped you they'd probably throw me out and make me walk home by myself!").also { stage++ } + 3001 -> npcl(core.game.dialogue.FacialExpression.ASKING,"So anyway, what have you found out? Where is the fabled Zanaris? Is it all the legends say it is?").also { stage++ } + 3002 -> playerl(core.game.dialogue.FacialExpression.HAPPY,"You know.... I think I'll keep that to myself.").also { stage = END_DIALOGUE } + } + return true + } + + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { + return WarriorDialogue(player) + } + override fun getIds(): IntArray = intArrayOf(NPCs.WARRIOR_650) +} + +/* +Some evidence from early/mid 2009 to help determine facial expressions, and contains some lines not previously included in this warrior's dialogue +this also functions as evidence for most of the warrior's dialogue +https://www.youtube.com/watch?v=nFDifUB8dxQ +https://www.youtube.com/watch?v=4BKRG4yw16o + */ diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/runemysteries/DukeHoracioRMDialogue.kt b/Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/DukeHoracioRMDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/free/runemysteries/DukeHoracioRMDialogue.kt rename to Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/DukeHoracioRMDialogue.kt index 7d6fdd976..7eb8b9547 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/runemysteries/DukeHoracioRMDialogue.kt +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/DukeHoracioRMDialogue.kt @@ -1,11 +1,11 @@ -package rs09.game.content.quest.free.runemysteries +package content.region.misthalin.lumbridge.quest.runemysteries import core.game.node.entity.player.link.quest.Quest import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class DukeHoracioRMDialogue(val questStage: Int) : DialogueFile() { diff --git a/Server/src/main/java/core/game/content/quest/free/runemysteries/RuneMysteries.java b/Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/RuneMysteries.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/runemysteries/RuneMysteries.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/RuneMysteries.java index 1e994fa22..ebe46af39 100644 --- a/Server/src/main/java/core/game/content/quest/free/runemysteries/RuneMysteries.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/runemysteries/RuneMysteries.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.runemysteries; +package content.region.misthalin.lumbridge.quest.runemysteries; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/SheepShearPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/SheepShearPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearPlugin.java index 11e698970..88d12db04 100644 --- a/Server/src/main/java/core/game/interaction/npc/SheepShearPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.lumbridge.quest.sheepshearer; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -7,7 +7,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/free/SheepShearer.java b/Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearer.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/SheepShearer.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearer.java index f028b19ba..793a6f623 100644 --- a/Server/src/main/java/core/game/content/quest/free/SheepShearer.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/sheepshearer/SheepShearer.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.misthalin.lumbridge.quest.sheepshearer; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherAereckDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherAereckDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherAereckDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherAereckDialogue.java index bcfb2ff38..c301fc637 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherAereckDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherAereckDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.game.component.Component; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherUhrneyDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherUhrneyDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherUhrneyDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherUhrneyDialogue.java index a4c47507b..abedfb9a0 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/FatherUhrneyDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/FatherUhrneyDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.plugin.Initializable; import core.game.node.item.Item; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; /** * Represents the father urgney dialogue plugin. diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhost.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhost.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java index d83b79879..2ddb8d964 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhost.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhost.java @@ -1,12 +1,12 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; -import core.game.content.quest.members.animalmagnetism.OldCronDialogue; +import content.region.misthalin.draynor.quest.anma.OldCronDialogue; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the restless ghost quest. diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostDialogue.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostDialogue.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostDialogue.java index 1e30d2b14..b282450cd 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostDialogue.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostDialogue.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; /** * Handles the RestlessGhostDialogue dialogue. diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java index a85cd7d46..feebbda88 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -13,7 +13,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostSkull.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostSkull.java index 00e5c31fb..0ddb1a9fc 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/RestlessGhostSkull.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/SkullDropPlugin.java b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/SkullDropPlugin.java similarity index 91% rename from Server/src/main/java/core/game/content/quest/free/therestlessghost/SkullDropPlugin.java rename to Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/SkullDropPlugin.java index cb782206c..0fdaf0b68 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/SkullDropPlugin.java +++ b/Server/src/main/content/region/misthalin/lumbridge/quest/therestlessghost/SkullDropPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.therestlessghost; +package content.region.misthalin.lumbridge.quest.therestlessghost; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/AbbotLangleyDialogue.java b/Server/src/main/content/region/misthalin/monastery/dialogue/AbbotLangleyDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/AbbotLangleyDialogue.java rename to Server/src/main/content/region/misthalin/monastery/dialogue/AbbotLangleyDialogue.java index 31004b87e..5c80acfce 100644 --- a/Server/src/main/java/core/game/content/dialogue/AbbotLangleyDialogue.java +++ b/Server/src/main/content/region/misthalin/monastery/dialogue/AbbotLangleyDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.monastery.dialogue; +import core.game.dialogue.DialoguePlugin; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/BrotherJeredDialogue.java b/Server/src/main/content/region/misthalin/monastery/dialogue/BrotherJeredDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/BrotherJeredDialogue.java rename to Server/src/main/content/region/misthalin/monastery/dialogue/BrotherJeredDialogue.java index fe2f91298..e6103d2f7 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrotherJeredDialogue.java +++ b/Server/src/main/content/region/misthalin/monastery/dialogue/BrotherJeredDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.monastery.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; import core.game.node.item.Item; import org.rs09.consts.Items; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java b/Server/src/main/content/region/misthalin/monastery/handlers/MonasteryPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java rename to Server/src/main/content/region/misthalin/monastery/handlers/MonasteryPlugin.java index 299dcb2a7..f430630cc 100644 --- a/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java +++ b/Server/src/main/content/region/misthalin/monastery/handlers/MonasteryPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.city; +package content.region.misthalin.monastery.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBane.java b/Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBane.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBane.java rename to Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBane.java index 0d729ec88..3cc8a184c 100644 --- a/Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBane.java +++ b/Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBane.java @@ -4,8 +4,8 @@ package core.game.content.quest.members.asoulsbane; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; -import rs09.game.content.quest.members.asoulsbane.SoulsBaneLaunaDialogue; -import rs09.plugin.PluginManager; +import core.game.content.quest.members.asoulsbane.SoulsBaneLaunaDialogue; +import core.plugin.PluginManager; */ /** diff --git a/Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBanePlugin.java b/Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBanePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBanePlugin.java rename to Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBanePlugin.java index 51e230d6b..98391ae92 100644 --- a/Server/src/main/java/core/game/content/quest/members/asoulsbane/ASoulsBanePlugin.java +++ b/Server/src/main/content/region/misthalin/quest/asoulsbane/ASoulsBanePlugin.java @@ -14,11 +14,11 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.node.object.GameObject; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.PluginManager; +import core.plugin.PluginManager; */ /** diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/asoulsbane/SoulsBaneLaunaDialogue.kt b/Server/src/main/content/region/misthalin/quest/asoulsbane/SoulsBaneLaunaDialogue.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/asoulsbane/SoulsBaneLaunaDialogue.kt rename to Server/src/main/content/region/misthalin/quest/asoulsbane/SoulsBaneLaunaDialogue.kt index d63935faa..94525db9f 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/asoulsbane/SoulsBaneLaunaDialogue.kt +++ b/Server/src/main/content/region/misthalin/quest/asoulsbane/SoulsBaneLaunaDialogue.kt @@ -1,8 +1,8 @@ /* package rs09.game.content.quest.members.asoulsbane -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.content.quest.members.asoulsbane.ASoulsBane import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest diff --git a/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java b/Server/src/main/content/region/misthalin/quest/priestinperil/DoorPerilDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/DoorPerilDialogue.java index bb18fd294..9731861ef 100644 --- a/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/DoorPerilDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.misthalin.quest.priestinperil; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java b/Server/src/main/content/region/misthalin/quest/priestinperil/DrezelDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/DrezelDialogue.java index 715e83e49..8c03560d7 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/DrezelDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.misthalin.quest.priestinperil; import core.cache.def.impl.NPCDefinition; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java b/Server/src/main/content/region/misthalin/quest/priestinperil/DrezelMonumentDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/DrezelMonumentDialogue.java index ac0f82ab7..5af575324 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/DrezelMonumentDialogue.java @@ -1,16 +1,18 @@ -package core.game.content.dialogue; +package content.region.misthalin.quest.priestinperil; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; + +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; import core.game.node.item.Item; import org.rs09.consts.NPCs; -import rs09.game.content.quest.members.naturespirit.NSDrezelDialogue; -import rs09.game.system.SystemLogger; +import content.region.morytania.quest.naturespirit.NSDrezelDialogue; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** * Represents the dialogue plugin used for the drezel monument. diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt b/Server/src/main/content/region/misthalin/quest/priestinperil/KingRoaldPIPDialogue.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt rename to Server/src/main/content/region/misthalin/quest/priestinperil/KingRoaldPIPDialogue.kt index e95c640c9..aba02ad76 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/KingRoaldPIPDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.priestinperil +package content.region.misthalin.quest.priestinperil -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class KingRoaldPIPDialogue(val questStage: Int) : DialogueFile() { diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/MonkOfZamorakNPC.java b/Server/src/main/content/region/misthalin/quest/priestinperil/MonkOfZamorakNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/MonkOfZamorakNPC.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/MonkOfZamorakNPC.java index 59faeea66..c7811d7cd 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/MonkOfZamorakNPC.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/MonkOfZamorakNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.quest.priest_in_peril; +package content.region.misthalin.quest.priestinperil; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/members/priestinperil/PriestInPeril.java b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPeril.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/priestinperil/PriestInPeril.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPeril.java index 36fcb0a30..b11abcc3e 100644 --- a/Server/src/main/java/core/game/content/quest/members/priestinperil/PriestInPeril.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPeril.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.priestinperil; +package content.region.misthalin.quest.priestinperil; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilOptionPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilOptionPlugin.java index 03e4f027d..a7ee74726 100644 --- a/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilOptionPlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.object; +package content.region.misthalin.quest.priestinperil; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.combat.CombatStyle; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/PriestInPerilUseListener.kt b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilUseListener.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/PriestInPerilUseListener.kt rename to Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilUseListener.kt index 035322d7a..dfc4e05fc 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/PriestInPerilUseListener.kt +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/PriestInPerilUseListener.kt @@ -1,13 +1,12 @@ -package rs09.game.content.quest.members.priestinperil +package content.region.misthalin.quest.priestinperil -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* import core.game.node.item.Item import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Listener for Priest in Peril usage interactions @@ -107,7 +106,7 @@ class PriestInPerilUseListener : InteractionListener { val npc = core.game.node.entity.npc.NPC.create(NPCs.DREZEL_7690, player.location) npc.name = "Drezel" - sendNPCDialogue(player, npc.id, "Oh! Thank you! You have found the key!", FacialExpression.HALF_GUILTY) + sendNPCDialogue(player, npc.id, "Oh! Thank you! You have found the key!", core.game.dialogue.FacialExpression.HALF_GUILTY) return@onUseWith true } diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/TempleGuardianNPC.java b/Server/src/main/content/region/misthalin/quest/priestinperil/TempleGuardianNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/TempleGuardianNPC.java rename to Server/src/main/content/region/misthalin/quest/priestinperil/TempleGuardianNPC.java index 2a05f58fd..c7bc48ebf 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/priest_in_peril/TempleGuardianNPC.java +++ b/Server/src/main/content/region/misthalin/quest/priestinperil/TempleGuardianNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.quest.priest_in_peril; +package content.region.misthalin.quest.priestinperil; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/dialogue/AeonisigRaispher.java b/Server/src/main/content/region/misthalin/varrock/dialogue/AeonisigRaispher.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/AeonisigRaispher.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/AeonisigRaispher.java index 6309ba4ab..b461bbbb8 100644 --- a/Server/src/main/java/core/game/content/dialogue/AeonisigRaispher.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/AeonisigRaispher.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/AmbassadorFernook.java b/Server/src/main/content/region/misthalin/varrock/dialogue/AmbassadorFernook.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/AmbassadorFernook.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/AmbassadorFernook.java index 4cef10e39..4748e933b 100644 --- a/Server/src/main/java/core/game/content/dialogue/AmbassadorFernook.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/AmbassadorFernook.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ApothecaryDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/ApothecaryDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/ApothecaryDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/ApothecaryDialogue.java index 9277c8322..73f8b00bc 100644 --- a/Server/src/main/java/core/game/content/dialogue/ApothecaryDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ApothecaryDialogue.java @@ -1,276 +1,277 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.item.GroundItem; -import core.game.node.item.GroundItemManager; -import core.plugin.Initializable; -import core.game.node.item.Item; - -/** - * Represents the dialogue plugin used for the apothecary npc. - * @author 'Vexia - * @version 1.0 - */ -@Initializable -public final class ApothecaryDialogue extends DialoguePlugin { - - /** - * Represents the potion requirements. - */ - private static final Item[] POTION_ITEMS = new Item[] { new Item(223), new Item(225), new Item(995, 5) }; - - /** - * Represents the potion item. - */ - private static final Item POTION = new Item(115); - - /** - * Represents the unkown potion. - */ - private static final Item UNKNOWN_POTION = new Item(195, 1); - - /** - * Represents the cadava berries item. - */ - private static final Item CADAVA_BERRIES = new Item(753); - - /** - * Represents the cadava potion item. - */ - private static final Item CADAVA_POTION = new Item(756); - - /** - * Constructs a new {@code ApothecaryDialogue} {@code Object}. - */ - public ApothecaryDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ApothecaryDialogue} {@code Object}. - * @param player the player. - */ - public ApothecaryDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new ApothecaryDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 40) { - interpreter.sendDialogues(player, null, "Apothecary. Father Lawrence sent me."); - stage = 500; - return true; - } - if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 50) { - if (!player.getInventory().contains(753, 1)) { - npc("Keep searching for those Cadava berries. They're needed", "for the potion."); - stage = 507; - return true; - } else { - npc("Well done. You have the berries."); - stage = 637; - return true; - } - } - if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 60) { - if (!player.getInventory().contains(756, 1) && !player.getBank().contains(756, 1)) { - if (player.getInventory().contains(753, 1)) { - npc("Well done. You have the berries."); - stage = 637; - return true; - } else { - npc("Keep searching for those Cadava berries. They're needed", "for the potion."); - stage = 507; - return true; - } - } else { - npc("I am the Apothecary. I brew potions.", "Do you need anything specific?"); - } - } - npc("I am the Apothecary. I brew potions.", "Do you need anything specific?"); - stage = 1; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 1: - options("Can you make a strength potion?", "Do you know a potion to make hair fall out?", "Have you got any good potions to give away?", "Can you make a potion that makes it seem like I'm dead?"); - stage = 2; - break; - case 2: - switch (buttonId) { - case 1: - player("Can you make a strength potion?"); - stage = 10; - break; - case 2: - player("Do you know a potion to make hair fall out?"); - stage = 20; - break; - case 3: - player("Have you got any good potions to give away?"); - stage = 140; - break; - case 4: - player("Can you make a potion that makes it seems like I'm dead?"); - stage = 40; - break; - } - - break; - case 10: - if (player.getInventory().containItems(223, 225)) { - npc("Certainly, just hand over the ingredients and 5 coins."); - stage = 50; - return true; - } - npc("Yes, but the ingredients are a little hard to find. If you", "ever get them I will make it for you, for a fee."); - stage = 11; - break; - case 50: - if (!player.getInventory().contains(995, 5)) { - end(); - player.getPacketDispatch().sendMessage("You need 5 gold coins to do that."); - return true; - } - interpreter.sendDialogue("You hand over the ingredients and money."); - stage = 51; - break; - case 51: - if (player.getInventory().remove(POTION_ITEMS)) { - player.getInventory().add(POTION); - end(); - player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 1, 0); - } - break; - case 11: - player("So what are the ingredients?"); - stage = 12; - break; - case 12: - npc("You'll need to find the eggs of the deadly red spider and a", "limpwurt root."); - stage = 13; - break; - case 13: - npc("Oh and you'll have to pay me 5 coins."); - stage = 14; - break; - case 14: - player("Ok, I'll look out for them."); - stage = 15; - break; - case 15: - end(); - break; - case 20: - npc("I do indeed. I gave it to my mother. That's why I now live", "alone."); - stage = 21; - break; - case 21: - end(); - break; - case 30: - npc("Ok then. Try this potion."); - player.getInventory().add(UNKNOWN_POTION); - stage = 31; - break; - case 31: - end(); - break; - case 40: - npc("What a strange and morbid request! I can as it happens.", "The berry of the cadava bush, prepared properly, will", "induce a coma so deep that you will seem to be dead. It's", "very dangerous."); - stage = 41; - break; - case 41: - npc("I have the other ingredients, but I'll need you to bring me", "one bunch of cadava berries."); - stage = 42; - break; - case 42: - player("I'll bear that in mind."); - stage = 43; - break; - case 43: - end(); - break; - case 140: - npc("Sorry, charity is not my strong point."); - stage = 141; - break; - case 141: - end(); - break; - case 500: - interpreter.sendDialogues(player, null, "I need a Cadava potion to help Romeo and Juliet."); - stage = 501; - break; - case 501: - interpreter.sendDialogues(npc, null, "Cadava potion. It's pretty nasty. And hard to make."); - stage = 502; - break; - case 502: - interpreter.sendDialogues(npc, null, "Wing of rat, tail of frog.", "Ear of snake and horn of dog."); - stage = 503; - break; - case 503: - interpreter.sendDialogues(npc, null, "I have all that, but I need some Cadava berries."); - stage = 504; - break; - case 504: - interpreter.sendDialogues(npc, null, "You will have to find them while I get the rest ready."); - stage = 505; - break; - case 505: - interpreter.sendDialogues(npc, null, "Bring them here when you have them. But be careful.", "They are nasty."); - stage = 506; - break; - case 506: - player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 50); - interpreter.sendDialogues(player, null, "Ok, thanks."); - stage = 507; - break; - case 507: - end(); - break; - case 637: - interpreter.sendItemMessage(753, "You hand over the berries."); - stage = 638; - break; - case 638: - if (player.getInventory().remove(CADAVA_BERRIES)) { - npc("Phew! Here is what you need."); - } - stage = 639; - break; - case 639: - if (!player.getInventory().add(CADAVA_POTION)) { - GroundItemManager.create(new GroundItem(CADAVA_POTION, player.getLocation(), player)); - } - interpreter.sendItemMessage(756, "The Apothecary gives you a Cadava potion."); - stage = 640; - break; - case 640: - player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 60); - end(); - break; - } - - return true; - } - - @Override - public int[] getIds() { - return new int[] { 638 }; - } -} +package content.region.misthalin.varrock.dialogue; + +import core.game.dialogue.DialoguePlugin; +import core.game.node.entity.npc.NPC; +import core.game.node.entity.player.Player; +import core.game.node.entity.player.link.diary.DiaryType; +import core.game.node.item.GroundItem; +import core.game.node.item.GroundItemManager; +import core.plugin.Initializable; +import core.game.node.item.Item; + +/** + * Represents the dialogue plugin used for the apothecary npc. + * @author 'Vexia + * @version 1.0 + */ +@Initializable +public final class ApothecaryDialogue extends DialoguePlugin { + + /** + * Represents the potion requirements. + */ + private static final Item[] POTION_ITEMS = new Item[] { new Item(223), new Item(225), new Item(995, 5) }; + + /** + * Represents the potion item. + */ + private static final Item POTION = new Item(115); + + /** + * Represents the unkown potion. + */ + private static final Item UNKNOWN_POTION = new Item(195, 1); + + /** + * Represents the cadava berries item. + */ + private static final Item CADAVA_BERRIES = new Item(753); + + /** + * Represents the cadava potion item. + */ + private static final Item CADAVA_POTION = new Item(756); + + /** + * Constructs a new {@code ApothecaryDialogue} {@code Object}. + */ + public ApothecaryDialogue() { + /** + * empty. + */ + } + + /** + * Constructs a new {@code ApothecaryDialogue} {@code Object}. + * @param player the player. + */ + public ApothecaryDialogue(Player player) { + super(player); + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new ApothecaryDialogue(player); + } + + @Override + public boolean open(Object... args) { + npc = (NPC) args[0]; + if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 40) { + interpreter.sendDialogues(player, null, "Apothecary. Father Lawrence sent me."); + stage = 500; + return true; + } + if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 50) { + if (!player.getInventory().contains(753, 1)) { + npc("Keep searching for those Cadava berries. They're needed", "for the potion."); + stage = 507; + return true; + } else { + npc("Well done. You have the berries."); + stage = 637; + return true; + } + } + if (player.getQuestRepository().getQuest("Romeo & Juliet").getStage(player) == 60) { + if (!player.getInventory().contains(756, 1) && !player.getBank().contains(756, 1)) { + if (player.getInventory().contains(753, 1)) { + npc("Well done. You have the berries."); + stage = 637; + return true; + } else { + npc("Keep searching for those Cadava berries. They're needed", "for the potion."); + stage = 507; + return true; + } + } else { + npc("I am the Apothecary. I brew potions.", "Do you need anything specific?"); + } + } + npc("I am the Apothecary. I brew potions.", "Do you need anything specific?"); + stage = 1; + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + switch (stage) { + case 1: + options("Can you make a strength potion?", "Do you know a potion to make hair fall out?", "Have you got any good potions to give away?", "Can you make a potion that makes it seem like I'm dead?"); + stage = 2; + break; + case 2: + switch (buttonId) { + case 1: + player("Can you make a strength potion?"); + stage = 10; + break; + case 2: + player("Do you know a potion to make hair fall out?"); + stage = 20; + break; + case 3: + player("Have you got any good potions to give away?"); + stage = 140; + break; + case 4: + player("Can you make a potion that makes it seems like I'm dead?"); + stage = 40; + break; + } + + break; + case 10: + if (player.getInventory().containItems(223, 225)) { + npc("Certainly, just hand over the ingredients and 5 coins."); + stage = 50; + return true; + } + npc("Yes, but the ingredients are a little hard to find. If you", "ever get them I will make it for you, for a fee."); + stage = 11; + break; + case 50: + if (!player.getInventory().contains(995, 5)) { + end(); + player.getPacketDispatch().sendMessage("You need 5 gold coins to do that."); + return true; + } + interpreter.sendDialogue("You hand over the ingredients and money."); + stage = 51; + break; + case 51: + if (player.getInventory().remove(POTION_ITEMS)) { + player.getInventory().add(POTION); + end(); + player.getAchievementDiaryManager().finishTask(player, DiaryType.VARROCK, 1, 0); + } + break; + case 11: + player("So what are the ingredients?"); + stage = 12; + break; + case 12: + npc("You'll need to find the eggs of the deadly red spider and a", "limpwurt root."); + stage = 13; + break; + case 13: + npc("Oh and you'll have to pay me 5 coins."); + stage = 14; + break; + case 14: + player("Ok, I'll look out for them."); + stage = 15; + break; + case 15: + end(); + break; + case 20: + npc("I do indeed. I gave it to my mother. That's why I now live", "alone."); + stage = 21; + break; + case 21: + end(); + break; + case 30: + npc("Ok then. Try this potion."); + player.getInventory().add(UNKNOWN_POTION); + stage = 31; + break; + case 31: + end(); + break; + case 40: + npc("What a strange and morbid request! I can as it happens.", "The berry of the cadava bush, prepared properly, will", "induce a coma so deep that you will seem to be dead. It's", "very dangerous."); + stage = 41; + break; + case 41: + npc("I have the other ingredients, but I'll need you to bring me", "one bunch of cadava berries."); + stage = 42; + break; + case 42: + player("I'll bear that in mind."); + stage = 43; + break; + case 43: + end(); + break; + case 140: + npc("Sorry, charity is not my strong point."); + stage = 141; + break; + case 141: + end(); + break; + case 500: + interpreter.sendDialogues(player, null, "I need a Cadava potion to help Romeo and Juliet."); + stage = 501; + break; + case 501: + interpreter.sendDialogues(npc, null, "Cadava potion. It's pretty nasty. And hard to make."); + stage = 502; + break; + case 502: + interpreter.sendDialogues(npc, null, "Wing of rat, tail of frog.", "Ear of snake and horn of dog."); + stage = 503; + break; + case 503: + interpreter.sendDialogues(npc, null, "I have all that, but I need some Cadava berries."); + stage = 504; + break; + case 504: + interpreter.sendDialogues(npc, null, "You will have to find them while I get the rest ready."); + stage = 505; + break; + case 505: + interpreter.sendDialogues(npc, null, "Bring them here when you have them. But be careful.", "They are nasty."); + stage = 506; + break; + case 506: + player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 50); + interpreter.sendDialogues(player, null, "Ok, thanks."); + stage = 507; + break; + case 507: + end(); + break; + case 637: + interpreter.sendItemMessage(753, "You hand over the berries."); + stage = 638; + break; + case 638: + if (player.getInventory().remove(CADAVA_BERRIES)) { + npc("Phew! Here is what you need."); + } + stage = 639; + break; + case 639: + if (!player.getInventory().add(CADAVA_POTION)) { + GroundItemManager.create(new GroundItem(CADAVA_POTION, player.getLocation(), player)); + } + interpreter.sendItemMessage(756, "The Apothecary gives you a Cadava potion."); + stage = 640; + break; + case 640: + player.getQuestRepository().getQuest("Romeo & Juliet").setStage(player, 60); + end(); + break; + } + + return true; + } + + @Override + public int[] getIds() { + return new int[] { 638 }; + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/AsyffDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/AsyffDialogue.kt similarity index 69% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/AsyffDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/dialogue/AsyffDialogue.kt index 1c5640149..d3e2d84be 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/AsyffDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/AsyffDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.dialogue.region.varrock +package content.region.misthalin.varrock.dialogue import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,12 +12,12 @@ import core.plugin.Initializable * @author Ceikry */ @Initializable -class AsyffDialogue(player: Player? = null) : DialoguePlugin(player){ +class AsyffDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> player(FacialExpression.ASKING,"Err...what are you saying exactly?").also { stage++ } - 1 -> npc(FacialExpression.LAUGH,"I'm just saying that perhaps you would","like to peruse my selection of garments.").also { stage++ } - 2 -> npc(FacialExpression.LAUGH,"Or, if that doesn't interest you, then maybe you have","something else to offer? I'm always on the look out","for interesting or unusual new materials.").also { stage++ } + 0 -> player(core.game.dialogue.FacialExpression.ASKING,"Err...what are you saying exactly?").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.LAUGH,"I'm just saying that perhaps you would","like to peruse my selection of garments.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.LAUGH,"Or, if that doesn't interest you, then maybe you have","something else to offer? I'm always on the look out","for interesting or unusual new materials.").also { stage++ } 3 -> options("Okay, let's see what you've got then.","Can you make clothing suitable for hunting in?","I think I might just leave the perusing for now thanks.","What sort of unusual materials did you have in mind?").also { stage++ } 4 -> when(buttonId){ 1 -> player("Okay, let's see what you've got then.").also { stage = 10 } @@ -45,12 +45,12 @@ class AsyffDialogue(player: Player? = null) : DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.HAPPY,"Now you look like someone who goes to","a lot of fancy dress parties.") + npc(core.game.dialogue.FacialExpression.HAPPY,"Now you look like someone who goes to","a lot of fancy dress parties.") stage = 0 return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AsyffDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/BaraekDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/BaraekDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/BaraekDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/BaraekDialogue.java index d1ce7f83c..953bd1b72 100644 --- a/Server/src/main/java/core/game/content/dialogue/BaraekDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/BaraekDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/BennyDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/BennyDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/BennyDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/BennyDialogue.java index a1852acf8..9b039425b 100644 --- a/Server/src/main/java/core/game/content/dialogue/BennyDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/BennyDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/content/dialogue/BobBarterDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/BobBarterDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/BobBarterDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/BobBarterDialogue.java index 1178c0166..140f4023d 100644 --- a/Server/src/main/java/core/game/content/dialogue/BobBarterDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/BobBarterDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/dialogue/DrHarlowDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/DrHarlowDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/DrHarlowDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/DrHarlowDialogue.java index 1ba632726..a906641b0 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrHarlowDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/DrHarlowDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; diff --git a/Server/src/main/java/core/game/content/dialogue/DraulLeptoc.java b/Server/src/main/content/region/misthalin/varrock/dialogue/DraulLeptoc.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/DraulLeptoc.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/DraulLeptoc.java index 9cb1c352f..2b9875c62 100644 --- a/Server/src/main/java/core/game/content/dialogue/DraulLeptoc.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/DraulLeptoc.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/EllamariaDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/EllamariaDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/EllamariaDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/EllamariaDialogue.java index d6a47fd94..eda264a1a 100644 --- a/Server/src/main/java/core/game/content/dialogue/EllamariaDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/EllamariaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ElsieDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/ElsieDialogue.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ElsieDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/dialogue/ElsieDialogue.kt index 6548b6a36..ab465f138 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ElsieDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ElsieDialogue.kt @@ -1,26 +1,23 @@ -package rs09.game.content.dialogue.region.varrock +package content.region.misthalin.varrock.dialogue -import api.inInventory -import api.removeItem -import api.sendInputDialogue -import api.sendItemDialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.api.inInventory +import core.api.removeItem +import core.api.sendItemDialogue +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType -import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.Topic +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE @Initializable -class ElsieDialogue(player: Player? = null) : DialoguePlugin(player) { +class ElsieDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ElsieDialogue(player) } @@ -29,12 +26,12 @@ class ElsieDialogue(player: Player? = null) : DialoguePlugin(player) { if (hasTea()) { npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Ooh - that looks like a lovely cup of tea, dearie. Is it for me?" ).also { stage = 10 } } else { npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Hello dearie! What can old Elsie do for you?" ) } @@ -45,19 +42,19 @@ class ElsieDialogue(player: Player? = null) : DialoguePlugin(player) { override fun handle(interfaceId: Int, buttonId: Int): Boolean { when (stage) { START_DIALOGUE -> showTopics( - Topic(FacialExpression.ASKING, "What are you making?", 1), - Topic(FacialExpression.ASKING, "Can you tell me a story?", 3), - Topic(FacialExpression.ASKING, "Can you tell me how to get rich?", 5), - Topic(FacialExpression.NEUTRAL, "I've got to go.", END_DIALOGUE) + Topic(core.game.dialogue.FacialExpression.ASKING, "What are you making?", 1), + Topic(core.game.dialogue.FacialExpression.ASKING, "Can you tell me a story?", 3), + Topic(core.game.dialogue.FacialExpression.ASKING, "Can you tell me how to get rich?", 5), + Topic(core.game.dialogue.FacialExpression.NEUTRAL, "I've got to go.", END_DIALOGUE) ) 1 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "I'm knitting a new stole for Father Lawrence downstairs." ).also { stage++ } 2 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "He could do with something to keep his neck warm, standing in " + "that draughty old church all day." ).also { stage = START_DIALOGUE } @@ -65,56 +62,56 @@ class ElsieDialogue(player: Player? = null) : DialoguePlugin(player) { 3 -> { if (hasTea()) { npcl( - FacialExpression.HALF_THINKING, + core.game.dialogue.FacialExpression.HALF_THINKING, "Perhaps... Can I have that lovely cup of tea you have over there?" ).also { stage = 10 } } else { npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Maybe I could tell you a story if you'd fetch me a nice cup of tea." ).also { stage++ } } } 4 -> playerl( - FacialExpression.ROLLING_EYES, + core.game.dialogue.FacialExpression.ROLLING_EYES, "I'll think about it." ).also { stage = START_DIALOGUE } 5 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Well, dearie, I am probably not the best person to ask about money, but I think the best thing " + "would be for you to get a good trade." ).also { stage++ } 6 -> npcl( - FacialExpression.HALF_WORRIED, + core.game.dialogue.FacialExpression.HALF_WORRIED, "If you've got a good trade you can earn your way. That's what my old father would tell me." ).also { stage++ } 7 -> npcl( - FacialExpression.HALF_WORRIED, + core.game.dialogue.FacialExpression.HALF_WORRIED, "Saradomin rest his soul. I hear people try to get rich by fighting in the Wilderness north of here " + "or the Duel Arena in the south... But that's no way for honest folk to earn a living!" ).also { stage++ } 8 -> npcl( - FacialExpression.HALF_WORRIED, + core.game.dialogue.FacialExpression.HALF_WORRIED, "So get yourself a good trade, and keep working at it. There's always folks wanting to buy ore and food around here." ).also { stage++ } 9 -> playerl( - FacialExpression.ROLLING_EYES, + core.game.dialogue.FacialExpression.ROLLING_EYES, "Thanks, old woman." ).also { stage = START_DIALOGUE } 10 -> showTopics( - Topic(FacialExpression.HAPPY, "Yes, you can have it.", 12), - Topic(FacialExpression.ANNOYED, "No, keep your hands off my tea.", 11) + Topic(core.game.dialogue.FacialExpression.HAPPY, "Yes, you can have it.", 12), + Topic(core.game.dialogue.FacialExpression.ANNOYED, "No, keep your hands off my tea.", 11) ) 11 -> npcl( - FacialExpression.SAD, + core.game.dialogue.FacialExpression.SAD, "Aww. Maybe another time, then... Anyway, what can old Elsie do for you?" ).also { stage = START_DIALOGUE } @@ -122,84 +119,84 @@ class ElsieDialogue(player: Player? = null) : DialoguePlugin(player) { .also { stage++; removeItem(player, Items.CUP_OF_TEA_712) } 13 -> npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Ahh, there's nothing like a nice cuppa tea. You know what, I'll tell you a story as a thank-you for that lovely tea..." ).also { stage++ } 14 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "A long time ago, when I was a little girl, there was a handsome young man living in Varrock..." ).also { stage++ } 15 -> npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "I saw him here in the church quite often. Everyone said he was going to become a priest and " + "we girls were so sad about that..." ).also { stage++ } 16 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "But young Dissy - that was the young man's nickname - he was a wild young thing." ).also { stage++ } 17 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "One night he gathered some lads together, and after the evening prayer-meeting " + "they all put their masks on..." ).also { stage++ } 18 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Then, they snuck down to the temple in the south of the city - the evil one. " + "The next day, there was quite a hubbub..." ).also { stage++ } 19 -> npcl( - FacialExpression.LAUGH, + core.game.dialogue.FacialExpression.LAUGH, "The guards told us that someone had painted 'Saradomin pwns' on the wall of Zamorakian temple!" ).also { stage++ } 20 -> npcl( - FacialExpression.HALF_THINKING, + core.game.dialogue.FacialExpression.HALF_THINKING, "Now, we'd always been taught to keep well away from that dreadful place..." ).also { stage++ } 21 -> npcl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "But it really did us all good to see someone wasn't afraid of the scum who live at that end of town." ).also { stage++ } 22 -> npcl( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "Old Father Packett was furious, but Dissy just laughed it off. " + "Dissy left town after that, saying he wanted to see the world." ).also { stage++ } 23 -> npcl( - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "It was such a shame, he had the most handsome... Shoulders..." ).also { stage++ } 24 -> npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "One day, a young man came here looking for stories about Dissy - of course, " + "that's not his proper name, but his friends called him Dissy - and I told " + "him that one. " ).also { stage++ } 25 -> npcl( - FacialExpression.HALF_WORRIED, + core.game.dialogue.FacialExpression.HALF_WORRIED, "He said Dissy had become a really famous man and there was going to be a book about him. " + "That's good and all, but I do wish Dissy had just come back to Varrock. I did miss him so much... " ).also { stage++ } 26 -> npcl( - FacialExpression.HAPPY, + core.game.dialogue.FacialExpression.HAPPY, "Well, until I met my Freddie and we got married. But that's another story." ).also { stage++ } 27 -> playerl( - FacialExpression.FRIENDLY, + core.game.dialogue.FacialExpression.FRIENDLY, "Thank you. I'll leave you to your knitting now." ).also { stage = END_DIALOGUE } } diff --git a/Server/src/main/java/core/game/content/dialogue/FaridMorrisaneDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/FaridMorrisaneDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/FaridMorrisaneDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/FaridMorrisaneDialogue.java index ce470c3e3..d7774b747 100644 --- a/Server/src/main/java/core/game/content/dialogue/FaridMorrisaneDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/FaridMorrisaneDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; diff --git a/Server/src/main/java/core/game/content/dialogue/FatherLawrenceDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/FatherLawrenceDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/FatherLawrenceDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/FatherLawrenceDialogue.java index 192b9f662..e54ca6ee5 100644 --- a/Server/src/main/java/core/game/content/dialogue/FatherLawrenceDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/FatherLawrenceDialogue.java @@ -1,181 +1,183 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.plugin.Initializable; -import core.game.node.entity.player.link.quest.Quest; - -/** - * Represents the father lawrence dialogue plugin. - * @author 'Vexia - * @version 1.0 - */ -@Initializable -public final class FatherLawrenceDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code FatherLawrenceDialogue} {@code Object}. - */ - public FatherLawrenceDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code FatherLawrenceDialogu} {@code Object}. - * @param player the player. - */ - public FatherLawrenceDialogue(Player player) { - super(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet"); - if (quest.getStage(player) < 30) { - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh to be a father in the times of whiskey."); - stage = 0; - } - switch (quest.getStage(player)) { - case 30: - interpreter.sendDialogues(npc, null, "\"...and let Saradomin light the way for you... \"", "Urgh!"); - stage = 41; - break; - case 40: - interpreter.sendDialogues(npc, null, "Ah, have you found the Apothecary yet? Remember,", "Cadava potion, for Juliet."); - stage = 30; - break; - case 50: - interpreter.sendDialogues(npc, null, "Did you find the Apothecary?"); - stage = 820; - break; - case 60: - case 70: - interpreter.sendDialogues(npc, null, "Did you find the Apothecary?"); - stage = 820; - break; - case 100: - player("Hi again!"); - stage = 0; - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet"); - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I sing and I drink and I wake up in gutters."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Top of the morning to you."); - stage = 2; - break; - case 2: - end(); - break; - case 41: - interpreter.sendDialogues(npc, null, "Can't you see that I'm in the middle of a sermon?!"); - stage = 42; - break; - case 42: - interpreter.sendDialogues(player, null, "But Romeo sent me!"); - stage = 43; - break; - case 43: - interpreter.sendDialogues(npc, null, "But I'm busy delivering a sermon to my congregation!"); - stage = 44; - break; - case 44: - interpreter.sendDialogues(player, null, "Yes well it certainly seems like you have a captive", "audience!"); - stage = 45; - break; - case 45: - interpreter.sendDialogues(npc, null, "Ok, ok...what do you want so I can get rid of you and", "continue with my sermon?"); - stage = 46; - break; - case 46: - interpreter.sendDialogues(player, null, "Romeo sent me. He says you may be able to help."); - stage = 47; - break; - case 47: - interpreter.sendDialogues(npc, null, "Ah Romeo, yes. A fine lad, but a little bit confused."); - stage = 48; - break; - case 48: - interpreter.sendDialogues(player, null, "Yes, very confused...Anyway, Romeo wishes to be", "married to Juliet! She must be rescued from her", "father's control!"); - stage = 49; - break; - case 49: - interpreter.sendDialogues(npc, null, "I agree, and I think I have an idea! A potion to make", "her appear dead..."); - stage = 50; - break; - case 50: - interpreter.sendDialogues(player, null, "Dead! Sounds a bit creepy to me...but please, continue."); - stage = 51; - break; - case 51: - interpreter.sendDialogues(npc, null, "The potion will only make Juliet 'appear' dead...then", "she'll be taken to the crypt..."); - stage = 52; - break; - case 52: - interpreter.sendDialogues(player, null, "Crypt! Again...very creepy! You must have some", "strange hobbies."); - stage = 53; - break; - case 53: - interpreter.sendDialogues(npc, null, "Then Romeo can collect her from the crypt! Go to the", "Apothercary, tell him I sent you and that you'll need a", "'Cadava' potion."); - stage = 54; - break; - case 54: - interpreter.sendDialogues(player, null, "Apart from the strong overtones of death, this is", "turning out to be a real love story."); - stage = 55; - break; - case 55: - quest.setStage(player, 40); - end(); - break; - case 30: - end(); - break; - case 820: - interpreter.sendDialogues(player, null, "Yes I did. He's told me I must find some Cadava", "berries."); - stage = 821; - break; - case 821: - interpreter.sendDialogues(npc, null, "Well, good luck with that...they're quite tricky to find."); - stage = 822; - break; - case 822: - interpreter.sendDialogues(player, null, "Any clues where I can start to look?"); - stage = 823; - break; - case 823: - interpreter.sendDialogues(npc, null, "I heard some kids saying they saw some the other day.", "They were visiting the mining place to the south east", "Varrock."); - stage = 824; - break; - case 824: - interpreter.sendDialogues(player, null, "Ok, that's as good a place to start looking as any."); - stage = 825; - break; - case 825: - end(); - break; - } - return true; - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new FatherLawrenceDialogue(player); - } - - @Override - public int[] getIds() { - return new int[] { 640 }; - } -} +package content.region.misthalin.varrock.dialogue; + +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.node.entity.npc.NPC; +import core.game.node.entity.player.Player; +import core.plugin.Initializable; +import core.game.node.entity.player.link.quest.Quest; + +/** + * Represents the father lawrence dialogue plugin. + * @author 'Vexia + * @version 1.0 + */ +@Initializable +public final class FatherLawrenceDialogue extends DialoguePlugin { + + /** + * Constructs a new {@code FatherLawrenceDialogue} {@code Object}. + */ + public FatherLawrenceDialogue() { + /** + * empty. + */ + } + + /** + * Constructs a new {@code FatherLawrenceDialogu} {@code Object}. + * @param player the player. + */ + public FatherLawrenceDialogue(Player player) { + super(player); + } + + @Override + public boolean open(Object... args) { + npc = (NPC) args[0]; + final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet"); + if (quest.getStage(player) < 30) { + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh to be a father in the times of whiskey."); + stage = 0; + } + switch (quest.getStage(player)) { + case 30: + interpreter.sendDialogues(npc, null, "\"...and let Saradomin light the way for you... \"", "Urgh!"); + stage = 41; + break; + case 40: + interpreter.sendDialogues(npc, null, "Ah, have you found the Apothecary yet? Remember,", "Cadava potion, for Juliet."); + stage = 30; + break; + case 50: + interpreter.sendDialogues(npc, null, "Did you find the Apothecary?"); + stage = 820; + break; + case 60: + case 70: + interpreter.sendDialogues(npc, null, "Did you find the Apothecary?"); + stage = 820; + break; + case 100: + player("Hi again!"); + stage = 0; + break; + } + return true; + } + + @Override + public boolean handle(int interfaceId, int buttonId) { + final Quest quest = player.getQuestRepository().getQuest("Romeo & Juliet"); + switch (stage) { + case 0: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I sing and I drink and I wake up in gutters."); + stage = 1; + break; + case 1: + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Top of the morning to you."); + stage = 2; + break; + case 2: + end(); + break; + case 41: + interpreter.sendDialogues(npc, null, "Can't you see that I'm in the middle of a sermon?!"); + stage = 42; + break; + case 42: + interpreter.sendDialogues(player, null, "But Romeo sent me!"); + stage = 43; + break; + case 43: + interpreter.sendDialogues(npc, null, "But I'm busy delivering a sermon to my congregation!"); + stage = 44; + break; + case 44: + interpreter.sendDialogues(player, null, "Yes well it certainly seems like you have a captive", "audience!"); + stage = 45; + break; + case 45: + interpreter.sendDialogues(npc, null, "Ok, ok...what do you want so I can get rid of you and", "continue with my sermon?"); + stage = 46; + break; + case 46: + interpreter.sendDialogues(player, null, "Romeo sent me. He says you may be able to help."); + stage = 47; + break; + case 47: + interpreter.sendDialogues(npc, null, "Ah Romeo, yes. A fine lad, but a little bit confused."); + stage = 48; + break; + case 48: + interpreter.sendDialogues(player, null, "Yes, very confused...Anyway, Romeo wishes to be", "married to Juliet! She must be rescued from her", "father's control!"); + stage = 49; + break; + case 49: + interpreter.sendDialogues(npc, null, "I agree, and I think I have an idea! A potion to make", "her appear dead..."); + stage = 50; + break; + case 50: + interpreter.sendDialogues(player, null, "Dead! Sounds a bit creepy to me...but please, continue."); + stage = 51; + break; + case 51: + interpreter.sendDialogues(npc, null, "The potion will only make Juliet 'appear' dead...then", "she'll be taken to the crypt..."); + stage = 52; + break; + case 52: + interpreter.sendDialogues(player, null, "Crypt! Again...very creepy! You must have some", "strange hobbies."); + stage = 53; + break; + case 53: + interpreter.sendDialogues(npc, null, "Then Romeo can collect her from the crypt! Go to the", "Apothercary, tell him I sent you and that you'll need a", "'Cadava' potion."); + stage = 54; + break; + case 54: + interpreter.sendDialogues(player, null, "Apart from the strong overtones of death, this is", "turning out to be a real love story."); + stage = 55; + break; + case 55: + quest.setStage(player, 40); + end(); + break; + case 30: + end(); + break; + case 820: + interpreter.sendDialogues(player, null, "Yes I did. He's told me I must find some Cadava", "berries."); + stage = 821; + break; + case 821: + interpreter.sendDialogues(npc, null, "Well, good luck with that...they're quite tricky to find."); + stage = 822; + break; + case 822: + interpreter.sendDialogues(player, null, "Any clues where I can start to look?"); + stage = 823; + break; + case 823: + interpreter.sendDialogues(npc, null, "I heard some kids saying they saw some the other day.", "They were visiting the mining place to the south east", "Varrock."); + stage = 824; + break; + case 824: + interpreter.sendDialogues(player, null, "Ok, that's as good a place to start looking as any."); + stage = 825; + break; + case 825: + end(); + break; + } + return true; + } + + @Override + public DialoguePlugin newInstance(Player player) { + return new FatherLawrenceDialogue(player); + } + + @Override + public int[] getIds() { + return new int[] { 640 }; + } +} diff --git a/Server/src/main/java/core/game/content/dialogue/GertrudeDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/GertrudeDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/GertrudeDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/GertrudeDialogue.java index f2cfb7038..fdf9a23ef 100644 --- a/Server/src/main/java/core/game/content/dialogue/GertrudeDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/GertrudeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/GertrudesCatDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/GertrudesCatDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/GertrudesCatDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/GertrudesCatDialogue.java index f9a8f35d0..edca24e12 100644 --- a/Server/src/main/java/core/game/content/dialogue/GertrudesCatDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/GertrudesCatDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.plugin.Initializable; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/dialogue/GrandExchangeClerk.java b/Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeClerk.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/GrandExchangeClerk.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeClerk.java index 63f88c7d0..b4e712799 100644 --- a/Server/src/main/java/core/game/content/dialogue/GrandExchangeClerk.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeClerk.java @@ -1,11 +1,13 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; -import rs09.game.ge.GrandExchangeRecords; -import rs09.game.interaction.inter.ge.ExchangeItemSets; -import rs09.game.interaction.inter.ge.StockMarket; +import core.game.ge.GrandExchangeRecords; +import content.global.handlers.iface.ge.ExchangeItemSets; +import content.global.handlers.iface.ge.StockMarket; /** * Handles the GrandExchangeClerk dialogue. diff --git a/Server/src/main/java/core/game/content/dialogue/GrandExchangeTutor.java b/Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeTutor.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/GrandExchangeTutor.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeTutor.java index 63ff47cf7..0c5369107 100644 --- a/Server/src/main/java/core/game/content/dialogue/GrandExchangeTutor.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/GrandExchangeTutor.java @@ -1,9 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents the dialogue plugin used for the grand exchange tutor. diff --git a/Server/src/main/java/core/game/content/dialogue/GuidorsWifeDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/GuidorsWifeDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/GuidorsWifeDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/GuidorsWifeDialogue.java index 0c3a8a0fb..5c6666631 100644 --- a/Server/src/main/java/core/game/content/dialogue/GuidorsWifeDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/GuidorsWifeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HeadChefDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/HeadChefDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/HeadChefDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/HeadChefDialogue.java index 7acd07817..6c0661e39 100644 --- a/Server/src/main/java/core/game/content/dialogue/HeadChefDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/HeadChefDialogue.java @@ -1,6 +1,8 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; -import core.game.content.global.Skillcape; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.Skillcape; import core.game.node.entity.skill.Skills; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/dialogue/HofutThandDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/HofutThandDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/HofutThandDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/HofutThandDialogue.java index e6379a4b2..2edc88ece 100644 --- a/Server/src/main/java/core/game/content/dialogue/HofutThandDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/HofutThandDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; diff --git a/Server/src/main/java/core/game/content/dialogue/HooknosedJackDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/HooknosedJackDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/HooknosedJackDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/HooknosedJackDialogue.java index e7839a768..48504a7c7 100644 --- a/Server/src/main/java/core/game/content/dialogue/HooknosedJackDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/HooknosedJackDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HorvikDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/HorvikDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/HorvikDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/HorvikDialogue.java index 902f33395..abd53fe4e 100644 --- a/Server/src/main/java/core/game/content/dialogue/HorvikDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/HorvikDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/IffieDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/IffieDialogue.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/IffieDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/dialogue/IffieDialogue.kt index 0064ea79e..876b66944 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/IffieDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/IffieDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.content.dialogue.region.varrock +package content.region.misthalin.varrock.dialogue -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.player.Player import core.plugin.Initializable @@ -9,7 +9,7 @@ import core.plugin.Initializable * @author afaroutdude */ @Initializable -class IffieDialogue(player: Player? = null) : DialoguePlugin(player) { +class IffieDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any?): Boolean { npc("Sorry, dearie, if I stop to chat I'll lose count.", "Talk to my sister instead; she likes to chat.", "You'll find her upstairs in the church.") stage = 999; @@ -23,7 +23,7 @@ class IffieDialogue(player: Player? = null) : DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return IffieDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/InformationclerkMuseumDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/InformationclerkMuseumDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/InformationclerkMuseumDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/InformationclerkMuseumDialogue.java index 8ec9f2258..9c7373319 100644 --- a/Server/src/main/java/core/game/content/dialogue/InformationclerkMuseumDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/InformationclerkMuseumDialogue.java @@ -1,10 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import org.rs09.consts.Items; /** diff --git a/Server/src/main/java/core/game/content/dialogue/KanelDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/KanelDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/KanelDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/KanelDialogue.java index 72d0dda2d..ce33e799b 100644 --- a/Server/src/main/java/core/game/content/dialogue/KanelDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/KanelDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/KingRoaldDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/KingRoaldDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt index 1a45c8018..b4e0f7ecf 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/KingRoaldDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/KingRoaldDialogue.kt @@ -1,16 +1,16 @@ -package rs09.game.content.dialogue.region.varrock +package content.region.misthalin.varrock.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import content.minigame.allfiredup.KingRoaldAFUMiniDialogue +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import rs09.game.content.activity.allfiredup.KingRoaldAFUMiniDialogue -import rs09.game.content.quest.free.shieldofarrav.KingRoaldArravDialogue -import rs09.game.content.quest.members.allfiredup.KingRoaldAFUDialogue -import rs09.game.content.quest.members.priestinperil.KingRoaldPIPDialogue -import rs09.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import content.region.misthalin.varrock.quest.shieldofarrav.KingRoaldArravDialogue +import content.region.misthalin.varrock.quest.allfiredup.KingRoaldAFUDialogue +import content.region.misthalin.quest.priestinperil.KingRoaldPIPDialogue +import core.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE /** * Central dialogue plugin for King Roald. Reroutes to the more specific DialogueFiles diff --git a/Server/src/main/java/core/game/content/dialogue/LarxusDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/LarxusDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/LarxusDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/LarxusDialogue.java index 541073dba..9040b8e34 100644 --- a/Server/src/main/java/core/game/content/dialogue/LarxusDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/LarxusDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/LoweDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/LoweDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/LoweDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/LoweDialogue.java index b113c9e8c..342dc5599 100644 --- a/Server/src/main/java/core/game/content/dialogue/LoweDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/LoweDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MurkyMattDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/MurkyMattDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/MurkyMattDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/MurkyMattDialogue.java index f036114e8..9354bb592 100644 --- a/Server/src/main/java/core/game/content/dialogue/MurkyMattDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/MurkyMattDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardDialogue.java similarity index 90% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardDialogue.java index e324272c2..b988a0eb7 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardDialogue.java @@ -1,8 +1,8 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardVarrockDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardVarrockDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardVarrockDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardVarrockDialogue.java index e80a2caea..9bfee30fa 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumGuardVarrockDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumGuardVarrockDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumHistorianDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumHistorianDialogue.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumHistorianDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/MuseumHistorianDialogue.java index ef86afd12..91fe6293c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/MuseumHistorianDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/MuseumHistorianDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PhillipaDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/PhillipaDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/PhillipaDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/PhillipaDialogue.java index 0d95fa1b7..2b6881dd5 100644 --- a/Server/src/main/java/core/game/content/dialogue/PhillipaDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/PhillipaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PhilopDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/PhilopDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/PhilopDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/PhilopDialogue.java index bc564055b..ab80ce3fe 100644 --- a/Server/src/main/java/core/game/content/dialogue/PhilopDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/PhilopDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/PoxDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/PoxDialogue.java similarity index 87% rename from Server/src/main/java/core/game/content/dialogue/PoxDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/PoxDialogue.java index 2d88120ec..c5f341754 100644 --- a/Server/src/main/java/core/game/content/dialogue/PoxDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/PoxDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ReloboBlinyoDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/ReloboBlinyoDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/ReloboBlinyoDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/ReloboBlinyoDialogue.java index 094ed398e..e71d8c344 100644 --- a/Server/src/main/java/core/game/content/dialogue/ReloboBlinyoDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ReloboBlinyoDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; diff --git a/Server/src/main/java/core/game/content/dialogue/RomilyWeaklaxDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/RomilyWeaklaxDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java index ab4254295..ed93e45e1 100644 --- a/Server/src/main/java/core/game/content/dialogue/RomilyWeaklaxDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/RomilyWeaklaxDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import org.rs09.consts.Items; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; @@ -9,7 +10,7 @@ import core.game.node.item.Item; import core.plugin.Initializable; import core.game.node.entity.player.Player; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/dialogue/SaniDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/SaniDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SaniDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/SaniDialogue.java index b8d69d362..2d3188c6b 100644 --- a/Server/src/main/java/core/game/content/dialogue/SaniDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/SaniDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.plugin.Initializable; -import rs09.game.content.global.shops.Shops; -import rs09.game.system.config.ShopParser; +import core.game.shops.Shops; /** * Handles the SaniDialogue dialogue. diff --git a/Server/src/main/java/core/game/content/dialogue/SawmillOperator.java b/Server/src/main/content/region/misthalin/varrock/dialogue/SawmillOperator.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/SawmillOperator.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/SawmillOperator.java index 11779c29d..8b228ecbf 100644 --- a/Server/src/main/java/core/game/content/dialogue/SawmillOperator.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/SawmillOperator.java @@ -1,6 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; import core.game.component.Component; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ScavvoDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/ScavvoDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/ScavvoDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/ScavvoDialogue.java index c9987c2c5..c097b2834 100644 --- a/Server/src/main/java/core/game/content/dialogue/ScavvoDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ScavvoDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/SchoolchildMuseumDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/SchoolchildMuseumDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/SchoolchildMuseumDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/SchoolchildMuseumDialogue.java index 147d3fff0..ff51da763 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/SchoolchildMuseumDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/SchoolchildMuseumDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ShilopDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/ShilopDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/ShilopDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/ShilopDialogue.java index 6b5e61f13..7c875fd45 100644 --- a/Server/src/main/java/core/game/content/dialogue/ShilopDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ShilopDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/dialogue/SmithingApparenticeDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/SmithingApparenticeDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/SmithingApparenticeDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/SmithingApparenticeDialogue.java index 98b77c525..2e50d202b 100644 --- a/Server/src/main/java/core/game/content/dialogue/SmithingApparenticeDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/SmithingApparenticeDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SurokMagis.java b/Server/src/main/content/region/misthalin/varrock/dialogue/SurokMagis.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/SurokMagis.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/SurokMagis.java index 3d8fb3c01..588f8b1cd 100644 --- a/Server/src/main/java/core/game/content/dialogue/SurokMagis.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/SurokMagis.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/TarquinDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/TarquinDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/TarquinDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/TarquinDialogue.java index f4fc2ce25..0139ce2f9 100644 --- a/Server/src/main/java/core/game/content/dialogue/TarquinDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/TarquinDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/TeaSellerDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/TeaSellerDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/TeaSellerDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/TeaSellerDialogue.java index ec41e9fea..48693f203 100644 --- a/Server/src/main/java/core/game/content/dialogue/TeaSellerDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/TeaSellerDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumDialogue.java index bba65b3ae..66dc0c133 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumMaleDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumMaleDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumMaleDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumMaleDialogue.java index 9c5639322..f663c2881 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/TeacherandPupilMuseumMaleDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/TeacherandPupilMuseumMaleDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ThessaliaDialogue.kt b/Server/src/main/content/region/misthalin/varrock/dialogue/ThessaliaDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ThessaliaDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/dialogue/ThessaliaDialogue.kt index 8437c0dd2..f3f735172 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/varrock/ThessaliaDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ThessaliaDialogue.kt @@ -1,16 +1,15 @@ -package rs09.game.content.dialogue.region.varrock +package content.region.misthalin.varrock.dialogue import core.game.component.Component import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.node.entity.player.link.diary.DiaryType -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import org.rs09.consts.Components @Initializable -class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { +class ThessaliaDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin(player) { override fun open(vararg args: Any): Boolean { //The trade argument is handled elsewhere @@ -24,7 +23,7 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { player.interfaceManager.open(Component(Components.THESSALIA_CLOTHES_FEMALE_594)) } } else { //Has some armour equipped - interpreter.sendDialogues(548, FacialExpression.WORRIED, "You can't try them on while wearing armour. Take", "it off and speak to me again.") + interpreter.sendDialogues(548, core.game.dialogue.FacialExpression.WORRIED, "You can't try them on while wearing armour. Take", "it off and speak to me again.") stage = 52 } return true @@ -33,7 +32,7 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { npc = args[0] as NPC //Default Talk - interpreter.sendDialogues(npc, FacialExpression.ASKING, "Would you like to buy any fine clothes?") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.ASKING, "Would you like to buy any fine clothes?") stage = 0 return true } @@ -46,16 +45,16 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { } 1 -> when (buttonId) { 1 -> { - interpreter.sendDialogues(player, FacialExpression.ASKING, "What do you have?") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.ASKING, "What do you have?") stage = 10 } 2 -> { - interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "No, thank you.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.NEUTRAL, "No, thank you.") stage = 51 } } 10 -> { - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I have a number of fine pieces of clothing on sale or,", "if you prefer, I can offer you an exclusive", "total clothing makeover?") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.HALF_GUILTY, "I have a number of fine pieces of clothing on sale or,", "if you prefer, I can offer you an exclusive", "total clothing makeover?") stage++ } 11 -> { @@ -64,28 +63,28 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { } 12 -> when (buttonId) { 1 -> { - interpreter.sendDialogues(player, FacialExpression.THINKING, "Tell me more about this makeover.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.THINKING, "Tell me more about this makeover.") stage = 20 } 2 -> { - interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "I'd just like to buy some clothes.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.NEUTRAL, "I'd just like to buy some clothes.") stage = 50 } } 20 -> { - interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Certainly!") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.HAPPY, "Certainly!") stage++ } 21 -> { - interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Here at Thessalia's fine clothing boutique, we offer a", "unique service where we will totally revamp your outfit", "to your choosing, for... wait for it...") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.HAPPY, "Here at Thessalia's fine clothing boutique, we offer a", "unique service where we will totally revamp your outfit", "to your choosing, for... wait for it...") stage++ } 22 -> { - interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "A fee of only 500 gold coins! Tired of always wearing", "the same old outfit, day in, day out? This is the service", "for you!") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.FRIENDLY, "A fee of only 500 gold coins! Tired of always wearing", "the same old outfit, day in, day out? This is the service", "for you!") stage++ } 23 -> { - interpreter.sendDialogues(npc, FacialExpression.ASKING, "So what do you say? Interested? We can change either", "your top, or your legwear for only 500 gold a item!") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.ASKING, "So what do you say? Interested? We can change either", "your top, or your legwear for only 500 gold a item!") stage++ } 24 -> { @@ -94,19 +93,19 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { } 25 -> when (buttonId) { 1 -> { - interpreter.sendDialogues(player, FacialExpression.HAPPY, "I'd like to change my outfit, please.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HAPPY, "I'd like to change my outfit, please.") stage = 30 } 2 -> { - interpreter.sendDialogues(player, FacialExpression.NEUTRAL, "I'd just like to buy some clothes.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.NEUTRAL, "I'd just like to buy some clothes.") stage = 50 } } 30 -> if (player.equipment.isEmpty) { - interpreter.sendDialogues(npc, FacialExpression.HAPPY, "Just select what style and colour you would like from", "this catalogue, and then give me the 1000 gold when", "you've picked.") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.HAPPY, "Just select what style and colour you would like from", "this catalogue, and then give me the 1000 gold when", "you've picked.") stage++ } else { //Has some armour equipped - interpreter.sendDialogues(npc, FacialExpression.WORRIED, "You can't try them on while wearing armour. Take", "it off and speak to me again.") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.WORRIED, "You can't try them on while wearing armour. Take", "it off and speak to me again.") stage = 52 } 31 -> if (player.equipment.isEmpty) { @@ -119,7 +118,7 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { } } 49 -> { - interpreter.sendDialogues(npc, FacialExpression.FRIENDLY, "That's ok! Just come back when you do have it!") + interpreter.sendDialogues(npc, core.game.dialogue.FacialExpression.FRIENDLY, "That's ok! Just come back when you do have it!") stage = 52 } 50 -> { @@ -135,7 +134,7 @@ class ThessaliaDialogue(player: Player? = null): DialoguePlugin(player) { return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ThessaliaDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/TrampDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/TrampDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/TrampDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/TrampDialogue.java index 8a084ccea..703d86712 100644 --- a/Server/src/main/java/core/game/content/dialogue/TrampDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/TrampDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/ValaineDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/ValaineDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/ValaineDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/ValaineDialogue.java index b601e2aa5..970913e5c 100644 --- a/Server/src/main/java/core/game/content/dialogue/ValaineDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/ValaineDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBartenderDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockBartenderDialogue.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBartenderDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/VarrockBartenderDialogue.java index b67c7c2eb..1eda8c473 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBartenderDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockBartenderDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockCookDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockCookDialogue.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockCookDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/VarrockCookDialogue.java index 403df82d9..e174548ff 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockCookDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockCookDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockEastBartenderDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockEastBartenderDialogue.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockEastBartenderDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/VarrockEastBartenderDialogue.java index 586be5d82..69d5a7075 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockEastBartenderDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockEastBartenderDialogue.java @@ -1,12 +1,12 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the VarrockEastBartenderDialogue dialogue. diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockGateGuardDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockGateGuardDialogue.java similarity index 86% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockGateGuardDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/VarrockGateGuardDialogue.java index 296cf7443..4fba68d0b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockGateGuardDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockGateGuardDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockSwordShopDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockSwordShopDialogue.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockSwordShopDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/VarrockSwordShopDialogue.java index 0892eb482..77258f13e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockSwordShopDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/VarrockSwordShopDialogue.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/WiloughDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/WiloughDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/WiloughDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/WiloughDialogue.java index 837b07591..f25b6048d 100644 --- a/Server/src/main/java/core/game/content/dialogue/WiloughDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/WiloughDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/miniquest/surok/DakhThoulanAegisDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/DakhThoulanAegisDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/miniquest/surok/DakhThoulanAegisDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/surok/DakhThoulanAegisDialogue.java index 1beead186..fdb6a579a 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/surok/DakhThoulanAegisDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/DakhThoulanAegisDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.miniquest.surok; +package content.region.misthalin.varrock.dialogue.surok; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/miniquest/surok/HuntForSurokPlugin.java b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/HuntForSurokPlugin.java similarity index 91% rename from Server/src/main/java/core/game/content/quest/miniquest/surok/HuntForSurokPlugin.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/surok/HuntForSurokPlugin.java index bc0be6ffb..b9b424f58 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/surok/HuntForSurokPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/HuntForSurokPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.miniquest.surok; +package content.region.misthalin.varrock.dialogue.surok; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the hunt for surok mini quest. diff --git a/Server/src/main/java/core/game/content/quest/miniquest/surok/MishkalunDornDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/MishkalunDornDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/miniquest/surok/MishkalunDornDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/surok/MishkalunDornDialogue.java index 5c0b83772..f12277626 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/surok/MishkalunDornDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/MishkalunDornDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.miniquest.surok; +package content.region.misthalin.varrock.dialogue.surok; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/miniquest/surok/SilasDahcsnuDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/SilasDahcsnuDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/miniquest/surok/SilasDahcsnuDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/surok/SilasDahcsnuDialogue.java index ae7079bc1..b4e3023b0 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/surok/SilasDahcsnuDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/SilasDahcsnuDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.miniquest.surok; +package content.region.misthalin.varrock.dialogue.surok; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/miniquest/surok/SurokMagisDialogue.java b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/SurokMagisDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/miniquest/surok/SurokMagisDialogue.java rename to Server/src/main/content/region/misthalin/varrock/dialogue/surok/SurokMagisDialogue.java index 902d15c18..85b9fa6af 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/surok/SurokMagisDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/dialogue/surok/SurokMagisDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.miniquest.surok; +package content.region.misthalin.varrock.dialogue.surok; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/RatBurgissDiaryDialogue.kt b/Server/src/main/content/region/misthalin/varrock/diary/RatBurgissDiaryDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/RatBurgissDiaryDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/diary/RatBurgissDiaryDialogue.kt index 3badca882..010a3fb19 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/dialogues/RatBurgissDiaryDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/diary/RatBurgissDiaryDialogue.kt @@ -1,15 +1,14 @@ -package rs09.game.node.entity.player.link.diary.dialogues +package content.region.misthalin.varrock.diary -import api.addItemOrDrop -import api.getAttribute -import api.setAttribute -import core.game.content.dialogue.FacialExpression +import core.api.getAttribute +import core.api.setAttribute +import core.game.dialogue.DialogueFile +import core.game.dialogue.FacialExpression +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic import core.game.node.entity.player.link.diary.AchievementDiary import core.game.node.entity.player.link.diary.DiaryType -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE +import core.tools.END_DIALOGUE class RatBurgissDiaryDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/VarrockAchivementDiary.kt b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/VarrockAchivementDiary.kt rename to Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt index 7fe996bac..a75f6b7a9 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/events/VarrockAchivementDiary.kt +++ b/Server/src/main/content/region/misthalin/varrock/diary/VarrockAchivementDiary.kt @@ -1,9 +1,7 @@ -package rs09.game.node.entity.player.link.diary.events +package content.region.misthalin.varrock.diary -import api.events.* -import api.inBorders -import core.game.content.global.Bones -import core.game.content.global.travel.canoe.Canoe +import content.global.skill.prayer.Bones +import content.global.travel.canoe.Canoe import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType @@ -12,13 +10,14 @@ import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.content.dialogue.region.varrock.ElsieDialogue -import rs09.game.interaction.inter.FairyRing -import rs09.game.node.entity.player.link.diary.AreaDiaryTask -import rs09.game.node.entity.player.link.diary.DiaryEventHookBase -import rs09.game.node.entity.player.link.diary.DiaryLevel -import rs09.game.node.entity.skill.magic.TeleportMethod -import rs09.game.node.entity.skill.magic.spellconsts.Modern +import content.region.misthalin.varrock.dialogue.ElsieDialogue +import content.global.handlers.iface.FairyRing +import content.global.skill.magic.TeleportMethod +import content.global.skill.magic.spellconsts.Modern +import core.game.diary.AreaDiaryTask +import core.game.diary.DiaryEventHookBase +import core.game.diary.DiaryLevel +import core.game.event.* class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { companion object { @@ -97,13 +96,13 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { AreaDiaryTask( VARROCK_ROOF_AREA, DiaryLevel.EASY, - EasyTasks.FIND_HIGHEST_POINT + EasyTasks.FIND_HIGHEST_POINT ), AreaDiaryTask( SOS_LEVEL_2_AREA, DiaryLevel.EASY, - EasyTasks.VISIT_SOS_LEVEL2 + EasyTasks.VISIT_SOS_LEVEL2 ) ) @@ -113,7 +112,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.BARBARIAN_VILLAGE_CATCH_TROUT + EasyTasks.BARBARIAN_VILLAGE_CATCH_TROUT ) } @@ -121,7 +120,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.MINE_IRON_SOUTHEAST + EasyTasks.MINE_IRON_SOUTHEAST ) } @@ -132,7 +131,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.LUMBERYARD_CHOP_DYING_TREE + EasyTasks.LUMBERYARD_CHOP_DYING_TREE ) } } @@ -141,7 +140,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.PATERDOMUS_MINE_LIMESTONE + EasyTasks.PATERDOMUS_MINE_LIMESTONE ) } } @@ -153,7 +152,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.AUBURY_TELEPORT_ESSENCE_MINE + EasyTasks.AUBURY_TELEPORT_ESSENCE_MINE ) } } @@ -165,7 +164,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.EDGEVILLE_ENTER_DUNGEON_SOUTH + EasyTasks.EDGEVILLE_ENTER_DUNGEON_SOUTH ) } } @@ -181,7 +180,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.HARD, - HardTasks.EDGEVILLE_MAKE_WAKA_CANOE + HardTasks.EDGEVILLE_MAKE_WAKA_CANOE ) } } @@ -195,7 +194,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.ELSIE_TELL_A_STORY + EasyTasks.ELSIE_TELL_A_STORY ) } } @@ -207,7 +206,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.GIVE_STRAY_DOG_A_BONE + EasyTasks.GIVE_STRAY_DOG_A_BONE ) } } @@ -220,7 +219,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.EASY, - EasyTasks.THESSALIA_BROWSE_CLOTHES + EasyTasks.THESSALIA_BROWSE_CLOTHES ) } } @@ -232,7 +231,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.CAST_VARROCK_TELEPORT_SPELL + MediumTasks.CAST_VARROCK_TELEPORT_SPELL ) } } @@ -243,7 +242,7 @@ class VarrockAchivementDiary : DiaryEventHookBase(DiaryType.VARROCK) { finishTask( player, DiaryLevel.MEDIUM, - MediumTasks.DIAL_FAIRY_RING_WEST + MediumTasks.DIAL_FAIRY_RING_WEST ) } } diff --git a/Server/src/main/java/core/game/node/entity/npc/other/BennyNPC.java b/Server/src/main/content/region/misthalin/varrock/handlers/BennyNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/other/BennyNPC.java rename to Server/src/main/content/region/misthalin/varrock/handlers/BennyNPC.java index 27b769ccf..0ada0d65e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/BennyNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/BennyNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.varrock.handlers; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/BrassKeyDoorPlugin.java similarity index 91% rename from Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/BrassKeyDoorPlugin.java index b9336f110..0e74482b9 100644 --- a/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/BrassKeyDoorPlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsArenaPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/ChampionsArenaPlugin.java index cf7df65f9..7539754d3 100644 --- a/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsArenaPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.kt b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt similarity index 77% rename from Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.kt rename to Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt index eea71349e..8814d351a 100644 --- a/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.kt +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ChampionsGuildDoor.kt @@ -1,11 +1,10 @@ -package core.game.interaction.`object` +package content.region.misthalin.varrock.handlers -import core.game.content.global.action.DoorActionHandler import core.game.node.entity.player.link.diary.DiaryType import core.plugin.Initializable import org.rs09.consts.Scenery -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Represents the plugin used to handle the interaction with the champions guild @@ -17,7 +16,7 @@ import rs09.game.interaction.InteractionListener @Initializable class ChampionsGuildDoor : InteractionListener { override fun defineListeners() { - on(Scenery.DOOR_1805, IntType.SCENERY, "open") {player, node -> + on(Scenery.DOOR_1805, IntType.SCENERY, "open") { player, node -> if (player.location.y > 3362 && player.questRepository.points < 32) { player.dialogueInterpreter.open(70099, "You have not proved yourself worthy to enter here yet.") player.packetDispatch.sendMessage("The door won't open - you need at least 32 Quest Points.") @@ -31,7 +30,7 @@ class ChampionsGuildDoor : InteractionListener { ) } player.achievementDiaryManager.finishTask(player, DiaryType.VARROCK, 1, 1) - DoorActionHandler.handleAutowalkDoor(player, node as core.game.node.scenery.Scenery) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node as core.game.node.scenery.Scenery) } return@on true } diff --git a/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/ChefGuildDoorPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/ChefGuildDoorPlugin.java index d3793bd6b..4058a2606 100644 --- a/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ChefGuildDoorPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import org.rs09.consts.Items; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.item.Item; import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/cutscene/GECutscenePlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/GECutscenePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/cutscene/GECutscenePlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/GECutscenePlugin.java index 0106ab8f3..4630d1f57 100644 --- a/Server/src/main/java/core/game/content/cutscene/GECutscenePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/GECutscenePlugin.java @@ -1,17 +1,17 @@ -package core.game.content.cutscene; +package content.region.misthalin.varrock.handlers; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.ge.GEGuidePrice; import core.game.ge.GEGuidePrice.GuideType; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; diff --git a/Server/src/main/java/core/game/interaction/object/GrandExchangePlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangePlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/GrandExchangePlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangePlugin.java index 3783e66df..a4be16751 100644 --- a/Server/src/main/java/core/game/interaction/object/GrandExchangePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; @@ -11,9 +11,9 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.game.ge.GrandExchangeRecords; -import rs09.game.interaction.inter.ge.ExchangeItemSets; -import rs09.game.interaction.inter.ge.StockMarket; +import core.game.ge.GrandExchangeRecords; +import content.global.handlers.iface.ge.ExchangeItemSets; +import content.global.handlers.iface.ge.StockMarket; /** * Represents the plugin used for grand exchange npc and object options. diff --git a/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.kt b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt similarity index 95% rename from Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.kt rename to Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt index 4aa094e34..5920138df 100644 --- a/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.kt +++ b/Server/src/main/content/region/misthalin/varrock/handlers/GrandExchangeShortcut.kt @@ -1,6 +1,6 @@ -package core.game.interaction.`object` +package content.region.misthalin.varrock.handlers -import api.* +import core.api.* import core.game.node.entity.impl.ForceMovement import core.game.node.entity.impl.ForceMovement.direction import core.game.node.entity.player.Player @@ -11,8 +11,8 @@ import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.plugin.Initializable -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListener /** * Handles the grand exchange shortcut. diff --git a/Server/src/main/java/core/game/interaction/object/GuidorDoorPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/GuidorDoorPlugin.java similarity index 93% rename from Server/src/main/java/core/game/interaction/object/GuidorDoorPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/GuidorDoorPlugin.java index d50c07be8..fa4da00a0 100644 --- a/Server/src/main/java/core/game/interaction/object/GuidorDoorPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/GuidorDoorPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/LumberYardCratePlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/LumberYardCratePlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/LumberYardCratePlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/LumberYardCratePlugin.java index 83d5a1ad3..fc5c15e86 100644 --- a/Server/src/main/java/core/game/interaction/object/LumberYardCratePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/LumberYardCratePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/MuseumGatePlugin.java similarity index 89% rename from Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/MuseumGatePlugin.java index 722bcd31f..1ce507bb3 100644 --- a/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/MuseumGatePlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/RedberryBushPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/RedberryBushPlugin.java index ce7b031da..af25650e7 100644 --- a/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/RedberryBushPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/npc/SawmillOptionPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/SawmillOptionPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/SawmillOptionPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/SawmillOptionPlugin.java index 776989ec6..8801cb4a5 100644 --- a/Server/src/main/java/core/game/interaction/npc/SawmillOptionPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/SawmillOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; diff --git a/Server/src/main/java/core/game/interaction/npc/ShooAwayStrayDogPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/ShooAwayStrayDogPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/npc/ShooAwayStrayDogPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/ShooAwayStrayDogPlugin.java index 010c4be9f..d21dee850 100644 --- a/Server/src/main/java/core/game/interaction/npc/ShooAwayStrayDogPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ShooAwayStrayDogPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/StrayDogNPC.java b/Server/src/main/content/region/misthalin/varrock/handlers/StrayDogNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/other/StrayDogNPC.java rename to Server/src/main/content/region/misthalin/varrock/handlers/StrayDogNPC.java index 931a577d8..e2ce0867e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/StrayDogNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/StrayDogNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.varrock.handlers; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/interaction/npc/ThessaliaPlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/ThessaliaPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/npc/ThessaliaPlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/ThessaliaPlugin.java index 4b17a7799..3ef52ee6d 100644 --- a/Server/src/main/java/core/game/interaction/npc/ThessaliaPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ThessaliaPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBrokenCart.java b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockBrokenCart.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBrokenCart.java rename to Server/src/main/content/region/misthalin/varrock/handlers/VarrockBrokenCart.java index a8eb3647a..22d6b9e7e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/varrock/VarrockBrokenCart.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockBrokenCart.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.city.varrock; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/VarrockGuardSignpost.kt b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockGuardSignpost.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/object/VarrockGuardSignpost.kt rename to Server/src/main/content/region/misthalin/varrock/handlers/VarrockGuardSignpost.kt index d667102d2..e6ca1ae8c 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/VarrockGuardSignpost.kt +++ b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockGuardSignpost.kt @@ -1,15 +1,15 @@ -package rs09.game.interaction.`object` +package content.region.misthalin.varrock.handlers -import api.* +import core.api.* import core.game.interaction.Option import core.game.node.Node import core.game.node.entity.Entity import core.game.world.map.zone.MapZone import core.game.world.map.zone.ZoneBorders -import rs09.GlobalStats -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.SystemLogger +import core.GlobalStats +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.tools.SystemLogger class VarrockGuardSignpost : InteractionListener { override fun defineListeners() { @@ -27,7 +27,7 @@ class VarrockGuardSignpost : InteractionListener { registerMapZone(zone, ZoneBorders(3180,3420,3165,3435)) registerMapZone(zone, ZoneBorders(3280,3422,3266,3435)) - on(31298, IntType.SCENERY, "read"){player, _ -> + on(31298, IntType.SCENERY, "read"){ player, _ -> val pickpocketCount = GlobalStats.getDailyGuardPickpockets() SystemLogger.logInfo(this::class.java, "Is equal? ${pickpocketCount == 0}") when(pickpocketCount){ diff --git a/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockNodePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java rename to Server/src/main/content/region/misthalin/varrock/handlers/VarrockNodePlugin.java index 1c4f548f7..eb2307284 100644 --- a/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/handlers/VarrockNodePlugin.java @@ -1,10 +1,10 @@ -package core.game.interaction.city; +package content.region.misthalin.varrock.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.ClimbActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -12,7 +12,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt b/Server/src/main/content/region/misthalin/varrock/handlers/ZaffPlugin.kt similarity index 88% rename from Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt rename to Server/src/main/content/region/misthalin/varrock/handlers/ZaffPlugin.kt index e8cd07f68..19d0c1b70 100644 --- a/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt +++ b/Server/src/main/content/region/misthalin/varrock/handlers/ZaffPlugin.kt @@ -1,18 +1,13 @@ -package core.game.interaction.npc +package content.region.misthalin.varrock.handlers -import api.Container -import api.* -import api.InputType +import core.api.Container +import core.api.* +import core.api.InputType import core.cache.def.impl.NPCDefinition import core.plugin.Initializable import core.game.interaction.OptionHandler import core.plugin.Plugin -import core.game.interaction.npc.ZaffPlugin.ZaffDialogue -import core.game.interaction.npc.ZaffPlugin.ZaffStaveDialogue -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.player.link.quest.Quest -import core.game.content.dialogue.FacialExpression -import core.game.interaction.npc.ZaffPlugin import core.game.node.Node import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -20,9 +15,8 @@ import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.Item import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.ServerStore.Companion.getInt -import rs09.game.system.SystemLogger +import core.ServerStore +import core.ServerStore.Companion.getInt /** * Represents the plugin used for buying a battle staff from zeke. @@ -49,7 +43,7 @@ class ZaffPlugin : OptionHandler() { * @author 'Vexia * @version 1.0 */ - class ZaffDialogue : DialoguePlugin { + class ZaffDialogue : core.game.dialogue.DialoguePlugin { /** * The quest. */ @@ -70,7 +64,7 @@ class ZaffPlugin : OptionHandler() { */ constructor(player: Player?) : super(player) {} - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ZaffDialogue(player) } @@ -79,7 +73,7 @@ class ZaffPlugin : OptionHandler() { quest = player.questRepository.getQuest("What Lies Below") interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Would you like to buy or sell some staves or is there", "something else you need?" ) @@ -121,11 +115,11 @@ class ZaffPlugin : OptionHandler() { } 1 -> when (buttonId) { 1 -> { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes, please.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HALF_GUILTY, "Yes, please.") stage = 10 } 2 -> { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "No, thank you.") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HALF_GUILTY, "No, thank you.") stage = 20 } 3 -> { @@ -136,14 +130,14 @@ class ZaffPlugin : OptionHandler() { player("We did it! We beat Surok!") stage = 200 } else { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Can I have another ring?") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HALF_GUILTY, "Can I have another ring?") stage = 50 } } } 10 -> { if(player.achievementDiaryManager.getDiary(DiaryType.VARROCK).levelRewarded.contains(true)){ - npcl(FacialExpression.FRIENDLY, "Would you like to hear about my battlestaves?") + npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Would you like to hear about my battlestaves?") stage = 1000 } else { end() @@ -153,7 +147,7 @@ class ZaffPlugin : OptionHandler() { 20 -> { interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, 'stick' your head in again if you change your mind." ) stage = 21 @@ -161,7 +155,7 @@ class ZaffPlugin : OptionHandler() { 21 -> { interpreter.sendDialogues( player, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Huh, terrible pun. You just can't get the 'staff' these", "days!" ) @@ -171,20 +165,20 @@ class ZaffPlugin : OptionHandler() { 50 -> { if (player.inventory.contains(11014, 1)) interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Go and get the one that's in your inventory " + player.username + "!" ) else if (player.bank.contains(11014, 1)) interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Go and get the one that's in your bank" + player.username + "!" ) else if (player.equipment.contains(11014, 1)) interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Go and get the one that's on your finger " + player.username + "!" ) else { interpreter.sendDialogues( npc, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Of course you can! Here you go " + player.username + "!" ) player.inventory.add(BEACON_RING) @@ -339,7 +333,7 @@ class ZaffPlugin : OptionHandler() { * @author 'Vexia * @version 1.0 */ - inner class ZaffStaveDialogue : DialoguePlugin { + inner class ZaffStaveDialogue : core.game.dialogue.DialoguePlugin { /** * The ammount of battlestaves. */ @@ -360,13 +354,13 @@ class ZaffPlugin : OptionHandler() { */ constructor(player: Player?) : super(player) {} - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return ZaffStaveDialogue(player) } override fun open(vararg args: Any): Boolean { ammount = getStoreFile().getInt(player.username.toLowerCase()) - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Do you have any battlestaves?") + interpreter.sendDialogues(player, core.game.dialogue.FacialExpression.HALF_GUILTY, "Do you have any battlestaves?") stage = 0 return true } @@ -377,7 +371,7 @@ class ZaffPlugin : OptionHandler() { if (ammount >= maxStaffs) { interpreter.sendDialogues( 546, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "I'm very sorry! I seem to be out of battlestaves at the", "moment! I expect I'll get some more in by tomorrow,", "though." @@ -387,7 +381,7 @@ class ZaffPlugin : OptionHandler() { } interpreter.sendDialogues( 546, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Battlestaves cost 7,000 gold pieces each. I have ${maxStaffs - ammount} left.", "How many would you like to buy?" ) @@ -415,7 +409,7 @@ class ZaffPlugin : OptionHandler() { 2 -> { interpreter.sendDialogues( player, - FacialExpression.HALF_GUILTY, + core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh, okay then. I'll try again another time." ) stage = 3 diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/AllFiredUp.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/AllFiredUp.kt rename to Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt index da2c5f525..b617cd913 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/AllFiredUp.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/AllFiredUp.kt @@ -1,4 +1,4 @@ -package rs09.game.content.quest.members.allfiredup +package content.region.misthalin.varrock.quest.allfiredup import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest @@ -6,7 +6,7 @@ import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.content.activity.allfiredup.AFUBeacon +import content.minigame.allfiredup.AFUBeacon /** * Represents the "All Fired Up" quest. @@ -82,7 +82,7 @@ class AllFiredUp : Quest("All Fired Up", 157, 156, 1){ player.skills.addExperience(Skills.FIREMAKING, 5500.0) player.inventory.add(Item(995,20000)) player.varpManager.unflagSave(1283) - AFUBeacon.resetAllBeacons(player) + content.minigame.allfiredup.AFUBeacon.resetAllBeacons(player) player.varpManager.get(1283).setVarbit(0,0).send(player) player.questRepository.syncronizeTab(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/BlazeSharpeyeDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/BlazeSharpeyeDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/BlazeSharpeyeDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/allfiredup/BlazeSharpeyeDialogue.kt index 0e4fb2461..329fee8e9 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/BlazeSharpeyeDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/BlazeSharpeyeDialogue.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.allfiredup +package content.region.misthalin.varrock.quest.allfiredup -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @Initializable -class BlazeSharpeyeDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class BlazeSharpeyeDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return BlazeSharpeyeDialogue(player) } @@ -46,7 +46,7 @@ class BlazeSharpeyeDialogue(player: Player? = null) : DialoguePlugin(player) { 110 -> npc("I need you to light a couple of beacons for me to make","sure we can see the glow from the flames over the","horizon.").also { stage++ } 111 -> npc("So! First of all, you'll need to know how to light a beacon.").also { stage++ } 112 -> npc("Our technique is super-secret, but quite effective. All","you do is put twenty logs of the same type on a","beacon and...").also { stage++ } - 113 -> npc(FacialExpression.AMAZED,"SET IT ON FIRE WITH A TINDERBOX").also { stage++ } + 113 -> npc(core.game.dialogue.FacialExpression.AMAZED,"SET IT ON FIRE WITH A TINDERBOX").also { stage++ } 114 -> player("You really enjoy your job, don't you?").also { stage++ } 115 -> npc("Yes. Yes I do. Now, why don't you go over there and","try lighting that beacon. Show us what you've got.").also { stage++; player.questRepository.getQuest("All Fired Up").setStage(player,20) } 116 -> options("Does it matter what type of log I use?","Okay.").also { stage++ } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/KingRoaldAFUDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/KingRoaldAFUDialogue.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/KingRoaldAFUDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/allfiredup/KingRoaldAFUDialogue.kt index ef7a4fce6..bd84874bc 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/KingRoaldAFUDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/KingRoaldAFUDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.members.allfiredup +package content.region.misthalin.varrock.quest.allfiredup import core.game.node.entity.skill.Skills -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class KingRoaldAFUDialogue(val questStage: Int) : DialogueFile() { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/SquireFyreDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/SquireFyreDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt index e0a572a66..cf0145e99 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/allfiredup/SquireFyreDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/allfiredup/SquireFyreDialogue.kt @@ -1,14 +1,14 @@ -package rs09.game.content.quest.members.allfiredup +package content.region.misthalin.varrock.quest.allfiredup -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import rs09.game.content.activity.allfiredup.BeaconState +import content.minigame.allfiredup.BeaconState @Initializable -class SquireFyreDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { +class SquireFyreDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return SquireFyreDialogue(player) } @@ -27,7 +27,7 @@ class SquireFyreDialogue(player: Player? = null) : DialoguePlugin(player){ 100 -> npc("Of course I can see it. I haven't spent my entire life","practising my seeing skills for nothing! I'm happy to","report that the fire near Blaze is burning brightly.").also { stage++ } 101 -> player("Terrific! Blaze has asked me to light this fire as well, so","he can see how things look from his vantage point.").also { stage++ } 102 -> npc("Be my guest!").also { stage++; player.questRepository.getQuest("All Fired Up").setStage(player,50); player.varpManager.get(1283).setVarbit(0, - BeaconState.DYING.ordinal).send(player) } + content.minigame.allfiredup.BeaconState.DYING.ordinal).send(player) } 103 -> options("How do I light the beacon?","I suppose you don't have any logs I could have?","Okay, thanks.").also { stage++ } 104 -> when(buttonId){ 1 -> player("How do I light the beacon?").also { stage = 110 } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/demonslayer/DSCutsceneTrigger.kt b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSCutsceneTrigger.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/quest/free/demonslayer/DSCutsceneTrigger.kt rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSCutsceneTrigger.kt index 54a48a987..8ede2454c 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/demonslayer/DSCutsceneTrigger.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSCutsceneTrigger.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.free.demonslayer +package content.region.misthalin.varrock.quest.demonslayer -import api.* +import core.api.* import core.game.world.map.zone.ZoneBorders -import core.game.content.activity.ActivityManager +import core.game.activity.ActivityManager import core.game.node.entity.Entity import core.game.node.entity.player.Player import org.rs09.consts.Items diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DSlayerDrainPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/DSlayerDrainPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java index 1d349e2d0..5ad418238 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DSlayerDrainPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DSlayerDrainPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayer.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayer.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayer.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayer.java index 589073752..2fc51558f 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayer.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayer.java @@ -1,17 +1,17 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; import java.util.ArrayList; import java.util.Collections; import java.util.List; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the demon slayer quest. diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java index d9cae6508..07180183d 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerCutscene.java @@ -1,12 +1,12 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; @@ -16,12 +16,11 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.map.path.Path; import core.game.world.map.path.Pathfinder; -import core.game.world.map.zone.ZoneBorders; import core.game.world.update.flag.context.Animation; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java index ba5d571b5..4fa25dbe6 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/DemonSlayerPlugin.java @@ -1,8 +1,8 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/GypsyArisDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/GypsyArisDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/GypsyArisDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/GypsyArisDialogue.java index 5c4d4aa4a..3e318c85c 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/GypsyArisDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/GypsyArisDialogue.java @@ -1,16 +1,16 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.activity.ActivityManager; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.update.flag.context.Animation; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/SirPyrsinDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/SirPyrsinDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java index 059c66caf..166a6b54f 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/SirPyrsinDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/SirPyrsinDialogue.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/TraibornDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/TraibornDialogue.java index db54f8923..b16a415a2 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/TraibornDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; @@ -9,7 +9,7 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/WallyCutscenePlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/WallyCutscenePlugin.java similarity index 90% rename from Server/src/main/java/core/game/content/quest/free/demonslayer/WallyCutscenePlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/demonslayer/WallyCutscenePlugin.java index b5bddd7dd..918451e1c 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/WallyCutscenePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/demonslayer/WallyCutscenePlugin.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.demonslayer; +package content.region.misthalin.varrock.quest.demonslayer; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; import core.net.packet.context.CameraContext.CameraType; diff --git a/Server/src/main/java/core/game/content/dialogue/CabinBoyJenkins.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CabinBoyJenkins.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/CabinBoyJenkins.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CabinBoyJenkins.java index ec5295fa2..149fb9609 100644 --- a/Server/src/main/java/core/game/content/dialogue/CabinBoyJenkins.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CabinBoyJenkins.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.quest.dragonslayer; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/CrandorMapPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CrandorMapPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/CrandorMapPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CrandorMapPlugin.java index 454bf72e3..a01c96817 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/CrandorMapPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/CrandorMapPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/dialogue/DSChestDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSChestDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/DSChestDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSChestDialogue.java index aade2c81c..386db72de 100644 --- a/Server/src/main/java/core/game/content/dialogue/DSChestDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSChestDialogue.java @@ -1,10 +1,9 @@ -package core.game.content.dialogue; +package content.region.misthalin.varrock.quest.dragonslayer; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; -import core.game.content.quest.free.dragonslayer.DragonSlayer; - /** * Represents the dialogue plugin used for the dragon slayer chest. * @author 'Vexia diff --git a/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSListeners.kt b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSListeners.kt new file mode 100644 index 000000000..ff24e7eed --- /dev/null +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSListeners.kt @@ -0,0 +1,15 @@ +package content.region.misthalin.varrock.quest.dragonslayer + +import core.api.sendMessage +import org.rs09.consts.Scenery +import core.game.interaction.InteractionListener +import core.game.interaction.IntType + +class DSListeners : InteractionListener { + override fun defineListeners() { + on(Scenery.CELL_DOOR_40184, IntType.SCENERY, "open") { player, _ -> + sendMessage(player, "It's locked tight.") + return@on true + } + } +} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSMagicDoorPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSMagicDoorPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/DSMagicDoorPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSMagicDoorPlugin.java index 4ac5ea792..e6c55249d 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSMagicDoorPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSMagicDoorPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSNedNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSNedNPC.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/DSNedNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSNedNPC.java index 056195966..846fc7f90 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSNedNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DSNedNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayer.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayer.java index 802f231b8..7f70e513c 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayer.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; @@ -12,10 +12,9 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; -import rs09.game.content.dialogue.region.lumbridge.DukeHoracioDialogue; -import rs09.game.content.quest.free.dragonslayer.NedDialogue; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import content.region.misthalin.lumbridge.dialogue.DukeHoracioDialogue; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Represents the dragon slayer quest. diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerCutscene.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerCutscene.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java index df7968dbd..f9f2f909f 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerCutscene.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerCutscene.java @@ -1,20 +1,20 @@ - package core.game.content.quest.free.dragonslayer; + package content.region.misthalin.varrock.quest.dragonslayer; import java.util.ArrayList; import java.util.List; import core.game.component.Component; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.travel.ship.Ships; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; +import content.global.travel.ship.Ships; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java index 0eaf4aa7c..0a75dab17 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DragonSlayerPlugin.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DukeHoracioDSDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DukeHoracioDSDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DukeHoracioDSDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DukeHoracioDSDialogue.kt index f136cc72f..35c5ace86 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DukeHoracioDSDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/DukeHoracioDSDialogue.kt @@ -1,12 +1,11 @@ -package rs09.game.content.quest.free.dragonslayer +package content.region.misthalin.varrock.quest.dragonslayer -import core.game.content.quest.free.dragonslayer.DragonSlayer +import content.region.misthalin.varrock.quest.dragonslayer.DragonSlayer import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.GroundItemManager -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE class DukeHoracioDSDialogue(val questStage: Int) : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ElvargNPC.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ElvargNPC.java index 5e5d7daa6..b5fd9bf5b 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ElvargNPC.java @@ -1,9 +1,9 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.combat.equipment.FireType; @@ -15,7 +15,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/GuildmasterDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/GuildmasterDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/GuildmasterDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/GuildmasterDialogue.java index 548ddf8d4..c96f8361a 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/GuildmasterDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/GuildmasterDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeDemonNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeDemonNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeDemonNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeDemonNPC.java index 05545cf9f..3e4a92af1 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeDemonNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeDemonNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeGhostNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeGhostNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeGhostNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeGhostNPC.java index af2934b63..497cad990 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeGhostNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeGhostNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeSkeletonNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeSkeletonNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeSkeletonNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeSkeletonNPC.java index 2039b4603..55afb35e2 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeSkeletonNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeSkeletonNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeZombieNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeZombieNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeZombieNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeZombieNPC.java index 68927b4a2..950927e65 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MazeZombieNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MazeZombieNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MeldarMadNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MeldarMadNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/MeldarMadNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MeldarMadNPC.java index cd1d91d91..2b731c0cc 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/MeldarMadNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/MeldarMadNPC.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDSDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDSDialogue.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDSDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDSDialogue.kt index 127f96292..5cecdad45 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDSDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDSDialogue.kt @@ -1,9 +1,9 @@ -package rs09.game.content.quest.free.dragonslayer +package content.region.misthalin.varrock.quest.dragonslayer -import core.game.content.quest.free.dragonslayer.DragonSlayer -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import content.region.misthalin.varrock.quest.dragonslayer.DragonSlayer +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE private const val SHIP_DIALOGUE = 2000 class NedDSDialogue(val questStage: Int) : DialogueFile() { diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDialogue.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDialogue.kt index b80814314..46d87047a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/NedDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/NedDialogue.kt @@ -1,33 +1,30 @@ -package rs09.game.content.quest.free.dragonslayer +package content.region.misthalin.varrock.quest.dragonslayer -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.AchievementDiary -import core.game.node.entity.player.link.diary.DiaryType import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.game.content.quest.free.princealirescue.NedPARDialogue -import rs09.game.node.entity.player.link.diary.dialogues.NedDiaryDialogue -import rs09.game.world.GameWorld.settings -import rs09.tools.DIALOGUE_INITIAL_OPTIONS_HANDLE -import rs09.tools.END_DIALOGUE +import core.game.dialogue.IfTopic +import core.game.dialogue.Topic +import content.region.desert.alkharid.quest.princealirescue.NedPARDialogue +import content.region.misthalin.lumbridge.diary.NedDiaryDialogue +import core.game.world.GameWorld.settings +import core.tools.END_DIALOGUE /** * Core dialogue plugin for Ned. * @author Ceikry */ -class NedDialogue(player: Player? = null) : DialoguePlugin(player) { +class NedDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { /** * The achievement diary. */ private var diary: AchievementDiary? = null private val level = 2 - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return NedDialogue(player) } diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/OziachDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/OziachDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/OziachDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/OziachDialogue.java index fb0a5b758..c24850f15 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/OziachDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/OziachDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainDialogue.java index 723a7503f..73f781d8c 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainNPC.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainNPC.java index 059811690..25c81de50 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/WormbrainNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/WormbrainNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ZombieRatNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ZombieRatNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/dragonslayer/ZombieRatNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ZombieRatNPC.java index d56ae4205..679922780 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ZombieRatNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/dragonslayer/ZombieRatNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.dragonslayer; +package content.region.misthalin.varrock.quest.dragonslayer; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/AvanDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/AvanDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/AvanDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/AvanDialogue.kt index 5309958a3..d35687166 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/AvanDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/AvanDialogue.kt @@ -1,211 +1,211 @@ -package rs09.game.content.quest.members.familycrest - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -class AvanDialogue (player: Player? = null): DialoguePlugin(player) { - - val CREST_PIECE_AVAN: Item = Item(779) - - override fun newInstance(player: Player?): DialoguePlugin { - return AvanDialogue(player); - } - - override fun open(vararg args: Any?): Boolean { - npc = (args[0] as NPC).getShownNPC(player) - val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 - - if (qstage == 100) { - options("Can you change my gauntlets for me?", "Nevermind") - stage = 6000 - return true - } - - if(qstage < 13){ - npc("What? Can't you see I'm busy?").also { stage = 1000 } - }else{ - when(qstage){ - 13 -> options("Why are you lurking around a scorpion pit?", "I'm looking for a man... his name is Avan Fitzharmon.").also{stage = 2} - 14 -> npc("So how are you doing getting me my perfect gold jewelry?").also{stage = 100} - 15 -> npc("So how are you doing getting me my perfect gold jewelry?").also{stage = 200} - 16 -> player("Where did you say I could find your brother Johnathon again?").also{stage = 304} - 17 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} - 18 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} - 19 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} - } - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - - when(stage){ - 1 -> player("Well, sooooorry...").also{stage = 1000} - - 2->when(buttonId){ - 1 -> npc("It's a good place to find gold...").also{stage = 1000} - 2 -> npc("Then you have found him. My name is Avan Fitzharmon.").also{stage++} - } - - 3 -> player("You have a part of your family crest. I am on a quest ", - "to retrieve all of the fragmented pieces ", - "and restore the crest.").also{stage++} - - 4 -> npc("Ha! I suppose one of my worthless brothers ", - "has sent you on this quest then?").also{stage++} - - 5 -> player("No, it was your father who has asked me to do this for him.").also{stage++} - - 6 -> npc("My... my father wishes this? Then that is a different matter. ", - "I will let you have my crest shard, adventurer, ", - "but you must first do something for me.").also{stage++} - - 7 -> npc("There is a certain lady I am trying to impress. ", - "As a man of noble birth, I can not give her just ", - "any gold trinket to show my devotion. ").also{stage++} - - 8 -> npc("What I intend to give her, is a golden ring, " , - "embedded with the finest precious red stone available, " , - "and a necklace to match this ring. ").also { stage++ } - - 9 -> npc("The problem however for me, is that ", - "not just any old gold will be suitable. ", - "I seek only the purest, the most high quality of gold ", - "what I seek, if you will, is perfect gold.").also{stage++} - 10 -> npc("None of the gold around here is even " , - "remotely suitable in terms of quality. ", - "I have searched far and wide for the perfect gold I desire, ", - "but have had no success so in finding it I am afraid. ").also { stage++ } - - 11 -> npc("If you can find me my perfect gold, " , - "make a ring and necklace from it, and add rubies to them, ", - "I will gladly hand over my fragment of " , - "the family crest to you.").also{stage++} - - 12 -> player("Can you give me any help on finding this 'perfect gold'?").also{stage++} - - 13 -> npc("I thought I had found a solid lead on its whereabouts ", - "when I heard of a dwarf who is an expert " , - "on gold who goes by the name of 'Boot'. ").also { stage++ } - - 14 -> npc("Unfortunately he has apparently returned to this home,", - "somewhere in the mountains, " , - "and I have no idea how to find him.").also { stage++} - - 15 -> player("Well, I'll see what I can do.").also{ - stage = 1000 - player.questRepository.getQuest("Family Crest").setStage(player, 14) - } - - 100 -> player("I'm still after that 'perfect gold'.").also { stage++ } - - 101 -> npc("I know how you feel... for such a long time " , - "I have searched and searched for the elusive perfect gold... " , - "I thought I had gotten a good lead on finding it ").also{stage++} - - 102 -> npc("when I heard talk of a dwarven expert on gold named Boot " , - "some time back, but unfortunately for me," , - " he has returned to his mountain home, which I cannot find.").also { stage = 1000} - - 200 -> if(!player.inventory.containItems(774,773)){ - npc("I have spoken to Boot the dwarf about the location " , - "of 'perfect gold', " , - "but haven't managed to make you your jewelry yet.").also { stage++ } - } - else{ - player("I have the ring and necklace right here.") - stage = 300; - } - 201 -> npc("Well, I won't entrust you with my piece of the crest " , - "until you have brought me a necklace of perfect gold " , - "with a red precious stone, and a perfect gold ring to match.").also { stage = 1000 } - - 300 -> sendDialogue("You hand Avan the perfect gold ring and necklace.").also{ - player.questRepository.getQuest("Family Crest").setStage(player, 16) - player.inventory.remove(Item(774), Item(773)) - player.inventory.add(CREST_PIECE_AVAN) - stage++ - } - 301 -> npc("These... these are exquisite! E" , - "XACTLY what I was searching for all of this time! " , - "Please, take my crest fragment!").also { stage++ } - - 302 -> npc("Now, I suppose you will be wanting to find my brother " , - "Johnathon who is in possession of the " , - "final piece of the family's crest?").also { stage++ } - - 303 -> player("That's correct.").also{stage++} - - 304 -> npc("Well, the last I heard of my brother Johnathon," , - " he was studying the magical arts, " , - "and trying to hunt some demon or other out in The Wilderness.").also{stage++} - 305 -> npc("Unsurprisingly, I do not believe he is doing a particularly good job of things, ", - "and spends most of his time recovering from his injuries " , - "in some tavern or other near the eastern edge of The Wilderness. " , - "You'll probably find him still there.").also{stage++} - - 306 -> player("Thanks Avan.").also { stage = 1000 } - - 400 -> player("I am still working on it.").also{stage++} - - 401 -> npc("I hope you succeed for my father's sake.").also{ - if(player.inventory.containItems(CREST_PIECE_AVAN.id, 782) || player.bank.containItems(CREST_PIECE_AVAN.id, 782)){ - stage = 1000 - } - else{ - stage++ - } - } - - 402 -> player("I have lost the fragment you gave me...").also{stage++} - 403 -> npc("I have a confession myself adventurer... " , - "I did not fully trust you with the actual part ", - "of my family's crest before, and gave you a " , - "worthless replica before... ").also{stage++} - 404-> npc("In hindsight, it seems I was right. " , - "I will give you the real piece now, ", - "but please try not to lose it; " , - "it is a priceless family heirloom.").also{stage = 1000 - player.inventory.add(CREST_PIECE_AVAN)} - - 6000 -> when (buttonId) { - 1 -> { - var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 - npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } - } - 2 -> player("Never mind").also{ stage = 1000 } - } - 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } - 6002 -> when (buttonId) { - 1 -> { - stage = 1000 - val givingGauntletsId = Items.GOLDSMITH_GAUNTLETS_776 - val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) - if (npcString == "") - { - end() - } - else { - npc(npcString) - } - } - 2 -> end() - } - - 1000 -> end() - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(663) - } - -} +package content.region.misthalin.varrock.quest.familycrest + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class AvanDialogue (player: Player? = null): core.game.dialogue.DialoguePlugin(player) { + + val CREST_PIECE_AVAN: Item = Item(779) + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return AvanDialogue(player); + } + + override fun open(vararg args: Any?): Boolean { + npc = (args[0] as NPC).getShownNPC(player) + val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 + + if (qstage == 100) { + options("Can you change my gauntlets for me?", "Nevermind") + stage = 6000 + return true + } + + if(qstage < 13){ + npc("What? Can't you see I'm busy?").also { stage = 1000 } + }else{ + when(qstage){ + 13 -> options("Why are you lurking around a scorpion pit?", "I'm looking for a man... his name is Avan Fitzharmon.").also{stage = 2} + 14 -> npc("So how are you doing getting me my perfect gold jewelry?").also{stage = 100} + 15 -> npc("So how are you doing getting me my perfect gold jewelry?").also{stage = 200} + 16 -> player("Where did you say I could find your brother Johnathon again?").also{stage = 304} + 17 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} + 18 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} + 19 -> npc("Greetings again, adventurer. How are you doing on retrieving the crest pieces?").also{stage = 400} + } + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + + when(stage){ + 1 -> player("Well, sooooorry...").also{stage = 1000} + + 2->when(buttonId){ + 1 -> npc("It's a good place to find gold...").also{stage = 1000} + 2 -> npc("Then you have found him. My name is Avan Fitzharmon.").also{stage++} + } + + 3 -> player("You have a part of your family crest. I am on a quest ", + "to retrieve all of the fragmented pieces ", + "and restore the crest.").also{stage++} + + 4 -> npc("Ha! I suppose one of my worthless brothers ", + "has sent you on this quest then?").also{stage++} + + 5 -> player("No, it was your father who has asked me to do this for him.").also{stage++} + + 6 -> npc("My... my father wishes this? Then that is a different matter. ", + "I will let you have my crest shard, adventurer, ", + "but you must first do something for me.").also{stage++} + + 7 -> npc("There is a certain lady I am trying to impress. ", + "As a man of noble birth, I can not give her just ", + "any gold trinket to show my devotion. ").also{stage++} + + 8 -> npc("What I intend to give her, is a golden ring, " , + "embedded with the finest precious red stone available, " , + "and a necklace to match this ring. ").also { stage++ } + + 9 -> npc("The problem however for me, is that ", + "not just any old gold will be suitable. ", + "I seek only the purest, the most high quality of gold ", + "what I seek, if you will, is perfect gold.").also{stage++} + 10 -> npc("None of the gold around here is even " , + "remotely suitable in terms of quality. ", + "I have searched far and wide for the perfect gold I desire, ", + "but have had no success so in finding it I am afraid. ").also { stage++ } + + 11 -> npc("If you can find me my perfect gold, " , + "make a ring and necklace from it, and add rubies to them, ", + "I will gladly hand over my fragment of " , + "the family crest to you.").also{stage++} + + 12 -> player("Can you give me any help on finding this 'perfect gold'?").also{stage++} + + 13 -> npc("I thought I had found a solid lead on its whereabouts ", + "when I heard of a dwarf who is an expert " , + "on gold who goes by the name of 'Boot'. ").also { stage++ } + + 14 -> npc("Unfortunately he has apparently returned to this home,", + "somewhere in the mountains, " , + "and I have no idea how to find him.").also { stage++} + + 15 -> player("Well, I'll see what I can do.").also{ + stage = 1000 + player.questRepository.getQuest("Family Crest").setStage(player, 14) + } + + 100 -> player("I'm still after that 'perfect gold'.").also { stage++ } + + 101 -> npc("I know how you feel... for such a long time " , + "I have searched and searched for the elusive perfect gold... " , + "I thought I had gotten a good lead on finding it ").also{stage++} + + 102 -> npc("when I heard talk of a dwarven expert on gold named Boot " , + "some time back, but unfortunately for me," , + " he has returned to his mountain home, which I cannot find.").also { stage = 1000} + + 200 -> if(!player.inventory.containItems(774,773)){ + npc("I have spoken to Boot the dwarf about the location " , + "of 'perfect gold', " , + "but haven't managed to make you your jewelry yet.").also { stage++ } + } + else{ + player("I have the ring and necklace right here.") + stage = 300; + } + 201 -> npc("Well, I won't entrust you with my piece of the crest " , + "until you have brought me a necklace of perfect gold " , + "with a red precious stone, and a perfect gold ring to match.").also { stage = 1000 } + + 300 -> sendDialogue("You hand Avan the perfect gold ring and necklace.").also{ + player.questRepository.getQuest("Family Crest").setStage(player, 16) + player.inventory.remove(Item(774), Item(773)) + player.inventory.add(CREST_PIECE_AVAN) + stage++ + } + 301 -> npc("These... these are exquisite! E" , + "XACTLY what I was searching for all of this time! " , + "Please, take my crest fragment!").also { stage++ } + + 302 -> npc("Now, I suppose you will be wanting to find my brother " , + "Johnathon who is in possession of the " , + "final piece of the family's crest?").also { stage++ } + + 303 -> player("That's correct.").also{stage++} + + 304 -> npc("Well, the last I heard of my brother Johnathon," , + " he was studying the magical arts, " , + "and trying to hunt some demon or other out in The Wilderness.").also{stage++} + 305 -> npc("Unsurprisingly, I do not believe he is doing a particularly good job of things, ", + "and spends most of his time recovering from his injuries " , + "in some tavern or other near the eastern edge of The Wilderness. " , + "You'll probably find him still there.").also{stage++} + + 306 -> player("Thanks Avan.").also { stage = 1000 } + + 400 -> player("I am still working on it.").also{stage++} + + 401 -> npc("I hope you succeed for my father's sake.").also{ + if(player.inventory.containItems(CREST_PIECE_AVAN.id, 782) || player.bank.containItems(CREST_PIECE_AVAN.id, 782)){ + stage = 1000 + } + else{ + stage++ + } + } + + 402 -> player("I have lost the fragment you gave me...").also{stage++} + 403 -> npc("I have a confession myself adventurer... " , + "I did not fully trust you with the actual part ", + "of my family's crest before, and gave you a " , + "worthless replica before... ").also{stage++} + 404-> npc("In hindsight, it seems I was right. " , + "I will give you the real piece now, ", + "but please try not to lose it; " , + "it is a priceless family heirloom.").also{stage = 1000 + player.inventory.add(CREST_PIECE_AVAN)} + + 6000 -> when (buttonId) { + 1 -> { + var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 + npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } + } + 2 -> player("Never mind").also{ stage = 1000 } + } + 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } + 6002 -> when (buttonId) { + 1 -> { + stage = 1000 + val givingGauntletsId = Items.GOLDSMITH_GAUNTLETS_776 + val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) + if (npcString == "") + { + end() + } + else { + npc(npcString) + } + } + 2 -> end() + } + + 1000 -> end() + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(663) + } + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/BootDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/BootDialogue.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/BootDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/BootDialogue.kt index dad7cf56f..20113cdae 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/BootDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/BootDialogue.kt @@ -1,72 +1,72 @@ -package rs09.game.content.quest.members.familycrest - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - - -@Initializable -class BootDialogue (player: Player? = null): DialoguePlugin(player){ - override fun newInstance(player: Player?): DialoguePlugin { - return BootDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = (args[0] as NPC).getShownNPC(player) - val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 - - if(qstage < 14 || qstage > 14){ - npc(FacialExpression.OLD_NORMAL,"Hello tall person.") - stage = 1 - } - else{ - npc(FacialExpression.OLD_NORMAL,"Hello tall person.") - stage = 2 - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - - 1-> options("Hello short person.", "Why are you called Boot?").also { stage = 10 } - - 2 -> options("Hello. I'm in search of very high quality gold.", "Hello short person.", "Why are you called Boot?").also { stage= 20} - - 10 ->when(buttonId){ - 1-> player("Hello short person.").also { stage = 1000 } - 2 -> npc(FacialExpression.OLD_ANGRY1,"I'm called Boot, because when I was very young, ", - "I used to sleep, in a large boot.").also{stage++} - - } - - 11 -> player("Yeah, great, I didn't want your life story.").also { stage = 1000} - - 20 -> when (buttonId){ - 1 -> npc(FacialExpression.OLD_DEFAULT,"High quality gold eh? Hmmm... " , - "Well, the very best quality gold that I know of " , - "can be found in an underground ruin near Witchaven.").also{stage++} - - 2-> player("Hello short person.").also { stage = 1000 } - - 3 -> npc(FacialExpression.OLD_ANGRY1,"I'm called Boot, because when I was very young, ", - "I used to sleep, in a large boot.").also{stage = 11} - } - - 21 -> npc("I don't believe it's exactly easy to get to though...").also { - stage = 1000; - player.questRepository.getQuest("Family Crest").setStage(player, 15) - } - 1000 -> end() - } - return true; - } - - override fun getIds(): IntArray { - return intArrayOf(665) - } - -} +package content.region.misthalin.varrock.quest.familycrest + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable + + +@Initializable +class BootDialogue (player: Player? = null): core.game.dialogue.DialoguePlugin(player){ + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return BootDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = (args[0] as NPC).getShownNPC(player) + val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 + + if(qstage < 14 || qstage > 14){ + npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Hello tall person.") + stage = 1 + } + else{ + npc(core.game.dialogue.FacialExpression.OLD_NORMAL,"Hello tall person.") + stage = 2 + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + + 1-> options("Hello short person.", "Why are you called Boot?").also { stage = 10 } + + 2 -> options("Hello. I'm in search of very high quality gold.", "Hello short person.", "Why are you called Boot?").also { stage= 20} + + 10 ->when(buttonId){ + 1-> player("Hello short person.").also { stage = 1000 } + 2 -> npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"I'm called Boot, because when I was very young, ", + "I used to sleep, in a large boot.").also{stage++} + + } + + 11 -> player("Yeah, great, I didn't want your life story.").also { stage = 1000} + + 20 -> when (buttonId){ + 1 -> npc(core.game.dialogue.FacialExpression.OLD_DEFAULT,"High quality gold eh? Hmmm... " , + "Well, the very best quality gold that I know of " , + "can be found in an underground ruin near Witchaven.").also{stage++} + + 2-> player("Hello short person.").also { stage = 1000 } + + 3 -> npc(core.game.dialogue.FacialExpression.OLD_ANGRY1,"I'm called Boot, because when I was very young, ", + "I used to sleep, in a large boot.").also{stage = 11} + } + + 21 -> npc("I don't believe it's exactly easy to get to though...").also { + stage = 1000; + player.questRepository.getQuest("Family Crest").setStage(player, 15) + } + 1000 -> end() + } + return true; + } + + override fun getIds(): IntArray { + return intArrayOf(665) + } + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CalebDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/CalebDialogue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CalebDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/CalebDialogue.kt index 01f5ffab8..963668177 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CalebDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/CalebDialogue.kt @@ -1,241 +1,241 @@ -package rs09.game.content.quest.members.familycrest - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items - - -@Initializable -class CalebDialogue (player: Player? = null): DialoguePlugin(player) { - - val CREST_PIECE: Item = Item(780) - - override fun newInstance(player: Player?): DialoguePlugin { - return CalebDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = (args[0] as NPC).getShownNPC(player) - val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 - - if (qstage == 100) { - options("Can you change my gauntlets for me?", "Nevermind") - stage = 6000 - return true - } - - when(qstage){ - 0-> npc("Who are you? What are you after?").also{stage = 2} - - 10 -> npc("Who are you? What are you after?").also{stage = 1} - - 11 -> npc("How is the fish collecting going?").also{stage = 300} - - 12 -> player("Where did you say I could find Avan again?").also{stage = 400} - - 13 -> player("Where did you say I could find Avan again?").also{stage = 400} - - 14 -> player("Where did you say I could find Avan again?").also{stage = 400} - - 15 -> player("Where did you say I could find Avan again?").also{stage = 400} - 16 -> player("How are you doing getting the crest pieces?").also{stage = 402} - 17 -> player("How are you doing getting the crest pieces?").also{stage = 402} - 18 -> player("How are you doing getting the crest pieces?").also{stage = 402} - 19 -> player("How are you doing getting the crest pieces?").also{stage = 402} - - - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> options("Are you Caleb Fitzharmon", "Nothing I will be on my way.", "I see you are a chef... could you cook me anything?").also{stage = 3} - 2-> options( "Nothing I will be on my way.", "I see you are a chef... could you cook me anything?").also{stage = 4} - - 3 -> when(buttonId){ - 1 -> npc("Why... yes I am, but I don't believe I know you... " , - "how did you know my name?").also{stage = 5} - 2 -> player("Nothing I will be on my way.").also{stage = 1000} - - 3 -> npc("I would, but I am very busy. I am trying to increase ", - "my renown as one of the world's leading chefs " , - "by preparing a special and unique fish salad.").also{stage = 1000} - } - - 4 -> when(buttonId){ - 1 -> player("Nothing I will be on my way.").also{stage = 1000} - - 2 -> npc("I would, but I am very busy. I am trying to increase ", - "my renown as one of the world's leading chefs " , - "by preparing a special and unique fish salad.").also{stage = 1000} - } - - 5 -> player("I have been sent by your father. ", - "He wishes the Fitzharmon Crest to be restored.").also{stage++} - - 6 -> npc("Ah... well... hmmm... yes... ", - "I do have a piece of it anyway...").also{stage++} - - 7 -> options("Uh... what happened to the rest of it?", "So can I have your bit?").also{stage++} - - 8 -> when(buttonId){ - 1 -> npc("Well... my brothers and I ", - "had a slight disagreement about it...", - " we all wanted to be heir to my fathers' lands, ", - "and we each ended up with a piece of the crest.").also{stage = 100} - 2 -> npc("Well, I am the oldest son, so by the rules of chivalry, ", - "I am most entitled to be the rightful bearer of the crest.").also{stage = 200} - } - - 100 -> npc("None of us wanted to give up our rights to our brothers, ", - "so we didn't want to give up our pieces of the crest, " , - "but none of us wanted to face our father by returning to " , - "him with an incomplete crest... ").also{stage ++} - - 101 -> npc("We each went our separate ways many years past, " , - "none of us seeing our father or willing " , - "to give up our fragments.").also{stage = 7} - - 200 -> player("It's not really much use without " , - "the other fragments is it though?").also{stage++} - - 201 -> npc("Well that is true... " + - "perhaps it is time to put my pride aside... ").also{stage++} - - 202 -> npc( "I'll tell you what: ", - "I'm struggling to complete this fish salad of mine, ").also{stage++} - - 203 -> npc( "so if you will assist me in my search for the ingredients, " , - "then I will let you take my", - "piece as reward for your assistance.").also{stage++} - - 204 -> player("So what ingredients are you missing?").also{stage++} - - 205 -> npc("I require the following cooked fish: " , - "Swordfish, Bass, Tuna, Salmon and Shrimp.").also{stage++} - 206 -> options("Ok, I will get those.", "Why don't you just give me the crest?").also{stage++} - - 207 -> when(buttonId){ - 1 -> npc("You will? It would help me a lot!").also{stage = 1000}.also{ - player.questRepository.getQuest("Family Crest").setStage(player, 11) - } - - 2 -> npc("It's a valuable family heirloom. " , - "I think the least you can do is prove you're worthy " , - "of it before I hand it over.").also{stage = 206} - - } - - 300 -> if(player.inventory.containItems(315, 329, 361, 365, 373)){ - player("Got them all with me.").also{stage++} - - }else{ - player("I didn't manage to get them all yet...").also{stage = 320} - } - - 301 -> sendDialogue("You exchange the fish for Caleb's piece of the crest.").also{stage++}.also{ - player.inventory.remove(Item(315),Item(329), Item(361), Item(365), Item(373)) - player.inventory.add(CREST_PIECE) - player.questRepository.getQuest("Family Crest").setStage(player, 12); - } - - 302 -> options("Uh... what happened to the rest of it?" , "Thank you very much!").also{stage++} - 303 -> when(buttonId){ - 1 -> npc("Well... my brothers and I had a slight disagreement about it... ", - "we all wanted to be the heir of my father's lands ", - "and we each ended up with a piece of the crest.").also{stage++} - 2 -> npc("You're welcome.").also{stage = 1000} - } - - 304 -> npc("None of us wanted to give up our rights to our brothers," , - "so we didn't want to give up our pieces of the crest, " , - "but none of us wanted to face our father " , - "by returning to him with an incomplete crest.").also{stage ++} - - 305 -> npc("We each went our separate ways many years past,", - "none of us seeing our father or willing to", - "give up our fragments.").also{stage++} - - 306 -> player("So do you know where I could find any of your brothers?").also{stage++} - - 307 -> npc("Well, we haven't really kept in touch... ", - "what with the dispute over the crest and all...", - "I did hear from my brother Avan a while ago though..").also{stage++} - - 308 -> npc("He said he was on some kind of search for treasure,", - "or gold, or something out near Al Kharid somewhere. ", - "Avan always had expensive tastes, so you might try", - "asking the gem trader for his wherebouts.").also{stage ++} - - 309 -> npc("Be warned though. Avan is quite greedy, ", - "and you may find he is not prepared to hand over " , - "his crest piece to you as easily as I have.").also{stage = 1000} - - 320 -> npc("Remember, I want the following cooked fish: ", - "Swordfish, Bass, Tuna, Salmon and Shrimp.").also{stage = 1000} - - 400 -> npc("Last I heard he was on some " , - "stupid treasure hunt out in the desert somewhere. " , - "Your best bet is asking around there.").also{stage++} - 401 -> npc("How are you doing getting the crest pieces?").also{stage++} - - 402 -> player("I am still working on it.").also{stage++} - - 403 -> - if(player.inventory.containItems(CREST_PIECE.id, 782) || player.bank.containItems(CREST_PIECE.id, 782)) { - npc("Then why are you wasting your time here?") - stage = 1000; - } - else{ - player("I have lost the fragment that you gave me...") - stage++; - } - 404 -> npc("I have some good news for you then. " , - "One of my customers found this on their travels " , - "and recognised it as mine and returned it to me here.").also{stage++} - 405 -> sendDialogue("Caleb hands over his crest piece to you again.").also{ - stage++ - player.inventory.add(CREST_PIECE) - } - 406 -> npc("I suggest you be less careless in the future. ", - "The crest is extremely valuable, and utterly irreplaceable.").also{stage = 1000} - - 6000 -> when (buttonId) { - 1 -> { - var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 - npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } - } - 2 -> player("Never mind").also{ stage = 1000 } - } - 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } - 6002 -> when (buttonId) { - 1 -> { - stage = 1000 - val givingGauntletsId = Items.COOKING_GAUNTLETS_775 - val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) - if (npcString == "") - { - end() - } - else { - npc(npcString) - } - } - 2 -> end() - } - - 1000 -> end() - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(666) - } - -} +package content.region.misthalin.varrock.quest.familycrest + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items + + +@Initializable +class CalebDialogue (player: Player? = null): core.game.dialogue.DialoguePlugin(player) { + + val CREST_PIECE: Item = Item(780) + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CalebDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = (args[0] as NPC).getShownNPC(player) + val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 + + if (qstage == 100) { + options("Can you change my gauntlets for me?", "Nevermind") + stage = 6000 + return true + } + + when(qstage){ + 0-> npc("Who are you? What are you after?").also{stage = 2} + + 10 -> npc("Who are you? What are you after?").also{stage = 1} + + 11 -> npc("How is the fish collecting going?").also{stage = 300} + + 12 -> player("Where did you say I could find Avan again?").also{stage = 400} + + 13 -> player("Where did you say I could find Avan again?").also{stage = 400} + + 14 -> player("Where did you say I could find Avan again?").also{stage = 400} + + 15 -> player("Where did you say I could find Avan again?").also{stage = 400} + 16 -> player("How are you doing getting the crest pieces?").also{stage = 402} + 17 -> player("How are you doing getting the crest pieces?").also{stage = 402} + 18 -> player("How are you doing getting the crest pieces?").also{stage = 402} + 19 -> player("How are you doing getting the crest pieces?").also{stage = 402} + + + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 1 -> options("Are you Caleb Fitzharmon", "Nothing I will be on my way.", "I see you are a chef... could you cook me anything?").also{stage = 3} + 2-> options( "Nothing I will be on my way.", "I see you are a chef... could you cook me anything?").also{stage = 4} + + 3 -> when(buttonId){ + 1 -> npc("Why... yes I am, but I don't believe I know you... " , + "how did you know my name?").also{stage = 5} + 2 -> player("Nothing I will be on my way.").also{stage = 1000} + + 3 -> npc("I would, but I am very busy. I am trying to increase ", + "my renown as one of the world's leading chefs " , + "by preparing a special and unique fish salad.").also{stage = 1000} + } + + 4 -> when(buttonId){ + 1 -> player("Nothing I will be on my way.").also{stage = 1000} + + 2 -> npc("I would, but I am very busy. I am trying to increase ", + "my renown as one of the world's leading chefs " , + "by preparing a special and unique fish salad.").also{stage = 1000} + } + + 5 -> player("I have been sent by your father. ", + "He wishes the Fitzharmon Crest to be restored.").also{stage++} + + 6 -> npc("Ah... well... hmmm... yes... ", + "I do have a piece of it anyway...").also{stage++} + + 7 -> options("Uh... what happened to the rest of it?", "So can I have your bit?").also{stage++} + + 8 -> when(buttonId){ + 1 -> npc("Well... my brothers and I ", + "had a slight disagreement about it...", + " we all wanted to be heir to my fathers' lands, ", + "and we each ended up with a piece of the crest.").also{stage = 100} + 2 -> npc("Well, I am the oldest son, so by the rules of chivalry, ", + "I am most entitled to be the rightful bearer of the crest.").also{stage = 200} + } + + 100 -> npc("None of us wanted to give up our rights to our brothers, ", + "so we didn't want to give up our pieces of the crest, " , + "but none of us wanted to face our father by returning to " , + "him with an incomplete crest... ").also{stage ++} + + 101 -> npc("We each went our separate ways many years past, " , + "none of us seeing our father or willing " , + "to give up our fragments.").also{stage = 7} + + 200 -> player("It's not really much use without " , + "the other fragments is it though?").also{stage++} + + 201 -> npc("Well that is true... " + + "perhaps it is time to put my pride aside... ").also{stage++} + + 202 -> npc( "I'll tell you what: ", + "I'm struggling to complete this fish salad of mine, ").also{stage++} + + 203 -> npc( "so if you will assist me in my search for the ingredients, " , + "then I will let you take my", + "piece as reward for your assistance.").also{stage++} + + 204 -> player("So what ingredients are you missing?").also{stage++} + + 205 -> npc("I require the following cooked fish: " , + "Swordfish, Bass, Tuna, Salmon and Shrimp.").also{stage++} + 206 -> options("Ok, I will get those.", "Why don't you just give me the crest?").also{stage++} + + 207 -> when(buttonId){ + 1 -> npc("You will? It would help me a lot!").also{stage = 1000}.also{ + player.questRepository.getQuest("Family Crest").setStage(player, 11) + } + + 2 -> npc("It's a valuable family heirloom. " , + "I think the least you can do is prove you're worthy " , + "of it before I hand it over.").also{stage = 206} + + } + + 300 -> if(player.inventory.containItems(315, 329, 361, 365, 373)){ + player("Got them all with me.").also{stage++} + + }else{ + player("I didn't manage to get them all yet...").also{stage = 320} + } + + 301 -> sendDialogue("You exchange the fish for Caleb's piece of the crest.").also{stage++}.also{ + player.inventory.remove(Item(315),Item(329), Item(361), Item(365), Item(373)) + player.inventory.add(CREST_PIECE) + player.questRepository.getQuest("Family Crest").setStage(player, 12); + } + + 302 -> options("Uh... what happened to the rest of it?" , "Thank you very much!").also{stage++} + 303 -> when(buttonId){ + 1 -> npc("Well... my brothers and I had a slight disagreement about it... ", + "we all wanted to be the heir of my father's lands ", + "and we each ended up with a piece of the crest.").also{stage++} + 2 -> npc("You're welcome.").also{stage = 1000} + } + + 304 -> npc("None of us wanted to give up our rights to our brothers," , + "so we didn't want to give up our pieces of the crest, " , + "but none of us wanted to face our father " , + "by returning to him with an incomplete crest.").also{stage ++} + + 305 -> npc("We each went our separate ways many years past,", + "none of us seeing our father or willing to", + "give up our fragments.").also{stage++} + + 306 -> player("So do you know where I could find any of your brothers?").also{stage++} + + 307 -> npc("Well, we haven't really kept in touch... ", + "what with the dispute over the crest and all...", + "I did hear from my brother Avan a while ago though..").also{stage++} + + 308 -> npc("He said he was on some kind of search for treasure,", + "or gold, or something out near Al Kharid somewhere. ", + "Avan always had expensive tastes, so you might try", + "asking the gem trader for his wherebouts.").also{stage ++} + + 309 -> npc("Be warned though. Avan is quite greedy, ", + "and you may find he is not prepared to hand over " , + "his crest piece to you as easily as I have.").also{stage = 1000} + + 320 -> npc("Remember, I want the following cooked fish: ", + "Swordfish, Bass, Tuna, Salmon and Shrimp.").also{stage = 1000} + + 400 -> npc("Last I heard he was on some " , + "stupid treasure hunt out in the desert somewhere. " , + "Your best bet is asking around there.").also{stage++} + 401 -> npc("How are you doing getting the crest pieces?").also{stage++} + + 402 -> player("I am still working on it.").also{stage++} + + 403 -> + if(player.inventory.containItems(CREST_PIECE.id, 782) || player.bank.containItems(CREST_PIECE.id, 782)) { + npc("Then why are you wasting your time here?") + stage = 1000; + } + else{ + player("I have lost the fragment that you gave me...") + stage++; + } + 404 -> npc("I have some good news for you then. " , + "One of my customers found this on their travels " , + "and recognised it as mine and returned it to me here.").also{stage++} + 405 -> sendDialogue("Caleb hands over his crest piece to you again.").also{ + stage++ + player.inventory.add(CREST_PIECE) + } + 406 -> npc("I suggest you be less careless in the future. ", + "The crest is extremely valuable, and utterly irreplaceable.").also{stage = 1000} + + 6000 -> when (buttonId) { + 1 -> { + var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 + npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } + } + 2 -> player("Never mind").also{ stage = 1000 } + } + 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } + 6002 -> when (buttonId) { + 1 -> { + stage = 1000 + val givingGauntletsId = Items.COOKING_GAUNTLETS_775 + val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) + if (npcString == "") + { + end() + } + else { + npc(npcString) + } + } + 2 -> end() + } + + 1000 -> end() + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(666) + } + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonCaveZone.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonCaveZone.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonCaveZone.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonCaveZone.kt index 7bcb3ea09..a7720b9a2 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonCaveZone.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonCaveZone.kt @@ -1,66 +1,66 @@ -package plugin.quest.members.familycrest - - -import core.game.node.entity.Entity -import core.game.node.entity.player.Player -import core.game.world.map.Location -import core.game.world.map.RegionManager -import core.game.world.map.zone.MapZone -import core.game.world.map.zone.ZoneBorders -import core.game.world.map.zone.ZoneBuilder -import core.plugin.Initializable -import core.plugin.Plugin -import rs09.game.content.quest.members.familycrest.ChronozonNPC - - -@Initializable -class ChronozonCaveZone: MapZone("FC ChronozoneZone", true), Plugin { - - val triggers = ArrayList() - var chronozon = ChronozonNPC(667, Location(3086, 9936, 0)) - override fun configure() { - register(ZoneBorders(3082, 9929, 3091, 9940)) - triggers.add(Location.create(3083, 9939)) - triggers.add(Location.create(3084, 9939)) - triggers.add(Location.create(3085, 9939)) - triggers.add(Location.create(3086, 9939)) - triggers.add(Location.create(3087, 9939)) - triggers.add(Location.create(3088, 9939)) - triggers.add(Location.create(3089, 9939)) - triggers.add(Location.create(3090, 9939)) - } - - override fun move(e: Entity?, from: Location?, to: Location?): Boolean { - return super.move(e, from, to) - } - - override fun enter(e: Entity?): Boolean { - if (e != null) { - if (e.isPlayer) { - chronozon = ChronozonNPC(667, Location(3086, 9936, 0)) - var player = e as Player - if (player.questRepository.getQuest("Family Crest").getStage(e) == 19 && !RegionManager.getLocalNpcs( - Location(3086, 9936, 0), - 5 - ).contains(chronozon) - ) { - chronozon.setPlayer(e); - chronozon.isRespawn = false - chronozon.init() - } - } - return true - } - return false - } - override fun newInstance(arg: Unit?): Plugin { - ZoneBuilder.configure(this) - return this - } - - override fun fireEvent(identifier: String?, vararg args: Any?): Any { - return UInt - } - - -} +package plugin.quest.members.familycrest + + +import core.game.node.entity.Entity +import core.game.node.entity.player.Player +import core.game.world.map.Location +import core.game.world.map.RegionManager +import core.game.world.map.zone.MapZone +import core.game.world.map.zone.ZoneBorders +import core.game.world.map.zone.ZoneBuilder +import core.plugin.Initializable +import core.plugin.Plugin +import content.region.misthalin.varrock.quest.familycrest.ChronozonNPC + + +@Initializable +class ChronozonCaveZone: MapZone("FC ChronozoneZone", true), Plugin { + + val triggers = ArrayList() + var chronozon = ChronozonNPC(667, Location(3086, 9936, 0)) + override fun configure() { + register(ZoneBorders(3082, 9929, 3091, 9940)) + triggers.add(Location.create(3083, 9939)) + triggers.add(Location.create(3084, 9939)) + triggers.add(Location.create(3085, 9939)) + triggers.add(Location.create(3086, 9939)) + triggers.add(Location.create(3087, 9939)) + triggers.add(Location.create(3088, 9939)) + triggers.add(Location.create(3089, 9939)) + triggers.add(Location.create(3090, 9939)) + } + + override fun move(e: Entity?, from: Location?, to: Location?): Boolean { + return super.move(e, from, to) + } + + override fun enter(e: Entity?): Boolean { + if (e != null) { + if (e.isPlayer) { + chronozon = ChronozonNPC(667, Location(3086, 9936, 0)) + var player = e as Player + if (player.questRepository.getQuest("Family Crest").getStage(e) == 19 && !RegionManager.getLocalNpcs( + Location(3086, 9936, 0), + 5 + ).contains(chronozon) + ) { + chronozon.setPlayer(e); + chronozon.isRespawn = false + chronozon.init() + } + } + return true + } + return false + } + override fun newInstance(arg: Unit?): Plugin { + ZoneBuilder.configure(this) + return this + } + + override fun fireEvent(identifier: String?, vararg args: Any?): Any { + return UInt + } + + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonNPC.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonNPC.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonNPC.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonNPC.kt index 8d25d0c70..dfd84009d 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/ChronozonNPC.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/ChronozonNPC.kt @@ -1,106 +1,106 @@ -package rs09.game.content.quest.members.familycrest - -import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.npc.AbstractNPC -import core.game.node.entity.player.Player -import core.game.world.map.Location - - - -class ChronozonNPC(id: Int, location: Location?) : AbstractNPC(667, Location(3086, 9936, 0)){ - - lateinit var m_targetPlayer: Player - - var m_amountOfFireDamageTaken: Int = 0 - - var m_amountOfAirDamageTaken: Int = 0 - - var m_amountOfWaterDamageTaken: Int = 0 - - var m_amountOfEarthDamageTaken: Int = 0 - - override fun construct(id: Int, location: Location?, vararg objects: Any?): AbstractNPC { - return ChronozonNPC(id, location) - } - - override fun getIds(): IntArray { - return intArrayOf(667) - } - - override fun handleTickActions() { - super.handleTickActions() - if (!m_targetPlayer.isActive || m_targetPlayer.getLocation().getDistance(getLocation()) > 15) { - clear() - } - - } - - override fun checkImpact(state: BattleState?) { - if (state != null) { - if(m_amountOfAirDamageTaken == 0 || m_amountOfWaterDamageTaken == 0 || - m_amountOfEarthDamageTaken == 0 || m_amountOfFireDamageTaken == 0) { - if(state.style != CombatStyle.MAGIC || state.totalDamage >= skills.lifepoints) { - state.neutralizeHits() - } - } - - if(state.spell != null) { - if(state.spell.spellId == 24) { - if(state.totalDamage > 0 && m_amountOfAirDamageTaken == 0) { - m_targetPlayer.sendMessage("Chronozon weakens...") - } - m_amountOfAirDamageTaken += state.totalDamage - } - - if(state.spell.spellId == 27) { - if(state.totalDamage > 0 && m_amountOfWaterDamageTaken == 0) { - m_targetPlayer.sendMessage("Chronozon weakens...") - } - m_amountOfWaterDamageTaken += state.totalDamage - } - - if(state.spell.spellId == 33) { - if(state.totalDamage > 0 && m_amountOfEarthDamageTaken == 0) { - m_targetPlayer.sendMessage("Chronozon weakens...") - } - m_amountOfEarthDamageTaken += state.totalDamage - } - - if(state.spell.spellId == 38) { - if(state.totalDamage > 0 && m_amountOfFireDamageTaken == 0) { - m_targetPlayer.sendMessage("Chronozon weakens...") - } - m_amountOfFireDamageTaken += state.totalDamage - } - } - } - } - - override fun isAttackable(entity: Entity, style: CombatStyle?, message: Boolean): Boolean { - return entity == m_targetPlayer && - m_targetPlayer.questRepository.getQuest("Family Crest").getStage(m_targetPlayer) == 19 && - super.isAttackable(entity, style, message) - } - - override fun clear() { - super.clear() - } - - override fun finalizeDeath(killer: Entity?) { - if(killer == m_targetPlayer) { - m_targetPlayer.questRepository.getQuest("Family Crest").setStage(m_targetPlayer, 20) - } - clear() - super.finalizeDeath(killer) - - } - - fun setPlayer(player: Player){ - m_targetPlayer = player; - } - -} - -//3086, 9936, 0 +package content.region.misthalin.varrock.quest.familycrest + +import core.game.node.entity.Entity +import core.game.node.entity.combat.BattleState +import core.game.node.entity.combat.CombatStyle +import core.game.node.entity.npc.AbstractNPC +import core.game.node.entity.player.Player +import core.game.world.map.Location + + + +class ChronozonNPC(id: Int, location: Location?) : AbstractNPC(667, Location(3086, 9936, 0)){ + + lateinit var m_targetPlayer: Player + + var m_amountOfFireDamageTaken: Int = 0 + + var m_amountOfAirDamageTaken: Int = 0 + + var m_amountOfWaterDamageTaken: Int = 0 + + var m_amountOfEarthDamageTaken: Int = 0 + + override fun construct(id: Int, location: Location?, vararg objects: Any?): AbstractNPC { + return ChronozonNPC(id, location) + } + + override fun getIds(): IntArray { + return intArrayOf(667) + } + + override fun handleTickActions() { + super.handleTickActions() + if (!m_targetPlayer.isActive || m_targetPlayer.getLocation().getDistance(getLocation()) > 15) { + clear() + } + + } + + override fun checkImpact(state: BattleState?) { + if (state != null) { + if(m_amountOfAirDamageTaken == 0 || m_amountOfWaterDamageTaken == 0 || + m_amountOfEarthDamageTaken == 0 || m_amountOfFireDamageTaken == 0) { + if(state.style != CombatStyle.MAGIC || state.totalDamage >= skills.lifepoints) { + state.neutralizeHits() + } + } + + if(state.spell != null) { + if(state.spell.spellId == 24) { + if(state.totalDamage > 0 && m_amountOfAirDamageTaken == 0) { + m_targetPlayer.sendMessage("Chronozon weakens...") + } + m_amountOfAirDamageTaken += state.totalDamage + } + + if(state.spell.spellId == 27) { + if(state.totalDamage > 0 && m_amountOfWaterDamageTaken == 0) { + m_targetPlayer.sendMessage("Chronozon weakens...") + } + m_amountOfWaterDamageTaken += state.totalDamage + } + + if(state.spell.spellId == 33) { + if(state.totalDamage > 0 && m_amountOfEarthDamageTaken == 0) { + m_targetPlayer.sendMessage("Chronozon weakens...") + } + m_amountOfEarthDamageTaken += state.totalDamage + } + + if(state.spell.spellId == 38) { + if(state.totalDamage > 0 && m_amountOfFireDamageTaken == 0) { + m_targetPlayer.sendMessage("Chronozon weakens...") + } + m_amountOfFireDamageTaken += state.totalDamage + } + } + } + } + + override fun isAttackable(entity: Entity, style: CombatStyle?, message: Boolean): Boolean { + return entity == m_targetPlayer && + m_targetPlayer.questRepository.getQuest("Family Crest").getStage(m_targetPlayer) == 19 && + super.isAttackable(entity, style, message) + } + + override fun clear() { + super.clear() + } + + override fun finalizeDeath(killer: Entity?) { + if(killer == m_targetPlayer) { + m_targetPlayer.questRepository.getQuest("Family Crest").setStage(m_targetPlayer, 20) + } + clear() + super.finalizeDeath(killer) + + } + + fun setPlayer(player: Player){ + m_targetPlayer = player; + } + +} + +//3086, 9936, 0 diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CrestCombiningInteration.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/CrestCombiningInteration.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CrestCombiningInteration.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/CrestCombiningInteration.kt index 70910727d..8a6e40c49 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/CrestCombiningInteration.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/CrestCombiningInteration.kt @@ -1,53 +1,53 @@ -package rs09.game.content.quest.members.familycrest - -import core.game.interaction.NodeUsageEvent -import core.game.interaction.UseWithHandler -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import core.plugin.Plugin - -@Initializable -class CrestCombiningInteraction: UseWithHandler(779, 780,781) { - - val CREST_AVAN: Item = Item(779) - val CREST_CALEB: Item = Item(780) - val CREST_JOHNATHON: Item = Item(781) - val CREST_FULL: Item = Item(782) - - - - override fun newInstance(arg: Any?): Plugin { - addHandler(779, ITEM_TYPE, this) - addHandler(780, ITEM_TYPE, this) - addHandler(781, ITEM_TYPE, this) - return this - } - - override fun handle(event: NodeUsageEvent?): Boolean { - event ?: return false - val used = event.used - return when(used.id){ - 779 -> CraftCrest(event.player, event) - 780 -> CraftCrest(event.player, event) - 781 -> CraftCrest(event.player, event) - else -> false - } - } - - private fun CraftCrest(player: Player, event: NodeUsageEvent): Boolean{ - return when(event.usedWith.id){ - 779,780,781 ->{ - if(player.inventory.containItems(779, 780, 781)) { - player.inventory.remove(CREST_AVAN) - player.inventory.remove(CREST_CALEB) - player.inventory.remove(CREST_JOHNATHON) - player.inventory.add(CREST_FULL) - true - } - false - } - else -> false - } - } -} +package content.region.misthalin.varrock.quest.familycrest + +import core.game.interaction.NodeUsageEvent +import core.game.interaction.UseWithHandler +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import core.plugin.Plugin + +@Initializable +class CrestCombiningInteraction: UseWithHandler(779, 780,781) { + + val CREST_AVAN: Item = Item(779) + val CREST_CALEB: Item = Item(780) + val CREST_JOHNATHON: Item = Item(781) + val CREST_FULL: Item = Item(782) + + + + override fun newInstance(arg: Any?): Plugin { + addHandler(779, ITEM_TYPE, this) + addHandler(780, ITEM_TYPE, this) + addHandler(781, ITEM_TYPE, this) + return this + } + + override fun handle(event: NodeUsageEvent?): Boolean { + event ?: return false + val used = event.used + return when(used.id){ + 779 -> CraftCrest(event.player, event) + 780 -> CraftCrest(event.player, event) + 781 -> CraftCrest(event.player, event) + else -> false + } + } + + private fun CraftCrest(player: Player, event: NodeUsageEvent): Boolean{ + return when(event.usedWith.id){ + 779,780,781 ->{ + if(player.inventory.containItems(779, 780, 781)) { + player.inventory.remove(CREST_AVAN) + player.inventory.remove(CREST_CALEB) + player.inventory.remove(CREST_JOHNATHON) + player.inventory.add(CREST_FULL) + true + } + false + } + else -> false + } + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/DimintheisDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/DimintheisDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt index 64f0e4625..b45b24023 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/DimintheisDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/DimintheisDialogue.kt @@ -1,8 +1,8 @@ -package rs09.game.content.quest.members.familycrest +package content.region.misthalin.varrock.quest.familycrest -import api.* -import core.game.content.dialogue.DialoguePlugin +import core.api.* +import core.game.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -14,8 +14,8 @@ import org.rs09.consts.Items * Handles DimintheisDialogue Dialogue * @author Plex */ -class DimintheisDialogue(player: Player? = null): DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class DimintheisDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return DimintheisDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/FamilyCrest.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/FamilyCrest.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/FamilyCrest.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/FamilyCrest.kt index a1c037a46..9bd882d9c 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/FamilyCrest.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/FamilyCrest.kt @@ -1,133 +1,131 @@ -package rs09.game.content.quest.members.familycrest - - -import api.addItem -import api.setAttribute -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.quest.Quest -import core.game.node.entity.skill.Skills -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items -import rs09.game.system.SystemLogger - -/** -* Represents the "Family Crest" quest. -* @author Plex -*/ - -@Initializable -class FamilyCrest: Quest("Family Crest", 59, 58, 1, 148, 0, 1, 11) { - - override fun newInstance(`object`: Any?): Quest { - return this - } - - override fun drawJournal(player: Player?, stage: Int) { - super.drawJournal(player, stage) - var line = 11 - player?: return - if(stage == 0){ - line(player, "I can start this quest by speaking to !!Dimintheis??", line++) - line(player, "in east Varrock", line++) - line++ - line(player, "To start this quest I require:", line++) - line(player, "!!40 Crafting??", line++, player.skills.getLevel(Skills.CRAFTING) >= 40) - line(player, "!!40 Smithing??", line++, player.skills.getLevel(Skills.SMITHING) >= 40) - line(player, "!!40 Mining??", line++, player.skills.getLevel(Skills.MINING) >= 40) - line(player, "!!59 Magic??", line++, player.skills.getLevel(Skills.MAGIC) >= 59) - } - if(stage >= 10){ - line(player, "I have agreed to restore !!Dimintheis'?? family crest to him.", line++, stage >10) - line(player, "He has asked me to find his son Caleb for him", line++, stage >10) - } - - if(stage >= 11){ - line(player, "I found !!Caleb?? at his house?? in !!Catherby??", line++, stage >11) - line(player, "and told him of my Quest for his father to restore his Family Crest.", line++, stage >11) - line(player, "I gave !!Caleb?? the Swordfish, Bass, Tuna, Salmon and Shrimp he needed for his salad in return for his crest piece", line++, stage >11) - - } - if(stage >=12){ - line(player, "!!Caleb?? has told me to speak to the !!Gem trader??", line++, stage >12) - line(player, " in !!Al-Kharid?? to find his brother.", line++, stage >12) - } - if(stage >=13){ - line(player, "I found !!Avan?? by some gold rocks North of !!Al Kharid??.", line++, stage >13) - } - if(stage >= 14){ - line(player, "!!Avan?? has asked me to find the perfect gold, he has heard of a !!dwarf??", line++, stage >14) - line(player, "who might know where to get some", line++, stage >14) - } - if(stage >=15){ - line(player, "I have spoken to !!Boot?? and he told me that ", line++, stage >15) - line(player, "i can find perfect gold in the !!Witchaven dungeons??", line++, stage >15) - } - if(stage >=16){ - line(player, "!!Avan?? gave me his crest piece in return for a ruby ring ", line++, stage >16) - line(player, "and ruby necklace made of high quality 'perfect gold'.", line++, stage >16) - } - if(stage >= 17){ - line(player, "I found !!Johnathon?? looking very ill at the !!Jolly Boar Inn??.", line++, stage >17) - } - if(stage >= 18){ - line(player, "He soon recovered when I used an antipoison potion on him.", line++, stage >18) - } - if(stage >= 19){ - line(player, "He has told me about the Demon !!Chronozon?? located in the !!Edgeville dungeon??", line++, stage > 19) - } - if(stage >= 20){ - line(player, "I defeated the Demon !!Chronozon?? and obtained !!Johnathon??'s crest piece", line++, stage > 20) - } - if(stage == 100){ - line(player, "I took all three pieces of the crest back to !!Dimintheis?? in !!Varrock??", line++) - line(player, "As a reward !!Dimintheis?? gave me some !!magical gauntlets?? ", line++) - line(player, "that could be enchanted by his sons", line++) - line(player, "to give them bonuses in specific skillss", line++) - line(player, "and would always return to !!Dimintheis??", line++) - line(player, "for me to reclaim if I ever lost them.", line++) - line++ - line(player, "!!QUEST COMPLETE!??.", line++) - } - - - } - - override fun hasRequirements(player: Player?): Boolean { - if (player != null) { - if (player.skills.getLevel(Skills.CRAFTING) < 40) - return false - if (player.skills.getLevel(Skills.SMITHING) < 40) - return false - if(player.skills.getLevel(Skills.MINING) < 40) - return false - if( player.skills.getLevel(Skills.MAGIC) < 59) - return false - return true - } - return false - } - - override fun finish(player: Player?) { - super.finish(player) - player ?: return - var ln = 10 - player.packetDispatch.sendItemZoomOnInterface(Items.COOKING_GAUNTLETS_775,230,277,5) - drawReward(player,"1 Quest Point",ln++) - drawReward(player,"Family Gauntlets",ln++) - drawReward(player,"A choice of special abilities for the gauntlets",ln++) - drawReward(player,"for the gauntlets",ln++) - - if (!addItem(player, Items.FAMILY_GAUNTLETS_778)) { - SystemLogger.logErr(this::class.java, "Failed to give gauntlets to ${player.username} at end of quest, this should not occur due to crest item removal needed to finish quest.") - } - setAttribute(player, "/save:family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) - } - - /*override fun getConfig(player: Player?, stage: Int): IntArray { - if(stage == 100) return intArrayOf(1282, 90) - if(stage > 0) return intArrayOf(1282, 1) - else return intArrayOf(1282, 0) - }*/ -} +package content.region.misthalin.varrock.quest.familycrest + + +import core.api.addItem +import core.api.setAttribute +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.quest.Quest +import core.game.node.entity.skill.Skills +import core.plugin.Initializable +import org.rs09.consts.Items +import core.tools.SystemLogger + +/** +* Represents the "Family Crest" quest. +* @author Plex +*/ + +@Initializable +class FamilyCrest: Quest("Family Crest", 59, 58, 1, 148, 0, 1, 11) { + + override fun newInstance(`object`: Any?): Quest { + return this + } + + override fun drawJournal(player: Player?, stage: Int) { + super.drawJournal(player, stage) + var line = 11 + player?: return + if(stage == 0){ + line(player, "I can start this quest by speaking to !!Dimintheis??", line++) + line(player, "in east Varrock", line++) + line++ + line(player, "To start this quest I require:", line++) + line(player, "!!40 Crafting??", line++, player.skills.getLevel(Skills.CRAFTING) >= 40) + line(player, "!!40 Smithing??", line++, player.skills.getLevel(Skills.SMITHING) >= 40) + line(player, "!!40 Mining??", line++, player.skills.getLevel(Skills.MINING) >= 40) + line(player, "!!59 Magic??", line++, player.skills.getLevel(Skills.MAGIC) >= 59) + } + if(stage >= 10){ + line(player, "I have agreed to restore !!Dimintheis'?? family crest to him.", line++, stage >10) + line(player, "He has asked me to find his son Caleb for him", line++, stage >10) + } + + if(stage >= 11){ + line(player, "I found !!Caleb?? at his house?? in !!Catherby??", line++, stage >11) + line(player, "and told him of my Quest for his father to restore his Family Crest.", line++, stage >11) + line(player, "I gave !!Caleb?? the Swordfish, Bass, Tuna, Salmon and Shrimp he needed for his salad in return for his crest piece", line++, stage >11) + + } + if(stage >=12){ + line(player, "!!Caleb?? has told me to speak to the !!Gem trader??", line++, stage >12) + line(player, " in !!Al-Kharid?? to find his brother.", line++, stage >12) + } + if(stage >=13){ + line(player, "I found !!Avan?? by some gold rocks North of !!Al Kharid??.", line++, stage >13) + } + if(stage >= 14){ + line(player, "!!Avan?? has asked me to find the perfect gold, he has heard of a !!dwarf??", line++, stage >14) + line(player, "who might know where to get some", line++, stage >14) + } + if(stage >=15){ + line(player, "I have spoken to !!Boot?? and he told me that ", line++, stage >15) + line(player, "i can find perfect gold in the !!Witchaven dungeons??", line++, stage >15) + } + if(stage >=16){ + line(player, "!!Avan?? gave me his crest piece in return for a ruby ring ", line++, stage >16) + line(player, "and ruby necklace made of high quality 'perfect gold'.", line++, stage >16) + } + if(stage >= 17){ + line(player, "I found !!Johnathon?? looking very ill at the !!Jolly Boar Inn??.", line++, stage >17) + } + if(stage >= 18){ + line(player, "He soon recovered when I used an antipoison potion on him.", line++, stage >18) + } + if(stage >= 19){ + line(player, "He has told me about the Demon !!Chronozon?? located in the !!Edgeville dungeon??", line++, stage > 19) + } + if(stage >= 20){ + line(player, "I defeated the Demon !!Chronozon?? and obtained !!Johnathon??'s crest piece", line++, stage > 20) + } + if(stage == 100){ + line(player, "I took all three pieces of the crest back to !!Dimintheis?? in !!Varrock??", line++) + line(player, "As a reward !!Dimintheis?? gave me some !!magical gauntlets?? ", line++) + line(player, "that could be enchanted by his sons", line++) + line(player, "to give them bonuses in specific skillss", line++) + line(player, "and would always return to !!Dimintheis??", line++) + line(player, "for me to reclaim if I ever lost them.", line++) + line++ + line(player, "!!QUEST COMPLETE!??.", line++) + } + + + } + + override fun hasRequirements(player: Player?): Boolean { + if (player != null) { + if (player.skills.getLevel(Skills.CRAFTING) < 40) + return false + if (player.skills.getLevel(Skills.SMITHING) < 40) + return false + if(player.skills.getLevel(Skills.MINING) < 40) + return false + if( player.skills.getLevel(Skills.MAGIC) < 59) + return false + return true + } + return false + } + + override fun finish(player: Player?) { + super.finish(player) + player ?: return + var ln = 10 + player.packetDispatch.sendItemZoomOnInterface(Items.COOKING_GAUNTLETS_775,230,277,5) + drawReward(player,"1 Quest Point",ln++) + drawReward(player,"Family Gauntlets",ln++) + drawReward(player,"A choice of special abilities for the gauntlets",ln++) + drawReward(player,"for the gauntlets",ln++) + + if (!addItem(player, Items.FAMILY_GAUNTLETS_778)) { + SystemLogger.logErr(this::class.java, "Failed to give gauntlets to ${player.username} at end of quest, this should not occur due to crest item removal needed to finish quest.") + } + setAttribute(player, "/save:family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) + } + + /*override fun getConfig(player: Player?, stage: Int): IntArray { + if(stage == 100) return intArrayOf(1282, 90) + if(stage > 0) return intArrayOf(1282, 1) + else return intArrayOf(1282, 0) + }*/ +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonAntiPoisonInteraction.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonAntiPoisonInteraction.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonAntiPoisonInteraction.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonAntiPoisonInteraction.kt index 14c74f287..29e5a615c 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonAntiPoisonInteraction.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonAntiPoisonInteraction.kt @@ -1,33 +1,33 @@ -package rs09.game.content.quest.members.familycrest - - -import api.* -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType - -class JohnathonAntiPosionInteraction: InteractionListener { - override fun defineListeners() { - val poisons = intArrayOf(Items.ANTIPOISON4_2446, Items.ANTIPOISON3_175, Items.ANTIPOISON2_177, Items.ANTIPOISON1_179) - - onUseWith(IntType.NPC, poisons, NPCs.JOHNATHON_668){player, used, with -> - val npc = with.asNpc() - val antip = used.asItem() - val stage = questStage(player, "Family Crest") - - val index = poisons.indexOf(used.id) - val returnItem = if(index + 1 == poisons.size) Items.VIAL_229 else poisons[index + 1] - - if(stage == 17 && removeItem(player, antip)){ - addItem(player, returnItem) - setQuestStage(player, "Family Crest", 18) - openDialogue(player, NPCs.JOHNATHON_668, npc) - } else { - sendMessage(player, "Nothing interesting happens.") - } - - return@onUseWith true - } - } +package content.region.misthalin.varrock.quest.familycrest + + +import core.api.* +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.game.interaction.InteractionListener +import core.game.interaction.IntType + +class JohnathonAntiPosionInteraction: InteractionListener { + override fun defineListeners() { + val poisons = intArrayOf(Items.ANTIPOISON4_2446, Items.ANTIPOISON3_175, Items.ANTIPOISON2_177, Items.ANTIPOISON1_179) + + onUseWith(IntType.NPC, poisons, NPCs.JOHNATHON_668){ player, used, with -> + val npc = with.asNpc() + val antip = used.asItem() + val stage = questStage(player, "Family Crest") + + val index = poisons.indexOf(used.id) + val returnItem = if(index + 1 == poisons.size) Items.VIAL_229 else poisons[index + 1] + + if(stage == 17 && removeItem(player, antip)){ + addItem(player, returnItem) + setQuestStage(player, "Family Crest", 18) + openDialogue(player, NPCs.JOHNATHON_668, npc) + } else { + sendMessage(player, "Nothing interesting happens.") + } + + return@onUseWith true + } + } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonDialogue.kt index 15615a2f3..80dbfae90 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/JohnathonDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/JohnathonDialogue.kt @@ -1,127 +1,127 @@ -package rs09.game.content.quest.members.familycrest - - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -class JohnathonDialogue(player: Player? = null): DialoguePlugin(player) { - val CREST_PIECE: Item = Item(781) - override fun newInstance(player: Player?): DialoguePlugin { - return JohnathonDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = (args[0] as NPC).getShownNPC(player) - val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 - - if (qstage == 100) { - options("Can you change my gauntlets for me?", "Nevermind") - stage = 6000 - return true - } - - if(qstage < 16){ - npc("I don't feel so well... maybe we can talk later") - stage = 1000; - } - else{ - when(qstage){ - 16 -> player("Greetings. Would you happen to be Johnathon Fitzharmon?").also { stage = 1} - 17 -> npc("What... what did that spider... DO to me? " , - "I... I feel so weak... " , - "I can hardly... think at all...").also { stage = 1000 } - 18 -> sendDialogue("You use the potion on Johnathon").also { stage = 100 } - 19 -> player("I'm trying to kill this demon Chronozon that you mentioned...").also { stage = 200 } - } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - - 1 -> npc("That... I am...").also { stage++ } - 2 -> player("I am here to retrieve your fragment " , - "of the Fitzharmon family crest.").also { stage++ } - 3 -> npc("The... poison... it is all... " , - "too much... My head... " , - "will not... stop spinning...").also { stage++ } - 4 -> sendDialogue("Sweat is pouring down Jonathons' face.").also { stage = 1000 - player.questRepository.getQuest("Family Crest").setStage(player, 17); - } - - 100 -> npc("Ooooh... thank you... Wow! " , - "I'm feeling a lot better now! " , - "That potion really seems to have done the trick!").also{stage++} - 101 -> npc("How can I reward you?").also { stage++ } - - 102 -> player("I've come here for your piece of the Fitzharmon family crest.").also { stage++} - - 103 -> npc("You have? Unfortunately I don't have it any more... " , - "in my attempts to slay the fiendish Chronozon, the blood demon, " , - "I lost a lot of equipment in our last battle when he " , - "bested me and forced me away from his den. He probably still has it now.").also{ - stage = 200 - player.questRepository.getQuest("Family Crest").setStage(player, 19) - } - - 200 -> options("So is this Chronozon hard to defeat?", "Where can I find Chronozon?", "So how did you end up getting poisoned?", "I will be on my way now.").also{stage++} - 201 -> when(buttonId){ - 1-> npc("Well... you will have to be a skilled Mage to defeat him, " , - "and my powers are not good enough yet. " , - "You will need to hit him once with each of the four " , - "elemental spells of death before he will be defeated.").also{stage = 1000} - - 2->npc("The fiend has made his lair in Edgeville Dungeon. " , - "When you come in down the ladder in Edgeville, follow" , - "the corridor north until you reach a room with skeletons. " , - "That passageway to the left will lead you to him.").also{stage = 1000} - - 3 -> npc("Those accursed poison spiders that surround " , - "the entrance to Chronozon's lair... " , - "I must have taken a nip from one of them " , - "as I attempted to make my escape.").also{stage = 1000} - - 4 -> npc("My thanks for the assistance adventure").also{stage = 1000} - - } - 6000 -> when (buttonId) { - 1 -> { - var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 - npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } - } - 2 -> player("Never mind").also{ stage = 1000 } - } - 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } - 6002 -> when (buttonId) { - 1 -> { - stage = 1000 - val givingGauntletsId = Items.CHAOS_GAUNTLETS_777 - val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) - if (npcString == "") - { - end() - } - else { - npc(npcString) - } - } - 2 -> end() - } - - 1000 -> end() - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(668) - } - -} +package content.region.misthalin.varrock.quest.familycrest + + +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items + +@Initializable +class JohnathonDialogue(player: Player? = null): core.game.dialogue.DialoguePlugin(player) { + val CREST_PIECE: Item = Item(781) + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return JohnathonDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = (args[0] as NPC).getShownNPC(player) + val qstage = player?.questRepository?.getStage("Family Crest") ?: -1 + + if (qstage == 100) { + options("Can you change my gauntlets for me?", "Nevermind") + stage = 6000 + return true + } + + if(qstage < 16){ + npc("I don't feel so well... maybe we can talk later") + stage = 1000; + } + else{ + when(qstage){ + 16 -> player("Greetings. Would you happen to be Johnathon Fitzharmon?").also { stage = 1} + 17 -> npc("What... what did that spider... DO to me? " , + "I... I feel so weak... " , + "I can hardly... think at all...").also { stage = 1000 } + 18 -> sendDialogue("You use the potion on Johnathon").also { stage = 100 } + 19 -> player("I'm trying to kill this demon Chronozon that you mentioned...").also { stage = 200 } + } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage) { + + 1 -> npc("That... I am...").also { stage++ } + 2 -> player("I am here to retrieve your fragment " , + "of the Fitzharmon family crest.").also { stage++ } + 3 -> npc("The... poison... it is all... " , + "too much... My head... " , + "will not... stop spinning...").also { stage++ } + 4 -> sendDialogue("Sweat is pouring down Jonathons' face.").also { stage = 1000 + player.questRepository.getQuest("Family Crest").setStage(player, 17); + } + + 100 -> npc("Ooooh... thank you... Wow! " , + "I'm feeling a lot better now! " , + "That potion really seems to have done the trick!").also{stage++} + 101 -> npc("How can I reward you?").also { stage++ } + + 102 -> player("I've come here for your piece of the Fitzharmon family crest.").also { stage++} + + 103 -> npc("You have? Unfortunately I don't have it any more... " , + "in my attempts to slay the fiendish Chronozon, the blood demon, " , + "I lost a lot of equipment in our last battle when he " , + "bested me and forced me away from his den. He probably still has it now.").also{ + stage = 200 + player.questRepository.getQuest("Family Crest").setStage(player, 19) + } + + 200 -> options("So is this Chronozon hard to defeat?", "Where can I find Chronozon?", "So how did you end up getting poisoned?", "I will be on my way now.").also{stage++} + 201 -> when(buttonId){ + 1-> npc("Well... you will have to be a skilled Mage to defeat him, " , + "and my powers are not good enough yet. " , + "You will need to hit him once with each of the four " , + "elemental spells of death before he will be defeated.").also{stage = 1000} + + 2->npc("The fiend has made his lair in Edgeville Dungeon. " , + "When you come in down the ladder in Edgeville, follow" , + "the corridor north until you reach a room with skeletons. " , + "That passageway to the left will lead you to him.").also{stage = 1000} + + 3 -> npc("Those accursed poison spiders that surround " , + "the entrance to Chronozon's lair... " , + "I must have taken a nip from one of them " , + "as I attempted to make my escape.").also{stage = 1000} + + 4 -> npc("My thanks for the assistance adventure").also{stage = 1000} + + } + 6000 -> when (buttonId) { + 1 -> { + var freeThisTime = getAttribute(player, "family-crest:gauntlets", Items.FAMILY_GAUNTLETS_778) == Items.FAMILY_GAUNTLETS_778 + npc("Yes certainly, though it will cost you 25,000 coins" + if (freeThisTime) " next time." else ".").also { stage = 6001 } + } + 2 -> player("Never mind").also{ stage = 1000 } + } + 6001 -> options("Great thanks!", "No that's okay thanks.").also{ stage++ } + 6002 -> when (buttonId) { + 1 -> { + stage = 1000 + val givingGauntletsId = Items.CHAOS_GAUNTLETS_777 + val npcString = SwapGauntletsHelper.swapGauntlets(player, givingGauntletsId) + if (npcString == "") + { + end() + } + else { + npc(npcString) + } + } + 2 -> end() + } + + 1000 -> end() + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(668) + } + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectGoldSmeltingHandler.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectGoldSmeltingHandler.kt similarity index 82% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectGoldSmeltingHandler.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectGoldSmeltingHandler.kt index e98608943..4e66dd5e5 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectGoldSmeltingHandler.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectGoldSmeltingHandler.kt @@ -1,48 +1,48 @@ -package rs09.game.content.quest.members.familycrest - - -import api.addItem -import api.animate; -import api.removeItem -import core.game.interaction.NodeUsageEvent -import core.game.interaction.UseWithHandler -import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.smithing.FurnaceOptionPlugin -import core.game.system.task.Pulse -import core.plugin.Initializable -import core.plugin.Plugin -import org.rs09.consts.Items -import rs09.game.world.GameWorld.Pulser - - -@Initializable -class PerfectGoldSmeltingHandler : UseWithHandler(Items.PERFECT_GOLD_ORE_446){ - - - private val furnaceIDs: IntArray = FurnaceOptionPlugin.SmeltUseWithHandler.furnaceIDS; - - override fun newInstance(arg: Any?): Plugin { - for(furnace in furnaceIDs){ - addHandler(furnace, OBJECT_TYPE, this) - } - return this - } - - override fun handle(event: NodeUsageEvent?): Boolean { - - event ?: return false - val player = event.player - - Pulser.submit(object : Pulse(2, player) { - override fun pulse(): Boolean { - if(removeItem(player,Items.PERFECT_GOLD_ORE_446)){ - animate(player,3243) - addItem(player,Items.PERFECT_GOLD_BAR_2365) - player.skills.addExperience(Skills.SMITHING,22.5) - } - return true - } - }) - return true - } -} +package content.region.misthalin.varrock.quest.familycrest + + +import core.api.addItem +import core.api.animate; +import core.api.removeItem +import core.game.interaction.NodeUsageEvent +import core.game.interaction.UseWithHandler +import core.game.node.entity.skill.Skills +import content.global.skill.smithing.FurnaceOptionPlugin +import core.game.system.task.Pulse +import core.plugin.Initializable +import core.plugin.Plugin +import org.rs09.consts.Items +import core.game.world.GameWorld.Pulser + + +@Initializable +class PerfectGoldSmeltingHandler : UseWithHandler(Items.PERFECT_GOLD_ORE_446){ + + + private val furnaceIDs: IntArray = FurnaceOptionPlugin.SmeltUseWithHandler.furnaceIDS; + + override fun newInstance(arg: Any?): Plugin { + for(furnace in furnaceIDs){ + addHandler(furnace, OBJECT_TYPE, this) + } + return this + } + + override fun handle(event: NodeUsageEvent?): Boolean { + + event ?: return false + val player = event.player + + Pulser.submit(object : Pulse(2, player) { + override fun pulse(): Boolean { + if(removeItem(player,Items.PERFECT_GOLD_ORE_446)){ + animate(player,3243) + addItem(player,Items.PERFECT_GOLD_BAR_2365) + player.skills.addExperience(Skills.SMITHING,22.5) + } + return true + } + }) + return true + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryHandler.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryHandler.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryHandler.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryHandler.kt index aaa7c69a4..49843aaec 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryHandler.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryHandler.kt @@ -1,64 +1,64 @@ -package rs09.game.content.quest.members.familycrest - -import core.game.content.dialogue.DialogueInterpreter -import core.game.content.dialogue.DialoguePlugin -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable - - -@Initializable -class PerfectJewelryHandler (player: Player? = null): DialoguePlugin(player){ - - override fun newInstance(player: Player?): DialoguePlugin { - return PerfectJewelryHandler(player) - } - - override fun open(vararg args: Any?): Boolean { - println(player.name) - if(player.inventory.containItems(2365, 1603)){ - options("Craft perfect ruby ring", "Craft perfect ruby necklace") - stage = 1; - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - - when(stage){ - 1-> when(buttonId){ - - 1-> if(player.inventory.containItems(2365, 1603,1592)) { - player.inventory.remove(Item(2365), Item(1603)) - player.inventory.add(Item(773)) - sendDialogue("You made a perfect gold ring.") - stage = 1000 - } - else{ - sendDialogue("You do not have everything to make this item.") - stage = 1000; - } - - 2-> if(player.inventory.containItems(2365, 1603) && player.inventory.containItems(1597)){ - player.inventory.remove(Item(2365), Item(1603)) - player.inventory.add(Item(774)) - sendDialogue("You made a perfect gold necklace.") - stage = 1000 - } - else{ - sendDialogue("You do not have everything to make this item.") - stage = 1000; - } - } - - 1000 -> end() - } - - return true - } - - override fun getIds(): IntArray { - return intArrayOf(DialogueInterpreter.getDialogueKey("perfect-jewelry")) - } - -} +package content.region.misthalin.varrock.quest.familycrest + +import core.game.dialogue.DialogueInterpreter +import core.game.dialogue.DialoguePlugin +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable + + +@Initializable +class PerfectJewelryHandler (player: Player? = null): core.game.dialogue.DialoguePlugin(player){ + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return PerfectJewelryHandler(player) + } + + override fun open(vararg args: Any?): Boolean { + println(player.name) + if(player.inventory.containItems(2365, 1603)){ + options("Craft perfect ruby ring", "Craft perfect ruby necklace") + stage = 1; + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + + when(stage){ + 1-> when(buttonId){ + + 1-> if(player.inventory.containItems(2365, 1603,1592)) { + player.inventory.remove(Item(2365), Item(1603)) + player.inventory.add(Item(773)) + sendDialogue("You made a perfect gold ring.") + stage = 1000 + } + else{ + sendDialogue("You do not have everything to make this item.") + stage = 1000; + } + + 2-> if(player.inventory.containItems(2365, 1603) && player.inventory.containItems(1597)){ + player.inventory.remove(Item(2365), Item(1603)) + player.inventory.add(Item(774)) + sendDialogue("You made a perfect gold necklace.") + stage = 1000 + } + else{ + sendDialogue("You do not have everything to make this item.") + stage = 1000; + } + } + + 1000 -> end() + } + + return true + } + + override fun getIds(): IntArray { + return intArrayOf(core.game.dialogue.DialogueInterpreter.getDialogueKey("perfect-jewelry")) + } + +} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryOnUseHandler.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryOnUseHandler.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryOnUseHandler.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryOnUseHandler.kt index 40652dc01..65cac212f 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/PerfectJewelryOnUseHandler.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/PerfectJewelryOnUseHandler.kt @@ -1,28 +1,28 @@ -package rs09.game.content.quest.members.familycrest - -import org.rs09.consts.Items - -import core.game.interaction.NodeUsageEvent -import core.game.interaction.UseWithHandler -import core.plugin.Initializable -import core.plugin.Plugin - -@Initializable -class PerfectJewelryOnUseHandler : UseWithHandler(Items.PERFECT_GOLD_BAR_2365){ - val furnaceIDs = listOf(2349, 2351, 2353, 2359, 2361, 2363, 2366, 2368, 9467, 11286, 1540, 11710, 11712, 11714, 11666, 11686, 11688, 11692) - override fun newInstance(arg: Any?): Plugin { - for(furnaces in furnaceIDs){ - addHandler(furnaces, OBJECT_TYPE, this) - } - return this - } - - override fun handle(event: NodeUsageEvent?): Boolean { - event ?: return false - event.player.dialogueInterpreter.open("perfect-jewelry"); - return true - } - -} - -//event.getPlayer().getDialogueInterpreter().open("perfect-jewelry"); +package content.region.misthalin.varrock.quest.familycrest + +import org.rs09.consts.Items + +import core.game.interaction.NodeUsageEvent +import core.game.interaction.UseWithHandler +import core.plugin.Initializable +import core.plugin.Plugin + +@Initializable +class PerfectJewelryOnUseHandler : UseWithHandler(Items.PERFECT_GOLD_BAR_2365){ + val furnaceIDs = listOf(2349, 2351, 2353, 2359, 2361, 2363, 2366, 2368, 9467, 11286, 1540, 11710, 11712, 11714, 11666, 11686, 11688, 11692) + override fun newInstance(arg: Any?): Plugin { + for(furnaces in furnaceIDs){ + addHandler(furnaces, OBJECT_TYPE, this) + } + return this + } + + override fun handle(event: NodeUsageEvent?): Boolean { + event ?: return false + event.player.dialogueInterpreter.open("perfect-jewelry"); + return true + } + +} + +//event.getPlayer().getDialogueInterpreter().open("perfect-jewelry"); diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/SwapGauntletsHelper.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/SwapGauntletsHelper.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/SwapGauntletsHelper.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/SwapGauntletsHelper.kt index 4c6e2919a..ebe4a8802 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/SwapGauntletsHelper.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/SwapGauntletsHelper.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.familycrest +package content.region.misthalin.varrock.quest.familycrest -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.item.Item import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/WitchavenLeverInteraction.kt b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/WitchavenLeverInteraction.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/WitchavenLeverInteraction.kt rename to Server/src/main/content/region/misthalin/varrock/quest/familycrest/WitchavenLeverInteraction.kt index 99297d6fb..8dcf831a1 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/familycrest/WitchavenLeverInteraction.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/familycrest/WitchavenLeverInteraction.kt @@ -1,19 +1,16 @@ -package rs09.game.content.quest.members.familycrest +package content.region.misthalin.varrock.quest.familycrest import core.game.node.entity.impl.ForceMovement import core.game.node.entity.player.Player import core.game.node.scenery.Scenery import core.game.world.map.Direction -import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation -import core.net.packet.PacketRepository -import core.net.packet.context.BuildSceneryContext import core.net.packet.out.ClearScenery import core.net.packet.out.ConstructScenery import core.net.packet.out.UpdateAreaPosition; -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType fun doDoor(player: Player, scenery: Scenery) { val d = if(scenery.rotation == 0 || scenery.rotation == 3) { -1 } else { 0 } diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/gertrudes_cat/FluffNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/FluffNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/quest/gertrudes_cat/FluffNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/gertrude/FluffNPC.java index a5309ab90..7fa4028e2 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/gertrudes_cat/FluffNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/FluffNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.quest.gertrudes_cat; +package content.region.misthalin.varrock.quest.gertrude; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/GertrudesCat.java b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/GertrudesCat.java rename to Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java index fbc2cfa11..0204158ff 100644 --- a/Server/src/main/java/core/game/content/quest/members/GertrudesCat.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/GertrudesCat.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members; +package content.region.misthalin.varrock.quest.gertrude; import core.plugin.Initializable; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/LumberKittenNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/LumberKittenNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/LumberKittenNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/gertrude/LumberKittenNPC.java index 5d8d9d99e..9b1714bd4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/LumberKittenNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/gertrude/LumberKittenNPC.java @@ -1,9 +1,9 @@ -package core.game.node.entity.npc.other; +package content.region.misthalin.varrock.quest.gertrude; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietCutscenePlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietCutscenePlugin.java index 633825813..da943faf8 100644 --- a/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietCutscenePlugin.java @@ -1,7 +1,7 @@ -package core.game.content.cutscene; +package content.region.misthalin.varrock.quest.romeo; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; @@ -14,7 +14,7 @@ import core.net.packet.context.CameraContext; import core.net.packet.context.CameraContext.CameraType; import core.net.packet.out.CameraViewPacket; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the romeo and juliet cutscene plugin. diff --git a/Server/src/main/java/core/game/content/cutscene/JulietDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/cutscene/JulietDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietDialogue.java index e78cd5112..fb31d8d92 100644 --- a/Server/src/main/java/core/game/content/cutscene/JulietDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.cutscene; +package content.region.misthalin.varrock.quest.romeo; -import core.game.content.activity.ActivityManager; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.activity.ActivityManager; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; @@ -10,10 +10,10 @@ import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.path.Path; import core.game.world.map.path.Pathfinder; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/JulietNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/JulietNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietNPC.java index 55d9d1867..549692660 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/JulietNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/JulietNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.quest.romeo__juliet; +package content.region.misthalin.varrock.quest.romeo; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/cutscene/RJCutscenePlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RJCutscenePlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/cutscene/RJCutscenePlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/RJCutscenePlugin.java index ed94f6b8a..aeb47a9d0 100644 --- a/Server/src/main/java/core/game/content/cutscene/RJCutscenePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RJCutscenePlugin.java @@ -1,16 +1,16 @@ -package core.game.content.cutscene; +package content.region.misthalin.varrock.quest.romeo; -import core.game.content.activity.ActivityManager; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.activity.ActivityManager; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/quest/free/RomeoJuliet.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoJuliet.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/RomeoJuliet.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoJuliet.java index 55d13d11c..744214e26 100644 --- a/Server/src/main/java/core/game/content/quest/free/RomeoJuliet.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoJuliet.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.misthalin.varrock.quest.romeo; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/RomeoNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/RomeoNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoNPC.java index bcf29ec6d..e520a3ce9 100644 --- a/Server/src/main/java/core/game/node/entity/npc/quest/romeo__juliet/RomeoNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.quest.romeo__juliet; +package content.region.misthalin.varrock.quest.romeo; import core.game.node.entity.npc.AbstractNPC; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoQuestPlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoQuestPlugin.java index 8740ef9a3..a95cc82e8 100644 --- a/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/romeo/RomeoQuestPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.varrock.quest.romeo; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CertificatePlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CertificatePlugin.java similarity index 94% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/CertificatePlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CertificatePlugin.java index 8579c012c..98c11bfda 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CertificatePlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CertificatePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CharlieTheTrampDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CharlieTheTrampDialogue.kt new file mode 100644 index 000000000..5b6d6ba3f --- /dev/null +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CharlieTheTrampDialogue.kt @@ -0,0 +1,115 @@ +package content.region.misthalin.varrock.quest.shieldofarrav + +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.item.Item +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class CharlieTheTrampDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + var q = "Shield of Arrav" + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Spare some change guv?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Who are you?", "Sorry, I haven't got any.", "Go get a job!", "Ok. Here you go.", "Is there anything down this alleyway?").also { stage++ } + + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "Who are you?").also { stage = 50 } + 2 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, I haven't got any.").also { stage = 100 } + 3 -> player(core.game.dialogue.FacialExpression.ANNOYED, "Go get a job!").also { stage = 150 } + 4 -> player(core.game.dialogue.FacialExpression.ANNOYED, "Ok. Here you go.").also { stage = 200 } + 5 -> player(core.game.dialogue.FacialExpression.ANNOYED, "Is there anything down this alleyway?").also { stage = 250 } + } + + 50 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Charles. Charles E. Trampin' at your service. Now, about that change you were going to give me...").also { stage = 0 } + 100 -> npc(core.game.dialogue.FacialExpression.SAD, "Thanks anyways!").also { stage = 99 } + 150 -> npc(core.game.dialogue.FacialExpression.ANNOYED, "You startin? I hope your nose falls off!").also { stage = 99 } + 200 -> { + if (player.inventory.contains(Items.COINS_995, 1)) { + player.inventory.remove(Item(Items.COINS_995, 1)).also { end() } + } else { + sendDialogue("You need one coin to give away.").also { stage = 99 } + } + } + 201 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Hey, thanks a lot!").also { stage++ } + 202 -> options("No problem.", "Don't I get some sort of quest hint or something now?").also { stage++ } + 203 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No problem.").also { stage = 99 } + 2 -> player(core.game.dialogue.FacialExpression.HALF_THINKING, "So... don't I get some sort of quest hint or something now?").also { stage = 220 } + } + 220 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "Huh? What do you mean? That wasn't why I asked you for money.").also { stage++ } + 221 -> npcl(core.game.dialogue.FacialExpression.SAD, "I just need to eat...").also { stage = 99 } + 250 -> npcl(core.game.dialogue.FacialExpression.AFRAID,"The ruthless and notorious criminal gang known as the Black Arm Gang have their headquarters down there.").also { stage++ } + 251 -> options("Thank you for the warning!", "Do you think they would let me join?").also { stage++ } + 252 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY,"Thanks for the warning!").also { stage = 270 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "Do you think they would let me join?").also { stage = 280 } + } + 270 -> npc(core.game.dialogue.FacialExpression.HAPPY, "Don't worry about it.").also { stage = 99 } + + 280 -> if (!ShieldofArrav.isBlackArm(player) && !ShieldofArrav.isPhoenix(player)) { + npcl(core.game.dialogue.FacialExpression.SUSPICIOUS, "You never know. You'll find a lady down there called Katrine. Speak to her.").also { stage = 282 } + } else if (ShieldofArrav.isBlackArm(player)) { + npcl(core.game.dialogue.FacialExpression.SUSPICIOUS, "I was under the impression you were already a member...").also { stage = 99 } + } else { + npcl(core.game.dialogue.FacialExpression.ANNOYED, "No. You're a collaborator with the Phoenix Gang. There's no way they'll let you join now.").also { stage++ } + } + + 282 -> npc(core.game.dialogue.FacialExpression.AFRAID, "But don't upset her, she's pretty dangerous.").also { stage++ } + 283 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I also heard that Reldo the librarian knows more about them, go talk to him.").also { stage++ } + 284 -> { + if (!player.questRepository.hasStarted(q)) { + player.questRepository.getQuest(q).start(player) + player.questRepository.getQuest(q).setStage(player,50) + } else if (!ShieldofArrav.isBlackArm(player) && !ShieldofArrav.isPhoenix(player)) { + player.questRepository.getQuest(q).setStage(player, 50) + } + end() + } + + 291 -> options("How did you know I was in the Phoenix Gang?", "Any ideas how I could get in there then?").also { stage++ } + 292 -> when(buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.SUSPICIOUS, "How did you know I was in the Phoenix Gang?").also { stage = 300 } + 2 -> stage = 290 + } + + 300 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "In my current profession I spend a lot of time on the streets and you hear these sorta things sometimes.").also { stage++ } + 301 -> player(core.game.dialogue.FacialExpression.ASKING, "Any ideas how I could get in there then?").also { stage++ } + 302 -> npc(core.game.dialogue.FacialExpression.THINKING, "Hmmm. I dunno.").also { stage++ } + 303 -> npcl(core.game.dialogue.FacialExpression.THINKING, "Your best bet would probably be to find someone else... Someone who ISN'T a member of the Phoenix Gang, and get them to infiltrate the ranks of the Black Arm Gang for you.").also { stage++ } + 304 -> npc(core.game.dialogue.FacialExpression.THINKING, "If you find someone like that, tell 'em to come to me first.").also { stage++ } + + 305 -> options("Ok. Good plan!", "Like who?").also { stage++ } + 306 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Ok. Good plan!").also { stage = 310 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "Like who?").also { stage = 320 } + } + + 310 -> npc(core.game.dialogue.FacialExpression.LAUGH, "I'm not just a pretty face!").also { stage = 99 } + 320 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "There's plenty of other adventurers about besides yourself. I'm sure if you asked one of them nicely they would help you.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return CharlieTheTrampDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.CHARLIE_THE_TRAMP_641) + } +} diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenDialogue.java similarity index 82% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenDialogue.java index 8ce75d391..639679253 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenDialogue.java @@ -1,14 +1,12 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.quest.free.shieldofarrav.CuratorHaigHalenSOADialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.item.Item; -import rs09.game.content.dialogue.IfTopic; -import rs09.game.content.quest.members.thegolem.CuratorHaigHalenGolemDialogue; +import core.game.dialogue.IfTopic; +import content.region.desert.quest.thegolem.CuratorHaigHalenGolemDialogue; /** * Represents the curator haig halen dialogue. diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenSOADialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenSOADialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenSOADialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenSOADialogue.java index 822691d69..a13fb96f7 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/CuratorHaigHalenSOADialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/CuratorHaigHalenSOADialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.content.dialogue.DialogueFile; +import core.game.dialogue.DialogueFile; public final class CuratorHaigHalenSOADialogue extends DialogueFile { @Override diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/JohnnyBeardNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JohnnyBeardNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/JohnnyBeardNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JohnnyBeardNPC.java index b298a0a5c..9208ad74b 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/JohnnyBeardNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JohnnyBeardNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/JonnytheBeardPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JonnytheBeardPlugin.java similarity index 89% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/JonnytheBeardPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JonnytheBeardPlugin.java index 4a8ff5ec0..41f238218 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/JonnytheBeardPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/JonnytheBeardPlugin.java @@ -1,7 +1,7 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/KatrineDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KatrineDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/KatrineDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KatrineDialogue.java index 250b17f1d..101f9366a 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/KatrineDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KatrineDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/KingRoaldArravDialogue.kt b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/KingRoaldArravDialogue.kt rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt index ce7f43e4c..9135bd1d5 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/KingRoaldArravDialogue.kt +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/KingRoaldArravDialogue.kt @@ -1,11 +1,11 @@ -package rs09.game.content.quest.free.shieldofarrav +package content.region.misthalin.varrock.quest.shieldofarrav -import core.game.content.quest.free.shieldofarrav.ShieldofArrav +import content.region.misthalin.varrock.quest.shieldofarrav.ShieldofArrav import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE +import core.tools.START_DIALOGUE private val CERTIFICATE = Item(769) diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ReldoDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ReldoDialogue.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/ReldoDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ReldoDialogue.java index bd1a0f10b..826944835 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ReldoDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ReldoDialogue.java @@ -1,14 +1,13 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import org.rs09.consts.Items; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; -import core.game.node.item.Item; /** * Represents the dialogue to handle reldo. diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldArravPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldArravPlugin.java index 26a5ecff8..2b51df2cf 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldArravPlugin.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; @@ -19,8 +19,8 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.game.content.global.action.PickupHandler; -import rs09.game.world.repository.Repository; +import core.game.global.action.PickupHandler; +import core.game.world.repository.Repository; import java.util.List; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArrav.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArrav.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArrav.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArrav.java index d4d13c79e..46fce160e 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArrav.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArrav.java @@ -1,11 +1,11 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.game.content.dialogue.region.varrock.KingRoaldDialogue; -import rs09.plugin.ClassScanner; +import content.region.misthalin.varrock.dialogue.KingRoaldDialogue; +import core.plugin.ClassScanner; /** * Represents the shield of arrav quest. diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArravBook.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArravBook.java similarity index 93% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArravBook.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArravBook.java index 42200330d..e8faf9cf4 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldofArravBook.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/ShieldofArravBook.java @@ -1,10 +1,10 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.book.Book; -import core.game.content.dialogue.book.BookLine; -import core.game.content.dialogue.book.Page; -import core.game.content.dialogue.book.PageSet; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.book.Book; +import core.game.dialogue.book.BookLine; +import core.game.dialogue.book.Page; +import core.game.dialogue.book.PageSet; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/StravenDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/StravenDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/StravenDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/StravenDialogue.java index 1c583672a..6b26f29c9 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/StravenDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/StravenDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/WeaponsMasterDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/WeaponsMasterDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/quest/free/shieldofarrav/WeaponsMasterDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/WeaponsMasterDialogue.java index 24d0b11fd..c521eb492 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/WeaponsMasterDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/shieldofarrav/WeaponsMasterDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.free.shieldofarrav; +package content.region.misthalin.varrock.quest.shieldofarrav; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/AnnaJonesDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/AnnaJonesDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/AnnaJonesDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/AnnaJonesDialogue.java index e0537c678..6e68c8dca 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/AnnaJonesDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/AnnaJonesDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/KingRoaldNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/KingRoaldNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/KingRoaldNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/KingRoaldNPC.java index 41b20c1ee..437ec836b 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/KingRoaldNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/KingRoaldNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/OutlawNPC.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/OutlawNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/OutlawNPC.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/OutlawNPC.java index 8fda7be09..e4c9bdc19 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/OutlawNPC.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/OutlawNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/RatBurgissDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/RatBurgissDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/RatBurgissDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/RatBurgissDialogue.java index fa3c90924..11b84906c 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/RatBurgissDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/RatBurgissDialogue.java @@ -1,13 +1,12 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.AchievementDiary; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.item.Item; -import rs09.game.node.entity.player.link.diary.dialogues.RatBurgissDiaryDialogue; +import content.region.misthalin.varrock.diary.RatBurgissDiaryDialogue; /** * The rat burgiss dialogue. diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/SurokMagisDialogue.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/SurokMagisDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/SurokMagisDialogue.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/SurokMagisDialogue.java index 8aaadad58..1f4cf375f 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/SurokMagisDialogue.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/SurokMagisDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; -import core.game.content.activity.ActivityManager; -import core.game.content.dialogue.DialoguePlugin; +import core.game.activity.ActivityManager; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowCutscene.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowCutscene.java index b9f4a9134..718d90602 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowCutscene.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.FacialExpression; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -12,7 +12,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowPlugin.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowPlugin.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java index 49ee2848f..b3388e8d5 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowPlugin.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WLBelowPlugin.java @@ -1,12 +1,12 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.gather.SkillingTool; -import core.game.node.entity.skill.runecrafting.Altar; +import content.data.skill.SkillingTool; +import content.global.skill.runecrafting.Altar; import core.game.interaction.NodeUsageEvent; import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; @@ -15,11 +15,11 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the what lies below options. diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WhatLiesBelow.java b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java similarity index 99% rename from Server/src/main/java/core/game/content/quest/members/whatliesbelow/WhatLiesBelow.java rename to Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java index d79ede2de..2bef3df02 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WhatLiesBelow.java +++ b/Server/src/main/content/region/misthalin/varrock/quest/whatliesbelow/WhatLiesBelow.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.whatliesbelow; +package content.region.misthalin.varrock.quest.whatliesbelow; import core.plugin.Initializable; import org.rs09.consts.Items; @@ -6,7 +6,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The what lies below quest. diff --git a/Server/src/main/java/core/game/content/dialogue/DrOnglewipDialogue.java b/Server/src/main/content/region/misthalin/wiztower/dialogue/DrOnglewipDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/DrOnglewipDialogue.java rename to Server/src/main/content/region/misthalin/wiztower/dialogue/DrOnglewipDialogue.java index 9c8943794..cd1acad68 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrOnglewipDialogue.java +++ b/Server/src/main/content/region/misthalin/wiztower/dialogue/DrOnglewipDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.wiztower.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java b/Server/src/main/content/region/misthalin/wiztower/dialogue/TraibornDialogue.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java rename to Server/src/main/content/region/misthalin/wiztower/dialogue/TraibornDialogue.java index d4c89c195..37c40a125 100644 --- a/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java +++ b/Server/src/main/content/region/misthalin/wiztower/dialogue/TraibornDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.misthalin.wiztower.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; @@ -7,11 +9,11 @@ import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; -import core.game.content.quest.free.demonslayer.DemonSlayer; +import content.region.misthalin.varrock.quest.demonslayer.DemonSlayer; /** * Represents the dialogue used to handle the Traiborn NPC. diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/DemonTauntHandler.kt b/Server/src/main/content/region/misthalin/wiztower/handlers/DemonTauntHandler.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/interaction/object/DemonTauntHandler.kt rename to Server/src/main/content/region/misthalin/wiztower/handlers/DemonTauntHandler.kt index c5acefae8..ae6ba00df 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/DemonTauntHandler.kt +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/DemonTauntHandler.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction.`object` +package content.region.misthalin.wiztower.handlers -import api.* -import core.game.node.entity.player.link.diary.DiaryType +import core.api.* import core.game.node.entity.player.link.emote.Emotes import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles taunting of the demon in the wizard's tower diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/WizardGuildPortals.kt b/Server/src/main/content/region/misthalin/wiztower/handlers/WizardGuildPortals.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/interaction/object/WizardGuildPortals.kt rename to Server/src/main/content/region/misthalin/wiztower/handlers/WizardGuildPortals.kt index af38fc70c..e6c5a0b70 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/WizardGuildPortals.kt +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/WizardGuildPortals.kt @@ -1,9 +1,9 @@ -package rs09.game.interaction.`object` +package content.region.misthalin.wiztower.handlers -import api.* +import core.api.* import core.game.world.map.Location -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class WizardGuildPortals : InteractionListener { @@ -12,21 +12,21 @@ class WizardGuildPortals : InteractionListener { val SORC_TOWER_PORTAL = 2158 override fun defineListeners() { - on(WTOWER_PORTAL, IntType.SCENERY, "enter"){player, _ -> + on(WTOWER_PORTAL, IntType.SCENERY, "enter"){ player, _ -> teleport(player, Location.create(3109, 3159, 0)) sendMessage(player, "You enter the magic portal...") sendMessage(player, "You teleport to the Wizards' tower.") return@on true } - on(DWTOWER_PORTAL, IntType.SCENERY, "enter"){player, _ -> + on(DWTOWER_PORTAL, IntType.SCENERY, "enter"){ player, _ -> teleport(player, Location.create(2907, 3333, 0)) sendMessage(player, "You enter the magic portal...") sendMessage(player, "You teleport to the Dark Wizards' tower.") return@on true } - on(SORC_TOWER_PORTAL, IntType.SCENERY, "enter"){player, _ -> + on(SORC_TOWER_PORTAL, IntType.SCENERY, "enter"){ player, _ -> teleport(player, Location.create(2703, 3406, 0)) sendMessage(player, "You enter the magic portal...") sendMessage(player, "You teleport to Thormac the Sorceror's house.") diff --git a/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java b/Server/src/main/content/region/misthalin/wiztower/handlers/WizardTowerPlugin.java similarity index 99% rename from Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java rename to Server/src/main/content/region/misthalin/wiztower/handlers/WizardTowerPlugin.java index 609102929..6528fe639 100644 --- a/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/WizardTowerPlugin.java @@ -1,17 +1,17 @@ -package core.game.interaction.city; +package content.region.misthalin.wiztower.handlers; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.global.Skillcape; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialoguePlugin; +import core.game.global.Skillcape; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; @@ -36,9 +36,9 @@ import core.plugin.Plugin; import core.tools.RandomFunction; import core.tools.StringUtils; import kotlin.Unit; -import rs09.game.content.global.travel.EssenceTeleport; -import rs09.game.world.GameWorld; -import rs09.plugin.ClassScanner; +import content.global.travel.EssenceTeleport; +import core.game.world.GameWorld; +import core.plugin.ClassScanner; /** * Represents the plugins used related to the wizard tower. diff --git a/Server/src/main/java/core/game/interaction/city/RCGuildMap.java b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildMap.java similarity index 92% rename from Server/src/main/java/core/game/interaction/city/RCGuildMap.java rename to Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildMap.java index d2b9270f2..36729827a 100644 --- a/Server/src/main/java/core/game/interaction/city/RCGuildMap.java +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildMap.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.misthalin.wiztower.handlers.rcguild; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/city/RCGuildPortal.java b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildPortal.java similarity index 94% rename from Server/src/main/java/core/game/interaction/city/RCGuildPortal.java rename to Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildPortal.java index b24822c32..75296322c 100644 --- a/Server/src/main/java/core/game/interaction/city/RCGuildPortal.java +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RCGuildPortal.java @@ -1,4 +1,4 @@ -package core.game.interaction.city; +package content.region.misthalin.wiztower.handlers.rcguild; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RuneCraftingGuildObjects.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java rename to Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RuneCraftingGuildObjects.java index 68511467e..600525b1a 100644 --- a/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java +++ b/Server/src/main/content/region/misthalin/wiztower/handlers/rcguild/RuneCraftingGuildObjects.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.misthalin.wiztower.handlers.rcguild; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java b/Server/src/main/content/region/misthalin/wiztower/quest/ImpCatcher.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/free/ImpCatcher.java rename to Server/src/main/content/region/misthalin/wiztower/quest/ImpCatcher.java index 8bc3e9b55..a24c4d6d6 100644 --- a/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java +++ b/Server/src/main/content/region/misthalin/wiztower/quest/ImpCatcher.java @@ -1,4 +1,4 @@ -package core.game.content.quest.free; +package content.region.misthalin.wiztower.quest; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/HiylikMynaDialogue.java b/Server/src/main/content/region/morytania/burghderott/dialogue/HiylikMynaDialogue.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/HiylikMynaDialogue.java rename to Server/src/main/content/region/morytania/burghderott/dialogue/HiylikMynaDialogue.java index 1baecca1d..40ae0743d 100644 --- a/Server/src/main/java/core/game/content/dialogue/HiylikMynaDialogue.java +++ b/Server/src/main/content/region/morytania/burghderott/dialogue/HiylikMynaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.burghderott.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/canifis/AgilityBossDialogue.kt b/Server/src/main/content/region/morytania/canifis/dialogue/AgilityBossDialogue.kt similarity index 50% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/canifis/AgilityBossDialogue.kt rename to Server/src/main/content/region/morytania/canifis/dialogue/AgilityBossDialogue.kt index f0c49f279..6dea465eb 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/canifis/AgilityBossDialogue.kt +++ b/Server/src/main/content/region/morytania/canifis/dialogue/AgilityBossDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.canifis +package content.region.morytania.canifis.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -11,34 +11,34 @@ import core.plugin.Initializable */ @Initializable -class AgilityBossDialogue(player: Player? = null) : DialoguePlugin(player){ +class AgilityBossDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC if(player.equipment.contains(4202,1)) { - player(FacialExpression.ASKING,"How do I use the agility course?").also { stage = 0 } + player(core.game.dialogue.FacialExpression.ASKING,"How do I use the agility course?").also { stage = 0 } } else { - npc(FacialExpression.CHILD_SUSPICIOUS,"Grrr - you don't belong in here, human!").also { stage = 99 } + npc(core.game.dialogue.FacialExpression.CHILD_SUSPICIOUS,"Grrr - you don't belong in here, human!").also { stage = 99 } } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npc(FacialExpression.CHILD_NORMAL,"I'll throw you a stick, which you need to", + 0 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"I'll throw you a stick, which you need to", "fetch as quickly as possible, ", "from the area beyond the pipes.").also { stage++ } - 1 -> npc(FacialExpression.CHILD_NORMAL,"Be wary of the deathslide - you must hang by your teeth,", + 1 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"Be wary of the deathslide - you must hang by your teeth,", "and if your strength is not up to the job you will", "fall into a pit of spikes. Also, I would advise not", "carrying too much extra weight.").also { stage++ } - 2 -> npc(FacialExpression.CHILD_NORMAL,"Bring the stick back to the werewolf waiting at", + 2 -> npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"Bring the stick back to the werewolf waiting at", "the end of the death slide to get your agility bonus.").also { stage++ } - 3 ->npc(FacialExpression.CHILD_NORMAL,"I will throw your stick as soon as you jump onto the", + 3 ->npc(core.game.dialogue.FacialExpression.CHILD_NORMAL,"I will throw your stick as soon as you jump onto the", "first stone.").also { stage = 99 } 99 -> end() @@ -46,7 +46,7 @@ class AgilityBossDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return AgilityBossDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/BarkerDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/BarkerDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/BarkerDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/BarkerDialogue.java index dd18f36b1..a235b9430 100644 --- a/Server/src/main/java/core/game/content/dialogue/BarkerDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/BarkerDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/BrosDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/BrosDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/BrosDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/BrosDialogue.java index b50003353..416cdc7f6 100644 --- a/Server/src/main/java/core/game/content/dialogue/BrosDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/BrosDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/FilelioDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/FilelioDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/FilelioDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/FilelioDialogue.java index 41bc12aea..07c21876e 100644 --- a/Server/src/main/java/core/game/content/dialogue/FilelioDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/FilelioDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/GregoryDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/GregoryDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/GregoryDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/GregoryDialogue.java index a603ca3fe..20dd7f484 100644 --- a/Server/src/main/java/core/game/content/dialogue/GregoryDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/GregoryDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/IrinaDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/IrinaDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/IrinaDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/IrinaDialogue.java index 3d30cb56a..730f38a6e 100644 --- a/Server/src/main/java/core/game/content/dialogue/IrinaDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/IrinaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/JosephDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/JosephDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/dialogue/JosephDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/JosephDialogue.java index b116f8460..95b68dc2c 100644 --- a/Server/src/main/java/core/game/content/dialogue/JosephDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/JosephDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/MalakDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/MalakDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/MalakDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/MalakDialogue.java index 88c016e5d..b4e1d290f 100644 --- a/Server/src/main/java/core/game/content/dialogue/MalakDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/MalakDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/NikitiaDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/NikitiaDialogue.java similarity index 85% rename from Server/src/main/java/core/game/content/dialogue/NikitiaDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/NikitiaDialogue.java index f1a168089..404f49f74 100644 --- a/Server/src/main/java/core/game/content/dialogue/NikitiaDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/NikitiaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/RoavarDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/RoavarDialogue.java similarity index 96% rename from Server/src/main/java/core/game/interaction/npc/RoavarDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/RoavarDialogue.java index 5051340ba..82644c4e5 100644 --- a/Server/src/main/java/core/game/interaction/npc/RoavarDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/RoavarDialogue.java @@ -1,8 +1,8 @@ -package core.game.interaction.npc; +package content.region.morytania.canifis.dialogue; import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/RufusDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/RufusDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/RufusDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/RufusDialogue.java index 7aaeec0ea..10aec5a53 100644 --- a/Server/src/main/java/core/game/content/dialogue/RufusDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/RufusDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SbottDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/SbottDialogue.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/SbottDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/SbottDialogue.java index 19e86753c..c68c38d20 100644 --- a/Server/src/main/java/core/game/content/dialogue/SbottDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/SbottDialogue.java @@ -1,7 +1,9 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.plugin.Initializable; -import core.game.node.entity.skill.crafting.TanningProduct; +import content.global.skill.crafting.TanningProduct; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/dialogue/SofiyaDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/SofiyaDialogue.java similarity index 86% rename from Server/src/main/java/core/game/content/dialogue/SofiyaDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/SofiyaDialogue.java index 7f260b23a..7735eab73 100644 --- a/Server/src/main/java/core/game/content/dialogue/SofiyaDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/SofiyaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SvetlanaDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/SvetlanaDialogue.java similarity index 85% rename from Server/src/main/java/core/game/content/dialogue/SvetlanaDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/SvetlanaDialogue.java index 36f20e8d2..0d72329fe 100644 --- a/Server/src/main/java/core/game/content/dialogue/SvetlanaDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/SvetlanaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/TaxidermistDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/TaxidermistDialogue.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/TaxidermistDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/TaxidermistDialogue.java index 5a7626b26..eedae1210 100644 --- a/Server/src/main/java/core/game/content/dialogue/TaxidermistDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/TaxidermistDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/YadvigaDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/YadvigaDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/YadvigaDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/YadvigaDialogue.java index cfebf47e3..a78bbdbc6 100644 --- a/Server/src/main/java/core/game/content/dialogue/YadvigaDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/YadvigaDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/YuriDialogue.java b/Server/src/main/content/region/morytania/canifis/dialogue/YuriDialogue.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/YuriDialogue.java rename to Server/src/main/content/region/morytania/canifis/dialogue/YuriDialogue.java index 48c40855b..0920c953d 100644 --- a/Server/src/main/java/core/game/content/dialogue/YuriDialogue.java +++ b/Server/src/main/content/region/morytania/canifis/dialogue/YuriDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.canifis.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/npc/CanafisWereWolfPlugin.java b/Server/src/main/content/region/morytania/canifis/handlers/CanafisWereWolfPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/npc/CanafisWereWolfPlugin.java rename to Server/src/main/content/region/morytania/canifis/handlers/CanafisWereWolfPlugin.java index 825218d2a..76ad461e0 100644 --- a/Server/src/main/java/core/game/interaction/npc/CanafisWereWolfPlugin.java +++ b/Server/src/main/content/region/morytania/canifis/handlers/CanafisWereWolfPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.morytania.canifis.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/npc/RoavarOptionPlugin.java b/Server/src/main/content/region/morytania/canifis/handlers/RoavarOptionPlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/npc/RoavarOptionPlugin.java rename to Server/src/main/content/region/morytania/canifis/handlers/RoavarOptionPlugin.java index 772f752dc..1a7152799 100644 --- a/Server/src/main/java/core/game/interaction/npc/RoavarOptionPlugin.java +++ b/Server/src/main/content/region/morytania/canifis/handlers/RoavarOptionPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.npc; +package content.region.morytania.canifis.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/WerewolfNPC.java b/Server/src/main/content/region/morytania/canifis/handlers/WerewolfNPC.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/npc/other/WerewolfNPC.java rename to Server/src/main/content/region/morytania/canifis/handlers/WerewolfNPC.java index 42c4c9527..3884bbf56 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/WerewolfNPC.java +++ b/Server/src/main/content/region/morytania/canifis/handlers/WerewolfNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.other; +package content.region.morytania.canifis.handlers; import core.game.node.entity.Entity; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/mortton/AfflictedDialogue.kt b/Server/src/main/content/region/morytania/dialogue/AfflictedDialogue.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/mortton/AfflictedDialogue.kt rename to Server/src/main/content/region/morytania/dialogue/AfflictedDialogue.kt index a33ed01ac..c1d9648fc 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/mortton/AfflictedDialogue.kt +++ b/Server/src/main/content/region/morytania/dialogue/AfflictedDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.mortton +package content.region.morytania.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -13,13 +13,13 @@ import core.tools.RandomFunction */ @Initializable -class AfflictedDialogue : DialoguePlugin { +class AfflictedDialogue : core.game.dialogue.DialoguePlugin { private val chats = arrayOf("ughugh", "knows'is", "knows'is", "nots", "pirsl", "wot's", "zurgle", "gurghl", "mee's", "seysyi", "sfriess", "says") override fun open(vararg args: Any): Boolean { npc = args[0] as NPC chats.shuffle() - interpreter.sendDialogues( npc, FacialExpression.ASKING, chats.copyOfRange(0, RandomFunction.random(1, 6)).contentToString() + interpreter.sendDialogues( npc, core.game.dialogue.FacialExpression.ASKING, chats.copyOfRange(0, RandomFunction.random(1, 6)).contentToString() .replace("[", "").replace("]", "").replace(",", "")) return true } @@ -36,7 +36,7 @@ class AfflictedDialogue : DialoguePlugin { return true } - override fun newInstance(player: Player): DialoguePlugin { + override fun newInstance(player: Player): core.game.dialogue.DialoguePlugin { return AfflictedDialogue(player) } } \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/dialogue/UliziusDialogue.java b/Server/src/main/content/region/morytania/dialogue/UliziusDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/UliziusDialogue.java rename to Server/src/main/content/region/morytania/dialogue/UliziusDialogue.java index 441c75ff1..6b83303c5 100644 --- a/Server/src/main/java/core/game/content/dialogue/UliziusDialogue.java +++ b/Server/src/main/content/region/morytania/dialogue/UliziusDialogue.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/VanstromKlause.java b/Server/src/main/content/region/morytania/dialogue/VanstromKlause.java similarity index 90% rename from Server/src/main/java/core/game/content/dialogue/VanstromKlause.java rename to Server/src/main/content/region/morytania/dialogue/VanstromKlause.java index 4f4cdec88..f9e8e8227 100644 --- a/Server/src/main/java/core/game/content/dialogue/VanstromKlause.java +++ b/Server/src/main/content/region/morytania/dialogue/VanstromKlause.java @@ -1,5 +1,7 @@ -package core.game.content.dialogue; +package content.region.morytania.dialogue; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/BarrowsBoatPlugin.java b/Server/src/main/content/region/morytania/handlers/BarrowsBoatPlugin.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/BarrowsBoatPlugin.java rename to Server/src/main/content/region/morytania/handlers/BarrowsBoatPlugin.java index 16656b4d4..befd516b6 100644 --- a/Server/src/main/java/core/game/interaction/object/BarrowsBoatPlugin.java +++ b/Server/src/main/content/region/morytania/handlers/BarrowsBoatPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.morytania.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java b/Server/src/main/content/region/morytania/handlers/BarrowsTunnelShortcut.java similarity index 94% rename from Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java rename to Server/src/main/content/region/morytania/handlers/BarrowsTunnelShortcut.java index 210bc20ab..65f72d74c 100644 --- a/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java +++ b/Server/src/main/content/region/morytania/handlers/BarrowsTunnelShortcut.java @@ -1,8 +1,8 @@ -package core.game.interaction.object; +package content.region.morytania.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.ClimbActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/npc/MortMyreGhastNPC.kt b/Server/src/main/content/region/morytania/handlers/MortMyreGhastNPC.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/npc/MortMyreGhastNPC.kt rename to Server/src/main/content/region/morytania/handlers/MortMyreGhastNPC.kt index 478e5f3e7..88a891810 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/npc/MortMyreGhastNPC.kt +++ b/Server/src/main/content/region/morytania/handlers/MortMyreGhastNPC.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.npc +package content.region.morytania.handlers -import api.Container -import api.* -import core.game.content.consumable.Consumables -import core.game.content.consumable.Food +import core.api.Container +import core.api.* +import content.data.consumables.Consumables +import core.game.consumable.Food import core.game.interaction.MovementPulse import core.game.node.entity.Entity import core.game.node.entity.combat.ImpactHandler @@ -19,7 +19,7 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.quest.members.naturespirit.NSUtils +import content.region.morytania.quest.naturespirit.NSUtils @Initializable class MortMyreGhastNPC : AbstractNPC { diff --git a/Server/src/main/kotlin/rs09/game/content/zone/morytania/MorytaniaArea.kt b/Server/src/main/content/region/morytania/handlers/MorytaniaArea.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/zone/morytania/MorytaniaArea.kt rename to Server/src/main/content/region/morytania/handlers/MorytaniaArea.kt index fc81dbc96..938c82d8c 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/morytania/MorytaniaArea.kt +++ b/Server/src/main/content/region/morytania/handlers/MorytaniaArea.kt @@ -1,18 +1,16 @@ -package rs09.game.content.zone.morytania +package content.region.morytania.handlers -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders -import core.game.world.update.flag.context.Animation import org.rs09.consts.NPCs -import rs09.game.ai.AIPlayer -import rs09.game.content.dialogue.DialogueFile -import rs09.game.world.GameWorld +import core.game.bots.AIPlayer +import core.game.dialogue.DialogueFile +import core.game.world.GameWorld class MorytaniaArea : MapArea { override fun defineAreaBorders(): Array { @@ -54,7 +52,7 @@ class MorytaniaArea : MapArea { class FuckOffDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { when(stage) { - 0 -> npcl(FacialExpression.WORRIED, "Oh this is no good, you surely will not survive here. Let me take you back.").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.WORRIED, "Oh this is no good, you surely will not survive here. Let me take you back.").also { stage++ } 1 -> { end() visualize(npc!!, 1818, 343) diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt b/Server/src/main/content/region/morytania/handlers/MorytaniaListeners.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt rename to Server/src/main/content/region/morytania/handlers/MorytaniaListeners.kt index 18bc20d94..ccce9cbaf 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt +++ b/Server/src/main/content/region/morytania/handlers/MorytaniaListeners.kt @@ -1,8 +1,7 @@ -package rs09.game.interaction.region +package content.region.morytania.handlers -import api.* -import core.game.content.global.action.DoorActionHandler -import core.game.node.entity.skill.agility.AgilityHandler +import core.api.* +import content.global.skill.agility.AgilityHandler import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation @@ -11,8 +10,8 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.NPCs import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType import kotlin.random.Random /** @@ -37,15 +36,15 @@ class MorytaniaListeners : InteractionListener { override fun defineListeners() { - on(SWAMP_GATES, IntType.SCENERY, "open"){player, node -> + on(SWAMP_GATES, IntType.SCENERY, "open"){ player, node -> if(player.location.y == 3457){ - DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) GlobalScope.launch { findLocalNPC(player, NPCs.ULIZIUS_1054)?.sendChat("Oh my! You're still alive!", 2) } } else { if (player.questRepository.hasStarted("Nature Spirit")) { - DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + core.game.global.action.DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) } else { sendNPCDialogue( player, diff --git a/Server/src/main/java/core/game/interaction/object/MoyrtniaSwampPlugin.java b/Server/src/main/content/region/morytania/handlers/MoyrtniaSwampPlugin.java similarity index 95% rename from Server/src/main/java/core/game/interaction/object/MoyrtniaSwampPlugin.java rename to Server/src/main/content/region/morytania/handlers/MoyrtniaSwampPlugin.java index 52daa4d34..69e663f47 100644 --- a/Server/src/main/java/core/game/interaction/object/MoyrtniaSwampPlugin.java +++ b/Server/src/main/content/region/morytania/handlers/MoyrtniaSwampPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.morytania.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java b/Server/src/main/content/region/morytania/handlers/PyreSitePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java rename to Server/src/main/content/region/morytania/handlers/PyreSitePlugin.java index 54911d1bb..d21b400da 100644 --- a/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java +++ b/Server/src/main/content/region/morytania/handlers/PyreSitePlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.morytania.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -10,8 +10,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.npc.drop.DropFrequency; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.firemaking.Log; -import core.game.node.entity.skill.gather.SkillingTool; +import content.global.skill.firemaking.Log; +import content.data.skill.SkillingTool; import core.game.node.item.ChanceItem; import core.game.node.item.Item; import core.game.node.scenery.Scenery; @@ -23,9 +23,9 @@ import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; import org.rs09.consts.Items; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; -import rs09.plugin.ClassScanner; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; +import core.plugin.ClassScanner; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/GhostDiscipleDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/GhostDiscipleDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/zone/phasmatys/GhostDiscipleDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/GhostDiscipleDialogue.java index a471e3fcc..e66cb4491 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/GhostDiscipleDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/GhostDiscipleDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/GhostInkeeperDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/GhostInkeeperDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/phasmatys/GhostInkeeperDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/GhostInkeeperDialogue.java index 4adbbfe04..8a17783b4 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/GhostInkeeperDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/GhostInkeeperDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; +import content.region.morytania.phas.handlers.PhasmatysZone; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/GhostSailorDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/GhostSailorDialogue.java similarity index 90% rename from Server/src/main/java/core/game/content/zone/phasmatys/GhostSailorDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/GhostSailorDialogue.java index 033c67148..f911d8c2d 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/GhostSailorDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/GhostSailorDialogue.java @@ -1,7 +1,8 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.dialogue; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import content.region.morytania.phas.handlers.PhasmatysZone; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/GhostVillagerDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/GhostVillagerDialogue.java similarity index 89% rename from Server/src/main/java/core/game/content/zone/phasmatys/GhostVillagerDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/GhostVillagerDialogue.java index b8678aa16..18a2cacc9 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/GhostVillagerDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/GhostVillagerDialogue.java @@ -1,6 +1,7 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; +import content.region.morytania.phas.handlers.PhasmatysZone; import core.game.node.entity.player.Player; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/NecrovarusDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/NecrovarusDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/zone/phasmatys/NecrovarusDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/NecrovarusDialogue.java index ad1dd2324..3283cd80c 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/NecrovarusDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/NecrovarusDialogue.java @@ -1,6 +1,6 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.dialogue; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; /** diff --git a/Server/src/main/java/core/game/content/dialogue/VelorinaDialogue.java b/Server/src/main/content/region/morytania/phas/dialogue/VelorinaDialogue.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/VelorinaDialogue.java rename to Server/src/main/content/region/morytania/phas/dialogue/VelorinaDialogue.java index f0a420acd..2407c17a2 100644 --- a/Server/src/main/java/core/game/content/dialogue/VelorinaDialogue.java +++ b/Server/src/main/content/region/morytania/phas/dialogue/VelorinaDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.morytania.phas.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.game.node.item.Item; diff --git a/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt b/Server/src/main/content/region/morytania/phas/handlers/BoneGrinderListener.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt rename to Server/src/main/content/region/morytania/phas/handlers/BoneGrinderListener.kt index a2c8d58a9..205572b05 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/phasmatys/bonegrinder/BoneGrinderListener.kt +++ b/Server/src/main/content/region/morytania/phas/handlers/BoneGrinderListener.kt @@ -1,8 +1,8 @@ -package rs09.game.content.zone.phasmatys.bonegrinder +package content.region.morytania.phas.handlers -import api.Container -import api.* -import core.game.content.global.Bones +import core.api.Container +import core.api.* +import content.global.skill.prayer.Bones import core.game.node.entity.impl.PulseType import core.game.node.entity.player.Player import core.game.node.item.Item @@ -10,9 +10,9 @@ import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld.Pulser +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld.Pulser private const val LOADER = 11162 private const val BONE_GRINDER = 11163 @@ -63,7 +63,7 @@ class BoneGrinderListener : InteractionListener { /** * Handle Bone -> Hopper */ - onUseWith(IntType.SCENERY,LOADER,*boneIDs){ player, _, _ -> + onUseWith(IntType.SCENERY, LOADER,*boneIDs){ player, _, _ -> handleFill(player) return@onUseWith true } @@ -76,11 +76,11 @@ class BoneGrinderListener : InteractionListener { sendMessage(player,"You have no bones to grind.") return true } - if(getAttribute(player,BONE_HOPPER_KEY,false)){ + if(getAttribute(player, BONE_HOPPER_KEY,false)){ sendMessage(player,"You already have some bones in the hopper.") return true } - if(getAttribute(player,BONE_BIN_KEY,false)){ + if(getAttribute(player, BONE_BIN_KEY,false)){ sendMessage(player,"You already have some bonemeal that needs to be collected.") return true } @@ -91,13 +91,13 @@ class BoneGrinderListener : InteractionListener { when(stage++){ 0 -> { lock(player, FILL_ANIM.duration) - animate(player,FILL_ANIM) + animate(player, FILL_ANIM) } FILL_ANIM.duration -> { sendMessage(player,"You fill the hopper with bones.") removeItem(player,Item(bone.itemId),Container.INVENTORY) - setAttribute(player,LOADED_BONE_KEY,bone.ordinal) - setAttribute(player,BONE_HOPPER_KEY,true) + setAttribute(player, LOADED_BONE_KEY,bone.ordinal) + setAttribute(player, BONE_HOPPER_KEY,true) return true } } @@ -154,12 +154,12 @@ class BoneGrinderListener : InteractionListener { } fun handleWind(player: Player): Boolean{ - if(!getAttribute(player,BONE_HOPPER_KEY,false)){ + if(!getAttribute(player, BONE_HOPPER_KEY,false)){ sendMessage(player,"You have no bones loaded to grind.") return true } - if(getAttribute(player,BONE_BIN_KEY,false)){ + if(getAttribute(player, BONE_BIN_KEY,false)){ sendMessage(player,"You already have some bonemeal which you need to collect.") return true } @@ -170,14 +170,14 @@ class BoneGrinderListener : InteractionListener { when(stage++){ 0 -> { face(player,Location(3659, 3526, 1)) - lock(player,WIND_ANIM.duration) - animate(player,WIND_ANIM) + lock(player, WIND_ANIM.duration) + animate(player, WIND_ANIM) sendMessage(player,"You wind the handle.") } WIND_ANIM.duration -> { sendMessage(player,"The bonemeal falls into the bin.") - setAttribute(player,BONE_HOPPER_KEY,false) - setAttribute(player,BONE_BIN_KEY,true) + setAttribute(player, BONE_HOPPER_KEY,false) + setAttribute(player, BONE_BIN_KEY,true) return true } } @@ -188,8 +188,8 @@ class BoneGrinderListener : InteractionListener { } private fun handleStatus(player: Player): Boolean{ - val bonesLoaded = getAttribute(player,BONE_HOPPER_KEY,false) - val boneMealReady = getAttribute(player,BONE_BIN_KEY,false) + val bonesLoaded = getAttribute(player, BONE_HOPPER_KEY,false) + val boneMealReady = getAttribute(player, BONE_BIN_KEY,false) if(bonesLoaded) sendMessage(player,"There are bones waiting in the hopper.") if(boneMealReady) sendMessage(player,"There is bonemeal waiting in the bin to be collected.") @@ -232,7 +232,7 @@ class BoneGrinderListener : InteractionListener { when(stage++){ 0 -> { face(player,Location(3658, 3525, 1)) - animate(player,SCOOP_ANIM) + animate(player, SCOOP_ANIM) } SCOOP_ANIM.duration -> { if(removeItem(player,Item(Items.EMPTY_POT_1931),Container.INVENTORY)){ diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/EctoplasmFillPlugin.java b/Server/src/main/content/region/morytania/phas/handlers/EctoplasmFillPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/zone/phasmatys/EctoplasmFillPlugin.java rename to Server/src/main/content/region/morytania/phas/handlers/EctoplasmFillPlugin.java index cf4774f40..7b69614ae 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/EctoplasmFillPlugin.java +++ b/Server/src/main/content/region/morytania/phas/handlers/EctoplasmFillPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.handlers; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/GravingasNPC.java b/Server/src/main/content/region/morytania/phas/handlers/GravingasNPC.java similarity index 95% rename from Server/src/main/java/core/game/content/zone/phasmatys/GravingasNPC.java rename to Server/src/main/content/region/morytania/phas/handlers/GravingasNPC.java index 21a7ddc96..171ce930e 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/GravingasNPC.java +++ b/Server/src/main/content/region/morytania/phas/handlers/GravingasNPC.java @@ -1,11 +1,11 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.handlers; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java b/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java similarity index 97% rename from Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java rename to Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java index 132b5c98c..e22b7c3f6 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java +++ b/Server/src/main/content/region/morytania/phas/handlers/PhasmatysZone.java @@ -1,16 +1,17 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.handlers; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; -import core.game.content.global.Bones; -import core.game.content.global.action.ClimbActionHandler; +import content.global.skill.prayer.Bones; +import content.region.morytania.phas.dialogue.*; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.node.item.Item; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; @@ -24,7 +25,7 @@ import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; import org.rs09.consts.NPCs; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Handles the phasmatyz zone area. diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/TokenCollectOption.java b/Server/src/main/content/region/morytania/phas/handlers/TokenCollectOption.java similarity index 94% rename from Server/src/main/java/core/game/content/zone/phasmatys/TokenCollectOption.java rename to Server/src/main/content/region/morytania/phas/handlers/TokenCollectOption.java index 41b2610e7..608cc5bc5 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/TokenCollectOption.java +++ b/Server/src/main/content/region/morytania/phas/handlers/TokenCollectOption.java @@ -1,4 +1,4 @@ -package core.game.content.zone.phasmatys; +package content.region.morytania.phas.handlers; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/akharanu.java b/Server/src/main/content/region/morytania/phas/handlers/akharanu.java similarity index 93% rename from Server/src/main/java/core/game/node/entity/npc/other/akharanu.java rename to Server/src/main/content/region/morytania/phas/handlers/akharanu.java index b838f5ece..798ff0937 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/akharanu.java +++ b/Server/src/main/content/region/morytania/phas/handlers/akharanu.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.other; +package content.region.morytania.phas.handlers; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.plugin.Initializable; diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/FillimanTarlockNPC.kt b/Server/src/main/content/region/morytania/quest/naturespirit/FillimanTarlockNPC.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/FillimanTarlockNPC.kt rename to Server/src/main/content/region/morytania/quest/naturespirit/FillimanTarlockNPC.kt index ce9e4716c..3fc36b22a 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/FillimanTarlockNPC.kt +++ b/Server/src/main/content/region/morytania/quest/naturespirit/FillimanTarlockNPC.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.naturespirit +package content.region.morytania.quest.naturespirit -import api.* +import core.api.* import core.game.node.entity.npc.AbstractNPC import core.game.world.map.Location import core.plugin.Initializable diff --git a/Server/src/main/content/region/morytania/quest/naturespirit/NSDrezelDialogue.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NSDrezelDialogue.kt new file mode 100644 index 000000000..d28cefa25 --- /dev/null +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NSDrezelDialogue.kt @@ -0,0 +1,119 @@ +package content.region.morytania.quest.naturespirit + +import core.api.* +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.audio.Audio +import core.game.system.task.Pulse +import core.game.world.update.flag.context.Animation +import core.game.world.update.flag.context.Graphics +import org.rs09.consts.Items +import core.game.dialogue.DialogueFile +import core.tools.END_DIALOGUE + +class NSDrezelDialogue : DialogueFile() { + var questStage = 0 + override fun handle(componentID: Int, buttonID: Int) { + questStage = player!!.questRepository.getStage("Nature Spirit") + + if(questStage <= 5){ + when(stage){ + 0 -> options("Sorry, not interested...", "Well, what is it, I may be able to help?").also { stage++ } + 1 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, not interested.").also { stage = END_DIALOGUE } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Well, what is it, I may be able to help?").also { stage++ } + } + + 2 -> npcl(core.game.dialogue.FacialExpression.HALF_THINKING, "There's a man called Filliman who lives in Mort Myre, I wonder if you could look for him? The swamps of Mort Myre are dangerous though, they're infested with Ghasts!").also { stage++ } + 3 -> options("Who is this Filliman?", "Where's Mort Myre?", "What's a Ghast?", "Yes, I'll go and look for him.", "Sorry, I don't think I can help.").also { stage++ } + 4 -> when(buttonID){ + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Filliman Tarlock is his full name and he's a Druid. He lives in Mort Myre much like a hermit, but there's many a traveller who he's helped.").also { stage-- } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Mort Myre is a decayed and dangerous swamp to the south. It was once a beautiful forest but has since become filled with vile emanations from within Morytania.").also { stage = 6 } + 3 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "A Ghast is a poor soul who died in Mort Myre. They're undead of a special class, they're untouchable as far as I'm aware!").also { stage = 5 } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, I'll go and look for him.").also { stage = 10 } + 5 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, I don't think I can help.").also { stage = END_DIALOGUE } + } + 5 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Filliman knew how to tackle them, but I've not heard from him in a long time. Ghasts, when they attack, will devour any food you have. If you have no food, they'll draw their nourishment from you!").also { stage = 3 } + 6 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, " We put a fence around it to stop unwary travellers going in. Anyone who dies in the swamp is forever cursed to haunt it as a Ghast. Ghasts attack travellers, turning food to rotten filth.").also { stage = 3 } + + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "That's great, but it is very dangerous. Are you sure you want to do this?").also { stage++ } + 11 -> options("Yes, I'm sure.", "Sorry, I don't think I can help.").also { stage++ } + 12 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, I'm sure.").also { stage = 20 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, I don't think I can help.").also { stage = END_DIALOGUE } + } + + 20 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "That's great! Many Thanks! Now then, please be aware of the Ghasts, you cannot attack them, only Filliman knew how to take them on.").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Just run from them if you can. If you start to get lost, try to make your way back to the temple.").also { stage++ } + 22 -> { + sendDoubleItemDialogue(player!!, Items.MEAT_PIE_2327, Items.APPLE_PIE_2323, "The cleric hands you some food.") + if(questStage == 0){ + repeat(3) { addItemOrDrop(player!!, Items.MEAT_PIE_2327, 1) } + repeat(3) { addItemOrDrop(player!!, Items.APPLE_PIE_2323, 1) } + player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, 5) + } + stage++ + } + 23 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Please take this food to Filliman, he'll probably appreciate a bit of cooked food. Now, he's never revealed where he lives in the swamps but I guess he'd be to the south, search for him won't you?").also { stage++ } + 24 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'll do my very best, don't worry, if he's in there and he's still alive I'll definitely find him.").also { stage = END_DIALOGUE; player!!.questRepository.getQuest("Nature Spirit").start(player!!) } + } + } + + else if(questStage == 15) { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I've found Filliman and you should prepare for some sad news.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "You mean... he's dead?").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, er sort of. I got to his camp and I encountered a spirit of some kind. I don't think it was a Ghast, it tried to communicate with me, but made no sense, it was all 'ooooh' this and 'oooh' that.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmmm, that's very interesting, I seem to remember Father Aereck in Lumbridge and his predecessor Father Urhney having a similar issue. Though this is probably not related to your problem.").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, " I will pray that it wasn't the spirit of my friend Filliman, but some lost soul who needs some help. Please do let me know how you get on with it.").also { stage = END_DIALOGUE } + } + } + + else if(questStage == 35){ + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Hello again! I'm helping Filliman, he plans to become a nature spirit. I have a spell to cast but first I need to be blessed. Can you bless me?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "But you haven't sneezed!").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "You're so funny! But can you bless me?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Very well my friend, prepare yourself for the blessings of Saradomin. Here we go!").also { stage++ } + 4 -> { + end() + player!!.lock(); + submitIndividualPulse(player!!, BlessingPulse(npc!!, player!!)) + } + } + } + + else if(questStage == 40){ + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "There you go my friend, you're now blessed. It's funny, now I look at you, there seems to be something of the faith about you. Anyway, good luck with your quest!").also { stage = END_DIALOGUE; player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, 45) } + } + + else { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello, friend, how goes your quest with Filliman?").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Still working at it.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well enough! Do let me know when something develops!").also { stage = END_DIALOGUE } + } + } + } + +} + +private class BlessingPulse(val drezel: NPC, val player: Player) : Pulse(){ + var ticks = 0 + + override fun pulse(): Boolean { + when(ticks){ + 0 -> animate(drezel, 1162).also { spawnProjectile(drezel, player, 268); playAudio(player, Audio(2674)) } + 2 -> visualize(player, Animation(645), Graphics(267, 100)) + 4 -> unlock(player).also { player.questRepository.getQuest("Nature Spirit").setStage(player, 40); return true } + } + ticks++ + return false + } + + override fun stop() { + super.stop() + openDialogue(player, NSDrezelDialogue(), drezel) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSListeners.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NSListeners.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSListeners.kt rename to Server/src/main/content/region/morytania/quest/naturespirit/NSListeners.kt index 38bdcda6b..9c1263a1c 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSListeners.kt +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NSListeners.kt @@ -1,8 +1,7 @@ -package rs09.game.content.quest.members.naturespirit +package content.region.morytania.quest.naturespirit -import api.Container -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.Container +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.GroundItem @@ -12,14 +11,14 @@ import core.game.system.task.Pulse import core.game.world.map.Location import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.global.action.PickupHandler -import rs09.game.content.global.shops.Shops -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.node.entity.npc.MortMyreGhastNPC -import rs09.game.system.SystemLogger -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.global.action.PickupHandler +import core.game.shops.Shops +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import content.region.morytania.handlers.MortMyreGhastNPC +import core.tools.SystemLogger +import core.tools.END_DIALOGUE class NSListeners : InteractionListener { @@ -47,12 +46,12 @@ class NSListeners : InteractionListener { val items = intArrayOf(USED_SPELLCARD, FUNGUS) override fun defineListeners() { - on(GROTTO_TREE, IntType.SCENERY, "look-at"){player, _ -> + on(GROTTO_TREE, IntType.SCENERY, "look-at"){ player, _ -> sendMessage(player, "It looks like a tree on a large rock with roots trailing down to the ground.") return@on true } - on(GROTTO_TREE, IntType.SCENERY, "search"){player, _ -> + on(GROTTO_TREE, IntType.SCENERY, "search"){ player, _ -> if(!getAttribute(player, GROTTO_SEARCHED, false) || !(inInventory(player, JOURNAL) || inBank(player, JOURNAL))){ sendItemDialogue(player, JOURNAL, "You search the strange rock. You find a knot and inside of it you discover a small tome. The words on the front are a bit vague, but you can make out the words 'Tarlock' and 'journal'.") addItemOrDrop(player, JOURNAL, 1) @@ -62,7 +61,7 @@ class NSListeners : InteractionListener { return@on false } - on(GROTTO_ENTRANCE, IntType.SCENERY, "enter"){player, node -> + on(GROTTO_ENTRANCE, IntType.SCENERY, "enter"){ player, node -> val questStage = player.questRepository.getQuest("Nature Spirit").getStage(player) if(questStage < 55) { val npc = core.game.node.entity.npc.NPC.create(NPCs.FILLIMAN_TARLOCK_1050, Location.create(3440, 3336, 0)) @@ -75,7 +74,7 @@ class NSListeners : InteractionListener { return@on true } - on(GROTTO_ALTAR, IntType.SCENERY, "search"){player, node -> + on(GROTTO_ALTAR, IntType.SCENERY, "search"){ player, node -> val stage = player.questRepository.getStage("Nature Spirit") if(stage == 55){ openDialogue(player, FillimanCompletionDialogue(), NPC(NPCs.FILLIMAN_TARLOCK_1050)) @@ -85,22 +84,22 @@ class NSListeners : InteractionListener { return@on false } - on(NATURE_STONE, IntType.SCENERY, "search"){player, _ -> + on(NATURE_STONE, IntType.SCENERY, "search"){ player, _ -> sendDialogue(player, "You search the stone and find that it has some sort of nature symbol scratched into it.") return@on true } - on(FAITH_STONE, IntType.SCENERY, "search"){player, _ -> + on(FAITH_STONE, IntType.SCENERY, "search"){ player, _ -> sendDialogue(player, "You search the stone and find that it has some sort of faith symbol scratched into it.") return@on true } - on(FREELY_GIVEN_STONE, IntType.SCENERY, "search"){player, _ -> + on(FREELY_GIVEN_STONE, IntType.SCENERY, "search"){ player, _ -> sendDialogue(player, "You search the stone and find it has some sort of spirit symbol scratched into it.") return@on true } - on(WISHING_WELL, IntType.SCENERY, "make-wish"){player, node -> + on(WISHING_WELL, IntType.SCENERY, "make-wish"){ player, node -> if(player.questRepository.isComplete("Nature Spirit") && player.questRepository.isComplete("Wolf Whistle")) Shops.openId(player, 241) else @@ -109,19 +108,19 @@ class NSListeners : InteractionListener { return@on true } - on(JOURNAL, IntType.ITEM, "read"){player, _ -> + on(JOURNAL, IntType.ITEM, "read"){ player, _ -> player.dialogueInterpreter.open(NSJournalDialogue()) return@on true } - on(WASHING_BOWL, IntType.GROUNDITEM, "take"){player, node -> + on(WASHING_BOWL, IntType.GROUNDITEM, "take"){ player, node -> SystemLogger.logInfo(this::class.java, "Running listener") GroundItemManager.create(Item(MIRROR), node.location, player) PickupHandler.take(player, node as GroundItem) return@on true } - on(MIRROR, IntType.GROUNDITEM, "take"){player, node -> + on(MIRROR, IntType.GROUNDITEM, "take"){ player, node -> if(getAttribute(player, MIRROR_TAKEN, false) && (inInventory(player, MIRROR) || inBank(player, MIRROR))){ sendDialogue(player, "I don't need another one of these.") return@on true @@ -131,7 +130,7 @@ class NSListeners : InteractionListener { return@on true } - on(SPELLCARD, IntType.ITEM, "cast"){player, node -> + on(SPELLCARD, IntType.ITEM, "cast"){ player, node -> if(NSUtils.castBloom(player)){ removeItem(player, node.asItem(), Container.INVENTORY) addItem(player, Items.A_USED_SPELL_2969) @@ -139,7 +138,7 @@ class NSListeners : InteractionListener { return@on true } - on(intArrayOf(DRUID_POUCH, DRUID_POUCH_EMPTY), IntType.ITEM, "fill"){player, node -> + on(intArrayOf(DRUID_POUCH, DRUID_POUCH_EMPTY), IntType.ITEM, "fill"){ player, node -> if(player.questRepository.getStage("Nature Spirit") >= 75) { if (amountInInventory(player, PEAR) >= 3) { @@ -170,7 +169,7 @@ class NSListeners : InteractionListener { return@on true } - onUseWith(IntType.SCENERY, Items.SILVER_SICKLE_2961, NATURE_ALTAR){player, used, with -> + onUseWith(IntType.SCENERY, Items.SILVER_SICKLE_2961, NATURE_ALTAR){ player, used, with -> sendItemDialogue(player, Items.SILVER_SICKLEB_2963, "You dump the sickle into the waters.") if(removeItem(player, Items.SILVER_SICKLE_2961, Container.INVENTORY)){ addItem(player, Items.SILVER_SICKLEB_2963, 1) @@ -178,7 +177,7 @@ class NSListeners : InteractionListener { return@onUseWith true } - onUseWith(IntType.NPC, DRUID_POUCH, NPCs.GHAST_1052){player, used, with -> + onUseWith(IntType.NPC, DRUID_POUCH, NPCs.GHAST_1052){ player, used, with -> NSUtils.activatePouch(player, with as MortMyreGhastNPC) } @@ -221,8 +220,8 @@ class NSJournalDialogue : DialogueFile() { class FillimanCompletionDialogue : DialogueFile() { override fun handle(componentID: Int, buttonID: Int) { when(stage){ - 0 -> npcl(FacialExpression.NEUTRAL, "Well, hello there again. I was just enjoying the grotto. Many thanks for your help, I couldn't have become a Spirit of nature without you.").also { stage++ } - 1 -> npcl(FacialExpression.NEUTRAL, "I must complete the transformation now. Just stand there and watch the show, apparently it's quite good!").also { stage++ } + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, hello there again. I was just enjoying the grotto. Many thanks for your help, I couldn't have become a Spirit of nature without you.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I must complete the transformation now. Just stand there and watch the show, apparently it's quite good!").also { stage++ } 2 -> { end() lock(player!!, 10) diff --git a/Server/src/main/content/region/morytania/quest/naturespirit/NSTarlockDialogue.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NSTarlockDialogue.kt new file mode 100644 index 000000000..e9332bd8e --- /dev/null +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NSTarlockDialogue.kt @@ -0,0 +1,240 @@ +package content.region.morytania.quest.naturespirit + +import core.api.Container +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.node.entity.player.link.quest.Quest +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.game.world.update.flag.context.Graphics +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class NSTarlockDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { + var questStage = 0 + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return NSTarlockDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + val quest = player.questRepository.getQuest("Nature Spirit") + questStage = quest.getStage(player) + + if(questStage > 10 && !inEquipment(player, Items.GHOSTSPEAK_AMULET_552)){ + npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "OooOOOOOOoooOoOOoOOOo") + setQuest(15) + return false + } + + when(questStage){ + 10, 15 -> sendDialogue("A shifting apparition appears in front of you.").also { stage = 1000 } + 20 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh, hello there, do you still think I'm dead? It's hard to see how I could be dead when I'm still in the world. I can see everything quite clearly. And nothing of what you say reflects the truth.") + 25 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh, hello... Sorry, you've caught me at a bad time, it's just that I've had a sign you see and I need to find my journal.").also { stage = 7 } + 30 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Thanks for the journal, I've been reading it. It looks like I came to a violent and bitter end but that's not really important. I just have to figure out what I am going to do now?").also { stage = 14 } + 35 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello there, have you been blessed yet?").also { stage = 60 } + 45 -> { + if(inInventory(player, Items.MORT_MYRE_FUNGUS_2970)){ + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Did you manage to get something from nature?").also { stage = 80 } + } else { + playerl( + core.game.dialogue.FacialExpression.NEUTRAL, + "Hello, I've been blessed but I don't know what to do now." + ).also { stage = 70 } + } + } + 50 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, " Hello again! I don't suppose you've found out what the other components of the Nature spell are have you?").also { stage = 90 } + else -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, ".......").also { stage = END_DIALOGUE } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> if(inInventory(player, Items.MIRROR_2966)){ + sendDialogue("You use the mirror on the spirit","of the dead Filliman Tarlock.").also { stage++ } + } else { + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, I do think you're dead and I'll prove it somehow.").also { stage = 1002 } + } + + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Here take a look at this, perhaps you can see that you're utterly transparent now!").also { stage++ } + 2 -> sendDialogue("The spirit of Filliman reaches forwards and takes the mirror.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, that is the most peculiar thing I've ever experienced. Strange how well it reflects the stagnant swamp behind me, but there is nothing of my own visage apparent.").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "That's because you're dead! Dead as a door nail... Deader in fact... You bear a remarkable resemblance to wormbait! Err... No offence...").also { stage++ } + 5 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I think you might be right my friend, though I still feel very much alive. It is strange how I still come to be here and yet I've not turned into a Ghast.").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, " It must be a sign... Yes a sign... I must try to find out what it means. Now, where did I put my journal?").also { stage++ } + 7 -> if(!inInventory(player, Items.JOURNAL_2967)){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Where did you put it?").also { stage++; setQuest(25) } + } else sendDialogue("You give the journal to Filliman Tarlock").also { removeItem(player, Items.JOURNAL_2967, Container.INVENTORY); stage = 10; setQuest(30) } + + //no journal + 8 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, if I knew that, I wouldn't still be looking for it. However, I do remember something about a knot? Perhaps I was meant to tie a knot or something?").also { stage = END_DIALOGUE } + + //has journal + 10 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Here, I found this, maybe you can use it?").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "My journal! That should help to collect my thoughts.").also { stage++ } + 12 -> sendDialogue("~ The spirit starts leafing through the journal. ~", "~ He seems quite distant as he regards the pages. ~", "~ After some time the druid faces you again. ~").also {stage++} + 13 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "It's all coming back to me now. It looks like I came to a violent and bitter end but that's not important now. I just have to figure out what I am going to do now?").also { stage++ } + 14 -> options("Being dead, what options do you think you have?", "So, what's your plan?", "Well, good luck with that.", "How can I help?", "Ok thanks.").also { stage++ } + 15 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Being dead, what options do you think you have? I'm not trying to be rude or anything, but it's not like you have many options is it? I mean, it's either up or down for you isn't it?").also { stage = 20 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "So, what's your plan?").also { stage = 30 } + 3 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, good luck with that.").also { stage = 40 } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "How can I help?").also { stage = 50 } + 5 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok thanks.").also { stage = END_DIALOGUE } + } + + //Being dead, what options + 20 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Hmm, well you're a poetic one aren't you. Your material world logic stands you in good stead... If you're standing in the material world...").also { stage = 14 } + + //what's your plan? + 30 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "In my former incarnation I was Filliman Tarlock, a great druid of some power. I spent many years in this place, which was once a forest and I would wish to protect it as a nature spirit.").also { stage = 14 } + + //good luck with that + 40 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Won't you help me to become a nature spirit? I could really use your help!").also { stage = 14 } + + //How can I help? + 50 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Will you help me to become a nature spirit? The directions for becoming one are a bit vague, I need three things but I know how to get one of them. Perhaps you can help collect the rest?").also { stage++ } + 51 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I might be interested, what's involved?").also { stage++ } + 52 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Well, the book says, that I need, and I quote:- 'Something with faith', 'something from nature' and the 'spirit-to-become' freely given'. Hmm, I know how to get something from nature.").also { stage++ } + 53 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, that does seem a bit vague.").also { stage++ } + 54 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Hmm, it does and I could understand if you didn't want to help. However, if you could perhaps at least get the item from nature, that would be a start. Perhaps we can figure out the rest as we go along.").also { stage++ } + 55 -> sendDialogue(*splitLines("The druid produces a small sheet of papyrus with some writing on it.")).also { addItemOrDrop(player, Items.DRUIDIC_SPELL_2968); setQuest(35); stage++ } + 56 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "This spell needs to be cast in the swamp after you have been blessed. I'm afraid you'll need to go to the temple to the North and ask a member of the clergy to bless you.").also { stage++ } + 57 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Blessed, what does that do?").also { stage++ } + 58 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It is required if you're to cast this druid spell. Once you've cast the spell, you should find something from nature. Bring it back to me and then we'll try to figure out the other things we need.").also { stage = END_DIALOGUE } + + //have you been blessed yet + 60 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No, not yet.").also { stage++ } + 61 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, hurry up!").also { stage++ } + 62 -> if(inInventory(player, Items.DRUIDIC_SPELL_2968) || inBank(player, Items.DRUIDIC_SPELL_2968)) end() + else playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Could I have another bloom scroll please?").also { stage++ } + 63 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Sure, but please look after this one.").also { stage++ } + 64 -> sendDialogue("The spirit of Filliman Tarlock gives you another bloom spell.").also { addItemOrDrop(player, Items.DRUIDIC_SPELL_2968); stage = END_DIALOGUE } + + //I've been blessed + 70 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, you need to bring 'something from nature', 'something with faith' and 'something of the spirit-to- become freely given.'").also { stage++ } + 71 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yeah, but what does that mean?").also { stage++ } + 72 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmm, it is a conundrum, however, if you use that spell I gave you, you should be able to get from nature. Once you have that, we may be puzzle the rest out.").also { stage++ } + 73 -> if(!inInventory(player, Items.DRUIDIC_SPELL_2968) && !inBank(player, Items.DRUIDIC_SPELL_2968)){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Could I have another bloom scroll please?").also { stage++ } + } else end() + 74 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Sure, but please look after this one.").also { stage++ } + 75 -> sendDialogue("The spirit of Filliman Tarlock gives you","another bloom spell.").also { addItem(player, Items.DRUIDIC_SPELL_2968); stage = END_DIALOGUE } + + //has fungus + 80 -> sendDialogue("You show the fungus to Filliman.").also { stage++ } + 81 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, I have a fungus here that I picked.").also { stage++ } + 82 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Wonderful, the mushroom represents 'something from nature'. Now we need to work out what the other components of the spell are!").also { stage = 90; setQuest(50) } + + //pre-spell options + 90 -> options("What are the things that are needed?", "What should I do when I have those things?", "I think I've solved the puzzle!", "Could I have another bloom scroll please?", "Ok, thanks.").also { stage++ } + 91 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What are the things that are needed?").also { stage = 100 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What should I do when I have those things?").also { stage = 110 } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I think I've solved the puzzle!").also { stage = 120 } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Can I have another bloom scroll please?").also { stage = 130 } + 5 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } + } + + //What things are needed? + 100 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "The three things are: 'Something with faith', 'something from nature' and 'something of the spirit-to-become freely given'.").also { stage++ } + 101 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, " Ok, and 'something from nature' is the mushroom from the bloom spell you gave me?").also { stage++ } + 102 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, that's correct, that seems right to me. The other things we need are 'something with faith' and 'something of the spirit-to-become freely given.").also { stage++ } + 103 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Do you have any ideas what those things are?").also { stage++ } + 104 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I'm sorry my friend, but I do not.").also { stage = 90 } + + //What should I do when I have them? + 110 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It says,.. 'to arrange upon three rocks around the spirit-to-become...'. Then I must cast a spell. As you can see, I've already placed the rocks.").also { stage++ } + 111 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Can we just place the components on any rock?").also { stage++ } + 112 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, the only thing the journal says is that 'something with faith stands south of the spirit-to-become', but I'm so confused now I don't really know what that means.").also { stage = 90 } + + //I think I've solved the puzzle! + 120 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Oh really.. Have you placed all the items on the stones? Ok, well, let's try!").also { stage++ } + 121 -> sendDialogue("~ The druid attempts to cast a spell. ~").also { stage++ } + 122 -> { + animate(npc, 812) + if(NSUtils.hasPlacedCard(player) && NSUtils.hasPlacedFungus(player) && NSUtils.onStone(player)){ + end() + player.lock() + val locations = arrayOf(Location.create(3439, 3336, 0), Location.create(3441, 3336, 0), Location.create(3440, 3335, 0)) + repeat(3) {i -> spawnProjectile(locations[i], Location.create(3440, 3336, 0), 268, 0, 35, 0, 100, 20) } + submitIndividualPulse(player, object : Pulse(4){ + override fun pulse(): Boolean { + sendNPCDialogue(player, npc.originalId, "Aha, everything seems to be in place! You can come through now into the grotto for the final section of my transformation.") + setQuest(55) + unlock(player) + return true + } + + override fun stop() { + visualize(npc, -1, Graphics(266, 80)) + super.stop() + } + }) + } else { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmm, something still doesn't seem right. I think we need something more before we can continue.") + } + + stage = END_DIALOGUE + } + + 130 -> if(inInventory(player, Items.DRUIDIC_SPELL_2968) || inBank(player, Items.DRUIDIC_SPELL_2968)){ + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "No, you've already got one!").also { stage = END_DIALOGUE } + } else { + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Sure, but look after this one.") + addItem(player, Items.DRUIDIC_SPELL_2968) + stage = END_DIALOGUE + } + + //Initial dialogue + 1000 -> playerl(core.game.dialogue.FacialExpression.HALF_ASKING, "Hello?").also { stage++ } + 1001 -> if(inEquipment(player, Items.GHOSTSPEAK_AMULET_552)){ + npcl(core.game.dialogue.FacialExpression.EXTREMELY_SHOCKED, "Oh, I understand you! At last, someone who doesn't just mumble. I understand what you're saying!").also { stage++ } + } else npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "OooOOoOOoOOOOo.") + + 1002 -> options("I'm wearing an amulet of ghost speak!","How long have you been a ghost?", "What's it like being a ghost?", "Ok, thanks.").also { stage++ } + 1003 -> when(buttonId){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I'm wearing an amulet of ghost speak!").also { stage = 1010; setQuest(20) } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "How long have you been a ghost?").also { stage = 1020; setQuest(20) } + 3 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What's it like being a ghost?").also { stage = 1030; setQuest(20) } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } + } + + 1010 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Why you poor fellow, have you passed away and you want to send a message back to a loved one?").also { stage++ } + 1011 -> playerl(core.game.dialogue.FacialExpression.HALF_THINKING, "Err.. Not exactly...").also { stage++ } + 1012 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "You have come to haunt my dreams until I pass on your message to a dearly loved one. I understand. Pray, tell me who would you like me to pass a message on to?").also { stage++ } + 1013 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ermm, you don't understand... It's just that...").also { stage++ } + 1014 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Yes!").also { stage++ } + 1015 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Well please don't be upset or anything... But you're the ghost!").also { stage++ } + 1016 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Don't be silly now! That in no way reflects the truth!").also { stage = 1002 } + + 1020 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "What?! Don't be preposterous! I'm not a ghost! How could you say something like that?").also { stage++ } + 1021 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "But it's true, you're a ghost... well, at least that is to say, you're sort of not alive anymore.").also { stage++ } + 1022 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Don't be silly, I can see you. I can see that tree. If I were dead, I wouldn't be able to see anything. What you say just doesn't reflect the truth. You'll have to try harder to put one over on me!").also { stage = 1002 } + + 1030 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "Oh, it's quite.... Oh... Trying to catch me out were you! Anyone can clearly see that I am not a ghost!").also { stage++ } + 1031 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "But you are a ghost, look at yourself! I can see straight through you! You're as dead as this swamp! Err... No offence or anything...").also { stage++ } + 1032 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "No I won't take offence because I'm not dead and I'm afraid you'll have to come up with some pretty conclusive proof before I believe it. What a strange dream this is.").also { stage = 1002 } + + + } + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.FILLIMAN_TARLOCK_1050) + } + + fun setQuest(stage: Int){ + player.questRepository.getQuest("Nature Spirit").setStage(player, stage) + } + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NSUtils.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt rename to Server/src/main/content/region/morytania/quest/naturespirit/NSUtils.kt index 8d1784a47..71ae0c275 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NSUtils.kt @@ -1,7 +1,7 @@ -package rs09.game.content.quest.members.naturespirit +package content.region.morytania.quest.naturespirit -import api.Container -import api.* +import core.api.Container +import core.api.* import core.game.node.scenery.SceneryBuilder import core.game.node.entity.player.Player import core.game.system.task.Pulse @@ -10,7 +10,7 @@ import core.game.world.map.RegionManager.forId import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.node.entity.npc.MortMyreGhastNPC +import content.region.morytania.handlers.MortMyreGhastNPC object NSUtils { fun flagFungusPlaced(player: Player) { diff --git a/Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritDialogue.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritDialogue.kt new file mode 100644 index 000000000..7361405a9 --- /dev/null +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritDialogue.kt @@ -0,0 +1,163 @@ +package content.region.morytania.quest.naturespirit + +import core.api.Container +import core.api.* +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.game.system.task.Pulse +import core.game.world.map.Location +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import core.tools.END_DIALOGUE + +@Initializable +class NatureSpiritDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + val questStage = player?.questRepository?.getStage("Nature Spirit") ?: 0 + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return NatureSpiritDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + when(questStage){ + 60 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hmm, good, the transformation is complete. Now, my friend, in return for your assistance, I will help you to kill the Ghasts. First bring to me a silver sickle so that I can bless it for you.").also { return true } + 65 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Have you brought me a silver sickle?").also { stage = 100; return true } + 70 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Now you can go forth and make the swamp bloom. Collect nature's bounty to fill a druids pouch. So armed will the Ghasts be bound to you until, you flee or they are defeated.").also { stage = 200 } + 75 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Hello again, my friend. Have you defeated three ghasts as I asked you?").also { stage = 300 } + else -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Welcome to my grotto, friend. Enjoy your visit.").also { stage = END_DIALOGUE } + } + return true + } + + override fun handle(componentID: Int, buttonID: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL,"A silver sickle? What's that?").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "The sickle is the symbol and weapon of the Druid, you need to construct one of silver so that I can bless it, with its powers you will be able to defeat the Ghasts of Mort Myre.").also { stage++; setQuest(65) } + 2 -> options("Where would I get a silver sickle?", "What will you do to the silver sickle?", "How can a blessed sickle help me to defeat the Ghasts?", "Ok, thanks.").also { stage++ } + 3 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Where would I get a silver sickle?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What will you do to the silver sickle?").also { stage = 20 } + 3 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "How can a blessed sickle help me to defeat the Ghasts?").also { stage = 30 } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } + } + + //where sickle + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You could make one yourself if you're artisan enough. I've heard of a distant sandy place where you can buy the mould that you require, it's similar in many respects to the creating of a holy symbol.").also { stage = 2 } + + //What you gonna do to my sickle bro + 20 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Why, I will give it my blessings so that the very swamp in which you stand will blossom and bloom!").also { stage = 2 } //pompous git + + //bruh how does a silver sickle help me tho + 30 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "My blessings will entice nature to bloom in Mort Myre! And then with nature's harvest you can fill a druids pouch and release the Ghasts from their torment.").also { stage = 2 } //this dude kinda weird + + //have you brought me a sickle yet bro + 100 -> if(inInventory(player, Items.SILVER_SICKLE_2961)){ + playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Yes, here it is. What are you going to do with it?").also { stage = 110 } + } else { + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "No sorry, not yet!").also { stage++ } + } + 101 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, come to me when you have it.").also { stage = 2 } + + /** + * This dialogue drags on so much man this quest has been like 95% dialogue. + * Nature Spirit dude also talks like an uppity self-righteous deity looking dude + */ + + //yeah bro I got it + 110 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "My friend, I will bless it for you and you will then be able to accomplish great things. Now then, I must cast the enchantment. You can bless a new sickle by dipping it in the holy water of the grotto.").also { stage++ } + 111 -> sendDialogue("- The Nature Spirit casts a spell on the player. -").also { stage++ } + + /** + * Here we go uoooh + */ + 112 -> end().also { lock(player, 10); submitWorldPulse(SickleBlessPulse(player, npc)) } + + //go kill some ghasts bro + 200 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Go forth into Mort Myre and slay three Ghasts. You'll be releasing their souls from Mort Myre.").also { stage++ } + 201 -> sendItemDialogue(player, Items.DRUID_POUCH_2957, "The nature spirit gives you an empty pouch.").also { stage++; setQuest(75) } + 202 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You'll need this in order to collect together nature's bounty. It will bind the Ghast to you until you flee or it is defeated.").also { stage = END_DIALOGUE } + + //Have you killed the ghasts yet bro + 300 -> if(NSUtils.getGhastKC(player) >= 3){ + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Yes, I've killed all three and their spirits have been released!").also { stage = 350 } + } else { + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Not yet.").also { stage++ } + } + + //nah bro + 301 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Well, when you do, please come to me and I'll reward you!").also { stage++ } + 302 -> options("How do I get to attack the Ghasts?", "What's this pouch for?", "What can I do with this sickle?", "I've lost my sickle.", "Ok, thanks.").also { stage++ } + 303 -> when(buttonID){ + 1 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "How do I get to attack the Ghasts?").also { stage = 310 } + 2 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What's this pouch for?").also { stage = 320 } + 3 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "What can I do with this sickle?").also { stage = 330 } + 4 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I've lost my sickle.").also { stage = 340 } + 5 -> playerl(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } + } + + //How do I attack duh ghosty bois + 310 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Go forth and with the sickle make the swamp bloom. Collect natures bounty to fill a druids pouch. So armed will the Ghasts be bound to you until, you flee or they are defeated.").also { stage = 302 } + + //What's dis funny pouch for? + 320 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It is for collecting natures bounty, once it contains the blossomed items of the swamp, it will make the Ghasts appear and you can then attack them.").also { stage = 302 } + + //What can I do wif da sickle m8 + 330 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You may use it wisely within the area of Mort Myre to affect natures balance and bring forth a bounty of natures harvest. Once collected into the druid pouch will the Ghast be apparent.").also { stage = 302 } + + //oi I lost it bruv + 340 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "If you should lose the blessed sickle, simply bring another to my altar of nature and refresh it in the grotto waters.").also { stage = 302 } + + //killed all dem buggers bruv + 350 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Many thanks my friend, you have completed your quest!").also { stage++ } + 351 -> end().also { player.questRepository.getQuest("Nature Spirit").finish(player) } + } + + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.NATURE_SPIRIT_1051) + } + + /** + * Needs to spawn 4ish of those green projectiles and the player needs to lift up the sickle + * then needs to open the dialogue back up with the quest stage at 70 + */ + internal class SickleBlessPulse(val player: Player, val spirit: NPC) : Pulse() { + var ticks = 0 + val locs: MutableList = player.location.surroundingTiles + + override fun pulse(): Boolean { + when(ticks++){ + 0 -> animate(spirit, 812) + 1 -> repeat(4) { + val loc = locs.random() + locs.remove(loc) + + spawnProjectile(loc, player.location, 268, 0, 400, 0, 125, 180) + animate(player, 9021) + } + 4 -> { + if(removeItem(player, Items.SILVER_SICKLE_2961, Container.INVENTORY)){ + addItem(player, Items.SILVER_SICKLEB_2963) + unlock(player) + player.questRepository.getQuest("Nature Spirit").setStage(player, 70) + openDialogue(player, NPCs.NATURE_SPIRIT_1051, findLocalNPC(player, NPCs.NATURE_SPIRIT_1051) as NPC) + sendMessage(player, "Your sickle has been blessed! You can bless a new sickle by dipping it into the grotto waters.") + } + } + 6 -> return true + } + return false + } + } + + fun setQuest(stage: Int){ + player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, stage) + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritQuest.kt b/Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritQuest.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritQuest.kt rename to Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritQuest.kt index b1ce94fa5..a1d6b7ada 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritQuest.kt +++ b/Server/src/main/content/region/morytania/quest/naturespirit/NatureSpiritQuest.kt @@ -1,6 +1,6 @@ -package rs09.game.content.quest.members.naturespirit +package content.region.morytania.quest.naturespirit -import api.* +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest import core.game.node.entity.skill.Skills diff --git a/Server/src/main/content/region/tirranwn/dialogue/ArvelDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/ArvelDialogue.kt new file mode 100644 index 000000000..e0636e6db --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/ArvelDialogue.kt @@ -0,0 +1,47 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + * Not including quest-related dialogue + */ + +@Initializable +class ArvelDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + fun gender (male : String = "hero", female : String = "heroine") = if (player.isMale) male else female + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Good day traveller. You are far from home, what brings you here?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I am a wandering " + gender() + ". I come here in search of adventure.").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Sounds ghastly, I just want to live in peace.").also { stage++ } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Unfortunately without people like me, peace doesn't last for long.").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "True, but then again most adventurers cause as much trouble as they put right.").also { stage++ } + 4 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "You've got a point there... Hmm...").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Well, good day traveller. And always do the right thing.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ArvelDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.ARVEL_2365) + } +} diff --git a/Server/src/main/content/region/tirranwn/dialogue/DalldavDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/DalldavDialogue.kt new file mode 100644 index 000000000..06c42f7cf --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/DalldavDialogue.kt @@ -0,0 +1,48 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class DalldavDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("Yes please. What are you selling?", "Why do you sell this stuff?", "No thanks.").also { stage++ } + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } + 2 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Why do you sell this stuff? The Crystal Bow is so much better.").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + } + + 10 -> end().also { npc.openShop(player) } + + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "We keep all these old toys to train our children with, but if people will part with coins for them, then they are theirs!").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return DalldavDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.DALLDAV_2356) + } +} diff --git a/Server/src/main/content/region/tirranwn/dialogue/ElfTrackerDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/ElfTrackerDialogue.kt new file mode 100644 index 000000000..41960ad14 --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/ElfTrackerDialogue.kt @@ -0,0 +1,89 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class ElfTrackerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + + //todo check if found tracks or not + //temporary booly boi + var tracksFound = false + if (!tracksFound) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.").also { stage = 0 } + } else { + playerl(core.game.dialogue.FacialExpression.NEUTRAL, "I've found tracks leading off to the west. But they trail off into the trees. Beyond that I am unable to follow.").also { stage = 30} + } + + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS, "Human! You must be one of Tyras's men...").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.HALF_GUILTY, "No, I'm " + player.name + "! Lord Iorwerth said you might be able to help me.").also { stage++ } + 2 -> npc(core.game.dialogue.FacialExpression.SUSPICIOUS, "And you have something to prove this?").also { stage++ } + 3 -> { + //todo check quest stages whenever it's added + if (player.inventory.contains(Items.CRYSTAL_PENDANT_3208, 1) || player.equipment.contains(Items.CRYSTAL_PENDANT_3208, 1)) { + sendDialogue("You show the tracker the crystal pendant.").also { stage = 20 } + } else { + player(core.game.dialogue.FacialExpression.HALF_GUILTY, "Well... Err... No.").also { stage = 10 } + } + } + 10 -> npcl(core.game.dialogue.FacialExpression.ANNOYED, "As I was saying... I have no time for brigands or outlaws.").also { stage = 99 } + + 20 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "That is Lord Iorwerth's pendant. He must have a lot of faith in you. Now, what is it I can help you with?").also { stage ++ } + 21 -> playerl(core.game.dialogue.FacialExpression.ASKING, "I need to find Tyras and kill him. Do you know where his camp is?").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well this was his old camp. After the battle a few days ago they moved. We're yet to find them again.").also { stage++ } + 23 -> player(core.game.dialogue.FacialExpression.ASKING, "Can I help at all?").also { stage++ } + 24 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "As it goes I'm not actually tracking them at the moment. I'm currently trying to trace our renegade brethen instead. This here is the best lead we've found so far.").also { stage++ } + 25 -> player(core.game.dialogue.FacialExpression.HALF_ASKING, "What is?").also { stage++ } + 26 -> npc(core.game.dialogue.FacialExpression.THINKING, "Ahh I guess you can't see it with those human eyes.").also { stage++ } + 27 -> npcl(core.game.dialogue.FacialExpression.THINKING, "I tell you what. Now that you're here I may as well give you a hand. I'll search here on the east side. You check out the west end of the camp.").also { stage++ } + 28 -> npc(core.game.dialogue.FacialExpression.THINKING, "Come and tell me if you find anything.").also { stage = 99 } + + //todo after finding the tracks + 30 -> npcl(core.game.dialogue.FacialExpression.THINKING, "These forests aren't always as dense as you'd think. If you look closer, you might see ways that you can get through. With that in mind, why don't you give it another go?").also { stage++ } + 31 -> player(core.game.dialogue.FacialExpression.ANNOYED, "Thanks... I'll see what I can find.").also { stage = 99 } + + //todo after searching past the dense forest + 40 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello.").also { stage++ } + 41 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "How goes the hunt for that bandit camp?").also { stage++ } + 42 -> { + //todo (If the camp has not been found) + //temporary booly bois + var campFound = false + if (!campFound) { + player(core.game.dialogue.FacialExpression.FRIENDLY, "Getting there.").also { stage = 99 } + } else { + player(core.game.dialogue.FacialExpression.NEUTRAL, "I found it a short distance west of here.").also { stage++ } + } + } + 43 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm sure Lord Iorwerth will be pleased to hear that. You should let him know.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return ElfTrackerDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.ELF_TRACKER_1199) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EoinDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/EoinDialogue.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EoinDialogue.kt rename to Server/src/main/content/region/tirranwn/dialogue/EoinDialogue.kt index 066862b6e..585ca84dd 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EoinDialogue.kt +++ b/Server/src/main/content/region/tirranwn/dialogue/EoinDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.lletya +package content.region.tirranwn.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,24 +12,24 @@ import org.rs09.consts.NPCs */ @Initializable -class EoinDialogue(player: Player? = null) : DialoguePlugin(player){ +class EoinDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Sorry, I cannot stop or Iona will catch me, we are playing tag!").also { stage = 99 } + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry, I cannot stop or Iona will catch me, we are playing tag!").also { stage = 99 } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return EoinDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EudavGethinDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/EudavGethinDialogue.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EudavGethinDialogue.kt rename to Server/src/main/content/region/tirranwn/dialogue/EudavGethinDialogue.kt index 3e22c2951..abd137377 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/EudavGethinDialogue.kt +++ b/Server/src/main/content/region/tirranwn/dialogue/EudavGethinDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.lletya +package content.region.tirranwn.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class EudavGethinDialogue(player: Player? = null) : DialoguePlugin(player){ +class EudavGethinDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } return true } @@ -26,7 +26,7 @@ class EudavGethinDialogue(player: Player? = null) : DialoguePlugin(player){ 1 -> when(buttonId) { 1 -> end().also { npc.openShop(player) } - 2 -> player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } } 99 -> end() @@ -34,7 +34,7 @@ class EudavGethinDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return EudavGethinDialogue(player) } diff --git a/Server/src/main/content/region/tirranwn/dialogue/GoreuDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/GoreuDialogue.kt new file mode 100644 index 000000000..62387565f --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/GoreuDialogue.kt @@ -0,0 +1,42 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class GoreuDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Good day, can I help you?").also { stage++ } + 1 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks I'm just watching the world go by.").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Well I can think of no better place to do it, it is beautiful here is it not?").also { stage++ } + 3 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Indeed it is.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return GoreuDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.GOREU_2363) + } +} diff --git a/Server/src/main/content/region/tirranwn/dialogue/IlfeenDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/IlfeenDialogue.kt new file mode 100644 index 000000000..991531649 --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/IlfeenDialogue.kt @@ -0,0 +1,78 @@ +package content.region.tirranwn.dialogue + +import core.api.addItemOrDrop +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class IlfeenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + //temp var + var queststage = 0 + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + //todo choose dialogue tree based off of quest stage + when(queststage) { + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Good day, what are you doing all the way out here?").also { stage = 0 } + 1 -> playerl(core.game.dialogue.FacialExpression.ASKING, "There is something I meant to ask you about. Do you remember Oaknock? He was a gnome inventor.").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Hello again. Are you still offering to chant seeds?").also { stage = 20 } + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "I'm just wandering, it's a lovely day for a walk in the woods.").also { stage++ } + 1 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "It is that.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Well I shouldn't keep you, see you later.").also { stage++ } + 3 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Bye.").also { stage = 99 } + + 10 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "Of course! I remember him from when I was living in the eastern lands. He was just a budding engineer then. I rather liked the young gnome: he was rather loud, but he had a good soul.").also { stage++ } + 11 -> npcl(core.game.dialogue.FacialExpression.HAPPY, "He was very interested in elven magic. Last time we spoke, not too long ago, he was very interested in illusion magic and how to dispel it. I gave him some advice and a few pieces of equipment to help him.").also { stage++ } + 12 -> playerl(core.game.dialogue.FacialExpression.THINKING, "I think Oaknock died of old age a few hundred years ago now.").also { stage++ } + 13 -> npcl(core.game.dialogue.FacialExpression.HALF_GUILTY, "I keep forgetting, a hundred years is a long time for you.").also { stage++ } + 14 -> player(core.game.dialogue.FacialExpression.ASKING, "Did you ever give him a seed?").also { stage++ } + 15 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Of course. It grew into a saw. I hope he found it useful.").also { stage++ } + 16 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I think he did! Thanks.").also { stage++ } + 17 -> sendDialogue("Ilfeen smiles serenely.").also { stage = 99 } + + 20 -> npcl(core.game.dialogue.FacialExpression.ASKING, "I am, but you’ll need your own seed. I can also chant your shield or bow back to full charges if you have it with you. Would you like me to enchant anything?").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.ASKING, "Or I could give you a book about crystal singing?").also { stage++ } + 22 -> options ("Enchant something.", "Crystal singing book.", "Nothing, thanks.").also { stage++ } + 23 -> when (buttonId) { + //1 -> todo opens interface for enchanting + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "Could I have the book, please?").also { stage = 40 } + 3 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Well, good luck.").also { stage = 43 } + } + + 40 -> { + addItemOrDrop(player, Items.CRYSTAL_OF_SEREN_4313, 1) + sendDialogue("Ilfeen hands you a book.").also { stage++ } + } + 41 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Thanks, I'll read all about it.").also { stage++ } + 42 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Well, good luck.").also { stage++ } + 43 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Goodbye, Ilfeen.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return IlfeenDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.ILFEEN_1777) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/IonaDialouge.kt b/Server/src/main/content/region/tirranwn/dialogue/IonaDialouge.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/IonaDialouge.kt rename to Server/src/main/content/region/tirranwn/dialogue/IonaDialouge.kt index 43c1b529d..861613954 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/IonaDialouge.kt +++ b/Server/src/main/content/region/tirranwn/dialogue/IonaDialouge.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.lletya +package content.region.tirranwn.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,24 +12,24 @@ import org.rs09.consts.NPCs */ @Initializable -class IonaDialouge(player: Player? = null) : DialoguePlugin(player){ +class IonaDialouge(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "I can never catch Eoin, he is just too fast, I am always 'It'.").also { stage = 99 } + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I can never catch Eoin, he is just too fast, I am always 'It'.").also { stage = 99 } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return IonaDialouge(player) } diff --git a/Server/src/main/content/region/tirranwn/dialogue/KelynDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/KelynDialogue.kt new file mode 100644 index 000000000..6081e6a8c --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/KelynDialogue.kt @@ -0,0 +1,43 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class KelynDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Huh... Oh sorry, you made me jump. I was miles away, day dreaming.").also { stage++ } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "About what may I ask?").also { stage++ } + 2 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I was thinking about the crystal spires of Prifddinas.").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "It must be beautiful, I've only seen the city walls.").also { stage++ } + 4 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "I have never seen it, all I know are the stories. I hope that changes one day.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return KelynDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.KELYN_2367) + } +} diff --git a/Server/src/main/content/region/tirranwn/dialogue/MawrthDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/MawrthDialogue.kt new file mode 100644 index 000000000..0584c99be --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/MawrthDialogue.kt @@ -0,0 +1,44 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class MawrthDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npcl(core.game.dialogue.FacialExpression.FRIENDLY,"Those children are nothing but trouble - if I did not watch them all the time, Seren knows what trouble they would get in to!").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "They look old enough to look after themselves.").also { stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "They are only 34 and 38, far too young to be left unsupervised.").also { stage++ } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Only!?! How old does that make you?").also { stage++ } + 3 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Has no one told you it is rude to ask a lady her age?").also { stage++ } + 4 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Sorry, I wasn't thinking. Anyway... I'd better stop distracting you.").also { stage++ } + 5 -> npc(core.game.dialogue.FacialExpression.FRIENDLY, "Okay, See you some other time.").also { stage = 99 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return MawrthDialogue(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.MAWRTH_2366) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/OronwenDialogue.kt b/Server/src/main/content/region/tirranwn/dialogue/OronwenDialogue.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/OronwenDialogue.kt rename to Server/src/main/content/region/tirranwn/dialogue/OronwenDialogue.kt index 328aebb10..9c52f04c4 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/OronwenDialogue.kt +++ b/Server/src/main/content/region/tirranwn/dialogue/OronwenDialogue.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.lletya +package content.region.tirranwn.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,11 +12,11 @@ import org.rs09.consts.NPCs */ @Initializable -class OronwenDialogue(player: Player? = null) : DialoguePlugin(player){ +class OronwenDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Hello, can I help?").also { stage = 0 } + npc(core.game.dialogue.FacialExpression.FRIENDLY,"Hello, can I help?").also { stage = 0 } return true } @@ -25,8 +25,8 @@ class OronwenDialogue(player: Player? = null) : DialoguePlugin(player){ 0 -> options("Yes please. What are you selling?", "No thanks.").also { stage++ } 1 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } + 1 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } } 10 -> end().also { npc.openShop(player) } @@ -36,7 +36,7 @@ class OronwenDialogue(player: Player? = null) : DialoguePlugin(player){ return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return OronwenDialogue(player) } diff --git a/Server/src/main/java/core/game/content/dialogue/QuarterMasterDialogue.java b/Server/src/main/content/region/tirranwn/dialogue/QuarterMasterDialogue.java similarity index 93% rename from Server/src/main/java/core/game/content/dialogue/QuarterMasterDialogue.java rename to Server/src/main/content/region/tirranwn/dialogue/QuarterMasterDialogue.java index 799b40248..3bee089c1 100644 --- a/Server/src/main/java/core/game/content/dialogue/QuarterMasterDialogue.java +++ b/Server/src/main/content/region/tirranwn/dialogue/QuarterMasterDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.tirranwn.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/content/region/tirranwn/dialogue/TyrasGuard.kt b/Server/src/main/content/region/tirranwn/dialogue/TyrasGuard.kt new file mode 100644 index 000000000..409963af6 --- /dev/null +++ b/Server/src/main/content/region/tirranwn/dialogue/TyrasGuard.kt @@ -0,0 +1,57 @@ +package content.region.tirranwn.dialogue + +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression +import core.game.node.entity.npc.NPC +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.NPCs + +/** + * @author qmqz + */ + +@Initializable +class TyrasGuard(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ + + override fun open(vararg args: Any?): Boolean { + npc = args[0] as NPC + npc(core.game.dialogue.FacialExpression.FRIENDLY,"What is it?").also { stage = 0 } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("What's going on around here?", "Do you know what's south of here?", "I'll leave you alone.").also { stage++ } + 1 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "What's going on around here?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.ASKING, "Do you know what's south of here?").also { stage = 20 } + 3 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "I'll leave you alone.").also { stage = 99 } + } + + 10 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Sorry, I shouldn't give out sensitive information to civilians. You should go to General Hining, in the camp along the road.").also { stage++ } + 11 -> options("Do you know what's south of here?", "Okay, thanks.").also { stage++ } + 12 -> when (buttonId) { + 1 -> player(core.game.dialogue.FacialExpression.ASKING, "Do you know what's south of here?").also { stage = 20 } + 2 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = 99 } + } + + 20 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "No. We sent a scouting party in that direction, when we first established our camp. Some of the men got lost in the swamps. Eventually we listed them as dead.").also { stage++ } + 21 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Then suddenly they returned, with a wild gleam in their eyes, raving about gods and snakes and all kinds of madness.").also { stage++ } + 22 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "We had to drive them out, in case their condition infected the rest of the troops. Their wives will be given a full widow pension when we return home.").also { stage++ } + 23 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "General Hining concluded that, whatever is down there, it's not affiliated with any of the elf factions, and it should be left alone.").also { stage++ } + 24 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "Thank you.").also { stage = 0 } + + 99 -> end() + } + return true + } + + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { + return TyrasGuard(player) + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.TYRAS_GUARD_1203) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuardTent.kt b/Server/src/main/content/region/tirranwn/dialogue/TyrasGuardTent.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuardTent.kt rename to Server/src/main/content/region/tirranwn/dialogue/TyrasGuardTent.kt index 2ce812926..5fcf504e6 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuardTent.kt +++ b/Server/src/main/content/region/tirranwn/dialogue/TyrasGuardTent.kt @@ -1,7 +1,7 @@ -package rs09.game.content.dialogue.region.isafdar +package content.region.tirranwn.dialogue -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.DialoguePlugin +import core.game.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable @@ -12,24 +12,24 @@ import org.rs09.consts.NPCs */ @Initializable -class TyrasGuardTent(player: Player? = null) : DialoguePlugin(player){ +class TyrasGuardTent(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ override fun open(vararg args: Any?): Boolean { npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello").also { stage = 0 } + player(core.game.dialogue.FacialExpression.FRIENDLY,"Hello").also { stage = 0 } return true } override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> npcl(FacialExpression.NEUTRAL,"Sorry, can't stop to talk. You should go to General Hining if you need something.").also { stage = 99 } + 0 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"Sorry, can't stop to talk. You should go to General Hining if you need something.").also { stage = 99 } 99 -> end() } return true } - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return TyrasGuardTent(player) } diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/IsafdarListeners.kt b/Server/src/main/content/region/tirranwn/handlers/IsafdarListeners.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/interaction/region/IsafdarListeners.kt rename to Server/src/main/content/region/tirranwn/handlers/IsafdarListeners.kt index 4400321ad..15d837ecb 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/IsafdarListeners.kt +++ b/Server/src/main/content/region/tirranwn/handlers/IsafdarListeners.kt @@ -1,8 +1,8 @@ -package rs09.game.interaction.region +package content.region.tirranwn.handlers import core.game.world.map.Location -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * File to be used for anything Isafdar related. diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/ElunedDialogue.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/ElunedDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/ElunedDialogue.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/ElunedDialogue.java index 5f7739d85..283f98467 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/ElunedDialogue.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/ElunedDialogue.java @@ -1,7 +1,7 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/IsafdarZone.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/IsafdarZone.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/IsafdarZone.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/IsafdarZone.java index 83e2d0b98..11c0d1397 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/IsafdarZone.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/IsafdarZone.java @@ -1,6 +1,6 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/IslwynDialogue.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/IslwynDialogue.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java index d86e0ff03..b24862a1f 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/IslwynDialogue.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/MossGiantGuardianNPC.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/MossGiantGuardianNPC.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/MossGiantGuardianNPC.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/MossGiantGuardianNPC.java index 7fbc3f44d..842f3cc9b 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/MossGiantGuardianNPC.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/MossGiantGuardianNPC.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; import core.cache.def.impl.NPCDefinition; import core.game.interaction.OptionHandler; @@ -12,7 +12,7 @@ import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.world.map.Location; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The level 84 Moss Giant in Glarial's tomb. diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElves.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElves.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElves.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElves.java index 1d3d969dd..52546a877 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElves.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElves.java @@ -1,11 +1,11 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.plugin.Initializable; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * The Roving Elves quest. diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesObstacles.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesObstacles.java similarity index 98% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesObstacles.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesObstacles.java index ecb2495f4..d14ff7bc3 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesObstacles.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesObstacles.java @@ -1,8 +1,8 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.cache.def.impl.SceneryDefinition; -import core.game.node.entity.skill.agility.AgilityHandler; +import content.global.skill.agility.AgilityHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesPlugin.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesPlugin.java similarity index 97% rename from Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesPlugin.java rename to Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesPlugin.java index c04388c8c..243e4823a 100644 --- a/Server/src/main/java/core/game/content/quest/members/rovingelves/RovingElvesPlugin.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/RovingElvesPlugin.java @@ -1,4 +1,4 @@ -package core.game.content.quest.members.rovingelves; +package content.region.tirranwn.quest.rovingelves; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.SceneryDefinition; @@ -8,7 +8,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/dialogue/CapeMerchantDialogue.java b/Server/src/main/content/region/wilderness/dialogue/CapeMerchantDialogue.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/CapeMerchantDialogue.java rename to Server/src/main/content/region/wilderness/dialogue/CapeMerchantDialogue.java index 20e772742..ebf5d9593 100644 --- a/Server/src/main/java/core/game/content/dialogue/CapeMerchantDialogue.java +++ b/Server/src/main/content/region/wilderness/dialogue/CapeMerchantDialogue.java @@ -1,5 +1,6 @@ -package core.game.content.dialogue; +package content.region.wilderness.dialogue; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/BorkNPC.java b/Server/src/main/content/region/wilderness/handlers/BorkNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/other/BorkNPC.java rename to Server/src/main/content/region/wilderness/handlers/BorkNPC.java index 96400f4f9..c38db760c 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/BorkNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/BorkNPC.java @@ -1,7 +1,7 @@ -package core.game.node.entity.npc.other; +package content.region.wilderness.handlers; import core.game.component.Component; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -14,7 +14,7 @@ import core.game.node.item.ChanceItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.game.world.update.flag.context.Animation; @@ -27,13 +27,13 @@ import core.net.packet.out.CameraViewPacket; import core.net.packet.out.MinimapState; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.content.dialogue.DialogueInterpreter; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; +import core.game.activity.ActivityPlugin; +import core.game.activity.CutscenePlugin; +import core.game.dialogue.DialogueInterpreter; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; import core.game.node.entity.skill.Skills; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/ChaosElementalNPC.java b/Server/src/main/content/region/wilderness/handlers/ChaosElementalNPC.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/ChaosElementalNPC.java rename to Server/src/main/content/region/wilderness/handlers/ChaosElementalNPC.java index ca9936f48..d9bd9eada 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/ChaosElementalNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/ChaosElementalNPC.java @@ -1,7 +1,6 @@ -package core.game.node.entity.npc.bosses.wilderness; +package content.region.wilderness.handlers; -import api.ContentAPIKt; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -12,15 +11,14 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; import core.game.world.map.Location; -import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; -import static api.ContentAPIKt.getPathableRandomLocalCoordinate; +import static core.api.ContentAPIKt.getPathableRandomLocalCoordinate; /** * Handles the chaos elemental npc. diff --git a/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java b/Server/src/main/content/region/wilderness/handlers/ChaosTunnelZone.java similarity index 98% rename from Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java rename to Server/src/main/content/region/wilderness/handlers/ChaosTunnelZone.java index fa1483f96..0dbabb18b 100644 --- a/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java +++ b/Server/src/main/content/region/wilderness/handlers/ChaosTunnelZone.java @@ -1,11 +1,11 @@ -package core.game.content.zone; +package content.region.wilderness.handlers; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import core.cache.def.impl.SceneryDefinition; -import core.game.content.activity.ActivityManager; +import core.game.activity.ActivityManager; import core.game.interaction.Option; import core.game.interaction.OptionHandler; import core.game.node.Node; @@ -14,8 +14,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import org.json.simple.JSONObject; -import rs09.ServerStore; -import rs09.game.world.GameWorld; +import core.ServerStore; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; @@ -24,7 +24,7 @@ import core.game.world.map.zone.ZoneRestriction; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/kotlin/rs09/game/content/zone/CorpAreaController.kt b/Server/src/main/content/region/wilderness/handlers/CorpAreaController.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/content/zone/CorpAreaController.kt rename to Server/src/main/content/region/wilderness/handlers/CorpAreaController.kt index 1973b27b5..3d168f98d 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/CorpAreaController.kt +++ b/Server/src/main/content/region/wilderness/handlers/CorpAreaController.kt @@ -1,13 +1,12 @@ -package rs09.game.content.zone +package content.region.wilderness.handlers -import api.* +import core.api.* import core.game.node.entity.Entity -import core.game.node.entity.npc.bosses.corp.CorporealBeastNPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.summoning.familiar.Familiar +import content.global.skill.summoning.familiar.Familiar import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneRestriction -import rs09.tools.secondsToTicks +import core.tools.secondsToTicks class CorpAreaController : MapArea, TickListener { companion object { diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/corp/CorporealBeastNPC.java b/Server/src/main/content/region/wilderness/handlers/CorporealBeastNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/bosses/corp/CorporealBeastNPC.java rename to Server/src/main/content/region/wilderness/handlers/CorporealBeastNPC.java index 260cf8b4a..fe46c728e 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/corp/CorporealBeastNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/CorporealBeastNPC.java @@ -1,6 +1,6 @@ -package core.game.node.entity.npc.bosses.corp; +package content.region.wilderness.handlers; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; @@ -19,9 +19,9 @@ import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; import core.plugin.Plugin; import core.tools.RandomFunction; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.MultiSwingHandler; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/kotlin/rs09/game/interaction/CorporealBeastWarningInterface.kt b/Server/src/main/content/region/wilderness/handlers/CorporealBeastWarningInterface.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/interaction/CorporealBeastWarningInterface.kt rename to Server/src/main/content/region/wilderness/handlers/CorporealBeastWarningInterface.kt index c259ede92..fe4fceb46 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/CorporealBeastWarningInterface.kt +++ b/Server/src/main/content/region/wilderness/handlers/CorporealBeastWarningInterface.kt @@ -1,14 +1,15 @@ -package rs09.game.interaction +package content.region.wilderness.handlers import core.game.component.Component import core.game.node.entity.player.Player -import rs09.game.world.GameWorld +import core.game.interaction.InterfaceListener +import core.game.world.GameWorld /** * Handles the corporeal beast warning interface * @author Ceikry */ -class CorporealBeastWarningInterface : InterfaceListener{ +class CorporealBeastWarningInterface : InterfaceListener { val COMPONENT_ID = 650 @@ -16,7 +17,7 @@ class CorporealBeastWarningInterface : InterfaceListener{ on(COMPONENT_ID,17){player,component,_,_,_,_ -> if(player.getAttribute("corp-beast-cave-delay",0) <= GameWorld.ticks) { player.properties.teleportLocation = player.location.transform(4, 0, 0).also { close(player,component) } - player.setAttribute("corp-beast-cave-delay",GameWorld.ticks + 5) + player.setAttribute("corp-beast-cave-delay", GameWorld.ticks + 5) } else { close(player,component) } diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/corp/DarkEnergyCoreNPC.java b/Server/src/main/content/region/wilderness/handlers/DarkEnergyCoreNPC.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/bosses/corp/DarkEnergyCoreNPC.java rename to Server/src/main/content/region/wilderness/handlers/DarkEnergyCoreNPC.java index 0da933b84..3b35a1e36 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/corp/DarkEnergyCoreNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/DarkEnergyCoreNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.bosses.corp; +package content.region.wilderness.handlers; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; @@ -8,7 +8,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/KingBlackDragonNPC.java b/Server/src/main/content/region/wilderness/handlers/KingBlackDragonNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/KingBlackDragonNPC.java rename to Server/src/main/content/region/wilderness/handlers/KingBlackDragonNPC.java index b69cce4ef..d7dd2c7b5 100644 --- a/Server/src/main/java/core/game/node/entity/npc/bosses/wilderness/KingBlackDragonNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/KingBlackDragonNPC.java @@ -1,14 +1,14 @@ -package core.game.node.entity.npc.bosses.wilderness; +package content.region.wilderness.handlers; -import core.game.content.global.BossKillCounter; +import content.data.BossKillCounter; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.InteractionType; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.combat.equipment.FireType; -import core.game.node.entity.combat.handlers.DragonfireSwingHandler; +import content.global.handlers.item.equipment.special.DragonfireSwingHandler; import core.game.node.entity.impl.Projectile; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; diff --git a/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java b/Server/src/main/content/region/wilderness/handlers/LavaMazePlugin.java similarity index 92% rename from Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java rename to Server/src/main/content/region/wilderness/handlers/LavaMazePlugin.java index 0282bca1d..4af2240f4 100644 --- a/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java +++ b/Server/src/main/content/region/wilderness/handlers/LavaMazePlugin.java @@ -1,7 +1,7 @@ -package core.game.interaction.object; +package content.region.wilderness.handlers; import core.cache.def.impl.SceneryDefinition; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt b/Server/src/main/content/region/wilderness/handlers/MuddyChestHandler.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt rename to Server/src/main/content/region/wilderness/handlers/MuddyChestHandler.kt index 93a35bd51..48000d5f9 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt +++ b/Server/src/main/content/region/wilderness/handlers/MuddyChestHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction.`object` +package content.region.wilderness.handlers import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder @@ -6,8 +6,8 @@ import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.game.world.update.flag.context.Animation import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType /** * Handles the muddy chest diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt b/Server/src/main/content/region/wilderness/handlers/RoguesCastleListeners.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt rename to Server/src/main/content/region/wilderness/handlers/RoguesCastleListeners.kt index 839816588..f2e1a50f2 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt +++ b/Server/src/main/content/region/wilderness/handlers/RoguesCastleListeners.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction.region.wilderness +package content.region.wilderness.handlers -import api.* +import core.api.* import core.game.node.scenery.Scenery import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player @@ -9,10 +9,10 @@ import core.game.node.item.Item import core.game.system.task.Pulse import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class RoguesCastleListeners : InteractionListener { @@ -27,7 +27,7 @@ class RoguesCastleListeners : InteractionListener { return@on true } - on(FLOOR_1_CHESTS, IntType.SCENERY, "search"){player, node -> + on(FLOOR_1_CHESTS, IntType.SCENERY, "search"){ player, node -> val scenery = node.asScenery() if(getCharge(scenery) == 0){ sendMessage(player, "This chest has already been looted.") @@ -45,12 +45,12 @@ class RoguesCastleListeners : InteractionListener { return@on true } - on(FLOOR_2_CHESTS, IntType.SCENERY, "open"){player, node -> + on(FLOOR_2_CHESTS, IntType.SCENERY, "open"){ player, node -> sendMessage(player, "This chest appears to be locked.") return@on true } - on(FLOOR_2_CHESTS, IntType.SCENERY, "pick-lock"){player, node -> + on(FLOOR_2_CHESTS, IntType.SCENERY, "pick-lock"){ player, node -> val scenery = node.asScenery() if(!inInventory(player, Items.LOCKPICK_1523)){ sendMessage(player, "You need a lockpick in order to attempt this.") @@ -85,7 +85,7 @@ class RoguesCastleListeners : InteractionListener { return@on true } - on(FLOOR_2_CHESTS, IntType.SCENERY, "search"){player, node -> + on(FLOOR_2_CHESTS, IntType.SCENERY, "search"){ player, node -> val scenery = node.asScenery() if(getCharge(scenery) == 0){ diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SkulledState.kt b/Server/src/main/content/region/wilderness/handlers/SkulledState.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SkulledState.kt rename to Server/src/main/content/region/wilderness/handlers/SkulledState.kt index e8868370d..a23fba064 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/states/SkulledState.kt +++ b/Server/src/main/content/region/wilderness/handlers/SkulledState.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.state.newsys.states +package content.region.wilderness.handlers import core.game.node.entity.player.Player import core.game.system.task.Pulse import org.json.simple.JSONObject -import rs09.game.node.entity.state.newsys.PlayerState -import rs09.game.node.entity.state.newsys.State +import core.game.node.entity.state.PlayerState +import core.game.node.entity.state.State @PlayerState("skull") class SkulledState(player: Player? = null) : State(player) { diff --git a/Server/src/main/java/core/game/content/zone/WildernessAreaZone.java b/Server/src/main/content/region/wilderness/handlers/WildernessAreaZone.java similarity index 97% rename from Server/src/main/java/core/game/content/zone/WildernessAreaZone.java rename to Server/src/main/content/region/wilderness/handlers/WildernessAreaZone.java index 03d756796..acf3727c6 100644 --- a/Server/src/main/java/core/game/content/zone/WildernessAreaZone.java +++ b/Server/src/main/content/region/wilderness/handlers/WildernessAreaZone.java @@ -1,13 +1,13 @@ -package core.game.content.zone; +package content.region.wilderness.handlers; -import core.game.content.dialogue.DialogueAction; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.content.global.action.DoorActionHandler; +import core.game.dialogue.DialogueAction; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.FacialExpression; +import core.game.global.action.DoorActionHandler; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.gather.SkillingResource; -import core.game.node.entity.skill.gather.SkillingTool; +import content.global.skill.gather.SkillingResource; +import content.data.skill.SkillingTool; import core.game.interaction.NodeUsageEvent; import core.game.interaction.Option; import core.game.interaction.UseWithHandler; @@ -18,14 +18,14 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java b/Server/src/main/content/region/wilderness/handlers/WildernessDitchPlugin.java similarity index 96% rename from Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java rename to Server/src/main/content/region/wilderness/handlers/WildernessDitchPlugin.java index a0803aa69..4c93fdf39 100644 --- a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java +++ b/Server/src/main/content/region/wilderness/handlers/WildernessDitchPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object.wildyditch; +package content.region.wilderness.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; @@ -10,7 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; /** * Represents the plugin to handle the crossing. diff --git a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java b/Server/src/main/content/region/wilderness/handlers/WildernessInterfacePlugin.java similarity index 97% rename from Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java rename to Server/src/main/content/region/wilderness/handlers/WildernessInterfacePlugin.java index 57c54cc53..6fb35af71 100644 --- a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java +++ b/Server/src/main/content/region/wilderness/handlers/WildernessInterfacePlugin.java @@ -1,9 +1,9 @@ -package core.game.interaction.object.wildyditch; +package content.region.wilderness.handlers; import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java b/Server/src/main/content/region/wilderness/handlers/WildernessObeliskPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java rename to Server/src/main/content/region/wilderness/handlers/WildernessObeliskPlugin.java index 75ea82f6e..6c9b66448 100644 --- a/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java +++ b/Server/src/main/content/region/wilderness/handlers/WildernessObeliskPlugin.java @@ -1,4 +1,4 @@ -package core.game.interaction.object; +package content.region.wilderness.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; @@ -8,7 +8,7 @@ import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.scenery.Scenery; import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.chunk.GraphicUpdateFlag; diff --git a/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java b/Server/src/main/content/region/wilderness/handlers/WildernessPlugin.java similarity index 98% rename from Server/src/main/java/core/game/interaction/city/WildernessPlugin.java rename to Server/src/main/content/region/wilderness/handlers/WildernessPlugin.java index fe057d388..45543b45e 100644 --- a/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java +++ b/Server/src/main/content/region/wilderness/handlers/WildernessPlugin.java @@ -1,8 +1,8 @@ -package core.game.interaction.city; +package content.region.wilderness.handlers; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; -import core.game.content.global.action.ClimbActionHandler; +import core.game.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantCombatHandler.java b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantCombatHandler.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/revenant/RevenantCombatHandler.java rename to Server/src/main/content/region/wilderness/handlers/revenants/RevenantCombatHandler.java index e71a4883c..3beb7a61f 100644 --- a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantCombatHandler.java +++ b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantCombatHandler.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.revenant; +package content.region.wilderness.handlers.revenants; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -11,8 +11,8 @@ import core.game.node.entity.state.EntityState; import core.game.world.map.zone.impl.WildernessZone; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; -import rs09.game.node.entity.combat.handlers.MultiSwingHandler; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.MultiSwingHandler; +import core.game.world.GameWorld; /** * Handles the multi swing combat handler for revenants. diff --git a/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantController.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt rename to Server/src/main/content/region/wilderness/handlers/revenants/RevenantController.kt index 2628b612f..3d15eb0bc 100644 --- a/Server/src/main/kotlin/rs09/game/content/zone/wilderness/RevenantController.kt +++ b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantController.kt @@ -1,29 +1,24 @@ -package rs09.game.content.zone.wilderness +package content.region.wilderness.handlers.revenants -import api.Commands -import api.TickListener -import api.poofClear -import api.teleport +import core.api.Commands +import core.api.TickListener +import core.api.poofClear +import core.api.teleport import core.game.interaction.MovementPulse import core.game.node.entity.npc.NPC -import core.game.node.entity.npc.revenant.RevenantNPC -import core.game.node.entity.npc.revenant.RevenantType import core.game.node.entity.player.link.TeleportManager import core.game.system.task.Pulse import core.game.world.map.Location -import core.game.world.map.zone.ZoneBorders import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction -import rs09.ServerConstants -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.game.world.repository.Repository import java.lang.Integer.min -import java.util.* import kotlin.collections.ArrayList import kotlin.collections.HashMap -import kotlin.math.max class RevenantController : TickListener, Commands { diff --git a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantNPC.java b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantNPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/revenant/RevenantNPC.java rename to Server/src/main/content/region/wilderness/handlers/revenants/RevenantNPC.java index 3ad53edc7..34f921773 100644 --- a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantNPC.java +++ b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantNPC.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.revenant; +package content.region.wilderness.handlers.revenants; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; @@ -8,7 +8,7 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.Familiar; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.zone.ZoneBorders; @@ -16,10 +16,9 @@ import core.game.world.map.zone.impl.WildernessZone; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.tools.RandomFunction; -import rs09.game.content.zone.wilderness.RevenantController; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.system.config.NPCConfigParser; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.system.config.NPCConfigParser; +import core.game.world.GameWorld; /** * Handles a revenant NPC. diff --git a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantType.java b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantType.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/npc/revenant/RevenantType.java rename to Server/src/main/content/region/wilderness/handlers/revenants/RevenantType.java index 2b3322560..fe582d1cf 100644 --- a/Server/src/main/java/core/game/node/entity/npc/revenant/RevenantType.java +++ b/Server/src/main/content/region/wilderness/handlers/revenants/RevenantType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.npc.revenant; +package content.region.wilderness.handlers.revenants; /** * A revenant type. diff --git a/Server/src/main/kotlin/rs09/GlobalStats.kt b/Server/src/main/core/GlobalStats.kt similarity index 95% rename from Server/src/main/kotlin/rs09/GlobalStats.kt rename to Server/src/main/core/GlobalStats.kt index 415a4615c..f055e32ff 100644 --- a/Server/src/main/kotlin/rs09/GlobalStats.kt +++ b/Server/src/main/core/GlobalStats.kt @@ -1,7 +1,7 @@ -package rs09 +package core import org.json.simple.JSONObject -import rs09.ServerStore.Companion.getInt +import core.ServerStore.Companion.getInt object GlobalStats { diff --git a/Server/src/main/kotlin/rs09/JSONUtils.kt b/Server/src/main/core/JSONUtils.kt similarity index 99% rename from Server/src/main/kotlin/rs09/JSONUtils.kt rename to Server/src/main/core/JSONUtils.kt index df375170a..bafec26a5 100644 --- a/Server/src/main/kotlin/rs09/JSONUtils.kt +++ b/Server/src/main/core/JSONUtils.kt @@ -1,4 +1,4 @@ -package rs09 +package core import core.game.world.map.Location import java.io.File diff --git a/Server/src/main/kotlin/rs09/Server.kt b/Server/src/main/core/Server.kt similarity index 96% rename from Server/src/main/kotlin/rs09/Server.kt rename to Server/src/main/core/Server.kt index 5cb4f62e5..09c36c40a 100644 --- a/Server/src/main/kotlin/rs09/Server.kt +++ b/Server/src/main/core/Server.kt @@ -1,14 +1,14 @@ -package rs09 +package core import core.game.system.SystemManager import core.game.system.SystemState import core.net.NioReactor import core.tools.TimeStamp import kotlinx.coroutines.* -import rs09.game.system.SystemLogger -import rs09.game.system.config.ServerConfigParser -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.tools.SystemLogger +import core.game.system.config.ServerConfigParser +import core.game.world.GameWorld +import core.game.world.repository.Repository import java.io.File import java.io.FileWriter import java.lang.management.ManagementFactory diff --git a/Server/src/main/java/core/ServerConstants.backup b/Server/src/main/core/ServerConstants.backup similarity index 100% rename from Server/src/main/java/core/ServerConstants.backup rename to Server/src/main/core/ServerConstants.backup diff --git a/Server/src/main/kotlin/rs09/ServerConstants.kt b/Server/src/main/core/ServerConstants.kt similarity index 99% rename from Server/src/main/kotlin/rs09/ServerConstants.kt rename to Server/src/main/core/ServerConstants.kt index 0e8140280..f8889d41b 100644 --- a/Server/src/main/kotlin/rs09/ServerConstants.kt +++ b/Server/src/main/core/ServerConstants.kt @@ -1,9 +1,9 @@ -package rs09 +package core import core.game.system.SystemShutdownHook import core.game.world.map.Location import core.tools.mysql.Database -import rs09.tools.secondsToTicks +import core.tools.secondsToTicks import java.math.BigInteger /** diff --git a/Server/src/main/kotlin/rs09/ServerStore.kt b/Server/src/main/core/ServerStore.kt similarity index 96% rename from Server/src/main/kotlin/rs09/ServerStore.kt rename to Server/src/main/core/ServerStore.kt index fa6a81b5e..9535d15be 100644 --- a/Server/src/main/kotlin/rs09/ServerStore.kt +++ b/Server/src/main/core/ServerStore.kt @@ -1,18 +1,15 @@ -package rs09 +package core -import api.PersistWorld -import api.ShutdownListener -import api.StartupListener -import api.getItemName +import core.api.PersistWorld +import core.api.getItemName import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerStore.Companion.addToList -import rs09.game.system.SystemLogger -import rs09.game.system.SystemLogger.logShutdown -import rs09.game.system.SystemLogger.logStartup +import core.tools.SystemLogger +import core.tools.SystemLogger.logShutdown +import core.tools.SystemLogger.logStartup import java.io.File import java.io.FileReader import java.io.FileWriter diff --git a/Server/src/main/java/core/Util.java b/Server/src/main/core/Util.java similarity index 100% rename from Server/src/main/java/core/Util.java rename to Server/src/main/core/Util.java diff --git a/Server/src/main/kotlin/api/ApiExtensions.kt b/Server/src/main/core/api/ApiExtensions.kt similarity index 98% rename from Server/src/main/kotlin/api/ApiExtensions.kt rename to Server/src/main/core/api/ApiExtensions.kt index 814337b02..cdd664c19 100644 --- a/Server/src/main/kotlin/api/ApiExtensions.kt +++ b/Server/src/main/core/api/ApiExtensions.kt @@ -1,4 +1,4 @@ -package api +package core.api import core.game.node.item.Item import java.util.* diff --git a/Server/src/main/kotlin/api/Commands.kt b/Server/src/main/core/api/Commands.kt similarity index 91% rename from Server/src/main/kotlin/api/Commands.kt rename to Server/src/main/core/api/Commands.kt index 656919a70..33305875e 100644 --- a/Server/src/main/kotlin/api/Commands.kt +++ b/Server/src/main/core/api/Commands.kt @@ -1,10 +1,10 @@ -package api +package core.api import core.game.node.entity.player.Player -import rs09.game.system.command.Command -import rs09.game.system.command.CommandMapping -import rs09.game.system.command.Privilege -import rs09.tools.stringtools.colorize +import core.game.system.command.Command +import core.game.system.command.CommandMapping +import core.game.system.command.Privilege +import core.tools.colorize /** * An interface for writing content that allows the class to define commands. diff --git a/Server/src/main/kotlin/api/Container.kt b/Server/src/main/core/api/Container.kt similarity index 79% rename from Server/src/main/kotlin/api/Container.kt rename to Server/src/main/core/api/Container.kt index 83b92e3a3..590d94a61 100644 --- a/Server/src/main/kotlin/api/Container.kt +++ b/Server/src/main/core/api/Container.kt @@ -1,4 +1,4 @@ -package api +package core.api enum class Container { INVENTORY, diff --git a/Server/src/main/kotlin/api/ContentAPI.kt b/Server/src/main/core/api/ContentAPI.kt similarity index 98% rename from Server/src/main/kotlin/api/ContentAPI.kt rename to Server/src/main/core/api/ContentAPI.kt index a382ff85b..e74e5e43e 100644 --- a/Server/src/main/kotlin/api/ContentAPI.kt +++ b/Server/src/main/core/api/ContentAPI.kt @@ -1,15 +1,11 @@ -package api +package core.api -import Cutscene import com.moandjiezana.toml.Toml import core.cache.def.impl.ItemDefinition import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition import core.game.component.Component import core.game.container.impl.EquipmentContainer -import core.game.content.dialogue.DialogueAction -import core.game.content.dialogue.FacialExpression -import core.game.content.global.action.SpecialLadders import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.combat.ImpactHandler @@ -25,9 +21,9 @@ import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.player.link.emote.Emotes import core.game.node.entity.player.link.quest.QuestRepository import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.gather.SkillingTool -import core.game.node.entity.skill.slayer.Tasks -import core.game.node.entity.skill.summoning.familiar.BurdenBeast +import content.data.skill.SkillingTool +import content.global.skill.slayer.Tasks +import content.global.skill.summoning.familiar.BurdenBeast import core.game.node.entity.state.EntityState import core.game.node.item.GroundItem import core.game.node.item.GroundItemManager @@ -48,22 +44,23 @@ import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.SkillDialogueHandler -import rs09.game.content.global.GlobalKillCounter -import rs09.game.content.global.shops.Shops -import rs09.game.ge.GrandExchangeRecords -import rs09.game.interaction.InteractionListeners -import rs09.game.interaction.inter.ge.StockMarket -import rs09.game.node.entity.player.info.LogType -import rs09.game.node.entity.player.info.PlayerMonitor -import rs09.game.node.entity.skill.slayer.SlayerManager -import rs09.game.system.SystemLogger -import rs09.game.system.config.ItemConfigParser -import rs09.game.system.config.ServerConfigParser -import rs09.game.world.GameWorld -import rs09.game.world.GameWorld.Pulser -import rs09.game.world.repository.Repository +import core.game.dialogue.DialogueFile +import core.game.dialogue.SkillDialogueHandler +import core.api.utils.GlobalKillCounter +import core.game.shops.Shops +import core.game.ge.GrandExchangeRecords +import core.game.interaction.InteractionListeners +import content.global.handlers.iface.ge.StockMarket +import content.global.skill.slayer.SlayerManager +import core.game.activity.Cutscene +import core.game.node.entity.player.info.LogType +import core.game.node.entity.player.info.PlayerMonitor +import core.tools.SystemLogger +import core.game.system.config.ItemConfigParser +import core.game.system.config.ServerConfigParser +import core.game.world.GameWorld +import core.game.world.GameWorld.Pulser +import core.game.world.repository.Repository /** * Gets a skilling tool which the player has the level to use and is in their inventory. @@ -1221,7 +1218,7 @@ fun closeTabInterface(player: Player) { * @param msg the message to send. * @param expr the FacialExpression to use. An enum exists for these called FacialExpression. Defaults to FacialExpression.FRIENDLY */ -fun sendPlayerDialogue(player: Player, msg: String, expr: FacialExpression = FacialExpression.FRIENDLY) { +fun sendPlayerDialogue(player: Player, msg: String, expr: core.game.dialogue.FacialExpression = core.game.dialogue.FacialExpression.FRIENDLY) { player.dialogueInterpreter.sendDialogues(player, expr, *splitLines(msg)) } @@ -1242,7 +1239,7 @@ fun sendPlayerOnInterface(player: Player, iface: Int, child: Int) { * @param msg the message to send. * @param expr the FacialExpression to use. An enum exists for these called FacialExpression. Defaults to FacialExpression.FRIENDLY */ -fun sendNPCDialogue(player: Player, npc: Int, msg: String, expr: FacialExpression = FacialExpression.FRIENDLY) { +fun sendNPCDialogue(player: Player, npc: Int, msg: String, expr: core.game.dialogue.FacialExpression = core.game.dialogue.FacialExpression.FRIENDLY) { player.dialogueInterpreter.sendDialogues(npc, expr, *splitLines(msg)) } @@ -1477,7 +1474,7 @@ fun animateInterface(player: Player, iface: Int, child: Int, anim: Int) { * @param dest the destination for the climb. */ fun addClimbDest(ladderLoc: Location, dest: Location) { - SpecialLadders.add(ladderLoc, dest) + core.game.global.action.SpecialLadders.add(ladderLoc, dest) } /** @@ -2238,7 +2235,7 @@ fun isPlayer(node: Node) : Boolean { * @param player the player to add the dialogue action to * @param action the dialogue action to add */ -fun addDialogueAction(player: Player, action: DialogueAction) { +fun addDialogueAction(player: Player, action: core.game.dialogue.DialogueAction) { player.dialogueInterpreter.addAction(action) } diff --git a/Server/src/main/kotlin/api/ContentInterface.kt b/Server/src/main/core/api/ContentInterface.kt similarity index 89% rename from Server/src/main/kotlin/api/ContentInterface.kt rename to Server/src/main/core/api/ContentInterface.kt index c8bdc0ca9..1c48fe94b 100644 --- a/Server/src/main/kotlin/api/ContentInterface.kt +++ b/Server/src/main/core/api/ContentInterface.kt @@ -1,4 +1,4 @@ -package api +package core.api interface ContentInterface { /** diff --git a/Server/src/main/kotlin/api/DialUtils.kt b/Server/src/main/core/api/DialUtils.kt similarity index 98% rename from Server/src/main/kotlin/api/DialUtils.kt rename to Server/src/main/core/api/DialUtils.kt index a24683e46..87e30b754 100644 --- a/Server/src/main/kotlin/api/DialUtils.kt +++ b/Server/src/main/core/api/DialUtils.kt @@ -1,4 +1,4 @@ -package api +package core.api import java.util.* import kotlin.math.ceil diff --git a/Server/src/main/kotlin/api/EquipmentSlot.kt b/Server/src/main/core/api/EquipmentSlot.kt similarity index 91% rename from Server/src/main/kotlin/api/EquipmentSlot.kt rename to Server/src/main/core/api/EquipmentSlot.kt index 15dea2bfc..53a60fcf6 100644 --- a/Server/src/main/kotlin/api/EquipmentSlot.kt +++ b/Server/src/main/core/api/EquipmentSlot.kt @@ -1,4 +1,4 @@ -package api +package core.api enum class EquipmentSlot { HAT, diff --git a/Server/src/main/kotlin/rs09/game/Event.kt b/Server/src/main/core/api/Event.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/Event.kt rename to Server/src/main/core/api/Event.kt index 6f85c77b6..d608ad716 100644 --- a/Server/src/main/kotlin/rs09/game/Event.kt +++ b/Server/src/main/core/api/Event.kt @@ -1,6 +1,6 @@ -package rs09.game +package core.api -import api.events.* +import core.game.event.* object Event { @JvmStatic val ResourceProduced = ResourceProducedEvent::class.java diff --git a/Server/src/main/kotlin/api/God.kt b/Server/src/main/core/api/God.kt similarity index 97% rename from Server/src/main/kotlin/api/God.kt rename to Server/src/main/core/api/God.kt index 6bbeaa0d0..72815bc97 100644 --- a/Server/src/main/kotlin/api/God.kt +++ b/Server/src/main/core/api/God.kt @@ -1,4 +1,4 @@ -package api +package core.api enum class God(vararg val validItems: Int) { ARMADYL(87, 11694, 11718, 11720, 11722, 12670, 12671, 14671), diff --git a/Server/src/main/kotlin/api/IfaceSettingsBuilder.kt b/Server/src/main/core/api/IfaceSettingsBuilder.kt similarity index 99% rename from Server/src/main/kotlin/api/IfaceSettingsBuilder.kt rename to Server/src/main/core/api/IfaceSettingsBuilder.kt index ff2084f55..d3e5774d0 100644 --- a/Server/src/main/kotlin/api/IfaceSettingsBuilder.kt +++ b/Server/src/main/core/api/IfaceSettingsBuilder.kt @@ -1,4 +1,4 @@ -package api +package core.api /** * Used to generate interface settings hashes. diff --git a/Server/src/main/kotlin/api/InputType.kt b/Server/src/main/core/api/InputType.kt similarity index 85% rename from Server/src/main/kotlin/api/InputType.kt rename to Server/src/main/core/api/InputType.kt index 73810bce5..bdbf2b2c9 100644 --- a/Server/src/main/kotlin/api/InputType.kt +++ b/Server/src/main/core/api/InputType.kt @@ -1,4 +1,4 @@ -package api +package core.api enum class InputType { AMOUNT, diff --git a/Server/src/main/kotlin/api/LoginListener.kt b/Server/src/main/core/api/LoginListener.kt similarity index 97% rename from Server/src/main/kotlin/api/LoginListener.kt rename to Server/src/main/core/api/LoginListener.kt index f967353be..e76164008 100644 --- a/Server/src/main/kotlin/api/LoginListener.kt +++ b/Server/src/main/core/api/LoginListener.kt @@ -1,4 +1,4 @@ -package api +package core.api import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/api/LogoutListener.kt b/Server/src/main/core/api/LogoutListener.kt similarity index 96% rename from Server/src/main/kotlin/api/LogoutListener.kt rename to Server/src/main/core/api/LogoutListener.kt index 8b7456511..bd845913c 100644 --- a/Server/src/main/kotlin/api/LogoutListener.kt +++ b/Server/src/main/core/api/LogoutListener.kt @@ -1,4 +1,4 @@ -package api +package core.api import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/api/MapArea.kt b/Server/src/main/core/api/MapArea.kt similarity index 98% rename from Server/src/main/kotlin/api/MapArea.kt rename to Server/src/main/core/api/MapArea.kt index 8dea8a4a4..d7f12f06d 100644 --- a/Server/src/main/kotlin/api/MapArea.kt +++ b/Server/src/main/core/api/MapArea.kt @@ -1,4 +1,4 @@ -package api +package core.api import core.game.node.entity.Entity import core.game.world.map.Location diff --git a/Server/src/main/kotlin/api/PersistPlayer.kt b/Server/src/main/core/api/PersistPlayer.kt similarity index 98% rename from Server/src/main/kotlin/api/PersistPlayer.kt rename to Server/src/main/core/api/PersistPlayer.kt index dc9588416..76c6db1e4 100644 --- a/Server/src/main/kotlin/api/PersistPlayer.kt +++ b/Server/src/main/core/api/PersistPlayer.kt @@ -1,4 +1,4 @@ -package api +package core.api import core.game.node.entity.player.Player import org.json.simple.JSONObject diff --git a/Server/src/main/kotlin/api/PersistWorld.kt b/Server/src/main/core/api/PersistWorld.kt similarity index 82% rename from Server/src/main/kotlin/api/PersistWorld.kt rename to Server/src/main/core/api/PersistWorld.kt index ac905eafd..06571fe4e 100644 --- a/Server/src/main/kotlin/api/PersistWorld.kt +++ b/Server/src/main/core/api/PersistWorld.kt @@ -1,4 +1,4 @@ -package api +package core.api interface PersistWorld : ContentInterface { fun save() diff --git a/Server/src/main/kotlin/api/ShutdownListener.kt b/Server/src/main/core/api/ShutdownListener.kt similarity index 84% rename from Server/src/main/kotlin/api/ShutdownListener.kt rename to Server/src/main/core/api/ShutdownListener.kt index cbabc2c23..21e20e269 100644 --- a/Server/src/main/kotlin/api/ShutdownListener.kt +++ b/Server/src/main/core/api/ShutdownListener.kt @@ -1,6 +1,4 @@ -package api - -import rs09.game.system.SystemLogger +package core.api /** * An interface for writing content that allows the class to execute code as the server is shutting down diff --git a/Server/src/main/kotlin/api/StartupListener.kt b/Server/src/main/core/api/StartupListener.kt similarity index 84% rename from Server/src/main/kotlin/api/StartupListener.kt rename to Server/src/main/core/api/StartupListener.kt index 4f2fe9f9f..d3735f50d 100644 --- a/Server/src/main/kotlin/api/StartupListener.kt +++ b/Server/src/main/core/api/StartupListener.kt @@ -1,6 +1,4 @@ -package api - -import rs09.game.system.SystemLogger +package core.api /** * An interface for writing content that allows the class to execute code when the server is started. diff --git a/Server/src/main/kotlin/api/TickListener.kt b/Server/src/main/core/api/TickListener.kt similarity index 96% rename from Server/src/main/kotlin/api/TickListener.kt rename to Server/src/main/core/api/TickListener.kt index debf63b37..f006d593c 100644 --- a/Server/src/main/kotlin/api/TickListener.kt +++ b/Server/src/main/core/api/TickListener.kt @@ -1,4 +1,4 @@ -package api +package core.api /** * An interface for writing content that allows the class to be updated each tick. diff --git a/Server/src/main/kotlin/api/regionspec/RegionSpecification.kt b/Server/src/main/core/api/regionspec/RegionSpecification.kt similarity index 94% rename from Server/src/main/kotlin/api/regionspec/RegionSpecification.kt rename to Server/src/main/core/api/regionspec/RegionSpecification.kt index bc6b66267..78dde9ce4 100644 --- a/Server/src/main/kotlin/api/regionspec/RegionSpecification.kt +++ b/Server/src/main/core/api/regionspec/RegionSpecification.kt @@ -1,6 +1,6 @@ -package api.regionspec +package core.api.regionspec -import api.regionspec.contracts.* +import core.api.regionspec.contracts.* import core.game.world.map.Region import core.game.world.map.RegionChunk import core.game.world.map.RegionPlane diff --git a/Server/src/main/kotlin/api/regionspec/contracts/ChunkSpecContract.kt b/Server/src/main/core/api/regionspec/contracts/ChunkSpecContract.kt similarity index 76% rename from Server/src/main/kotlin/api/regionspec/contracts/ChunkSpecContract.kt rename to Server/src/main/core/api/regionspec/contracts/ChunkSpecContract.kt index d91c0c7ea..ea4bd936f 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/ChunkSpecContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/ChunkSpecContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/kotlin/api/regionspec/contracts/CloneRegionContract.kt b/Server/src/main/core/api/regionspec/contracts/CloneRegionContract.kt similarity index 85% rename from Server/src/main/kotlin/api/regionspec/contracts/CloneRegionContract.kt rename to Server/src/main/core/api/regionspec/contracts/CloneRegionContract.kt index b5934d267..63b3279c1 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/CloneRegionContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/CloneRegionContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/kotlin/api/regionspec/contracts/EmptyChunkContract.kt b/Server/src/main/core/api/regionspec/contracts/EmptyChunkContract.kt similarity index 80% rename from Server/src/main/kotlin/api/regionspec/contracts/EmptyChunkContract.kt rename to Server/src/main/core/api/regionspec/contracts/EmptyChunkContract.kt index 476328ca4..3abd07f61 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/EmptyChunkContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/EmptyChunkContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/kotlin/api/regionspec/contracts/EmptyRegionContract.kt b/Server/src/main/core/api/regionspec/contracts/EmptyRegionContract.kt similarity index 87% rename from Server/src/main/kotlin/api/regionspec/contracts/EmptyRegionContract.kt rename to Server/src/main/core/api/regionspec/contracts/EmptyRegionContract.kt index 50246e22c..a8f8725a3 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/EmptyRegionContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/EmptyRegionContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/kotlin/api/regionspec/contracts/FillChunkContract.kt b/Server/src/main/core/api/regionspec/contracts/FillChunkContract.kt similarity index 97% rename from Server/src/main/kotlin/api/regionspec/contracts/FillChunkContract.kt rename to Server/src/main/core/api/regionspec/contracts/FillChunkContract.kt index 078bb43a2..a26d33b92 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/FillChunkContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/FillChunkContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.BuildRegionChunk import core.game.world.map.Region diff --git a/Server/src/main/kotlin/api/regionspec/contracts/RegionSpecContract.kt b/Server/src/main/core/api/regionspec/contracts/RegionSpecContract.kt similarity index 76% rename from Server/src/main/kotlin/api/regionspec/contracts/RegionSpecContract.kt rename to Server/src/main/core/api/regionspec/contracts/RegionSpecContract.kt index d654aee12..3136bd48c 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/RegionSpecContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/RegionSpecContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/kotlin/api/regionspec/contracts/UseExistingRegionContract.kt b/Server/src/main/core/api/regionspec/contracts/UseExistingRegionContract.kt similarity index 84% rename from Server/src/main/kotlin/api/regionspec/contracts/UseExistingRegionContract.kt rename to Server/src/main/core/api/regionspec/contracts/UseExistingRegionContract.kt index e568c307c..d6a30a3f7 100644 --- a/Server/src/main/kotlin/api/regionspec/contracts/UseExistingRegionContract.kt +++ b/Server/src/main/core/api/regionspec/contracts/UseExistingRegionContract.kt @@ -1,4 +1,4 @@ -package api.regionspec.contracts +package core.api.regionspec.contracts import core.game.world.map.build.DynamicRegion diff --git a/Server/src/main/core/api/utils/CameraUtils.kt b/Server/src/main/core/api/utils/CameraUtils.kt new file mode 100644 index 000000000..f242b5b49 --- /dev/null +++ b/Server/src/main/core/api/utils/CameraUtils.kt @@ -0,0 +1,5 @@ +package core.api.utils + +object CameraUtils { + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/global/GlobalKillCounter.kt b/Server/src/main/core/api/utils/GlobalKillCounter.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/global/GlobalKillCounter.kt rename to Server/src/main/core/api/utils/GlobalKillCounter.kt index 9ff5d1fd9..b89f82eea 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/GlobalKillCounter.kt +++ b/Server/src/main/core/api/utils/GlobalKillCounter.kt @@ -1,19 +1,18 @@ -package rs09.game.content.global +package core.api.utils -import api.ShutdownListener -import api.StartupListener +import core.api.ShutdownListener +import core.api.StartupListener import core.game.node.entity.player.Player -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.io.File import java.io.FileReader import java.io.FileWriter -import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants +import core.ServerConstants import core.game.node.item.Item -import rs09.game.system.SystemLogger.logShutdown -import rs09.game.system.SystemLogger.logStartup +import core.tools.SystemLogger.logShutdown +import core.tools.SystemLogger.logStartup class GlobalKillCounter : StartupListener, ShutdownListener { override fun startup() { diff --git a/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt b/Server/src/main/core/api/utils/NPCDropTable.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt rename to Server/src/main/core/api/utils/NPCDropTable.kt index acea8a8cf..a12ea62df 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt +++ b/Server/src/main/core/api/utils/NPCDropTable.kt @@ -1,4 +1,4 @@ -package rs09.game.content.global +package core.api.utils import core.game.node.item.Item diff --git a/Server/src/main/kotlin/rs09/game/camerautils/PlayerCamera.kt b/Server/src/main/core/api/utils/PlayerCamera.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/camerautils/PlayerCamera.kt rename to Server/src/main/core/api/utils/PlayerCamera.kt index 2c8a17fef..a775cc7ae 100644 --- a/Server/src/main/kotlin/rs09/game/camerautils/PlayerCamera.kt +++ b/Server/src/main/core/api/utils/PlayerCamera.kt @@ -1,7 +1,6 @@ -package rs09.game.camerautils +package core.api.utils import core.game.node.entity.player.Player -import rs09.game.system.SystemLogger import core.net.packet.PacketRepository import core.net.packet.context.CameraContext import core.net.packet.out.CameraViewPacket diff --git a/Server/src/main/kotlin/rs09/game/content/global/WeightBasedTable.kt b/Server/src/main/core/api/utils/WeightBasedTable.kt similarity index 80% rename from Server/src/main/kotlin/rs09/game/content/global/WeightBasedTable.kt rename to Server/src/main/core/api/utils/WeightBasedTable.kt index 7d0c4d745..87c53bfb4 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/WeightBasedTable.kt +++ b/Server/src/main/core/api/utils/WeightBasedTable.kt @@ -1,15 +1,15 @@ -package rs09.game.content.global +package core.api.utils import core.cache.def.impl.ItemDefinition -import core.game.content.ttrail.ClueLevel -import core.game.content.ttrail.ClueScrollPlugin -import core.game.node.entity.npc.drop.RareDropTable -import core.game.node.entity.npc.drop.CELEMinorTable -import core.game.node.entity.npc.drop.UncommonSeedDropTable -import core.game.node.entity.npc.drop.HerbDropTable -import core.game.node.entity.npc.drop.GemDropTable -import core.game.node.entity.npc.drop.RareSeedDropTable -import core.game.node.entity.npc.drop.AllotmentSeedDropTable +import content.global.activity.ttrail.ClueLevel +import content.global.activity.ttrail.ClueScrollPlugin +import content.data.tables.RareDropTable +import content.data.tables.CELEMinorTable +import content.data.tables.UncommonSeedDropTable +import content.data.tables.HerbDropTable +import content.data.tables.GemDropTable +import content.data.tables.RareSeedDropTable +import content.data.tables.AllotmentSeedDropTable import core.game.node.entity.player.Player import core.game.node.item.Item import core.tools.RandomFunction @@ -75,59 +75,59 @@ open class WeightBasedTable : ArrayList() { return (guaranteed.isNotEmpty() && player.inventory.hasSpaceFor(*guaranteed)) || !player.inventory.isFull } - fun insertEasyClue(weight: Double): WeightBasedTable{ + fun insertEasyClue(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_CLUE_EASY,1,1,weight,false)) return this } - fun insertMediumClue(weight: Double): WeightBasedTable{ + fun insertMediumClue(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_CLUE_MEDIUM,1,1,weight,false)) return this } - fun insertHardClue(weight: Double): WeightBasedTable{ + fun insertHardClue(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_CLUE_HARD,1,1,weight,false)) return this } - fun insertRDTRoll(weight: Double): WeightBasedTable{ + fun insertRDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_RDT,1,1,weight,false)) return this } - fun insertCELEDTRoll(weight: Double): WeightBasedTable{ + fun insertCELEDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_CELEDT,1,1,weight,false)) return this } - fun insertSEEDDTRoll(weight: Double): WeightBasedTable{ + fun insertSEEDDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_USDT,1,1,weight,false)) return this } - fun insertHERBDTRoll(weight: Double): WeightBasedTable{ + fun insertHERBDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_HDT,1,1,weight,false)) return this } - fun insertGDTRoll(weight: Double): WeightBasedTable{ + fun insertGDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_GDT,1,1,weight,false)) return this } - fun insertRSDTRoll(weight: Double): WeightBasedTable{ + fun insertRSDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_RSDT,1,1,weight,false)) return this } - fun insertASDTRoll(weight: Double): WeightBasedTable{ + fun insertASDTRoll(weight: Double): WeightBasedTable { this.add(WeightedItem(SLOT_ASDT,1,1,weight,false)) return this } companion object { @JvmStatic - fun create(vararg items: WeightedItem): WeightBasedTable{ + fun create(vararg items: WeightedItem): WeightBasedTable { val table = WeightBasedTable() items.forEach { table.add(it) diff --git a/Server/src/main/kotlin/rs09/game/content/global/WeightedItem.kt b/Server/src/main/core/api/utils/WeightedItem.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/content/global/WeightedItem.kt rename to Server/src/main/core/api/utils/WeightedItem.kt index c2c7cff3b..adba25ebb 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/WeightedItem.kt +++ b/Server/src/main/core/api/utils/WeightedItem.kt @@ -1,4 +1,4 @@ -package rs09.game.content.global +package core.api.utils import core.game.node.item.Item import core.tools.RandomFunction diff --git a/Server/src/main/kotlin/rs09/game/system/Auth.kt b/Server/src/main/core/auth/Auth.kt similarity index 64% rename from Server/src/main/kotlin/rs09/game/system/Auth.kt rename to Server/src/main/core/auth/Auth.kt index 7694badea..8d55aff71 100644 --- a/Server/src/main/kotlin/rs09/game/system/Auth.kt +++ b/Server/src/main/core/auth/Auth.kt @@ -1,12 +1,9 @@ -package rs09.game.system +package core.auth -import rs09.ServerConstants -import rs09.auth.AuthProvider -import rs09.auth.DevelopmentAuthenticator -import rs09.auth.ProductionAuthenticator -import rs09.storage.AccountStorageProvider -import rs09.storage.InMemoryStorageProvider -import rs09.storage.SQLStorageProvider +import core.ServerConstants +import core.storage.AccountStorageProvider +import core.storage.InMemoryStorageProvider +import core.storage.SQLStorageProvider object Auth { lateinit var authenticator: AuthProvider<*> diff --git a/Server/src/main/kotlin/rs09/auth/AuthProvider.kt b/Server/src/main/core/auth/AuthProvider.kt similarity index 85% rename from Server/src/main/kotlin/rs09/auth/AuthProvider.kt rename to Server/src/main/core/auth/AuthProvider.kt index 5d6203d63..69db563c7 100644 --- a/Server/src/main/kotlin/rs09/auth/AuthProvider.kt +++ b/Server/src/main/core/auth/AuthProvider.kt @@ -1,7 +1,7 @@ -package rs09.auth +package core.auth import core.game.node.entity.player.Player -import rs09.storage.AccountStorageProvider +import core.storage.AccountStorageProvider abstract class AuthProvider { lateinit var storageProvider: T @@ -14,7 +14,7 @@ abstract class AuthProvider { abstract fun createAccountWith(info: UserAccountInfo) : Boolean - abstract fun checkLogin(username: String, password: String) : Pair + abstract fun checkLogin(username: String, password: String) : Pair abstract fun checkPassword(player: Player, password: String) : Boolean diff --git a/Server/src/main/kotlin/rs09/auth/AuthResponse.kt b/Server/src/main/core/auth/AuthResponse.kt similarity index 96% rename from Server/src/main/kotlin/rs09/auth/AuthResponse.kt rename to Server/src/main/core/auth/AuthResponse.kt index ef1c7393c..379d927ff 100644 --- a/Server/src/main/kotlin/rs09/auth/AuthResponse.kt +++ b/Server/src/main/core/auth/AuthResponse.kt @@ -1,4 +1,4 @@ -package rs09.auth +package core.auth enum class AuthResponse { UnexpectedError, diff --git a/Server/src/main/kotlin/rs09/auth/DevelopmentAuthenticator.kt b/Server/src/main/core/auth/DevelopmentAuthenticator.kt similarity index 91% rename from Server/src/main/kotlin/rs09/auth/DevelopmentAuthenticator.kt rename to Server/src/main/core/auth/DevelopmentAuthenticator.kt index bd20e1fc1..eb26aa483 100644 --- a/Server/src/main/kotlin/rs09/auth/DevelopmentAuthenticator.kt +++ b/Server/src/main/core/auth/DevelopmentAuthenticator.kt @@ -1,9 +1,8 @@ -package rs09.auth +package core.auth import core.game.node.entity.player.Player -import rs09.ServerConstants -import rs09.storage.AccountStorageProvider -import rs09.storage.InMemoryStorageProvider +import core.ServerConstants +import core.storage.AccountStorageProvider class DevelopmentAuthenticator : AuthProvider() { override fun configureFor(provider: AccountStorageProvider) { diff --git a/Server/src/main/kotlin/rs09/auth/ProductionAuthenticator.kt b/Server/src/main/core/auth/ProductionAuthenticator.kt similarity index 95% rename from Server/src/main/kotlin/rs09/auth/ProductionAuthenticator.kt rename to Server/src/main/core/auth/ProductionAuthenticator.kt index 0ba94f5c4..d4831aa92 100644 --- a/Server/src/main/kotlin/rs09/auth/ProductionAuthenticator.kt +++ b/Server/src/main/core/auth/ProductionAuthenticator.kt @@ -1,10 +1,10 @@ -package rs09.auth +package core.auth import core.game.node.entity.player.Player import core.game.system.SystemManager -import rs09.ServerConstants -import rs09.storage.AccountStorageProvider -import rs09.storage.SQLStorageProvider +import core.ServerConstants +import core.storage.AccountStorageProvider +import core.storage.SQLStorageProvider import java.sql.SQLDataException import java.sql.Timestamp diff --git a/Server/src/main/kotlin/rs09/auth/UserAccountInfo.kt b/Server/src/main/core/auth/UserAccountInfo.kt similarity index 99% rename from Server/src/main/kotlin/rs09/auth/UserAccountInfo.kt rename to Server/src/main/core/auth/UserAccountInfo.kt index 5d420680d..58f8e37e6 100644 --- a/Server/src/main/kotlin/rs09/auth/UserAccountInfo.kt +++ b/Server/src/main/core/auth/UserAccountInfo.kt @@ -1,4 +1,4 @@ -package rs09.auth +package core.auth import java.sql.Timestamp diff --git a/Server/src/main/java/core/cache/Cache.java b/Server/src/main/core/cache/Cache.java similarity index 99% rename from Server/src/main/java/core/cache/Cache.java rename to Server/src/main/core/cache/Cache.java index d4733986d..1751622f7 100644 --- a/Server/src/main/java/core/cache/Cache.java +++ b/Server/src/main/core/cache/Cache.java @@ -4,13 +4,13 @@ import java.io.File; import java.io.RandomAccessFile; import java.nio.ByteBuffer; -import rs09.ServerConstants; +import core.ServerConstants; import core.cache.def.impl.AnimationDefinition; import core.cache.def.impl.GraphicDefinition; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; /** * A cache reader. diff --git a/Server/src/main/java/core/cache/CacheFile.java b/Server/src/main/core/cache/CacheFile.java similarity index 100% rename from Server/src/main/java/core/cache/CacheFile.java rename to Server/src/main/core/cache/CacheFile.java diff --git a/Server/src/main/java/core/cache/CacheFileManager.java b/Server/src/main/core/cache/CacheFileManager.java similarity index 100% rename from Server/src/main/java/core/cache/CacheFileManager.java rename to Server/src/main/core/cache/CacheFileManager.java diff --git a/Server/src/main/java/core/cache/StoreFile.java b/Server/src/main/core/cache/StoreFile.java similarity index 100% rename from Server/src/main/java/core/cache/StoreFile.java rename to Server/src/main/core/cache/StoreFile.java diff --git a/Server/src/main/java/core/cache/bzip2/BZip2BlockEntry.java b/Server/src/main/core/cache/bzip2/BZip2BlockEntry.java similarity index 100% rename from Server/src/main/java/core/cache/bzip2/BZip2BlockEntry.java rename to Server/src/main/core/cache/bzip2/BZip2BlockEntry.java diff --git a/Server/src/main/java/core/cache/bzip2/BZip2Decompressor.java b/Server/src/main/core/cache/bzip2/BZip2Decompressor.java similarity index 100% rename from Server/src/main/java/core/cache/bzip2/BZip2Decompressor.java rename to Server/src/main/core/cache/bzip2/BZip2Decompressor.java diff --git a/Server/src/main/java/core/cache/crypto/ISAACCipher.java b/Server/src/main/core/cache/crypto/ISAACCipher.java similarity index 100% rename from Server/src/main/java/core/cache/crypto/ISAACCipher.java rename to Server/src/main/core/cache/crypto/ISAACCipher.java diff --git a/Server/src/main/java/core/cache/crypto/ISAACPair.java b/Server/src/main/core/cache/crypto/ISAACPair.java similarity index 100% rename from Server/src/main/java/core/cache/crypto/ISAACPair.java rename to Server/src/main/core/cache/crypto/ISAACPair.java diff --git a/Server/src/main/java/core/cache/crypto/XTEACryption.java b/Server/src/main/core/cache/crypto/XTEACryption.java similarity index 100% rename from Server/src/main/java/core/cache/crypto/XTEACryption.java rename to Server/src/main/core/cache/crypto/XTEACryption.java diff --git a/Server/src/main/java/core/cache/def/Definition.java b/Server/src/main/core/cache/def/Definition.java similarity index 100% rename from Server/src/main/java/core/cache/def/Definition.java rename to Server/src/main/core/cache/def/Definition.java diff --git a/Server/src/main/java/core/cache/def/impl/AnimationDefinition.java b/Server/src/main/core/cache/def/impl/AnimationDefinition.java similarity index 100% rename from Server/src/main/java/core/cache/def/impl/AnimationDefinition.java rename to Server/src/main/core/cache/def/impl/AnimationDefinition.java diff --git a/Server/src/main/java/core/cache/def/impl/CS2Mapping.java b/Server/src/main/core/cache/def/impl/CS2Mapping.java similarity index 98% rename from Server/src/main/java/core/cache/def/impl/CS2Mapping.java rename to Server/src/main/core/cache/def/impl/CS2Mapping.java index cc1914b50..440c06c67 100644 --- a/Server/src/main/java/core/cache/def/impl/CS2Mapping.java +++ b/Server/src/main/core/cache/def/impl/CS2Mapping.java @@ -1,7 +1,6 @@ package core.cache.def.impl; import java.io.BufferedWriter; -import java.io.FileWriter; import java.nio.ByteBuffer; import java.nio.file.Files; import java.nio.file.Paths; @@ -10,7 +9,7 @@ import java.util.Map; import core.cache.Cache; import core.cache.misc.buffer.ByteBufferUtils; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * The CS2 mapping. diff --git a/Server/src/main/java/core/cache/def/impl/ClothDefinition.java b/Server/src/main/core/cache/def/impl/ClothDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/ClothDefinition.java rename to Server/src/main/core/cache/def/impl/ClothDefinition.java index fb34666fa..cf133443a 100644 --- a/Server/src/main/java/core/cache/def/impl/ClothDefinition.java +++ b/Server/src/main/core/cache/def/impl/ClothDefinition.java @@ -3,7 +3,7 @@ package core.cache.def.impl; import java.nio.ByteBuffer; import java.util.Arrays; -import rs09.ServerConstants; +import core.ServerConstants; import core.cache.Cache; /** diff --git a/Server/src/main/java/core/cache/def/impl/DataMap.java b/Server/src/main/core/cache/def/impl/DataMap.java similarity index 96% rename from Server/src/main/java/core/cache/def/impl/DataMap.java rename to Server/src/main/core/cache/def/impl/DataMap.java index 40fe2694c..06cfce47b 100644 --- a/Server/src/main/java/core/cache/def/impl/DataMap.java +++ b/Server/src/main/core/cache/def/impl/DataMap.java @@ -1,14 +1,11 @@ package core.cache.def.impl; import core.cache.Cache; -import core.cache.CacheFileManager; -import core.cache.misc.Container; import core.cache.misc.buffer.ByteBufferUtils; import core.tools.CP1252; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import java.nio.ByteBuffer; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/java/core/cache/def/impl/GraphicDefinition.java b/Server/src/main/core/cache/def/impl/GraphicDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/GraphicDefinition.java rename to Server/src/main/core/cache/def/impl/GraphicDefinition.java index e554a3b1e..d6512c10f 100644 --- a/Server/src/main/java/core/cache/def/impl/GraphicDefinition.java +++ b/Server/src/main/core/cache/def/impl/GraphicDefinition.java @@ -4,7 +4,7 @@ import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; -import rs09.ServerConstants; +import core.ServerConstants; import core.cache.Cache; /** diff --git a/Server/src/main/java/core/cache/def/impl/ItemDefinition.java b/Server/src/main/core/cache/def/impl/ItemDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/ItemDefinition.java rename to Server/src/main/core/cache/def/impl/ItemDefinition.java index db6be8e6a..36fddfdb6 100644 --- a/Server/src/main/java/core/cache/def/impl/ItemDefinition.java +++ b/Server/src/main/core/cache/def/impl/ItemDefinition.java @@ -1,11 +1,11 @@ package core.cache.def.impl; -import api.EquipmentSlot; +import core.api.EquipmentSlot; import core.cache.Cache; import core.cache.def.Definition; import core.cache.misc.buffer.ByteBufferUtils; import core.game.container.Container; -import core.game.content.global.action.DropItemHandler; +import core.game.global.action.DropItemHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -16,8 +16,8 @@ import core.net.packet.PacketRepository; import core.net.packet.out.WeightUpdate; import core.plugin.Plugin; import core.tools.StringUtils; -import rs09.game.system.SystemLogger; -import rs09.game.system.config.ItemConfigParser; +import core.tools.SystemLogger; +import core.game.system.config.ItemConfigParser; import org.rs09.consts.Items; import java.nio.ByteBuffer; @@ -27,7 +27,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Arrays; -import static api.ContentAPIKt.equipSlot; +import static core.api.ContentAPIKt.equipSlot; /** * Represents an item's definitions. diff --git a/Server/src/main/java/core/cache/def/impl/NPCDefinition.java b/Server/src/main/core/cache/def/impl/NPCDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/NPCDefinition.java rename to Server/src/main/core/cache/def/impl/NPCDefinition.java index 013492a3c..4c6a851a1 100644 --- a/Server/src/main/java/core/cache/def/impl/NPCDefinition.java +++ b/Server/src/main/core/cache/def/impl/NPCDefinition.java @@ -10,8 +10,8 @@ import core.game.node.entity.player.Player; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.tools.StringUtils; -import rs09.game.system.config.NPCConfigParser; -import rs09.game.world.GameWorld; +import core.game.system.config.NPCConfigParser; +import core.game.world.GameWorld; import java.nio.ByteBuffer; import java.util.HashMap; diff --git a/Server/src/main/java/core/cache/def/impl/RenderAnimationDefinition.java b/Server/src/main/core/cache/def/impl/RenderAnimationDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/RenderAnimationDefinition.java rename to Server/src/main/core/cache/def/impl/RenderAnimationDefinition.java index d9f9363a5..8e1621a31 100644 --- a/Server/src/main/java/core/cache/def/impl/RenderAnimationDefinition.java +++ b/Server/src/main/core/cache/def/impl/RenderAnimationDefinition.java @@ -1,8 +1,8 @@ package core.cache.def.impl; import core.cache.Cache; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import java.lang.reflect.Array; import java.lang.reflect.Field; diff --git a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java b/Server/src/main/core/cache/def/impl/SceneryDefinition.java similarity index 99% rename from Server/src/main/java/core/cache/def/impl/SceneryDefinition.java rename to Server/src/main/core/cache/def/impl/SceneryDefinition.java index 77838d2db..50b277171 100644 --- a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java +++ b/Server/src/main/core/cache/def/impl/SceneryDefinition.java @@ -6,8 +6,8 @@ import core.cache.misc.buffer.ByteBufferUtils; import core.game.interaction.OptionHandler; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import java.nio.ByteBuffer; import java.util.HashMap; diff --git a/Server/src/main/java/core/cache/def/impl/Struct.java b/Server/src/main/core/cache/def/impl/Struct.java similarity index 95% rename from Server/src/main/java/core/cache/def/impl/Struct.java rename to Server/src/main/core/cache/def/impl/Struct.java index 06a0bfeb6..bd3d0a38e 100644 --- a/Server/src/main/java/core/cache/def/impl/Struct.java +++ b/Server/src/main/core/cache/def/impl/Struct.java @@ -1,10 +1,8 @@ package core.cache.def.impl; import core.cache.Cache; -import core.cache.CacheFileManager; -import core.cache.misc.Container; import core.cache.misc.buffer.ByteBufferUtils; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import java.nio.ByteBuffer; import java.util.HashMap; diff --git a/Server/src/main/java/core/cache/def/impl/VarbitDefinition.java b/Server/src/main/core/cache/def/impl/VarbitDefinition.java similarity index 100% rename from Server/src/main/java/core/cache/def/impl/VarbitDefinition.java rename to Server/src/main/core/cache/def/impl/VarbitDefinition.java diff --git a/Server/src/main/java/core/cache/def/impl/test.txt b/Server/src/main/core/cache/def/impl/test.txt similarity index 100% rename from Server/src/main/java/core/cache/def/impl/test.txt rename to Server/src/main/core/cache/def/impl/test.txt diff --git a/Server/src/main/java/core/cache/gzip/GZipDecompressor.java b/Server/src/main/core/cache/gzip/GZipDecompressor.java similarity index 100% rename from Server/src/main/java/core/cache/gzip/GZipDecompressor.java rename to Server/src/main/core/cache/gzip/GZipDecompressor.java diff --git a/Server/src/main/java/core/cache/misc/Container.java b/Server/src/main/core/cache/misc/Container.java similarity index 100% rename from Server/src/main/java/core/cache/misc/Container.java rename to Server/src/main/core/cache/misc/Container.java diff --git a/Server/src/main/java/core/cache/misc/ContainersInformation.java b/Server/src/main/core/cache/misc/ContainersInformation.java similarity index 100% rename from Server/src/main/java/core/cache/misc/ContainersInformation.java rename to Server/src/main/core/cache/misc/ContainersInformation.java diff --git a/Server/src/main/java/core/cache/misc/FilesContainer.java b/Server/src/main/core/cache/misc/FilesContainer.java similarity index 100% rename from Server/src/main/java/core/cache/misc/FilesContainer.java rename to Server/src/main/core/cache/misc/FilesContainer.java diff --git a/Server/src/main/java/core/cache/misc/buffer/BufferInputStream.java b/Server/src/main/core/cache/misc/buffer/BufferInputStream.java similarity index 100% rename from Server/src/main/java/core/cache/misc/buffer/BufferInputStream.java rename to Server/src/main/core/cache/misc/buffer/BufferInputStream.java diff --git a/Server/src/main/java/core/cache/misc/buffer/BufferOutputStream.java b/Server/src/main/core/cache/misc/buffer/BufferOutputStream.java similarity index 100% rename from Server/src/main/java/core/cache/misc/buffer/BufferOutputStream.java rename to Server/src/main/core/cache/misc/buffer/BufferOutputStream.java diff --git a/Server/src/main/java/core/cache/misc/buffer/ByteBufferUtils.java b/Server/src/main/core/cache/misc/buffer/ByteBufferUtils.java similarity index 100% rename from Server/src/main/java/core/cache/misc/buffer/ByteBufferUtils.java rename to Server/src/main/core/cache/misc/buffer/ByteBufferUtils.java diff --git a/Server/src/main/java/core/game/content/activity/ActivityManager.java b/Server/src/main/core/game/activity/ActivityManager.java similarity index 94% rename from Server/src/main/java/core/game/content/activity/ActivityManager.java rename to Server/src/main/core/game/activity/ActivityManager.java index 402764870..1f5ea3260 100644 --- a/Server/src/main/java/core/game/content/activity/ActivityManager.java +++ b/Server/src/main/core/game/activity/ActivityManager.java @@ -1,8 +1,8 @@ -package core.game.content.activity; +package core.game.activity; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/java/core/game/content/activity/ActivityPlugin.java b/Server/src/main/core/game/activity/ActivityPlugin.java similarity index 98% rename from Server/src/main/java/core/game/content/activity/ActivityPlugin.java rename to Server/src/main/core/game/activity/ActivityPlugin.java index 454235c68..50ea847f5 100644 --- a/Server/src/main/java/core/game/content/activity/ActivityPlugin.java +++ b/Server/src/main/core/game/activity/ActivityPlugin.java @@ -1,6 +1,6 @@ -package core.game.content.activity; +package core.game.activity; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/Cutscene.kt b/Server/src/main/core/game/activity/Cutscene.kt similarity index 95% rename from Server/src/main/kotlin/Cutscene.kt rename to Server/src/main/core/game/activity/Cutscene.kt index f8225d89f..8de3fe6f4 100644 --- a/Server/src/main/kotlin/Cutscene.kt +++ b/Server/src/main/core/game/activity/Cutscene.kt @@ -1,8 +1,9 @@ -import api.* -import api.events.EventHook -import api.events.SelfDeathEvent +package core.game.activity + +import core.api.* +import core.game.event.EventHook +import core.game.event.SelfDeathEvent import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.interaction.MovementPulse import core.game.node.entity.Entity import core.game.node.entity.npc.NPC @@ -19,12 +20,11 @@ import core.net.packet.PacketRepository import core.net.packet.context.MinimapStateContext import core.net.packet.out.MinimapState import org.rs09.consts.Components -import rs09.ServerConstants -import rs09.game.Event -import rs09.game.camerautils.PlayerCamera -import rs09.game.content.ame.RandomEventManager -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.ServerConstants +import core.api.Event +import core.api.utils.PlayerCamera +import core.tools.SystemLogger +import core.game.world.GameWorld /** * A utility class for making cutscenes. @@ -112,7 +112,7 @@ abstract class Cutscene(val player: Player) { * @param message the message to send * @param onContinue (optional) a method that runs when the dialogue is "continued." Increments the cutscene stage by default. */ - fun dialogueUpdate(npcId: Int, expression: FacialExpression, message: String, onContinue: () -> Unit = {incrementStage()}) + fun dialogueUpdate(npcId: Int, expression: core.game.dialogue.FacialExpression, message: String, onContinue: () -> Unit = {incrementStage()}) { logCutscene("Sending NPC dialogue update.") sendNPCDialogue(player, npcId, message, expression) @@ -137,7 +137,7 @@ abstract class Cutscene(val player: Player) { * @param message the message to send * @param onContinue (optional) a method that runs when the dialogue is "continued." Increments the cutscene stage by default. */ - fun playerDialogueUpdate(expression: FacialExpression, message: String, onContinue: () -> Unit = {incrementStage()}) + fun playerDialogueUpdate(expression: core.game.dialogue.FacialExpression, message: String, onContinue: () -> Unit = {incrementStage()}) { logCutscene("Sending player dialogue update") sendPlayerDialogue(player, message, expression) @@ -237,7 +237,7 @@ abstract class Cutscene(val player: Player) { player.lock() player.hook(Event.SelfDeath, CUTSCENE_DEATH_HOOK) player.logoutListeners["cutscene"] = {player -> player.location = exitLocation; player.getCutscene()?.end() } - RandomEventManager.getInstance(player)!!.enabled = false + content.global.ame.RandomEventManager.getInstance(player)!!.enabled = false } /** @@ -280,7 +280,7 @@ abstract class Cutscene(val player: Player) { clearNPCs() player.unhook(CUTSCENE_DEATH_HOOK) player.logoutListeners.remove("cutscene") - RandomEventManager.getInstance(player)?.enabled = true + content.global.ame.RandomEventManager.getInstance(player)?.enabled = true PacketRepository.send(MinimapState::class.java, MinimapStateContext(player, 0)) } }) diff --git a/Server/src/main/java/core/game/content/activity/CutscenePlugin.java b/Server/src/main/core/game/activity/CutscenePlugin.java similarity index 99% rename from Server/src/main/java/core/game/content/activity/CutscenePlugin.java rename to Server/src/main/core/game/activity/CutscenePlugin.java index 9a8188f22..043b7c179 100644 --- a/Server/src/main/java/core/game/content/activity/CutscenePlugin.java +++ b/Server/src/main/core/game/activity/CutscenePlugin.java @@ -1,11 +1,11 @@ -package core.game.content.activity; +package core.game.activity; import core.game.component.Component; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/rs09/game/ai/AIPBuilder.java b/Server/src/main/core/game/bots/AIPBuilder.java similarity index 99% rename from Server/src/main/java/rs09/game/ai/AIPBuilder.java rename to Server/src/main/core/game/bots/AIPBuilder.java index 244dc5aa9..e79c95447 100644 --- a/Server/src/main/java/rs09/game/ai/AIPBuilder.java +++ b/Server/src/main/core/game/bots/AIPBuilder.java @@ -1,4 +1,4 @@ -package rs09.game.ai; +package core.game.bots; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/rs09/game/ai/AIPlayer.java b/Server/src/main/core/game/bots/AIPlayer.java similarity index 98% rename from Server/src/main/java/rs09/game/ai/AIPlayer.java rename to Server/src/main/core/game/bots/AIPlayer.java index 374c005bc..288a1a9bb 100644 --- a/Server/src/main/java/rs09/game/ai/AIPlayer.java +++ b/Server/src/main/core/game/bots/AIPlayer.java @@ -1,12 +1,10 @@ -package rs09.game.ai; +package core.game.bots; import core.game.node.entity.impl.PulseType; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.container.impl.EquipmentContainer; import core.game.interaction.DestinationFlag; import core.game.interaction.MovementPulse; -import core.game.interaction.Option; -import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; @@ -19,14 +17,12 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.path.Pathfinder; import core.game.world.map.zone.impl.WildernessZone; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.net.packet.context.MessageContext; -import core.plugin.Plugin; import core.tools.RandomFunction; import core.tools.StringUtils; -import core.game.content.dialogue.DialoguePlugin; import core.game.node.entity.skill.Skills; -import core.game.content.quest.tutorials.tutorialisland.CharacterDesign; +import content.region.misc.tutisland.handlers.iface.CharacterDesign; import java.io.File; import java.io.FileNotFoundException; diff --git a/Server/src/main/kotlin/rs09/game/ai/AIRepository.kt b/Server/src/main/core/game/bots/AIRepository.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ai/AIRepository.kt rename to Server/src/main/core/game/bots/AIRepository.kt index e1d087e49..ea17452ad 100644 --- a/Server/src/main/kotlin/rs09/game/ai/AIRepository.kt +++ b/Server/src/main/core/game/bots/AIRepository.kt @@ -1,9 +1,8 @@ -package rs09.game.ai +package core.game.bots import core.game.node.entity.player.Player import core.game.node.item.GroundItem -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.ge.GrandExchangeOffer +import core.game.ge.GrandExchangeOffer /** * A repository for bots to make use of that can contain any info that might be useful to them. diff --git a/Server/src/main/java/rs09/game/ai/ArtificialSession.java b/Server/src/main/core/game/bots/ArtificialSession.java similarity index 97% rename from Server/src/main/java/rs09/game/ai/ArtificialSession.java rename to Server/src/main/core/game/bots/ArtificialSession.java index 0a6222de8..81ef7dd0c 100644 --- a/Server/src/main/java/rs09/game/ai/ArtificialSession.java +++ b/Server/src/main/core/game/bots/ArtificialSession.java @@ -1,4 +1,4 @@ -package rs09.game.ai; +package core.game.bots; import java.nio.ByteBuffer; diff --git a/Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBot.kt b/Server/src/main/core/game/bots/CombatBot.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBot.kt rename to Server/src/main/core/game/bots/CombatBot.kt index 7890787ed..bf2c35bdd 100644 --- a/Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBot.kt +++ b/Server/src/main/core/game/bots/CombatBot.kt @@ -1,4 +1,4 @@ -package rs09.game.ai.pvmbots +package core.game.bots import core.game.node.entity.player.link.appearance.Gender import core.game.node.entity.player.link.prayer.PrayerType @@ -6,11 +6,10 @@ import core.game.node.item.Item import core.game.world.map.Direction import core.game.world.map.Location import core.tools.RandomFunction -import rs09.game.ai.AIPlayer -import core.game.content.consumable.Consumable -import core.game.content.consumable.Consumables -import core.game.content.consumable.Food -import core.game.content.consumable.effects.HealingEffect +import core.game.consumable.Consumable +import content.data.consumables.Consumables +import core.game.consumable.Food +import content.data.consumables.effects.HealingEffect import core.game.node.entity.skill.Skills import java.util.* diff --git a/Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBotAssembler.kt b/Server/src/main/core/game/bots/CombatBotAssembler.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBotAssembler.kt rename to Server/src/main/core/game/bots/CombatBotAssembler.kt index 9aff415e9..fa0a7fde5 100644 --- a/Server/src/main/kotlin/rs09/game/ai/pvmbots/CombatBotAssembler.kt +++ b/Server/src/main/core/game/bots/CombatBotAssembler.kt @@ -1,11 +1,10 @@ -package rs09.game.ai.pvmbots +package core.game.bots import core.game.node.entity.skill.Skills import core.game.node.item.Item import core.game.world.map.Location import core.tools.RandomFunction import org.rs09.consts.Items -import rs09.game.ai.AIPlayer import java.util.* import kotlin.collections.ArrayList @@ -80,7 +79,7 @@ class CombatBotAssembler { * @return a CombatBot suited for killing dragons. * @author Kermit */ - fun MeleeAdventurer(tier: Tier, location: Location): CombatBot{ + fun MeleeAdventurer(tier: Tier, location: Location): CombatBot { val bot = CombatBot(location) var max = 0 val level = RandomFunction.random(25, 65).also {max = 99 } @@ -112,7 +111,7 @@ class CombatBotAssembler { * @return a CombatBot suited for killing dragons. * @author Kermit */ - fun RangeAdventurer(tier: Tier, location: Location): CombatBot{ + fun RangeAdventurer(tier: Tier, location: Location): CombatBot { val bot = CombatBot(location) var max = 0 val level = RandomFunction.random(35, 65).also {max = 75 } @@ -146,7 +145,7 @@ class CombatBotAssembler { * @return a CombatBot suited for killing dragons. * @author Ceikry */ - fun assembleMeleeDragonBot(tier: Tier, location: Location): CombatBot{ + fun assembleMeleeDragonBot(tier: Tier, location: Location): CombatBot { val bot = CombatBot(location) generateStats(bot,tier,Skills.ATTACK, Skills.STRENGTH, Skills.DEFENCE) equipHighest(bot, MELEE_HELMS, 50) @@ -167,7 +166,7 @@ class CombatBotAssembler { * @return a CombatBot suited for killing dragons. * @author Ceikry */ - fun assembleRangeDragonBot(tier: Tier, location: Location): CombatBot{ + fun assembleRangeDragonBot(tier: Tier, location: Location): CombatBot { val bot = CombatBot(location) bot.fullRestore() generateStats(bot,tier,Skills.RANGE,Skills.DEFENCE) @@ -391,7 +390,7 @@ class CombatBotAssembler { * @param skills the skills that we should generate. * @author Ceikry and Eli */ - fun generateStats(bot: AIPlayer, tier: CombatBotAssembler.Tier, vararg skills: Int) { + fun generateStats(bot: AIPlayer, tier: Tier, vararg skills: Int) { var totalXPAdd = 0.0 var skillAmt = 0.0 val variance = 0.5 diff --git a/Server/src/main/kotlin/rs09/game/ai/general/GeneralBotCreator.kt b/Server/src/main/core/game/bots/GeneralBotCreator.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/ai/general/GeneralBotCreator.kt rename to Server/src/main/core/game/bots/GeneralBotCreator.kt index 33f96bfb2..5aa7147b9 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/GeneralBotCreator.kt +++ b/Server/src/main/core/game/bots/GeneralBotCreator.kt @@ -1,16 +1,12 @@ -package rs09.game.ai.general +package core.game.bots import core.game.node.entity.player.Player import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.map.Location import core.tools.RandomFunction -import rs09.Server -import rs09.game.ai.AIPBuilder -import rs09.game.ai.AIPlayer -import rs09.game.ai.AIRepository -import rs09.game.ai.general.scriptrepository.Idler -import rs09.game.ai.general.scriptrepository.Script +import core.Server +import content.global.bots.Idler class GeneralBotCreator { //org/crandor/net/packet/in/InteractionPacket.java <<< This is a very useful class for learning to code bots diff --git a/Server/src/main/core/game/bots/PlayerCompatible.kt b/Server/src/main/core/game/bots/PlayerCompatible.kt new file mode 100644 index 000000000..870efe574 --- /dev/null +++ b/Server/src/main/core/game/bots/PlayerCompatible.kt @@ -0,0 +1,3 @@ +package core.game.bots + +annotation class PlayerCompatible diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt b/Server/src/main/core/game/bots/PlayerScripts.kt similarity index 58% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt rename to Server/src/main/core/game/bots/PlayerScripts.kt index 697f4e4c3..f4e018502 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerScripts.kt +++ b/Server/src/main/core/game/bots/PlayerScripts.kt @@ -1,6 +1,6 @@ -package rs09.game.ai.general.scriptrepository +package core.game.bots object PlayerScripts { class PlayerScript(val identifier: String, val description: Array, val name: String, val clazz: Class<*>) - val identifierMap = HashMap() + val identifierMap = HashMap() } \ No newline at end of file diff --git a/Server/src/main/java/rs09/game/ai/pvmbots/PvMBots.java b/Server/src/main/core/game/bots/PvMBots.java similarity index 94% rename from Server/src/main/java/rs09/game/ai/pvmbots/PvMBots.java rename to Server/src/main/core/game/bots/PvMBots.java index a63635bc8..7f7a87f47 100644 --- a/Server/src/main/java/rs09/game/ai/pvmbots/PvMBots.java +++ b/Server/src/main/core/game/bots/PvMBots.java @@ -1,17 +1,16 @@ -package rs09.game.ai.pvmbots; +package core.game.bots; import java.util.ArrayList; import java.util.List; -import core.game.content.consumable.Consumable; -import core.game.content.consumable.Consumables; -import core.game.content.consumable.Food; -import core.game.content.consumable.effects.HealingEffect; +import core.game.consumable.Consumable; +import content.data.consumables.Consumables; +import core.game.consumable.Food; +import content.data.consumables.effects.HealingEffect; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import rs09.game.ai.AIPlayer; import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.Item; import core.game.world.map.Location; diff --git a/Server/src/main/kotlin/rs09/game/ai/pvmbots/PvMBotsBuilder.kt b/Server/src/main/core/game/bots/PvMBotsBuilder.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/ai/pvmbots/PvMBotsBuilder.kt rename to Server/src/main/core/game/bots/PvMBotsBuilder.kt index d117847fa..bfe79d674 100644 --- a/Server/src/main/kotlin/rs09/game/ai/pvmbots/PvMBotsBuilder.kt +++ b/Server/src/main/core/game/bots/PvMBotsBuilder.kt @@ -1,8 +1,8 @@ -package rs09.game.ai.pvmbots +package core.game.bots import core.game.world.map.Location -import rs09.game.ai.minigamebots.pestcontrol.PestControlTestBot -import rs09.game.ai.minigamebots.pestcontrol.PestControlTestBot2 +import content.minigame.pestcontrol.bots.PestControlTestBot +import content.minigame.pestcontrol.bots.PestControlTestBot2 // import sun.util.resources.CalendarData; class PvMBotsBuilder { diff --git a/Server/src/main/java/rs09/game/ai/general/scriptrepository/Script.java b/Server/src/main/core/game/bots/Script.java similarity index 94% rename from Server/src/main/java/rs09/game/ai/general/scriptrepository/Script.java rename to Server/src/main/core/game/bots/Script.java index 6e7c97f8b..0c622998f 100644 --- a/Server/src/main/java/rs09/game/ai/general/scriptrepository/Script.java +++ b/Server/src/main/core/game/bots/Script.java @@ -1,7 +1,6 @@ -package rs09.game.ai.general.scriptrepository; +package core.game.bots; import core.game.node.entity.player.Player; -import rs09.game.ai.general.ScriptAPI; import core.game.node.item.Item; import java.util.ArrayList; diff --git a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt b/Server/src/main/core/game/bots/ScriptAPI.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt rename to Server/src/main/core/game/bots/ScriptAPI.kt index df4517b9d..3a70ef9f7 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt +++ b/Server/src/main/core/game/bots/ScriptAPI.kt @@ -1,12 +1,12 @@ -package rs09.game.ai.general +package core.game.bots -import api.* +import core.api.* import core.cache.def.impl.ItemDefinition import core.game.component.Component -import core.game.content.consumable.Consumable -import core.game.content.consumable.Consumables -import core.game.content.consumable.Food -import core.game.content.consumable.effects.HealingEffect +import core.game.consumable.Consumable +import content.data.consumables.Consumables +import core.game.consumable.Food +import content.data.consumables.effects.HealingEffect import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.interaction.Option @@ -33,21 +33,19 @@ import kotlinx.coroutines.launch import org.json.simple.JSONArray import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerConstants.Companion.SERVER_GE_NAME -import rs09.game.ai.AIRepository -import rs09.game.ge.GrandExchange -import rs09.game.ge.GrandExchangeOffer -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.system.SystemLogger -import rs09.game.system.config.ItemConfigParser -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.ServerConstants.Companion.SERVER_GE_NAME +import core.game.ge.GrandExchange +import core.game.ge.GrandExchangeOffer +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.tools.SystemLogger +import core.game.system.config.ItemConfigParser +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.colorize import java.util.* import java.util.concurrent.CountDownLatch import kotlin.math.max -import kotlin.math.min import kotlin.math.pow import kotlin.math.sqrt @@ -221,7 +219,7 @@ class ScriptAPI(private val bot: Player) { var distance = 11.0 var closest: GroundItem? = null if(AIRepository.getItems(bot) != null) { - for (item in AIRepository.getItems(bot)!!.filter {it: GroundItem -> it.distance(bot.location) < 10 }) { + for (item in AIRepository.getItems(bot)!!.filter { it: GroundItem -> it.distance(bot.location) < 10 }) { if (item.id == id) { //distance = item.distance(bot.location) closest = item @@ -796,7 +794,7 @@ class ScriptAPI(private val bot: Player) { bot.skills.updateCombatLevel() } - fun getOverlay(): BottingOverlay{ + fun getOverlay(): BottingOverlay { return BottingOverlay(bot) } diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptDescription.kt b/Server/src/main/core/game/bots/ScriptDescription.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptDescription.kt rename to Server/src/main/core/game/bots/ScriptDescription.kt index cef85addb..95ded9ca1 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptDescription.kt +++ b/Server/src/main/core/game/bots/ScriptDescription.kt @@ -1,3 +1,3 @@ -package rs09.game.ai.general.scriptrepository +package core.game.bots annotation class ScriptDescription(vararg val value: String) diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptIdentifier.kt b/Server/src/main/core/game/bots/ScriptIdentifier.kt similarity index 54% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptIdentifier.kt rename to Server/src/main/core/game/bots/ScriptIdentifier.kt index d73102c3f..a2a8cb56b 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptIdentifier.kt +++ b/Server/src/main/core/game/bots/ScriptIdentifier.kt @@ -1,3 +1,3 @@ -package rs09.game.ai.general.scriptrepository +package core.game.bots annotation class ScriptIdentifier(val value: String) diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptName.kt b/Server/src/main/core/game/bots/ScriptName.kt similarity index 51% rename from Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptName.kt rename to Server/src/main/core/game/bots/ScriptName.kt index 7501d7c05..cf99dffc5 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/ScriptName.kt +++ b/Server/src/main/core/game/bots/ScriptName.kt @@ -1,3 +1,3 @@ -package rs09.game.ai.general.scriptrepository +package core.game.bots annotation class ScriptName(val value: String) diff --git a/Server/src/main/kotlin/rs09/game/ai/skillingbot/SkillingBotAssembler.kt b/Server/src/main/core/game/bots/SkillingBotAssembler.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/ai/skillingbot/SkillingBotAssembler.kt rename to Server/src/main/core/game/bots/SkillingBotAssembler.kt index 2920d370b..2586504d3 100644 --- a/Server/src/main/kotlin/rs09/game/ai/skillingbot/SkillingBotAssembler.kt +++ b/Server/src/main/core/game/bots/SkillingBotAssembler.kt @@ -1,15 +1,14 @@ -package rs09.game.ai.skillingbot +package core.game.bots import core.game.node.item.Item import core.game.world.map.Location -import rs09.game.ai.AIPlayer class SkillingBotAssembler { - fun produce(type: Wealth,loc: Location): AIPlayer{ + fun produce(type: Wealth, loc: Location): AIPlayer { return assembleBot(AIPlayer(loc),type) } - fun assembleBot(bot: AIPlayer, type: Wealth): AIPlayer{ + fun assembleBot(bot: AIPlayer, type: Wealth): AIPlayer { return when(type){ Wealth.POOR -> equipSet(bot,POORSETS.random()) Wealth.AVERAGE -> equipSet(bot,AVGSETS.random()) @@ -17,7 +16,7 @@ class SkillingBotAssembler { } } - fun equipSet(bot: AIPlayer,set: List): AIPlayer{ + fun equipSet(bot: AIPlayer, set: List): AIPlayer { for(i in set){ val item = Item(i) val configs = item.definition.handlers diff --git a/Server/src/main/java/core/game/component/CloseEvent.java b/Server/src/main/core/game/component/CloseEvent.java similarity index 100% rename from Server/src/main/java/core/game/component/CloseEvent.java rename to Server/src/main/core/game/component/CloseEvent.java diff --git a/Server/src/main/java/core/game/component/Component.java b/Server/src/main/core/game/component/Component.java similarity index 98% rename from Server/src/main/java/core/game/component/Component.java rename to Server/src/main/core/game/component/Component.java index fd8d8f29b..412ca8df8 100644 --- a/Server/src/main/java/core/game/component/Component.java +++ b/Server/src/main/core/game/component/Component.java @@ -5,7 +5,7 @@ import core.game.node.entity.player.link.InterfaceManager; import core.net.packet.PacketRepository; import core.net.packet.context.InterfaceContext; import core.net.packet.out.Interface; -import rs09.game.interaction.InterfaceListeners; +import core.game.interaction.InterfaceListeners; /** * Represents a component. diff --git a/Server/src/main/java/core/game/component/ComponentDefinition.java b/Server/src/main/core/game/component/ComponentDefinition.java similarity index 100% rename from Server/src/main/java/core/game/component/ComponentDefinition.java rename to Server/src/main/core/game/component/ComponentDefinition.java diff --git a/Server/src/main/java/core/game/component/ComponentPlugin.java b/Server/src/main/core/game/component/ComponentPlugin.java similarity index 100% rename from Server/src/main/java/core/game/component/ComponentPlugin.java rename to Server/src/main/core/game/component/ComponentPlugin.java diff --git a/Server/src/main/java/core/game/component/InterfaceType.java b/Server/src/main/core/game/component/InterfaceType.java similarity index 100% rename from Server/src/main/java/core/game/component/InterfaceType.java rename to Server/src/main/core/game/component/InterfaceType.java diff --git a/Server/src/main/java/core/game/content/consumable/BarbarianMix.java b/Server/src/main/core/game/consumable/BarbarianMix.java similarity index 91% rename from Server/src/main/java/core/game/content/consumable/BarbarianMix.java rename to Server/src/main/core/game/consumable/BarbarianMix.java index 2ba4c4556..6cfe96c43 100644 --- a/Server/src/main/java/core/game/content/consumable/BarbarianMix.java +++ b/Server/src/main/core/game/consumable/BarbarianMix.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/consumable/Cake.java b/Server/src/main/core/game/consumable/Cake.java similarity index 95% rename from Server/src/main/java/core/game/content/consumable/Cake.java rename to Server/src/main/core/game/consumable/Cake.java index 249c5bd41..5f8bedc55 100644 --- a/Server/src/main/java/core/game/content/consumable/Cake.java +++ b/Server/src/main/core/game/consumable/Cake.java @@ -1,5 +1,6 @@ -package core.game.content.consumable; +package core.game.consumable; +import content.data.consumables.Consumables; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/consumable/Consumable.java b/Server/src/main/core/game/consumable/Consumable.java similarity index 96% rename from Server/src/main/java/core/game/content/consumable/Consumable.java rename to Server/src/main/core/game/consumable/Consumable.java index 8639292ca..970ddb1c7 100644 --- a/Server/src/main/java/core/game/content/consumable/Consumable.java +++ b/Server/src/main/core/game/consumable/Consumable.java @@ -1,7 +1,8 @@ -package core.game.content.consumable; +package core.game.consumable; -import api.Container; -import static api.ContentAPIKt.*; +import content.data.consumables.Consumables; +import core.api.Container; +import static core.api.ContentAPIKt.*; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/consumable/ConsumableEffect.java b/Server/src/main/core/game/consumable/ConsumableEffect.java similarity index 83% rename from Server/src/main/java/core/game/content/consumable/ConsumableEffect.java rename to Server/src/main/core/game/consumable/ConsumableEffect.java index e7f975463..6b827abd3 100644 --- a/Server/src/main/java/core/game/content/consumable/ConsumableEffect.java +++ b/Server/src/main/core/game/consumable/ConsumableEffect.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/consumable/Drink.java b/Server/src/main/core/game/consumable/Drink.java similarity index 96% rename from Server/src/main/java/core/game/content/consumable/Drink.java rename to Server/src/main/core/game/consumable/Drink.java index 6a72e6459..ee9b6c165 100644 --- a/Server/src/main/java/core/game/content/consumable/Drink.java +++ b/Server/src/main/core/game/consumable/Drink.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/content/consumable/FakeConsumable.java b/Server/src/main/core/game/consumable/FakeConsumable.java similarity index 95% rename from Server/src/main/java/core/game/content/consumable/FakeConsumable.java rename to Server/src/main/core/game/consumable/FakeConsumable.java index 019ff1757..94ff20c6e 100644 --- a/Server/src/main/java/core/game/content/consumable/FakeConsumable.java +++ b/Server/src/main/core/game/consumable/FakeConsumable.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/consumable/Food.java b/Server/src/main/core/game/consumable/Food.java similarity index 96% rename from Server/src/main/java/core/game/content/consumable/Food.java rename to Server/src/main/core/game/consumable/Food.java index db0c6cff3..a8f31e1e3 100644 --- a/Server/src/main/java/core/game/content/consumable/Food.java +++ b/Server/src/main/core/game/consumable/Food.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; diff --git a/Server/src/main/java/core/game/content/consumable/HalfableFood.java b/Server/src/main/core/game/consumable/HalfableFood.java similarity index 96% rename from Server/src/main/java/core/game/content/consumable/HalfableFood.java rename to Server/src/main/core/game/consumable/HalfableFood.java index 46c299c91..89e18f2ff 100644 --- a/Server/src/main/java/core/game/content/consumable/HalfableFood.java +++ b/Server/src/main/core/game/consumable/HalfableFood.java @@ -1,4 +1,4 @@ -package core.game.content.consumable; +package core.game.consumable; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/consumable/Potion.java b/Server/src/main/core/game/consumable/Potion.java similarity index 95% rename from Server/src/main/java/core/game/content/consumable/Potion.java rename to Server/src/main/core/game/consumable/Potion.java index 472d92555..8e8c03615 100644 --- a/Server/src/main/java/core/game/content/consumable/Potion.java +++ b/Server/src/main/core/game/consumable/Potion.java @@ -1,6 +1,7 @@ -package core.game.content.consumable; +package core.game.consumable; -import core.game.content.quest.miniquest.barcrawl.BarcrawlManager; +import content.data.consumables.Consumables; +import content.region.kandarin.barcrawl.BarcrawlManager; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/container/Container.java b/Server/src/main/core/game/container/Container.java similarity index 100% rename from Server/src/main/java/core/game/container/Container.java rename to Server/src/main/core/game/container/Container.java diff --git a/Server/src/main/java/core/game/container/ContainerEvent.java b/Server/src/main/core/game/container/ContainerEvent.java similarity index 100% rename from Server/src/main/java/core/game/container/ContainerEvent.java rename to Server/src/main/core/game/container/ContainerEvent.java diff --git a/Server/src/main/java/core/game/container/ContainerListener.java b/Server/src/main/core/game/container/ContainerListener.java similarity index 100% rename from Server/src/main/java/core/game/container/ContainerListener.java rename to Server/src/main/core/game/container/ContainerListener.java diff --git a/Server/src/main/java/core/game/container/ContainerType.java b/Server/src/main/core/game/container/ContainerType.java similarity index 100% rename from Server/src/main/java/core/game/container/ContainerType.java rename to Server/src/main/core/game/container/ContainerType.java diff --git a/Server/src/main/java/core/game/container/SortType.java b/Server/src/main/core/game/container/SortType.java similarity index 100% rename from Server/src/main/java/core/game/container/SortType.java rename to Server/src/main/core/game/container/SortType.java diff --git a/Server/src/main/java/core/game/container/access/InterfaceContainer.java b/Server/src/main/core/game/container/access/InterfaceContainer.java similarity index 99% rename from Server/src/main/java/core/game/container/access/InterfaceContainer.java rename to Server/src/main/core/game/container/access/InterfaceContainer.java index 1a17e7a63..2fde47411 100644 --- a/Server/src/main/java/core/game/container/access/InterfaceContainer.java +++ b/Server/src/main/core/game/container/access/InterfaceContainer.java @@ -1,6 +1,6 @@ package core.game.container.access; -import api.IfaceSettingsBuilder; +import core.api.IfaceSettingsBuilder; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/core/game/container/impl/BankContainer.java b/Server/src/main/core/game/container/impl/BankContainer.java similarity index 99% rename from Server/src/main/java/core/game/container/impl/BankContainer.java rename to Server/src/main/core/game/container/impl/BankContainer.java index d908c783b..0e949f8b8 100644 --- a/Server/src/main/java/core/game/container/impl/BankContainer.java +++ b/Server/src/main/core/game/container/impl/BankContainer.java @@ -1,17 +1,17 @@ package core.game.container.impl; -import api.IfaceSettingsBuilder; +import core.api.IfaceSettingsBuilder; import core.game.container.access.InterfaceContainer; import kotlin.ranges.IntRange; import org.rs09.consts.Vars; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.component.Component; import core.game.container.*; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.IronmanMode; import core.game.node.item.Item; -import rs09.game.system.config.ItemConfigParser; -import rs09.game.world.GameWorld; +import core.game.system.config.ItemConfigParser; +import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; diff --git a/Server/src/main/java/core/game/container/impl/EquipmentContainer.java b/Server/src/main/core/game/container/impl/EquipmentContainer.java similarity index 98% rename from Server/src/main/java/core/game/container/impl/EquipmentContainer.java rename to Server/src/main/core/game/container/impl/EquipmentContainer.java index 5fb936f3a..a059a0be9 100644 --- a/Server/src/main/java/core/game/container/impl/EquipmentContainer.java +++ b/Server/src/main/core/game/container/impl/EquipmentContainer.java @@ -1,6 +1,6 @@ package core.game.container.impl; -import api.EquipmentSlot; +import content.global.skill.skillcapeperks.SkillcapePerks; import core.game.container.Container; import core.game.container.ContainerEvent; import core.game.container.ContainerListener; @@ -15,10 +15,8 @@ import core.net.packet.out.ContainerPacket; import core.net.packet.out.WeightUpdate; import core.plugin.Plugin; import org.jetbrains.annotations.Nullable; -import rs09.game.interaction.InteractionListeners; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.system.SystemLogger; -import rs09.game.system.config.ItemConfigParser; +import core.game.interaction.InteractionListeners; +import core.game.system.config.ItemConfigParser; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/container/impl/InventoryListener.java b/Server/src/main/core/game/container/impl/InventoryListener.java similarity index 96% rename from Server/src/main/java/core/game/container/impl/InventoryListener.java rename to Server/src/main/core/game/container/impl/InventoryListener.java index 727ad6f20..33ffa5b19 100644 --- a/Server/src/main/java/core/game/container/impl/InventoryListener.java +++ b/Server/src/main/core/game/container/impl/InventoryListener.java @@ -3,7 +3,7 @@ package core.game.container.impl; import core.game.container.Container; import core.game.container.ContainerEvent; import core.game.container.ContainerListener; -import core.game.node.entity.skill.summoning.SummoningPouch; +import content.global.skill.summoning.SummoningPouch; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/core/game/content/dialogue/ActivateEnchantedGem.java b/Server/src/main/core/game/dialogue/ActivateEnchantedGem.java similarity index 92% rename from Server/src/main/java/core/game/content/dialogue/ActivateEnchantedGem.java rename to Server/src/main/core/game/dialogue/ActivateEnchantedGem.java index 1b0e58c32..7865f4ddd 100644 --- a/Server/src/main/java/core/game/content/dialogue/ActivateEnchantedGem.java +++ b/Server/src/main/core/game/dialogue/ActivateEnchantedGem.java @@ -1,12 +1,12 @@ -package core.game.content.dialogue; +package core.game.dialogue; +import content.global.skill.slayer.SlayerManager; import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.plugin.Initializable; import core.plugin.Plugin; -import rs09.game.node.entity.skill.slayer.SlayerManager; /** * Represents the plugin used to handle the enchanted gem related to slayer. diff --git a/Server/src/main/java/core/game/content/dialogue/DialogueAction.java b/Server/src/main/core/game/dialogue/DialogueAction.java similarity index 88% rename from Server/src/main/java/core/game/content/dialogue/DialogueAction.java rename to Server/src/main/core/game/dialogue/DialogueAction.java index 8f263e7e0..4ed1a4102 100644 --- a/Server/src/main/java/core/game/content/dialogue/DialogueAction.java +++ b/Server/src/main/core/game/dialogue/DialogueAction.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package core.game.dialogue; import core.game.node.entity.player.Player; diff --git a/Server/src/main/core/game/dialogue/DialogueBuilder.kt b/Server/src/main/core/game/dialogue/DialogueBuilder.kt new file mode 100644 index 000000000..ca685b22c --- /dev/null +++ b/Server/src/main/core/game/dialogue/DialogueBuilder.kt @@ -0,0 +1,148 @@ +package core.game.dialogue +import core.game.node.entity.player.Player +import core.tools.END_DIALOGUE + +abstract class DialogueBuilderFile : core.game.dialogue.DialogueFile() { + var data: ArrayList = ArrayList() + //var stages: ArrayList = ArrayList() + abstract fun create(b: core.game.dialogue.DialogueBuilder) + init { + create(core.game.dialogue.DialogueBuilder(this)) + } + override fun handle(componentID: Int, buttonID: Int) { + for((i, clause) in data.iterator().withIndex()) { + if(clause.predicate(player!!)) { + stage = clause.handle(this, componentID, buttonID, stage) + if(stage == END_DIALOGUE) { + end() + } + return + } + } + } +} + +interface DialogueNode { + fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int +} + +class NpcLNode(val value: String): core.game.dialogue.DialogueNode { + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + df.npcl(value) + return stage + 1 + } +} +class NpcNode(val values: Array): core.game.dialogue.DialogueNode { + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + df.npc(*values) + return stage + 1 + } +} +class PlayerLNode(val value: String): core.game.dialogue.DialogueNode { + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + df.playerl(value) + return stage + 1 + } +} +class ClosureNode(val f: (Player) -> Int): core.game.dialogue.DialogueNode { + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + return f(df.player!!) + } +} + +class OptionEntry(val text: String, val nextStage: Int, val predicate: (Player) -> Boolean = { _ -> true }) {} + +class OptionsNode(var options: ArrayList): core.game.dialogue.DialogueNode { + fun optionNames(player: Player): Array { + return options.asSequence().filter({ it.predicate(player) }).map({ it.text }).toList().toTypedArray() + } + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + val tmp: Array = optionNames(df.player!!) + if(tmp.size > 1) { + df.options(*tmp) + return stage + 1 + } else if(tmp.size == 1) { + val tmp: List = options.asSequence().filter({ it.predicate(df.player!!) }).toList() + df.stage = tmp[0].nextStage + df.handle(componentID, 0) + return df.stage + } else { + return END_DIALOGUE + } + } +} +class OptionsDispatchNode(var options: ArrayList): core.game.dialogue.DialogueNode { + override fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + val tmp: List = options.asSequence().filter({ it.predicate(df.player!!) }).toList() + df.stage = tmp[buttonID-1].nextStage + df.handle(componentID, 0) + return df.stage + } +} + +class DialogueClause(val predicate: (player: Player) -> Boolean, val nodes: ArrayList) { + fun handle(df: core.game.dialogue.DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { + if(stage < nodes.size) { + return nodes[stage].handle(df, componentID, buttonID, stage) + } else { + return END_DIALOGUE + } + } +} + +class DialogueOptionsBuilder(var target: core.game.dialogue.DialogueBuilderFile, val clauseIndex: Int, var options: ArrayList) { + fun option(value: String): core.game.dialogue.DialogueBuilder { + options.add(core.game.dialogue.OptionEntry(value, target.data[clauseIndex].nodes.size)) + return core.game.dialogue.DialogueBuilder(target, clauseIndex) + } + + fun optionIf(value: String, predicate: (Player) -> Boolean): core.game.dialogue.DialogueBuilder { + options.add(core.game.dialogue.OptionEntry(value, target.data[clauseIndex].nodes.size, predicate)) + return core.game.dialogue.DialogueBuilder(target, clauseIndex) + } +} + +class DialogueBuilder(var target: core.game.dialogue.DialogueBuilderFile, var clauseIndex: Int = -1) { + fun onPredicate(predicate: (player: Player) -> Boolean): core.game.dialogue.DialogueBuilder { + target.data.add(core.game.dialogue.DialogueClause(predicate, ArrayList())) + clauseIndex = target.data.size - 1 + return this + } + fun onQuestStages(name: String, vararg stages: Int): core.game.dialogue.DialogueBuilder { + return onPredicate() { player -> + val questStage = player.questRepository.getStage(name) + return@onPredicate stages.contains(questStage) + } + } + fun playerl(value: String): core.game.dialogue.DialogueBuilder { + target.data[clauseIndex].nodes.add(core.game.dialogue.PlayerLNode(value)) + return this + } + fun npcl(value: String): core.game.dialogue.DialogueBuilder { + target.data[clauseIndex].nodes.add(core.game.dialogue.NpcLNode(value)) + return this + } + fun npc(vararg values: String): core.game.dialogue.DialogueBuilder { + target.data[clauseIndex].nodes.add(core.game.dialogue.NpcNode(values as Array)) + return this + } + fun endWith(f: (Player) -> Unit) { + target.data[clauseIndex].nodes.add(core.game.dialogue.ClosureNode({ player -> + f(player) + return@ClosureNode END_DIALOGUE + })) + } + fun end() { + target.data[clauseIndex].nodes.add(core.game.dialogue.ClosureNode({ _ -> + return@ClosureNode END_DIALOGUE + })) + } + fun options(): core.game.dialogue.DialogueOptionsBuilder { + var options: ArrayList = ArrayList() + val node = core.game.dialogue.OptionsNode(options) + val dispatchNode = core.game.dialogue.OptionsDispatchNode(options) + target.data[clauseIndex].nodes.add(node) + target.data[clauseIndex].nodes.add(dispatchNode) + return core.game.dialogue.DialogueOptionsBuilder(target, clauseIndex, options) + } +} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueFile.kt b/Server/src/main/core/game/dialogue/DialogueFile.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/content/dialogue/DialogueFile.kt rename to Server/src/main/core/game/dialogue/DialogueFile.kt index 543e0494c..7fcf7ccd2 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueFile.kt +++ b/Server/src/main/core/game/dialogue/DialogueFile.kt @@ -1,25 +1,22 @@ -package rs09.game.content.dialogue +package core.game.dialogue -import api.splitLines +import core.api.splitLines import core.game.component.Component -import core.game.content.dialogue.DialogueInterpreter -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import rs09.tools.START_DIALOGUE +import core.tools.START_DIALOGUE abstract class DialogueFile { var player: Player? = null var npc: NPC? = null - var interpreter: DialogueInterpreter? = null + var interpreter: core.game.dialogue.DialogueInterpreter? = null open var stage = START_DIALOGUE - var dialoguePlugin: DialoguePlugin? = null + var dialoguePlugin: core.game.dialogue.DialoguePlugin? = null abstract fun handle(componentID: Int, buttonID: Int) - fun load(player: Player, npc: NPC?, interpreter: DialogueInterpreter): DialogueFile{ + fun load(player: Player, npc: NPC?, interpreter: core.game.dialogue.DialogueInterpreter): DialogueFile { this.player = player this.npc = npc this.interpreter = interpreter @@ -31,7 +28,7 @@ abstract class DialogueFile { if (npc != null) { return interpreter!!.sendDialogues( npc, - if (npc!!.id > 8591) FacialExpression.OLD_NORMAL else FacialExpression.FRIENDLY, + if (npc!!.id > 8591) core.game.dialogue.FacialExpression.OLD_NORMAL else core.game.dialogue.FacialExpression.FRIENDLY, *messages ) } @@ -39,10 +36,10 @@ abstract class DialogueFile { } open fun npc(id: Int, vararg messages: String?): Component? { - return interpreter!!.sendDialogues(id, FacialExpression.FRIENDLY, *messages) + return interpreter!!.sendDialogues(id, core.game.dialogue.FacialExpression.FRIENDLY, *messages) } - open fun npc(expression: FacialExpression?, vararg messages: String?): Component? { + open fun npc(expression: core.game.dialogue.FacialExpression?, vararg messages: String?): Component? { return if (npc == null) { interpreter!!.sendDialogues(0, expression, *messages) } else interpreter!!.sendDialogues(npc, expression, *messages) @@ -52,7 +49,7 @@ abstract class DialogueFile { return interpreter!!.sendDialogues(player, null, *messages) } - open fun player(expression: FacialExpression?, vararg messages: String?): Component? { + open fun player(expression: core.game.dialogue.FacialExpression?, vararg messages: String?): Component? { return interpreter!!.sendDialogues(player, expression, *messages) } @@ -61,7 +58,7 @@ abstract class DialogueFile { * @param expr the FacialExpression to use, located in the FacialExpression enum. * @param msg the message for the NPC to say */ - open fun npcl(expr: FacialExpression?, msg: String?): Component? { + open fun npcl(expr: core.game.dialogue.FacialExpression?, msg: String?): Component? { return npc(expr, *splitLines(msg!!)) } @@ -74,7 +71,7 @@ abstract class DialogueFile { * @param expr the FacialExpression to use, located in the FacialExpression enum. * @param msg the message for the player to say */ - open fun playerl(expr: FacialExpression?, msg: String?): Component? { + open fun playerl(expr: core.game.dialogue.FacialExpression?, msg: String?): Component? { return player(expr, *splitLines(msg!!)) } @@ -86,7 +83,7 @@ abstract class DialogueFile { if(interpreter != null) interpreter!!.close() } - open fun sendNormalDialogue(entity: Entity?, expression: FacialExpression?, vararg messages: String?) { + open fun sendNormalDialogue(entity: Entity?, expression: core.game.dialogue.FacialExpression?, vararg messages: String?) { interpreter!!.sendDialogues(entity, expression, *messages) } diff --git a/Server/src/main/java/core/game/content/dialogue/DialogueInterpreter.java b/Server/src/main/core/game/dialogue/DialogueInterpreter.java similarity index 97% rename from Server/src/main/java/core/game/content/dialogue/DialogueInterpreter.java rename to Server/src/main/core/game/dialogue/DialogueInterpreter.java index 47caf63aa..a78a4e93d 100644 --- a/Server/src/main/java/core/game/content/dialogue/DialogueInterpreter.java +++ b/Server/src/main/core/game/dialogue/DialogueInterpreter.java @@ -1,8 +1,8 @@ -package core.game.content.dialogue; +package core.game.dialogue; -import api.events.DialogueCloseEvent; -import api.events.DialogueOpenEvent; -import api.events.DialogueOptionSelectionEvent; +import core.game.event.DialogueCloseEvent; +import core.game.event.DialogueOpenEvent; +import core.game.event.DialogueOptionSelectionEvent; import core.cache.def.impl.ItemDefinition; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; @@ -15,18 +15,14 @@ import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; import core.plugin.PluginManifest; import core.plugin.PluginType; -import rs09.game.content.dialogue.DialogueFile; -import rs09.game.content.dialogue.EmptyPlugin; -import rs09.game.content.dialogue.Topic; -import rs09.game.system.SystemLogger; -import rs09.game.system.config.ItemConfigParser; +import core.game.system.config.ItemConfigParser; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static rs09.tools.DialogueConstKt.END_DIALOGUE; +import static core.tools.DialogueConstKt.END_DIALOGUE; /** diff --git a/Server/src/main/java/core/game/content/dialogue/DialoguePlugin.java b/Server/src/main/core/game/dialogue/DialoguePlugin.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/DialoguePlugin.java rename to Server/src/main/core/game/dialogue/DialoguePlugin.java index 85a5eff59..26fb26129 100644 --- a/Server/src/main/java/core/game/content/dialogue/DialoguePlugin.java +++ b/Server/src/main/core/game/dialogue/DialoguePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package core.game.dialogue; import core.game.component.Component; import core.game.node.entity.Entity; @@ -7,17 +7,14 @@ import core.game.node.entity.player.Player; import core.plugin.Plugin; import core.plugin.PluginManifest; import core.plugin.PluginType; -import rs09.game.content.dialogue.DialogueFile; -import rs09.game.content.dialogue.IfTopic; -import rs09.game.content.dialogue.Topic; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; -import static api.DialUtilsKt.splitLines; -import static rs09.tools.DialogueConstKt.DIALOGUE_INITIAL_OPTIONS_HANDLE; -import static rs09.tools.DialogueConstKt.START_DIALOGUE; +import static core.api.DialUtilsKt.splitLines; +import static core.tools.DialogueConstKt.DIALOGUE_INITIAL_OPTIONS_HANDLE; +import static core.tools.DialogueConstKt.START_DIALOGUE; /** * Represents a dialogue plugin. diff --git a/Server/src/main/core/game/dialogue/DialogueTopic.kt b/Server/src/main/core/game/dialogue/DialogueTopic.kt new file mode 100644 index 000000000..5f7cff79c --- /dev/null +++ b/Server/src/main/core/game/dialogue/DialogueTopic.kt @@ -0,0 +1,12 @@ +package core.game.dialogue + +/** + * Topic/IfTopic system backported from my personal project + * @author Ceikry + */ +open class Topic(val expr: core.game.dialogue.FacialExpression, val text: String, val toStage: T, val skipPlayer: Boolean = false) { + constructor(text: String, toStage: T, skipPlayer: Boolean = false) : this(core.game.dialogue.FacialExpression.ASKING, text, toStage, skipPlayer) +} +class IfTopic(expr: core.game.dialogue.FacialExpression, text: String, toStage: T, val showCondition: Boolean, skipPlayer: Boolean = false) : Topic(expr, text, toStage, skipPlayer) { + constructor(text: String, toStage: T, showCondition: Boolean, skipPlayer: Boolean = false) : this(core.game.dialogue.FacialExpression.ASKING, text, toStage, showCondition, skipPlayer) +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/EmptyPlugin.kt b/Server/src/main/core/game/dialogue/EmptyPlugin.kt similarity index 75% rename from Server/src/main/kotlin/rs09/game/content/dialogue/EmptyPlugin.kt rename to Server/src/main/core/game/dialogue/EmptyPlugin.kt index 91a35127c..572fd63e6 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/EmptyPlugin.kt +++ b/Server/src/main/core/game/dialogue/EmptyPlugin.kt @@ -1,12 +1,11 @@ -package rs09.game.content.dialogue +package core.game.dialogue -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import rs09.tools.START_DIALOGUE +import core.tools.START_DIALOGUE -class EmptyPlugin(player: Player? = null,val file: DialogueFile?) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { +class EmptyPlugin(player: Player? = null,val file: DialogueFile?) : core.game.dialogue.DialoguePlugin(player) { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return EmptyPlugin(player,null) } diff --git a/Server/src/main/java/core/game/content/dialogue/FacialExpression.java b/Server/src/main/core/game/dialogue/FacialExpression.java similarity index 98% rename from Server/src/main/java/core/game/content/dialogue/FacialExpression.java rename to Server/src/main/core/game/dialogue/FacialExpression.java index 8ecf1ed26..e3011a5a3 100644 --- a/Server/src/main/java/core/game/content/dialogue/FacialExpression.java +++ b/Server/src/main/core/game/dialogue/FacialExpression.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package core.game.dialogue; /** * Represents the facial expressions (the animations the entity does when diff --git a/Server/src/main/java/core/game/content/dialogue/SimpleDialoguePlugin.java b/Server/src/main/core/game/dialogue/SimpleDialoguePlugin.java similarity index 95% rename from Server/src/main/java/core/game/content/dialogue/SimpleDialoguePlugin.java rename to Server/src/main/core/game/dialogue/SimpleDialoguePlugin.java index f39bc2daf..d930c3d61 100644 --- a/Server/src/main/java/core/game/content/dialogue/SimpleDialoguePlugin.java +++ b/Server/src/main/core/game/dialogue/SimpleDialoguePlugin.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package core.game.dialogue; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/dialogue/SimpleEntityMessage.java b/Server/src/main/core/game/dialogue/SimpleEntityMessage.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/SimpleEntityMessage.java rename to Server/src/main/core/game/dialogue/SimpleEntityMessage.java index e88d04674..cfc718e91 100644 --- a/Server/src/main/java/core/game/content/dialogue/SimpleEntityMessage.java +++ b/Server/src/main/core/game/dialogue/SimpleEntityMessage.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue; +package core.game.dialogue; import core.plugin.Initializable; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/SkillDialogueHandler.kt b/Server/src/main/core/game/dialogue/SkillDialogueHandler.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/content/dialogue/SkillDialogueHandler.kt rename to Server/src/main/core/game/dialogue/SkillDialogueHandler.kt index cbdffd428..e38896310 100644 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/SkillDialogueHandler.kt +++ b/Server/src/main/core/game/dialogue/SkillDialogueHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.content.dialogue +package core.game.dialogue import core.game.node.entity.player.Player import core.game.node.item.Item diff --git a/Server/src/main/java/core/game/content/dialogue/SkillDialoguePlugin.java b/Server/src/main/core/game/dialogue/SkillDialoguePlugin.java similarity index 85% rename from Server/src/main/java/core/game/content/dialogue/SkillDialoguePlugin.java rename to Server/src/main/core/game/dialogue/SkillDialoguePlugin.java index 922cf2f0b..f33a3a00c 100644 --- a/Server/src/main/java/core/game/content/dialogue/SkillDialoguePlugin.java +++ b/Server/src/main/core/game/dialogue/SkillDialoguePlugin.java @@ -1,13 +1,9 @@ -package core.game.content.dialogue; +package core.game.dialogue; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; -import core.game.node.entity.skill.crafting.spinning.SpinningPulse; -import core.game.node.item.Item; import core.plugin.Initializable; import kotlin.Unit; -import rs09.game.content.dialogue.SkillDialogueHandler; /** * Represents the dialogue plugin used to automatically handle skill dialogues with creation amounts. diff --git a/Server/src/main/java/core/game/content/dialogue/book/Book.java b/Server/src/main/core/game/dialogue/book/Book.java similarity index 96% rename from Server/src/main/java/core/game/content/dialogue/book/Book.java rename to Server/src/main/core/game/dialogue/book/Book.java index c78ce364e..ce15fd6e6 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/Book.java +++ b/Server/src/main/core/game/dialogue/book/Book.java @@ -1,7 +1,8 @@ -package core.game.content.dialogue.book; +package core.game.dialogue.book; import core.game.component.Component; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.plugin.PluginManifest; import core.plugin.PluginType; diff --git a/Server/src/main/java/core/game/content/dialogue/book/BookLine.java b/Server/src/main/core/game/dialogue/book/BookLine.java similarity index 94% rename from Server/src/main/java/core/game/content/dialogue/book/BookLine.java rename to Server/src/main/core/game/dialogue/book/BookLine.java index d274e0079..101446508 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/BookLine.java +++ b/Server/src/main/core/game/dialogue/book/BookLine.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue.book; +package core.game.dialogue.book; /** * Represents a book line. diff --git a/Server/src/main/java/core/game/content/dialogue/book/Page.java b/Server/src/main/core/game/dialogue/book/Page.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/book/Page.java rename to Server/src/main/core/game/dialogue/book/Page.java index 96196b272..e6196c964 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/Page.java +++ b/Server/src/main/core/game/dialogue/book/Page.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue.book; +package core.game.dialogue.book; /** * Represents a page on a book. diff --git a/Server/src/main/java/core/game/content/dialogue/book/PageSet.java b/Server/src/main/core/game/dialogue/book/PageSet.java similarity index 91% rename from Server/src/main/java/core/game/content/dialogue/book/PageSet.java rename to Server/src/main/core/game/dialogue/book/PageSet.java index bce595b70..5e4793345 100644 --- a/Server/src/main/java/core/game/content/dialogue/book/PageSet.java +++ b/Server/src/main/core/game/dialogue/book/PageSet.java @@ -1,4 +1,4 @@ -package core.game.content.dialogue.book; +package core.game.dialogue.book; /** * Represents a set of pages on a book. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/AreaDiaryTask.kt b/Server/src/main/core/game/diary/AreaDiaryTask.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/AreaDiaryTask.kt rename to Server/src/main/core/game/diary/AreaDiaryTask.kt index df3dff977..7041ad411 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/AreaDiaryTask.kt +++ b/Server/src/main/core/game/diary/AreaDiaryTask.kt @@ -1,14 +1,14 @@ -package rs09.game.node.entity.player.link.diary +package core.game.diary -import api.inBorders +import core.api.inBorders import core.game.node.entity.player.Player import core.game.world.map.zone.ZoneBorders class AreaDiaryTask( - val zoneBorders: ZoneBorders, - val diaryLevel: DiaryLevel, - val taskId: Int, - private val condition: ((player: Player) -> Boolean)? = null + val zoneBorders: ZoneBorders, + val diaryLevel: DiaryLevel, + val taskId: Int, + private val condition: ((player: Player) -> Boolean)? = null ) { fun whenSatisfied(player: Player, then: () -> Unit) { var result = inBorders(player, zoneBorders) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryEventHookBase.kt b/Server/src/main/core/game/diary/DiaryEventHookBase.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryEventHookBase.kt rename to Server/src/main/core/game/diary/DiaryEventHookBase.kt index 0e6abd3d6..30e08f41a 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryEventHookBase.kt +++ b/Server/src/main/core/game/diary/DiaryEventHookBase.kt @@ -1,12 +1,12 @@ -package rs09.game.node.entity.player.link.diary +package core.game.diary -import api.* -import api.events.* +import core.api.* +import core.game.event.* import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.world.map.zone.ZoneBorders -import rs09.game.Event +import core.api.Event abstract class DiaryEventHookBase(private val diaryType: DiaryType) : MapArea, LoginListener { protected companion object { @@ -18,9 +18,9 @@ abstract class DiaryEventHookBase(private val diaryType: DiaryType) : MapArea, L } } - class EventHandler( - private val owner: DiaryEventHookBase, - private val handler: (Player, T) -> Unit + class EventHandler( + private val owner: DiaryEventHookBase, + private val handler: (Player, T) -> Unit ) : EventHook { override fun process(entity: Entity, event: T) { forEligibleEntityDo(entity, event, handler) @@ -95,11 +95,11 @@ abstract class DiaryEventHookBase(private val diaryType: DiaryType) : MapArea, L } protected fun progressIncrementalTask( - player: Player, - level: DiaryLevel, - task: Int, - attribute: String, - maxProgress: Int + player: Player, + level: DiaryLevel, + task: Int, + attribute: String, + maxProgress: Int ) { if (isTaskCompleted(player, level, task)) return @@ -126,12 +126,12 @@ abstract class DiaryEventHookBase(private val diaryType: DiaryType) : MapArea, L } protected fun progressFlaggedTask( - player: Player, - level: DiaryLevel, - task: Int, - attribute: String, - bit: Int, - targetValue: Int + player: Player, + level: DiaryLevel, + task: Int, + attribute: String, + bit: Int, + targetValue: Int ) { if (isTaskCompleted(player, level, task)) { return diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryLevel.kt b/Server/src/main/core/game/diary/DiaryLevel.kt similarity index 59% rename from Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryLevel.kt rename to Server/src/main/core/game/diary/DiaryLevel.kt index 33b2a4255..f983cc0c0 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/link/diary/DiaryLevel.kt +++ b/Server/src/main/core/game/diary/DiaryLevel.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.player.link.diary +package core.game.diary enum class DiaryLevel { BEGINNER, diff --git a/Server/src/main/core/game/event/Event.kt b/Server/src/main/core/game/event/Event.kt new file mode 100644 index 000000000..9dfb6c767 --- /dev/null +++ b/Server/src/main/core/game/event/Event.kt @@ -0,0 +1,3 @@ +package core.game.event + +interface Event {} \ No newline at end of file diff --git a/Server/src/main/kotlin/api/events/EventHook.kt b/Server/src/main/core/game/event/EventHook.kt similarity index 82% rename from Server/src/main/kotlin/api/events/EventHook.kt rename to Server/src/main/core/game/event/EventHook.kt index ba274269e..ce77835a2 100644 --- a/Server/src/main/kotlin/api/events/EventHook.kt +++ b/Server/src/main/core/game/event/EventHook.kt @@ -1,4 +1,4 @@ -package api.events +package core.game.event import core.game.node.entity.Entity diff --git a/Server/src/main/kotlin/api/events/Events.kt b/Server/src/main/core/game/event/Events.kt similarity index 92% rename from Server/src/main/kotlin/api/events/Events.kt rename to Server/src/main/core/game/event/Events.kt index a0681ef92..f399a67ce 100644 --- a/Server/src/main/kotlin/api/events/Events.kt +++ b/Server/src/main/core/game/event/Events.kt @@ -1,7 +1,7 @@ -package api.events +package core.game.event import core.game.component.Component -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.npc.NPC @@ -9,9 +9,9 @@ import core.game.node.entity.player.link.SpellBookManager.SpellBook import core.game.node.entity.player.link.TeleportManager.TeleportType import core.game.node.item.Item import core.game.world.map.Location -import rs09.game.content.jobs.JobType -import rs09.game.interaction.inter.FairyRing -import rs09.game.node.entity.skill.magic.TeleportMethod +import content.global.activity.jobs.JobType +import content.global.handlers.iface.FairyRing +import content.global.skill.magic.TeleportMethod data class ResourceProducedEvent(val itemId: Int, val amount: Int, val source: Node, val original: Int = -1) : Event data class NPCKillEvent(val npc: NPC) : Event diff --git a/Server/src/main/kotlin/rs09/game/ge/BotPrices.kt b/Server/src/main/core/game/ge/BotPrices.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/ge/BotPrices.kt rename to Server/src/main/core/game/ge/BotPrices.kt index 44190357d..3d180d81a 100644 --- a/Server/src/main/kotlin/rs09/game/ge/BotPrices.kt +++ b/Server/src/main/core/game/ge/BotPrices.kt @@ -1,4 +1,4 @@ -package rs09.game.ge +package core.game.ge import core.cache.def.impl.ItemDefinition import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/ge/GEAutoStock.kt b/Server/src/main/core/game/ge/GEAutoStock.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ge/GEAutoStock.kt rename to Server/src/main/core/game/ge/GEAutoStock.kt index bc1856398..db0467e79 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GEAutoStock.kt +++ b/Server/src/main/core/game/ge/GEAutoStock.kt @@ -1,10 +1,10 @@ -package rs09.game.ge +package core.game.ge -import api.StartupListener +import core.api.StartupListener import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants +import core.ServerConstants import java.io.File import java.io.FileReader diff --git a/Server/src/main/kotlin/rs09/game/ge/GEDB.kt b/Server/src/main/core/game/ge/GEDB.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/ge/GEDB.kt rename to Server/src/main/core/game/ge/GEDB.kt index 3bfd7631a..6db3ca4dc 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GEDB.kt +++ b/Server/src/main/core/game/ge/GEDB.kt @@ -1,12 +1,11 @@ -package rs09.game.ge +package core.game.ge import core.cache.def.impl.ItemDefinition import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser import org.sqlite.SQLiteDataSource -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants import java.io.File import java.io.FileReader import java.sql.Connection diff --git a/Server/src/main/java/core/game/ge/GEGuidePrice.java b/Server/src/main/core/game/ge/GEGuidePrice.java similarity index 99% rename from Server/src/main/java/core/game/ge/GEGuidePrice.java rename to Server/src/main/core/game/ge/GEGuidePrice.java index 09736376a..f5cff84a3 100644 --- a/Server/src/main/java/core/game/ge/GEGuidePrice.java +++ b/Server/src/main/core/game/ge/GEGuidePrice.java @@ -3,7 +3,6 @@ package core.game.ge; import core.game.component.Component; import core.game.node.entity.player.Player; import core.tools.StringUtils; -import rs09.game.ge.GrandExchange; /** * Represents the glass used to open the guide prices for the different type of diff --git a/Server/src/main/java/core/game/ge/GEItemSet.java b/Server/src/main/core/game/ge/GEItemSet.java similarity index 100% rename from Server/src/main/java/core/game/ge/GEItemSet.java rename to Server/src/main/core/game/ge/GEItemSet.java diff --git a/Server/src/main/kotlin/rs09/game/ge/GrandExchange.kt b/Server/src/main/core/game/ge/GrandExchange.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ge/GrandExchange.kt rename to Server/src/main/core/game/ge/GrandExchange.kt index 39d21b3d9..86eb9293c 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GrandExchange.kt +++ b/Server/src/main/core/game/ge/GrandExchange.kt @@ -1,18 +1,17 @@ -package rs09.game.ge +package core.game.ge -import api.* -import core.game.ge.OfferState +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.info.PlayerDetails import core.game.node.entity.player.link.audio.Audio import core.game.system.task.Pulse -import rs09.ServerConstants -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.game.system.config.ItemConfigParser -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.ServerConstants +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.game.system.config.ItemConfigParser +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.colorize import java.lang.Integer.max import java.util.concurrent.LinkedBlockingDeque @@ -150,26 +149,23 @@ class GrandExchange : StartupListener, Commands { var bestPrice = 0 var stmt = conn.createStatement() - if(!sale) - { + if (!sale) { var botAmt = 0 var botPrice = 0 val player_offers = stmt.executeQuery("SELECT * from player_offers where item_id = $itemID AND is_sale = 1 AND offer_state < 4 AND NOT offer_state = 2") - while(player_offers.next()) - { + while (player_offers.next()) { val o = GrandExchangeOffer.fromQuery(player_offers) ++foundOffers totalAmount += o.amountLeft - if(o.offeredValue < bestPrice || bestPrice == 0) + if (o.offeredValue < bestPrice || bestPrice == 0) bestPrice = o.offeredValue } stmt.close() stmt = conn.createStatement() val bot_offers = stmt.executeQuery("SELECT * from bot_offers where item_id = $itemID") - if(bot_offers.next()) - { + if (bot_offers.next()) { val o = GrandExchangeOffer.fromBotQuery(bot_offers) botAmt = o.amount botPrice = getRecommendedPrice(itemID, true) @@ -180,17 +176,14 @@ class GrandExchange : StartupListener, Commands { sb.append("-".repeat(50)) sb.append("
Bot Stock: $botAmt ") sb.append(" Bot Price: $botPrice") - } - else - { + } else { val buy_offers = stmt.executeQuery("SELECT * from player_offers where item_id = $itemID AND is_sale = 0 AND offer_state < 4 AND NOT offer_state = 2") - while(buy_offers.next()) - { + while (buy_offers.next()) { val o = GrandExchangeOffer.fromQuery(buy_offers) ++foundOffers totalAmount += o.amountLeft - if(o.offeredValue > bestPrice) + if (o.offeredValue > bestPrice) bestPrice = o.offeredValue } @@ -335,7 +328,7 @@ class GrandExchange : StartupListener, Commands { val stmt = conn.createStatement() val results = - stmt.executeQuery("SELECT * FROM player_offers WHERE offer_state < 4 AND NOT offer_state = 2") + stmt.executeQuery("SELECT * FROM player_offers WHERE offer_state < 4 AND NOT offer_state = 2") while (results.next()) { val o = GrandExchangeOffer.fromQuery(results) offers.add(o) diff --git a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt b/Server/src/main/core/game/ge/GrandExchangeOffer.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt rename to Server/src/main/core/game/ge/GrandExchangeOffer.kt index e2740d697..d27f7f431 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeOffer.kt +++ b/Server/src/main/core/game/ge/GrandExchangeOffer.kt @@ -1,8 +1,7 @@ -package rs09.game.ge +package core.game.ge -import api.getAttribute +import core.api.getAttribute import core.cache.def.impl.ItemDefinition -import core.game.ge.OfferState import core.game.node.entity.player.Player import core.game.node.item.Item import core.net.packet.PacketRepository @@ -10,8 +9,8 @@ import core.net.packet.context.ContainerContext import core.net.packet.context.GrandExchangeContext import core.net.packet.out.ContainerPacket import core.net.packet.out.GrandExchangePacket -import discord.Discord -import rs09.game.world.repository.Repository +import core.integrations.discord.Discord +import core.game.world.repository.Repository import java.sql.ResultSet @@ -96,17 +95,14 @@ class GrandExchangeOffer() { fun update() { - GEDB.run {conn -> - if(isBot) - { + GEDB.run { conn -> + if (isBot) { val stmt = conn.prepareStatement("UPDATE bot_offers SET amount = ? WHERE item_id = ?") stmt.setInt(1, amountLeft) stmt.setInt(2, itemID) stmt.executeUpdate() stmt.close() - } - else - { + } else { val stmt = conn.prepareStatement("UPDATE player_offers SET amount_complete = ?, offer_state = ?, total_coin_xc = ?, withdraw_items = ?, slot_index = ? WHERE uid = ?") stmt.setInt(1, completedAmount) stmt.setInt(2, offerState.ordinal) @@ -138,8 +134,8 @@ class GrandExchangeOffer() { } else { val stmt = conn.createStatement() stmt.executeUpdate( - "INSERT INTO player_offers(player_uid, item_id, amount_total, offered_value, time_stamp, offer_state, is_sale, slot_index) " + - "values($playerUID,$itemID,$amount,$offeredValue,${System.currentTimeMillis()},${offerState.ordinal},${if (sell) 1 else 0}, $index)" + "INSERT INTO player_offers(player_uid, item_id, amount_total, offered_value, time_stamp, offer_state, is_sale, slot_index) " + + "values($playerUID,$itemID,$amount,$offeredValue,${System.currentTimeMillis()},${offerState.ordinal},${if (sell) 1 else 0}, $index)" ) val nowuid = stmt.executeQuery("SELECT last_insert_rowid()") uid = nowuid.getLong(1) diff --git a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeRecords.kt b/Server/src/main/core/game/ge/GrandExchangeRecords.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/ge/GrandExchangeRecords.kt rename to Server/src/main/core/game/ge/GrandExchangeRecords.kt index b6134d604..cf31406b0 100644 --- a/Server/src/main/kotlin/rs09/game/ge/GrandExchangeRecords.kt +++ b/Server/src/main/core/game/ge/GrandExchangeRecords.kt @@ -1,14 +1,13 @@ -package rs09.game.ge +package core.game.ge -import api.* +import core.api.* import core.cache.def.impl.ItemDefinition import core.game.component.Component -import core.game.ge.OfferState import core.game.node.entity.player.Player import org.json.simple.JSONArray import org.json.simple.JSONObject import org.rs09.consts.Components -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.text.NumberFormat import java.util.* diff --git a/Server/src/main/java/core/game/ge/OfferState.java b/Server/src/main/core/game/ge/OfferState.java similarity index 100% rename from Server/src/main/java/core/game/ge/OfferState.java rename to Server/src/main/core/game/ge/OfferState.java diff --git a/Server/src/main/kotlin/rs09/game/ge/PriceIndex.kt b/Server/src/main/core/game/ge/PriceIndex.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/ge/PriceIndex.kt rename to Server/src/main/core/game/ge/PriceIndex.kt index 94ab802e3..5acf81384 100644 --- a/Server/src/main/kotlin/rs09/game/ge/PriceIndex.kt +++ b/Server/src/main/core/game/ge/PriceIndex.kt @@ -1,17 +1,17 @@ -package rs09.game.ge +package core.game.ge -import api.itemDefinition +import core.api.itemDefinition import java.sql.ResultSet object PriceIndex { @JvmStatic fun canTrade(id: Int): Boolean { var canTrade = false - GEDB.run {conn -> + GEDB.run { conn -> val stmt = conn.prepareStatement(EXISTS_QUERY) stmt.setInt(1, id) val res = stmt.executeQuery() - if(res.next()) { + if (res.next()) { canTrade = res.getInt(1) == 1 } } @@ -47,7 +47,7 @@ object PriceIndex { val stmt = conn.prepareStatement(GET_VALUE_QUERY) stmt.setInt(1, id) val res = stmt.executeQuery() - if(res.next()) { + if (res.next()) { value = res.getInt(1) } } @@ -97,7 +97,7 @@ object PriceIndex { val stmt = conn.prepareStatement(SELECT_QUERY) stmt.setInt(1, id) val res = stmt.executeQuery() - if(res.next()) { + if (res.next()) { priceInfo = PriceInfo.fromQuery(res) } } diff --git a/Server/src/main/java/core/game/content/global/Skillcape.java b/Server/src/main/core/game/global/Skillcape.java similarity index 96% rename from Server/src/main/java/core/game/content/global/Skillcape.java rename to Server/src/main/core/game/global/Skillcape.java index 0b335eeec..619b87f04 100644 --- a/Server/src/main/java/core/game/content/global/Skillcape.java +++ b/Server/src/main/core/game/global/Skillcape.java @@ -1,7 +1,8 @@ -package core.game.content.global; +package core.game.global; import core.game.container.Container; -import core.game.content.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; +import core.game.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java b/Server/src/main/core/game/global/action/ClimbActionHandler.java similarity index 97% rename from Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java rename to Server/src/main/core/game/global/action/ClimbActionHandler.java index 077c8c4f8..f9042b724 100644 --- a/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java +++ b/Server/src/main/core/game/global/action/ClimbActionHandler.java @@ -1,21 +1,15 @@ -package core.game.content.global.action; +package core.game.global.action; -import api.ContentAPIKt; -import core.game.container.impl.EquipmentContainer; -import org.rs09.consts.Items; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; -import static api.ContentAPIKt.isEquipped; - /** * Handles a ladder climbing reward. * @author Emperor diff --git a/Server/src/main/java/core/game/content/global/action/DigAction.java b/Server/src/main/core/game/global/action/DigAction.java similarity index 84% rename from Server/src/main/java/core/game/content/global/action/DigAction.java rename to Server/src/main/core/game/global/action/DigAction.java index 7a49b68f7..3c47ef614 100644 --- a/Server/src/main/java/core/game/content/global/action/DigAction.java +++ b/Server/src/main/core/game/global/action/DigAction.java @@ -1,4 +1,4 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/content/global/action/DigSpadeHandler.java b/Server/src/main/core/game/global/action/DigSpadeHandler.java similarity index 91% rename from Server/src/main/java/core/game/content/global/action/DigSpadeHandler.java rename to Server/src/main/core/game/global/action/DigSpadeHandler.java index e206f7ee9..265fd30c1 100644 --- a/Server/src/main/java/core/game/content/global/action/DigSpadeHandler.java +++ b/Server/src/main/core/game/global/action/DigSpadeHandler.java @@ -1,11 +1,11 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.entity.player.Player; import core.game.system.communication.CommunicationInfo; -import rs09.game.interaction.SpadeDigListener; -import rs09.game.system.SystemLogger; +import content.global.handlers.item.SpadeDigListener; +import core.tools.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java b/Server/src/main/core/game/global/action/DoorActionHandler.java similarity index 99% rename from Server/src/main/java/core/game/content/global/action/DoorActionHandler.java rename to Server/src/main/core/game/global/action/DoorActionHandler.java index c4b5635ea..5c51ea0d5 100644 --- a/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java +++ b/Server/src/main/core/game/global/action/DoorActionHandler.java @@ -1,4 +1,4 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; @@ -13,8 +13,8 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.path.Pathfinder; import kotlin.Unit; -import rs09.game.system.config.DoorConfigLoader; -import rs09.game.world.GameWorld; +import core.game.system.config.DoorConfigLoader; +import core.game.world.GameWorld; import java.awt.*; diff --git a/Server/src/main/java/core/game/content/global/action/DropItemHandler.java b/Server/src/main/core/game/global/action/DropItemHandler.java similarity index 89% rename from Server/src/main/java/core/game/content/global/action/DropItemHandler.java rename to Server/src/main/core/game/global/action/DropItemHandler.java index 469309d3f..64d29a7f4 100644 --- a/Server/src/main/java/core/game/content/global/action/DropItemHandler.java +++ b/Server/src/main/core/game/global/action/DropItemHandler.java @@ -1,4 +1,4 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.Node; import core.game.node.entity.player.Player; @@ -6,11 +6,10 @@ import core.game.node.entity.player.info.login.PlayerParser; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import rs09.game.node.entity.player.graves.Grave; -import rs09.game.node.entity.player.graves.GraveController; -import rs09.game.system.SystemLogger; -import rs09.game.system.config.ItemConfigParser; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.graves.GraveController; +import core.tools.SystemLogger; +import core.game.system.config.ItemConfigParser; +import core.game.world.GameWorld; /** * Handles the dropping of an item. diff --git a/Server/src/main/kotlin/rs09/game/content/global/action/EquipHandler.kt b/Server/src/main/core/game/global/action/EquipHandler.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/global/action/EquipHandler.kt rename to Server/src/main/core/game/global/action/EquipHandler.kt index a485ef82a..dc0059990 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/action/EquipHandler.kt +++ b/Server/src/main/core/game/global/action/EquipHandler.kt @@ -1,19 +1,19 @@ -package rs09.game.content.global.action +package core.game.global.action -import api.events.ItemEquipEvent -import api.events.ItemUnequipEvent +import core.game.event.ItemEquipEvent +import core.game.event.ItemUnequipEvent import core.game.container.impl.EquipmentContainer -import core.game.interaction.item.brawling_gloves.BrawlingGlovesManager +import content.global.handlers.item.equipment.brawling_gloves.BrawlingGlovesManager +import content.global.skill.slayer.SlayerEquipmentFlags import core.game.node.Node import core.game.node.entity.combat.equipment.WeaponInterface import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags import core.plugin.Plugin -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.system.config.ItemConfigParser +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.game.system.config.ItemConfigParser /** * Represents the equipment equipping handler plugin. diff --git a/Server/src/main/java/core/game/content/global/action/LadderAchievementCheck.java b/Server/src/main/core/game/global/action/LadderAchievementCheck.java similarity index 79% rename from Server/src/main/java/core/game/content/global/action/LadderAchievementCheck.java rename to Server/src/main/core/game/global/action/LadderAchievementCheck.java index 30d893514..9f8e6b57a 100644 --- a/Server/src/main/java/core/game/content/global/action/LadderAchievementCheck.java +++ b/Server/src/main/core/game/global/action/LadderAchievementCheck.java @@ -1,4 +1,4 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.entity.player.Player; diff --git a/Server/src/main/kotlin/rs09/game/content/global/action/PickupHandler.kt b/Server/src/main/core/game/global/action/PickupHandler.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/content/global/action/PickupHandler.kt rename to Server/src/main/core/game/global/action/PickupHandler.kt index 8ec35a606..0f9249f62 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/action/PickupHandler.kt +++ b/Server/src/main/core/game/global/action/PickupHandler.kt @@ -1,22 +1,21 @@ -package rs09.game.content.global.action +package core.game.global.action -import api.events.PickUpEvent -import api.getItemName -import core.game.content.dialogue.FacialExpression -import core.game.content.global.GodType +import core.game.event.PickUpEvent +import core.api.getItemName +import content.data.GodType import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio -import core.game.node.entity.skill.runecrafting.RunePouch +import content.global.skill.runecrafting.RunePouch +import core.game.node.entity.player.info.LogType import core.game.node.item.GroundItem import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation -import rs09.game.node.entity.player.info.LogType -import rs09.game.node.entity.player.info.PlayerMonitor -import rs09.game.system.SystemLogger -import rs09.game.system.config.GroundSpawnLoader -import rs09.game.world.GameWorld +import core.game.node.entity.player.info.PlayerMonitor +import core.tools.SystemLogger +import core.game.system.config.GroundSpawnLoader +import core.game.world.GameWorld /** * A class used to handle the picking up of ground items. @@ -87,7 +86,7 @@ object PickupHandler { return false } if (item.id == 8858 || item.id == 8859) { - player.dialogueInterpreter.sendDialogues(4300, FacialExpression.FURIOUS, "Hey! You can't take that, it's guild property. Take one", "from the pile.") + player.dialogueInterpreter.sendDialogues(4300, core.game.dialogue.FacialExpression.FURIOUS, "Hey! You can't take that, it's guild property. Take one", "from the pile.") return false } if (GodType.forCape(item) != null) { diff --git a/Server/src/main/java/core/game/content/global/action/SpecialLadders.java b/Server/src/main/core/game/global/action/SpecialLadders.java similarity index 99% rename from Server/src/main/java/core/game/content/global/action/SpecialLadders.java rename to Server/src/main/core/game/global/action/SpecialLadders.java index 7dceeb340..c69b6e81a 100644 --- a/Server/src/main/java/core/game/content/global/action/SpecialLadders.java +++ b/Server/src/main/core/game/global/action/SpecialLadders.java @@ -1,4 +1,4 @@ -package core.game.content.global.action; +package core.game.global.action; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; diff --git a/Server/src/main/java/core/game/content/global/presets/Preset.java b/Server/src/main/core/game/global/presets/Preset.java similarity index 93% rename from Server/src/main/java/core/game/content/global/presets/Preset.java rename to Server/src/main/core/game/global/presets/Preset.java index b9806bc1a..4be95485e 100644 --- a/Server/src/main/java/core/game/content/global/presets/Preset.java +++ b/Server/src/main/core/game/global/presets/Preset.java @@ -1,4 +1,4 @@ -package core.game.content.global.presets; +package core.game.global.presets; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/presets/PresetManager.java b/Server/src/main/core/game/global/presets/PresetManager.java similarity index 96% rename from Server/src/main/java/core/game/content/global/presets/PresetManager.java rename to Server/src/main/core/game/global/presets/PresetManager.java index 59726bce3..a5fa057ac 100644 --- a/Server/src/main/java/core/game/content/global/presets/PresetManager.java +++ b/Server/src/main/core/game/global/presets/PresetManager.java @@ -1,4 +1,4 @@ -package core.game.content.global.presets; +package core.game.global.presets; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/content/global/report/AbuseReport.java b/Server/src/main/core/game/global/report/AbuseReport.java similarity index 93% rename from Server/src/main/java/core/game/content/global/report/AbuseReport.java rename to Server/src/main/core/game/global/report/AbuseReport.java index c639aa11a..0a47d41f1 100644 --- a/Server/src/main/java/core/game/content/global/report/AbuseReport.java +++ b/Server/src/main/core/game/global/report/AbuseReport.java @@ -1,8 +1,8 @@ -package core.game.content.global.report; +package core.game.global.report; import core.game.node.entity.player.Player; -import discord.Discord; -import rs09.game.system.command.CommandMapping; +import core.integrations.discord.Discord; +import core.game.system.command.CommandMapping; /** * Represents an abuse report to file. diff --git a/Server/src/main/java/core/game/content/global/report/Rule.java b/Server/src/main/core/game/global/report/Rule.java similarity index 96% rename from Server/src/main/java/core/game/content/global/report/Rule.java rename to Server/src/main/core/game/global/report/Rule.java index e340e92df..b11c3a54a 100644 --- a/Server/src/main/java/core/game/content/global/report/Rule.java +++ b/Server/src/main/core/game/global/report/Rule.java @@ -1,4 +1,4 @@ -package core.game.content.global.report; +package core.game.global.report; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/interaction/DestinationFlag.java b/Server/src/main/core/game/interaction/DestinationFlag.java similarity index 99% rename from Server/src/main/java/core/game/interaction/DestinationFlag.java rename to Server/src/main/core/game/interaction/DestinationFlag.java index cbd44f039..cbaa15045 100644 --- a/Server/src/main/java/core/game/interaction/DestinationFlag.java +++ b/Server/src/main/core/game/interaction/DestinationFlag.java @@ -1,6 +1,6 @@ package core.game.interaction; -import core.game.content.global.action.DoorActionHandler; +import core.game.global.action.DoorActionHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.scenery.Scenery; diff --git a/Server/src/main/kotlin/rs09/game/interaction/IntType.kt b/Server/src/main/core/game/interaction/IntType.kt similarity index 73% rename from Server/src/main/kotlin/rs09/game/interaction/IntType.kt rename to Server/src/main/core/game/interaction/IntType.kt index dc8ac61e1..6fbee0041 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/IntType.kt +++ b/Server/src/main/core/game/interaction/IntType.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction +package core.game.interaction enum class IntType { ITEM, diff --git a/Server/src/main/java/core/game/interaction/Interaction.java b/Server/src/main/core/game/interaction/Interaction.java similarity index 98% rename from Server/src/main/java/core/game/interaction/Interaction.java rename to Server/src/main/core/game/interaction/Interaction.java index f7da75f8a..c96de2c10 100644 --- a/Server/src/main/java/core/game/interaction/Interaction.java +++ b/Server/src/main/core/game/interaction/Interaction.java @@ -1,6 +1,6 @@ package core.game.interaction; -import api.events.InteractionEvent; +import core.game.event.InteractionEvent; import core.game.container.Container; import core.game.node.Node; import core.game.node.entity.impl.PulseType; @@ -13,10 +13,8 @@ import core.game.world.update.flag.player.FaceLocationFlag; import core.net.packet.PacketRepository; import core.net.packet.context.InteractionOptionContext; import core.net.packet.out.InteractionOption; -import rs09.game.interaction.IntType; -import rs09.game.interaction.InteractionListeners; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; /** * Handles interaction between nodes. diff --git a/Server/src/main/kotlin/rs09/game/interaction/InteractionListener.kt b/Server/src/main/core/game/interaction/InteractionListener.kt similarity index 71% rename from Server/src/main/kotlin/rs09/game/interaction/InteractionListener.kt rename to Server/src/main/core/game/interaction/InteractionListener.kt index c3ad5dc61..ef7963650 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/InteractionListener.kt +++ b/Server/src/main/core/game/interaction/InteractionListener.kt @@ -1,12 +1,11 @@ -package rs09.game.interaction +package core.game.interaction -import api.ContentInterface +import core.api.ContentInterface import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.player.Player -import core.game.node.item.Item import core.game.world.map.Location -import rs09.game.system.SystemLogger +import content.global.handlers.item.SpadeDigListener interface InteractionListener : ContentInterface{ val ITEM @@ -19,22 +18,22 @@ interface InteractionListener : ContentInterface{ get() = IntType.SCENERY fun on(id: Int, type: IntType, vararg option: String, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.add(id,type.ordinal,option,handler) + InteractionListeners.add(id, type.ordinal, option, handler) } fun on(ids: IntArray, type: IntType, vararg option: String, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.add(ids,type.ordinal,option,handler) + InteractionListeners.add(ids, type.ordinal, option, handler) } fun on(option: String, type: IntType, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.add(option,type.ordinal,handler) + InteractionListeners.add(option, type.ordinal, handler) } fun on(type: IntType, vararg option: String, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.add(option,type.ordinal,handler) + InteractionListeners.add(option, type.ordinal, handler) } fun onUseWith(type: IntType, used: Int, vararg with: Int, handler: (player: Player, used: Node, with: Node) -> Boolean){ - InteractionListeners.add(type.ordinal,used,with,handler) + InteractionListeners.add(type.ordinal, used, with, handler) } fun onUseWith(type: IntType, used: IntArray, vararg with: Int, handler: (player: Player, used: Node, with: Node) -> Boolean){ - InteractionListeners.add(type.ordinal,used,with,handler) + InteractionListeners.add(type.ordinal, used, with, handler) } fun onUseAnyWith(type: IntType, vararg with: Int, handler: (player: Player, used: Node, with: Node) -> Boolean) { InteractionListeners.add(type.ordinal, with, handler) @@ -48,34 +47,34 @@ interface InteractionListener : ContentInterface{ InteractionListeners.addWildcard(type.ordinal, predicate, handler) } fun onEquip(id: Int, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.addEquip(id,handler) + InteractionListeners.addEquip(id, handler) } fun onUnequip(id:Int, handler: (player: Player, node: Node) -> Boolean){ - InteractionListeners.addUnequip(id,handler) + InteractionListeners.addUnequip(id, handler) } fun onEquip(ids: IntArray, handler: (player: Player, node: Node) -> Boolean){ - ids.forEach { id -> InteractionListeners.addEquip(id,handler) } + ids.forEach { id -> InteractionListeners.addEquip(id, handler) } } fun onUnequip(ids:IntArray, handler: (player: Player, node: Node) -> Boolean){ - ids.forEach{ id -> InteractionListeners.addUnequip(id,handler) } + ids.forEach{ id -> InteractionListeners.addUnequip(id, handler) } } fun defineDestinationOverrides(){} - fun setDest(type: IntType, id: Int,handler: (Entity, Node) -> Location){ - InteractionListeners.addDestOverride(type.ordinal,id,handler) + fun setDest(type: IntType, id: Int, handler: (Entity, Node) -> Location){ + InteractionListeners.addDestOverride(type.ordinal, id, handler) } fun setDest(type: IntType, vararg options: String, handler: (Entity, Node) -> Location){ - InteractionListeners.addDestOverrides(type.ordinal,options,handler) + InteractionListeners.addDestOverrides(type.ordinal, options, handler) } fun setDest(type: IntType, ids: IntArray, vararg options: String, handler: (Entity, Node) -> Location){ - InteractionListeners.addDestOverrides(type.ordinal,ids,options,handler) + InteractionListeners.addDestOverrides(type.ordinal, ids, options, handler) } fun onDig(location: Location,method: (player: Player) -> Unit){ - SpadeDigListener.registerListener(location,method) + SpadeDigListener.registerListener(location, method) } fun flagInstant() { diff --git a/Server/src/main/kotlin/rs09/game/interaction/InteractionListeners.kt b/Server/src/main/core/game/interaction/InteractionListeners.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/InteractionListeners.kt rename to Server/src/main/core/game/interaction/InteractionListeners.kt index 46497cbbf..0d65d40c5 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/InteractionListeners.kt +++ b/Server/src/main/core/game/interaction/InteractionListeners.kt @@ -1,10 +1,7 @@ -package rs09.game.interaction +package core.game.interaction -import api.events.InteractionEvent -import api.events.UseWithEvent -import core.game.interaction.DestinationFlag -import core.game.interaction.MovementPulse -import core.game.interaction.Option +import core.game.event.InteractionEvent +import core.game.event.UseWithEvent import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/interaction/InterfaceListener.kt b/Server/src/main/core/game/interaction/InterfaceListener.kt similarity index 79% rename from Server/src/main/kotlin/rs09/game/interaction/InterfaceListener.kt rename to Server/src/main/core/game/interaction/InterfaceListener.kt index f571de6a8..b28c5e9a5 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/InterfaceListener.kt +++ b/Server/src/main/core/game/interaction/InterfaceListener.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction +package core.game.interaction -import api.ContentInterface +import core.api.ContentInterface import core.game.component.Component import core.game.node.entity.player.Player @@ -13,15 +13,15 @@ interface InterfaceListener : ContentInterface { fun defineInterfaceListeners() fun on(componentID: Int, buttonID: Int, handler: (player: Player, component: Component, opcode: Int, buttonID: Int, slot: Int, itemID: Int) -> Boolean){ - InterfaceListeners.add(componentID,buttonID,handler) + InterfaceListeners.add(componentID, buttonID, handler) } fun on(componentID: Int, handler: (player: Player, component: Component, opcode: Int, buttonID: Int, slot: Int, itemID: Int) -> Boolean){ - InterfaceListeners.add(componentID,handler) + InterfaceListeners.add(componentID, handler) } fun onOpen(componentID: Int,handler: (player: Player, component: Component) -> Boolean){ InterfaceListeners.addOpenListener(componentID, handler) } fun onClose(componentID: Int,handler: (player: Player, component: Component) -> Boolean){ - InterfaceListeners.addCloseListener(componentID,handler) + InterfaceListeners.addCloseListener(componentID, handler) } } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/InterfaceListeners.kt b/Server/src/main/core/game/interaction/InterfaceListeners.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/InterfaceListeners.kt rename to Server/src/main/core/game/interaction/InterfaceListeners.kt index ab626abac..2fded1e88 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/InterfaceListeners.kt +++ b/Server/src/main/core/game/interaction/InterfaceListeners.kt @@ -1,4 +1,4 @@ -package rs09.game.interaction +package core.game.interaction import core.game.component.Component import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/interaction/Listener.kt b/Server/src/main/core/game/interaction/Listener.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/interaction/Listener.kt rename to Server/src/main/core/game/interaction/Listener.kt index acb46a58b..dc4b5c4e1 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/Listener.kt +++ b/Server/src/main/core/game/interaction/Listener.kt @@ -1,6 +1,6 @@ -package rs09.game.interaction +package core.game.interaction -import api.StartupListener +import core.api.StartupListener interface Listener : StartupListener { override fun startup() { diff --git a/Server/src/main/java/core/game/interaction/MovementPulse.java b/Server/src/main/core/game/interaction/MovementPulse.java similarity index 99% rename from Server/src/main/java/core/game/interaction/MovementPulse.java rename to Server/src/main/core/game/interaction/MovementPulse.java index a13a7d047..9f819f091 100644 --- a/Server/src/main/java/core/game/interaction/MovementPulse.java +++ b/Server/src/main/core/game/interaction/MovementPulse.java @@ -5,7 +5,6 @@ import core.game.node.entity.Entity; import core.game.node.entity.impl.WalkingQueue; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Direction; import core.game.world.map.Location; @@ -15,10 +14,8 @@ import core.game.world.map.path.Pathfinder; import core.net.packet.PacketRepository; import core.net.packet.context.PlayerContext; import core.net.packet.out.ClearMinimapFlag; -import kotlin.jvm.functions.Function1; import kotlin.jvm.functions.Function2; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; import java.util.Deque; diff --git a/Server/src/main/java/core/game/interaction/NodeUsageEvent.java b/Server/src/main/core/game/interaction/NodeUsageEvent.java similarity index 100% rename from Server/src/main/java/core/game/interaction/NodeUsageEvent.java rename to Server/src/main/core/game/interaction/NodeUsageEvent.java diff --git a/Server/src/main/java/core/game/interaction/Option.java b/Server/src/main/core/game/interaction/Option.java similarity index 100% rename from Server/src/main/java/core/game/interaction/Option.java rename to Server/src/main/core/game/interaction/Option.java diff --git a/Server/src/main/java/core/game/interaction/OptionHandler.java b/Server/src/main/core/game/interaction/OptionHandler.java similarity index 98% rename from Server/src/main/java/core/game/interaction/OptionHandler.java rename to Server/src/main/core/game/interaction/OptionHandler.java index 168b7ae1b..3528289cd 100644 --- a/Server/src/main/java/core/game/interaction/OptionHandler.java +++ b/Server/src/main/core/game/interaction/OptionHandler.java @@ -3,7 +3,7 @@ package core.game.interaction; import core.cache.def.impl.SceneryDefinition; import core.game.node.Node; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/PluginInteraction.java b/Server/src/main/core/game/interaction/PluginInteraction.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/PluginInteraction.java rename to Server/src/main/core/game/interaction/PluginInteraction.java index c7d1e672e..ecb8708b7 100644 --- a/Server/src/main/java/core/game/content/quest/PluginInteraction.java +++ b/Server/src/main/core/game/interaction/PluginInteraction.java @@ -1,4 +1,4 @@ -package core.game.content.quest; +package core.game.interaction; import core.game.interaction.NodeUsageEvent; import core.game.interaction.Option; diff --git a/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java b/Server/src/main/core/game/interaction/PluginInteractionManager.java similarity index 96% rename from Server/src/main/java/core/game/content/quest/PluginInteractionManager.java rename to Server/src/main/core/game/interaction/PluginInteractionManager.java index 727363b11..1f2eadbfa 100644 --- a/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java +++ b/Server/src/main/core/game/interaction/PluginInteractionManager.java @@ -1,7 +1,5 @@ -package core.game.content.quest; +package core.game.interaction; -import core.game.interaction.NodeUsageEvent; -import core.game.interaction.Option; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; diff --git a/Server/src/main/java/core/game/interaction/SpecialGroundInteraction.java b/Server/src/main/core/game/interaction/SpecialGroundInteraction.java similarity index 100% rename from Server/src/main/java/core/game/interaction/SpecialGroundInteraction.java rename to Server/src/main/core/game/interaction/SpecialGroundInteraction.java diff --git a/Server/src/main/java/core/game/interaction/SpecialGroundItems.java b/Server/src/main/core/game/interaction/SpecialGroundItems.java similarity index 92% rename from Server/src/main/java/core/game/interaction/SpecialGroundItems.java rename to Server/src/main/core/game/interaction/SpecialGroundItems.java index 1357f3c40..9e7324282 100644 --- a/Server/src/main/java/core/game/interaction/SpecialGroundItems.java +++ b/Server/src/main/core/game/interaction/SpecialGroundItems.java @@ -1,6 +1,6 @@ package core.game.interaction; -import core.game.interaction.city.portsarim.AhabBeerInteraction; +import content.region.asgarnia.portsarim.handlers.AhabBeerInteraction; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/UseWithHandler.java b/Server/src/main/core/game/interaction/UseWithHandler.java similarity index 99% rename from Server/src/main/java/core/game/interaction/UseWithHandler.java rename to Server/src/main/core/game/interaction/UseWithHandler.java index dc79cf200..fa2b5e393 100644 --- a/Server/src/main/java/core/game/interaction/UseWithHandler.java +++ b/Server/src/main/core/game/interaction/UseWithHandler.java @@ -1,6 +1,6 @@ package core.game.interaction; -import api.events.UseWithEvent; +import core.game.event.UseWithEvent; import core.cache.def.impl.SceneryDefinition; import core.game.node.Node; import core.game.node.entity.impl.PulseType; @@ -8,7 +8,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.player.FaceLocationFlag; diff --git a/Server/src/main/java/core/game/node/Node.java b/Server/src/main/core/game/node/Node.java similarity index 100% rename from Server/src/main/java/core/game/node/Node.java rename to Server/src/main/core/game/node/Node.java diff --git a/Server/src/main/java/core/game/node/entity/Entity.java b/Server/src/main/core/game/node/entity/Entity.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/Entity.java rename to Server/src/main/core/game/node/entity/Entity.java index 650198e9c..2bdc10d75 100644 --- a/Server/src/main/java/core/game/node/entity/Entity.java +++ b/Server/src/main/core/game/node/entity/Entity.java @@ -1,7 +1,6 @@ package core.game.node.entity; -import api.events.*; -import core.game.content.holiday.HolidayEvent; +import core.game.event.*; import core.game.interaction.DestinationFlag; import core.game.node.Node; import core.game.node.entity.combat.BattleState; @@ -18,10 +17,8 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.state.EntityState; import core.game.node.entity.state.StateManager; import core.game.system.task.Pulse; -import core.game.world.map.zone.ZoneBorders; import org.jetbrains.annotations.NotNull; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.Viewport; import core.game.world.map.path.Path; @@ -29,15 +26,13 @@ import core.game.world.map.path.Pathfinder; import core.game.world.map.zone.ZoneMonitor; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.world.update.UpdateMasks; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.world.update.UpdateMasks; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; /** * An entity is a movable node, such as players and NPCs. @@ -263,9 +258,6 @@ public abstract class Entity extends Node { * @param killer The killer of this entity. */ public void commenceDeath(Entity killer) { - if (HolidayEvent.getCurrent() != null) { - HolidayEvent.getCurrent().commenceDeath(killer, this); - } } /** @@ -280,9 +272,6 @@ public abstract class Entity extends Node { stateManager.reset(); removeAttribute("combat-time"); face(null); - if (HolidayEvent.getCurrent() != null) { - HolidayEvent.getCurrent().finalizeDeath(killer, this); - } //Check if it's a Loar shade and transform back into the shadow version. if(this.getId() == 1240 || this.getId() == 1241){ this.asNpc().transform(1240); diff --git a/Server/src/main/java/core/game/node/entity/combat/BattleState.java b/Server/src/main/core/game/node/entity/combat/BattleState.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/combat/BattleState.java rename to Server/src/main/core/game/node/entity/combat/BattleState.java index 17871ede9..e75aac19d 100644 --- a/Server/src/main/java/core/game/node/entity/combat/BattleState.java +++ b/Server/src/main/core/game/node/entity/combat/BattleState.java @@ -5,6 +5,7 @@ import core.game.node.entity.combat.equipment.Ammunition; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.combat.equipment.RangeWeapon; import core.game.node.entity.combat.equipment.Weapon; +import core.game.node.entity.combat.spell.CombatSpell; /** * Represents an entity's current battle state. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/CombatPulse.kt b/Server/src/main/core/game/node/entity/combat/CombatPulse.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/CombatPulse.kt rename to Server/src/main/core/game/node/entity/combat/CombatPulse.kt index 2dc1a314d..009df9029 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/CombatPulse.kt +++ b/Server/src/main/core/game/node/entity/combat/CombatPulse.kt @@ -1,13 +1,10 @@ -package rs09.game.node.entity.combat +package core.game.node.entity.combat +import content.global.handlers.item.equipment.special.SalamanderSwingHandler import core.game.container.impl.EquipmentContainer import core.game.interaction.MovementPulse import core.game.node.Node import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.combat.DeathTask -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.WeaponInterface import core.game.node.entity.impl.Animator import core.game.node.entity.npc.NPC @@ -17,10 +14,9 @@ import core.game.node.entity.skill.Skills import core.game.node.entity.state.EntityState import core.game.node.item.Item import core.game.system.task.Pulse -import rs09.game.world.GameWorld +import core.game.world.GameWorld import core.game.world.update.flag.context.Animation import core.tools.RandomFunction -import rs09.game.node.entity.combat.handlers.SalamanderSwingHandler /** * The combat-handling pulse implementation. diff --git a/Server/src/main/java/core/game/node/entity/combat/CombatStyle.java b/Server/src/main/core/game/node/entity/combat/CombatStyle.java similarity index 84% rename from Server/src/main/java/core/game/node/entity/combat/CombatStyle.java rename to Server/src/main/core/game/node/entity/combat/CombatStyle.java index cf751001a..eaa4c3140 100644 --- a/Server/src/main/java/core/game/node/entity/combat/CombatStyle.java +++ b/Server/src/main/core/game/node/entity/combat/CombatStyle.java @@ -1,10 +1,6 @@ package core.game.node.entity.combat; import core.game.node.entity.player.link.prayer.PrayerType; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.handlers.MagicSwingHandler; -import rs09.game.node.entity.combat.handlers.MeleeSwingHandler; -import rs09.game.node.entity.combat.handlers.RangeSwingHandler; /** * Represents the different styles of combat. diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/CombatSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/CombatSwingHandler.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/CombatSwingHandler.kt rename to Server/src/main/core/game/node/entity/combat/CombatSwingHandler.kt index eb3abb159..6b148d8e4 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/CombatSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/CombatSwingHandler.kt @@ -1,19 +1,16 @@ -package rs09.game.node.entity.combat +package core.game.node.entity.combat import core.game.component.Component import core.game.container.impl.EquipmentContainer import core.game.node.Node import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.audio.Audio import core.game.node.entity.player.link.prayer.PrayerType import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.summoning.familiar.Familiar +import content.global.skill.summoning.familiar.Familiar import core.game.world.map.Direction import core.game.world.map.Location import core.game.world.map.RegionManager @@ -22,8 +19,8 @@ import core.game.world.map.path.Pathfinder import core.game.world.map.path.Pathfinder.* import core.game.world.update.flag.context.Animation import core.tools.RandomFunction -import rs09.game.system.SystemLogger -import rs09.game.system.config.ItemConfigParser +import core.tools.SystemLogger +import core.game.system.config.ItemConfigParser import java.util.* import kotlin.math.floor diff --git a/Server/src/main/java/core/game/node/entity/combat/DeathTask.java b/Server/src/main/core/game/node/entity/combat/DeathTask.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/combat/DeathTask.java rename to Server/src/main/core/game/node/entity/combat/DeathTask.java index 5050dc0ba..99d697ce2 100644 --- a/Server/src/main/java/core/game/node/entity/combat/DeathTask.java +++ b/Server/src/main/core/game/node/entity/combat/DeathTask.java @@ -1,6 +1,6 @@ package core.game.node.entity.combat; -import api.events.SelfDeathEvent; +import core.game.event.SelfDeathEvent; import core.game.container.Container; import core.game.container.ContainerType; import core.game.node.Node; @@ -15,7 +15,7 @@ import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.Item; import core.game.system.task.NodeTask; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java b/Server/src/main/core/game/node/entity/combat/ImpactHandler.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java rename to Server/src/main/core/game/node/entity/combat/ImpactHandler.java index 8a9b1b84e..af9f3794c 100644 --- a/Server/src/main/java/core/game/node/entity/combat/ImpactHandler.java +++ b/Server/src/main/core/game/node/entity/combat/ImpactHandler.java @@ -1,18 +1,18 @@ package core.game.node.entity.combat; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.pet.Pet; +import content.global.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.pet.Pet; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.ai.AIPlayer; -import rs09.game.world.GameWorld; +import core.game.bots.AIPlayer; +import core.game.world.GameWorld; import core.game.world.map.zone.ZoneType; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/combat/InteractionType.java b/Server/src/main/core/game/node/entity/combat/InteractionType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/InteractionType.java rename to Server/src/main/core/game/node/entity/combat/InteractionType.java diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/MagicSwingHandler.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt rename to Server/src/main/core/game/node/entity/combat/MagicSwingHandler.kt index 6bbafc838..13d0164b8 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MagicSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/MagicSwingHandler.kt @@ -1,17 +1,13 @@ -package rs09.game.node.entity.combat.handlers +package core.game.node.entity.combat import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.ArmourSet -import core.game.node.entity.combat.equipment.SpellType +import core.game.node.entity.combat.spell.SpellType import core.game.node.entity.combat.equipment.WeaponInterface import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.tools.RandomFunction -import rs09.game.node.entity.combat.CombatSwingHandler import kotlin.math.floor /** diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt rename to Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt index 4e7624777..b54533a6b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MeleeSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/MeleeSwingHandler.kt @@ -1,25 +1,21 @@ -package rs09.game.node.entity.combat.handlers +package core.game.node.entity.combat -import api.* -import api.EquipmentSlot +import content.global.skill.skillcapeperks.SkillcapePerks +import content.global.skill.slayer.SlayerEquipmentFlags +import content.global.skill.slayer.SlayerManager +import core.api.* +import core.api.EquipmentSlot import core.game.container.impl.EquipmentContainer import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.ArmourSet import core.game.node.entity.combat.equipment.Weapon import core.game.node.entity.combat.equipment.WeaponInterface import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import rs09.game.node.entity.skill.slayer.SlayerEquipmentFlags import core.game.node.entity.state.EntityState import core.game.world.map.path.Pathfinder import core.tools.RandomFunction -import rs09.game.node.entity.combat.CombatSwingHandler -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks -import rs09.game.node.entity.skill.slayer.SlayerManager import kotlin.math.ceil import kotlin.math.floor diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MultiSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/MultiSwingHandler.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MultiSwingHandler.kt rename to Server/src/main/core/game/node/entity/combat/MultiSwingHandler.kt index ebfcf75f0..41ac8dca3 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/MultiSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/MultiSwingHandler.kt @@ -1,10 +1,6 @@ -package rs09.game.node.entity.combat.handlers +package core.game.node.entity.combat import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import rs09.game.node.entity.combat.CombatSwingHandler -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.SwitchAttack import core.game.node.entity.npc.NPC import core.tools.RandomFunction diff --git a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt b/Server/src/main/core/game/node/entity/combat/RangeSwingHandler.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt rename to Server/src/main/core/game/node/entity/combat/RangeSwingHandler.kt index 6512fe11c..64d4784c7 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/combat/handlers/RangeSwingHandler.kt +++ b/Server/src/main/core/game/node/entity/combat/RangeSwingHandler.kt @@ -1,10 +1,8 @@ -package rs09.game.node.entity.combat.handlers +package core.game.node.entity.combat +import content.global.skill.skillcapeperks.SkillcapePerks import core.game.container.impl.EquipmentContainer import core.game.node.entity.Entity -import core.game.node.entity.combat.BattleState -import core.game.node.entity.combat.CombatStyle -import core.game.node.entity.combat.InteractionType import core.game.node.entity.combat.equipment.* import core.game.node.entity.combat.equipment.Weapon.WeaponType import core.game.node.entity.impl.Projectile @@ -20,10 +18,8 @@ import core.game.world.map.Location import core.game.world.map.RegionManager import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction -import rs09.game.node.entity.combat.CombatSwingHandler -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.tools.SystemLogger +import core.game.world.GameWorld import java.util.* import kotlin.math.ceil import kotlin.math.floor diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/Ammunition.java b/Server/src/main/core/game/node/entity/combat/equipment/Ammunition.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/Ammunition.java rename to Server/src/main/core/game/node/entity/combat/equipment/Ammunition.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/ArmourSet.java b/Server/src/main/core/game/node/entity/combat/equipment/ArmourSet.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/ArmourSet.java rename to Server/src/main/core/game/node/entity/combat/equipment/ArmourSet.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/BoltEffect.java b/Server/src/main/core/game/node/entity/combat/equipment/BoltEffect.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/combat/equipment/BoltEffect.java rename to Server/src/main/core/game/node/entity/combat/equipment/BoltEffect.java index 6071dae75..7b6d5275b 100644 --- a/Server/src/main/java/core/game/node/entity/combat/equipment/BoltEffect.java +++ b/Server/src/main/core/game/node/entity/combat/equipment/BoltEffect.java @@ -8,7 +8,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.state.EntityState; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; import org.rs09.consts.NPCs; diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/DegradableEquipment.java b/Server/src/main/core/game/node/entity/combat/equipment/DegradableEquipment.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/DegradableEquipment.java rename to Server/src/main/core/game/node/entity/combat/equipment/DegradableEquipment.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/FireType.java b/Server/src/main/core/game/node/entity/combat/equipment/FireType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/FireType.java rename to Server/src/main/core/game/node/entity/combat/equipment/FireType.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/RangeWeapon.java b/Server/src/main/core/game/node/entity/combat/equipment/RangeWeapon.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/RangeWeapon.java rename to Server/src/main/core/game/node/entity/combat/equipment/RangeWeapon.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/SwitchAttack.java b/Server/src/main/core/game/node/entity/combat/equipment/SwitchAttack.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/combat/equipment/SwitchAttack.java rename to Server/src/main/core/game/node/entity/combat/equipment/SwitchAttack.java index c707e343b..7a11c7eb3 100644 --- a/Server/src/main/java/core/game/node/entity/combat/equipment/SwitchAttack.java +++ b/Server/src/main/core/game/node/entity/combat/equipment/SwitchAttack.java @@ -3,7 +3,7 @@ package core.game.node.entity.combat.equipment; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; -import rs09.game.node.entity.combat.CombatSwingHandler; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.impl.Projectile; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/Weapon.java b/Server/src/main/core/game/node/entity/combat/equipment/Weapon.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/combat/equipment/Weapon.java rename to Server/src/main/core/game/node/entity/combat/equipment/Weapon.java diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/WeaponInterface.java b/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/combat/equipment/WeaponInterface.java rename to Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java index 78c7bdf86..b9e0de4c0 100644 --- a/Server/src/main/java/core/game/node/entity/combat/equipment/WeaponInterface.java +++ b/Server/src/main/core/game/node/entity/combat/equipment/WeaponInterface.java @@ -4,7 +4,7 @@ import core.game.component.Component; import core.game.component.ComponentDefinition; import core.game.component.InterfaceType; import core.game.container.impl.EquipmentContainer; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager; @@ -18,7 +18,7 @@ import core.net.packet.out.Interface; import core.net.packet.out.InterfaceConfig; import core.net.packet.out.StringPacket; import org.rs09.consts.Components; -import rs09.game.system.config.ItemConfigParser; +import core.game.system.config.ItemConfigParser; /** diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/Grave.kt b/Server/src/main/core/game/node/entity/combat/graves/Grave.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/node/entity/player/graves/Grave.kt rename to Server/src/main/core/game/node/entity/combat/graves/Grave.kt index f0a3505b1..efd2f9b17 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/Grave.kt +++ b/Server/src/main/core/game/node/entity/combat/graves/Grave.kt @@ -1,9 +1,8 @@ -package rs09.game.node.entity.player.graves +package core.game.node.entity.combat.graves -import api.TickListener -import api.clearHintIcon -import api.registerHintIcon -import api.sendMessage +import core.api.clearHintIcon +import core.api.registerHintIcon +import core.api.sendMessage import core.game.node.entity.npc.AbstractNPC import core.game.node.entity.player.Player import core.game.node.item.GroundItem @@ -12,12 +11,11 @@ import core.game.node.item.Item import core.game.world.map.Location import core.plugin.Initializable import org.rs09.consts.NPCs -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.secondsToTicks -import rs09.tools.stringtools.colorize -import rs09.tools.ticksToSeconds -import kotlin.properties.Delegates +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.secondsToTicks +import core.tools.colorize +import core.tools.ticksToSeconds @Initializable class Grave : AbstractNPC { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveController.kt b/Server/src/main/core/game/node/entity/combat/graves/GraveController.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveController.kt rename to Server/src/main/core/game/node/entity/combat/graves/GraveController.kt index ba950a59c..94674226b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveController.kt +++ b/Server/src/main/core/game/node/entity/combat/graves/GraveController.kt @@ -1,7 +1,6 @@ -package rs09.game.node.entity.player.graves +package core.game.node.entity.combat.graves -import api.* -import core.game.interaction.Interaction +import core.api.* import core.game.node.Node import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player @@ -16,15 +15,14 @@ import core.game.world.map.zone.ZoneRestriction import org.json.simple.JSONArray import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.secondsToTicks -import rs09.tools.stringtools.colorize -import rs09.tools.ticksToSeconds +import core.ServerStore +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.secondsToTicks +import core.tools.colorize import java.util.Map import kotlin.math.min diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GravePurchaseInterface.kt b/Server/src/main/core/game/node/entity/combat/graves/GravePurchaseInterface.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/node/entity/player/graves/GravePurchaseInterface.kt rename to Server/src/main/core/game/node/entity/combat/graves/GravePurchaseInterface.kt index 1a5598abf..fb2f2927e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GravePurchaseInterface.kt +++ b/Server/src/main/core/game/node/entity/combat/graves/GravePurchaseInterface.kt @@ -1,10 +1,10 @@ -package rs09.game.node.entity.player.graves +package core.game.node.entity.combat.graves -import api.* +import core.api.* import core.game.node.item.Item import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.game.interaction.InterfaceListener +import core.game.interaction.InterfaceListener class GravePurchaseInterface : InterfaceListener { val BUTTON_CONFIRM = 34 diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveType.kt b/Server/src/main/core/game/node/entity/combat/graves/GraveType.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveType.kt rename to Server/src/main/core/game/node/entity/combat/graves/GraveType.kt index afb664c45..7d4f7bc5b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/graves/GraveType.kt +++ b/Server/src/main/core/game/node/entity/combat/graves/GraveType.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.player.graves +package core.game.node.entity.combat.graves import org.rs09.consts.NPCs diff --git a/Server/src/main/java/core/game/node/entity/combat/CombatSpell.java b/Server/src/main/core/game/node/entity/combat/spell/CombatSpell.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/combat/CombatSpell.java rename to Server/src/main/core/game/node/entity/combat/spell/CombatSpell.java index 3761ffaf6..225855b11 100644 --- a/Server/src/main/java/core/game/node/entity/combat/CombatSpell.java +++ b/Server/src/main/core/game/node/entity/combat/spell/CombatSpell.java @@ -1,9 +1,10 @@ -package core.game.node.entity.combat; +package core.game.node.entity.combat.spell; -import core.game.node.entity.skill.magic.MagicSpell; +import core.game.node.entity.combat.BattleState; +import core.game.node.entity.combat.CombatStyle; +import core.game.node.entity.combat.InteractionType; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.SpellType; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/CombinationRune.java b/Server/src/main/core/game/node/entity/combat/spell/CombinationRune.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/magic/CombinationRune.java rename to Server/src/main/core/game/node/entity/combat/spell/CombinationRune.java index cab977fa0..08e475767 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/CombinationRune.java +++ b/Server/src/main/core/game/node/entity/combat/spell/CombinationRune.java @@ -1,4 +1,4 @@ -package core.game.node.entity.skill.magic; +package core.game.node.entity.combat.spell; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/DefaultCombatSpell.java b/Server/src/main/core/game/node/entity/combat/spell/DefaultCombatSpell.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/combat/equipment/DefaultCombatSpell.java rename to Server/src/main/core/game/node/entity/combat/spell/DefaultCombatSpell.java index fcbfa6133..3dc776bcf 100644 --- a/Server/src/main/java/core/game/node/entity/combat/equipment/DefaultCombatSpell.java +++ b/Server/src/main/core/game/node/entity/combat/spell/DefaultCombatSpell.java @@ -1,10 +1,9 @@ -package core.game.node.entity.combat.equipment; +package core.game.node.entity.combat.spell; import core.game.node.entity.skill.Skills; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.link.SpellBookManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/MagicSpell.java b/Server/src/main/core/game/node/entity/combat/spell/MagicSpell.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/skill/magic/MagicSpell.java rename to Server/src/main/core/game/node/entity/combat/spell/MagicSpell.java index 987998ce7..53d017c75 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/MagicSpell.java +++ b/Server/src/main/core/game/node/entity/combat/spell/MagicSpell.java @@ -1,18 +1,16 @@ -package core.game.node.entity.skill.magic; +package core.game.node.entity.combat.spell; import core.game.component.Component; import core.game.node.entity.skill.Skills; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; -import rs09.game.node.entity.combat.CombatSwingHandler; -import core.game.node.entity.combat.equipment.SpellType; +import core.game.node.entity.combat.CombatSwingHandler; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.MapDistance; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/MagicStaff.java b/Server/src/main/core/game/node/entity/combat/spell/MagicStaff.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/magic/MagicStaff.java rename to Server/src/main/core/game/node/entity/combat/spell/MagicStaff.java index 921157d91..103a63264 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/MagicStaff.java +++ b/Server/src/main/core/game/node/entity/combat/spell/MagicStaff.java @@ -1,6 +1,4 @@ -package core.game.node.entity.skill.magic; - -import org.rs09.consts.Items; +package core.game.node.entity.combat.spell; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/Runes.java b/Server/src/main/core/game/node/entity/combat/spell/Runes.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/skill/magic/Runes.java rename to Server/src/main/core/game/node/entity/combat/spell/Runes.java index 15e4e8c4d..dacb28c27 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/Runes.java +++ b/Server/src/main/core/game/node/entity/combat/spell/Runes.java @@ -1,6 +1,5 @@ -package core.game.node.entity.skill.magic; +package core.game.node.entity.combat.spell; -import core.game.node.entity.combat.equipment.SpellType; import core.game.node.item.Item; import org.rs09.consts.Items; diff --git a/Server/src/main/java/core/game/node/entity/combat/spell/SpellBlocks.java b/Server/src/main/core/game/node/entity/combat/spell/SpellBlocks.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/combat/spell/SpellBlocks.java rename to Server/src/main/core/game/node/entity/combat/spell/SpellBlocks.java index b1a37c197..e6fc5a781 100644 --- a/Server/src/main/java/core/game/node/entity/combat/spell/SpellBlocks.java +++ b/Server/src/main/core/game/node/entity/combat/spell/SpellBlocks.java @@ -1,7 +1,6 @@ package core.game.node.entity.combat.spell; import core.game.node.Node; -import rs09.game.system.SystemLogger; import java.util.ArrayList; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/combat/equipment/SpellType.java b/Server/src/main/core/game/node/entity/combat/spell/SpellType.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/combat/equipment/SpellType.java rename to Server/src/main/core/game/node/entity/combat/spell/SpellType.java index 135dcf8c5..508400c17 100644 --- a/Server/src/main/java/core/game/node/entity/combat/equipment/SpellType.java +++ b/Server/src/main/core/game/node/entity/combat/spell/SpellType.java @@ -1,4 +1,4 @@ -package core.game.node.entity.combat.equipment; +package core.game.node.entity.combat.spell; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.skill.Skills; diff --git a/Server/src/main/java/core/game/node/entity/impl/Animator.java b/Server/src/main/core/game/node/entity/impl/Animator.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/impl/Animator.java rename to Server/src/main/core/game/node/entity/impl/Animator.java index 8bc30f93f..f52c8dc14 100644 --- a/Server/src/main/java/core/game/node/entity/impl/Animator.java +++ b/Server/src/main/core/game/node/entity/impl/Animator.java @@ -2,7 +2,7 @@ package core.game.node.entity.impl; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.game.world.update.flag.npc.NPCAnimation; diff --git a/Server/src/main/java/core/game/node/entity/impl/ForceMovement.java b/Server/src/main/core/game/node/entity/impl/ForceMovement.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/impl/ForceMovement.java rename to Server/src/main/core/game/node/entity/impl/ForceMovement.java index b18780194..e3ef1eb1e 100644 --- a/Server/src/main/java/core/game/node/entity/impl/ForceMovement.java +++ b/Server/src/main/core/game/node/entity/impl/ForceMovement.java @@ -3,7 +3,7 @@ package core.game.node.entity.impl; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java b/Server/src/main/core/game/node/entity/impl/GameAttributes.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/impl/GameAttributes.java rename to Server/src/main/core/game/node/entity/impl/GameAttributes.java index 26bb8f348..4596b76d8 100644 --- a/Server/src/main/java/core/game/node/entity/impl/GameAttributes.java +++ b/Server/src/main/core/game/node/entity/impl/GameAttributes.java @@ -1,6 +1,6 @@ package core.game.node.entity.impl; -import rs09.ServerConstants; +import core.ServerConstants; import org.w3c.dom.*; import javax.xml.parsers.DocumentBuilder; @@ -10,7 +10,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.TimeUnit; /** * Handles an entity's game attributes. diff --git a/Server/src/main/java/core/game/node/entity/impl/Projectile.java b/Server/src/main/core/game/node/entity/impl/Projectile.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/impl/Projectile.java rename to Server/src/main/core/game/node/entity/impl/Projectile.java diff --git a/Server/src/main/java/core/game/node/entity/impl/Properties.java b/Server/src/main/core/game/node/entity/impl/Properties.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/impl/Properties.java rename to Server/src/main/core/game/node/entity/impl/Properties.java index f764986dd..ab6044614 100644 --- a/Server/src/main/java/core/game/node/entity/impl/Properties.java +++ b/Server/src/main/core/game/node/entity/impl/Properties.java @@ -3,7 +3,7 @@ package core.game.node.entity.impl; import core.game.container.Container; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.Entity; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.equipment.ArmourSet; import core.game.node.entity.combat.equipment.WeaponInterface; @@ -13,9 +13,9 @@ import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.system.config.ItemConfigParser; -import rs09.game.system.config.NPCConfigParser; +import core.game.node.entity.combat.CombatPulse; +import core.game.system.config.ItemConfigParser; +import core.game.system.config.NPCConfigParser; /** * Holds an entity's properties. diff --git a/Server/src/main/java/core/game/node/entity/impl/PulseManager.java b/Server/src/main/core/game/node/entity/impl/PulseManager.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/impl/PulseManager.java rename to Server/src/main/core/game/node/entity/impl/PulseManager.java index d3538aaf8..74a78e7cc 100644 --- a/Server/src/main/java/core/game/node/entity/impl/PulseManager.java +++ b/Server/src/main/core/game/node/entity/impl/PulseManager.java @@ -5,8 +5,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.node.entity.combat.CombatPulse; -import rs09.game.world.GameWorld; +import core.game.node.entity.combat.CombatPulse; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/node/entity/impl/PulseType.java b/Server/src/main/core/game/node/entity/impl/PulseType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/impl/PulseType.java rename to Server/src/main/core/game/node/entity/impl/PulseType.java diff --git a/Server/src/main/java/core/game/node/entity/impl/WalkingQueue.java b/Server/src/main/core/game/node/entity/impl/WalkingQueue.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/impl/WalkingQueue.java rename to Server/src/main/core/game/node/entity/impl/WalkingQueue.java index c24e792fd..5b81e2aef 100644 --- a/Server/src/main/java/core/game/node/entity/impl/WalkingQueue.java +++ b/Server/src/main/core/game/node/entity/impl/WalkingQueue.java @@ -1,5 +1,6 @@ package core.game.node.entity.impl; +import content.global.skill.skillcapeperks.SkillcapePerks; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; @@ -7,8 +8,6 @@ import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.Point; import core.game.world.map.RegionManager; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.world.GameWorld; import java.util.Deque; import java.util.LinkedList; diff --git a/Server/src/main/java/core/game/node/entity/lock/ActionLocks.java b/Server/src/main/core/game/node/entity/lock/ActionLocks.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/lock/ActionLocks.java rename to Server/src/main/core/game/node/entity/lock/ActionLocks.java index f24ea9a9a..af76575a1 100644 --- a/Server/src/main/java/core/game/node/entity/lock/ActionLocks.java +++ b/Server/src/main/core/game/node/entity/lock/ActionLocks.java @@ -1,7 +1,7 @@ package core.game.node.entity.lock; import core.game.node.Node; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/java/core/game/node/entity/lock/Lock.java b/Server/src/main/core/game/node/entity/lock/Lock.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/lock/Lock.java rename to Server/src/main/core/game/node/entity/lock/Lock.java index 005e55e64..efa739c03 100644 --- a/Server/src/main/java/core/game/node/entity/lock/Lock.java +++ b/Server/src/main/core/game/node/entity/lock/Lock.java @@ -1,6 +1,6 @@ package core.game.node.entity.lock; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents a lock. diff --git a/Server/src/main/java/core/game/node/entity/lock/LockElapse.java b/Server/src/main/core/game/node/entity/lock/LockElapse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/lock/LockElapse.java rename to Server/src/main/core/game/node/entity/lock/LockElapse.java diff --git a/Server/src/main/java/core/game/node/entity/npc/AbstractNPC.java b/Server/src/main/core/game/node/entity/npc/AbstractNPC.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/AbstractNPC.java rename to Server/src/main/core/game/node/entity/npc/AbstractNPC.java index 7605a60f5..b0731b45b 100644 --- a/Server/src/main/java/core/game/node/entity/npc/AbstractNPC.java +++ b/Server/src/main/core/game/node/entity/npc/AbstractNPC.java @@ -1,6 +1,6 @@ package core.game.node.entity.npc; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/npc/IdleAbstractNPC.java b/Server/src/main/core/game/node/entity/npc/IdleAbstractNPC.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/npc/IdleAbstractNPC.java rename to Server/src/main/core/game/node/entity/npc/IdleAbstractNPC.java diff --git a/Server/src/main/java/core/game/node/entity/npc/Metamorphosis.java b/Server/src/main/core/game/node/entity/npc/Metamorphosis.java similarity index 91% rename from Server/src/main/java/core/game/node/entity/npc/Metamorphosis.java rename to Server/src/main/core/game/node/entity/npc/Metamorphosis.java index 07920a2b8..9b3175aed 100644 --- a/Server/src/main/java/core/game/node/entity/npc/Metamorphosis.java +++ b/Server/src/main/core/game/node/entity/npc/Metamorphosis.java @@ -1,15 +1,15 @@ package core.game.node.entity.npc; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.entity.skill.summoning.pet.Pets; +import core.game.dialogue.DialoguePlugin; +import content.global.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.pet.Pets; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.plugin.Plugin; -import rs09.plugin.ClassScanner; +import core.plugin.ClassScanner; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/NPC.java b/Server/src/main/core/game/node/entity/npc/NPC.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/NPC.java rename to Server/src/main/core/game/node/entity/npc/NPC.java index 204700146..82d9fd4c9 100644 --- a/Server/src/main/java/core/game/node/entity/npc/NPC.java +++ b/Server/src/main/core/game/node/entity/npc/NPC.java @@ -1,15 +1,15 @@ package core.game.node.entity.npc; -import api.events.NPCKillEvent; +import core.game.event.NPCKillEvent; import core.cache.def.impl.NPCDefinition; -import core.game.content.dialogue.DialoguePlugin; +import core.game.dialogue.DialoguePlugin; import core.game.interaction.Interaction; import core.game.interaction.MovementPulse; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatSpell; +import core.game.node.entity.combat.spell.CombatSpell; import core.game.node.entity.combat.CombatStyle; -import core.game.node.entity.combat.equipment.DefaultCombatSpell; +import core.game.node.entity.combat.spell.DefaultCombatSpell; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.npc.agg.AggressiveBehavior; import core.game.node.entity.npc.agg.AggressiveHandler; @@ -17,8 +17,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.slayer.Tasks; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.slayer.Tasks; +import content.global.skill.summoning.familiar.Familiar; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; @@ -31,19 +31,15 @@ import core.game.world.update.flag.npc.NPCFaceLocation; import core.game.world.update.flag.npc.NPCForceChat; import core.game.world.update.flag.npc.NPCSwitchId; import core.tools.RandomFunction; -import rs09.game.content.global.GlobalKillCounter; -import rs09.game.content.global.shops.Shops; -import rs09.game.content.jobs.JobManager; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.system.config.NPCConfigParser; -import rs09.game.system.config.ShopParser; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.api.utils.GlobalKillCounter; +import core.game.shops.Shops; +import core.game.node.entity.combat.CombatSwingHandler; +import core.game.system.config.NPCConfigParser; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; -import java.util.Map; - -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_ENEMIES_KILLED; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_BASE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_ENEMIES_KILLED; /** * Represents a non-player character. diff --git a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveBehavior.java b/Server/src/main/core/game/node/entity/npc/agg/AggressiveBehavior.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/npc/agg/AggressiveBehavior.java rename to Server/src/main/core/game/node/entity/npc/agg/AggressiveBehavior.java index 8871cd62f..0e525cf95 100644 --- a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveBehavior.java +++ b/Server/src/main/core/game/node/entity/npc/agg/AggressiveBehavior.java @@ -5,7 +5,6 @@ import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.world.map.zone.impl.WildernessZone; -import rs09.game.world.GameWorld; import core.game.world.map.RegionManager; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java b/Server/src/main/core/game/node/entity/npc/agg/AggressiveHandler.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java rename to Server/src/main/core/game/node/entity/npc/agg/AggressiveHandler.java index 82d4f0a37..c2a49842d 100644 --- a/Server/src/main/java/core/game/node/entity/npc/agg/AggressiveHandler.java +++ b/Server/src/main/core/game/node/entity/npc/agg/AggressiveHandler.java @@ -1,12 +1,12 @@ package core.game.node.entity.npc.agg; import core.game.node.entity.npc.NPC; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.Entity; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.tools.RandomFunction; /** diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/DropFrequency.java b/Server/src/main/core/game/node/entity/npc/drop/DropFrequency.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/npc/drop/DropFrequency.java rename to Server/src/main/core/game/node/entity/npc/drop/DropFrequency.java diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/NPCDropTables.java b/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/npc/drop/NPCDropTables.java rename to Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java index 50122ae6e..478766fd3 100644 --- a/Server/src/main/java/core/game/node/entity/npc/drop/NPCDropTables.java +++ b/Server/src/main/core/game/node/entity/npc/drop/NPCDropTables.java @@ -1,8 +1,10 @@ package core.game.node.entity.npc.drop; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; + +import content.data.tables.*; import core.cache.def.impl.NPCDefinition; -import core.game.content.global.Bones; +import content.global.skill.prayer.Bones; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; @@ -14,12 +16,12 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.tools.RandomFunction; import core.tools.StringUtils; -import rs09.game.ai.AIPlayer; -import rs09.game.ai.AIRepository; -import rs09.game.ai.general.GeneralBotCreator; -import rs09.game.content.global.NPCDropTable; -import rs09.game.ge.GrandExchange; -import rs09.game.world.repository.Repository; +import core.game.bots.AIPlayer; +import core.game.bots.AIRepository; +import core.game.bots.GeneralBotCreator; +import core.api.utils.NPCDropTable; +import core.game.ge.GrandExchange; +import core.game.world.repository.Repository; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/player/Player.java b/Server/src/main/core/game/node/entity/player/Player.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/player/Player.java rename to Server/src/main/core/game/node/entity/player/Player.java index a73af8457..0f587ba24 100644 --- a/Server/src/main/java/core/game/node/entity/player/Player.java +++ b/Server/src/main/core/game/node/entity/player/Player.java @@ -1,24 +1,23 @@ package core.game.node.entity.player; +import content.global.handlers.item.equipment.special.SalamanderSwingHandler; +import content.global.skill.runecrafting.PouchManager; import core.game.component.Component; import core.game.container.Container; import core.game.container.ContainerType; import core.game.container.impl.BankContainer; import core.game.container.impl.EquipmentContainer; import core.game.container.impl.InventoryListener; -import core.game.content.dialogue.DialogueInterpreter; +import core.game.dialogue.DialogueInterpreter; import core.game.interaction.Interaction; import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.combat.DeathTask; import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.combat.handlers.ChinchompaSwingHandler; +import content.global.handlers.item.equipment.special.ChinchompaSwingHandler; import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.info.PlayerDetails; -import core.game.node.entity.player.info.RenderInfo; -import core.game.node.entity.player.info.Rights; -import core.game.node.entity.player.info.UIDInfo; +import core.game.node.entity.player.info.*; import core.game.node.entity.player.info.login.LoginConfiguration; import core.game.node.entity.player.link.*; import core.game.node.entity.player.link.appearance.Appearance; @@ -32,8 +31,8 @@ import core.game.node.entity.player.link.quest.QuestRepository; import core.game.node.entity.player.link.request.RequestManager; import core.game.node.entity.player.link.skillertasks.SkillerTasks; import core.game.node.entity.skill.Skills; -import core.game.node.entity.skill.construction.HouseManager; -import core.game.node.entity.skill.summoning.familiar.FamiliarManager; +import content.global.skill.construction.HouseManager; +import content.global.skill.summoning.familiar.FamiliarManager; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.system.communication.CommunicationInfo; @@ -58,42 +57,37 @@ import core.net.packet.out.SkillLevel; import core.net.packet.out.UpdateSceneGraph; import core.tools.RandomFunction; import core.tools.StringUtils; +import core.tools.TickUtilsKt; import kotlin.Unit; import kotlin.jvm.functions.Function1; import org.rs09.consts.Items; import proto.management.ClanLeaveNotification; import proto.management.PlayerStatusUpdate; -import rs09.GlobalStats; -import rs09.ServerConstants; -import rs09.game.VarpManager; -import rs09.game.node.entity.combat.CombatSwingHandler; -import rs09.game.node.entity.combat.equipment.EquipmentDegrader; -import rs09.game.node.entity.combat.handlers.SalamanderSwingHandler; -import rs09.game.node.entity.player.graves.Grave; -import rs09.game.node.entity.player.graves.GraveController; -import rs09.game.node.entity.player.info.LogType; -import rs09.game.node.entity.player.info.PlayerMonitor; -import rs09.game.node.entity.player.info.login.PlayerSaver; -import rs09.game.node.entity.skill.runecrafting.PouchManager; -import rs09.game.node.entity.state.newsys.State; -import rs09.game.node.entity.state.newsys.StateRepository; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; -import rs09.game.world.update.MapChunkRenderer; -import rs09.game.world.update.NPCRenderer; -import rs09.game.world.update.PlayerRenderer; -import rs09.game.world.update.UpdateSequence; -import rs09.tools.TickUtilsKt; -import rs09.worker.ManagementEvents; +import core.GlobalStats; +import core.ServerConstants; +import core.game.node.entity.combat.CombatSwingHandler; +import content.global.handlers.item.equipment.EquipmentDegrader; +import core.game.node.entity.combat.graves.Grave; +import core.game.node.entity.combat.graves.GraveController; +import core.game.node.entity.player.info.login.PlayerSaver; +import core.game.node.entity.state.State; +import core.game.node.entity.state.StateRepository; +import core.tools.SystemLogger; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; +import core.game.world.update.MapChunkRenderer; +import core.game.world.update.NPCRenderer; +import core.game.world.update.PlayerRenderer; +import core.game.world.update.UpdateSequence; +import core.worker.ManagementEvents; import java.util.*; import java.util.concurrent.TimeUnit; -import static api.ContentAPIKt.*; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_DEATHS; -import static rs09.tools.stringtools.GlobalsKt.colorize; +import static core.api.ContentAPIKt.*; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_BASE; +import static core.game.system.command.sets.StatAttributeKeysKt.STATS_DEATHS; +import static core.tools.GlobalsKt.colorize; /** * Represents a player entity. diff --git a/Server/src/main/kotlin/rs09/game/Varbit.kt b/Server/src/main/core/game/node/entity/player/Varbit.kt similarity index 57% rename from Server/src/main/kotlin/rs09/game/Varbit.kt rename to Server/src/main/core/game/node/entity/player/Varbit.kt index 438187423..fff714c06 100644 --- a/Server/src/main/kotlin/rs09/game/Varbit.kt +++ b/Server/src/main/core/game/node/entity/player/Varbit.kt @@ -1,4 +1,4 @@ -package rs09.game +package core.game.node.entity.player class Varbit(var value: Int, val offset: Int){ diff --git a/Server/src/main/kotlin/rs09/game/Varp.kt b/Server/src/main/core/game/node/entity/player/Varp.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/Varp.kt rename to Server/src/main/core/game/node/entity/player/Varp.kt index 0346cfb4e..a6c33687d 100644 --- a/Server/src/main/kotlin/rs09/game/Varp.kt +++ b/Server/src/main/core/game/node/entity/player/Varp.kt @@ -1,6 +1,4 @@ -package rs09.game - -import core.game.node.entity.player.Player +package core.game.node.entity.player /** * A class that represents Varps and aids in modifying/calculating them @@ -10,7 +8,7 @@ class Varp(val index: Int) { val varbits = HashMap() var save = false - fun setVarbit(offset: Int, value: Int): Varp{ + fun setVarbit(offset: Int, value: Int): Varp { varbits[offset] = value return this } @@ -35,7 +33,7 @@ class Varp(val index: Int) { player.packetDispatch.sendVarp(this) } - fun clear(): Varp{ + fun clear(): Varp { varbits.clear() return this } diff --git a/Server/src/main/kotlin/rs09/game/VarpManager.kt b/Server/src/main/core/game/node/entity/player/VarpManager.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/VarpManager.kt rename to Server/src/main/core/game/node/entity/player/VarpManager.kt index 0cf5ba7d1..34cb5d23e 100644 --- a/Server/src/main/kotlin/rs09/game/VarpManager.kt +++ b/Server/src/main/core/game/node/entity/player/VarpManager.kt @@ -1,11 +1,10 @@ -package rs09.game +package core.game.node.entity.player -import api.events.VarbitUpdateEvent +import content.global.skill.farming.FarmingPatch +import core.game.event.VarbitUpdateEvent import core.cache.def.impl.VarbitDefinition -import core.game.node.entity.player.Player import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.game.node.entity.skill.farming.FarmingPatch /** * Manages the collection of a player's varps. @@ -15,7 +14,7 @@ import rs09.game.node.entity.skill.farming.FarmingPatch class VarpManager(val player: Player) { val varps = Array(3500) { Varp(it) } - fun get(index: Int): Varp{ + fun get(index: Int): Varp { return varps[index] } diff --git a/Server/src/main/java/core/game/node/entity/player/info/ClientInfo.java b/Server/src/main/core/game/node/entity/player/info/ClientInfo.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/info/ClientInfo.java rename to Server/src/main/core/game/node/entity/player/info/ClientInfo.java diff --git a/Server/src/main/java/core/game/node/entity/player/info/PlayerDetails.java b/Server/src/main/core/game/node/entity/player/info/PlayerDetails.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/info/PlayerDetails.java rename to Server/src/main/core/game/node/entity/player/info/PlayerDetails.java index 113cc1151..7a8775972 100644 --- a/Server/src/main/java/core/game/node/entity/player/info/PlayerDetails.java +++ b/Server/src/main/core/game/node/entity/player/info/PlayerDetails.java @@ -3,8 +3,8 @@ package core.game.node.entity.player.info; import core.game.system.communication.CommunicationInfo; import core.net.IoSession; import org.jetbrains.annotations.NotNull; -import rs09.auth.UserAccountInfo; -import rs09.game.world.GameWorld; +import core.auth.UserAccountInfo; +import core.game.world.GameWorld; import java.util.concurrent.TimeUnit; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/PlayerMonitor.kt b/Server/src/main/core/game/node/entity/player/info/PlayerMonitor.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/PlayerMonitor.kt rename to Server/src/main/core/game/node/entity/player/info/PlayerMonitor.kt index d5a6c3880..2b5f6ed7b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/PlayerMonitor.kt +++ b/Server/src/main/core/game/node/entity/player/info/PlayerMonitor.kt @@ -1,14 +1,14 @@ -package rs09.game.node.entity.player.info +package core.game.node.entity.player.info -import api.getItemName +import core.api.getItemName import core.game.container.Container import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills -import discord.Discord +import core.integrations.discord.Discord import kotlinx.coroutines.* import org.sqlite.SQLiteDataSource -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import java.io.File import java.sql.Connection import java.util.concurrent.LinkedBlockingQueue @@ -20,11 +20,11 @@ object PlayerMonitor { @JvmStatic fun logWealthChange(player: Player, totalWealth: Long, diff: Long) { val event = LogEvent.WealthLog( - player.name, - player.details.uid, - totalWealth, - diff, - System.currentTimeMillis() + player.name, + player.details.uid, + totalWealth, + diff, + System.currentTimeMillis() ) dispatch(event) if (abs(diff) >= 500_000L) @@ -33,11 +33,11 @@ object PlayerMonitor { @JvmStatic fun logChat(player: Player, type: String, message: String) { val event = LogEvent.ChatLog( - player.name, - player.details.uid, - type, - message, - System.currentTimeMillis() + player.name, + player.details.uid, + type, + message, + System.currentTimeMillis() ) checkForFlaggedText(player.name, message) dispatch(event) @@ -58,24 +58,24 @@ object PlayerMonitor { } val event = LogEvent.TradeLog( - player1.name, - player1.details.uid, - player2.name, - player2.details.uid, - container1String.toString(), - container2String.toString(), - System.currentTimeMillis() + player1.name, + player1.details.uid, + player2.name, + player2.details.uid, + container1String.toString(), + container2String.toString(), + System.currentTimeMillis() ) dispatch(event) } @JvmStatic fun logPrivateChat(sender: Player, receiver: String, message: String) { val event = LogEvent.ChatLog( - sender.name, - sender.details.uid, - "private", - "=> $receiver: $message", - System.currentTimeMillis() + sender.name, + sender.details.uid, + "private", + "=> $receiver: $message", + System.currentTimeMillis() ) checkForFlaggedText(sender.name, message) dispatch(event) diff --git a/Server/src/main/java/core/game/node/entity/player/info/RenderInfo.java b/Server/src/main/core/game/node/entity/player/info/RenderInfo.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/info/RenderInfo.java rename to Server/src/main/core/game/node/entity/player/info/RenderInfo.java index ff2749ea4..3aa6a7a07 100644 --- a/Server/src/main/java/core/game/node/entity/player/info/RenderInfo.java +++ b/Server/src/main/core/game/node/entity/player/info/RenderInfo.java @@ -1,6 +1,6 @@ package core.game.node.entity.player.info; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/player/info/Rights.java b/Server/src/main/core/game/node/entity/player/info/Rights.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/player/info/Rights.java rename to Server/src/main/core/game/node/entity/player/info/Rights.java index 498cb32a5..cd9b28e59 100644 --- a/Server/src/main/java/core/game/node/entity/player/info/Rights.java +++ b/Server/src/main/core/game/node/entity/player/info/Rights.java @@ -1,7 +1,6 @@ package core.game.node.entity.player.info; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; /** * Represent the rights of a player. diff --git a/Server/src/main/java/core/game/node/entity/player/info/UIDInfo.java b/Server/src/main/core/game/node/entity/player/info/UIDInfo.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/info/UIDInfo.java rename to Server/src/main/core/game/node/entity/player/info/UIDInfo.java diff --git a/Server/src/main/java/core/game/node/entity/player/info/login/LoginConfiguration.java b/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/player/info/login/LoginConfiguration.java rename to Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java index 888a6b899..0340ce749 100644 --- a/Server/src/main/java/core/game/node/entity/player/info/login/LoginConfiguration.java +++ b/Server/src/main/core/game/node/entity/player/info/login/LoginConfiguration.java @@ -7,19 +7,17 @@ import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; import core.game.world.map.RegionManager; import core.game.world.update.flag.player.AppearanceFlag; -import core.net.amsc.MSPacketRepository; -import core.net.amsc.WorldCommunicator; import core.net.packet.PacketRepository; import core.net.packet.context.InterfaceContext; import core.net.packet.out.Interface; import core.plugin.Plugin; -import rs09.ServerConstants; -import rs09.game.interaction.InteractionListeners; -import rs09.game.interaction.inter.RulesAndInfo; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; -import rs09.game.world.update.UpdateSequence; +import core.ServerConstants; +import core.game.interaction.InteractionListeners; +import content.global.handlers.iface.RulesAndInfo; +import core.tools.SystemLogger; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; +import core.game.world.update.UpdateSequence; import java.util.ArrayList; import java.util.Date; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/LoginParser.kt b/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/login/LoginParser.kt rename to Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt index 1efafd19f..d2a41c1ec 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/LoginParser.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/LoginParser.kt @@ -1,17 +1,14 @@ -package rs09.game.node.entity.player.info.login +package core.game.node.entity.player.info.login -import api.LoginListener +import core.api.LoginListener import core.game.node.entity.player.Player import core.game.node.entity.player.info.PlayerDetails -import core.game.node.entity.player.info.login.LoginConfiguration -import core.game.node.entity.player.info.login.PlayerParser -import core.game.node.entity.player.info.login.Response import core.game.system.SystemManager import core.game.system.task.Pulse -import rs09.auth.AuthResponse -import rs09.game.world.GameWorld -import rs09.game.world.GameWorld.loginListeners -import rs09.game.world.repository.Repository +import core.auth.AuthResponse +import core.game.world.GameWorld +import core.game.world.GameWorld.loginListeners +import core.game.world.repository.Repository import java.util.function.Consumer /** diff --git a/Server/src/main/java/core/game/node/entity/player/info/login/LoginType.java b/Server/src/main/core/game/node/entity/player/info/login/LoginType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/info/login/LoginType.java rename to Server/src/main/core/game/node/entity/player/info/login/LoginType.java diff --git a/Server/src/main/java/core/game/node/entity/player/info/login/PlayerParser.java b/Server/src/main/core/game/node/entity/player/info/login/PlayerParser.java similarity index 88% rename from Server/src/main/java/core/game/node/entity/player/info/login/PlayerParser.java rename to Server/src/main/core/game/node/entity/player/info/login/PlayerParser.java index 1d94a4ce2..bb19f1b31 100644 --- a/Server/src/main/java/core/game/node/entity/player/info/login/PlayerParser.java +++ b/Server/src/main/core/game/node/entity/player/info/login/PlayerParser.java @@ -1,11 +1,8 @@ package core.game.node.entity.player.info.login; import core.game.node.entity.player.Player; -import org.json.simple.JSONObject; -import rs09.ServerConstants; -import rs09.game.node.entity.player.info.login.PlayerSaveParser; -import rs09.game.node.entity.player.info.login.PlayerSaver; -import rs09.game.system.SystemLogger; +import core.ServerConstants; +import core.tools.SystemLogger; import java.io.*; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt rename to Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt index a07e70e1b..a86fe536e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaveParser.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaveParser.kt @@ -1,7 +1,10 @@ -package rs09.game.node.entity.player.info.login +package core.game.node.entity.player.info.login -import api.PersistPlayer -import core.game.node.entity.combat.CombatSpell +import content.global.skill.farming.CompostBins +import content.global.skill.farming.FarmingPatch +import core.JSONUtils +import core.api.PersistPlayer +import core.game.node.entity.combat.spell.CombatSpell import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.game.node.entity.player.link.SpellBookManager @@ -10,13 +13,11 @@ import core.game.node.entity.player.link.music.MusicEntry import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.node.entity.player.graves.GraveController -import rs09.game.node.entity.player.graves.GraveType -import rs09.game.node.entity.skill.farming.CompostBins -import rs09.game.node.entity.skill.farming.FarmingPatch -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.ServerConstants +import core.game.node.entity.combat.graves.GraveController +import core.game.node.entity.combat.graves.GraveType +import core.tools.SystemLogger +import core.game.world.GameWorld import java.io.File import java.io.FileReader import java.util.* @@ -330,7 +331,7 @@ class PlayerSaveParser(val player: Player) { bBars?.let{player.blastBars.parse(it)} bOre?.let{player.blastOre.parse(bOre)} bCoal?.let{player.blastCoal.parse(bCoal)} - player.location = rs09.JSONUtils.parseLocation(location) + player.location = JSONUtils.parseLocation(location) } fun parseSkills() { diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaver.kt b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaver.kt rename to Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt index 417b246af..59d00d48f 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/login/PlayerSaver.kt +++ b/Server/src/main/core/game/node/entity/player/info/login/PlayerSaver.kt @@ -1,17 +1,17 @@ -package rs09.game.node.entity.player.info.login +package core.game.node.entity.player.info.login -import api.PersistPlayer +import core.api.PersistPlayer import core.game.container.Container import core.game.node.entity.player.Player import core.game.node.entity.player.link.IronmanMode import core.game.node.entity.skill.Skills -import core.game.node.entity.skill.summoning.familiar.BurdenBeast -import core.game.node.entity.skill.summoning.pet.Pet +import content.global.skill.summoning.familiar.BurdenBeast +import content.global.skill.summoning.pet.Pet import kotlinx.coroutines.runBlocking import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import java.io.File import java.io.FileWriter import java.io.IOException diff --git a/Server/src/main/java/core/game/node/entity/player/info/login/Response.java b/Server/src/main/core/game/node/entity/player/info/login/Response.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/info/login/Response.java rename to Server/src/main/core/game/node/entity/player/info/login/Response.java diff --git a/Server/src/main/java/core/game/node/entity/player/info/portal/Icon.java b/Server/src/main/core/game/node/entity/player/info/portal/Icon.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/info/portal/Icon.java rename to Server/src/main/core/game/node/entity/player/info/portal/Icon.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/ActivityData.java b/Server/src/main/core/game/node/entity/player/link/ActivityData.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/ActivityData.java rename to Server/src/main/core/game/node/entity/player/link/ActivityData.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/BankPinManager.java b/Server/src/main/core/game/node/entity/player/link/BankPinManager.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/BankPinManager.java rename to Server/src/main/core/game/node/entity/player/link/BankPinManager.java index eff2af40a..4d36a8b0e 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/BankPinManager.java +++ b/Server/src/main/core/game/node/entity/player/link/BankPinManager.java @@ -4,9 +4,9 @@ import core.game.component.CloseEvent; import core.game.component.Component; import core.game.node.entity.player.Player; -import rs09.game.ge.GrandExchangeRecords; -import rs09.game.interaction.inter.ge.StockMarket; -import rs09.game.world.GameWorld; +import core.game.ge.GrandExchangeRecords; +import content.global.handlers.iface.ge.StockMarket; +import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.ChildPositionContext; import core.net.packet.context.StringContext; diff --git a/Server/src/main/java/core/game/node/entity/player/link/ConfigurationManager.java b/Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/ConfigurationManager.java rename to Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java index 43fa76d7d..992a61ca5 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/ConfigurationManager.java +++ b/Server/src/main/core/game/node/entity/player/link/ConfigurationManager.java @@ -3,13 +3,11 @@ package core.game.node.entity.player.link; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.ConfigContext; import core.net.packet.out.Config; -import java.nio.ByteBuffer; - /** * Manages a player's configurations. * @author Emperor diff --git a/Server/src/main/java/core/game/node/entity/player/link/GlobalData.java b/Server/src/main/core/game/node/entity/player/link/GlobalData.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/GlobalData.java rename to Server/src/main/core/game/node/entity/player/link/GlobalData.java index 6a682f9bb..4286f1939 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/GlobalData.java +++ b/Server/src/main/core/game/node/entity/player/link/GlobalData.java @@ -1,12 +1,10 @@ package core.game.node.entity.player.link; -import core.game.content.global.GodBook; +import content.data.GodBook; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import java.nio.ByteBuffer; - /** * Represents the quest data to save. * @author 'Vexia diff --git a/Server/src/main/java/core/game/node/entity/player/link/HintIconManager.java b/Server/src/main/core/game/node/entity/player/link/HintIconManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/HintIconManager.java rename to Server/src/main/core/game/node/entity/player/link/HintIconManager.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/InterfaceManager.java b/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/InterfaceManager.java rename to Server/src/main/core/game/node/entity/player/link/InterfaceManager.java index 660cc1eb9..47574f569 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/InterfaceManager.java +++ b/Server/src/main/core/game/node/entity/player/link/InterfaceManager.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link; -import api.events.InterfaceCloseEvent; -import api.events.InterfaceOpenEvent; +import core.game.event.InterfaceCloseEvent; +import core.game.event.InterfaceOpenEvent; import core.game.component.Component; import core.game.component.InterfaceType; import core.game.node.entity.combat.equipment.WeaponInterface; @@ -13,8 +13,8 @@ import core.net.packet.out.CloseInterface; import core.net.packet.out.Interface; import core.net.packet.out.WindowsPane; import org.rs09.consts.Components; -import rs09.game.content.tutorial.TutorialStage; -import rs09.game.system.SystemLogger; +import content.region.misc.tutisland.handlers.TutorialStage; +import core.tools.SystemLogger; diff --git a/Server/src/main/java/core/game/node/entity/player/link/IronmanManager.java b/Server/src/main/core/game/node/entity/player/link/IronmanManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/IronmanManager.java rename to Server/src/main/core/game/node/entity/player/link/IronmanManager.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/IronmanMode.java b/Server/src/main/core/game/node/entity/player/link/IronmanMode.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/IronmanMode.java rename to Server/src/main/core/game/node/entity/player/link/IronmanMode.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java b/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java rename to Server/src/main/core/game/node/entity/player/link/PacketDispatch.java index 678c8099a..33f6f29e3 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java +++ b/Server/src/main/core/game/node/entity/player/link/PacketDispatch.java @@ -1,11 +1,11 @@ package core.game.node.entity.player.link; -import rs09.game.Varp; +import core.game.node.entity.player.Varp; import core.game.node.entity.player.Player; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.chunk.AnimateObjectUpdateFlag; diff --git a/Server/src/main/java/core/game/node/entity/player/link/QuestData.java b/Server/src/main/core/game/node/entity/player/link/QuestData.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/QuestData.java rename to Server/src/main/core/game/node/entity/player/link/QuestData.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/RunScript.java b/Server/src/main/core/game/node/entity/player/link/RunScript.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/RunScript.java rename to Server/src/main/core/game/node/entity/player/link/RunScript.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/SavedData.java b/Server/src/main/core/game/node/entity/player/link/SavedData.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/SavedData.java rename to Server/src/main/core/game/node/entity/player/link/SavedData.java index 82feb9db9..be1029048 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/SavedData.java +++ b/Server/src/main/core/game/node/entity/player/link/SavedData.java @@ -3,7 +3,6 @@ package core.game.node.entity.player.link; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.spawn.SpawnData; -import rs09.game.system.SystemLogger; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/node/entity/player/link/Settings.java b/Server/src/main/core/game/node/entity/player/link/Settings.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/Settings.java rename to Server/src/main/core/game/node/entity/player/link/Settings.java index 464854787..258c018ea 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/Settings.java +++ b/Server/src/main/core/game/node/entity/player/link/Settings.java @@ -1,12 +1,11 @@ package core.game.node.entity.player.link; -import rs09.game.system.config.ItemConfigParser; +import core.game.system.config.ItemConfigParser; import org.json.simple.JSONObject; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.system.communication.CommunicationInfo; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.packet.IoBuffer; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/node/entity/player/link/SkullManager.java b/Server/src/main/core/game/node/entity/player/link/SkullManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/SkullManager.java rename to Server/src/main/core/game/node/entity/player/link/SkullManager.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/SpellBookManager.java b/Server/src/main/core/game/node/entity/player/link/SpellBookManager.java similarity index 96% rename from Server/src/main/java/core/game/node/entity/player/link/SpellBookManager.java rename to Server/src/main/core/game/node/entity/player/link/SpellBookManager.java index 010a90a29..f5dbc2de4 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/SpellBookManager.java +++ b/Server/src/main/core/game/node/entity/player/link/SpellBookManager.java @@ -1,11 +1,10 @@ package core.game.node.entity.player.link; import core.game.component.Component; -import core.game.node.entity.skill.magic.MagicSpell; +import core.game.node.entity.combat.spell.MagicSpell; import core.game.node.entity.player.Player; -import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/java/core/game/node/entity/player/link/TeleportManager.java b/Server/src/main/core/game/node/entity/player/link/TeleportManager.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/TeleportManager.java rename to Server/src/main/core/game/node/entity/player/link/TeleportManager.java index 34b2a68e2..f6cbf4f4f 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/TeleportManager.java +++ b/Server/src/main/core/game/node/entity/player/link/TeleportManager.java @@ -1,12 +1,12 @@ package core.game.node.entity.player.link; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.Entity; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/player/link/WarningMessages.java b/Server/src/main/core/game/node/entity/player/link/WarningMessages.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/WarningMessages.java rename to Server/src/main/core/game/node/entity/player/link/WarningMessages.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/appearance/Appearance.java b/Server/src/main/core/game/node/entity/player/link/appearance/Appearance.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/appearance/Appearance.java rename to Server/src/main/core/game/node/entity/player/link/appearance/Appearance.java index 9b37e4356..b639477b5 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/appearance/Appearance.java +++ b/Server/src/main/core/game/node/entity/player/link/appearance/Appearance.java @@ -11,7 +11,7 @@ import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.player.AppearanceFlag; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import rs09.game.system.config.ItemConfigParser; +import core.game.system.config.ItemConfigParser; /** * Represents an appearance managing class of a player. diff --git a/Server/src/main/java/core/game/node/entity/player/link/appearance/BodyPart.java b/Server/src/main/core/game/node/entity/player/link/appearance/BodyPart.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/appearance/BodyPart.java rename to Server/src/main/core/game/node/entity/player/link/appearance/BodyPart.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/appearance/Gender.java b/Server/src/main/core/game/node/entity/player/link/appearance/Gender.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/appearance/Gender.java rename to Server/src/main/core/game/node/entity/player/link/appearance/Gender.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/audio/Audio.java b/Server/src/main/core/game/node/entity/player/link/audio/Audio.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/audio/Audio.java rename to Server/src/main/core/game/node/entity/player/link/audio/Audio.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/audio/AudioManager.java b/Server/src/main/core/game/node/entity/player/link/audio/AudioManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/audio/AudioManager.java rename to Server/src/main/core/game/node/entity/player/link/audio/AudioManager.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiary.java b/Server/src/main/core/game/node/entity/player/link/diary/AchievementDiary.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiary.java rename to Server/src/main/core/game/node/entity/player/link/diary/AchievementDiary.java index 31966c45d..1643dac95 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiary.java +++ b/Server/src/main/core/game/node/entity/player/link/diary/AchievementDiary.java @@ -3,12 +3,10 @@ package core.game.node.entity.player.link.diary; import core.cache.def.impl.NPCDefinition; import core.game.component.Component; import core.game.node.entity.player.Player; -import core.game.node.item.GroundItem; -import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import rs09.game.node.entity.player.link.diary.DiaryLevel; +import core.game.diary.DiaryLevel; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiaryManager.java b/Server/src/main/core/game/node/entity/player/link/diary/AchievementDiaryManager.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiaryManager.java rename to Server/src/main/core/game/node/entity/player/link/diary/AchievementDiaryManager.java index 2f51e4caa..fd693fb13 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/diary/AchievementDiaryManager.java +++ b/Server/src/main/core/game/node/entity/player/link/diary/AchievementDiaryManager.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link.diary; import core.game.component.Component; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.player.Player; -import core.game.node.entity.skill.smithing.smelting.Bar; +import content.global.skill.smithing.smelting.Bar; import core.game.node.item.Item; import org.json.simple.JSONArray; import org.json.simple.JSONObject; diff --git a/Server/src/main/java/core/game/node/entity/player/link/diary/DiaryType.java b/Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/diary/DiaryType.java rename to Server/src/main/core/game/node/entity/player/link/diary/DiaryType.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/emote/EmoteManager.java b/Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/emote/EmoteManager.java rename to Server/src/main/core/game/node/entity/player/link/emote/EmoteManager.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/emote/Emotes.java b/Server/src/main/core/game/node/entity/player/link/emote/Emotes.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/emote/Emotes.java rename to Server/src/main/core/game/node/entity/player/link/emote/Emotes.java index a07dcf96b..e859a598d 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/emote/Emotes.java +++ b/Server/src/main/core/game/node/entity/player/link/emote/Emotes.java @@ -10,7 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/player/link/music/MusicEntry.java b/Server/src/main/core/game/node/entity/player/link/music/MusicEntry.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/music/MusicEntry.java rename to Server/src/main/core/game/node/entity/player/link/music/MusicEntry.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/music/MusicPlayer.java b/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/music/MusicPlayer.java rename to Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java index a1839bcb8..1ef960fab 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/music/MusicPlayer.java +++ b/Server/src/main/core/game/node/entity/player/link/music/MusicPlayer.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link.music; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.MusicContext; import core.net.packet.context.StringContext; diff --git a/Server/src/main/java/core/game/node/entity/player/link/music/MusicZone.java b/Server/src/main/core/game/node/entity/player/link/music/MusicZone.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/music/MusicZone.java rename to Server/src/main/core/game/node/entity/player/link/music/MusicZone.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java b/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java rename to Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java index 17842b88b..a339c9382 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/prayer/Prayer.java +++ b/Server/src/main/core/game/node/entity/player/link/prayer/Prayer.java @@ -1,5 +1,6 @@ package core.game.node.entity.player.link.prayer; +import content.global.skill.skillcapeperks.SkillcapePerks; import core.game.node.entity.skill.SkillBonus; import core.game.node.entity.skill.Skills; import core.game.node.entity.Entity; @@ -13,8 +14,7 @@ import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Graphics; import core.tools.RandomFunction; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/entity/player/link/prayer/PrayerCategory.java b/Server/src/main/core/game/node/entity/player/link/prayer/PrayerCategory.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/prayer/PrayerCategory.java rename to Server/src/main/core/game/node/entity/player/link/prayer/PrayerCategory.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/prayer/PrayerType.java b/Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/prayer/PrayerType.java rename to Server/src/main/core/game/node/entity/player/link/prayer/PrayerType.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/quest/Quest.java b/Server/src/main/core/game/node/entity/player/link/quest/Quest.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/quest/Quest.java rename to Server/src/main/core/game/node/entity/player/link/quest/Quest.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/quest/QuestRepository.java b/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/quest/QuestRepository.java rename to Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java index 903ea7060..421d28c1f 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/quest/QuestRepository.java +++ b/Server/src/main/core/game/node/entity/player/link/quest/QuestRepository.java @@ -2,15 +2,13 @@ package core.game.node.entity.player.link.quest; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import java.nio.ByteBuffer; import java.util.HashMap; import java.util.TreeMap; import java.util.Map; -import java.util.Map.Entry; /** * Manages the systems/players quest repository. diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/RequestManager.kt b/Server/src/main/core/game/node/entity/player/link/request/RequestManager.kt similarity index 96% rename from Server/src/main/java/core/game/node/entity/player/link/request/RequestManager.kt rename to Server/src/main/core/game/node/entity/player/link/request/RequestManager.kt index 8828f228b..73e958863 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/request/RequestManager.kt +++ b/Server/src/main/core/game/node/entity/player/link/request/RequestManager.kt @@ -1,9 +1,9 @@ package core.game.node.entity.player.link.request import core.game.node.entity.player.Player -import rs09.game.ai.AIRepository -import rs09.game.ai.general.scriptrepository.DoublingMoney -import rs09.game.world.GameWorld.ticks +import core.game.bots.AIRepository +import content.global.bots.DoublingMoney +import core.game.world.GameWorld.ticks /** * Represents a managing class for requests of a player. diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/RequestModule.kt b/Server/src/main/core/game/node/entity/player/link/request/RequestModule.kt similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/request/RequestModule.kt rename to Server/src/main/core/game/node/entity/player/link/request/RequestModule.kt diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/RequestType.kt b/Server/src/main/core/game/node/entity/player/link/request/RequestType.kt similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/request/RequestType.kt rename to Server/src/main/core/game/node/entity/player/link/request/RequestType.kt diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/assist/AssistSession.java b/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/request/assist/AssistSession.java rename to Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java index e596895ad..9f90705b1 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/request/assist/AssistSession.java +++ b/Server/src/main/core/game/node/entity/player/link/request/assist/AssistSession.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.request.RequestModule; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java rename to Server/src/main/core/game/node/entity/player/link/request/trade/TradeCloseEvent.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeContainer.java b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeContainer.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeContainer.java rename to Server/src/main/core/game/node/entity/player/link/request/trade/TradeContainer.java index 0cae8a281..c58521aab 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeContainer.java +++ b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeContainer.java @@ -1,17 +1,18 @@ package core.game.node.entity.player.link.request.trade; -import static api.ContentAPIKt.*; +import static core.api.ContentAPIKt.*; +import static core.tools.GlobalsKt.colorize; + import core.cache.def.impl.ItemDefinition; import core.game.container.*; import core.game.node.entity.player.Player; import core.game.node.item.Item; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.packet.PacketRepository; import core.net.packet.context.ContainerContext; import core.net.packet.out.ContainerPacket; -import static rs09.tools.stringtools.GlobalsKt.colorize; /** * Represents the container during a trade session. diff --git a/Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeModule.kt b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeModule.kt rename to Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt index b5c115e91..c0123e4f2 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/request/trade/TradeModule.kt +++ b/Server/src/main/core/game/node/entity/player/link/request/trade/TradeModule.kt @@ -7,9 +7,9 @@ import core.game.node.entity.player.Player import core.game.node.entity.player.link.request.RequestModule import core.game.node.item.GroundItemManager import core.game.node.item.Item -import rs09.game.ai.AIRepository -import rs09.game.ai.general.scriptrepository.DoublingMoney -import rs09.game.node.entity.player.info.PlayerMonitor +import core.game.bots.AIRepository +import content.global.bots.DoublingMoney +import core.game.node.entity.player.info.PlayerMonitor import java.text.DecimalFormat import java.util.* diff --git a/Server/src/main/java/core/game/node/entity/player/link/skillertasks/Difficulty.java b/Server/src/main/core/game/node/entity/player/link/skillertasks/Difficulty.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/skillertasks/Difficulty.java rename to Server/src/main/core/game/node/entity/player/link/skillertasks/Difficulty.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/skillertasks/SkillTasks.java b/Server/src/main/core/game/node/entity/player/link/skillertasks/SkillTasks.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/skillertasks/SkillTasks.java rename to Server/src/main/core/game/node/entity/player/link/skillertasks/SkillTasks.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/skillertasks/SkillerTasks.java b/Server/src/main/core/game/node/entity/player/link/skillertasks/SkillerTasks.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/skillertasks/SkillerTasks.java rename to Server/src/main/core/game/node/entity/player/link/skillertasks/SkillerTasks.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/spawn/PKPackage.java b/Server/src/main/core/game/node/entity/player/link/spawn/PKPackage.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/player/link/spawn/PKPackage.java rename to Server/src/main/core/game/node/entity/player/link/spawn/PKPackage.java diff --git a/Server/src/main/java/core/game/node/entity/player/link/spawn/PKTitle.java b/Server/src/main/core/game/node/entity/player/link/spawn/PKTitle.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/player/link/spawn/PKTitle.java rename to Server/src/main/core/game/node/entity/player/link/spawn/PKTitle.java index b62c23ea4..e3c79da34 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/spawn/PKTitle.java +++ b/Server/src/main/core/game/node/entity/player/link/spawn/PKTitle.java @@ -1,7 +1,7 @@ package core.game.node.entity.player.link.spawn; import core.game.node.entity.player.Player; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.tools.StringUtils; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/node/entity/player/link/spawn/SpawnData.java b/Server/src/main/core/game/node/entity/player/link/spawn/SpawnData.java similarity index 99% rename from Server/src/main/java/core/game/node/entity/player/link/spawn/SpawnData.java rename to Server/src/main/core/game/node/entity/player/link/spawn/SpawnData.java index e15ee014e..31e4cbfb8 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/spawn/SpawnData.java +++ b/Server/src/main/core/game/node/entity/player/link/spawn/SpawnData.java @@ -4,15 +4,13 @@ import core.game.component.Component; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.SavedData; import core.game.node.entity.player.link.SpellBookManager; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import core.net.packet.PacketRepository; import core.net.packet.context.ChildPositionContext; import core.net.packet.out.RepositionChild; -import java.nio.ByteBuffer; import java.text.DecimalFormat; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/LevelUp.java b/Server/src/main/core/game/node/entity/skill/LevelUp.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/LevelUp.java rename to Server/src/main/core/game/node/entity/skill/LevelUp.java index c7320101a..9d1b08351 100644 --- a/Server/src/main/java/core/game/node/entity/skill/LevelUp.java +++ b/Server/src/main/core/game/node/entity/skill/LevelUp.java @@ -1,10 +1,10 @@ package core.game.node.entity.skill; import core.game.component.Component; -import core.game.content.global.Skillcape; +import core.game.global.Skillcape; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.net.packet.PacketRepository; import core.net.packet.context.MusicContext; import core.net.packet.out.MusicPacket; diff --git a/Server/src/main/java/core/game/node/entity/skill/SkillBonus.java b/Server/src/main/core/game/node/entity/skill/SkillBonus.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/skill/SkillBonus.java rename to Server/src/main/core/game/node/entity/skill/SkillBonus.java diff --git a/Server/src/main/java/core/game/node/entity/skill/SkillPulse.java b/Server/src/main/core/game/node/entity/skill/SkillPulse.java similarity index 94% rename from Server/src/main/java/core/game/node/entity/skill/SkillPulse.java rename to Server/src/main/core/game/node/entity/skill/SkillPulse.java index 2d3dc2922..4f349b92d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/SkillPulse.java +++ b/Server/src/main/core/game/node/entity/skill/SkillPulse.java @@ -1,7 +1,7 @@ package core.game.node.entity.skill; -import core.game.node.entity.skill.gather.SkillingResource; -import core.game.node.entity.skill.gather.SkillingTool; +import content.global.skill.gather.SkillingResource; +import content.data.skill.SkillingTool; import core.game.node.Node; import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.player.Player; diff --git a/Server/src/main/java/core/game/node/entity/skill/SkillRestoration.java b/Server/src/main/core/game/node/entity/skill/SkillRestoration.java similarity index 95% rename from Server/src/main/java/core/game/node/entity/skill/SkillRestoration.java rename to Server/src/main/core/game/node/entity/skill/SkillRestoration.java index e3f23a294..af10b0eb7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/SkillRestoration.java +++ b/Server/src/main/core/game/node/entity/skill/SkillRestoration.java @@ -6,8 +6,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.prayer.PrayerType; import core.game.node.item.Item; import org.rs09.consts.Items; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Handles the skill restoration data. diff --git a/Server/src/main/java/core/game/node/entity/skill/Skills.java b/Server/src/main/core/game/node/entity/skill/Skills.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/skill/Skills.java rename to Server/src/main/core/game/node/entity/skill/Skills.java index 028e4ba2f..35175282e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/Skills.java +++ b/Server/src/main/core/game/node/entity/skill/Skills.java @@ -1,9 +1,10 @@ package core.game.node.entity.skill; -import api.events.DynamicSkillLevelChangeEvent; -import api.events.XPGainEvent; -import core.game.interaction.item.brawling_gloves.BrawlingGloves; -import core.game.interaction.item.brawling_gloves.BrawlingGlovesManager; +import content.global.skill.skillcapeperks.SkillcapePerks; +import core.game.event.DynamicSkillLevelChangeEvent; +import core.game.event.XPGainEvent; +import content.global.handlers.item.equipment.brawling_gloves.BrawlingGloves; +import content.global.handlers.item.equipment.brawling_gloves.BrawlingGlovesManager; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.npc.NPC; @@ -17,16 +18,14 @@ import core.net.packet.out.SkillLevel; import kotlin.Pair; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import rs09.game.node.entity.player.info.PlayerMonitor; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; -import rs09.plugin.CorePluginTypes.XPGainPlugins; +import core.game.node.entity.player.info.PlayerMonitor; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; +import core.plugin.CorePluginTypes.XPGainPlugins; import org.rs09.consts.Items; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Arrays; import static java.lang.Math.floor; import static java.lang.Math.max; diff --git a/Server/src/main/java/core/game/node/entity/state/EntityState.java b/Server/src/main/core/game/node/entity/state/EntityState.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/EntityState.java rename to Server/src/main/core/game/node/entity/state/EntityState.java diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/PlayerState.kt b/Server/src/main/core/game/node/entity/state/PlayerState.kt similarity index 52% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/PlayerState.kt rename to Server/src/main/core/game/node/entity/state/PlayerState.kt index 1facb3406..bfc15b2c4 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/PlayerState.kt +++ b/Server/src/main/core/game/node/entity/state/PlayerState.kt @@ -1,3 +1,3 @@ -package rs09.game.node.entity.state.newsys +package core.game.node.entity.state annotation class PlayerState(val key: String) diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/State.kt b/Server/src/main/core/game/node/entity/state/State.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/State.kt rename to Server/src/main/core/game/node/entity/state/State.kt index b42bdfbf6..20dcd9385 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/State.kt +++ b/Server/src/main/core/game/node/entity/state/State.kt @@ -1,9 +1,9 @@ -package rs09.game.node.entity.state.newsys +package core.game.node.entity.state import core.game.node.entity.player.Player import core.game.system.task.Pulse import org.json.simple.JSONObject -import rs09.game.world.GameWorld.Pulser +import core.game.world.GameWorld.Pulser /** * A class representing a state that the player or some associated thing can be in. diff --git a/Server/src/main/java/core/game/node/entity/state/StateManager.java b/Server/src/main/core/game/node/entity/state/StateManager.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/StateManager.java rename to Server/src/main/core/game/node/entity/state/StateManager.java diff --git a/Server/src/main/java/core/game/node/entity/state/StatePulse.java b/Server/src/main/core/game/node/entity/state/StatePulse.java similarity index 97% rename from Server/src/main/java/core/game/node/entity/state/StatePulse.java rename to Server/src/main/core/game/node/entity/state/StatePulse.java index 21c3b55d7..c4f006be0 100644 --- a/Server/src/main/java/core/game/node/entity/state/StatePulse.java +++ b/Server/src/main/core/game/node/entity/state/StatePulse.java @@ -2,7 +2,7 @@ package core.game.node.entity.state; import core.game.node.entity.Entity; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.nio.ByteBuffer; diff --git a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/StateRepository.kt b/Server/src/main/core/game/node/entity/state/StateRepository.kt similarity index 68% rename from Server/src/main/kotlin/rs09/game/node/entity/state/newsys/StateRepository.kt rename to Server/src/main/core/game/node/entity/state/StateRepository.kt index e48568e83..9f6419153 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/state/newsys/StateRepository.kt +++ b/Server/src/main/core/game/node/entity/state/StateRepository.kt @@ -1,6 +1,6 @@ -package rs09.game.node.entity.state.newsys +package core.game.node.entity.state -import api.StartupListener +import core.api.StartupListener import core.game.node.entity.player.Player import io.github.classgraph.ClassGraph @@ -10,13 +10,13 @@ class StateRepository : StartupListener{ } companion object { - val states = HashMap() + val states = HashMap() fun loadStateClasses() { - val result = ClassGraph().enableClassInfo().enableAnnotationInfo().acceptPackages("rs09.game.node.entity.state").scan() - result.getClassesWithAnnotation("rs09.game.node.entity.state.newsys.PlayerState").forEach{ - val key = it.getAnnotationInfo("rs09.game.node.entity.state.newsys.PlayerState").parameterValues[0].value as String + val result = ClassGraph().enableClassInfo().enableAnnotationInfo().acceptPackages("content").scan() + result.getClassesWithAnnotation("core.game.node.entity.state.PlayerState").forEach{ + val key = it.getAnnotationInfo("core.game.node.entity.state.PlayerState").parameterValues[0].value as String val clazz = it.loadClass().newInstance() if(clazz is State) { states.put(key, clazz) diff --git a/Server/src/main/java/core/game/node/entity/state/impl/FireResistantPulse.java b/Server/src/main/core/game/node/entity/state/impl/FireResistantPulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/state/impl/FireResistantPulse.java rename to Server/src/main/core/game/node/entity/state/impl/FireResistantPulse.java index e99a0de1a..b00e4cbbd 100644 --- a/Server/src/main/java/core/game/node/entity/state/impl/FireResistantPulse.java +++ b/Server/src/main/core/game/node/entity/state/impl/FireResistantPulse.java @@ -3,7 +3,7 @@ package core.game.node.entity.state.impl; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.state.StatePulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/node/entity/state/impl/FrozenStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/FrozenStatePulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/state/impl/FrozenStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/FrozenStatePulse.java index d2467002e..ac22619e9 100644 --- a/Server/src/main/java/core/game/node/entity/state/impl/FrozenStatePulse.java +++ b/Server/src/main/core/game/node/entity/state/impl/FrozenStatePulse.java @@ -3,7 +3,7 @@ package core.game.node.entity.state.impl; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.state.StatePulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/node/entity/state/impl/HealOverTimePulse.java b/Server/src/main/core/game/node/entity/state/impl/HealOverTimePulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/impl/HealOverTimePulse.java rename to Server/src/main/core/game/node/entity/state/impl/HealOverTimePulse.java diff --git a/Server/src/main/java/core/game/node/entity/state/impl/MiasmicStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/MiasmicStatePulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/state/impl/MiasmicStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/MiasmicStatePulse.java index 0a4c629f4..628934bd8 100644 --- a/Server/src/main/java/core/game/node/entity/state/impl/MiasmicStatePulse.java +++ b/Server/src/main/core/game/node/entity/state/impl/MiasmicStatePulse.java @@ -3,7 +3,7 @@ package core.game.node.entity.state.impl; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.state.StatePulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/node/entity/state/impl/PoisonStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/PoisonStatePulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/impl/PoisonStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/PoisonStatePulse.java diff --git a/Server/src/main/java/core/game/node/entity/state/impl/SkullStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/SkullStatePulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/impl/SkullStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/SkullStatePulse.java diff --git a/Server/src/main/java/core/game/node/entity/state/impl/StunStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/StunStatePulse.java similarity index 100% rename from Server/src/main/java/core/game/node/entity/state/impl/StunStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/StunStatePulse.java diff --git a/Server/src/main/java/core/game/node/entity/state/impl/TeleblockStatePulse.java b/Server/src/main/core/game/node/entity/state/impl/TeleblockStatePulse.java similarity index 98% rename from Server/src/main/java/core/game/node/entity/state/impl/TeleblockStatePulse.java rename to Server/src/main/core/game/node/entity/state/impl/TeleblockStatePulse.java index 8e2661dc4..21f9e97cf 100644 --- a/Server/src/main/java/core/game/node/entity/state/impl/TeleblockStatePulse.java +++ b/Server/src/main/core/game/node/entity/state/impl/TeleblockStatePulse.java @@ -1,6 +1,6 @@ package core.game.node.entity.state.impl; -import api.PersistPlayer; +import core.api.PersistPlayer; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; diff --git a/Server/src/main/java/core/game/node/item/ChanceItem.java b/Server/src/main/core/game/node/item/ChanceItem.java similarity index 100% rename from Server/src/main/java/core/game/node/item/ChanceItem.java rename to Server/src/main/core/game/node/item/ChanceItem.java diff --git a/Server/src/main/java/core/game/node/item/GroundItem.java b/Server/src/main/core/game/node/item/GroundItem.java similarity index 99% rename from Server/src/main/java/core/game/node/item/GroundItem.java rename to Server/src/main/core/game/node/item/GroundItem.java index 5b060feff..01ad07313 100644 --- a/Server/src/main/java/core/game/node/item/GroundItem.java +++ b/Server/src/main/core/game/node/item/GroundItem.java @@ -1,7 +1,7 @@ package core.game.node.item; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; /** diff --git a/Server/src/main/java/core/game/node/item/GroundItemManager.java b/Server/src/main/core/game/node/item/GroundItemManager.java similarity index 98% rename from Server/src/main/java/core/game/node/item/GroundItemManager.java rename to Server/src/main/core/game/node/item/GroundItemManager.java index 1d722e666..464dbbe25 100644 --- a/Server/src/main/java/core/game/node/item/GroundItemManager.java +++ b/Server/src/main/core/game/node/item/GroundItemManager.java @@ -1,14 +1,14 @@ package core.game.node.item; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.chunk.ItemUpdateFlag; import core.net.packet.PacketRepository; import core.net.packet.context.BuildItemContext; import core.net.packet.out.UpdateGroundItemAmount; -import rs09.game.ai.AIRepository; +import core.game.bots.AIRepository; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/node/item/Item.java b/Server/src/main/core/game/node/item/Item.java similarity index 100% rename from Server/src/main/java/core/game/node/item/Item.java rename to Server/src/main/core/game/node/item/Item.java diff --git a/Server/src/main/java/core/game/node/item/ItemPlugin.java b/Server/src/main/core/game/node/item/ItemPlugin.java similarity index 100% rename from Server/src/main/java/core/game/node/item/ItemPlugin.java rename to Server/src/main/core/game/node/item/ItemPlugin.java diff --git a/Server/src/main/java/core/game/node/item/WeightedChanceItem.java b/Server/src/main/core/game/node/item/WeightedChanceItem.java similarity index 100% rename from Server/src/main/java/core/game/node/item/WeightedChanceItem.java rename to Server/src/main/core/game/node/item/WeightedChanceItem.java diff --git a/Server/src/main/java/core/game/node/scenery/Constructed.java b/Server/src/main/core/game/node/scenery/Constructed.java similarity index 100% rename from Server/src/main/java/core/game/node/scenery/Constructed.java rename to Server/src/main/core/game/node/scenery/Constructed.java diff --git a/Server/src/main/java/core/game/node/scenery/Scenery.java b/Server/src/main/core/game/node/scenery/Scenery.java similarity index 100% rename from Server/src/main/java/core/game/node/scenery/Scenery.java rename to Server/src/main/core/game/node/scenery/Scenery.java diff --git a/Server/src/main/java/core/game/node/scenery/SceneryBuilder.java b/Server/src/main/core/game/node/scenery/SceneryBuilder.java similarity index 99% rename from Server/src/main/java/core/game/node/scenery/SceneryBuilder.java rename to Server/src/main/core/game/node/scenery/SceneryBuilder.java index 082ad6403..550fb14d1 100644 --- a/Server/src/main/java/core/game/node/scenery/SceneryBuilder.java +++ b/Server/src/main/core/game/node/scenery/SceneryBuilder.java @@ -2,9 +2,9 @@ package core.game.node.scenery; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.LandscapeParser; diff --git a/Server/src/main/kotlin/rs09/game/content/global/shops/Shop.kt b/Server/src/main/core/game/shops/Shop.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/content/global/shops/Shop.kt rename to Server/src/main/core/game/shops/Shop.kt index 18d39ba29..01ef3f6f3 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/shops/Shop.kt +++ b/Server/src/main/core/game/shops/Shop.kt @@ -1,8 +1,8 @@ -package rs09.game.content.global.shops +package core.game.shops -import api.* -import api.events.ItemShopPurchaseEvent -import api.events.ItemShopSellEvent +import core.api.* +import core.game.event.ItemShopPurchaseEvent +import core.game.event.ItemShopSellEvent import core.game.component.Component import core.game.container.Container import core.game.container.ContainerEvent @@ -15,9 +15,9 @@ import core.net.packet.context.ContainerContext import core.net.packet.out.ContainerPacket import org.rs09.consts.Components import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.content.global.shops.Shops.Companion.logShop -import rs09.game.world.GameWorld +import core.ServerConstants +import core.game.shops.Shops.Companion.logShop +import core.game.world.GameWorld import java.lang.Integer.max import java.lang.Integer.min import kotlin.math.ceil @@ -275,7 +275,7 @@ class Shop(val title: String, val stock: Array, val general: Boolean = } val cost = getBuyPrice(player, slot) - if(cost.id == -1) sendMessage(player, "This shop cannot sell that item.").also { return TransactionStatus.Failure("Shop cannot sell this item")} + if(cost.id == -1) sendMessage(player, "This shop cannot sell that item.").also { return TransactionStatus.Failure("Shop cannot sell this item") } if(currency == Items.COINS_995){ var amt = item.amount diff --git a/Server/src/main/kotlin/rs09/game/content/global/shops/Shops.kt b/Server/src/main/core/game/shops/Shops.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/content/global/shops/Shops.kt rename to Server/src/main/core/game/shops/Shops.kt index 2c1014c63..0bf521d2a 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/shops/Shops.kt +++ b/Server/src/main/core/game/shops/Shops.kt @@ -1,23 +1,22 @@ -package rs09.game.content.global.shops +package core.game.shops -import api.* -import core.game.content.dialogue.FacialExpression +import core.api.* import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.skill.crafting.TanningProduct +import content.global.skill.crafting.TanningProduct import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser import org.rs09.consts.Components import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.ServerConstants -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InterfaceListener -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.tools.END_DIALOGUE +import core.ServerConstants +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InterfaceListener +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.tools.END_DIALOGUE import java.io.FileReader /** @@ -32,8 +31,8 @@ import java.io.FileReader class Shops : StartupListener, TickListener, InteractionListener, InterfaceListener, Commands { companion object { @JvmStatic val personalizedShops = "world.personalized_shops" - @JvmStatic val shopsById = HashMap() - @JvmStatic val shopsByNpc = HashMap() + @JvmStatic val shopsById = HashMap() + @JvmStatic val shopsByNpc = HashMap() @JvmStatic fun openId(player: Player, id: Int) { @@ -106,7 +105,7 @@ class Shops : StartupListener, TickListener, InteractionListener, InterfaceListe } override fun defineListeners() { - on(IntType.NPC, "trade", "shop"){player, node -> + on(IntType.NPC, "trade", "shop"){ player, node -> val npc = node as NPC if (npc.id == 2824) { TanningProduct.open(player, 2824) @@ -132,7 +131,7 @@ class Shops : StartupListener, TickListener, InteractionListener, InterfaceListe on(NPCs.FUR_TRADER_1316, IntType.NPC, "trade") { player, node -> if (!isQuestComplete(player, "Fremennik Trials")) { - sendNPCDialogue(player, NPCs.FUR_TRADER_1316, "I don't sell to outerlanders.", FacialExpression.ANNOYED).also { END_DIALOGUE } + sendNPCDialogue(player, NPCs.FUR_TRADER_1316, "I don't sell to outerlanders.", core.game.dialogue.FacialExpression.ANNOYED).also { END_DIALOGUE } } else { shopsByNpc[node.id]?.openFor(player) } diff --git a/Server/src/main/java/core/game/system/SystemConfig.java b/Server/src/main/core/game/system/SystemConfig.java similarity index 100% rename from Server/src/main/java/core/game/system/SystemConfig.java rename to Server/src/main/core/game/system/SystemConfig.java diff --git a/Server/src/main/java/core/game/system/SystemManager.java b/Server/src/main/core/game/system/SystemManager.java similarity index 98% rename from Server/src/main/java/core/game/system/SystemManager.java rename to Server/src/main/core/game/system/SystemManager.java index 48685fdb3..5c1ba185a 100644 --- a/Server/src/main/java/core/game/system/SystemManager.java +++ b/Server/src/main/core/game/system/SystemManager.java @@ -1,7 +1,7 @@ package core.game.system; import core.game.system.security.EncryptionManager; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Manages the "game system" states, such as updating or terminating. diff --git a/Server/src/main/java/core/game/system/SystemShutdownHook.java b/Server/src/main/core/game/system/SystemShutdownHook.java similarity index 90% rename from Server/src/main/java/core/game/system/SystemShutdownHook.java rename to Server/src/main/core/game/system/SystemShutdownHook.java index 8546e2e0f..1736c293e 100644 --- a/Server/src/main/java/core/game/system/SystemShutdownHook.java +++ b/Server/src/main/core/game/system/SystemShutdownHook.java @@ -1,6 +1,6 @@ package core.game.system; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; /** * Handles the shutdown hook. diff --git a/Server/src/main/java/core/game/system/SystemState.java b/Server/src/main/core/game/system/SystemState.java similarity index 100% rename from Server/src/main/java/core/game/system/SystemState.java rename to Server/src/main/core/game/system/SystemState.java diff --git a/Server/src/main/java/core/game/system/SystemTermination.java b/Server/src/main/core/game/system/SystemTermination.java similarity index 88% rename from Server/src/main/java/core/game/system/SystemTermination.java rename to Server/src/main/core/game/system/SystemTermination.java index 587e1e157..5c7fb2665 100644 --- a/Server/src/main/java/core/game/system/SystemTermination.java +++ b/Server/src/main/core/game/system/SystemTermination.java @@ -1,16 +1,16 @@ package core.game.system; -import api.PersistWorld; -import api.ShutdownListener; +import core.api.PersistWorld; +import core.api.ShutdownListener; import core.game.node.entity.player.Player; -import rs09.Server; -import rs09.ServerConstants; -import rs09.ServerStore; -import rs09.game.ai.AIRepository; -import rs09.game.node.entity.player.info.PlayerMonitor; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.Server; +import core.ServerConstants; +import core.ServerStore; +import core.game.bots.AIRepository; +import core.game.node.entity.player.info.PlayerMonitor; +import core.tools.SystemLogger; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import java.io.File; import java.util.Iterator; diff --git a/Server/src/main/java/core/game/system/SystemUpdate.java b/Server/src/main/core/game/system/SystemUpdate.java similarity index 96% rename from Server/src/main/java/core/game/system/SystemUpdate.java rename to Server/src/main/core/game/system/SystemUpdate.java index 9df42b872..bb5375ea0 100644 --- a/Server/src/main/java/core/game/system/SystemUpdate.java +++ b/Server/src/main/core/game/system/SystemUpdate.java @@ -1,10 +1,10 @@ package core.game.system; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import java.util.Iterator; import java.util.concurrent.Executors; diff --git a/Server/src/main/kotlin/rs09/game/system/command/Command.kt b/Server/src/main/core/game/system/command/Command.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/system/command/Command.kt rename to Server/src/main/core/game/system/command/Command.kt index 22bdad575..fdbc56d90 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/Command.kt +++ b/Server/src/main/core/game/system/command/Command.kt @@ -1,8 +1,8 @@ -package rs09.game.system.command +package core.game.system.command import core.game.node.entity.player.Player -import rs09.ServerConstants -import rs09.game.world.GameWorld +import core.ServerConstants +import core.game.world.GameWorld import kotlin.collections.ArrayList /** diff --git a/Server/src/main/kotlin/rs09/game/system/command/CommandPlugin.kt b/Server/src/main/core/game/system/command/CommandPlugin.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/system/command/CommandPlugin.kt rename to Server/src/main/core/game/system/command/CommandPlugin.kt index debb49580..45cd441a7 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/CommandPlugin.kt +++ b/Server/src/main/core/game/system/command/CommandPlugin.kt @@ -1,9 +1,8 @@ -package rs09.game.system.command +package core.game.system.command import core.game.node.entity.player.Player -import core.game.system.command.CommandSet import core.plugin.Plugin -import rs09.game.world.repository.Repository +import core.game.world.repository.Repository /** * Represents a command plugin that can be linked to a command set. diff --git a/Server/src/main/java/core/game/system/command/CommandSet.java b/Server/src/main/core/game/system/command/CommandSet.java similarity index 96% rename from Server/src/main/java/core/game/system/command/CommandSet.java rename to Server/src/main/core/game/system/command/CommandSet.java index 98cf63265..56daa2317 100644 --- a/Server/src/main/java/core/game/system/command/CommandSet.java +++ b/Server/src/main/core/game/system/command/CommandSet.java @@ -2,8 +2,8 @@ package core.game.system.command; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; -import rs09.game.system.command.CommandPlugin; -import rs09.game.world.GameWorld; +import core.game.system.command.CommandPlugin; +import core.game.world.GameWorld; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/kotlin/rs09/game/system/command/CommandSystem.kt b/Server/src/main/core/game/system/command/CommandSystem.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/CommandSystem.kt rename to Server/src/main/core/game/system/command/CommandSystem.kt index a1a4b5a38..8912a531a 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/CommandSystem.kt +++ b/Server/src/main/core/game/system/command/CommandSystem.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command +package core.game.system.command import core.game.node.entity.player.Player import core.game.system.command.CommandSet diff --git a/Server/src/main/kotlin/rs09/game/system/command/MapDumpCommand.kt b/Server/src/main/core/game/system/command/MapDumpCommand.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/system/command/MapDumpCommand.kt rename to Server/src/main/core/game/system/command/MapDumpCommand.kt index 5a0be4fcb..25fed543b 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/MapDumpCommand.kt +++ b/Server/src/main/core/game/system/command/MapDumpCommand.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command +package core.game.system.command import core.game.node.entity.player.Player import core.game.system.command.CommandSet diff --git a/Server/src/main/kotlin/rs09/game/system/command/Privilege.kt b/Server/src/main/core/game/system/command/Privilege.kt similarity index 65% rename from Server/src/main/kotlin/rs09/game/system/command/Privilege.kt rename to Server/src/main/core/game/system/command/Privilege.kt index a20a7f775..7c4fc9354 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/Privilege.kt +++ b/Server/src/main/core/game/system/command/Privilege.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command +package core.game.system.command enum class Privilege{ STANDARD, diff --git a/Server/src/main/kotlin/rs09/game/system/command/oldsys/SimpleDumpingCommands.kt b/Server/src/main/core/game/system/command/oldsys/SimpleDumpingCommands.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/oldsys/SimpleDumpingCommands.kt rename to Server/src/main/core/game/system/command/oldsys/SimpleDumpingCommands.kt index 5f5df5cfe..c4cee6e38 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/oldsys/SimpleDumpingCommands.kt +++ b/Server/src/main/core/game/system/command/oldsys/SimpleDumpingCommands.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command.oldsys +package core.game.system.command.oldsys import core.cache.def.impl.ItemDefinition import core.cache.def.impl.NPCDefinition @@ -7,7 +7,7 @@ import core.game.node.entity.player.Player import core.game.system.command.CommandSet import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.system.command.CommandPlugin +import core.game.system.command.CommandPlugin import java.io.BufferedWriter import java.io.File diff --git a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt b/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt rename to Server/src/main/core/game/system/command/oldsys/VisualCommand.kt index 33fcd3e77..a395ca995 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt +++ b/Server/src/main/core/game/system/command/oldsys/VisualCommand.kt @@ -1,9 +1,9 @@ -package rs09.game.system.command.oldsys +package core.game.system.command.oldsys -import api.* +import core.api.* import core.cache.Cache import core.game.container.access.InterfaceContainer -import core.game.content.quest.tutorials.tutorialisland.CharacterDesign +import content.region.misc.tutisland.handlers.iface.CharacterDesign import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.node.entity.combat.ImpactHandler.HitsplatType @@ -23,8 +23,8 @@ import core.net.packet.context.VarbitContext import core.net.packet.out.Varbit import core.plugin.Initializable import core.plugin.Plugin -import rs09.game.system.command.CommandPlugin -import rs09.game.world.GameWorld +import core.game.system.command.CommandPlugin +import core.game.world.GameWorld import java.awt.Toolkit import java.awt.datatransfer.StringSelection diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt b/Server/src/main/core/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt rename to Server/src/main/core/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt index deb209cfb..fa689367a 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RPUseWithNPCDialogue.kt @@ -1,21 +1,20 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato -import core.game.content.dialogue.DialoguePlugin import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.plugin.Initializable -import rs09.tools.stringtools.colorize +import core.tools.colorize /** * Rotten potato -> npc interaction menu * @author Ceikry */ @Initializable -class RPUseWithNPCDialogue(player: Player? = null) : DialoguePlugin(player) { +class RPUseWithNPCDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var npc: NPC? = null val ID = 38575795 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RPUseWithNPCDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt b/Server/src/main/core/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt similarity index 78% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt rename to Server/src/main/core/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt index 6183f2f92..8b0ae8fd0 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RPUseWithPlayerDialogue.kt @@ -1,6 +1,6 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato -import core.game.content.dialogue.DialoguePlugin +import core.game.dialogue.DialoguePlugin import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player import core.plugin.Initializable @@ -10,11 +10,11 @@ import core.plugin.Initializable * Rotten Potato -> Player interaction dialogue * @author Ceikry */ -class RPUseWithPlayerDialogue(player: Player? = null) : DialoguePlugin(player) { +class RPUseWithPlayerDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { var other: Player? = null val ID = 38575796 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RPUseWithPlayerDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt rename to Server/src/main/core/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt index c29519c68..5528ecf20 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoExtraDialogue.kt @@ -1,28 +1,26 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato -import api.* -import api.InputType -import core.game.content.dialogue.DialoguePlugin +import core.api.* +import core.api.InputType import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player -import core.game.node.entity.player.link.RunScript import core.game.world.map.RegionManager import core.plugin.Initializable -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.game.world.repository.Repository +import core.tools.colorize @Initializable /** * Rotten Potato Right click -> Extra dialogue menu * @author Ceikry */ -class RottenPotatoExtraDialogue(player: Player? = null) : DialoguePlugin(player) { +class RottenPotatoExtraDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { val ID = 38575794 val AMEs = arrayOf("chicken","Sandwich Lady","tree spirit","rick turpentine","Genie") val BossIDs = arrayOf(50,8350,8133,2745) val BossNames = arrayOf("KBD","Tormented Demon","Corporeal Beast","Jad") - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RottenPotatoExtraDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt rename to Server/src/main/core/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt index d7d110384..e3e69ac3e 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoOptionHandler.kt @@ -1,6 +1,6 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato -import api.removeItem +import core.api.removeItem import core.cache.def.impl.ItemDefinition import core.game.interaction.OptionHandler import core.game.node.Node @@ -9,9 +9,9 @@ import core.game.node.entity.player.info.Rights import core.plugin.Initializable import core.plugin.Plugin import org.rs09.consts.Items -import rs09.game.system.SystemLogger -import rs09.game.system.command.CommandSystem -import rs09.tools.stringtools.colorize +import core.tools.SystemLogger +import core.game.system.command.CommandSystem +import core.tools.colorize /** * Handles the Rotten Potato options diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt rename to Server/src/main/core/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt index 7f27b25f5..6321d5f07 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoRSHDDialogue.kt @@ -1,26 +1,23 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato -import api.* -import api.InputType -import core.game.content.dialogue.DialoguePlugin +import core.api.* +import core.api.InputType import core.game.node.entity.player.Player import core.game.node.entity.player.info.login.PlayerParser -import core.game.node.entity.player.link.RunScript -import rs09.game.world.ImmerseWorld -import rs09.game.world.repository.Repository +import core.game.world.ImmerseWorld +import core.game.world.repository.Repository import core.plugin.Initializable -import rs09.tools.stringtools.colorize -import rs09.game.ai.AIPlayer -import rs09.game.ai.AIRepository +import core.tools.colorize +import core.game.bots.AIRepository @Initializable /** * Rotten Potato "RS HD" option menu * @author Ceikry */ -class RottenPotatoRSHDDialogue(player: Player? = null) : DialoguePlugin(player) { +class RottenPotatoRSHDDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player) { val ID = 38575793 - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return RottenPotatoRSHDDialogue(player) } diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt rename to Server/src/main/core/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt index 53a42225e..c5a97fef9 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt +++ b/Server/src/main/core/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command.rottenpotato +package core.game.system.command.rottenpotato import core.game.node.Node import core.game.node.scenery.Scenery diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/AnimationCommandSet.kt b/Server/src/main/core/game/system/command/sets/AnimationCommandSet.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/system/command/sets/AnimationCommandSet.kt rename to Server/src/main/core/game/system/command/sets/AnimationCommandSet.kt index e846e9004..ada26eaca 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/AnimationCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/AnimationCommandSet.kt @@ -1,13 +1,12 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.node.entity.npc.NPC import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation import core.plugin.Initializable -import rs09.game.system.command.Command -import rs09.game.system.command.CommandPlugin.Companion.toInteger -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld +import core.game.system.command.CommandPlugin.Companion.toInteger +import core.game.system.command.Privilege +import core.game.world.GameWorld import java.util.* @Initializable diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt b/Server/src/main/core/game/system/command/sets/BottingCommandSet.kt similarity index 89% rename from Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt rename to Server/src/main/core/game/system/command/sets/BottingCommandSet.kt index 1d53091b3..d3ddcdd70 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/BottingCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/BottingCommandSet.kt @@ -1,15 +1,14 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.component.Component import core.plugin.Initializable import org.rs09.consts.Components -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.ai.general.scriptrepository.PlayerScripts -import rs09.game.ai.general.scriptrepository.Script -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.tools.stringtools.colorize +import core.game.bots.GeneralBotCreator +import core.game.bots.PlayerScripts +import core.game.bots.Script +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.tools.colorize @Initializable class BottingCommandSet : CommandSet(Privilege.STANDARD) { @@ -25,7 +24,7 @@ class BottingCommandSet : CommandSet(Privilege.STANDARD) { return@define } if(!player.getAttribute("botting:warning_shown",false)){ - player.dialogueInterpreter.sendDialogue(colorize("%RWARNING: Running a bot script will permanently remove you"),colorize("%Rfrom the highscores.")) + player.dialogueInterpreter.sendDialogue(colorize("%RWARNING: Running a bot script will permanently remove you"), colorize("%Rfrom the highscores.")) player.dialogueInterpreter.addAction { player, buttonId -> player.setAttribute("/save:botting:warning_shown",true) } return@define } diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/CommandSet.kt b/Server/src/main/core/game/system/command/sets/CommandSet.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/system/command/sets/CommandSet.kt rename to Server/src/main/core/game/system/command/sets/CommandSet.kt index 5e68b2ee1..ba15f4134 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/CommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/CommandSet.kt @@ -1,11 +1,11 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.node.entity.player.Player -import rs09.game.system.command.Command -import rs09.game.system.command.CommandMapping +import core.game.system.command.Command +import core.game.system.command.CommandMapping import core.plugin.Plugin -import rs09.game.system.command.Privilege -import rs09.tools.stringtools.colorize +import core.game.system.command.Privilege +import core.tools.colorize /** * Command sets allow you to organize sets of commands by category/type. It also provides diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/ConfigCommandSet.kt b/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/system/command/sets/ConfigCommandSet.kt rename to Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt index 6205a86c2..5f64859d9 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/ConfigCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/ConfigCommandSet.kt @@ -1,8 +1,8 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.plugin.Initializable -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege +import core.game.system.command.Command +import core.game.system.command.Privilege @Initializable class ConfigCommandSet : CommandSet(Privilege.ADMIN){ diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/DevelopmentCommandSet.kt b/Server/src/main/core/game/system/command/sets/DevelopmentCommandSet.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/sets/DevelopmentCommandSet.kt rename to Server/src/main/core/game/system/command/sets/DevelopmentCommandSet.kt index 1f2580227..7f3340271 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/DevelopmentCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/DevelopmentCommandSet.kt @@ -1,6 +1,6 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets -import api.sendMessage +import core.api.sendMessage import core.cache.Cache import core.cache.def.impl.DataMap import core.cache.def.impl.NPCDefinition @@ -17,12 +17,12 @@ import core.plugin.Initializable import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.Items -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege +import core.tools.SystemLogger +import core.game.system.command.Privilege import java.io.BufferedWriter import java.io.File import java.io.FileWriter -import rs09.net.packet.PacketWriteQueue +import core.net.packet.PacketWriteQueue @Initializable class DevelopmentCommandSet : CommandSet(Privilege.ADMIN) { diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/FunCommandSet.kt b/Server/src/main/core/game/system/command/sets/FunCommandSet.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/system/command/sets/FunCommandSet.kt rename to Server/src/main/core/game/system/command/sets/FunCommandSet.kt index 9a77f1817..13cbf910e 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/FunCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/FunCommandSet.kt @@ -1,8 +1,7 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets -import api.* -import com.google.gson.JsonObject -import core.game.content.quest.tutorials.tutorialisland.CharacterDesign +import core.api.* +import content.region.misc.tutisland.handlers.iface.CharacterDesign import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.system.task.Pulse @@ -11,14 +10,12 @@ import core.game.world.map.RegionManager import core.game.world.update.flag.context.Animation import core.plugin.Initializable import org.json.simple.JSONObject -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListeners -import rs09.game.interaction.SpadeDigListener -import rs09.game.node.entity.player.info.login.PlayerSaver -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import content.global.handlers.item.SpadeDigListener +import core.game.node.entity.player.info.login.PlayerSaver +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.tools.END_DIALOGUE import java.awt.HeadlessException import java.awt.Toolkit import java.awt.datatransfer.StringSelection @@ -176,7 +173,7 @@ class FunCommandSet : CommandSet(Privilege.ADMIN) { fun bury(player: Player){ val loc = Location.create(player.location) val inv = player.inventory.toArray().filterNotNull() - SpadeDigListener.registerListener(player.location){p -> + SpadeDigListener.registerListener(player.location){ p -> for(item in inv){ addItemOrDrop(p, item.id, item.amount) sendMessage(p, "You dig and find ${if(item.amount > 1) "some" else "a"} ${item.name}") diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt b/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt rename to Server/src/main/core/game/system/command/sets/MiscCommandSet.kt index 7d53d469c..5d4c5f450 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/MiscCommandSet.kt @@ -1,6 +1,7 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets -import api.* +import core.api.* +import core.api.InputType import core.cache.def.impl.NPCDefinition import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition @@ -19,21 +20,20 @@ import core.tools.StringUtils import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.rs09.consts.Components -import rs09.ServerConstants -import rs09.game.ai.AIRepository -import rs09.game.camerautils.PlayerCamera -import rs09.game.content.activity.fishingtrawler.TrawlerLoot -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.ame.RandomEvents -import rs09.game.content.quest.members.anma.AnmaCutscene -import rs09.game.ge.GrandExchange -import rs09.game.interaction.inter.RulesAndInfo -import rs09.game.node.entity.state.newsys.states.FarmingState -import rs09.game.system.SystemLogger -import rs09.game.system.command.CommandMapping -import rs09.game.system.command.Privilege -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.ServerConstants +import core.game.bots.AIRepository +import core.api.utils.PlayerCamera +import content.global.ame.RandomEvents +import content.region.misthalin.draynor.quest.anma.AnmaCutscene +import core.game.ge.GrandExchange +import content.global.handlers.iface.RulesAndInfo +import content.global.skill.farming.FarmingState +import content.minigame.fishingtrawler.TrawlerLoot +import core.tools.SystemLogger +import core.game.system.command.CommandMapping +import core.game.system.command.Privilege +import core.game.world.repository.Repository +import core.tools.colorize import java.awt.HeadlessException import java.awt.Toolkit import java.awt.datatransfer.StringSelection @@ -593,13 +593,13 @@ class MiscCommandSet : CommandSet(Privilege.ADMIN){ } define("testlady", Privilege.ADMIN){ player, _ -> - RandomEventManager.getInstance(player)!!.event = RandomEvents.RIVER_TROLL.npc.create(player) - RandomEventManager.getInstance(player)!!.event!!.init() + content.global.ame.RandomEventManager.getInstance(player)!!.event = RandomEvents.RIVER_TROLL.npc.create(player) + content.global.ame.RandomEventManager.getInstance(player)!!.event!!.init() } define("revent", Privilege.ADMIN){ player, _ -> println(player.pulseManager.current) - RandomEventManager.getInstance(player)!!.fireEvent() + content.global.ame.RandomEventManager.getInstance(player)!!.fireEvent() } define("addcredits", Privilege.ADMIN){ player, _ -> diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/ModerationCommandSet.kt b/Server/src/main/core/game/system/command/sets/ModerationCommandSet.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/sets/ModerationCommandSet.kt rename to Server/src/main/core/game/system/command/sets/ModerationCommandSet.kt index c7b64d105..459f22220 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/ModerationCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/ModerationCommandSet.kt @@ -1,6 +1,6 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets -import api.sendMessage +import core.api.sendMessage import core.game.node.entity.player.Player import core.game.node.entity.player.info.Rights import core.game.system.task.Pulse @@ -10,14 +10,14 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import rs09.ServerConstants -import rs09.ServerStore -import rs09.ServerStore.Companion.addToList -import rs09.auth.UserAccountInfo -import rs09.game.system.command.CommandMapping -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.ServerStore +import core.ServerStore.Companion.addToList +import core.auth.UserAccountInfo +import core.game.system.command.CommandMapping +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.game.world.repository.Repository import java.io.File import java.io.FileReader import java.util.concurrent.TimeUnit diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/MusicCommandSet.kt b/Server/src/main/core/game/system/command/sets/MusicCommandSet.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/system/command/sets/MusicCommandSet.kt rename to Server/src/main/core/game/system/command/sets/MusicCommandSet.kt index 17a92cb3e..09cfc6c65 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/MusicCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/MusicCommandSet.kt @@ -1,12 +1,12 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.node.entity.player.link.music.MusicEntry import core.net.packet.PacketRepository import core.net.packet.context.MusicContext import core.net.packet.out.MusicPacket import core.plugin.Initializable -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege +import core.game.system.command.Command +import core.game.system.command.Privilege @Initializable class MusicCommandSet : CommandSet(Privilege.STANDARD){ diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/QuestCommandSet.kt b/Server/src/main/core/game/system/command/sets/QuestCommandSet.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/system/command/sets/QuestCommandSet.kt rename to Server/src/main/core/game/system/command/sets/QuestCommandSet.kt index 504693c2e..43fa0077e 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/QuestCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/QuestCommandSet.kt @@ -1,11 +1,11 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.component.Component import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.QuestRepository -import rs09.game.system.command.Command +import core.game.system.command.Command import core.plugin.Initializable -import rs09.game.system.command.Privilege +import core.game.system.command.Privilege @Initializable class QuestCommandSet : CommandSet(Privilege.ADMIN){ diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/SlayerCommandSet.kt b/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt similarity index 86% rename from Server/src/main/kotlin/rs09/game/system/command/sets/SlayerCommandSet.kt rename to Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt index d6c83cbe6..117e06cd0 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/SlayerCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/SlayerCommandSet.kt @@ -1,10 +1,9 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets +import content.global.skill.slayer.SlayerManager import core.game.node.entity.npc.NPC import core.plugin.Initializable -import rs09.game.node.entity.skill.slayer.SlayerManager -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege +import core.game.system.command.Privilege @Initializable class SlayerCommandSet : CommandSet(Privilege.ADMIN){ diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt b/Server/src/main/core/game/system/command/sets/SpawnCommandSet.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt rename to Server/src/main/core/game/system/command/sets/SpawnCommandSet.kt index 2ea1dcdcb..ea8886494 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/SpawnCommandSet.kt @@ -1,15 +1,14 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.cache.Cache import core.game.node.scenery.Scenery import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.item.Item -import rs09.game.system.SystemLogger -import rs09.game.system.command.Command -import rs09.game.system.command.CommandPlugin +import core.tools.SystemLogger +import core.game.system.command.CommandPlugin import core.plugin.Initializable -import rs09.game.system.command.Privilege +import core.game.system.command.Privilege import java.awt.Toolkit import java.awt.datatransfer.StringSelection diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatAttributeKeys.kt b/Server/src/main/core/game/system/command/sets/StatAttributeKeys.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatAttributeKeys.kt rename to Server/src/main/core/game/system/command/sets/StatAttributeKeys.kt index ee08acd85..1189dbcfb 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatAttributeKeys.kt +++ b/Server/src/main/core/game/system/command/sets/StatAttributeKeys.kt @@ -1,4 +1,4 @@ -package rs09.game.node.entity.player.info.stats +package core.game.system.command.sets const val STATS_BASE = "stats_manager" const val STATS_ENEMIES_KILLED = "enemies_killed" diff --git a/Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatsCommandSet.kt b/Server/src/main/core/game/system/command/sets/StatsCommandSet.kt similarity index 92% rename from Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatsCommandSet.kt rename to Server/src/main/core/game/system/command/sets/StatsCommandSet.kt index a15251e52..42f03a37e 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/player/info/stats/StatsCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/StatsCommandSet.kt @@ -1,19 +1,17 @@ -package rs09.game.node.entity.player.info.stats +package core.game.system.command.sets import core.game.component.Component -import core.game.content.global.BossKillCounter -import core.game.content.ttrail.TreasureTrailManager +import content.data.BossKillCounter +import content.global.activity.ttrail.TreasureTrailManager +import content.global.skill.slayer.SlayerManager import core.game.node.entity.player.Player import core.plugin.Initializable import org.rs09.consts.Items; import org.rs09.consts.NPCs; -import rs09.game.content.global.GlobalKillCounter; -import rs09.game.interaction.InterfaceListener -import rs09.game.node.entity.skill.slayer.SlayerManager -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege -import rs09.game.system.command.sets.CommandSet -import rs09.game.world.repository.Repository +import core.api.utils.GlobalKillCounter; +import core.game.interaction.InterfaceListener +import core.game.system.command.Privilege +import core.game.world.repository.Repository val TUROTH_IDS = intArrayOf(NPCs.TUROTH_1622, NPCs.TUROTH_1623, NPCs.TUROTH_1626, NPCs.TUROTH_1627, NPCs.TUROTH_1628, NPCs.TUROTH_1629, NPCs.TUROTH_1630) val KURASK_IDS = intArrayOf(NPCs.KURASK_1608, NPCs.KURASK_1609, NPCs.KURASK_4229, NPCs.KURASK_7811) @@ -43,12 +41,12 @@ fun sendStats(player: Player, other: Player, page: Int){ 97 -> sendLine(player,"Easy Clues: ${TreasureTrailManager.getInstance(other).completedClues[0]}",i) 68 -> sendLine(player,"Medium Clues: ${TreasureTrailManager.getInstance(other).completedClues[1]}",i) 69 -> sendLine(player,"Hard Clues: ${TreasureTrailManager.getInstance(other).completedClues[2]}",i) - 70 -> sendLine(player,SPACER,i) + 70 -> sendLine(player, SPACER,i) 71 -> sendLine(player,"Slayer Tasks: ${SlayerManager.getInstance(other).flags.completedTasks}",i) 72 -> sendLine(player,"Quest Points: ${other.questRepository.points}",i) 73 -> sendLine(player,"Ironman Mode: ${other.ironmanManager.mode.name.toLowerCase()}",i) 74 -> sendLine(player,"Deaths: ${other.getAttribute("$STATS_BASE:$STATS_DEATHS",0)}",i) - 75 -> sendLine(player,SPACER,i) + 75 -> sendLine(player, SPACER,i) 76 -> sendLine(player,"Logs Chopped: ${other.getAttribute("$STATS_BASE:$STATS_LOGS",0)}",i) 77 -> sendLine(player,"Rocks Mined: ${other.getAttribute("$STATS_BASE:$STATS_ROCKS",0)}",i) 78 -> sendLine(player,"Fish Caught: ${other.getAttribute("$STATS_BASE:$STATS_FISH",0)}",i) @@ -78,16 +76,16 @@ fun sendStats(player: Player, other: Player, page: Int){ 97 -> sendLine(player, "Turoths: ${GlobalKillCounter.getKills(other, TUROTH_IDS)}", i) 68 -> sendLine(player, "Kurasks: ${GlobalKillCounter.getKills(other, KURASK_IDS)}", i) 69 -> sendLine(player, "Leaf-bladed swords: ${GlobalKillCounter.getRareDrops(other, Items.LEAF_BLADED_SWORD_13290)}", i) - 70 -> sendLine(player,SPACER,i) + 70 -> sendLine(player, SPACER,i) 71 -> sendLine(player, "Gargoyles: ${GlobalKillCounter.getKills(other, GARGOYLE_IDS)}", i) 72 -> sendLine(player, "Granite mauls: ${GlobalKillCounter.getRareDrops(other, Items.GRANITE_MAUL_4153)}", i) - 73 -> sendLine(player,SPACER,i) + 73 -> sendLine(player, SPACER,i) 74 -> sendLine(player, "Spiritual mages: ${GlobalKillCounter.getKills(other, SPIRITUAL_MAGE_IDS)}", i) 75 -> sendLine(player, "Dragon boots: ${GlobalKillCounter.getRareDrops(other, Items.DRAGON_BOOTS_11732)}", i) - 76 -> sendLine(player,SPACER,i) + 76 -> sendLine(player, SPACER,i) 77 -> sendLine(player, "Abyssal demons: ${GlobalKillCounter.getKills(other, NPCs.ABYSSAL_DEMON_1615)}", i) 78 -> sendLine(player, "Abyssal whips: ${GlobalKillCounter.getRareDrops(other, Items.ABYSSAL_WHIP_4151)}", i) - 79 -> sendLine(player,SPACER,i) + 79 -> sendLine(player, SPACER,i) 80 -> sendLine(player, "Dark beasts: ${GlobalKillCounter.getKills(other, NPCs.DARK_BEAST_2783)}", i) 81 -> sendLine(player, "Dark bows: ${GlobalKillCounter.getRareDrops(other, Items.DARK_BOW_11235)}", i) @@ -95,13 +93,13 @@ fun sendStats(player: Player, other: Player, page: Int){ 83 -> sendLine(player, "Blue Dragons: ${GlobalKillCounter.getKills(other, BLUE_DRAGON_IDS)}", i) 84 -> sendLine(player, "Red Dragons: ${GlobalKillCounter.getKills(other, RED_DRAGON_IDS)}", i) 85 -> sendLine(player, "Black Dragons: ${GlobalKillCounter.getKills(other, BLACK_DRAGON_IDS)}", i) - 86 -> sendLine(player,SPACER,i) + 86 -> sendLine(player, SPACER,i) 87 -> sendLine(player, "Bronze Dragons: ${GlobalKillCounter.getKills(other, BRONZE_DRAGON_IDS)}", i) 88 -> sendLine(player, "Iron Dragons: ${GlobalKillCounter.getKills(other, IRON_DRAGON_IDS)}", i) 89 -> sendLine(player, "Steel Dragons: ${GlobalKillCounter.getKills(other, STEEL_DRAGON_IDS)}", i) 90 -> sendLine(player, "Mithril Dragons: ${GlobalKillCounter.getKills(other, MITHRIL_DRAGON_IDS)}", i) 91 -> sendLine(player, "Skeletal Wyverns: ${GlobalKillCounter.getKills(other, SKELETAL_WYVERN_IDS)}", i) - 92 -> sendLine(player,SPACER,i) + 92 -> sendLine(player, SPACER,i) 93 -> sendLine(player, "Draconic visages: ${GlobalKillCounter.getRareDrops(other, Items.DRACONIC_VISAGE_11286)}", i) else -> sendLine(player,"",i) @@ -113,12 +111,12 @@ fun sendStats(player: Player, other: Player, page: Int){ 68 -> sendLine(player, "Ahrim's staff: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_STAFF_4710)}", i) 69 -> sendLine(player, "Ahrim's robetop: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_ROBETOP_4712)}", i) 70 -> sendLine(player, "Ahrim's robeskirt: ${GlobalKillCounter.getRareDrops(other, Items.AHRIMS_ROBESKIRT_4714)}", i) - 71 -> sendLine(player,SPACER,i) + 71 -> sendLine(player, SPACER,i) 72 -> sendLine(player, "Dharok's helm: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_HELM_4716)}", i) 73 -> sendLine(player, "Dharok's greataxe: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_GREATAXE_4718)}", i) 74 -> sendLine(player, "Dharok's platebody: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_PLATEBODY_4720)}", i) 75 -> sendLine(player, "Dharok's platelegs: ${GlobalKillCounter.getRareDrops(other, Items.DHAROKS_PLATELEGS_4722)}", i) - 76 -> sendLine(player,SPACER,i) + 76 -> sendLine(player, SPACER,i) 77 -> sendLine(player, "Guthan's helm: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_HELM_4724)}", i) 78 -> sendLine(player, "Guthan's warspear: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_WARSPEAR_4726)}", i) 79 -> sendLine(player, "Guthan's platebody: ${GlobalKillCounter.getRareDrops(other, Items.GUTHANS_PLATEBODY_4728)}", i) @@ -128,12 +126,12 @@ fun sendStats(player: Player, other: Player, page: Int){ 83 -> sendLine(player, "Karil's crossbow: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_CROSSBOW_4734)}", i) 84 -> sendLine(player, "Karil's leathertop: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_LEATHERTOP_4736)}", i) 85 -> sendLine(player, "Karil's leatherskirt: ${GlobalKillCounter.getRareDrops(other, Items.KARILS_LEATHERSKIRT_4738)}", i) - 86 -> sendLine(player,SPACER,i) + 86 -> sendLine(player, SPACER,i) 87 -> sendLine(player, "Torag's helm: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_HELM_4745)}", i) 88 -> sendLine(player, "Torag's hammers: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_HAMMERS_4747)}", i) 89 -> sendLine(player, "Torag's platebody: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_PLATEBODY_4749)}", i) 90 -> sendLine(player, "Torag's platelegs: ${GlobalKillCounter.getRareDrops(other, Items.TORAGS_PLATELEGS_4751)}", i) - 91 -> sendLine(player,SPACER,i) + 91 -> sendLine(player, SPACER,i) 92 -> sendLine(player, "Verac's helm: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_HELM_4753)}", i) 93 -> sendLine(player, "Verac's flail: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_FLAIL_4755)}", i) 94 -> sendLine(player, "Verac's brassard: ${GlobalKillCounter.getRareDrops(other, Items.VERACS_BRASSARD_4757)}", i) diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/SystemCommandSet.kt b/Server/src/main/core/game/system/command/sets/SystemCommandSet.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/sets/SystemCommandSet.kt rename to Server/src/main/core/game/system/command/sets/SystemCommandSet.kt index cb479eb69..e1803535e 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/SystemCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/SystemCommandSet.kt @@ -1,19 +1,19 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets -import api.InputType -import api.runTask -import api.sendDialogue -import api.sendInputDialogue +import core.api.InputType +import core.api.runTask +import core.api.sendDialogue +import core.api.sendInputDialogue import core.cache.def.impl.ItemDefinition import core.game.node.item.Item import core.game.system.SystemManager import core.game.system.SystemState import core.plugin.Initializable import org.rs09.consts.Items -import rs09.game.system.SystemLogger -import rs09.game.system.command.Privilege -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.tools.SystemLogger +import core.game.system.command.Privilege +import core.game.world.GameWorld +import core.game.world.repository.Repository import kotlin.system.exitProcess @Initializable diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/TeleportCommandSet.kt b/Server/src/main/core/game/system/command/sets/TeleportCommandSet.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/command/sets/TeleportCommandSet.kt rename to Server/src/main/core/game/system/command/sets/TeleportCommandSet.kt index 00e000ca6..b9468e139 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/TeleportCommandSet.kt +++ b/Server/src/main/core/game/system/command/sets/TeleportCommandSet.kt @@ -1,4 +1,4 @@ -package rs09.game.system.command.sets +package core.game.system.command.sets import core.game.node.entity.player.link.TeleportManager import core.game.world.map.Location @@ -6,10 +6,9 @@ import core.game.world.map.RegionManager import core.plugin.Initializable import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import rs09.ServerConstants -import rs09.game.system.command.Command -import rs09.game.system.command.Privilege -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.game.system.command.Privilege +import core.game.world.repository.Repository @Initializable class TeleportCommandSet : CommandSet(Privilege.ADMIN){ diff --git a/Server/src/main/java/core/game/system/communication/ClanEntry.java b/Server/src/main/core/game/system/communication/ClanEntry.java similarity index 97% rename from Server/src/main/java/core/game/system/communication/ClanEntry.java rename to Server/src/main/core/game/system/communication/ClanEntry.java index 55d2280cc..135638d84 100644 --- a/Server/src/main/java/core/game/system/communication/ClanEntry.java +++ b/Server/src/main/core/game/system/communication/ClanEntry.java @@ -1,7 +1,7 @@ package core.game.system.communication; import core.game.node.entity.player.Player; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; /** * Represents a player in a clan chat. diff --git a/Server/src/main/java/core/game/system/communication/ClanMember.java b/Server/src/main/core/game/system/communication/ClanMember.java similarity index 100% rename from Server/src/main/java/core/game/system/communication/ClanMember.java rename to Server/src/main/core/game/system/communication/ClanMember.java diff --git a/Server/src/main/java/core/game/system/communication/ClanRank.java b/Server/src/main/core/game/system/communication/ClanRank.java similarity index 100% rename from Server/src/main/java/core/game/system/communication/ClanRank.java rename to Server/src/main/core/game/system/communication/ClanRank.java diff --git a/Server/src/main/java/core/game/system/communication/ClanRepository.java b/Server/src/main/core/game/system/communication/ClanRepository.java similarity index 98% rename from Server/src/main/java/core/game/system/communication/ClanRepository.java rename to Server/src/main/core/game/system/communication/ClanRepository.java index 0c77f1043..ebdc8a3dc 100644 --- a/Server/src/main/java/core/game/system/communication/ClanRepository.java +++ b/Server/src/main/core/game/system/communication/ClanRepository.java @@ -1,22 +1,22 @@ package core.game.system.communication; import core.game.component.Component; -import core.game.content.activity.ActivityPlugin; +import core.game.activity.ActivityPlugin; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.PlayerDetails; import core.game.node.entity.player.info.Rights; import proto.management.ClanJoinNotification; import proto.management.ClanLeaveNotification; -import rs09.game.node.entity.player.info.PlayerMonitor; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.node.entity.player.info.PlayerMonitor; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import core.net.amsc.WorldCommunicator; import core.net.packet.PacketRepository; import core.net.packet.context.ClanContext; import core.net.packet.context.MessageContext; import core.net.packet.out.CommunicationMessage; import core.net.packet.out.UpdateClanChat; -import rs09.worker.ManagementEvents; +import core.worker.ManagementEvents; import java.util.*; diff --git a/Server/src/main/java/core/game/system/communication/CommunicationInfo.java b/Server/src/main/core/game/system/communication/CommunicationInfo.java similarity index 98% rename from Server/src/main/java/core/game/system/communication/CommunicationInfo.java rename to Server/src/main/core/game/system/communication/CommunicationInfo.java index 95bf5239e..eb323277f 100644 --- a/Server/src/main/java/core/game/system/communication/CommunicationInfo.java +++ b/Server/src/main/core/game/system/communication/CommunicationInfo.java @@ -4,21 +4,19 @@ import core.cache.misc.buffer.ByteBufferUtils; import core.game.node.entity.player.Player; import org.jetbrains.annotations.NotNull; import proto.management.PrivateMessage; -import rs09.auth.UserAccountInfo; -import rs09.game.system.SystemLogger; +import core.auth.UserAccountInfo; +import core.tools.SystemLogger; import core.game.system.mysql.SQLTable; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import core.net.amsc.MSPacketRepository; import core.net.amsc.WorldCommunicator; import core.net.packet.PacketRepository; import core.net.packet.context.ContactContext; -import core.net.packet.context.MessageContext; -import core.net.packet.out.CommunicationMessage; import core.net.packet.out.ContactPackets; import core.tools.StringUtils; -import rs09.worker.ManagementEvents; +import core.worker.ManagementEvents; import java.nio.ByteBuffer; import java.util.*; diff --git a/Server/src/main/java/core/game/system/communication/Contact.java b/Server/src/main/core/game/system/communication/Contact.java similarity index 100% rename from Server/src/main/java/core/game/system/communication/Contact.java rename to Server/src/main/core/game/system/communication/Contact.java diff --git a/Server/src/main/kotlin/rs09/game/system/config/ClueRewardParser.kt b/Server/src/main/core/game/system/config/ClueRewardParser.kt similarity index 90% rename from Server/src/main/kotlin/rs09/game/system/config/ClueRewardParser.kt rename to Server/src/main/core/game/system/config/ClueRewardParser.kt index 7bdc9be62..664de1bde 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ClueRewardParser.kt +++ b/Server/src/main/core/game/system/config/ClueRewardParser.kt @@ -1,12 +1,12 @@ -package rs09.game.system.config +package core.game.system.config import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem +import core.ServerConstants +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem import java.io.FileReader diff --git a/Server/src/main/kotlin/rs09/game/system/config/ConfigParser.kt b/Server/src/main/core/game/system/config/ConfigParser.kt similarity index 88% rename from Server/src/main/kotlin/rs09/game/system/config/ConfigParser.kt rename to Server/src/main/core/game/system/config/ConfigParser.kt index 8213b4fd6..db7e1b0f3 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ConfigParser.kt +++ b/Server/src/main/core/game/system/config/ConfigParser.kt @@ -1,9 +1,9 @@ -package rs09.game.system.config +package core.game.system.config -import api.* +import core.api.* -import rs09.game.world.repository.Repository -import rs09.game.system.command.Privilege +import core.game.world.repository.Repository +import core.game.system.command.Privilege import core.game.world.map.RegionManager import core.game.node.item.GroundItemManager @@ -32,7 +32,7 @@ class ConfigParser : Commands { fun reloadConfigs(callback: () -> Unit) { GlobalScope.launch { - Repository.npcs.toTypedArray().forEach { npc -> + Repository.npcs.toTypedArray().forEach { npc -> npc.isRespawn = false npc.clear() Repository.npcs.remove(npc) diff --git a/Server/src/main/kotlin/rs09/game/system/config/CustomVarbitParser.kt b/Server/src/main/core/game/system/config/CustomVarbitParser.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/system/config/CustomVarbitParser.kt rename to Server/src/main/core/game/system/config/CustomVarbitParser.kt index 609c18e7d..770117cc9 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/CustomVarbitParser.kt +++ b/Server/src/main/core/game/system/config/CustomVarbitParser.kt @@ -1,11 +1,11 @@ -package rs09.game.system.config +package core.game.system.config import core.cache.def.impl.VarbitDefinition import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import java.io.FileReader class CustomVarbitParser { diff --git a/Server/src/main/kotlin/rs09/game/system/config/DoorConfigLoader.kt b/Server/src/main/core/game/system/config/DoorConfigLoader.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/system/config/DoorConfigLoader.kt rename to Server/src/main/core/game/system/config/DoorConfigLoader.kt index a833ff20d..f1bc229b3 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/DoorConfigLoader.kt +++ b/Server/src/main/core/game/system/config/DoorConfigLoader.kt @@ -1,7 +1,7 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser diff --git a/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt b/Server/src/main/core/game/system/config/DropTableParser.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt rename to Server/src/main/core/game/system/config/DropTableParser.kt index 79b283743..57cf98d79 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt +++ b/Server/src/main/core/game/system/config/DropTableParser.kt @@ -1,14 +1,13 @@ -package rs09.game.system.config +package core.game.system.config import core.cache.def.impl.NPCDefinition import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.content.global.NPCDropTable -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.api.utils.NPCDropTable +import core.api.utils.WeightedItem +import core.tools.SystemLogger import java.io.FileReader class DropTableParser { diff --git a/Server/src/main/kotlin/rs09/game/system/config/GroundSpawnLoader.kt b/Server/src/main/core/game/system/config/GroundSpawnLoader.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/system/config/GroundSpawnLoader.kt rename to Server/src/main/core/game/system/config/GroundSpawnLoader.kt index d05190652..39ea3df6e 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/GroundSpawnLoader.kt +++ b/Server/src/main/core/game/system/config/GroundSpawnLoader.kt @@ -1,4 +1,4 @@ -package rs09.game.system.config +package core.game.system.config import core.game.node.item.GroundItem import core.game.node.item.GroundItemManager @@ -8,10 +8,10 @@ import core.game.world.map.Location import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.tools.SystemLogger +import core.game.world.GameWorld +import core.game.world.repository.Repository import java.io.FileReader import java.nio.ByteBuffer diff --git a/Server/src/main/kotlin/rs09/game/system/config/InterfaceConfigParser.kt b/Server/src/main/core/game/system/config/InterfaceConfigParser.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/system/config/InterfaceConfigParser.kt rename to Server/src/main/core/game/system/config/InterfaceConfigParser.kt index e07e5a1e1..a31b33dc1 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/InterfaceConfigParser.kt +++ b/Server/src/main/core/game/system/config/InterfaceConfigParser.kt @@ -1,8 +1,8 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants +import core.ServerConstants import core.game.component.ComponentDefinition -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser diff --git a/Server/src/main/kotlin/rs09/game/system/config/ItemConfigParser.kt b/Server/src/main/core/game/system/config/ItemConfigParser.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/system/config/ItemConfigParser.kt rename to Server/src/main/core/game/system/config/ItemConfigParser.kt index 9d54f0c06..8bdb39f65 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ItemConfigParser.kt +++ b/Server/src/main/core/game/system/config/ItemConfigParser.kt @@ -1,4 +1,4 @@ -package rs09.game.system.config +package core.game.system.config import core.cache.def.impl.ItemDefinition import core.game.node.entity.impl.Animator @@ -7,8 +7,8 @@ import core.game.world.update.flag.context.Animation import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import java.io.FileReader class ItemConfigParser { diff --git a/Server/src/main/kotlin/rs09/game/system/config/MusicConfigLoader.kt b/Server/src/main/core/game/system/config/MusicConfigLoader.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/system/config/MusicConfigLoader.kt rename to Server/src/main/core/game/system/config/MusicConfigLoader.kt index 40def29f1..ff0136cab 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/MusicConfigLoader.kt +++ b/Server/src/main/core/game/system/config/MusicConfigLoader.kt @@ -1,10 +1,10 @@ -package rs09.game.system.config +package core.game.system.config import core.cache.def.impl.DataMap -import rs09.ServerConstants +import core.ServerConstants import core.game.node.entity.player.link.music.MusicEntry import core.game.node.entity.player.link.music.MusicZone -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.map.RegionManager import core.game.world.map.zone.ZoneBorders import org.json.simple.JSONArray diff --git a/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt b/Server/src/main/core/game/system/config/NPCConfigParser.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt rename to Server/src/main/core/game/system/config/NPCConfigParser.kt index 77cacad8b..e3354f637 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/NPCConfigParser.kt +++ b/Server/src/main/core/game/system/config/NPCConfigParser.kt @@ -1,11 +1,11 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants +import core.ServerConstants import core.cache.def.impl.NPCDefinition -import core.game.content.ttrail.ClueLevel +import content.global.activity.ttrail.ClueLevel import core.game.node.entity.combat.CombatStyle import core.game.node.entity.impl.Animator -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.update.flag.context.Animation import org.json.simple.JSONArray import org.json.simple.JSONObject diff --git a/Server/src/main/kotlin/rs09/game/system/config/NPCSpawner.kt b/Server/src/main/core/game/system/config/NPCSpawner.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/system/config/NPCSpawner.kt rename to Server/src/main/core/game/system/config/NPCSpawner.kt index 661adfe8c..9307d71dd 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/NPCSpawner.kt +++ b/Server/src/main/core/game/system/config/NPCSpawner.kt @@ -1,8 +1,8 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants +import core.ServerConstants import core.game.node.entity.npc.NPC -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.map.Direction import core.game.world.map.Location import org.json.simple.JSONArray diff --git a/Server/src/main/kotlin/rs09/game/system/config/ObjectConfigParser.kt b/Server/src/main/core/game/system/config/ObjectConfigParser.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/system/config/ObjectConfigParser.kt rename to Server/src/main/core/game/system/config/ObjectConfigParser.kt index f2061f56a..d38ebf8b2 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ObjectConfigParser.kt +++ b/Server/src/main/core/game/system/config/ObjectConfigParser.kt @@ -1,8 +1,8 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants +import core.ServerConstants import core.cache.def.impl.SceneryDefinition -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser diff --git a/Server/src/main/kotlin/rs09/game/system/config/RangedConfigLoader.kt b/Server/src/main/core/game/system/config/RangedConfigLoader.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/config/RangedConfigLoader.kt rename to Server/src/main/core/game/system/config/RangedConfigLoader.kt index f41f26e87..57d28cd4c 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/RangedConfigLoader.kt +++ b/Server/src/main/core/game/system/config/RangedConfigLoader.kt @@ -1,13 +1,13 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants +import core.ServerConstants import core.cache.def.impl.ItemDefinition import core.game.node.entity.combat.equipment.Ammunition import core.game.node.entity.combat.equipment.BoltEffect import core.game.node.entity.combat.equipment.RangeWeapon import core.game.node.entity.impl.Projectile import core.game.node.entity.npc.NPC -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics diff --git a/Server/src/main/kotlin/rs09/game/system/config/ServerConfigParser.kt b/Server/src/main/core/game/system/config/ServerConfigParser.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/system/config/ServerConfigParser.kt rename to Server/src/main/core/game/system/config/ServerConfigParser.kt index 20454985a..ffedb1f65 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ServerConfigParser.kt +++ b/Server/src/main/core/game/system/config/ServerConfigParser.kt @@ -1,12 +1,12 @@ -package rs09.game.system.config +package core.game.system.config import com.moandjiezana.toml.Toml import core.game.world.map.Location import core.tools.mysql.Database -import rs09.ServerConstants -import rs09.game.system.SystemLogger -import rs09.game.world.GameSettings -import rs09.game.world.GameWorld +import core.ServerConstants +import core.tools.SystemLogger +import core.game.world.GameSettings +import core.game.world.GameWorld import java.io.File import java.net.URL import kotlin.system.exitProcess @@ -79,7 +79,7 @@ object ServerConfigParser { wild_pvp_enabled = data.getBoolean("world.wild_pvp_enabled"), jad_practice_enabled = data.getBoolean("world.jad_practice_enabled"), message_model = data.getString("world.motw_identifier").toInt(), - message_string = data.getString("world.motw_text").replace("@name",ServerConstants.SERVER_NAME) + message_string = data.getString("world.motw_text").replace("@name", ServerConstants.SERVER_NAME) ) } diff --git a/Server/src/main/kotlin/rs09/game/system/config/ShopParser.kt b/Server/src/main/core/game/system/config/ShopParser.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/system/config/ShopParser.kt rename to Server/src/main/core/game/system/config/ShopParser.kt index 6e35df21d..a81ce02f4 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/ShopParser.kt +++ b/Server/src/main/core/game/system/config/ShopParser.kt @@ -1,12 +1,10 @@ -package rs09.game.system.config +package core.game.system.config import core.game.node.entity.player.Player -import core.game.node.item.Item import org.json.simple.JSONArray -import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import java.io.FileReader class ShopParser{ diff --git a/Server/src/main/kotlin/rs09/game/system/config/TableDump.kt b/Server/src/main/core/game/system/config/TableDump.kt similarity index 100% rename from Server/src/main/kotlin/rs09/game/system/config/TableDump.kt rename to Server/src/main/core/game/system/config/TableDump.kt diff --git a/Server/src/main/kotlin/rs09/game/system/config/XteaParser.kt b/Server/src/main/core/game/system/config/XteaParser.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/system/config/XteaParser.kt rename to Server/src/main/core/game/system/config/XteaParser.kt index e08cee172..7c4d1ec7b 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/XteaParser.kt +++ b/Server/src/main/core/game/system/config/XteaParser.kt @@ -1,12 +1,11 @@ -package rs09.game.system.config +package core.game.system.config -import rs09.ServerConstants -import rs09.game.system.SystemLogger +import core.ServerConstants +import core.tools.SystemLogger import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser import java.io.FileReader -import java.util.* import kotlin.collections.HashMap class XteaParser { diff --git a/Server/src/main/java/core/game/system/monitor/DuplicationLog.java b/Server/src/main/core/game/system/monitor/DuplicationLog.java similarity index 98% rename from Server/src/main/java/core/game/system/monitor/DuplicationLog.java rename to Server/src/main/core/game/system/monitor/DuplicationLog.java index 9ac4969f4..de1d380ba 100644 --- a/Server/src/main/java/core/game/system/monitor/DuplicationLog.java +++ b/Server/src/main/core/game/system/monitor/DuplicationLog.java @@ -1,6 +1,6 @@ package core.game.system.monitor; -import rs09.ServerConstants; +import core.ServerConstants; /** * Handles duplication-related logging. diff --git a/Server/src/main/java/core/game/system/monitor/MessageLog.java b/Server/src/main/core/game/system/monitor/MessageLog.java similarity index 100% rename from Server/src/main/java/core/game/system/monitor/MessageLog.java rename to Server/src/main/core/game/system/monitor/MessageLog.java diff --git a/Server/src/main/java/core/game/system/mysql/SQLColumn.java b/Server/src/main/core/game/system/mysql/SQLColumn.java similarity index 100% rename from Server/src/main/java/core/game/system/mysql/SQLColumn.java rename to Server/src/main/core/game/system/mysql/SQLColumn.java diff --git a/Server/src/main/java/core/game/system/mysql/SQLTable.java b/Server/src/main/core/game/system/mysql/SQLTable.java similarity index 100% rename from Server/src/main/java/core/game/system/mysql/SQLTable.java rename to Server/src/main/core/game/system/mysql/SQLTable.java diff --git a/Server/src/main/java/core/game/system/security/EncryptionManager.java b/Server/src/main/core/game/system/security/EncryptionManager.java similarity index 100% rename from Server/src/main/java/core/game/system/security/EncryptionManager.java rename to Server/src/main/core/game/system/security/EncryptionManager.java diff --git a/Server/src/main/java/core/game/system/task/MovementHook.java b/Server/src/main/core/game/system/task/MovementHook.java similarity index 100% rename from Server/src/main/java/core/game/system/task/MovementHook.java rename to Server/src/main/core/game/system/task/MovementHook.java diff --git a/Server/src/main/java/core/game/system/task/NodeTask.java b/Server/src/main/core/game/system/task/NodeTask.java similarity index 98% rename from Server/src/main/java/core/game/system/task/NodeTask.java rename to Server/src/main/core/game/system/task/NodeTask.java index 72347b8a8..0e3e9afb8 100644 --- a/Server/src/main/java/core/game/system/task/NodeTask.java +++ b/Server/src/main/core/game/system/task/NodeTask.java @@ -1,7 +1,6 @@ package core.game.system.task; import core.game.node.Node; -import rs09.game.world.GameWorld; /** * Represents "Node pulse", which is used to execute methods with node diff --git a/Server/src/main/java/core/game/system/task/Pulse.java b/Server/src/main/core/game/system/task/Pulse.java similarity index 100% rename from Server/src/main/java/core/game/system/task/Pulse.java rename to Server/src/main/core/game/system/task/Pulse.java diff --git a/Server/src/main/java/core/game/system/task/TaskExecutor.kt b/Server/src/main/core/game/system/task/TaskExecutor.kt similarity index 100% rename from Server/src/main/java/core/game/system/task/TaskExecutor.kt rename to Server/src/main/core/game/system/task/TaskExecutor.kt diff --git a/Server/src/main/kotlin/rs09/game/world/DeadlockDetector.kt b/Server/src/main/core/game/world/DeadlockDetector.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/world/DeadlockDetector.kt rename to Server/src/main/core/game/world/DeadlockDetector.kt index 964cd0a48..cd2f968c8 100644 --- a/Server/src/main/kotlin/rs09/game/world/DeadlockDetector.kt +++ b/Server/src/main/core/game/world/DeadlockDetector.kt @@ -1,6 +1,6 @@ -package rs09.game.world +package core.game.world -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.lang.management.ManagementFactory class DeadlockDetector : Runnable { diff --git a/Server/src/main/kotlin/rs09/game/world/GameSettings.kt b/Server/src/main/core/game/world/GameSettings.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/world/GameSettings.kt rename to Server/src/main/core/game/world/GameSettings.kt index 85e6bc503..71352c6c2 100644 --- a/Server/src/main/kotlin/rs09/game/world/GameSettings.kt +++ b/Server/src/main/core/game/world/GameSettings.kt @@ -1,7 +1,7 @@ -package rs09.game.world +package core.game.world import org.json.simple.JSONObject -import rs09.ServerConstants +import core.ServerConstants import java.io.FileInputStream import java.io.IOException import java.util.* diff --git a/Server/src/main/kotlin/rs09/game/world/GameWorld.kt b/Server/src/main/core/game/world/GameWorld.kt similarity index 93% rename from Server/src/main/kotlin/rs09/game/world/GameWorld.kt rename to Server/src/main/core/game/world/GameWorld.kt index e32fc18a5..3778ddf4c 100644 --- a/Server/src/main/kotlin/rs09/game/world/GameWorld.kt +++ b/Server/src/main/core/game/world/GameWorld.kt @@ -1,6 +1,6 @@ -package rs09.game.world +package core.game.world -import api.* +import core.api.* import core.cache.Cache import core.cache.def.impl.SceneryDefinition import core.game.node.entity.player.Player @@ -13,17 +13,17 @@ import core.game.world.map.Region import core.game.world.map.RegionManager import core.plugin.CorePluginTypes.StartupPlugin import core.tools.RandomFunction -import rs09.ServerConstants -import rs09.ServerStore -import rs09.auth.AuthProvider -import rs09.game.system.Auth -import rs09.game.system.SystemLogger -import rs09.game.system.SystemLogger.logInfo -import rs09.game.system.config.ConfigParser -import rs09.game.world.repository.Repository -import rs09.plugin.ClassScanner -import rs09.storage.AccountStorageProvider -import rs09.worker.MajorUpdateWorker +import core.ServerConstants +import core.ServerStore +import core.auth.AuthProvider +import core.auth.Auth +import core.tools.SystemLogger +import core.tools.SystemLogger.logInfo +import core.game.system.config.ConfigParser +import core.game.world.repository.Repository +import core.plugin.ClassScanner +import core.storage.AccountStorageProvider +import core.worker.MajorUpdateWorker import java.text.SimpleDateFormat import java.util.* import java.util.function.Consumer diff --git a/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt b/Server/src/main/core/game/world/ImmerseWorld.kt similarity index 97% rename from Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt rename to Server/src/main/core/game/world/ImmerseWorld.kt index 737fc7e8b..22b20c1ef 100644 --- a/Server/src/main/kotlin/rs09/game/world/ImmerseWorld.kt +++ b/Server/src/main/core/game/world/ImmerseWorld.kt @@ -1,13 +1,13 @@ -package rs09.game.world +package core.game.world -import api.StartupListener +import content.global.bots.* +import core.api.StartupListener import core.game.node.entity.combat.CombatStyle import core.game.world.map.Location import core.game.world.map.zone.ZoneBorders -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.ai.general.scriptrepository.* -import rs09.game.ai.pvmbots.CombatBotAssembler -import rs09.game.ai.skillingbot.SkillingBotAssembler +import core.game.bots.GeneralBotCreator +import core.game.bots.CombatBotAssembler +import core.game.bots.SkillingBotAssembler import java.util.Timer import java.util.concurrent.Executors import kotlin.concurrent.schedule diff --git a/Server/src/main/kotlin/rs09/game/world/PulseRunner.kt b/Server/src/main/core/game/world/PulseRunner.kt similarity index 94% rename from Server/src/main/kotlin/rs09/game/world/PulseRunner.kt rename to Server/src/main/core/game/world/PulseRunner.kt index 08a8e6378..a1feea43d 100644 --- a/Server/src/main/kotlin/rs09/game/world/PulseRunner.kt +++ b/Server/src/main/core/game/world/PulseRunner.kt @@ -1,8 +1,8 @@ -package rs09.game.world +package core.game.world import core.game.system.task.Pulse -import rs09.game.ai.general.GeneralBotCreator -import rs09.game.system.SystemLogger +import core.game.bots.GeneralBotCreator +import core.tools.SystemLogger import java.util.concurrent.LinkedBlockingQueue class PulseRunner { diff --git a/Server/src/main/java/core/game/world/map/BuildRegionChunk.java b/Server/src/main/core/game/world/map/BuildRegionChunk.java similarity index 99% rename from Server/src/main/java/core/game/world/map/BuildRegionChunk.java rename to Server/src/main/core/game/world/map/BuildRegionChunk.java index bec3d460b..1c7bf97a3 100644 --- a/Server/src/main/java/core/game/world/map/BuildRegionChunk.java +++ b/Server/src/main/core/game/world/map/BuildRegionChunk.java @@ -6,7 +6,7 @@ import core.game.node.item.GroundItem; import core.game.node.item.Item; import core.game.node.scenery.Constructed; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.build.LandscapeParser; import core.net.packet.IoBuffer; import core.net.packet.out.ClearScenery; diff --git a/Server/src/main/java/core/game/world/map/Direction.java b/Server/src/main/core/game/world/map/Direction.java similarity index 100% rename from Server/src/main/java/core/game/world/map/Direction.java rename to Server/src/main/core/game/world/map/Direction.java diff --git a/Server/src/main/java/core/game/world/map/Location.java b/Server/src/main/core/game/world/map/Location.java similarity index 99% rename from Server/src/main/java/core/game/world/map/Location.java rename to Server/src/main/core/game/world/map/Location.java index 325563d44..53c5562a7 100644 --- a/Server/src/main/java/core/game/world/map/Location.java +++ b/Server/src/main/core/game/world/map/Location.java @@ -6,7 +6,6 @@ import core.game.world.map.path.Path; import core.game.world.map.path.Pathfinder; import core.tools.RandomFunction; import org.jetbrains.annotations.NotNull; -import rs09.game.system.SystemLogger; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/game/world/map/MapDistance.java b/Server/src/main/core/game/world/map/MapDistance.java similarity index 100% rename from Server/src/main/java/core/game/world/map/MapDistance.java rename to Server/src/main/core/game/world/map/MapDistance.java diff --git a/Server/src/main/java/core/game/world/map/Point.java b/Server/src/main/core/game/world/map/Point.java similarity index 100% rename from Server/src/main/java/core/game/world/map/Point.java rename to Server/src/main/core/game/world/map/Point.java diff --git a/Server/src/main/java/core/game/world/map/Region.java b/Server/src/main/core/game/world/map/Region.java similarity index 98% rename from Server/src/main/java/core/game/world/map/Region.java rename to Server/src/main/core/game/world/map/Region.java index aa35b00a7..b558556f1 100644 --- a/Server/src/main/java/core/game/world/map/Region.java +++ b/Server/src/main/core/game/world/map/Region.java @@ -4,18 +4,16 @@ import core.cache.Cache; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.music.MusicZone; -import core.game.node.scenery.Scenery; -import core.game.node.scenery.SceneryBuilder; import core.game.system.communication.CommunicationInfo; import core.game.system.task.Pulse; import core.game.world.map.build.DynamicRegion; import core.game.world.map.build.LandscapeParser; import core.game.world.map.build.MapscapeParser; import core.game.world.map.zone.RegionZone; -import rs09.game.system.SystemLogger; -import rs09.game.system.config.XteaParser; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.tools.SystemLogger; +import core.game.system.config.XteaParser; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; import java.nio.ByteBuffer; import java.util.ArrayList; diff --git a/Server/src/main/java/core/game/world/map/RegionChunk.java b/Server/src/main/core/game/world/map/RegionChunk.java similarity index 99% rename from Server/src/main/java/core/game/world/map/RegionChunk.java rename to Server/src/main/core/game/world/map/RegionChunk.java index ad069f3d7..816ac5b0c 100644 --- a/Server/src/main/java/core/game/world/map/RegionChunk.java +++ b/Server/src/main/core/game/world/map/RegionChunk.java @@ -4,7 +4,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.Item; import core.game.node.scenery.Scenery; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.game.world.map.build.DynamicRegion; import core.game.world.map.build.LandscapeParser; import core.game.world.update.flag.UpdateFlag; diff --git a/Server/src/main/java/core/game/world/map/RegionManager.kt b/Server/src/main/core/game/world/map/RegionManager.kt similarity index 99% rename from Server/src/main/java/core/game/world/map/RegionManager.kt rename to Server/src/main/core/game/world/map/RegionManager.kt index cc5ffc2d8..e205863b4 100644 --- a/Server/src/main/java/core/game/world/map/RegionManager.kt +++ b/Server/src/main/core/game/world/map/RegionManager.kt @@ -7,7 +7,7 @@ import core.game.node.entity.player.Player import core.game.node.scenery.Scenery import core.game.world.map.zone.ZoneBorders import core.tools.RandomFunction -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.util.* import java.util.concurrent.TimeUnit import java.util.concurrent.locks.ReentrantLock diff --git a/Server/src/main/java/core/game/world/map/RegionPlane.java b/Server/src/main/core/game/world/map/RegionPlane.java similarity index 100% rename from Server/src/main/java/core/game/world/map/RegionPlane.java rename to Server/src/main/core/game/world/map/RegionPlane.java diff --git a/Server/src/main/java/core/game/world/map/Viewport.java b/Server/src/main/core/game/world/map/Viewport.java similarity index 100% rename from Server/src/main/java/core/game/world/map/Viewport.java rename to Server/src/main/core/game/world/map/Viewport.java diff --git a/Server/src/main/java/core/game/world/map/build/DynamicRegion.java b/Server/src/main/core/game/world/map/build/DynamicRegion.java similarity index 99% rename from Server/src/main/java/core/game/world/map/build/DynamicRegion.java rename to Server/src/main/core/game/world/map/build/DynamicRegion.java index 66cb83216..56451386c 100644 --- a/Server/src/main/java/core/game/world/map/build/DynamicRegion.java +++ b/Server/src/main/core/game/world/map/build/DynamicRegion.java @@ -11,8 +11,6 @@ import core.game.world.map.zone.RegionZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.impl.MultiwayCombatZone; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import rs09.game.system.SystemLogger; import java.util.ArrayList; import java.util.Arrays; diff --git a/Server/src/main/java/core/game/world/map/build/LandscapeParser.java b/Server/src/main/core/game/world/map/build/LandscapeParser.java similarity index 99% rename from Server/src/main/java/core/game/world/map/build/LandscapeParser.java rename to Server/src/main/core/game/world/map/build/LandscapeParser.java index cd4b12e37..b3df2188a 100644 --- a/Server/src/main/java/core/game/world/map/build/LandscapeParser.java +++ b/Server/src/main/core/game/world/map/build/LandscapeParser.java @@ -7,7 +7,7 @@ import core.game.world.map.Location; import core.game.world.map.Region; import core.game.world.map.RegionManager; import core.game.world.map.RegionPlane; -import rs09.game.system.config.ObjectConfigParser; +import core.game.system.config.ObjectConfigParser; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/game/world/map/build/MapscapeParser.java b/Server/src/main/core/game/world/map/build/MapscapeParser.java similarity index 100% rename from Server/src/main/java/core/game/world/map/build/MapscapeParser.java rename to Server/src/main/core/game/world/map/build/MapscapeParser.java diff --git a/Server/src/main/java/core/game/world/map/build/RegionFlags.java b/Server/src/main/core/game/world/map/build/RegionFlags.java similarity index 99% rename from Server/src/main/java/core/game/world/map/build/RegionFlags.java rename to Server/src/main/core/game/world/map/build/RegionFlags.java index 8b65845ae..177da33c9 100644 --- a/Server/src/main/java/core/game/world/map/build/RegionFlags.java +++ b/Server/src/main/core/game/world/map/build/RegionFlags.java @@ -2,7 +2,6 @@ package core.game.world.map.build; import core.game.world.map.RegionManager; import kotlin.Pair; -import rs09.game.system.SystemLogger; import static java.lang.Math.max; diff --git a/Server/src/main/java/core/game/world/map/path/ClipMaskSupplier.java b/Server/src/main/core/game/world/map/path/ClipMaskSupplier.java similarity index 100% rename from Server/src/main/java/core/game/world/map/path/ClipMaskSupplier.java rename to Server/src/main/core/game/world/map/path/ClipMaskSupplier.java diff --git a/Server/src/main/java/core/game/world/map/path/DumbPathfinder.java b/Server/src/main/core/game/world/map/path/DumbPathfinder.java similarity index 100% rename from Server/src/main/java/core/game/world/map/path/DumbPathfinder.java rename to Server/src/main/core/game/world/map/path/DumbPathfinder.java diff --git a/Server/src/main/java/core/game/world/map/path/Path.java b/Server/src/main/core/game/world/map/path/Path.java similarity index 100% rename from Server/src/main/java/core/game/world/map/path/Path.java rename to Server/src/main/core/game/world/map/path/Path.java diff --git a/Server/src/main/java/core/game/world/map/path/Pathfinder.java b/Server/src/main/core/game/world/map/path/Pathfinder.java similarity index 99% rename from Server/src/main/java/core/game/world/map/path/Pathfinder.java rename to Server/src/main/core/game/world/map/path/Pathfinder.java index 1f75d3dc8..4202fa9bb 100644 --- a/Server/src/main/java/core/game/world/map/path/Pathfinder.java +++ b/Server/src/main/core/game/world/map/path/Pathfinder.java @@ -6,7 +6,6 @@ import core.game.node.item.GroundItem; import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.RegionManager; -import rs09.game.world.map.path.SmartPathfinder; public abstract class Pathfinder { public static final int PREVENT_NORTH = 0x12c0120; diff --git a/Server/src/main/java/core/game/world/map/path/ProjectilePathfinder.java b/Server/src/main/core/game/world/map/path/ProjectilePathfinder.java similarity index 100% rename from Server/src/main/java/core/game/world/map/path/ProjectilePathfinder.java rename to Server/src/main/core/game/world/map/path/ProjectilePathfinder.java diff --git a/Server/src/main/kotlin/rs09/game/world/map/path/SmartPathfinder.kt b/Server/src/main/core/game/world/map/path/SmartPathfinder.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/world/map/path/SmartPathfinder.kt rename to Server/src/main/core/game/world/map/path/SmartPathfinder.kt index 24bfebccc..ece18eef2 100644 --- a/Server/src/main/kotlin/rs09/game/world/map/path/SmartPathfinder.kt +++ b/Server/src/main/core/game/world/map/path/SmartPathfinder.kt @@ -1,11 +1,7 @@ -package rs09.game.world.map.path +package core.game.world.map.path import core.game.world.map.Location import core.game.world.map.Point -import core.game.world.map.path.ClipMaskSupplier -import core.game.world.map.path.Path -import core.game.world.map.path.Pathfinder -import core.game.world.map.path.Pathfinder.* class SmartPathfinder /** diff --git a/Server/src/main/java/core/game/world/map/zone/MapZone.java b/Server/src/main/core/game/world/map/zone/MapZone.java similarity index 99% rename from Server/src/main/java/core/game/world/map/zone/MapZone.java rename to Server/src/main/core/game/world/map/zone/MapZone.java index 8ab49ec8a..630d06194 100644 --- a/Server/src/main/java/core/game/world/map/zone/MapZone.java +++ b/Server/src/main/core/game/world/map/zone/MapZone.java @@ -1,6 +1,6 @@ package core.game.world.map.zone; -import core.game.node.entity.skill.summoning.familiar.Familiar; +import content.global.skill.summoning.familiar.Familiar; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/world/map/zone/RegionZone.java b/Server/src/main/core/game/world/map/zone/RegionZone.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/RegionZone.java rename to Server/src/main/core/game/world/map/zone/RegionZone.java diff --git a/Server/src/main/java/core/game/world/map/zone/Zone.java b/Server/src/main/core/game/world/map/zone/Zone.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/Zone.java rename to Server/src/main/core/game/world/map/zone/Zone.java diff --git a/Server/src/main/java/core/game/world/map/zone/ZoneBorders.java b/Server/src/main/core/game/world/map/zone/ZoneBorders.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/ZoneBorders.java rename to Server/src/main/core/game/world/map/zone/ZoneBorders.java diff --git a/Server/src/main/java/core/game/world/map/zone/ZoneBuilder.java b/Server/src/main/core/game/world/map/zone/ZoneBuilder.java similarity index 94% rename from Server/src/main/java/core/game/world/map/zone/ZoneBuilder.java rename to Server/src/main/core/game/world/map/zone/ZoneBuilder.java index 33aa0f2cb..0fd373e54 100644 --- a/Server/src/main/java/core/game/world/map/zone/ZoneBuilder.java +++ b/Server/src/main/core/game/world/map/zone/ZoneBuilder.java @@ -1,6 +1,6 @@ package core.game.world.map.zone; -import api.StartupListener; +import core.api.StartupListener; import core.game.world.map.zone.impl.*; diff --git a/Server/src/main/java/core/game/world/map/zone/ZoneMonitor.java b/Server/src/main/core/game/world/map/zone/ZoneMonitor.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/ZoneMonitor.java rename to Server/src/main/core/game/world/map/zone/ZoneMonitor.java diff --git a/Server/src/main/java/core/game/world/map/zone/ZoneRestriction.java b/Server/src/main/core/game/world/map/zone/ZoneRestriction.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/ZoneRestriction.java rename to Server/src/main/core/game/world/map/zone/ZoneRestriction.java diff --git a/Server/src/main/java/core/game/world/map/zone/ZoneType.java b/Server/src/main/core/game/world/map/zone/ZoneType.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/ZoneType.java rename to Server/src/main/core/game/world/map/zone/ZoneType.java diff --git a/Server/src/main/java/core/game/world/map/zone/impl/BankZone.java b/Server/src/main/core/game/world/map/zone/impl/BankZone.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/impl/BankZone.java rename to Server/src/main/core/game/world/map/zone/impl/BankZone.java diff --git a/Server/src/main/java/core/game/world/map/zone/impl/DarkZone.java b/Server/src/main/core/game/world/map/zone/impl/DarkZone.java similarity index 94% rename from Server/src/main/java/core/game/world/map/zone/impl/DarkZone.java rename to Server/src/main/core/game/world/map/zone/impl/DarkZone.java index b33f8aa1a..6cf4c4ab8 100644 --- a/Server/src/main/java/core/game/world/map/zone/impl/DarkZone.java +++ b/Server/src/main/core/game/world/map/zone/impl/DarkZone.java @@ -1,9 +1,10 @@ package core.game.world.map.zone.impl; -import api.events.EventHook; -import api.events.UseWithEvent; +import content.global.skill.skillcapeperks.SkillcapePerks; +import core.game.event.EventHook; +import core.game.event.UseWithEvent; import core.game.component.Component; -import core.game.content.global.LightSource; +import content.data.LightSource; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; @@ -17,12 +18,11 @@ import core.game.world.map.zone.RegionZone; import core.game.world.map.zone.ZoneBorders; import kotlin.Unit; import org.jetbrains.annotations.NotNull; -import rs09.game.Event; -import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; -import rs09.game.world.GameWorld; +import core.api.Event; +import core.game.world.GameWorld; -import static api.ContentAPIKt.getItemName; -import static api.ContentAPIKt.runTask; +import static core.api.ContentAPIKt.getItemName; +import static core.api.ContentAPIKt.runTask; /** * Handles a dark area. diff --git a/Server/src/main/java/core/game/world/map/zone/impl/KaramjaZone.java b/Server/src/main/core/game/world/map/zone/impl/KaramjaZone.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/impl/KaramjaZone.java rename to Server/src/main/core/game/world/map/zone/impl/KaramjaZone.java diff --git a/Server/src/main/java/core/game/world/map/zone/impl/ModeratorZone.java b/Server/src/main/core/game/world/map/zone/impl/ModeratorZone.java similarity index 99% rename from Server/src/main/java/core/game/world/map/zone/impl/ModeratorZone.java rename to Server/src/main/core/game/world/map/zone/impl/ModeratorZone.java index 01af31d33..1c8b113dd 100644 --- a/Server/src/main/java/core/game/world/map/zone/impl/ModeratorZone.java +++ b/Server/src/main/core/game/world/map/zone/impl/ModeratorZone.java @@ -1,6 +1,6 @@ package core.game.world.map.zone.impl; -import rs09.ServerConstants; +import core.ServerConstants; import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; diff --git a/Server/src/main/java/core/game/world/map/zone/impl/MultiwayCombatZone.java b/Server/src/main/core/game/world/map/zone/impl/MultiwayCombatZone.java similarity index 100% rename from Server/src/main/java/core/game/world/map/zone/impl/MultiwayCombatZone.java rename to Server/src/main/core/game/world/map/zone/impl/MultiwayCombatZone.java diff --git a/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java b/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java similarity index 92% rename from Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java rename to Server/src/main/core/game/world/map/zone/impl/WildernessZone.java index 37f734795..6d38f312b 100644 --- a/Server/src/main/java/core/game/world/map/zone/impl/WildernessZone.java +++ b/Server/src/main/core/game/world/map/zone/impl/WildernessZone.java @@ -1,40 +1,27 @@ package core.game.world.map.zone.impl; import core.game.component.Component; -import core.game.container.Container; -import core.game.content.ttrail.UriNPC; import core.game.interaction.Option; -import core.game.interaction.item.brawling_gloves.BrawlingGloves; +import content.global.handlers.item.equipment.brawling_gloves.BrawlingGloves; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.CombatStyle; -import core.game.node.entity.combat.DeathTask; import core.game.node.entity.npc.NPC; import core.game.node.entity.npc.agg.AggressiveBehavior; import core.game.node.entity.npc.agg.AggressiveHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; -import core.game.node.entity.player.link.IronmanMode; -import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.item.GroundItem; +import content.global.skill.summoning.familiar.Familiar; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; -import core.game.world.map.zone.RegionZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneRestriction; import core.tools.RandomFunction; import org.rs09.consts.NPCs; -import rs09.game.system.config.NPCConfigParser; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; - -import java.util.ArrayList; -import java.util.List; - -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_BASE; -import static rs09.game.node.entity.player.info.stats.StatAttributeKeysKt.STATS_DEATHS; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; /** diff --git a/Server/src/main/java/core/game/world/objectparser/ObjectParser.java b/Server/src/main/core/game/world/objectparser/ObjectParser.java similarity index 94% rename from Server/src/main/java/core/game/world/objectparser/ObjectParser.java rename to Server/src/main/core/game/world/objectparser/ObjectParser.java index 0ffe690b5..0fcec7846 100644 --- a/Server/src/main/java/core/game/world/objectparser/ObjectParser.java +++ b/Server/src/main/core/game/world/objectparser/ObjectParser.java @@ -1,18 +1,13 @@ package core.game.world.objectparser; -import api.StartupListener; -import rs09.ServerConstants; +import core.api.StartupListener; +import core.ServerConstants; import core.game.node.scenery.Scenery; -import rs09.game.world.GameWorld; import core.game.world.map.build.LandscapeParser; -import core.plugin.Initializable; -import core.plugin.Plugin; -import core.plugin.PluginManifest; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import core.plugin.CorePluginTypes.StartupPlugin; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; diff --git a/Server/src/main/kotlin/rs09/game/world/repository/DisconnectionQueue.kt b/Server/src/main/core/game/world/repository/DisconnectionQueue.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/world/repository/DisconnectionQueue.kt rename to Server/src/main/core/game/world/repository/DisconnectionQueue.kt index 0ec203d2f..9cfaf5ae3 100644 --- a/Server/src/main/kotlin/rs09/game/world/repository/DisconnectionQueue.kt +++ b/Server/src/main/core/game/world/repository/DisconnectionQueue.kt @@ -1,10 +1,10 @@ -package rs09.game.world.repository +package core.game.world.repository import core.game.node.entity.player.Player import core.game.node.entity.player.info.login.PlayerParser import core.game.system.task.TaskExecutor -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.tools.SystemLogger +import core.game.world.GameWorld import java.util.* import java.util.concurrent.ConcurrentHashMap diff --git a/Server/src/main/java/core/game/world/repository/InitializationEntry.java b/Server/src/main/core/game/world/repository/InitializationEntry.java similarity index 100% rename from Server/src/main/java/core/game/world/repository/InitializationEntry.java rename to Server/src/main/core/game/world/repository/InitializationEntry.java diff --git a/Server/src/main/java/core/game/world/repository/InitializingNodeList.java b/Server/src/main/core/game/world/repository/InitializingNodeList.java similarity index 100% rename from Server/src/main/java/core/game/world/repository/InitializingNodeList.java rename to Server/src/main/core/game/world/repository/InitializingNodeList.java diff --git a/Server/src/main/java/core/game/world/repository/NodeList.java b/Server/src/main/core/game/world/repository/NodeList.java similarity index 100% rename from Server/src/main/java/core/game/world/repository/NodeList.java rename to Server/src/main/core/game/world/repository/NodeList.java diff --git a/Server/src/main/java/core/game/world/repository/NodeListIterator.java b/Server/src/main/core/game/world/repository/NodeListIterator.java similarity index 100% rename from Server/src/main/java/core/game/world/repository/NodeListIterator.java rename to Server/src/main/core/game/world/repository/NodeListIterator.java diff --git a/Server/src/main/kotlin/rs09/game/world/repository/Repository.kt b/Server/src/main/core/game/world/repository/Repository.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/world/repository/Repository.kt rename to Server/src/main/core/game/world/repository/Repository.kt index 642be267b..6f4b3cd3d 100644 --- a/Server/src/main/kotlin/rs09/game/world/repository/Repository.kt +++ b/Server/src/main/core/game/world/repository/Repository.kt @@ -1,13 +1,12 @@ -package rs09.game.world.repository +package core.game.world.repository import core.game.node.entity.npc.NPC -import core.game.node.entity.npc.revenant.RevenantNPC +import content.region.wilderness.handlers.revenants.RevenantNPC import core.game.node.entity.player.Player import core.game.world.map.Location import core.game.world.map.RegionManager -import core.game.world.repository.NodeList -import rs09.ServerConstants -import rs09.game.world.update.UpdateSequence +import core.ServerConstants +import core.game.world.update.UpdateSequence import java.util.* import java.util.concurrent.CopyOnWriteArrayList diff --git a/Server/src/main/kotlin/rs09/game/world/update/MapChunkRenderer.kt b/Server/src/main/core/game/world/update/MapChunkRenderer.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/world/update/MapChunkRenderer.kt rename to Server/src/main/core/game/world/update/MapChunkRenderer.kt index 1f356ed2e..b9e20112a 100644 --- a/Server/src/main/kotlin/rs09/game/world/update/MapChunkRenderer.kt +++ b/Server/src/main/core/game/world/update/MapChunkRenderer.kt @@ -1,4 +1,4 @@ -package rs09.game.world.update +package core.game.world.update import core.game.node.entity.player.Player import core.game.world.map.RegionChunk diff --git a/Server/src/main/kotlin/rs09/game/world/update/NPCRenderer.kt b/Server/src/main/core/game/world/update/NPCRenderer.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/world/update/NPCRenderer.kt rename to Server/src/main/core/game/world/update/NPCRenderer.kt index 14afa209c..dbb2fd01c 100644 --- a/Server/src/main/kotlin/rs09/game/world/update/NPCRenderer.kt +++ b/Server/src/main/core/game/world/update/NPCRenderer.kt @@ -1,11 +1,11 @@ -package rs09.game.world.update +package core.game.world.update import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.world.map.RegionManager import core.net.packet.IoBuffer import core.net.packet.PacketHeader -import rs09.game.world.GameWorld +import core.game.world.GameWorld import java.nio.ByteBuffer import java.util.* diff --git a/Server/src/main/kotlin/rs09/game/world/update/PlayerRenderer.kt b/Server/src/main/core/game/world/update/PlayerRenderer.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/world/update/PlayerRenderer.kt rename to Server/src/main/core/game/world/update/PlayerRenderer.kt index 15d92b9a6..0fb1068bc 100644 --- a/Server/src/main/kotlin/rs09/game/world/update/PlayerRenderer.kt +++ b/Server/src/main/core/game/world/update/PlayerRenderer.kt @@ -1,4 +1,4 @@ -package rs09.game.world.update +package core.game.world.update import core.game.node.entity.player.Player import core.game.node.entity.player.info.RenderInfo diff --git a/Server/src/main/kotlin/rs09/game/world/update/UpdateMasks.kt b/Server/src/main/core/game/world/update/UpdateMasks.kt similarity index 99% rename from Server/src/main/kotlin/rs09/game/world/update/UpdateMasks.kt rename to Server/src/main/core/game/world/update/UpdateMasks.kt index b86573eab..feb8eddc5 100644 --- a/Server/src/main/kotlin/rs09/game/world/update/UpdateMasks.kt +++ b/Server/src/main/core/game/world/update/UpdateMasks.kt @@ -1,4 +1,4 @@ -package rs09.game.world.update +package core.game.world.update import core.game.node.entity.Entity import core.game.node.entity.combat.ImpactHandler diff --git a/Server/src/main/kotlin/rs09/game/world/update/UpdateSequence.kt b/Server/src/main/core/game/world/update/UpdateSequence.kt similarity index 85% rename from Server/src/main/kotlin/rs09/game/world/update/UpdateSequence.kt rename to Server/src/main/core/game/world/update/UpdateSequence.kt index ec49ebb54..0c0e19448 100644 --- a/Server/src/main/kotlin/rs09/game/world/update/UpdateSequence.kt +++ b/Server/src/main/core/game/world/update/UpdateSequence.kt @@ -1,4 +1,4 @@ -package rs09.game.world.update +package core.game.world.update import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player @@ -8,13 +8,7 @@ import core.game.world.repository.InitializingNodeList import core.net.packet.PacketRepository import core.net.packet.context.PlayerContext import core.net.packet.out.ClearMinimapFlag -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch -import rs09.game.world.repository.Repository -import java.util.concurrent.CountDownLatch -import java.util.concurrent.Executors -import java.util.concurrent.TimeUnit -import java.util.function.Consumer +import core.game.world.repository.Repository /** * The entity update sequence. diff --git a/Server/src/main/java/core/game/world/update/flag/FlagContext.java b/Server/src/main/core/game/world/update/flag/FlagContext.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/FlagContext.java rename to Server/src/main/core/game/world/update/flag/FlagContext.java diff --git a/Server/src/main/java/core/game/world/update/flag/PlayerFlags.java b/Server/src/main/core/game/world/update/flag/PlayerFlags.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/PlayerFlags.java rename to Server/src/main/core/game/world/update/flag/PlayerFlags.java diff --git a/Server/src/main/java/core/game/world/update/flag/UpdateFlag.java b/Server/src/main/core/game/world/update/flag/UpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/UpdateFlag.java rename to Server/src/main/core/game/world/update/flag/UpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/AnimateObjectUpdateFlag.java b/Server/src/main/core/game/world/update/flag/chunk/AnimateObjectUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/chunk/AnimateObjectUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/chunk/AnimateObjectUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/GraphicUpdateFlag.java b/Server/src/main/core/game/world/update/flag/chunk/GraphicUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/chunk/GraphicUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/chunk/GraphicUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/ItemUpdateFlag.java b/Server/src/main/core/game/world/update/flag/chunk/ItemUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/chunk/ItemUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/chunk/ItemUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java b/Server/src/main/core/game/world/update/flag/chunk/ObjectUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/chunk/ObjectUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/ProjectileUpdateFlag.java b/Server/src/main/core/game/world/update/flag/chunk/ProjectileUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/chunk/ProjectileUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/chunk/ProjectileUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/context/Animation.java b/Server/src/main/core/game/world/update/flag/context/Animation.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/context/Animation.java rename to Server/src/main/core/game/world/update/flag/context/Animation.java diff --git a/Server/src/main/java/core/game/world/update/flag/context/ChatMessage.kt b/Server/src/main/core/game/world/update/flag/context/ChatMessage.kt similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/context/ChatMessage.kt rename to Server/src/main/core/game/world/update/flag/context/ChatMessage.kt diff --git a/Server/src/main/java/core/game/world/update/flag/context/Graphics.java b/Server/src/main/core/game/world/update/flag/context/Graphics.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/context/Graphics.java rename to Server/src/main/core/game/world/update/flag/context/Graphics.java diff --git a/Server/src/main/java/core/game/world/update/flag/context/HitMark.java b/Server/src/main/core/game/world/update/flag/context/HitMark.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/context/HitMark.java rename to Server/src/main/core/game/world/update/flag/context/HitMark.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCAnimation.java b/Server/src/main/core/game/world/update/flag/npc/NPCAnimation.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCAnimation.java rename to Server/src/main/core/game/world/update/flag/npc/NPCAnimation.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCFaceEntity.java b/Server/src/main/core/game/world/update/flag/npc/NPCFaceEntity.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCFaceEntity.java rename to Server/src/main/core/game/world/update/flag/npc/NPCFaceEntity.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCFaceLocation.java b/Server/src/main/core/game/world/update/flag/npc/NPCFaceLocation.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCFaceLocation.java rename to Server/src/main/core/game/world/update/flag/npc/NPCFaceLocation.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCForceChat.java b/Server/src/main/core/game/world/update/flag/npc/NPCForceChat.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCForceChat.java rename to Server/src/main/core/game/world/update/flag/npc/NPCForceChat.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCGraphic.java b/Server/src/main/core/game/world/update/flag/npc/NPCGraphic.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCGraphic.java rename to Server/src/main/core/game/world/update/flag/npc/NPCGraphic.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCHitFlag.java b/Server/src/main/core/game/world/update/flag/npc/NPCHitFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCHitFlag.java rename to Server/src/main/core/game/world/update/flag/npc/NPCHitFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCHitFlag1.java b/Server/src/main/core/game/world/update/flag/npc/NPCHitFlag1.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCHitFlag1.java rename to Server/src/main/core/game/world/update/flag/npc/NPCHitFlag1.java diff --git a/Server/src/main/java/core/game/world/update/flag/npc/NPCSwitchId.java b/Server/src/main/core/game/world/update/flag/npc/NPCSwitchId.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/npc/NPCSwitchId.java rename to Server/src/main/core/game/world/update/flag/npc/NPCSwitchId.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/AnimationFlag.java b/Server/src/main/core/game/world/update/flag/player/AnimationFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/AnimationFlag.java rename to Server/src/main/core/game/world/update/flag/player/AnimationFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/AppearanceFlag.java b/Server/src/main/core/game/world/update/flag/player/AppearanceFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/AppearanceFlag.java rename to Server/src/main/core/game/world/update/flag/player/AppearanceFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/ChatFlag.java b/Server/src/main/core/game/world/update/flag/player/ChatFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/ChatFlag.java rename to Server/src/main/core/game/world/update/flag/player/ChatFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/FaceEntityFlag.java b/Server/src/main/core/game/world/update/flag/player/FaceEntityFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/FaceEntityFlag.java rename to Server/src/main/core/game/world/update/flag/player/FaceEntityFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java b/Server/src/main/core/game/world/update/flag/player/FaceLocationFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java rename to Server/src/main/core/game/world/update/flag/player/FaceLocationFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/ForceChatFlag.java b/Server/src/main/core/game/world/update/flag/player/ForceChatFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/ForceChatFlag.java rename to Server/src/main/core/game/world/update/flag/player/ForceChatFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/ForceMovementFlag.java b/Server/src/main/core/game/world/update/flag/player/ForceMovementFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/ForceMovementFlag.java rename to Server/src/main/core/game/world/update/flag/player/ForceMovementFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/GraphicFlag.java b/Server/src/main/core/game/world/update/flag/player/GraphicFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/GraphicFlag.java rename to Server/src/main/core/game/world/update/flag/player/GraphicFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/HitUpdateFlag.java b/Server/src/main/core/game/world/update/flag/player/HitUpdateFlag.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/HitUpdateFlag.java rename to Server/src/main/core/game/world/update/flag/player/HitUpdateFlag.java diff --git a/Server/src/main/java/core/game/world/update/flag/player/HitUpdateFlag1.java b/Server/src/main/core/game/world/update/flag/player/HitUpdateFlag1.java similarity index 100% rename from Server/src/main/java/core/game/world/update/flag/player/HitUpdateFlag1.java rename to Server/src/main/core/game/world/update/flag/player/HitUpdateFlag1.java diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEvent.kt b/Server/src/main/core/game/worldevents/WorldEvent.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEvent.kt rename to Server/src/main/core/game/worldevents/WorldEvent.kt index e4e90a8ca..fae25a3dd 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEvent.kt +++ b/Server/src/main/core/game/worldevents/WorldEvent.kt @@ -1,10 +1,10 @@ -package rs09.game.content.global.worldevents +package core.game.worldevents -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import core.plugin.Plugin import org.json.simple.JSONObject -import rs09.ServerStore -import rs09.plugin.ClassScanner +import core.ServerStore +import core.plugin.ClassScanner import java.util.* /** @@ -70,7 +70,7 @@ class PluginSet(vararg val plugins: Plugin<*>){ * Static object for storing instances of loaded events. */ object WorldEvents { - private var events = hashMapOf() + private var events = hashMapOf() fun add(event: WorldEvent){ events.put(event.name.toLowerCase(),event) diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEventInitializer.kt b/Server/src/main/core/game/worldevents/WorldEventInitializer.kt similarity index 96% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEventInitializer.kt rename to Server/src/main/core/game/worldevents/WorldEventInitializer.kt index cb8fe69c0..2e0c7b5cb 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/WorldEventInitializer.kt +++ b/Server/src/main/core/game/worldevents/WorldEventInitializer.kt @@ -1,4 +1,4 @@ -package rs09.game.content.global.worldevents +package core.game.worldevents import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/christmas/Giftmas.kt b/Server/src/main/core/game/worldevents/holiday/christmas/Giftmas.kt similarity index 91% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/christmas/Giftmas.kt rename to Server/src/main/core/game/worldevents/holiday/christmas/Giftmas.kt index 5af3bdb4e..76749653b 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/christmas/Giftmas.kt +++ b/Server/src/main/core/game/worldevents/holiday/christmas/Giftmas.kt @@ -1,25 +1,25 @@ -package rs09.game.content.global.worldevents.holiday.christmas +package core.game.worldevents.holiday.christmas -import api.* -import api.events.EventHook -import api.events.XPGainEvent +import core.api.* +import core.game.event.EventHook +import core.game.event.XPGainEvent import core.game.node.entity.Entity import core.game.node.entity.player.Player import core.tools.RandomFunction import org.json.simple.JSONObject import org.rs09.consts.Items -import rs09.ServerStore -import rs09.ServerStore.Companion.getBoolean -import rs09.ServerStore.Companion.getInt -import rs09.game.Event -import rs09.game.content.global.WeightBasedTable -import rs09.game.content.global.WeightedItem -import rs09.game.content.global.worldevents.WorldEvents -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListener -import rs09.game.system.command.Privilege -import rs09.game.world.repository.Repository -import rs09.tools.stringtools.colorize +import core.ServerStore +import core.ServerStore.Companion.getBoolean +import core.ServerStore.Companion.getInt +import core.api.Event +import core.api.utils.WeightBasedTable +import core.api.utils.WeightedItem +import core.game.worldevents.WorldEvents +import core.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.system.command.Privilege +import core.game.world.repository.Repository +import core.tools.colorize class Giftmas : Commands, StartupListener, LoginListener, InteractionListener { override fun startup() { diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterBunnyDialogueFile.kt b/Server/src/main/core/game/worldevents/holiday/easter/EasterBunnyDialogueFile.kt similarity index 87% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterBunnyDialogueFile.kt rename to Server/src/main/core/game/worldevents/holiday/easter/EasterBunnyDialogueFile.kt index b8a43cead..27969e6e8 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterBunnyDialogueFile.kt +++ b/Server/src/main/core/game/worldevents/holiday/easter/EasterBunnyDialogueFile.kt @@ -1,13 +1,13 @@ -package rs09.game.content.global.worldevents.holiday.easter +package core.game.worldevents.holiday.easter -import core.game.content.dialogue.FacialExpression +import core.game.dialogue.FacialExpression import core.game.node.entity.player.link.emote.Emotes import core.game.node.item.GroundItemManager import core.game.node.item.Item import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.global.worldevents.WorldEvents -import rs09.tools.END_DIALOGUE +import core.game.dialogue.DialogueFile +import core.game.worldevents.WorldEvents +import core.tools.END_DIALOGUE class EasterBunnyDialogueFile(val NEED_BASKET : Boolean) : DialogueFile() { val EGG_ATTRIBUTE = "/save:easter:eggs" @@ -16,12 +16,12 @@ class EasterBunnyDialogueFile(val NEED_BASKET : Boolean) : DialogueFile() { if(NEED_BASKET){ when(stage++){ 0 -> npc("Hello, adventurer! Thank goodness you're here!") - 1 -> player(FacialExpression.THINKING,"Thanks goodness I'M here?") + 1 -> player(core.game.dialogue.FacialExpression.THINKING,"Thanks goodness I'M here?") 2 -> npc("Yes, yes, I need your help, you see!") 3 -> npc("I have lost ALL of my eggs. What a terrible thing.") 4 -> npc("Us easter bunnies rely on EGGS to live.") 5 -> npc("Take this basket, please, and do me a kindness.") - 6 -> player(FacialExpression.THINKING,"What kindness might that be?") + 6 -> player(core.game.dialogue.FacialExpression.THINKING,"What kindness might that be?") 7 -> npc("I need you to try and gather up as many of my","lost eggs as you can.") 8 -> npc("Please, for me? I will reward you for your time.") 9 -> player("Fine, I suppose I will.") @@ -39,8 +39,8 @@ class EasterBunnyDialogueFile(val NEED_BASKET : Boolean) : DialogueFile() { when (stage) { 0 -> options("Ask about rewards", "Ask about egg location").also { stage++ } 1 -> when (buttonID) { - 1 -> player(FacialExpression.THINKING, "What kind of rewards can I claim?").also { stage = 10 } - 2 -> player(FacialExpression.THINKING, "Where were some eggs last seen?").also { stage = 20 } + 1 -> player(core.game.dialogue.FacialExpression.THINKING, "What kind of rewards can I claim?").also { stage = 10 } + 2 -> player(core.game.dialogue.FacialExpression.THINKING, "Where were some eggs last seen?").also { stage = 20 } } 10 -> { diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEvent.kt b/Server/src/main/core/game/worldevents/holiday/easter/EasterEvent.kt similarity index 95% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEvent.kt rename to Server/src/main/core/game/worldevents/holiday/easter/EasterEvent.kt index cc634e9ed..63a904a72 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEvent.kt +++ b/Server/src/main/core/game/worldevents/holiday/easter/EasterEvent.kt @@ -1,4 +1,4 @@ -package rs09.game.content.global.worldevents.holiday.easter +package core.game.worldevents.holiday.easter import core.game.node.entity.npc.NPC import core.game.node.item.GroundItem @@ -9,11 +9,11 @@ import core.game.world.map.Direction import core.game.world.map.Location import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.content.global.worldevents.WorldEvent -import rs09.game.system.config.GroundSpawnLoader -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.tools.secondsToTicks +import core.game.worldevents.WorldEvent +import core.game.system.config.GroundSpawnLoader +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.tools.secondsToTicks import java.util.* class EasterEvent : WorldEvent("easter") { diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEventListeners.kt b/Server/src/main/core/game/worldevents/holiday/easter/EasterEventListeners.kt similarity index 84% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEventListeners.kt rename to Server/src/main/core/game/worldevents/holiday/easter/EasterEventListeners.kt index 35a907c9f..4dd777cf3 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/easter/EasterEventListeners.kt +++ b/Server/src/main/core/game/worldevents/holiday/easter/EasterEventListeners.kt @@ -1,12 +1,12 @@ -package rs09.game.content.global.worldevents.holiday.easter +package core.game.worldevents.holiday.easter import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.item.GroundItemManager import org.rs09.consts.Items import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType +import core.game.interaction.InteractionListener +import core.game.interaction.IntType class EasterEventListeners : InteractionListener { @@ -15,7 +15,7 @@ class EasterEventListeners : InteractionListener { override fun defineListeners() { - on(eggs, IntType.ITEM, "take"){player, node -> + on(eggs, IntType.ITEM, "take"){ player, node -> player.pulseManager.run(object : MovementPulse(player,node, DestinationFlag.ITEM){ override fun pulse(): Boolean { if(player.inventory.contains(Items.BASKET_OF_EGGS_4565,1) || player.equipment.contains(Items.BASKET_OF_EGGS_4565,1)){ @@ -32,13 +32,13 @@ class EasterEventListeners : InteractionListener { return@on true } - on(Items.BASKET_OF_EGGS_4565, IntType.ITEM, "operate"){player, node -> + on(Items.BASKET_OF_EGGS_4565, IntType.ITEM, "operate"){ player, node -> val numEggs = player.getAttribute(EGG_ATTRIBUTE) ?: 0 player.dialogueInterpreter.sendDialogue("You have $numEggs eggs in the basket.") return@on true } - on(NPCs.EASTER_BUNNY_7197, IntType.NPC, "talk-to"){player, node -> + on(NPCs.EASTER_BUNNY_7197, IntType.NPC, "talk-to"){ player, node -> val npc = node.asNpc() npc.faceLocation(player.location) val NEED_BASKET = !(player!!.inventory.contains(Items.BASKET_OF_EGGS_4565,1) || player!!.equipment.contains(Items.BASKET_OF_EGGS_4565,1) || player!!.bank.contains(Items.BASKET_OF_EGGS_4565,1)) diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/CandyRewardPlugin.kt b/Server/src/main/core/game/worldevents/holiday/halloween/CandyRewardPlugin.kt similarity index 83% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/CandyRewardPlugin.kt rename to Server/src/main/core/game/worldevents/holiday/halloween/CandyRewardPlugin.kt index 10c91e2b4..aaffe9cff 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/CandyRewardPlugin.kt +++ b/Server/src/main/core/game/worldevents/holiday/halloween/CandyRewardPlugin.kt @@ -1,12 +1,12 @@ -package rs09.game.content.global.worldevents.holiday.halloween +package core.game.worldevents.holiday.halloween import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.tools.RandomFunction import core.game.node.entity.skill.Skills -import rs09.plugin.CorePluginTypes.XPGainPlugin -import rs09.tools.stringtools.colorize +import core.plugin.CorePluginTypes.XPGainPlugin +import core.tools.colorize class CandyRewardPlugin : XPGainPlugin(){ override fun run(player: Player, skill: Int, amount: Double) { diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/GrimDialogue.kt b/Server/src/main/core/game/worldevents/holiday/halloween/GrimDialogue.kt similarity index 67% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/GrimDialogue.kt rename to Server/src/main/core/game/worldevents/holiday/halloween/GrimDialogue.kt index 79c03e3b6..3a9d8fbe3 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/GrimDialogue.kt +++ b/Server/src/main/core/game/worldevents/holiday/halloween/GrimDialogue.kt @@ -1,23 +1,20 @@ -package rs09.game.content.global.worldevents.holiday.halloween +package core.game.worldevents.holiday.halloween -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.combat.ImpactHandler +import core.api.* import core.game.node.entity.player.Player import core.game.node.entity.player.link.emote.Emotes import core.game.node.item.Item -import rs09.ServerStore -import rs09.ServerStore.Companion.getInt -import rs09.tools.END_DIALOGUE +import core.ServerStore +import core.ServerStore.Companion.getInt +import core.tools.END_DIALOGUE /** * Handles grim's dialogue for the 2021 halloween event. */ -class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ +class GrimDialogue(player: Player? = null) : core.game.dialogue.DialoguePlugin(player){ var firstSpeak = true val candy = Item(14084) - override fun newInstance(player: Player?): DialoguePlugin { + override fun newInstance(player: Player?): core.game.dialogue.DialoguePlugin { return GrimDialogue(player) } @@ -37,25 +34,25 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ override fun handle(interfaceId: Int, buttonId: Int): Boolean { when(stage){ - 0 -> player(FacialExpression.AFRAID,"W-what... what do you want with","me?").also { stage++ } + 0 -> player(core.game.dialogue.FacialExpression.AFRAID,"W-what... what do you want with","me?").also { stage++ } 1 -> npc("I want you.... I NEED you....").also { stage++ } 2 -> npc("TO BRING ME CANDY! Yes, candy...").also { stage++ } - 3 -> player(FacialExpression.THINKING,"Candy...? You want me to bring","you... candy?").also { stage++ } + 3 -> player(core.game.dialogue.FacialExpression.THINKING,"Candy...? You want me to bring","you... candy?").also { stage++ } 4 -> npc("Yes, candy! Did I not speak clearly","enough?").also { stage++ } - 5 -> player(FacialExpression.ASKING,"Well how do I even get candy?").also { stage++ } - 6 -> npcl(FacialExpression.NEUTRAL,"It's Hallowe'en, you fool. Everyone's giving out candy.").also { stage++ } + 5 -> player(core.game.dialogue.FacialExpression.ASKING,"Well how do I even get candy?").also { stage++ } + 6 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL,"It's Hallowe'en, you fool. Everyone's giving out candy.").also { stage++ } 7 -> npc("You'll need to go and ask them for it each day.").also { stage++ } 8 -> npc("You'll also need to be careful...","Something vile is on the prowl.").also { stage++ } - 9 -> player(FacialExpression.THINKING,"And what will I get in exchange?").also { stage++ } + 9 -> player(core.game.dialogue.FacialExpression.THINKING,"And what will I get in exchange?").also { stage++ } 10 -> npc("Well I won't KILL YOU for starters.").also { stage++ } - 11 -> player(FacialExpression.ANGRY_WITH_SMILE, "Is that it?!").also { stage++ } + 11 -> player(core.game.dialogue.FacialExpression.ANGRY_WITH_SMILE, "Is that it?!").also { stage++ } 12 -> npc("I've prepared a few... rewards, as well.").also { stage++ } - 13 -> player(FacialExpression.AMAZED, "YOU MEAN CREDITS?!").also { stage++ } + 13 -> player(core.game.dialogue.FacialExpression.AMAZED, "YOU MEAN CREDITS?!").also { stage++ } 14 -> npc("No, we're not doing that again.").also { stage++ } - 15 -> player(FacialExpression.SAD,"Oh.").also { stage++ } - 16 -> player(FacialExpression.NEUTRAL, "Ok, so what kind of rewards?").also { stage++ } - 17 -> npcl(FacialExpression.NEUTRAL, "I've fashioned a special-made staff to give out for this year's event.").also { stage++ } - 18 -> npcl(FacialExpression.NEUTRAL, "It is a decorative symbol of your engagement in this activity. Bring me candies, and it can be yours.").also { player.setAttribute("/save:hween2:grim_spoken",true); stage++ } + 15 -> player(core.game.dialogue.FacialExpression.SAD,"Oh.").also { stage++ } + 16 -> player(core.game.dialogue.FacialExpression.NEUTRAL, "Ok, so what kind of rewards?").also { stage++ } + 17 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "I've fashioned a special-made staff to give out for this year's event.").also { stage++ } + 18 -> npcl(core.game.dialogue.FacialExpression.NEUTRAL, "It is a decorative symbol of your engagement in this activity. Bring me candies, and it can be yours.").also { player.setAttribute("/save:hween2:grim_spoken",true); stage++ } 19 -> npc("NOW GET TO WORK!").also { player.setAttribute("/save:hween2:grim_spoken",true); stage = 1000 } @@ -63,10 +60,10 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ 101 -> if(player.inventory.containsItem(candy)){ player("Yes, I do! Here you go.").also { stage = 150 } } else { - player(FacialExpression.SAD, "No, I don't.").also { stage++ } + player(core.game.dialogue.FacialExpression.SAD, "No, I don't.").also { stage++ } } 102 -> npc("A shame, indeed. Your candy totals right now are ${getCandyTotals(player)}.").also { stage++ } - 103 -> player(FacialExpression.FRIENDLY, "I'd like to see the reward shop, please.").also { stage++ } + 103 -> player(core.game.dialogue.FacialExpression.FRIENDLY, "I'd like to see the reward shop, please.").also { stage++ } 104, 105 -> handleRewardShop(player, buttonId) @@ -74,7 +71,7 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ val candies = player.inventory.getAmount(candy) player.inventory.remove(Item(candy.id,candies)) addToCandyTotal(player, candies) - npcl(FacialExpression.NEUTRAL, "Excellent, you now have ${getCandyTotals(player)} candies.") + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "Excellent, you now have ${getCandyTotals(player)} candies.") stage = 103 } @@ -96,11 +93,11 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff of the Raven (40c)", "Trick Emote (10c)").also { stage++ } 105 -> when(buttonId) { 1 -> if (canPurchase(player, 40)) buyStaff(player) else npc( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that." ) 2 -> if (canPurchase(player, 10)) buyEmote(player) else npc( - FacialExpression.NEUTRAL, + core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that" ) } @@ -110,9 +107,9 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Purple Recolor (10c)", "Staff Orange Recolor (10c)", "Trick Emote (10c)").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 3 -> if(canPurchase(player, 10)) buyEmote(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") + 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 3 -> if(canPurchase(player, 10)) buyEmote(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") } } } @@ -120,8 +117,8 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Orange Recolor (10c)", "Trick Emote (10c)").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> if(canPurchase(player, 10)) buyEmote(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") + 1 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> if(canPurchase(player, 10)) buyEmote(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") } } } @@ -129,8 +126,8 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Purple Recolor (10c)", "Trick Emote (10c)").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> if(canPurchase(player, 10)) buyEmote(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") + 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> if(canPurchase(player, 10)) buyEmote(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") } } } @@ -138,8 +135,8 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff of the Raven (40c)", "").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 40)) buyStaff(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> npc(FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } + 1 -> if(canPurchase(player, 40)) buyStaff(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } } } } @@ -147,8 +144,8 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Purple Recolor (10c)", "Staff Orange Recolor (10c)").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") + 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") } } } @@ -156,8 +153,8 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Purple Recolor (10c)", "").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> npc(FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } + 1 -> if(canPurchase(player, 10)) buyRecolor1(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } } } } @@ -165,13 +162,13 @@ class GrimDialogue(player: Player? = null) : DialoguePlugin(player){ when(stage){ 104 -> player.dialogueInterpreter.sendOptions(title, "Staff Orange Recolor (10c)", "").also { stage++ } 105 -> when(buttonId){ - 1 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(FacialExpression.NEUTRAL, "You can't afford that.") - 2 -> npc(FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } + 1 -> if(canPurchase(player, 10)) buyRecolor2(player) else npc(core.game.dialogue.FacialExpression.NEUTRAL, "You can't afford that.") + 2 -> npc(core.game.dialogue.FacialExpression.NEUTRAL, "Huhwuh").also { stage = 104 } } } } else { - npcl(FacialExpression.NEUTRAL, "You've already bought everything.") + npcl(core.game.dialogue.FacialExpression.NEUTRAL, "You've already bought everything.") stage = END_DIALOGUE } } diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/SimpleHalloweenEvent.kt b/Server/src/main/core/game/worldevents/holiday/halloween/SimpleHalloweenEvent.kt similarity index 60% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/SimpleHalloweenEvent.kt rename to Server/src/main/core/game/worldevents/holiday/halloween/SimpleHalloweenEvent.kt index 5cf7e1406..50c26daea 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/SimpleHalloweenEvent.kt +++ b/Server/src/main/core/game/worldevents/holiday/halloween/SimpleHalloweenEvent.kt @@ -1,11 +1,8 @@ -package rs09.game.content.global.worldevents.holiday.halloween +package core.game.worldevents.holiday.halloween -import core.game.node.entity.npc.NPC -import core.game.world.map.Location -import rs09.game.content.global.worldevents.PluginSet -import rs09.game.content.global.worldevents.WorldEvent -import rs09.game.world.GameWorld -import java.util.* +import core.game.worldevents.PluginSet +import core.game.worldevents.WorldEvent +import core.game.world.GameWorld class SimpleHalloweenEvent : WorldEvent("hween"){ override fun checkActive(): Boolean { diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/TrickOrTreatHandler.kt b/Server/src/main/core/game/worldevents/holiday/halloween/TrickOrTreatHandler.kt similarity index 76% rename from Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/TrickOrTreatHandler.kt rename to Server/src/main/core/game/worldevents/holiday/halloween/TrickOrTreatHandler.kt index 45f432bcf..c7c884f5e 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/holiday/halloween/TrickOrTreatHandler.kt +++ b/Server/src/main/core/game/worldevents/holiday/halloween/TrickOrTreatHandler.kt @@ -1,8 +1,7 @@ -package rs09.game.content.global.worldevents.holiday.halloween +package core.game.worldevents.holiday.halloween -import api.* +import core.api.* import core.game.component.Component -import core.game.content.dialogue.FacialExpression import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.system.task.Pulse @@ -11,36 +10,36 @@ import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics import core.tools.RandomFunction import org.rs09.consts.Components -import rs09.ServerStore -import rs09.ServerStore.Companion.getInt -import rs09.ServerStore.Companion.getString -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld -import rs09.tools.END_DIALOGUE +import core.ServerStore +import core.ServerStore.Companion.getInt +import core.ServerStore.Companion.getString +import core.game.dialogue.DialogueFile +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.world.GameWorld +import core.tools.END_DIALOGUE class TrickOrTreatHandler : InteractionListener { override fun defineListeners() { - on(IntType.NPC, "trick-or-treat"){player, node -> + on(IntType.NPC, "trick-or-treat"){ player, node -> val hasDone5 = getDailyTrickOrTreats(player) == 5 val hasDoneMe = getTrickOrTreatedNPCs(player).contains(node.name.toLowerCase()) if(hasDone5){ - sendNPCDialogue(player, node.id, "My informants tell me you've already collected candy from 5 people today.", FacialExpression.FRIENDLY) + sendNPCDialogue(player, node.id, "My informants tell me you've already collected candy from 5 people today.", core.game.dialogue.FacialExpression.FRIENDLY) return@on true } if(hasDoneMe){ - sendNPCDialogue(player, node.id, "You've already asked me today! Don't get greedy, now.", FacialExpression.ANNOYED) + sendNPCDialogue(player, node.id, "You've already asked me today! Don't get greedy, now.", core.game.dialogue.FacialExpression.ANNOYED) return@on true } player.dialogueInterpreter.open(object : DialogueFile(){ override fun handle(componentID: Int, buttonID: Int) { when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "Trick or treat!").also { if(RandomFunction.roll(20)) stage = 10 else stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "Very well, then, here you are my friend.").also { stage++ } + 0 -> playerl(core.game.dialogue.FacialExpression.FRIENDLY, "Trick or treat!").also { if(RandomFunction.roll(20)) stage = 10 else stage++ } + 1 -> npcl(core.game.dialogue.FacialExpression.FRIENDLY, "Very well, then, here you are my friend.").also { stage++ } 2 -> { player.dialogueInterpreter.sendItemMessage(14084, "They hand you a nicely-wrapped candy.") addItemOrDrop(player, 14084, 1) @@ -49,7 +48,7 @@ class TrickOrTreatHandler : InteractionListener { stage = END_DIALOGUE } - 10 -> npcl(FacialExpression.EVIL_LAUGH, "I CHOOSE TRICK!").also { player.lock(); GameWorld.submit(object : Pulse() { + 10 -> npcl(core.game.dialogue.FacialExpression.EVIL_LAUGH, "I CHOOSE TRICK!").also { player.lock(); GameWorld.submit(object : Pulse() { var counter = 0 override fun pulse(): Boolean { //gfx 1898 diff --git a/Server/src/main/kotlin/discord/Discord.kt b/Server/src/main/core/integrations/discord/Discord.kt similarity index 97% rename from Server/src/main/kotlin/discord/Discord.kt rename to Server/src/main/core/integrations/discord/Discord.kt index 5f5b82136..7e07d69d9 100644 --- a/Server/src/main/kotlin/discord/Discord.kt +++ b/Server/src/main/core/integrations/discord/Discord.kt @@ -1,12 +1,11 @@ -package discord +package core.integrations.discord -import api.getItemName -import core.game.node.entity.player.Player +import core.api.getItemName import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.json.simple.JSONArray import org.json.simple.JSONObject -import rs09.ServerConstants +import core.ServerConstants import java.io.BufferedReader import java.io.DataOutputStream import java.io.InputStreamReader diff --git a/Server/src/main/java/core/net/Constants.java b/Server/src/main/core/net/Constants.java similarity index 100% rename from Server/src/main/java/core/net/Constants.java rename to Server/src/main/core/net/Constants.java diff --git a/Server/src/main/java/core/net/EventProducer.java b/Server/src/main/core/net/EventProducer.java similarity index 100% rename from Server/src/main/java/core/net/EventProducer.java rename to Server/src/main/core/net/EventProducer.java diff --git a/Server/src/main/java/core/net/IoEventHandler.java b/Server/src/main/core/net/IoEventHandler.java similarity index 95% rename from Server/src/main/java/core/net/IoEventHandler.java rename to Server/src/main/core/net/IoEventHandler.java index abf3e6295..f6d63d869 100644 --- a/Server/src/main/java/core/net/IoEventHandler.java +++ b/Server/src/main/core/net/IoEventHandler.java @@ -1,8 +1,6 @@ package core.net; -import rs09.game.system.SystemLogger; -import rs09.game.world.repository.DisconnectionQueue; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import java.io.IOException; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/IoReadEvent.java b/Server/src/main/core/net/IoReadEvent.java similarity index 100% rename from Server/src/main/java/core/net/IoReadEvent.java rename to Server/src/main/core/net/IoReadEvent.java diff --git a/Server/src/main/java/core/net/IoSession.java b/Server/src/main/core/net/IoSession.java similarity index 98% rename from Server/src/main/java/core/net/IoSession.java rename to Server/src/main/core/net/IoSession.java index 61c2e2f3c..a9a0b0f21 100644 --- a/Server/src/main/java/core/net/IoSession.java +++ b/Server/src/main/core/net/IoSession.java @@ -3,13 +3,12 @@ package core.net; import core.cache.crypto.ISAACPair; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.ClientInfo; -import core.game.node.entity.player.info.login.Response; import core.game.system.task.Pulse; -import rs09.auth.AuthResponse; -import rs09.game.world.GameWorld; +import core.auth.AuthResponse; +import core.game.world.GameWorld; import core.net.producer.HSEventProducer; import core.net.producer.LoginEventProducer; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import java.io.IOException; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/IoWriteEvent.java b/Server/src/main/core/net/IoWriteEvent.java similarity index 100% rename from Server/src/main/java/core/net/IoWriteEvent.java rename to Server/src/main/core/net/IoWriteEvent.java diff --git a/Server/src/main/java/core/net/JS5Queue.java b/Server/src/main/core/net/JS5Queue.java similarity index 100% rename from Server/src/main/java/core/net/JS5Queue.java rename to Server/src/main/core/net/JS5Queue.java diff --git a/Server/src/main/java/core/net/NioReactor.java b/Server/src/main/core/net/NioReactor.java similarity index 100% rename from Server/src/main/java/core/net/NioReactor.java rename to Server/src/main/core/net/NioReactor.java diff --git a/Server/src/main/java/core/net/ServerSocketConnection.java b/Server/src/main/core/net/ServerSocketConnection.java similarity index 100% rename from Server/src/main/java/core/net/ServerSocketConnection.java rename to Server/src/main/core/net/ServerSocketConnection.java diff --git a/Server/src/main/java/core/net/amsc/MSEventHandler.java b/Server/src/main/core/net/amsc/MSEventHandler.java similarity index 97% rename from Server/src/main/java/core/net/amsc/MSEventHandler.java rename to Server/src/main/core/net/amsc/MSEventHandler.java index 3950c048e..8fc2420f1 100644 --- a/Server/src/main/java/core/net/amsc/MSEventHandler.java +++ b/Server/src/main/core/net/amsc/MSEventHandler.java @@ -1,6 +1,6 @@ package core.net.amsc; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.net.IoEventHandler; import core.net.IoSession; diff --git a/Server/src/main/java/core/net/amsc/MSPacketRepository.java b/Server/src/main/core/net/amsc/MSPacketRepository.java similarity index 78% rename from Server/src/main/java/core/net/amsc/MSPacketRepository.java rename to Server/src/main/core/net/amsc/MSPacketRepository.java index f3e4ff60c..c8ea619be 100644 --- a/Server/src/main/java/core/net/amsc/MSPacketRepository.java +++ b/Server/src/main/core/net/amsc/MSPacketRepository.java @@ -1,28 +1,9 @@ package core.net.amsc; import core.game.node.entity.player.Player; -import core.game.node.entity.player.info.PlayerDetails; -import core.game.node.entity.player.info.Rights; -import core.game.node.entity.player.info.login.Response; -import core.game.system.SystemManager; -import core.game.system.SystemState; import core.game.system.communication.*; import core.net.packet.IoBuffer; import core.net.packet.PacketHeader; -import core.net.packet.PacketRepository; -import core.net.packet.context.ClanContext; -import core.net.packet.context.ContactContext; -import core.net.packet.context.MessageContext; -import core.net.packet.out.CommunicationMessage; -import core.net.packet.out.ContactPackets; -import core.net.packet.out.UpdateClanChat; -import rs09.auth.AuthResponse; -import rs09.game.node.entity.player.info.login.LoginParser; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; - -import java.nio.ByteBuffer; /** * The Management server packet repository. diff --git a/Server/src/main/java/core/net/amsc/ManagementServerState.java b/Server/src/main/core/net/amsc/ManagementServerState.java similarity index 96% rename from Server/src/main/java/core/net/amsc/ManagementServerState.java rename to Server/src/main/core/net/amsc/ManagementServerState.java index 8a9d91a23..81db14310 100644 --- a/Server/src/main/java/core/net/amsc/ManagementServerState.java +++ b/Server/src/main/core/net/amsc/ManagementServerState.java @@ -1,7 +1,7 @@ package core.net.amsc; import core.game.node.entity.player.Player; -import rs09.game.world.repository.Repository; +import core.game.world.repository.Repository; import core.net.packet.PacketRepository; import core.net.packet.context.ContactContext; import core.net.packet.out.ContactPackets; diff --git a/Server/src/main/java/core/net/amsc/WorldCommunicator.java b/Server/src/main/core/net/amsc/WorldCommunicator.java similarity index 93% rename from Server/src/main/java/core/net/amsc/WorldCommunicator.java rename to Server/src/main/core/net/amsc/WorldCommunicator.java index 1a471aefc..91e59e075 100644 --- a/Server/src/main/java/core/net/amsc/WorldCommunicator.java +++ b/Server/src/main/core/net/amsc/WorldCommunicator.java @@ -1,17 +1,12 @@ package core.net.amsc; -import core.game.node.entity.player.info.Rights; -import core.game.node.entity.player.info.login.Response; -import core.game.system.task.TaskExecutor; import core.net.EventProducer; import core.net.IoSession; import core.net.NioReactor; import core.net.producer.MSHSEventProducer; -import kotlin.Unit; -import rs09.auth.AuthResponse; -import rs09.game.node.entity.player.info.login.LoginParser; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.game.node.entity.player.info.login.LoginParser; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import java.io.IOException; import java.net.InetAddress; diff --git a/Server/src/main/java/core/net/amsc/WorldStatistics.java b/Server/src/main/core/net/amsc/WorldStatistics.java similarity index 100% rename from Server/src/main/java/core/net/amsc/WorldStatistics.java rename to Server/src/main/core/net/amsc/WorldStatistics.java diff --git a/Server/src/main/java/core/net/event/GameReadEvent.java b/Server/src/main/core/net/event/GameReadEvent.java similarity index 94% rename from Server/src/main/java/core/net/event/GameReadEvent.java rename to Server/src/main/core/net/event/GameReadEvent.java index a559402fc..37ba17f7d 100644 --- a/Server/src/main/java/core/net/event/GameReadEvent.java +++ b/Server/src/main/core/net/event/GameReadEvent.java @@ -1,15 +1,12 @@ package core.net.event; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; import core.net.IoReadEvent; import core.net.IoSession; -import core.net.packet.IncomingPacket; import core.net.packet.IoBuffer; -import core.net.packet.PacketRepository; -import rs09.net.packet.PacketProcessor; -import rs09.net.packet.in.Decoders530; -import rs09.net.packet.in.Packet; +import core.net.packet.PacketProcessor; +import core.net.packet.in.Decoders530; +import core.net.packet.in.Packet; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/event/GameWriteEvent.java b/Server/src/main/core/net/event/GameWriteEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/GameWriteEvent.java rename to Server/src/main/core/net/event/GameWriteEvent.java diff --git a/Server/src/main/java/core/net/event/HSReadEvent.java b/Server/src/main/core/net/event/HSReadEvent.java similarity index 96% rename from Server/src/main/java/core/net/event/HSReadEvent.java rename to Server/src/main/core/net/event/HSReadEvent.java index 8a94f4476..883ce2254 100644 --- a/Server/src/main/java/core/net/event/HSReadEvent.java +++ b/Server/src/main/core/net/event/HSReadEvent.java @@ -1,12 +1,11 @@ package core.net.event; -import core.net.Constants; import core.net.IoReadEvent; import core.net.IoSession; import core.net.lobby.WorldList; import core.net.registry.AccountRegister; import core.tools.RandomFunction; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import java.nio.ByteBuffer; import java.util.HashMap; diff --git a/Server/src/main/java/core/net/event/HSWriteEvent.java b/Server/src/main/core/net/event/HSWriteEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/HSWriteEvent.java rename to Server/src/main/core/net/event/HSWriteEvent.java diff --git a/Server/src/main/java/core/net/event/JS5ReadEvent.java b/Server/src/main/core/net/event/JS5ReadEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/JS5ReadEvent.java rename to Server/src/main/core/net/event/JS5ReadEvent.java diff --git a/Server/src/main/java/core/net/event/JS5WriteEvent.java b/Server/src/main/core/net/event/JS5WriteEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/JS5WriteEvent.java rename to Server/src/main/core/net/event/JS5WriteEvent.java diff --git a/Server/src/main/kotlin/rs09/net/event/LoginReadEvent.kt b/Server/src/main/core/net/event/LoginReadEvent.kt similarity index 85% rename from Server/src/main/kotlin/rs09/net/event/LoginReadEvent.kt rename to Server/src/main/core/net/event/LoginReadEvent.kt index 92bc47236..b80501b12 100644 --- a/Server/src/main/kotlin/rs09/net/event/LoginReadEvent.kt +++ b/Server/src/main/core/net/event/LoginReadEvent.kt @@ -1,14 +1,12 @@ -package rs09.net.event +package core.net.event import core.game.node.entity.player.info.ClientInfo import core.game.node.entity.player.info.PlayerDetails -import core.game.system.communication.CommunicationInfo import core.net.IoReadEvent import core.net.IoSession -import rs09.auth.AuthResponse -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld -import rs09.net.packet.`in`.Login +import core.auth.AuthResponse +import core.game.world.GameWorld +import core.net.packet.`in`.Login import java.nio.ByteBuffer /** diff --git a/Server/src/main/java/core/net/event/LoginWriteEvent.java b/Server/src/main/core/net/event/LoginWriteEvent.java similarity index 98% rename from Server/src/main/java/core/net/event/LoginWriteEvent.java rename to Server/src/main/core/net/event/LoginWriteEvent.java index 793477da9..6da3a9a19 100644 --- a/Server/src/main/java/core/net/event/LoginWriteEvent.java +++ b/Server/src/main/core/net/event/LoginWriteEvent.java @@ -6,7 +6,7 @@ import core.net.EventProducer; import core.net.IoSession; import core.net.IoWriteEvent; import core.net.producer.GameEventProducer; -import rs09.auth.AuthResponse; +import core.auth.AuthResponse; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/event/MSHSReadEvent.java b/Server/src/main/core/net/event/MSHSReadEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/MSHSReadEvent.java rename to Server/src/main/core/net/event/MSHSReadEvent.java diff --git a/Server/src/main/java/core/net/event/MSHSWriteEvent.java b/Server/src/main/core/net/event/MSHSWriteEvent.java similarity index 94% rename from Server/src/main/java/core/net/event/MSHSWriteEvent.java rename to Server/src/main/core/net/event/MSHSWriteEvent.java index b7f7aebb6..988bb4909 100644 --- a/Server/src/main/java/core/net/event/MSHSWriteEvent.java +++ b/Server/src/main/core/net/event/MSHSWriteEvent.java @@ -3,8 +3,7 @@ package core.net.event; import core.cache.misc.buffer.ByteBufferUtils; import core.net.IoSession; import core.net.IoWriteEvent; -import rs09.Server; -import rs09.ServerConstants; +import core.ServerConstants; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/event/MSReadEvent.java b/Server/src/main/core/net/event/MSReadEvent.java similarity index 96% rename from Server/src/main/java/core/net/event/MSReadEvent.java rename to Server/src/main/core/net/event/MSReadEvent.java index ea065cb23..9a6f3da88 100644 --- a/Server/src/main/java/core/net/event/MSReadEvent.java +++ b/Server/src/main/core/net/event/MSReadEvent.java @@ -1,9 +1,8 @@ package core.net.event; -import rs09.game.system.SystemLogger; +import core.tools.SystemLogger; import core.net.IoReadEvent; import core.net.IoSession; -import core.net.amsc.MSPacketRepository; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/event/MSWriteEvent.java b/Server/src/main/core/net/event/MSWriteEvent.java similarity index 100% rename from Server/src/main/java/core/net/event/MSWriteEvent.java rename to Server/src/main/core/net/event/MSWriteEvent.java diff --git a/Server/src/main/java/core/net/event/RegistryReadEvent.java b/Server/src/main/core/net/event/RegistryReadEvent.java similarity index 96% rename from Server/src/main/java/core/net/event/RegistryReadEvent.java rename to Server/src/main/core/net/event/RegistryReadEvent.java index aacddefca..60e3d855d 100644 --- a/Server/src/main/java/core/net/event/RegistryReadEvent.java +++ b/Server/src/main/core/net/event/RegistryReadEvent.java @@ -1,7 +1,7 @@ package core.net.event; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; +import core.tools.SystemLogger; +import core.game.world.GameWorld; import core.net.IoReadEvent; import core.net.IoSession; import core.net.amsc.ManagementServerState; diff --git a/Server/src/main/java/core/net/event/RegistryWriteEvent.java b/Server/src/main/core/net/event/RegistryWriteEvent.java similarity index 97% rename from Server/src/main/java/core/net/event/RegistryWriteEvent.java rename to Server/src/main/core/net/event/RegistryWriteEvent.java index 0a0b40521..6e94e58c0 100644 --- a/Server/src/main/java/core/net/event/RegistryWriteEvent.java +++ b/Server/src/main/core/net/event/RegistryWriteEvent.java @@ -1,7 +1,7 @@ package core.net.event; import core.cache.misc.buffer.ByteBufferUtils; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.Constants; import core.net.IoSession; import core.net.IoWriteEvent; diff --git a/Server/src/main/java/core/net/lobby/WorldDefinition.java b/Server/src/main/core/net/lobby/WorldDefinition.java similarity index 96% rename from Server/src/main/java/core/net/lobby/WorldDefinition.java rename to Server/src/main/core/net/lobby/WorldDefinition.java index a67d4c1b4..92baf066c 100644 --- a/Server/src/main/java/core/net/lobby/WorldDefinition.java +++ b/Server/src/main/core/net/lobby/WorldDefinition.java @@ -1,7 +1,7 @@ package core.net.lobby; -import rs09.game.world.GameWorld; -import rs09.game.world.repository.Repository; +import core.game.world.GameWorld; +import core.game.world.repository.Repository; /** * Represents a world's definition. diff --git a/Server/src/main/java/core/net/lobby/WorldList.java b/Server/src/main/core/net/lobby/WorldList.java similarity index 99% rename from Server/src/main/java/core/net/lobby/WorldList.java rename to Server/src/main/core/net/lobby/WorldList.java index dc23a0301..0da990c44 100644 --- a/Server/src/main/java/core/net/lobby/WorldList.java +++ b/Server/src/main/core/net/lobby/WorldList.java @@ -1,6 +1,6 @@ package core.net.lobby; -import rs09.game.world.GameWorld; +import core.game.world.GameWorld; import core.net.IoSession; import core.net.packet.IoBuffer; diff --git a/Server/src/main/java/core/net/packet/Context.java b/Server/src/main/core/net/packet/Context.java similarity index 100% rename from Server/src/main/java/core/net/packet/Context.java rename to Server/src/main/core/net/packet/Context.java diff --git a/Server/src/main/java/core/net/packet/IncomingPacket.java b/Server/src/main/core/net/packet/IncomingPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/IncomingPacket.java rename to Server/src/main/core/net/packet/IncomingPacket.java diff --git a/Server/src/main/java/core/net/packet/IoBuffer.java b/Server/src/main/core/net/packet/IoBuffer.java similarity index 100% rename from Server/src/main/java/core/net/packet/IoBuffer.java rename to Server/src/main/core/net/packet/IoBuffer.java diff --git a/Server/src/main/java/core/net/packet/OutgoingPacket.java b/Server/src/main/core/net/packet/OutgoingPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/OutgoingPacket.java rename to Server/src/main/core/net/packet/OutgoingPacket.java diff --git a/Server/src/main/java/core/net/packet/PacketHeader.java b/Server/src/main/core/net/packet/PacketHeader.java similarity index 100% rename from Server/src/main/java/core/net/packet/PacketHeader.java rename to Server/src/main/core/net/packet/PacketHeader.java diff --git a/Server/src/main/kotlin/rs09/net/packet/PacketProcessor.kt b/Server/src/main/core/net/packet/PacketProcessor.kt similarity index 95% rename from Server/src/main/kotlin/rs09/net/packet/PacketProcessor.kt rename to Server/src/main/core/net/packet/PacketProcessor.kt index 494b466ef..33ebf86c2 100644 --- a/Server/src/main/kotlin/rs09/net/packet/PacketProcessor.kt +++ b/Server/src/main/core/net/packet/PacketProcessor.kt @@ -1,17 +1,15 @@ -package rs09.net.packet +package core.net.packet -import api.events.ButtonClickEvent -import api.getAttribute -import api.sendMessage -import api.tryPop +import core.game.event.ButtonClickEvent +import core.api.getAttribute +import core.api.sendMessage +import core.api.tryPop import core.cache.def.impl.ItemDefinition import core.cache.def.impl.NPCDefinition import core.cache.def.impl.SceneryDefinition import core.game.container.Container import core.game.container.impl.BankContainer -import core.game.content.global.report.AbuseReport -import core.game.content.global.report.Rule -import core.game.content.quest.PluginInteractionManager +import core.game.interaction.PluginInteractionManager import core.game.interaction.Interaction import core.game.interaction.MovementPulse import core.game.interaction.NodeUsageEvent @@ -22,8 +20,8 @@ import core.game.node.entity.player.Player import core.game.node.entity.player.info.Rights import core.game.node.entity.player.info.login.LoginConfiguration import core.game.node.entity.player.link.SpellBookManager -import core.game.node.entity.skill.magic.MagicSpell -import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial +import core.game.node.entity.combat.spell.MagicSpell +import content.global.skill.summoning.familiar.FamiliarSpecial import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.game.node.scenery.Scenery @@ -35,35 +33,33 @@ import core.game.world.map.RegionManager import core.game.world.update.flag.context.ChatMessage import core.game.world.update.flag.player.ChatFlag import core.net.amsc.MSPacketRepository -import core.net.packet.PacketRepository import core.net.packet.context.PlayerContext import core.net.packet.out.ClearMinimapFlag import org.rs09.consts.Components import proto.management.ClanMessage import proto.management.JoinClanRequest import proto.management.LeaveClanRequest -import rs09.ServerConstants -import rs09.game.ge.GrandExchange.Companion.getOfferStats -import rs09.game.ge.GrandExchange.Companion.getRecommendedPrice -import rs09.game.ge.GrandExchangeOffer -import rs09.game.ge.PriceIndex -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.interaction.InterfaceListeners -import rs09.game.interaction.QCRepository -import rs09.game.interaction.inter.ge.StockMarket -import rs09.game.node.entity.player.info.LogType -import rs09.game.node.entity.player.info.PlayerMonitor -import rs09.game.node.entity.skill.magic.SpellListener -import rs09.game.node.entity.skill.magic.SpellListeners -import rs09.game.node.entity.skill.magic.SpellUtils -import rs09.game.system.SystemLogger -import rs09.game.system.command.CommandSystem -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.net.packet.`in`.Packet -import rs09.net.packet.`in`.RunScript -import rs09.worker.ManagementEvents +import core.ServerConstants +import core.game.ge.GrandExchange.Companion.getOfferStats +import core.game.ge.GrandExchange.Companion.getRecommendedPrice +import core.game.ge.GrandExchangeOffer +import core.game.ge.PriceIndex +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners +import core.game.interaction.InterfaceListeners +import content.global.handlers.iface.ge.StockMarket +import content.global.skill.magic.SpellListener +import content.global.skill.magic.SpellListeners +import content.global.skill.magic.SpellUtils +import core.game.node.entity.player.info.LogType +import core.game.node.entity.player.info.PlayerMonitor +import core.tools.SystemLogger +import core.game.system.command.CommandSystem +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.net.packet.`in`.Packet +import core.net.packet.`in`.RunScript +import core.worker.ManagementEvents import java.io.PrintWriter import java.io.StringWriter import java.util.* @@ -168,10 +164,10 @@ object PacketProcessor { if (pkt.target.equals(pkt.player.username, true)){ pkt.player.sendMessage("You can't report yourself!") } - AbuseReport ( - pkt.player.name, - pkt.target, - Rule.forId(pkt.rule) + core.game.global.report.AbuseReport( + pkt.player.name, + pkt.target, + core.game.global.report.Rule.forId(pkt.rule) ).construct(pkt.player, pkt.modMute) } is Packet.TrackFinished -> { diff --git a/Server/src/main/java/core/net/packet/PacketRepository.java b/Server/src/main/core/net/packet/PacketRepository.java similarity index 98% rename from Server/src/main/java/core/net/packet/PacketRepository.java rename to Server/src/main/core/net/packet/PacketRepository.java index d1f885684..e1f41fb43 100644 --- a/Server/src/main/java/core/net/packet/PacketRepository.java +++ b/Server/src/main/core/net/packet/PacketRepository.java @@ -2,8 +2,7 @@ package core.net.packet; import core.net.packet.out.GrandExchangePacket; import core.net.packet.out.*; -import rs09.game.system.SystemLogger; -import rs09.net.packet.PacketWriteQueue; +import core.tools.SystemLogger; import java.util.HashMap; import java.util.Map; diff --git a/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt b/Server/src/main/core/net/packet/PacketWriteQueue.kt similarity index 95% rename from Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt rename to Server/src/main/core/net/packet/PacketWriteQueue.kt index a48af4dab..294a54452 100644 --- a/Server/src/main/kotlin/rs09/net/packet/PacketWriteQueue.kt +++ b/Server/src/main/core/net/packet/PacketWriteQueue.kt @@ -1,14 +1,12 @@ -package rs09.net.packet +package core.net.packet -import api.TickListener -import core.net.packet.OutgoingPacket +import core.api.TickListener import core.net.packet.out.* -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.lang.IndexOutOfBoundsException import java.util.* import java.util.concurrent.locks.ReentrantLock import kotlin.NoSuchElementException -import kotlin.collections.ArrayList class PacketWriteQueue : TickListener { override fun tick() { diff --git a/Server/src/main/kotlin/rs09/game/interaction/QCRepository.kt b/Server/src/main/core/net/packet/QCRepository.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/interaction/QCRepository.kt rename to Server/src/main/core/net/packet/QCRepository.kt index d35cabdcc..42238e15d 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/QCRepository.kt +++ b/Server/src/main/core/net/packet/QCRepository.kt @@ -1,5 +1,6 @@ -package rs09.game.interaction +package core.net.packet +import content.global.skill.slayer.SlayerManager import core.cache.Cache import core.cache.def.impl.DataMap import core.cache.def.impl.ItemDefinition @@ -11,10 +12,9 @@ import core.game.system.task.Pulse import core.game.world.update.flag.context.ChatMessage import core.game.world.update.flag.player.ChatFlag import proto.management.ClanMessage -import rs09.game.node.entity.skill.slayer.SlayerManager -import rs09.game.world.GameWorld.Pulser -import rs09.net.packet.`in`.QCPacketType -import rs09.worker.ManagementEvents.publish +import core.game.world.GameWorld.Pulser +import core.net.packet.`in`.QCPacketType +import core.worker.ManagementEvents.publish import java.nio.ByteBuffer import java.util.* diff --git a/Server/src/main/java/core/net/packet/context/AccessMaskContext.java b/Server/src/main/core/net/packet/context/AccessMaskContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/AccessMaskContext.java rename to Server/src/main/core/net/packet/context/AccessMaskContext.java diff --git a/Server/src/main/java/core/net/packet/context/AnimateInterfaceContext.java b/Server/src/main/core/net/packet/context/AnimateInterfaceContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/AnimateInterfaceContext.java rename to Server/src/main/core/net/packet/context/AnimateInterfaceContext.java diff --git a/Server/src/main/java/core/net/packet/context/AnimateObjectContext.java b/Server/src/main/core/net/packet/context/AnimateObjectContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/AnimateObjectContext.java rename to Server/src/main/core/net/packet/context/AnimateObjectContext.java diff --git a/Server/src/main/java/core/net/packet/context/AreaPositionContext.java b/Server/src/main/core/net/packet/context/AreaPositionContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/AreaPositionContext.java rename to Server/src/main/core/net/packet/context/AreaPositionContext.java diff --git a/Server/src/main/java/core/net/packet/context/BuildItemContext.java b/Server/src/main/core/net/packet/context/BuildItemContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/BuildItemContext.java rename to Server/src/main/core/net/packet/context/BuildItemContext.java diff --git a/Server/src/main/java/core/net/packet/context/BuildSceneryContext.java b/Server/src/main/core/net/packet/context/BuildSceneryContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/BuildSceneryContext.java rename to Server/src/main/core/net/packet/context/BuildSceneryContext.java diff --git a/Server/src/main/java/core/net/packet/context/CSConfigContext.java b/Server/src/main/core/net/packet/context/CSConfigContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/CSConfigContext.java rename to Server/src/main/core/net/packet/context/CSConfigContext.java diff --git a/Server/src/main/java/core/net/packet/context/CameraContext.java b/Server/src/main/core/net/packet/context/CameraContext.java similarity index 98% rename from Server/src/main/java/core/net/packet/context/CameraContext.java rename to Server/src/main/core/net/packet/context/CameraContext.java index b125fae0b..6858774a0 100644 --- a/Server/src/main/java/core/net/packet/context/CameraContext.java +++ b/Server/src/main/core/net/packet/context/CameraContext.java @@ -1,7 +1,6 @@ package core.net.packet.context; import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; import core.net.packet.Context; /** diff --git a/Server/src/main/java/core/net/packet/context/ChildPositionContext.java b/Server/src/main/core/net/packet/context/ChildPositionContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ChildPositionContext.java rename to Server/src/main/core/net/packet/context/ChildPositionContext.java diff --git a/Server/src/main/java/core/net/packet/context/ClanContext.java b/Server/src/main/core/net/packet/context/ClanContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ClanContext.java rename to Server/src/main/core/net/packet/context/ClanContext.java diff --git a/Server/src/main/java/core/net/packet/context/ClearChunkContext.java b/Server/src/main/core/net/packet/context/ClearChunkContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ClearChunkContext.java rename to Server/src/main/core/net/packet/context/ClearChunkContext.java diff --git a/Server/src/main/java/core/net/packet/context/ConfigContext.java b/Server/src/main/core/net/packet/context/ConfigContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ConfigContext.java rename to Server/src/main/core/net/packet/context/ConfigContext.java diff --git a/Server/src/main/java/core/net/packet/context/ContactContext.java b/Server/src/main/core/net/packet/context/ContactContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ContactContext.java rename to Server/src/main/core/net/packet/context/ContactContext.java diff --git a/Server/src/main/java/core/net/packet/context/ContainerContext.java b/Server/src/main/core/net/packet/context/ContainerContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/ContainerContext.java rename to Server/src/main/core/net/packet/context/ContainerContext.java diff --git a/Server/src/main/java/core/net/packet/context/DefaultContext.java b/Server/src/main/core/net/packet/context/DefaultContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/DefaultContext.java rename to Server/src/main/core/net/packet/context/DefaultContext.java diff --git a/Server/src/main/java/core/net/packet/context/DisplayModelContext.java b/Server/src/main/core/net/packet/context/DisplayModelContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/DisplayModelContext.java rename to Server/src/main/core/net/packet/context/DisplayModelContext.java diff --git a/Server/src/main/java/core/net/packet/context/DynamicSceneContext.java b/Server/src/main/core/net/packet/context/DynamicSceneContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/DynamicSceneContext.java rename to Server/src/main/core/net/packet/context/DynamicSceneContext.java diff --git a/Server/src/main/java/core/net/packet/context/GameMessageContext.java b/Server/src/main/core/net/packet/context/GameMessageContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/GameMessageContext.java rename to Server/src/main/core/net/packet/context/GameMessageContext.java diff --git a/Server/src/main/java/core/net/packet/context/GrandExchangeContext.java b/Server/src/main/core/net/packet/context/GrandExchangeContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/GrandExchangeContext.java rename to Server/src/main/core/net/packet/context/GrandExchangeContext.java diff --git a/Server/src/main/java/core/net/packet/context/HintIconContext.java b/Server/src/main/core/net/packet/context/HintIconContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/HintIconContext.java rename to Server/src/main/core/net/packet/context/HintIconContext.java diff --git a/Server/src/main/java/core/net/packet/context/IntegerContext.java b/Server/src/main/core/net/packet/context/IntegerContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/IntegerContext.java rename to Server/src/main/core/net/packet/context/IntegerContext.java diff --git a/Server/src/main/java/core/net/packet/context/InteractionOptionContext.java b/Server/src/main/core/net/packet/context/InteractionOptionContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/InteractionOptionContext.java rename to Server/src/main/core/net/packet/context/InteractionOptionContext.java diff --git a/Server/src/main/java/core/net/packet/context/InterfaceConfigContext.java b/Server/src/main/core/net/packet/context/InterfaceConfigContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/InterfaceConfigContext.java rename to Server/src/main/core/net/packet/context/InterfaceConfigContext.java diff --git a/Server/src/main/java/core/net/packet/context/InterfaceContext.java b/Server/src/main/core/net/packet/context/InterfaceContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/InterfaceContext.java rename to Server/src/main/core/net/packet/context/InterfaceContext.java diff --git a/Server/src/main/java/core/net/packet/context/LocationContext.java b/Server/src/main/core/net/packet/context/LocationContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/LocationContext.java rename to Server/src/main/core/net/packet/context/LocationContext.java diff --git a/Server/src/main/java/core/net/packet/context/MessageContext.java b/Server/src/main/core/net/packet/context/MessageContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/MessageContext.java rename to Server/src/main/core/net/packet/context/MessageContext.java diff --git a/Server/src/main/java/core/net/packet/context/MinimapStateContext.java b/Server/src/main/core/net/packet/context/MinimapStateContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/MinimapStateContext.java rename to Server/src/main/core/net/packet/context/MinimapStateContext.java diff --git a/Server/src/main/java/core/net/packet/context/MusicContext.java b/Server/src/main/core/net/packet/context/MusicContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/MusicContext.java rename to Server/src/main/core/net/packet/context/MusicContext.java diff --git a/Server/src/main/java/core/net/packet/context/PlayerContext.java b/Server/src/main/core/net/packet/context/PlayerContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/PlayerContext.java rename to Server/src/main/core/net/packet/context/PlayerContext.java diff --git a/Server/src/main/java/core/net/packet/context/PositionedGraphicContext.java b/Server/src/main/core/net/packet/context/PositionedGraphicContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/PositionedGraphicContext.java rename to Server/src/main/core/net/packet/context/PositionedGraphicContext.java diff --git a/Server/src/main/java/core/net/packet/context/RunScriptContext.java b/Server/src/main/core/net/packet/context/RunScriptContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/RunScriptContext.java rename to Server/src/main/core/net/packet/context/RunScriptContext.java diff --git a/Server/src/main/java/core/net/packet/context/SceneGraphContext.java b/Server/src/main/core/net/packet/context/SceneGraphContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/SceneGraphContext.java rename to Server/src/main/core/net/packet/context/SceneGraphContext.java diff --git a/Server/src/main/java/core/net/packet/context/SkillContext.java b/Server/src/main/core/net/packet/context/SkillContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/SkillContext.java rename to Server/src/main/core/net/packet/context/SkillContext.java diff --git a/Server/src/main/java/core/net/packet/context/StringContext.java b/Server/src/main/core/net/packet/context/StringContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/StringContext.java rename to Server/src/main/core/net/packet/context/StringContext.java diff --git a/Server/src/main/java/core/net/packet/context/SystemUpdateContext.java b/Server/src/main/core/net/packet/context/SystemUpdateContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/SystemUpdateContext.java rename to Server/src/main/core/net/packet/context/SystemUpdateContext.java diff --git a/Server/src/main/java/core/net/packet/context/VarbitContext.java b/Server/src/main/core/net/packet/context/VarbitContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/VarbitContext.java rename to Server/src/main/core/net/packet/context/VarbitContext.java diff --git a/Server/src/main/java/core/net/packet/context/VarcUpdateContext.java b/Server/src/main/core/net/packet/context/VarcUpdateContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/VarcUpdateContext.java rename to Server/src/main/core/net/packet/context/VarcUpdateContext.java diff --git a/Server/src/main/java/core/net/packet/context/WalkOptionContext.java b/Server/src/main/core/net/packet/context/WalkOptionContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/WalkOptionContext.java rename to Server/src/main/core/net/packet/context/WalkOptionContext.java diff --git a/Server/src/main/java/core/net/packet/context/WindowsPaneContext.java b/Server/src/main/core/net/packet/context/WindowsPaneContext.java similarity index 100% rename from Server/src/main/java/core/net/packet/context/WindowsPaneContext.java rename to Server/src/main/core/net/packet/context/WindowsPaneContext.java diff --git a/Server/src/main/kotlin/rs09/net/packet/in/Decoders530.kt b/Server/src/main/core/net/packet/in/Decoders530.kt similarity index 98% rename from Server/src/main/kotlin/rs09/net/packet/in/Decoders530.kt rename to Server/src/main/core/net/packet/in/Decoders530.kt index 5137d8da9..bb567da69 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/Decoders530.kt +++ b/Server/src/main/core/net/packet/in/Decoders530.kt @@ -1,9 +1,9 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` import core.game.node.entity.player.Player import core.net.packet.IoBuffer import core.tools.StringUtils -import rs09.game.system.SystemLogger +import core.tools.SystemLogger import java.io.PrintWriter import java.io.StringWriter @@ -226,11 +226,11 @@ enum class Decoders530(val opcode: Int) { val (usedIface, usedChild) = deHash(usedIfHash) val (usedWithIface, usedWithChild) = deHash(usedWithIfHash) return Packet.UseWithItem( - player, - usedId, usedWithId, - usedSlot, usedWithSlot, - usedIface, usedWithIface, - usedChild, usedWithChild + player, + usedId, usedWithId, + usedSlot, usedWithSlot, + usedIface, usedWithIface, + usedChild, usedWithChild ) } }, @@ -641,10 +641,10 @@ enum class Decoders530(val opcode: Int) { CHAT_SETTINGS(157) { override fun decode(player: Player, buffer: IoBuffer): Packet { return Packet.ChatSetting( - player, - buffer.get(), - buffer.get(), - buffer.get() + player, + buffer.get(), + buffer.get(), + buffer.get() ) } }, diff --git a/Server/src/main/kotlin/rs09/net/packet/in/Login.kt b/Server/src/main/core/net/packet/in/Login.kt similarity index 91% rename from Server/src/main/kotlin/rs09/net/packet/in/Login.kt rename to Server/src/main/core/net/packet/in/Login.kt index 66f26a8ab..abfa9bb66 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/Login.kt +++ b/Server/src/main/core/net/packet/in/Login.kt @@ -1,31 +1,27 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` import core.cache.crypto.ISAACCipher import core.cache.crypto.ISAACPair import core.cache.misc.buffer.ByteBufferUtils import core.game.node.entity.player.Player -import core.game.node.entity.player.info.PlayerDetails -import core.game.node.entity.player.info.Rights -import core.game.node.entity.player.info.UIDInfo import core.net.Constants import core.net.IoSession import core.tools.StringUtils -import discord.Discord +import core.integrations.discord.Discord import proto.management.JoinClanRequest import proto.management.PlayerStatusUpdate import proto.management.RequestContactInfo -import rs09.ServerConstants -import rs09.ServerStore -import rs09.ServerStore.Companion.addToList -import rs09.ServerStore.Companion.getList -import rs09.auth.AuthResponse -import rs09.game.node.entity.player.info.LogType -import rs09.game.node.entity.player.info.PlayerMonitor -import rs09.game.node.entity.player.info.login.LoginParser -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.worker.ManagementEvents.publish +import core.ServerConstants +import core.ServerStore +import core.ServerStore.Companion.addToList +import core.ServerStore.Companion.getList +import core.auth.AuthResponse +import core.game.node.entity.player.info.* +import core.game.node.entity.player.info.login.LoginParser +import core.tools.SystemLogger +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.worker.ManagementEvents.publish import java.math.BigInteger import java.nio.BufferUnderflowException import java.nio.ByteBuffer diff --git a/Server/src/main/kotlin/rs09/net/packet/in/LoginInfo.kt b/Server/src/main/core/net/packet/in/LoginInfo.kt similarity index 97% rename from Server/src/main/kotlin/rs09/net/packet/in/LoginInfo.kt rename to Server/src/main/core/net/packet/in/LoginInfo.kt index f0da764c5..84d7ba6ba 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/LoginInfo.kt +++ b/Server/src/main/core/net/packet/in/LoginInfo.kt @@ -1,4 +1,4 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` import core.cache.crypto.ISAACCipher import core.cache.crypto.ISAACPair diff --git a/Server/src/main/kotlin/rs09/net/packet/in/Packet.kt b/Server/src/main/core/net/packet/in/Packet.kt similarity index 99% rename from Server/src/main/kotlin/rs09/net/packet/in/Packet.kt rename to Server/src/main/core/net/packet/in/Packet.kt index 3e1b27216..77f442971 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/Packet.kt +++ b/Server/src/main/core/net/packet/in/Packet.kt @@ -1,4 +1,4 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/net/packet/in/QuickChatPacketHandler.kt b/Server/src/main/core/net/packet/in/QuickChatPacketHandler.kt similarity index 95% rename from Server/src/main/kotlin/rs09/net/packet/in/QuickChatPacketHandler.kt rename to Server/src/main/core/net/packet/in/QuickChatPacketHandler.kt index 2cd7a3f76..30e6815b7 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/QuickChatPacketHandler.kt +++ b/Server/src/main/core/net/packet/in/QuickChatPacketHandler.kt @@ -1,11 +1,11 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` import core.game.node.entity.player.Player import core.net.packet.IncomingPacket import core.net.packet.IoBuffer -import rs09.game.interaction.QCRepository -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld +import core.net.packet.QCRepository +import core.tools.SystemLogger +import core.game.world.GameWorld /** * Decodes the quick chat packet diff --git a/Server/src/main/kotlin/rs09/net/packet/in/RunScript.kt b/Server/src/main/core/net/packet/in/RunScript.kt similarity index 93% rename from Server/src/main/kotlin/rs09/net/packet/in/RunScript.kt rename to Server/src/main/core/net/packet/in/RunScript.kt index 2ff6d56b7..48b88504b 100644 --- a/Server/src/main/kotlin/rs09/net/packet/in/RunScript.kt +++ b/Server/src/main/core/net/packet/in/RunScript.kt @@ -1,6 +1,6 @@ -package rs09.net.packet.`in` +package core.net.packet.`in` -import api.sendDialogue +import core.api.sendDialogue import core.game.node.entity.player.Player /** diff --git a/Server/src/main/java/core/net/packet/out/AccessMask.java b/Server/src/main/core/net/packet/out/AccessMask.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/AccessMask.java rename to Server/src/main/core/net/packet/out/AccessMask.java diff --git a/Server/src/main/java/core/net/packet/out/AnimateInterface.java b/Server/src/main/core/net/packet/out/AnimateInterface.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/AnimateInterface.java rename to Server/src/main/core/net/packet/out/AnimateInterface.java diff --git a/Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java b/Server/src/main/core/net/packet/out/AnimateObjectPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java rename to Server/src/main/core/net/packet/out/AnimateObjectPacket.java diff --git a/Server/src/main/java/core/net/packet/out/AudioPacket.java b/Server/src/main/core/net/packet/out/AudioPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/AudioPacket.java rename to Server/src/main/core/net/packet/out/AudioPacket.java diff --git a/Server/src/main/java/core/net/packet/out/BuildDynamicScene.java b/Server/src/main/core/net/packet/out/BuildDynamicScene.java similarity index 98% rename from Server/src/main/java/core/net/packet/out/BuildDynamicScene.java rename to Server/src/main/core/net/packet/out/BuildDynamicScene.java index 8337471a8..3cea2b5db 100644 --- a/Server/src/main/java/core/net/packet/out/BuildDynamicScene.java +++ b/Server/src/main/core/net/packet/out/BuildDynamicScene.java @@ -9,7 +9,7 @@ import core.net.packet.IoBuffer; import core.net.packet.OutgoingPacket; import core.net.packet.PacketHeader; import core.net.packet.context.DynamicSceneContext; -import rs09.game.system.config.XteaParser; +import core.game.system.config.XteaParser; import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/net/packet/out/CSConfigPacket.java b/Server/src/main/core/net/packet/out/CSConfigPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/CSConfigPacket.java rename to Server/src/main/core/net/packet/out/CSConfigPacket.java diff --git a/Server/src/main/java/core/net/packet/out/CameraViewPacket.java b/Server/src/main/core/net/packet/out/CameraViewPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/CameraViewPacket.java rename to Server/src/main/core/net/packet/out/CameraViewPacket.java diff --git a/Server/src/main/java/core/net/packet/out/ClearGroundItem.java b/Server/src/main/core/net/packet/out/ClearGroundItem.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ClearGroundItem.java rename to Server/src/main/core/net/packet/out/ClearGroundItem.java diff --git a/Server/src/main/java/core/net/packet/out/ClearMinimapFlag.java b/Server/src/main/core/net/packet/out/ClearMinimapFlag.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ClearMinimapFlag.java rename to Server/src/main/core/net/packet/out/ClearMinimapFlag.java diff --git a/Server/src/main/java/core/net/packet/out/ClearRegionChunk.java b/Server/src/main/core/net/packet/out/ClearRegionChunk.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ClearRegionChunk.java rename to Server/src/main/core/net/packet/out/ClearRegionChunk.java diff --git a/Server/src/main/java/core/net/packet/out/ClearScenery.java b/Server/src/main/core/net/packet/out/ClearScenery.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ClearScenery.java rename to Server/src/main/core/net/packet/out/ClearScenery.java diff --git a/Server/src/main/java/core/net/packet/out/CloseInterface.java b/Server/src/main/core/net/packet/out/CloseInterface.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/CloseInterface.java rename to Server/src/main/core/net/packet/out/CloseInterface.java diff --git a/Server/src/main/java/core/net/packet/out/CommunicationMessage.java b/Server/src/main/core/net/packet/out/CommunicationMessage.java similarity index 98% rename from Server/src/main/java/core/net/packet/out/CommunicationMessage.java rename to Server/src/main/core/net/packet/out/CommunicationMessage.java index cd0a80aec..0af702b1c 100644 --- a/Server/src/main/java/core/net/packet/out/CommunicationMessage.java +++ b/Server/src/main/core/net/packet/out/CommunicationMessage.java @@ -7,7 +7,7 @@ import core.net.packet.OutgoingPacket; import core.net.packet.PacketHeader; import core.net.packet.context.MessageContext; import core.tools.StringUtils; -import rs09.game.ai.AIPlayer; +import core.game.bots.AIPlayer; import java.util.Random; diff --git a/Server/src/main/java/core/net/packet/out/Config.java b/Server/src/main/core/net/packet/out/Config.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/Config.java rename to Server/src/main/core/net/packet/out/Config.java diff --git a/Server/src/main/java/core/net/packet/out/ConstructGroundItem.java b/Server/src/main/core/net/packet/out/ConstructGroundItem.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ConstructGroundItem.java rename to Server/src/main/core/net/packet/out/ConstructGroundItem.java diff --git a/Server/src/main/java/core/net/packet/out/ConstructScenery.java b/Server/src/main/core/net/packet/out/ConstructScenery.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ConstructScenery.java rename to Server/src/main/core/net/packet/out/ConstructScenery.java diff --git a/Server/src/main/java/core/net/packet/out/ContactPackets.java b/Server/src/main/core/net/packet/out/ContactPackets.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ContactPackets.java rename to Server/src/main/core/net/packet/out/ContactPackets.java diff --git a/Server/src/main/java/core/net/packet/out/ContainerPacket.java b/Server/src/main/core/net/packet/out/ContainerPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ContainerPacket.java rename to Server/src/main/core/net/packet/out/ContainerPacket.java diff --git a/Server/src/main/java/core/net/packet/out/DisplayModel.java b/Server/src/main/core/net/packet/out/DisplayModel.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/DisplayModel.java rename to Server/src/main/core/net/packet/out/DisplayModel.java diff --git a/Server/src/main/java/core/net/packet/out/GameMessage.java b/Server/src/main/core/net/packet/out/GameMessage.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/GameMessage.java rename to Server/src/main/core/net/packet/out/GameMessage.java diff --git a/Server/src/main/java/core/net/packet/out/GrandExchangePacket.java b/Server/src/main/core/net/packet/out/GrandExchangePacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/GrandExchangePacket.java rename to Server/src/main/core/net/packet/out/GrandExchangePacket.java diff --git a/Server/src/main/java/core/net/packet/out/HintIcon.java b/Server/src/main/core/net/packet/out/HintIcon.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/HintIcon.java rename to Server/src/main/core/net/packet/out/HintIcon.java diff --git a/Server/src/main/java/core/net/packet/out/InstancedLocationUpdate.java b/Server/src/main/core/net/packet/out/InstancedLocationUpdate.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/InstancedLocationUpdate.java rename to Server/src/main/core/net/packet/out/InstancedLocationUpdate.java diff --git a/Server/src/main/java/core/net/packet/out/InteractionOption.java b/Server/src/main/core/net/packet/out/InteractionOption.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/InteractionOption.java rename to Server/src/main/core/net/packet/out/InteractionOption.java diff --git a/Server/src/main/java/core/net/packet/out/Interface.java b/Server/src/main/core/net/packet/out/Interface.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/Interface.java rename to Server/src/main/core/net/packet/out/Interface.java diff --git a/Server/src/main/java/core/net/packet/out/InterfaceConfig.java b/Server/src/main/core/net/packet/out/InterfaceConfig.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/InterfaceConfig.java rename to Server/src/main/core/net/packet/out/InterfaceConfig.java diff --git a/Server/src/main/java/core/net/packet/out/LoginPacket.java b/Server/src/main/core/net/packet/out/LoginPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/LoginPacket.java rename to Server/src/main/core/net/packet/out/LoginPacket.java diff --git a/Server/src/main/java/core/net/packet/out/Logout.java b/Server/src/main/core/net/packet/out/Logout.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/Logout.java rename to Server/src/main/core/net/packet/out/Logout.java diff --git a/Server/src/main/java/core/net/packet/out/MinimapState.java b/Server/src/main/core/net/packet/out/MinimapState.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/MinimapState.java rename to Server/src/main/core/net/packet/out/MinimapState.java diff --git a/Server/src/main/java/core/net/packet/out/MusicPacket.java b/Server/src/main/core/net/packet/out/MusicPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/MusicPacket.java rename to Server/src/main/core/net/packet/out/MusicPacket.java diff --git a/Server/src/main/java/core/net/packet/out/PingPacket.java b/Server/src/main/core/net/packet/out/PingPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/PingPacket.java rename to Server/src/main/core/net/packet/out/PingPacket.java diff --git a/Server/src/main/java/core/net/packet/out/PositionedGraphic.java b/Server/src/main/core/net/packet/out/PositionedGraphic.java similarity index 96% rename from Server/src/main/java/core/net/packet/out/PositionedGraphic.java rename to Server/src/main/core/net/packet/out/PositionedGraphic.java index 2b7289157..6e381bb75 100644 --- a/Server/src/main/java/core/net/packet/out/PositionedGraphic.java +++ b/Server/src/main/core/net/packet/out/PositionedGraphic.java @@ -5,7 +5,6 @@ import core.game.world.update.flag.context.Graphics; import core.net.packet.IoBuffer; import core.net.packet.OutgoingPacket; import core.net.packet.context.PositionedGraphicContext; -import rs09.game.system.SystemLogger; /** * The positioned graphic outgoing packet. diff --git a/Server/src/main/java/core/net/packet/out/RepositionChild.java b/Server/src/main/core/net/packet/out/RepositionChild.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/RepositionChild.java rename to Server/src/main/core/net/packet/out/RepositionChild.java diff --git a/Server/src/main/java/core/net/packet/out/ResetInterface.java b/Server/src/main/core/net/packet/out/ResetInterface.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/ResetInterface.java rename to Server/src/main/core/net/packet/out/ResetInterface.java diff --git a/Server/src/main/java/core/net/packet/out/RunEnergy.java b/Server/src/main/core/net/packet/out/RunEnergy.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/RunEnergy.java rename to Server/src/main/core/net/packet/out/RunEnergy.java diff --git a/Server/src/main/java/core/net/packet/out/RunScriptPacket.java b/Server/src/main/core/net/packet/out/RunScriptPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/RunScriptPacket.java rename to Server/src/main/core/net/packet/out/RunScriptPacket.java diff --git a/Server/src/main/java/core/net/packet/out/SetWalkOption.java b/Server/src/main/core/net/packet/out/SetWalkOption.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/SetWalkOption.java rename to Server/src/main/core/net/packet/out/SetWalkOption.java diff --git a/Server/src/main/java/core/net/packet/out/SkillLevel.java b/Server/src/main/core/net/packet/out/SkillLevel.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/SkillLevel.java rename to Server/src/main/core/net/packet/out/SkillLevel.java diff --git a/Server/src/main/java/core/net/packet/out/StringPacket.java b/Server/src/main/core/net/packet/out/StringPacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/StringPacket.java rename to Server/src/main/core/net/packet/out/StringPacket.java diff --git a/Server/src/main/java/core/net/packet/out/SystemUpdatePacket.java b/Server/src/main/core/net/packet/out/SystemUpdatePacket.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/SystemUpdatePacket.java rename to Server/src/main/core/net/packet/out/SystemUpdatePacket.java diff --git a/Server/src/main/java/core/net/packet/out/UpdateAreaPosition.java b/Server/src/main/core/net/packet/out/UpdateAreaPosition.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/UpdateAreaPosition.java rename to Server/src/main/core/net/packet/out/UpdateAreaPosition.java diff --git a/Server/src/main/java/core/net/packet/out/UpdateClanChat.java b/Server/src/main/core/net/packet/out/UpdateClanChat.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/UpdateClanChat.java rename to Server/src/main/core/net/packet/out/UpdateClanChat.java diff --git a/Server/src/main/java/core/net/packet/out/UpdateGroundItemAmount.java b/Server/src/main/core/net/packet/out/UpdateGroundItemAmount.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/UpdateGroundItemAmount.java rename to Server/src/main/core/net/packet/out/UpdateGroundItemAmount.java diff --git a/Server/src/main/java/core/net/packet/out/UpdateRandomFile.java b/Server/src/main/core/net/packet/out/UpdateRandomFile.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/UpdateRandomFile.java rename to Server/src/main/core/net/packet/out/UpdateRandomFile.java diff --git a/Server/src/main/java/core/net/packet/out/UpdateSceneGraph.java b/Server/src/main/core/net/packet/out/UpdateSceneGraph.java similarity index 97% rename from Server/src/main/java/core/net/packet/out/UpdateSceneGraph.java rename to Server/src/main/core/net/packet/out/UpdateSceneGraph.java index 489a6cbeb..2ba0c864a 100644 --- a/Server/src/main/java/core/net/packet/out/UpdateSceneGraph.java +++ b/Server/src/main/core/net/packet/out/UpdateSceneGraph.java @@ -5,7 +5,7 @@ import core.net.packet.IoBuffer; import core.net.packet.OutgoingPacket; import core.net.packet.PacketHeader; import core.net.packet.context.SceneGraphContext; -import rs09.game.system.config.XteaParser; +import core.game.system.config.XteaParser; /** * The update scene graph outgoing packet. diff --git a/Server/src/main/java/core/net/packet/out/Varbit.java b/Server/src/main/core/net/packet/out/Varbit.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/Varbit.java rename to Server/src/main/core/net/packet/out/Varbit.java diff --git a/Server/src/main/java/core/net/packet/out/VarcUpdate.java b/Server/src/main/core/net/packet/out/VarcUpdate.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/VarcUpdate.java rename to Server/src/main/core/net/packet/out/VarcUpdate.java diff --git a/Server/src/main/java/core/net/packet/out/WeightUpdate.java b/Server/src/main/core/net/packet/out/WeightUpdate.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/WeightUpdate.java rename to Server/src/main/core/net/packet/out/WeightUpdate.java diff --git a/Server/src/main/java/core/net/packet/out/WindowsPane.java b/Server/src/main/core/net/packet/out/WindowsPane.java similarity index 100% rename from Server/src/main/java/core/net/packet/out/WindowsPane.java rename to Server/src/main/core/net/packet/out/WindowsPane.java diff --git a/Server/src/main/java/core/net/producer/GameEventProducer.java b/Server/src/main/core/net/producer/GameEventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/GameEventProducer.java rename to Server/src/main/core/net/producer/GameEventProducer.java diff --git a/Server/src/main/java/core/net/producer/HSEventProducer.java b/Server/src/main/core/net/producer/HSEventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/HSEventProducer.java rename to Server/src/main/core/net/producer/HSEventProducer.java diff --git a/Server/src/main/java/core/net/producer/JS5EventProducer.java b/Server/src/main/core/net/producer/JS5EventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/JS5EventProducer.java rename to Server/src/main/core/net/producer/JS5EventProducer.java diff --git a/Server/src/main/java/core/net/producer/LoginEventProducer.java b/Server/src/main/core/net/producer/LoginEventProducer.java similarity index 94% rename from Server/src/main/java/core/net/producer/LoginEventProducer.java rename to Server/src/main/core/net/producer/LoginEventProducer.java index 59c81fa5a..a3c2e0fce 100644 --- a/Server/src/main/java/core/net/producer/LoginEventProducer.java +++ b/Server/src/main/core/net/producer/LoginEventProducer.java @@ -5,7 +5,7 @@ import core.net.IoReadEvent; import core.net.IoSession; import core.net.IoWriteEvent; import core.net.event.LoginWriteEvent; -import rs09.net.event.LoginReadEvent; +import core.net.event.LoginReadEvent; import java.nio.ByteBuffer; diff --git a/Server/src/main/java/core/net/producer/MSEventProducer.java b/Server/src/main/core/net/producer/MSEventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/MSEventProducer.java rename to Server/src/main/core/net/producer/MSEventProducer.java diff --git a/Server/src/main/java/core/net/producer/MSHSEventProducer.java b/Server/src/main/core/net/producer/MSHSEventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/MSHSEventProducer.java rename to Server/src/main/core/net/producer/MSHSEventProducer.java diff --git a/Server/src/main/java/core/net/producer/RegistryEventProducer.java b/Server/src/main/core/net/producer/RegistryEventProducer.java similarity index 100% rename from Server/src/main/java/core/net/producer/RegistryEventProducer.java rename to Server/src/main/core/net/producer/RegistryEventProducer.java diff --git a/Server/src/main/java/core/net/registry/AccountRegister.java b/Server/src/main/core/net/registry/AccountRegister.java similarity index 95% rename from Server/src/main/java/core/net/registry/AccountRegister.java rename to Server/src/main/core/net/registry/AccountRegister.java index 4d69a7c7b..349613841 100644 --- a/Server/src/main/java/core/net/registry/AccountRegister.java +++ b/Server/src/main/core/net/registry/AccountRegister.java @@ -4,12 +4,11 @@ import core.cache.misc.buffer.ByteBufferUtils; import core.game.system.task.Pulse; import core.net.Constants; import core.net.IoSession; -import rs09.ServerConstants; -import rs09.auth.UserAccountInfo; -import rs09.game.system.SystemLogger; -import rs09.game.world.GameWorld; -import rs09.net.event.LoginReadEvent; -import rs09.net.packet.in.Login; +import core.ServerConstants; +import core.auth.UserAccountInfo; +import core.tools.SystemLogger; +import core.game.world.GameWorld; +import core.net.packet.in.Login; import java.nio.ByteBuffer; import java.util.regex.Matcher; diff --git a/Server/src/main/java/core/net/registry/RegistryDetails.java b/Server/src/main/core/net/registry/RegistryDetails.java similarity index 100% rename from Server/src/main/java/core/net/registry/RegistryDetails.java rename to Server/src/main/core/net/registry/RegistryDetails.java diff --git a/Server/src/main/java/core/net/registry/RegistryResponse.java b/Server/src/main/core/net/registry/RegistryResponse.java similarity index 100% rename from Server/src/main/java/core/net/registry/RegistryResponse.java rename to Server/src/main/core/net/registry/RegistryResponse.java diff --git a/Server/src/main/kotlin/rs09/plugin/ClassScanner.kt b/Server/src/main/core/plugin/ClassScanner.kt similarity index 83% rename from Server/src/main/kotlin/rs09/plugin/ClassScanner.kt rename to Server/src/main/core/plugin/ClassScanner.kt index 2bd6a1902..92bf3b8de 100644 --- a/Server/src/main/kotlin/rs09/plugin/ClassScanner.kt +++ b/Server/src/main/core/plugin/ClassScanner.kt @@ -1,9 +1,8 @@ -package rs09.plugin +package core.plugin -import api.* -import core.game.content.activity.ActivityManager -import core.game.content.activity.ActivityPlugin -import core.game.content.dialogue.DialoguePlugin +import core.api.* +import core.game.activity.ActivityManager +import core.game.activity.ActivityPlugin import core.game.node.entity.Entity import core.game.node.entity.player.info.login.LoginConfiguration import core.game.node.entity.player.link.quest.Quest @@ -11,21 +10,17 @@ import core.game.node.entity.player.link.quest.QuestRepository import core.game.world.map.Location import core.game.world.map.zone.MapZone import core.game.world.map.zone.ZoneBuilder -import core.plugin.Plugin -import core.plugin.PluginManifest -import core.plugin.PluginType import io.github.classgraph.ClassGraph import io.github.classgraph.ClassInfo import io.github.classgraph.ScanResult -import rs09.game.ai.general.scriptrepository.PlayerScripts -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InterfaceListener -import rs09.game.node.entity.player.info.login.PlayerSaveParser -import rs09.game.node.entity.player.info.login.PlayerSaver -import rs09.game.system.SystemLogger -import rs09.game.system.SystemLogger.logStartup -import rs09.game.world.GameWorld +import core.game.bots.PlayerScripts +import core.game.interaction.InteractionListener +import core.game.interaction.InterfaceListener +import core.game.node.entity.player.info.login.PlayerSaveParser +import core.game.node.entity.player.info.login.PlayerSaver +import core.tools.SystemLogger +import core.tools.SystemLogger.logStartup +import core.game.world.GameWorld import java.util.function.Consumer /** @@ -77,7 +72,7 @@ object ClassScanner { } private fun loadContentInterfacesFrom(scanResults: ScanResult) { - scanResults.getClassesImplementing("api.ContentInterface").filter { !it.isAbstract }.forEach { + scanResults.getClassesImplementing("core.api.ContentInterface").filter { !it.isAbstract }.forEach { try { val clazz = it.loadClass().newInstance() if(clazz is LoginListener) GameWorld.loginListeners.add(clazz) @@ -141,7 +136,7 @@ object ClassScanner { } catch (t: Throwable) { SystemLogger.logErr(this::class.java, "Failed to load plugin ${p.name}."); - if (t is NoSuchMethodException && p.superclass.simpleName == DialoguePlugin::class.simpleName) { + if (t is NoSuchMethodException && p.superclass.simpleName == core.game.dialogue.DialoguePlugin::class.simpleName) { SystemLogger.logErr(this::class.java, "Make sure the constructor signature matches " + "`${p.simpleName}(player: Player? = null) : DialoguePlugin(player)'." @@ -152,10 +147,10 @@ object ClassScanner { } }) - scanResults.getClassesWithAnnotation("rs09.game.ai.general.scriptrepository.PlayerCompatible").forEach { res -> - val description = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptDescription").parameterValues[0].value as Array - val identifier = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptIdentifier").parameterValues[0].value.toString() - val name = res.getAnnotationInfo("rs09.game.ai.general.scriptrepository.ScriptName").parameterValues[0].value.toString() + scanResults.getClassesWithAnnotation("core.game.bots.PlayerCompatible").forEach { res -> + val description = res.getAnnotationInfo("core.game.bots.ScriptDescription").parameterValues[0].value as Array + val identifier = res.getAnnotationInfo("core.game.bots.ScriptIdentifier").parameterValues[0].value.toString() + val name = res.getAnnotationInfo("core.game.bots.ScriptName").parameterValues[0].value.toString() PlayerScripts.identifierMap[identifier] = PlayerScripts.PlayerScript(identifier, description, name, res.loadClass()) } } @@ -192,7 +187,7 @@ object ClassScanner { plugin.newInstance(null) } else { when (manifest.type) { - PluginType.DIALOGUE -> (plugin as DialoguePlugin).init() + PluginType.DIALOGUE -> (plugin as core.game.dialogue.DialoguePlugin).init() PluginType.ACTIVITY -> ActivityManager.register(plugin as ActivityPlugin) PluginType.LOGIN -> LoginConfiguration.getLoginPlugins().add(plugin as Plugin) PluginType.QUEST -> { diff --git a/Server/src/main/java/core/plugin/CorePluginTypes/ManagerPlugin.java b/Server/src/main/core/plugin/CorePluginTypes/ManagerPlugin.java similarity index 100% rename from Server/src/main/java/core/plugin/CorePluginTypes/ManagerPlugin.java rename to Server/src/main/core/plugin/CorePluginTypes/ManagerPlugin.java diff --git a/Server/src/main/java/core/plugin/CorePluginTypes/Managers.java b/Server/src/main/core/plugin/CorePluginTypes/Managers.java similarity index 91% rename from Server/src/main/java/core/plugin/CorePluginTypes/Managers.java rename to Server/src/main/core/plugin/CorePluginTypes/Managers.java index bfa1c1f1f..0ebb503a4 100644 --- a/Server/src/main/java/core/plugin/CorePluginTypes/Managers.java +++ b/Server/src/main/core/plugin/CorePluginTypes/Managers.java @@ -1,7 +1,5 @@ package core.plugin.CorePluginTypes; -import rs09.game.system.SystemLogger; - import java.util.ArrayList; import java.util.List; diff --git a/Server/src/main/java/core/plugin/CorePluginTypes/StartupPlugin.java b/Server/src/main/core/plugin/CorePluginTypes/StartupPlugin.java similarity index 100% rename from Server/src/main/java/core/plugin/CorePluginTypes/StartupPlugin.java rename to Server/src/main/core/plugin/CorePluginTypes/StartupPlugin.java diff --git a/Server/src/main/kotlin/rs09/plugin/CorePluginTypes/XPGainPlugins.kt b/Server/src/main/core/plugin/CorePluginTypes/XPGainPlugins.kt similarity index 94% rename from Server/src/main/kotlin/rs09/plugin/CorePluginTypes/XPGainPlugins.kt rename to Server/src/main/core/plugin/CorePluginTypes/XPGainPlugins.kt index 5659bf437..976ca3ded 100644 --- a/Server/src/main/kotlin/rs09/plugin/CorePluginTypes/XPGainPlugins.kt +++ b/Server/src/main/core/plugin/CorePluginTypes/XPGainPlugins.kt @@ -1,4 +1,4 @@ -package rs09.plugin.CorePluginTypes +package core.plugin.CorePluginTypes import core.game.node.entity.player.Player import core.plugin.Plugin diff --git a/Server/src/main/java/core/plugin/Initializable.java b/Server/src/main/core/plugin/Initializable.java similarity index 100% rename from Server/src/main/java/core/plugin/Initializable.java rename to Server/src/main/core/plugin/Initializable.java diff --git a/Server/src/main/java/core/plugin/Plugin.java b/Server/src/main/core/plugin/Plugin.java similarity index 100% rename from Server/src/main/java/core/plugin/Plugin.java rename to Server/src/main/core/plugin/Plugin.java diff --git a/Server/src/main/java/core/plugin/PluginManifest.java b/Server/src/main/core/plugin/PluginManifest.java similarity index 100% rename from Server/src/main/java/core/plugin/PluginManifest.java rename to Server/src/main/core/plugin/PluginManifest.java diff --git a/Server/src/main/java/core/plugin/PluginType.java b/Server/src/main/core/plugin/PluginType.java similarity index 100% rename from Server/src/main/java/core/plugin/PluginType.java rename to Server/src/main/core/plugin/PluginType.java diff --git a/Server/src/main/kotlin/rs09/storage/AccountStorageProvider.kt b/Server/src/main/core/storage/AccountStorageProvider.kt similarity index 87% rename from Server/src/main/kotlin/rs09/storage/AccountStorageProvider.kt rename to Server/src/main/core/storage/AccountStorageProvider.kt index adf5a4853..6159a69a6 100644 --- a/Server/src/main/kotlin/rs09/storage/AccountStorageProvider.kt +++ b/Server/src/main/core/storage/AccountStorageProvider.kt @@ -1,6 +1,6 @@ -package rs09.storage +package core.storage -import rs09.auth.UserAccountInfo +import core.auth.UserAccountInfo interface AccountStorageProvider { fun checkUsernameTaken(username: String): Boolean diff --git a/Server/src/main/kotlin/rs09/storage/InMemoryStorageProvider.kt b/Server/src/main/core/storage/InMemoryStorageProvider.kt similarity index 94% rename from Server/src/main/kotlin/rs09/storage/InMemoryStorageProvider.kt rename to Server/src/main/core/storage/InMemoryStorageProvider.kt index 2e5d6fd88..5337afe35 100644 --- a/Server/src/main/kotlin/rs09/storage/InMemoryStorageProvider.kt +++ b/Server/src/main/core/storage/InMemoryStorageProvider.kt @@ -1,6 +1,6 @@ -package rs09.storage +package core.storage -import rs09.auth.UserAccountInfo +import core.auth.UserAccountInfo class InMemoryStorageProvider : AccountStorageProvider { private val storage = HashMap() diff --git a/Server/src/main/kotlin/rs09/storage/SQLStorageProvider.kt b/Server/src/main/core/storage/SQLStorageProvider.kt similarity index 98% rename from Server/src/main/kotlin/rs09/storage/SQLStorageProvider.kt rename to Server/src/main/core/storage/SQLStorageProvider.kt index 5fa6bda8b..e24e224e1 100644 --- a/Server/src/main/kotlin/rs09/storage/SQLStorageProvider.kt +++ b/Server/src/main/core/storage/SQLStorageProvider.kt @@ -1,9 +1,8 @@ -package rs09.storage +package core.storage import core.game.system.communication.CommunicationInfo -import rs09.auth.UserAccountInfo -import rs09.game.system.SystemLogger -import rs09.game.world.repository.Repository +import core.auth.UserAccountInfo +import core.game.world.repository.Repository import java.lang.Long.max import java.sql.* diff --git a/Server/src/main/java/core/tools/CP1252.java b/Server/src/main/core/tools/CP1252.java similarity index 100% rename from Server/src/main/java/core/tools/CP1252.java rename to Server/src/main/core/tools/CP1252.java diff --git a/Server/src/main/kotlin/rs09/tools/DialogueConst.kt b/Server/src/main/core/tools/DialogueConst.kt similarity index 93% rename from Server/src/main/kotlin/rs09/tools/DialogueConst.kt rename to Server/src/main/core/tools/DialogueConst.kt index bdd2e23f4..0e5a605ea 100644 --- a/Server/src/main/kotlin/rs09/tools/DialogueConst.kt +++ b/Server/src/main/core/tools/DialogueConst.kt @@ -1,4 +1,4 @@ -package rs09.tools +package core.tools const val START_DIALOGUE = 0 const val END_DIALOGUE = 1000000 diff --git a/Server/src/main/kotlin/rs09/tools/Globals.kt b/Server/src/main/core/tools/Globals.kt similarity index 88% rename from Server/src/main/kotlin/rs09/tools/Globals.kt rename to Server/src/main/core/tools/Globals.kt index 238cb28f1..ed2f85f40 100644 --- a/Server/src/main/kotlin/rs09/tools/Globals.kt +++ b/Server/src/main/core/tools/Globals.kt @@ -1,4 +1,4 @@ -package rs09.tools.stringtools +package core.tools const val RED = "" const val ORANGE = "" @@ -10,10 +10,10 @@ const val PURPLE = "" fun colorize(line: String): String{ val new = line.replace("%R", RED) .replace("%O", ORANGE) - .replace("%Y",YELLOW) - .replace("%G",GREEN) - .replace("%B",BLUE) - .replace("%P",PURPLE).append("") + " " + .replace("%Y", YELLOW) + .replace("%G", GREEN) + .replace("%B", BLUE) + .replace("%P", PURPLE).append("") + " " return new } diff --git a/Server/src/main/java/core/tools/PlayerLoader.java b/Server/src/main/core/tools/PlayerLoader.java similarity index 100% rename from Server/src/main/java/core/tools/PlayerLoader.java rename to Server/src/main/core/tools/PlayerLoader.java diff --git a/Server/src/main/java/core/tools/RSAKeyGen.java b/Server/src/main/core/tools/RSAKeyGen.java similarity index 100% rename from Server/src/main/java/core/tools/RSAKeyGen.java rename to Server/src/main/core/tools/RSAKeyGen.java diff --git a/Server/src/main/java/core/tools/RandomFunction.java b/Server/src/main/core/tools/RandomFunction.java similarity index 100% rename from Server/src/main/java/core/tools/RandomFunction.java rename to Server/src/main/core/tools/RandomFunction.java diff --git a/Server/src/main/java/core/tools/StringUtils.java b/Server/src/main/core/tools/StringUtils.java similarity index 100% rename from Server/src/main/java/core/tools/StringUtils.java rename to Server/src/main/core/tools/StringUtils.java diff --git a/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt b/Server/src/main/core/tools/SystemLogger.kt similarity index 98% rename from Server/src/main/kotlin/rs09/game/system/SystemLogger.kt rename to Server/src/main/core/tools/SystemLogger.kt index 4ad223b2b..48334133f 100644 --- a/Server/src/main/kotlin/rs09/game/system/SystemLogger.kt +++ b/Server/src/main/core/tools/SystemLogger.kt @@ -1,8 +1,8 @@ -package rs09.game.system +package core.tools import com.github.ajalt.mordant.rendering.TextColors import com.github.ajalt.mordant.terminal.* -import rs09.ServerConstants +import core.ServerConstants import java.io.BufferedWriter import java.io.File import java.io.FileWriter diff --git a/Server/src/main/kotlin/rs09/tools/TickUtils.kt b/Server/src/main/core/tools/TickUtils.kt similarity index 95% rename from Server/src/main/kotlin/rs09/tools/TickUtils.kt rename to Server/src/main/core/tools/TickUtils.kt index db78fdea9..3d449d4ab 100644 --- a/Server/src/main/kotlin/rs09/tools/TickUtils.kt +++ b/Server/src/main/core/tools/TickUtils.kt @@ -1,4 +1,4 @@ -package rs09.tools +package core.tools const val tick = 600 //ms const val second = 1000 //ms diff --git a/Server/src/main/java/core/tools/TimeStamp.java b/Server/src/main/core/tools/TimeStamp.java similarity index 100% rename from Server/src/main/java/core/tools/TimeStamp.java rename to Server/src/main/core/tools/TimeStamp.java diff --git a/Server/src/main/java/core/tools/Vector3d.java b/Server/src/main/core/tools/Vector3d.java similarity index 100% rename from Server/src/main/java/core/tools/Vector3d.java rename to Server/src/main/core/tools/Vector3d.java diff --git a/Server/src/main/java/core/tools/mysql/Database.java b/Server/src/main/core/tools/mysql/Database.java similarity index 100% rename from Server/src/main/java/core/tools/mysql/Database.java rename to Server/src/main/core/tools/mysql/Database.java diff --git a/Server/src/main/java/core/tools/mysql/Query.java b/Server/src/main/core/tools/mysql/Query.java similarity index 100% rename from Server/src/main/java/core/tools/mysql/Query.java rename to Server/src/main/core/tools/mysql/Query.java diff --git a/Server/src/main/java/core/tools/mysql/Results.java b/Server/src/main/core/tools/mysql/Results.java similarity index 100% rename from Server/src/main/java/core/tools/mysql/Results.java rename to Server/src/main/core/tools/mysql/Results.java diff --git a/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt b/Server/src/main/core/worker/MajorUpdateWorker.kt similarity index 90% rename from Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt rename to Server/src/main/core/worker/MajorUpdateWorker.kt index 1a2d26073..b8df091ac 100644 --- a/Server/src/main/kotlin/rs09/worker/MajorUpdateWorker.kt +++ b/Server/src/main/core/worker/MajorUpdateWorker.kt @@ -1,17 +1,17 @@ -package rs09.worker +package core.worker -import api.submitWorldPulse +import core.api.submitWorldPulse import core.game.system.task.Pulse import core.plugin.CorePluginTypes.Managers -import rs09.Server -import rs09.ServerConstants -import rs09.ServerStore -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.game.world.update.UpdateSequence -import rs09.net.packet.PacketProcessor -import rs09.tools.stringtools.colorize +import core.Server +import core.ServerConstants +import core.ServerStore +import core.tools.SystemLogger +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.game.world.update.UpdateSequence +import core.net.packet.PacketProcessor +import core.tools.colorize import java.lang.Long.max import java.text.SimpleDateFormat import java.util.* diff --git a/Server/src/main/kotlin/rs09/worker/ManagementEvents.kt b/Server/src/main/core/worker/ManagementEvents.kt similarity index 97% rename from Server/src/main/kotlin/rs09/worker/ManagementEvents.kt rename to Server/src/main/core/worker/ManagementEvents.kt index 1ee764f80..61922c708 100644 --- a/Server/src/main/kotlin/rs09/worker/ManagementEvents.kt +++ b/Server/src/main/core/worker/ManagementEvents.kt @@ -1,8 +1,7 @@ -package rs09.worker +package core.worker -import api.sendMessage +import core.api.sendMessage import com.google.protobuf.Message -import core.game.node.entity.player.Player import core.game.system.communication.ClanEntry import core.game.system.communication.ClanRank import core.game.system.communication.ClanRepository @@ -30,16 +29,15 @@ import proto.management.SendClanInfo import proto.management.SendClanInfo.ClanMember import proto.management.SendContactInfo import proto.management.SendContactInfo.Contact -import rs09.ServerConstants -import rs09.auth.UserAccountInfo -import rs09.game.system.SystemLogger -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository +import core.ServerConstants +import core.auth.UserAccountInfo +import core.tools.SystemLogger +import core.game.world.GameWorld +import core.game.world.repository.Repository import java.util.Deque import java.util.LinkedList import java.util.concurrent.BlockingDeque import java.util.concurrent.LinkedBlockingDeque -import kotlin.reflect.jvm.internal.impl.descriptors.Visibilities.Private /** * Processes management-related events e.g clan messages, etc. diff --git a/Server/src/main/java/core/game/content/consumable/CookingProperties.java b/Server/src/main/java/core/game/content/consumable/CookingProperties.java deleted file mode 100644 index 3e67b97e3..000000000 --- a/Server/src/main/java/core/game/content/consumable/CookingProperties.java +++ /dev/null @@ -1,304 +0,0 @@ -//package org.crandor.game.content.global.consumable; -// -//import org.crandor.game.content.global.SkillcapePerks; -//import core.game.node.entity.skill.Skills; -//import org.crandor.game.node.entity.player.Player; -//import org.crandor.game.node.entity.player.info.portal.Perks; -//import org.crandor.game.node.entity.player.link.audio.Audio; -//import org.crandor.game.node.item.Item; -//import org.crandor.game.node.object.GameObject; -// -//import java.security.SecureRandom; -// -///** -// * Represents the properties used when cooking the food. -// * @author 'Vexia -// * @date 22/12/2013 -// */ -//public class CookingProperties { -// -// /** -// * Represents the secure random. -// */ -// private static final SecureRandom RANDOM = new SecureRandom(); -// -// /** -// * Represents the cooking sound. -// */ -// private static final Audio SOUND = new Audio(65, 10, 0); -// -// /** -// * Represents the cooking gauntlets item. -// */ -// private static final Item GAUNTLETS = new Item(775); -// -// /** -// * Represents the fail message to display when burning food. -// */ -// public static final String FAIL_MESSAGE = "Oops! You accidently burnt the @name.."; -// -// /** -// * Represents the level needed to cook the item. -// */ -// private final int level; -// -// /** -// * Represents the cooking experience gained. -// */ -// private final double experience; -// -// /** -// * Represents the level the food stops burning at on the fire. -// */ -// private final int fireBurnLevel; -// -// /** -// * Represents the level the food stops burning at on the range. -// */ -// private final int rangeBurnLevel; -// -// /** -// * Represents the level the food stops burning at when wearing gauntlets. -// */ -// private final int gauntletsBurnLevel; -// -// /** -// * Represents if its a range only food (meaning only can be used on a range -// * not fire). -// */ -// private final boolean range; -// -// /** -// * Represents if its an iron spit roast. -// */ -// private final boolean spit; -// -// /** -// * Represents the messages displayed when cooking. -// */ -// private String[] messages = null; -// -// /** -// * Constructs a new {@code CookingProperties} {@code Object}. -// * @param level the level. -// * @param experience the experience. -// * @param fireBurnLevel the burning level. -// * @param rangeBurnLevel the burning level on the range. -// * @param gauntletsBurnLevel the burning level with gauntlets. -// * @param range if the food can only be used on a range. -// * @param spit if its an iron spit item. -// */ -// public CookingProperties(int level, double experience, int burnLevel, int rangeBurnLevel, int gauntletsBurnLevel, boolean range, boolean spit, final String... messages) { -// this.level = level; -// this.experience = experience; -// this.fireBurnLevel = burnLevel; -// this.rangeBurnLevel = rangeBurnLevel; -// this.gauntletsBurnLevel = gauntletsBurnLevel; -// this.range = range; -// this.spit = spit; -// this.messages = messages; -// } -// -// /** -// * Constructs a new {@code CookingProperties} {@code Object}. -// * @param level the level. -// * @param experience the experience. -// * @param fireBurnLevel the burning level. -// * @param messages the messages -// */ -// public CookingProperties(final int level, final double experience, final int burnLevel, final String... messages) { -// this(level, experience, burnLevel, burnLevel, burnLevel, false, false, messages); -// } -// -// /** -// * Constructs a new {@code CookingProperties} {@code Object}. -// * @param level the level. -// * @param experience the experience. -// * @param fireBurnLevel the burning level. -// * @param range if its a range item. -// * @param spit if its on an iron spit. -// * @param messages the messages -// */ -// public CookingProperties(final int level, final double experience, final int burnLevel, boolean range, boolean spit, final String... messages) { -// this(level, experience, burnLevel, burnLevel, burnLevel, false, spit, messages); -// } -// -// /** -// * Constructs a new {@code CookingProperties} {@code Object}. -// * @param level the level. -// * @param experience the experience. -// * @param fireBurnLevel the burning level. -// * @param range if its only cookable on the range -// * @param messages the messages -// */ -// public CookingProperties(final int level, final double experience, final int burnLevel, final boolean range, final String... messages) { -// this(level, experience, burnLevel, burnLevel, burnLevel, range, false, messages); -// } -// -// /** -// * Constructs a new {@code CookingProperties} {@code Object}. -// * @param level the level. -// * @param experience the experience. -// * @param fireBurnLevel the burning level. -// * @param rangeBurnLevel the range burning level. -// * @param gauntLetsBurnLevel the gauntletsBurn level. -// */ -// public CookingProperties(final int level, final double experience, final int burnLevel, final int rangeBurnLevel, final int gauntletsBurnLevel) { -// this(level, experience, burnLevel, rangeBurnLevel, gauntletsBurnLevel, false, false); -// } -// -// /** -// * Method used to cook a food. This method can be overried to intercept the -// * way a food is cooked. A prime example of how this can be used is with the -// * sinew consumable food. -// * @param food the food we're cooking. -// * @param player the player. -// * @param object the object. -// * @return True if we we're succesfull. -// */ -// public boolean cook(final Food food, final Player player, final GameObject object) { -// return cook(food, player, object, isBurned(player, object)); -// } -// -// /** -// * Method used to cook a food. This method can be overried to intercept the -// * way a food is cooked. A prime example of how this can be used is with the -// * sinew consumable food. -// * @param food the food we're cooking. -// * @param player the player. -// * @param object the object. -// * @param if it's burned. -// * @return True if we we're succesfull. -// */ -// public boolean cook(final Food food, final Player player, final GameObject object, final boolean burned) { -// if (player.getInventory().remove(food.getRaw())) { -// if (!burned) { -// Item item = food.getItem(); -// player.getInventory().add(item); -// Perks.addDouble(player, item); -// } else { -// player.getInventory().add(food.getBurnt()); -// } -// player.getSkills().addExperience(Skills.COOKING, burned ? 0 : getExperience(), true); -// player.getPacketDispatch().sendMessage(getMessage(food, player, object, burned)); -// player.getAudioManager().send(SOUND); -// return true; -// } -// return false; -// } -// -// /** -// * Gets the level. -// * @return The level. -// */ -// public int getLevel() { -// return level; -// } -// -// /** -// * Gets the experience. -// * @return The experience. -// */ -// public double getExperience() { -// return experience; -// } -// -// /** -// * Gets the fireBurnLevel. -// * @return The fireBurnLevel. -// */ -// public int getBurnLevel() { -// return fireBurnLevel; -// } -// -// /** -// * Gets the range. -// * @return The range. -// */ -// public boolean isRange() { -// return range; -// } -// -// /** -// * Gets the fireBurnLevel. -// * @return The fireBurnLevel. -// */ -// public int getFireBurnLevel() { -// return fireBurnLevel; -// } -// -// /** -// * Gets the rangeBurnLevel. -// * @return The rangeBurnLevel. -// */ -// public int getRangeBurnLevel() { -// return rangeBurnLevel; -// } -// -// /** -// * Gets the gauntletsBurnLevel. -// * @return The gauntletsBurnLevel. -// */ -// public int getGauntletsBurnLevel() { -// return gauntletsBurnLevel; -// } -// -// /** -// * Gets the spit. -// * @return The spit. -// */ -// public boolean isSpit() { -// return spit; -// } -// -// /** -// * Gets the burning level depicted by if the player has cooking gauntlets -// * on, or effected by the object they are interactign with. -// * @param player the player cooking. -// * @param object the object we check. -// * @return the level at which the player stops burning. -// */ -// private final int getBurnLevel(final Player player, final GameObject object) { -// return player.getEquipment().containsItem(GAUNTLETS) ? gauntletsBurnLevel : object.getName().toLowerCase().equals("fire") ? fireBurnLevel : rangeBurnLevel; -// } -// -// /** -// * Gets the true/false value if the food is burned by the player. -// * @param player the player. -// * @param object the object. -// * @return True if the food is burned or not. -// */ -// public boolean isBurned(final Player player, final GameObject object) { -// if (SkillcapePerks.hasSkillcapePerk(player, SkillcapePerks.COOKING)) { -// return false; -// } -// if (player.getSkills().getLevel(Skills.COOKING) > getBurnLevel(player, object)) { -// return false; -// } -// double burn_chance = 60.0 + (object.getName().equals("fire") ? 1.00 : 0) - (object.getId() == 114 ? 1.00 : 0); -// if (player.getDetails().getShop().hasPerk(Perks.MASTER_CHEF)) { -// burn_chance -= (burn_chance * 0.20); -// } -// double cook_level = (double) player.getSkills().getLevel(Skills.COOKING); -// double lev_needed = (double) getLevel(); -// double burn_stop = (double) getBurnLevel(player, object); -// double multi_a = (burn_stop - lev_needed); -// double burn_dec = (burn_chance / multi_a); -// double multi_b = (cook_level - lev_needed); -// burn_chance -= (multi_b * burn_dec); -// double randNum = RANDOM.nextDouble() * 100.0; -// return burn_chance <= randNum ? false : true; -// } -// -// /** -// * Gets the message displayed when the food is cooked or burned. -// * @param food the food we're cooking/burning. -// * @param player the player. -// * @param object the object we're cooking on. -// * @param burned if the food is burned. -// * @return the message to display. -// */ -// public String getMessage(final Food food, final Player player, final GameObject object, final boolean burned) { -// return messages != null && messages.length != 0 ? messages[burned ? 1 : 0].replace("@name", food.getItem().getName().toLowerCase()) : burned ? FAIL_MESSAGE.replace("@name", food.getItem().getName().toLowerCase()) + "." : "You successfully cook the " + food.getItem().getName().toLowerCase() + "."; -// } -//} diff --git a/Server/src/main/java/core/game/content/dialogue/BanditCampBartenderDialogue.java b/Server/src/main/java/core/game/content/dialogue/BanditCampBartenderDialogue.java deleted file mode 100644 index 152a7bb12..000000000 --- a/Server/src/main/java/core/game/content/dialogue/BanditCampBartenderDialogue.java +++ /dev/null @@ -1,52 +0,0 @@ -package core.game.content.dialogue; - -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Handles the Bandit Camp Bartender dialogue - * @author Aero - * @version 1.0 - */ -@Initializable -public class BanditCampBartenderDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code BanditCampBartender} {@code Object}. - */ - public BanditCampBartenderDialogue() { - /** - * Empty to stop instantiation. - */ - } - - /** - * Constructs a new {@code BanditCampBartender} {@code Object}. - * @param player The player to construct the class for. - */ - public BanditCampBartenderDialogue(final Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new BanditCampBartenderDialogue(player); - } - - @Override - public boolean open(Object... args) { - - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - return true; - } - - @Override - public int[] getIds() { - return new int[] { 1921 }; - } - -} diff --git a/Server/src/main/java/core/game/content/dialogue/CallistoCubDialogue.java b/Server/src/main/java/core/game/content/dialogue/CallistoCubDialogue.java deleted file mode 100644 index 28bbb725e..000000000 --- a/Server/src/main/java/core/game/content/dialogue/CallistoCubDialogue.java +++ /dev/null @@ -1,87 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Calliso JR - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class CallistoCubDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public CallistoCubDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public CallistoCubDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new CallistoCubDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Why the grizzly face?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "You're not funny..."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "You should get in the.... sun more."); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "You're really not funny..."); - stage = 3; - break; - case 3: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "One second, let me take a picture of you with my....", "kodiak camera."); - stage = 4; - break; - case 4: - npc(FacialExpression.OLD_NORMAL, "..."); - stage = 5; - break; - case 5: - player("Feeling... blue."); - stage = 6; - break; - case 6: - npc(FacialExpression.OLD_NORMAL, "If you don't stop, I'm going to leave some...", "brown... at your feet, human."); - stage = 7; - break; - case 7: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8597 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/ChaosElementalJRDialogue.java b/Server/src/main/java/core/game/content/dialogue/ChaosElementalJRDialogue.java deleted file mode 100644 index e4b9d9230..000000000 --- a/Server/src/main/java/core/game/content/dialogue/ChaosElementalJRDialogue.java +++ /dev/null @@ -1,71 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Chaos Ele JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class ChaosElementalJRDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public ChaosElementalJRDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public ChaosElementalJRDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new ChaosElementalJRDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Is it true a level 3 skiller caught one of your", "siblings?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Yes, they killed my mummy, kidnapped", "my brother, smiled about it and","went to sleep."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Aww, well you have me now!", "I shall call you Squishy and you shall be","mine and you shall be my Squishy."); - stage = 2; - break; - case 2: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Come on, Squishy come on, little Squishy!"); - stage = 3; - break; - case 3: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8595 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/CrossbowDialogue.java b/Server/src/main/java/core/game/content/dialogue/CrossbowDialogue.java deleted file mode 100644 index 143002bcd..000000000 --- a/Server/src/main/java/core/game/content/dialogue/CrossbowDialogue.java +++ /dev/null @@ -1,116 +0,0 @@ -/* -package core.game.content.dialogue; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.fletching.items.crossbow.CrossbowPulse; -import core.game.node.entity.skill.fletching.items.crossbow.StringCross; -import org.crandor.game.node.entity.player.Player; -import org.crandor.game.node.entity.player.link.RunScript; -import org.crandor.plugin.InitializablePlugin; -import org.crandor.game.node.item.Item; - -*/ -/** - * Represents the dialogue plugin used for the crossbow. - * @author 'Vexia - * @version 1.0 - *//* - -@InitializablePlugin -public final class CrossbowDialogue extends DialoguePlugin { - - */ -/** - * Represents the item used. - *//* - - private Item item; - - */ -/** - * The string cross. - *//* - - private StringCross cross; - - */ -/** - * Constructs a new {@code CrossbowDialogue} {@code Object}. - *//* - - public CrossbowDialogue() { - */ -/** - * empty. - *//* - - } - - */ -/** - * Constructs a new {@code CrossbowDialogue.java} {@code Object}. - * @param player - *//* - - public CrossbowDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new CrossbowDialogue(player); - } - - @Override - public boolean open(Object... args) { - item = (Item) args[0]; - cross = StringCross.forItem(item); - if (cross == null) { - return true; - } - player.getInterfaceManager().openChatbox(309); - player.getPacketDispatch().sendString("



" + cross.getProduct().getName(), 309, 6); - player.getPacketDispatch().sendItemZoomOnInterface(cross.getProduct().getId(), 160, 309, 2); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - end(); - int amt = 0; - switch (buttonId) { - case 6: - amt = 1; - break; - case 5: - amt = 5; - break; - case 4: - player.setAttribute("runscript", new RunScript() { - @Override - public boolean handle() { - int ammount = (int) value; - player.getPulseManager().run(new CrossbowPulse(player, item, cross, ammount)); - return false; - } - }); - player.getDialogueInterpreter().sendInput(false, "Enter the amount"); - return true; - case 3: - amt = player.getInventory().getAmount(item); - break; - } - player.getPulseManager().run(new CrossbowPulse(player, item, cross, amt)); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 92747 }; - } -} -*/ diff --git a/Server/src/main/java/core/game/content/dialogue/DartCreateDialogue.java b/Server/src/main/java/core/game/content/dialogue/DartCreateDialogue.java deleted file mode 100644 index 061f4fc4c..000000000 --- a/Server/src/main/java/core/game/content/dialogue/DartCreateDialogue.java +++ /dev/null @@ -1,105 +0,0 @@ -/* -package core.game.content.dialogue; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.fletching.items.darts.Dart; -import core.game.node.entity.skill.fletching.items.darts.DartPulse; -import org.crandor.game.node.entity.player.Player; -import org.crandor.plugin.InitializablePlugin; -import org.crandor.game.node.item.Item; - -*/ -/** - * Represents the dart creating dialogue. - * @author 'Vexia - * @version 1.0 - *//* - -@InitializablePlugin -public final class DartCreateDialogue extends DialoguePlugin { - - */ -/** - * Represents the first item parameter. - *//* - - private Item item; - - */ -/** - * Represents the second item parameter. - *//* - - private Item second; - - */ -/** - * Represents the dark. - *//* - - private Dart dart; - - */ -/** - * Constructs a new {@code DartCreateDialogue} {@code Object}. - *//* - - public DartCreateDialogue() { - */ -/** - * empty. - *//* - - } - - */ -/** - * Constructs a new {@code DartCreateDialogue} {@code Object}. - * @param player the player. - *//* - - public DartCreateDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new DartCreateDialogue(player); - } - - @Override - public boolean open(Object... args) { - item = (Item) args[0]; - second = (Item) args[1]; - dart = Dart.forItem(item.getName().toLowerCase().contains("feather") ? second : item); - player.getInterfaceManager().openChatbox(582); - player.getPacketDispatch().sendString("



" + dart.getProduct().getName(), 582, 5); - player.getPacketDispatch().sendItemZoomOnInterface(dart.getProduct().getId(), 160, 582, 2); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - end(); - int amount = 0; - switch (buttonId) { - case 4: - amount = 5; - break; - case 5: - amount = 1; - break; - case 3: - amount = 10; - break; - } - player.getPulseManager().run(new DartPulse(player, item, dart, amount)); - return true; - } - - @Override - public int[] getIds() { - return new int[] { 328933 }; - } -} -*/ diff --git a/Server/src/main/java/core/game/content/dialogue/EventLocatorDialoguePlugin.java b/Server/src/main/java/core/game/content/dialogue/EventLocatorDialoguePlugin.java deleted file mode 100644 index 4925b502d..000000000 --- a/Server/src/main/java/core/game/content/dialogue/EventLocatorDialoguePlugin.java +++ /dev/null @@ -1,275 +0,0 @@ -package core.game.content.dialogue; - -import rs09.ServerConstants; -import core.plugin.Initializable; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.player.Player; -import core.game.world.map.Location; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -/** - * Package -> core.game.content.dialogue - * Created on -> 9/7/2016 @10:33 PM for 530 - * - * @author Ethan Kyle Millard - */ -@Initializable -public class EventLocatorDialoguePlugin extends DialoguePlugin { - - private String eventName; - - private HashMap GOLDEN_ESSENCE = new HashMap<>(), THIEVES_JACKPOT = new HashMap<>(), HARVESTING_DOUBLES = new HashMap<>(), ALCHEMY_HELLENISTIC = new HashMap<>(); - - - private Map> HOURLY_EVENTS = new HashMap<>(); - - - public EventLocatorDialoguePlugin() { - - } - - public EventLocatorDialoguePlugin(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new EventLocatorDialoguePlugin(player); - } - - @Override - public boolean open(Object... args) { - fill(); - eventName = (String) args[0]; - System.out.println(eventName); - if (eventName == null) { - player.sendMessage("There no events active currently."); - return false; - } - for (Map.Entry> entry : HOURLY_EVENTS.entrySet()) { - for (Map.Entry values : entry.getValue().entrySet()) { - for (int i = 0; i < values.getKey().length; i ++) - System.out.println("Location Index -> " + getIndex(values.getKey(), i) + " for Location -> " + values.getKey()); - switch (eventName) { - case "Alchemy hellenistic": - if (entry.getKey().equalsIgnoreCase(eventName)) { - options(values.getValue()); - stage = 0; - } - break; - case "Harvesting doubles": - if (entry.getKey().equalsIgnoreCase(eventName)) { - options("Mining", "Woodcutting", "Fishing"); - stage = 1; - } - break; - case "Thieves jackpot": - if (entry.getKey().equalsIgnoreCase(eventName)) { - options(values.getValue()); - stage = 5; - } - break; - case "Golden essence": - if (entry.getKey().equalsIgnoreCase(eventName)) { - options(values.getValue()); - stage = 6; - } - break; - } - } - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - for (Map.Entry> entry : HOURLY_EVENTS.entrySet()) { - for (Map.Entry values : entry.getValue().entrySet()) {//Minning - switch (stage) { - case 0: - switch (buttonId) { - case 1: - player.teleport(values.getKey()[2]);//Home - end(); - break; - case 2: - player.teleport(values.getKey()[3]);//Home - end(); - break; - } - break; - case 1: - switch (buttonId) { - case 1: - options(Arrays.copyOfRange(values.getValue(), 4, 5)); - stage = 2; - break; - case 2: - options(Arrays.copyOfRange(values.getValue(), 6, 7)); - stage = 3; - break; - case 3: - options(Arrays.copyOfRange(values.getValue(), 8, 10)); - stage = 4; - break; - } - break; - case 2: - switch (buttonId) { - case 1: - player.teleport(values.getKey()[4]);//Home - end(); - break; - case 2: - player.teleport(values.getKey()[5]);//Home - end(); - break; - } - break; - case 3: - switch (buttonId) { - case 1: - player.teleport(values.getKey()[6]);//Home - end(); - break; - case 2: - player.teleport(values.getKey()[7]);//Home - end(); - break; - } - break; - case 4: - switch (buttonId) { - case 1: - player.teleport(values.getKey()[8]);//Home - end(); - break; - case 2: - if (player.getSkills().getStaticLevel(Skills.FISHING) < 68) { - interpreter.sendDialogue("You must have at least 68 fishing to access this event location."); - stage = -2; - } else { - player.teleport(values.getKey()[9]);//Home - end(); - } - break; - case 3: - player.teleport(values.getKey()[10]);//Home - end(); - break; - } - break; - case 5: - switch (buttonId) { - case 1: - player.teleport(values.getKey()[11]);//Home - end(); - break; - case 2: - player.teleport(values.getKey()[12]);//Home - end(); - break; - } - break; - case 6: - switch (buttonId) { - case 1: - if (player.getQuestRepository().getQuest("Rune Mysteries").isCompleted(player)) { - player.teleport(values.getKey()[0]);//Home - end(); - } else { - interpreter.sendDialogue("You must have completed Rune Mysteries to access this", "event locator."); - stage = -2; - } - break; - case 2: - if (player.getQuestRepository().getQuest("Rune Mysteries").isCompleted(player) && player.getSkills().getLevel(Skills.MAGIC) >= 66) { - player.teleport(values.getKey()[1]);//Home - end(); - } else { - interpreter.sendDialogue("You must have completed Rune Mysteries and have a magic level of 66", " to access this event locator."); - stage = -2; - } - break; - } - break; - case -2: - end(); - break; - } - } - } - return false; - } - - private void fill() { - ALCHEMY_HELLENISTIC.put( - new Location[]{ - ServerConstants.HOME_LOCATION, - new Location(3164, 3485, 0) - }, - new String[]{ - "Home", "Grand Exchange" - }); - HARVESTING_DOUBLES.put( - new Location[]{ - new Location(3228, 3147, 0),//lumby - new Location(3184, 3374, 0),//varrock - new Location(2730, 3485, 0),//seers - new Location(2776, 3437, 0),//catherby yews - new Location(2842, 3440, 0),//catherby fish - new Location(2596, 3414, 0),//fishing guild - new Location(2338, 3701, 0)//pfc - }, - new String[]{ - //Mining Locations - "Lumbridge Swamp Mine (Copper, Tin)", "Varrock Mining Site (Clay, Iron, Tin)",//add rock names - //Woodcutting Locations - "Seers Village Forest (Normal, Oak, Maple, Yew)", "Catherby Yew Forest (Normal, Willow, Yew)",//add tree names - //Fishing Locations - "Catherby Fishing spot (Lobster, Tuna/Swordfish, Shark)", "Fishing Guild (Lobster, Tuna/Swordfish, Shark)", "Piscatoris Fishing Colony (Monkfish)"//Add fish names - }); - GOLDEN_ESSENCE.put( - new Location[] { - new Location(3104, 9571, 0), - new Location(2591, 3086, 0) - }, - new String[] { - "Wizards Tower Essence Mine", - "Magic Guild Essence Mine", - }); - THIEVES_JACKPOT.put( - new Location[]{ - new Location(3231, 3238, 0), - new Location(3154, 9646, 0) - }, - new String[]{ - "Lumbridge men", - "H.A.M Outlet" - }); - - HOURLY_EVENTS.put("Alchemy hellenistic", ALCHEMY_HELLENISTIC); - HOURLY_EVENTS.put("Harvesting Doubles", HARVESTING_DOUBLES); - HOURLY_EVENTS.put("Thieves jackpot", THIEVES_JACKPOT); - HOURLY_EVENTS.put("Golden essence", GOLDEN_ESSENCE); - } - - private int getIndex(Location[] loc, int value) { - for (int i = 0; i < loc.length; i ++) { - if (loc[i].getIndex() == value) { - return i; - } - } - return 0; - } - - @Override - public int[] getIds() { - return new int[] { - 175869 - }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/GraardoorJRDialogue.java b/Server/src/main/java/core/game/content/dialogue/GraardoorJRDialogue.java deleted file mode 100644 index 7fa94ca10..000000000 --- a/Server/src/main/java/core/game/content/dialogue/GraardoorJRDialogue.java +++ /dev/null @@ -1,67 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, General Graardoor JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class GraardoorJRDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code GraardoorJRDialogue} {@code Object}. - */ - public GraardoorJRDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code GraardoorJRDialogue} {@code Object}. - * @param player the player. - */ - public GraardoorJRDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new GraardoorJRDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Not sure this is going to be worth my time but...", "how are you?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "SFudghoigdfpDSOPGnbSOBNfdbdnopbdnopbddfnopdf", "pofhdARRRGGGGH!"); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Nope. Not worth it."); - stage = 2; - break; - case 2: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8594 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/HeronDialogue.java b/Server/src/main/java/core/game/content/dialogue/HeronDialogue.java deleted file mode 100644 index 096ad4cb8..000000000 --- a/Server/src/main/java/core/game/content/dialogue/HeronDialogue.java +++ /dev/null @@ -1,64 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Handles the heron dialgoue. - * @author Empathy - * - */ -@Initializable -public final class HeronDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code HeronDialogue} {@code Object}. - */ - public HeronDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code HeronDialogue} {@code Object}. - * - * @param player the player. - */ - public HeronDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new HeronDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Hop inside my mouth, if you want to live!"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'm not falling for that... I'm not a fish! I've got more", "foresight than that."); - stage = 1; - break; - case 1: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8647 }; - } - } diff --git a/Server/src/main/java/core/game/content/dialogue/KeyMasterDialoguePlugin.java b/Server/src/main/java/core/game/content/dialogue/KeyMasterDialoguePlugin.java deleted file mode 100644 index 65e0be363..000000000 --- a/Server/src/main/java/core/game/content/dialogue/KeyMasterDialoguePlugin.java +++ /dev/null @@ -1,182 +0,0 @@ -package core.game.content.dialogue; - -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Handles the key master dialogue. - * @author Empathy - * - */ -@Initializable -public class KeyMasterDialoguePlugin extends DialoguePlugin { - - /** - * Constructs a new @{Code KeyMasterDialoguePlugin} object. - */ - public KeyMasterDialoguePlugin() { - /** - * empty - */ - } - - /** - * Constructs a new @{Code KeyMasterDialoguePlugin} object. - * @param player - */ - public KeyMasterDialoguePlugin(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new KeyMasterDialoguePlugin(player); - } - - @Override - public boolean open(Object... args) { - player("Hello."); - stage = 1; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch(stage) { - case 1: - npc("Who goes there?"); - stage++; - break; - case 2: - npc("This is no place for a human. You need to leave."); - stage++; - break; - case 3: - player("Why?"); - stage++; - break; - case 4: - npc("The voices! The voices in my head!"); - stage++; - break; - case 5: - player("You're starting to scare me man..."); - stage++; - break; - case 6: - npc("I am no man! They changed me and cursed me to", "remain here..."); - stage++; - break; - case 7: - options("What do you mean they changed you?", "What was the curse?", "Goodbye"); - stage++; - break; - case 8: - switch(buttonId) { - case 1: - npc("I was once a free man, powerful and wealthy. I owned", "several apothecaries across Zeah and sold the tastiest", "potions in the land."); - stage = 20; - break; - case 2: - npc("I have been charged to stay here to prevent the", "Monstrosity from escaping. Those gates and the", "winches that operate them are the only thing that stops", "it from breaking free."); - stage = 40; - break; - case 3: - player("Goodbye."); - stage = 50; - break; - } - break; - case 20: - player("What happened?"); - stage++; - break; - case 21: - npc("One of my greatest inventions, it was going so well. I", "spent days finding the right herbs, I travelled across all", "of Zeah to find the most exotic weeds. Once I had", "gathered them all, I put them in a potion and mixed in"); - stage++; - break; - case 22: - npc("the final ingredient."); - stage++; - break; - case 23: - player("Zeah? Interesting..."); - stage++; - break; - case 24: - npc("Yes, yes... The potion tasted delicious but it was missing", "a tiny something so I added Magic roots to the potion.", "It started to pulsate and glow! I took a sip and I felt", "like a million gold! A few seconds later my eye sight"); - stage++; - break; - case 25: - npc("began to blur, my brain was throbbing. I fell and hit", "my head on my worktop, then it all went black."); - stage++; - break; - case 26: - player("Ouch! But, you still haven't said who changed you?"); - stage++; - break; - case 27: - npc("Will you let me finish??"); - stage++; - break; - case 28: - npc("I woke up screaming in pain. Blue foam streaming out", "of my mouth, my eye sight worse than before, the only", "things I could make out were 3 tall figures with green", "banners - they were of the Archeus Elders. They"); - stage++; - break; - case 29: - npc("muttered to each other in Archaic Language. After", "trying to get up several times, I lost hope and stared at", "the sky. I had given up when the tallest of the figures", "bent over and brought his face right to mine and spoke"); - stage++; - break; - case 30: - npc("very softly, 'We can save you, but it will come at a", "cost'."); - stage++; - break; - case 31: - player("So they saved you?"); - stage++; - break; - case 32: - npc("Yes of course they saved me but look at the cost! I", "have horns coming out of my head and I'm still blind", "and stuck here... forever alone."); - stage = 7; - break; - case 40: - player("What monstrosity? What's behind those gates?"); - stage++; - break; - case 41: - npc("You really do not want to know. Leave this place", "human."); - stage++; - break; - case 42: - player("Hey now, I'm no wimp. What's to stop me from just", "turning the winch to open the gate and going in?"); - stage++; - break; - case 43: - npc("Me. And of course your quick demise at the mercy of", "Cerberus, guardian of the river of souls."); - stage++; - break; - case 44: - player("But I can do it!"); - stage++; - break; - case 45: - npc("You are obviously passionate at trying. But only those", "with great skill at slaying these types of beast may", "enter."); - stage++; - break; - case 46: - npc("THE VOICES! AAAHHHHH! Leave this place human!"); - stage = 7; - break; - case 50: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8673 }; - } - -} diff --git a/Server/src/main/java/core/game/content/dialogue/KreeJrDialogue.java b/Server/src/main/java/core/game/content/dialogue/KreeJrDialogue.java deleted file mode 100644 index e0b354ae6..000000000 --- a/Server/src/main/java/core/game/content/dialogue/KreeJrDialogue.java +++ /dev/null @@ -1,87 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Kree'Arra JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class KreeJrDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code KreeJrDialogue} {@code Object}. - */ - public KreeJrDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code KreeJrDialogue} {@code Object}. - * @param player the player. - */ - public KreeJrDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new KreeJrDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Huh... that's odd... I thought that would", "be big news."); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "You thought what would be big news?"); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well there seems to be an absence of a certain", " ornithological piece: a headline regarding mass", "awareness of a certain avian variety."); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "What are you talking about?"); - stage = 3; - break; - case 3: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Oh have you not heard? It was my understanding that", "everyone had heard...."); - stage = 4; - break; - case 4: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Heard wha...... OH NO!!!!?!?!!?!"); - stage = 5; - break; - case 5: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "OH WELL THE BIRD, BIRD, BIRD, BIRD", "BIRD IS THE WORD.", "OH WELL THE BIRD, BIRD, BIRD,", "BIRD BIRD IS THE WORD."); - stage = 6; - break; - case 6: - interpreter.sendDialogue("There's a slight pause as Kree'Arra Jr. goes stiff."); - stage = 7; - break; - case 7: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8592 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/KrilJRDialogue.java b/Server/src/main/java/core/game/content/dialogue/KrilJRDialogue.java deleted file mode 100644 index e5ef69164..000000000 --- a/Server/src/main/java/core/game/content/dialogue/KrilJRDialogue.java +++ /dev/null @@ -1,83 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, K'ril Tsutsaroth JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class KrilJRDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code KrilJRDialogue} {@code Object}. - */ - public KrilJRDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code KrilJRDialogue} {@code Object}. - * @param player the player. - */ - public KrilJRDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new KrilJRDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "How's life in the light?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Burns slightly."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "You seem much nicer than your father. He's mean."); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "If you were stuck in a very dark cave for centuries", "you'd be pretty annoyed too."); - stage = 3; - break; - case 3: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I guess."); - stage = 4; - break; - case 4: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "He's actually quite mellow really."); - stage = 5; - break; - case 5: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Uh.... Yeah."); - stage = 6; - break; - case 6: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8591 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/LimbDialogue.java b/Server/src/main/java/core/game/content/dialogue/LimbDialogue.java deleted file mode 100644 index 691ce9a46..000000000 --- a/Server/src/main/java/core/game/content/dialogue/LimbDialogue.java +++ /dev/null @@ -1,124 +0,0 @@ -/* -package core.game.content.dialogue; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.fletching.items.crossbow.Limb; -import core.game.node.entity.skill.fletching.items.crossbow.LimbPulse; -import org.crandor.game.node.entity.player.Player; -import org.crandor.game.node.entity.player.link.RunScript; -import org.crandor.plugin.InitializablePlugin; -import org.crandor.game.node.item.Item; - -*/ -/** - * Represents the dialogue plugin used for making limbs. - * @author 'Vexia - * @version 1.0 - *//* - -@InitializablePlugin -public final class LimbDialogue extends DialoguePlugin { - - */ -/** - * Constructs a new {@code LimbDialogue} {@code Object}. - *//* - - public LimbDialogue() { - */ -/** - * empty. - *//* - - } - - */ -/** - * Constructs a new {@code LimbDialogue} {@code Object}. - * @param player the player. - *//* - - public LimbDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new LimbDialogue(player); - } - - */ -/** - * The item. - *//* - - private Item item; - - */ -/** - * The second item. - *//* - - private Item second; - - */ -/** - * The string bow enum. - *//* - - private Limb bow; - - @Override - public boolean open(Object... args) { - item = (Item) args[0]; - second = (Item) args[1]; - bow = Limb.forItems(item, second); - if (bow == null) { - return true; - } - player.getInterfaceManager().openChatbox(309); - player.getPacketDispatch().sendString("



" + bow.getProduct().getName(), 309, 6); - player.getPacketDispatch().sendItemZoomOnInterface(bow.getProduct().getId(), 160, 309, 2); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - end(); - switch (stage) { - case 0: - int amt = 0; - switch (buttonId) { - case 6: - amt = 1; - break; - case 5: - amt = 5; - break; - case 4: - player.setAttribute("runscript", new RunScript() { - @Override - public boolean handle() { - int ammount = (int) value; - player.getPulseManager().run(new LimbPulse(player, (item.getName().toLowerCase().contains("stock") ? second : item), bow, ammount)); - return false; - } - }); - player.getDialogueInterpreter().sendInput(false, "Enter the amount"); - return true; - case 3: - amt = player.getInventory().getAmount(item); - break; - } - player.getPulseManager().run(new LimbPulse(player, (item.getName().toLowerCase().contains("stock") ? second : item), bow, amt)); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 84923 }; - } -} -*/ diff --git a/Server/src/main/java/core/game/content/dialogue/MeleeShopDialoguePlugin.java b/Server/src/main/java/core/game/content/dialogue/MeleeShopDialoguePlugin.java deleted file mode 100644 index c39f94398..000000000 --- a/Server/src/main/java/core/game/content/dialogue/MeleeShopDialoguePlugin.java +++ /dev/null @@ -1,68 +0,0 @@ -/* -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.plugin.Initializable; - -*/ -/** - * Package -> core.game.content.dialogue - * Created on -> 9/10/2016 @10:33 PM for 530 - * - * @author Ethan Kyle Millard - *//* - -@Initializable -public class MeleeShopDialoguePlugin extends DialoguePlugin { - - private Shop shop; - - - public MeleeShopDialoguePlugin() { - */ -/** - * Empty - *//* - - } - - public MeleeShopDialoguePlugin(Player player) { - super(player); - } - @Override - public DialoguePlugin newInstance(Player player) { - return new MeleeShopDialoguePlugin(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - options("Melee Shop 1", "Melee Shop 2"); - stage = 0; - return false; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch(stage) { - case 0: - switch (buttonId) { - case 1: - npc.openShop(player); - break; - case 2: - break; - } - break; - } - return true; - } - - - @Override - public int[] getIds() { - return new int[] { 5503 }; - } -} -*/ diff --git a/Server/src/main/java/core/game/content/dialogue/PrinceBlackDragonDialogue.java b/Server/src/main/java/core/game/content/dialogue/PrinceBlackDragonDialogue.java deleted file mode 100644 index 59fbd9b35..000000000 --- a/Server/src/main/java/core/game/content/dialogue/PrinceBlackDragonDialogue.java +++ /dev/null @@ -1,71 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, KBD JR - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class PrinceBlackDragonDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public PrinceBlackDragonDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public PrinceBlackDragonDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new PrinceBlackDragonDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Shouldn't a prince only have two heads?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Why is that?"); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, a standard Black dragon has one,", "the King has three so inbetween must have two?"); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "You're overthinking this."); - stage = 3; - break; - case 3: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8596 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/RockGolemDialogue.java b/Server/src/main/java/core/game/content/dialogue/RockGolemDialogue.java deleted file mode 100644 index 73ec63b94..000000000 --- a/Server/src/main/java/core/game/content/dialogue/RockGolemDialogue.java +++ /dev/null @@ -1,76 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Handles the rock golem dialgoue. - * @author Empathy - * - */ -@Initializable -public final class RockGolemDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code RockGolemDialogue} {@code Object}. - */ - public RockGolemDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code RockGolemDialogue} {@code Object}. - * - * @param player the player. - */ - public RockGolemDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new RockGolemDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "So you're made entirely of rocks?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "Not quite, my body is formed mostly of minerals."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Aren't minerals just rocks?"); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "No, rocks are rocks, minerals are minerals. I am", "formed from minerals."); - stage = 3; - break; - case 3: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "But you're a Rock Golem..."); - stage = 4; - break; - case 4: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8637 }; - } - } diff --git a/Server/src/main/java/core/game/content/dialogue/ScorpiasOffspringDialogue.java b/Server/src/main/java/core/game/content/dialogue/ScorpiasOffspringDialogue.java deleted file mode 100644 index 0c145077f..000000000 --- a/Server/src/main/java/core/game/content/dialogue/ScorpiasOffspringDialogue.java +++ /dev/null @@ -1,79 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Scorpia JR - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class ScorpiasOffspringDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public ScorpiasOffspringDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public ScorpiasOffspringDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new ScorpiasOffspringDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "At night time, if I were to hold ultraviolet", "light over you, would you glow?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Two things wrong there, human."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Oh?"); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "One, when has it ever been night time here?"); - stage = 3; - break; - case 3: - npc("Two, when have you ever seen ultraviolet light", "around here?"); - stage = 4; - break; - case 4: - npc("In answer to your question though.","Yes I, like every scorpion, would glow."); - stage = 5; - break; - case 5: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8598 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/StringBowDialogue.java b/Server/src/main/java/core/game/content/dialogue/StringBowDialogue.java deleted file mode 100644 index e53cca457..000000000 --- a/Server/src/main/java/core/game/content/dialogue/StringBowDialogue.java +++ /dev/null @@ -1,112 +0,0 @@ -/* -package core.game.content.dialogue; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.skill.fletching.items.bow.StringBow; -import core.game.node.entity.skill.fletching.items.bow.StringPulse; -import org.crandor.game.node.entity.player.Player; -import org.crandor.game.node.entity.player.link.RunScript; -import org.crandor.plugin.InitializablePlugin; -import org.crandor.game.node.item.Item; - -*/ -/** - * Handles the StringBowDialogue dialogue. - * @author Vexia - *//* - -@InitializablePlugin -public class StringBowDialogue extends DialoguePlugin { - - */ -/** - * Constructs a new {@code StringBowDialogue.java} {@code Object}. - *//* - - public StringBowDialogue() { - } - - */ -/** - * Constructs a new {@code StringBowDialogue.java} {@code Object}. - * @param player the player. - *//* - - public StringBowDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new StringBowDialogue(player); - } - - */ -/** - * The item. - *//* - - private Item item; - - */ -/** - * The string bow enum. - *//* - - private StringBow bow; - - @Override - public boolean open(Object... args) { - item = (Item) args[0]; - bow = StringBow.forItem(item.getId()); - if (bow == null) { - return true; - } - player.getInterfaceManager().openChatbox(309); - player.getPacketDispatch().sendString("



" + bow.getProduct().getName(), 309, 6); - player.getPacketDispatch().sendItemZoomOnInterface(bow.getProduct().getId(), 160, 309, 2); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - end(); - switch (stage) { - case 0: - System.out.println(buttonId); - int amt = 0; - switch (buttonId) { - case 5: - amt = 1; - break; - case 4: - amt = 5; - break; - case 3: - player.setAttribute("runscript", new RunScript() { - @Override - public boolean handle() { - int ammount = (int) value; - player.getPulseManager().run(new StringPulse(player, item, bow, ammount)); - return false; - } - }); - player.getDialogueInterpreter().sendInput(false, "Enter the amount"); - return true; - case 2: - amt = player.getInventory().getAmount(item); - break; - } - player.getPulseManager().run(new StringPulse(player, item, bow, amt)); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 9174399 }; - } - -} -*/ diff --git a/Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java.orig b/Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java.orig deleted file mode 100644 index 5caa8f54a..000000000 --- a/Server/src/main/java/core/game/content/dialogue/TownCrierDialogue.java.orig +++ /dev/null @@ -1,284 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.diary.DiaryType; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.world.update.flag.context.Animation; -import core.plugin.Initializable; -import core.tools.RandomFunction; - -/** - * Represents the town crier dialogue plugin. - * @author 'Vexia - */ -@InitializablePlugin -public final class TownCrierDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code TownCrierDialogue} {@code Object}. - */ - public TownCrierDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code TownCrierDialogue} {@code Object}. - * @param player the player. - */ - public TownCrierDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new TownCrierDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; -<<<<<<< HEAD - npc("Hear ye! Hear ye! Player Moderators massive help to ", GameWorld.getName().substring(0, GameWorld.getName().length() - 3) + "-"); -======= - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Hear ye! Hear ye! Player Moderators massive help to ", GameWorld.getSettings().getName() + "!"); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 1; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - - switch (stage) { - case 1: - npc("Oh, hello citizen. Are you here to find out about Player", "Moderators? Or perhaps would you like to know about the", "laws of the land?"); - stage = 2; - break; - case 2: -<<<<<<< HEAD - options("Tell me about Player Moderators.", "Tell me about the Rules of " + GameWorld.getName() + ".", "Can you give me a handy tip please?", "Bye!"); -======= - interpreter.sendOptions("Select an Option", "Tell me about Player Moderators.", "Tell me about the Rules of " + GameWorld.getSettings().getName() + ".", "Can you give me a handy tip please?", "Bye!"); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 3; - break; - case 3: - switch (buttonId) { - case 1: - player("Tell me about Player Moderators."); - stage = 50; - break; - case 2: -<<<<<<< HEAD - player("Tell me about the Rules of " + GameWorld.getName() + "."); -======= - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Tell me about the Rules of " + GameWorld.getSettings().getName() + "."); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 70; - break; - case 3: - player("Can you give me a handy tip please?"); - stage = 100; - break; - case 4: - player("Bye!"); - stage = 400; - break; - } - break; - case 400: - npc("Nice meeting you."); - stage = 401; - break; - case 401: - end(); - break; - case 50: - npc("Of course. What would you like to know?"); - stage = 51; - break; - case 51: - options("What is a Player Moderator?", "What can Player Moderators do?", "How do I become a Player Moderator?", "What can Player Moderators not do?"); - stage = 52; - break; - case 52: - - switch (buttonId) { - case 1: - player(" What is a Player Moderator?"); - stage = 150; - break; - case 2: - npc("What can Player Moderators do?"); - stage = 160; - break; - case 3: - player("How do I become a Player Moderator?"); - stage = 170; - break; - case 4: - player("What can Player Moderators not do?"); - stage = 180; - break; - } - break; - case 70: - player.lock(4); - npc("At once. Take a look at my book here."); - npc.animate(new Animation(6866)); - GameWorld.getPulser().submit(new Pulse(4) { - @Override - public boolean pulse() { - //player.getDialogueInterpreter().open(496107759); // TODO rulebook broken - return true; - } - }); - // Find out about the Rules of Conduct from the Draynor

Town Crier - if (npc.getId() == 6136) { - player.getAchievementDiaryManager().finishTask(player, DiaryType.LUMBRIDGE, 0, 10); - } - stage = 71; - break; - case 71: - end(); - break; - - case 100: - int rand = RandomFunction.random(1, 5); - switch (rand) { - case 1: - npc("If the chat window is moving too quickly to report a", "player accurately, run to a quiet spot and review the chat", "at your leisure!"); - stage = 2; - break; - case 2: - npc("If you're lost and have no idea where to go, use the Home", "Teleporter spell for free!"); - stage = 2; - break; - case 3: - npc("Make your recovery questions and answers hard to guess", "but easy to remember."); - stage = 2; - break; - case 4: - npc("Beware of players trying to lue you into the wilderness.", "Your items cannot be returned if you lose them!"); - stage = 2; - break; - case 5: -<<<<<<< HEAD - npc("" + GameWorld.getName() + " will never email you asking for your log-in details."); -======= - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "" + GameWorld.getSettings().getName() + " will never email you asking for your log-in details."); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 2; - break; - } - stage = 2; - break; - case 150: - npc("Player Moderators are normal players of the game, just", "like you. However, since they have shown themselves to be", "trustworthy and active reporters, they have been invited", "by Jagex to monitor the game and take appropriate"); - stage = 151; - break; - case 151: - npc("reward when they see rule breaking. You can spot a Player", "Moderator in game by looking at the chat screen - when a", "Player Moderator speaks, a silver crown appears to the", "left of their name. Remember, if there's no silver crown"); - stage = 152; - break; - case 152: - npc("there, they are not a Player Moderator! You can check", "out the website if you'd like more information."); - stage = 153; - break; - case 153: - player("Thanks!"); - stage = 154; - break; - case 154: - npc("Is there anything else you'd like to know?"); - stage = 51; - break; - case 160: -<<<<<<< HEAD - npc("Player Moderators, or 'P-mods', have the ability to mute", "rule breakers and " + GameWorld.getName() + " view their reports as a priority so", "that reward is taken as quickly as possible. P-Mods also", "have acces to the Player Moderator Centre. Within the"); - stage = 161; - break; - case 161: - npc("Centre are tools to help them Moderate " + GameWorld.getName() + ".", "These tools include dedicated forums, the Player", "Moderator Guidelines and the Player Moderator Code of", "Conduct."); - stage = 153; - break; - case 170: - npc("" + GameWorld.getName() + " picks players who spend their time and effort to", "help better the " + GameWorld.getName() + " community. To increase your", "chances of becoming a Player Moderator:"); -======= - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Player Moderators, or 'P-mods', have the ability to mute", "rule breakers and " + GameWorld.getSettings().getName() + " view their reports as a priority so", "that reward is taken as quickly as possible. P-Mods also", "have acces to the Player Moderator Centre. Within the"); - stage = 161; - break; - case 161: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Centre are tools to help them Moderate " + GameWorld.getSettings().getName() + ".", "These tools include dedicated forums, the Player", "Moderator Guidelines and the Player Moderator Code of", "Conduct."); - stage = 153; - break; - case 170: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "" + GameWorld.getSettings().getName() + " picks players who spend their time and effort to", "help better the " + GameWorld.getSettings().getName() + " community. To increase your", "chances of becoming a Player Moderator:"); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 171; - break; - case 171: - npc("Keep your account secure! This is very important, as a", "player with poor security will never be a P-Mod. Read our", "Security Tips for more information."); - stage = 173; - break; - case 173: -<<<<<<< HEAD - npc("Play by the rules! The rules of " + GameWorld.getName() + " are enforced", "for a reason, to make the game a fair and enjoyable", "environment for all."); - stage = 174; - break; - case 174: - npc("Report accuratley! When " + GameWorld.getName() + " consider an account for", "review they look for quality, not quantity. Ensure your", "reports are of a high quality by following the report", "guidelines."); -======= - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Play by the rules! The rules of " + GameWorld.getSettings().getName() + " are enforced", "for a reason, to make the game a fair and enjoyable", "environment for all."); - stage = 174; - break; - case 174: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Report accuratley! When " + GameWorld.getSettings().getName() + " consider an account for", "review they look for quality, not quantity. Ensure your", "reports are of a high quality by following the report", "guidelines."); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 175; - break; - case 175: - npc("Be nice to each other! Treat others as you would", "want to be treated yourself. Respect your fellow player.", "More information can be found on the website."); - stage = 153; - break; - case 180: -<<<<<<< HEAD - npc("P-Mods cannot ban your account - they can only report", "offences. " + GameWorld.getName() + " then take reward based on the evidence", "received. If you lose your password or get scamme dby", "another player, P_Mods cannot help you get your account"); - stage = 181; - break; - case 181: - npc("back. All they can do is recommend you to go to Player", "Support. They cannot retrieve any items you may have", "lost and they certainly do not recieve any free items", "from " + GameWorld.getName() + " for moderating the game. They are players"); - stage = 182; - break; - case 182: - npc("who give their all to help the community, out of the", "goodness of their hearts! P-mods do not work for " + GameWorld.getName() + "", "and so cannot make you a Moderator, or recommend", "other accounts to become Moderators. If you wish yo"); -======= - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "P-Mods cannot ban your account - they can only report", "offences. " + GameWorld.getSettings().getName() + " then take reward based on the evidence", "received. If you lose your password or get scamme dby", "another player, P_Mods cannot help you get your account"); - stage = 181; - break; - case 181: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "back. All they can do is recommend you to go to Player", "Support. They cannot retrieve any items you may have", "lost and they certainly do not recieve any free items", "from " + GameWorld.getSettings().getName() + " for moderating the game. They are players"); - stage = 182; - break; - case 182: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "who give their all to help the community, out of the", "goodness of their hearts! P-mods do not work for " + GameWorld.getSettings().getName() + "", "and so cannot make you a Moderator, or recommend", "other accounts to become Moderators. If you wish yo"); ->>>>>>> 3418fa0f93ea8241d77c5e9608bf40e3a441e2c5 - stage = 183; - break; - case 183: - npc("become a Moderator, feel free to ask me!"); - stage = 153; - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 6135, 6136, 6137, 6138, 6139 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/VenenatisSpiderlingDialogue.java b/Server/src/main/java/core/game/content/dialogue/VenenatisSpiderlingDialogue.java deleted file mode 100644 index 34c5bd636..000000000 --- a/Server/src/main/java/core/game/content/dialogue/VenenatisSpiderlingDialogue.java +++ /dev/null @@ -1,71 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Venenatis JR - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class VenenatisSpiderlingDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public VenenatisSpiderlingDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public VenenatisSpiderlingDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new VenenatisSpiderlingDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "It's a damn good job I don't have arachnophobia."); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "We're misunderstood. Without us in your house,", "you'd be infested with flies and other", "REAL nasties."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Thanks for that enlightening fact."); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Everybody gets one."); - stage = 3; - break; - case 3: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8599 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/VetionJRDialogue.java b/Server/src/main/java/core/game/content/dialogue/VetionJRDialogue.java deleted file mode 100644 index 83ddc67da..000000000 --- a/Server/src/main/java/core/game/content/dialogue/VetionJRDialogue.java +++ /dev/null @@ -1,79 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.plugin.Initializable; -import core.game.node.entity.player.Player; - -/** - * Dialogue for the boss pet, Vet'ion JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class VetionJRDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - */ - public VetionJRDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ChaosElementalJRDialogue} {@code Object}. - * @param player the player. - */ - public VetionJRDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new VetionJRDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Who is the true lord and king of the lands?"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "The mighty heir and lord of the Wilderness."); - stage = 1; - break; - case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Where is he? Why hasn't he lifted your burden?"); - stage = 2; - break; - case 2: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "I have not fulfilled my purpose."); - stage = 3; - break; - case 3: - player("What is your purpose?"); - stage = 4; - break; - case 4: - npc(FacialExpression.OLD_NORMAL, "Not what is, what was.", "A great war tore this land apart and, for my","failings in protecting this land, I carry the burden","of its waste."); - stage = 5; - break; - case 5: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8600, 8654 }; - } -} diff --git a/Server/src/main/java/core/game/content/dialogue/ZilyanaJRDialogue.java b/Server/src/main/java/core/game/content/dialogue/ZilyanaJRDialogue.java deleted file mode 100644 index 1c7b2bb96..000000000 --- a/Server/src/main/java/core/game/content/dialogue/ZilyanaJRDialogue.java +++ /dev/null @@ -1,73 +0,0 @@ -package core.game.content.dialogue; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.plugin.Initializable; -import core.game.node.item.Item; - -/** - * Dialogue for the boss pet, Commander Zilyana JR. - * @author Splinter - * @version 1.0 - */ -@Initializable -public final class ZilyanaJRDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code ZilyanaJRDialogue} {@code Object}. - */ - public ZilyanaJRDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code ZilyanaJRDialogue} {@code Object}. - * @param player the player. - */ - public ZilyanaJRDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new ZilyanaJRDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - if(player.getInventory().containsItem(new Item(11698, 1)) || (player.getEquipment().get(3) != null && player.getEquipment().get(3).getId() == 11698)){ - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I FOUND THE GODSWORD!"); - stage = 0; - } else { - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "FIND THE GODSWORD!"); - stage = 1; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "GOOD!"); - stage = 2; - break; - case 1: - interpreter.sendDialogues(npc, FacialExpression.OLD_NORMAL, "FIND THE GODSWORD!"); - stage = 2; - break; - case 2: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 8593 }; - } -} diff --git a/Server/src/main/java/core/game/content/eco/EcoStatus.java b/Server/src/main/java/core/game/content/eco/EcoStatus.java deleted file mode 100644 index 046ed2b53..000000000 --- a/Server/src/main/java/core/game/content/eco/EcoStatus.java +++ /dev/null @@ -1,24 +0,0 @@ -package core.game.content.eco; - -/** - * The several statuses used for the economy. - * @author Emperor - */ -public enum EcoStatus { - - /** - * The status set when money should be drained from the economy. - */ - DRAINING, - - /** - * The status set when money should be pumped into the economy. - */ - BOOSTING, - - /** - * If we are maintaining the current economy. - */ - MAINTAINING; - -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/eco/EconomyManagement.java b/Server/src/main/java/core/game/content/eco/EconomyManagement.java deleted file mode 100644 index f8d5788d5..000000000 --- a/Server/src/main/java/core/game/content/eco/EconomyManagement.java +++ /dev/null @@ -1,68 +0,0 @@ -package core.game.content.eco; - -/** - * Represents a managing class for the economy. - * @author Emperor - */ -public final class EconomyManagement { - - /** - * The current economy state. - */ - private static EcoStatus ecoState = EcoStatus.BOOSTING; - - /** - * The modification rate. - */ - private static double modificationRate = 10; - - /** - * Sets the ecoState. - * @param ecoState The ecoState to set. - */ - public static void update(EcoStatus ecoState, double modificationRate) { - boolean update = EconomyManagement.ecoState != ecoState; - EconomyManagement.ecoState = ecoState; - if (EconomyManagement.modificationRate != modificationRate) { - EconomyManagement.modificationRate = modificationRate; - update = true; - } - if (update) { - System.out.println("-------------------------------------------------------------------"); - System.out.println(" Switched economy management status to " + ecoState + " with a rate of " + modificationRate + " |"); - System.out.println("-------------------------------------------------------------------"); - } - } - - /** - * Sets the ecoState. - * @param ecoState The ecoState to set. - */ - public static void updateEcoState(EcoStatus ecoState) { - update(ecoState, modificationRate); - } - - /** - * Sets the modificationRate. - * @param modificationRate The modificationRate to set. - */ - public static void updateModificationRate(double modificationRate) { - update(ecoState, modificationRate); - } - - /** - * Gets the ecoState. - * @return The ecoState. - */ - public static EcoStatus getEcoState() { - return ecoState; - } - - /** - * Gets the modificationRate. - * @return The modificationRate. - */ - public static double getModificationRate() { - return modificationRate; - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/global/travel/MinigameGroupFinder.java b/Server/src/main/java/core/game/content/global/travel/MinigameGroupFinder.java deleted file mode 100644 index 75d1a3bae..000000000 --- a/Server/src/main/java/core/game/content/global/travel/MinigameGroupFinder.java +++ /dev/null @@ -1,159 +0,0 @@ -package core.game.content.global.travel; - -import core.game.component.Component; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.world.map.Location; - -/** - * Handles the Minigame Group Finder teleport interface. - * - * @author Torchic - */ -public class MinigameGroupFinder { - - /** - * Opens the minigame finder for the player. - * @param player The player. - */ - public static void openFinder(Player player) { - player.setAttribute("minigameFinder:open", true); - player.getInterfaceManager().openTab(2, new Component(259)); - player.getPacketDispatch().sendString("Minigame Group Finder", 259, 9); - player.getPacketDispatch().sendString("Destinations", 259, 1); - player.getPacketDispatch().sendString(" Shilo Village", 259, 2); - player.getPacketDispatch().sendString("Warrior's Guild", 259, 3); - player.getPacketDispatch().sendString("Dagganoth Kings", 259, 4); - player.getPacketDispatch().sendString("God Wars Dungeon", 259, 5); - player.getPacketDispatch().sendString("Minigames", 259, 6); - player.getPacketDispatch().sendString(" Barbarian Assault", 259, 23); - player.getPacketDispatch().sendString("Blast Furnace", 259, 24); - player.getPacketDispatch().sendString("Burthorpe Games Room", 259, 25); - player.getPacketDispatch().sendString("Castle Wars", 259, 26); - player.getPacketDispatch().sendString(" Clan Wars", 259, 19); - player.getPacketDispatch().sendString("Duel Arena", 259, 20); - player.getPacketDispatch().sendString("Fishing Trawler", 259, 21); - player.getPacketDispatch().sendString("Fist of Guthix", 259, 22); - player.getPacketDispatch().sendString("Nightmare Zone", 259, 12); - player.getPacketDispatch().sendString(" Pest Control", 259, 11); - player.getPacketDispatch().sendString("Pyramid Plunder", 259, 13); - player.getPacketDispatch().sendString("Shades of Mort'ton", 259, 14); - player.getPacketDispatch().sendString("Stealing Creation", 259, 28); - player.getPacketDispatch().sendString(" Trouble Brewing", 259, 27); - player.getPacketDispatch().sendString("TzHaar Fight Pit", 259, 29); - player.getPacketDispatch().sendString("", 259, 30); - player.getPacketDispatch().sendString("", 259, 16); - player.getPacketDispatch().sendString("", 259, 15); - player.getPacketDispatch().sendString("", 259, 17); - player.getPacketDispatch().sendString("", 259, 18); - for (int i = 15; i < 19; i ++) { - player.getPacketDispatch().sendString("", 259, i); - } - } - - /** - * Holds all the optiosn for the minigame group finder. - * @author Torchic - * - */ - public enum MinigameOptions { - - /** - * Destinations - */ - SHILO_VILLAGE(2, Location.create(2876, 2954, 0)), - WARRIORS_GUILD(3, Location.create(2878, 3546, 0)), - DAGGANOTH_KINGS(4, Location.create(2524, 3739, 0)), - GOD_WARS_DUNGEON(5, Location.create(2898, 3712, 0)), - - /** - * Minigames - */ - BARBARIAN_ASSAULT(23, Location.create(2520, 3570, 0)), - BLAST_FURNACE(24, Location.create(1950, 4968, 0)), - BURTHORPE_GAMES_ROOM(25, Location.create(2899, 3563, 0)), - CASTLE_WARS(26, Location.create(2442, 3089, 0)), - CLAN_WARS(19, Location.create(3273, 3686, 0)), - DUEL_ARENA(20, Location.create(3365, 3265, 0)), - FISHING_TRAWLER(21, Location.create(2658, 3158, 0)), - FIST_OF_GUTHIX(22, Location.create(1675, 5599, 0)), - NIGHTMARE_ZONE(12, Location.create(3184, 3945, 0)), - PEST_CONTROL(11, Location.create(2659, 2676, 0)), - PYRAMID_PLUNDER(13, Location.create(3289, 2787, 0)), - SHADES_OF_MORTTON(14, Location.create(3504, 3284, 0)), - TROUBLE_BREWING(27, Location.create(3222, 3222, 0)), - STEALING_CREATION(28, Location.create(3135, 3627, 0)), - FIGHT_PITS(29, Location.create(2400, 5178, 0)); - - /** - * The option (button) id of the teleport. - */ - private int optionId; - - /** - * The location to send the player. - */ - private Location tile; - - /** - * Constructs a new {@Code MinigameOptions} {@Code Object} - * @param optionId The option id. - * @param tile The location tile. - */ - MinigameOptions(int optionId, Location tile) { - this.optionId = optionId; - this.tile = tile; - } - - /** - * Gets the location. - * @return - */ - public Location getLocation() { - return tile; - - } - - /** - * Gets the telport option id. - * @return - */ - public int getTeleportId() { - return optionId; - } - - /** - * Iterates through the options to find the correct teleport based on option id. - * @param optionId The option id. - * @return - */ - public static MinigameOptions getTeleportOptions(int optionId) { - for (MinigameOptions tele : MinigameOptions.values()) { - if (tele.getTeleportId() == optionId) { - return tele; - } - } - return null; - } - } - - /** - * Teleports the player to the location based on the componentId - * - * @param player - * @param buttonId - * @return true if teleport exists - */ - public static boolean teleport(final Player player, int buttonId) { - MinigameOptions option = MinigameOptions.getTeleportOptions(buttonId); - if (option == null || option.getLocation() == new Location(3222, 3222, 0)) { - player.sendMessage("Location has not been added!"); - return false; - } - player.getTeleporter().send(option.getLocation(), TeleportType.NORMAL, 1); - player.removeAttribute("minigameFinder:open"); - player.getInterfaceManager().openTab(2, new Component(274)); - player.getPacketDispatch().sendString("Minigame Group Finder", 274, 5); - return true; - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/holiday/HolidayEvent.java b/Server/src/main/java/core/game/content/holiday/HolidayEvent.java deleted file mode 100644 index 9985a579f..000000000 --- a/Server/src/main/java/core/game/content/holiday/HolidayEvent.java +++ /dev/null @@ -1,281 +0,0 @@ -package core.game.content.holiday; - -import core.game.node.entity.Entity; -import core.game.node.entity.player.Player; -import rs09.game.system.SystemLogger; -import core.game.world.map.zone.MapZone; -import core.game.world.map.zone.ZoneBuilder; -import core.game.world.map.zone.ZoneRestriction; -import core.game.world.map.zone.ZoneType; -import core.plugin.Plugin; - -import java.util.ArrayList; -import java.util.List; - -/** - * Handles a holiday event. - * @author Vexia - */ -public abstract class HolidayEvent extends MapZone implements Plugin { - - /** - * The list of holiday events. - */ - private static final List EVENTS = new ArrayList<>(5); - - /** - * The current holiday event. - */ - private static HolidayEvent current; - - /** - * The holiday type. - */ - private final HolidayType type; - - /** - * The config id used to handle the stages. - */ - private final int configId; - - /** - * The hash to use for this event. - */ - private final int hash; - - /** - * The max stage. - */ - private final int maxStage; - - /** - * Constructs a new {@code HolidayEvent} {@code Object} - * @param type the holiday type. - * @param name the name of the event. - * @param configId the config id. - * @param hash the hash. - * @param maxStage the max stage. - */ - public HolidayEvent(String name, HolidayType type, int configId, int hash, int maxStage) { - super(name, true, ZoneRestriction.CANNON, ZoneRestriction.FIRES, ZoneRestriction.FOLLOWERS, ZoneRestriction.RANDOM_EVENTS); - this.type = type; - this.hash = hash; - this.configId = configId; - this.maxStage = maxStage; - this.setZoneType(ZoneType.SAFE.getId()); - } - - /** - * Used to load all the necessary nodes for this event. - */ - public abstract void load(); - - /** - * Indicates whether or not this holiday event is active. - * @return {@code True} if so. - */ - public abstract boolean isActive(); - - /** - * Initializes the holiday events. - */ - public static void init() { - new ItemLimitation().parse(); - for (HolidayEvent event : EVENTS) { - if (event.isActive()) { - event.load(); - } - } - } - - @Override - public boolean enter(Entity entity) { - if (entity instanceof Player && isComplete(entity.asPlayer())) { - return false; - } - return super.enter(entity); - } - - @Override - public boolean leave(Entity e, boolean logout) { - return super.leave(e, logout); - } - - @Override - public boolean parseCommand(Player player, String name, String[] arguments) { - if (!player.isAdmin()) { - return false; - } - switch (name) { - case "setstage": - setStage(player, Integer.parseInt(arguments[1])); - return true; - } - return false; - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - if (isActive()) { - setCurrent(this); - ZoneBuilder.configure(this); - SystemLogger.logInfo(this.getClass(), "Holiday event active [type=" + type + "]!"); - } - EVENTS.add(this); - return this; - } - - /** - * Adds experience. - * @param player The player. - * @param skill The skill. - * @param experience The experience. - */ - public void addExperience(Player player, int skill, double experience) { - - } - - /** - * Commences the death event. - * @param killer The killing entity. - * @param victim The entity getting killed. - */ - public void commenceDeath(Entity killer, Entity victim) { - - } - - /** - * Finalizes the death event. - * @param killer The killing entity. - * @param victim The entity getting killed. - */ - public void finalizeDeath(Entity killer, Entity victim) { - - } - - @Override - public Object fireEvent(String identifier, Object... args) { - return null; - } - - /** - * Checks if it is a certain holiday. - * @param type the type. - * @return {@code True} if its a holiday. - */ - public static boolean isHoliday(HolidayType type) { - return current != null && current.getType() == type; - } - - /** - * Checks if the event is complete. - * @return {@code True} if so. - */ - public boolean isComplete(Player player) { - return getStage(player) >= maxStage; - } - - /** - * Sets the stage of the event. - * @param player the player. - * @param stage the stage. - */ - public void setStage(Player player, int stage) { - setStage(player, stage, hash); - } - - /** - * Sets the stage of the event. - * @param player the player. - * @param stage the stage. - * @param hash the hash. - */ - public void setStage(Player player, int stage, int hash) { - setStageValue(player, getConfig(player) + stage << hash); - } - - /** - * Sets the stage value of the event. - * @param player the player. - * @param value the value. - */ - public void setStageValue(Player player, int value) { - player.getConfigManager().set(configId, value, true); - } - - /** - * Gets the stage of the event. - * @param player the player. - * @return the stage. - */ - public int getStage(Player player) { - return getStage(player, hash); - } - - /** - * Gets the stage of the event. - * @param player the player. - * @return the stage. - */ - public int getStage(Player player, int hash) { - return getConfig(player) >> hash; - } - - /** - * Gets the config value. - * @param player the player. - * @return the value. - */ - public int getConfig(Player player) { - return player.getConfigManager().get(configId); - } - - /** - * Gets the max stage. - * @return the stage. - */ - public int getMaxStage() { - return maxStage; - } - - /** - * Gets the configId. - * @return the configId - */ - public int getConfigId() { - return configId; - } - - /** - * Gets the hash. - * @return the hash - */ - public int getHash() { - return hash; - } - - /** - * Gets the type. - * @return the type - */ - public HolidayType getType() { - return type; - } - - /** - * Gets the current. - * @return the current - */ - public static HolidayEvent getCurrent() { - return current; - } - - /** - * Sets the current. - * @param current the current to set. - */ - public static void setCurrent(HolidayEvent current) { - HolidayEvent.current = current; - } - -} diff --git a/Server/src/main/java/core/game/content/holiday/HolidayItem.java b/Server/src/main/java/core/game/content/holiday/HolidayItem.java deleted file mode 100644 index b39a1d28b..000000000 --- a/Server/src/main/java/core/game/content/holiday/HolidayItem.java +++ /dev/null @@ -1,108 +0,0 @@ -package core.game.content.holiday; - -import core.game.node.item.GroundItem; -import core.game.node.item.GroundItemManager; -import core.game.node.item.Item; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.world.map.Location; -import core.game.world.update.flag.context.Graphics; -import core.tools.RandomFunction; - -import java.util.HashMap; -import java.util.Map; - -/** - * Used for releasing trade-able holiday items. - * @author Emperor - */ -public final class HolidayItem extends GroundItem { - - /** - * The location of a holiday item spawn. - */ - private static Map itemLoc = new HashMap<>(); - - /** - * Constructs a new {@code HolidayItem} {@code Object}. - * @param item the item. - * @param location the location. - */ - public HolidayItem(Item item, Location location) { - super(item, location); - } - - /** - * Starts random holiday item spawning. - * @param spawn The item. - * @param interval The interval between moving the location. - * @param spawnLocations The spawn locations. - */ - public static void startRandomSpawn(final Item spawn, int interval, final Location... spawnLocations) { - GameWorld.getPulser().submit(new Pulse(interval) { - GroundItem item; - int lastIndex = -1; - - @Override - public boolean pulse() { - if (item != null) { - if (!item.isRemoved()) { - Graphics.send(Graphics.create(85), item.getLocation()); - } else if (ItemLimitation.decreaseAmount(spawn.getId())) { - System.out.println("Released all " + spawn.getName() + "s!"); - return true; - } - GroundItemManager.destroy(item); - } - int index = RandomFunction.random(spawnLocations.length); - if (index == lastIndex) { - index = (index + 1) % spawnLocations.length; - } - spawn.setLocation(spawnLocations[index]); - item = GroundItemManager.create(new HolidayItem(spawn, spawnLocations[index])); - itemLoc.put(item.getId(), item.getLocation()); - lastIndex = index; - return false; - } - }); - } - - @Override - public String toString() { - return "HolidaySpawn [name=" + getName() + ", loc=" + getLocation() + "]"; - } - - @Override - public boolean isActive() { - return true; - } - - @Override - public boolean isPrivate() { - return false; - } - - @Override - public boolean isAutoSpawn() { - return false; - } - - @Override - public void respawn() { - /* - * empty. - */ - } - - /** - * Returns the location of a holiday item. - * @param itemId the itemId to check - * @return location of the item - */ - public static Location getHolidayItemLocation(int itemId) { - if (itemLoc.get(itemId) != null) { - return itemLoc.get(itemId); - } - return null; - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/holiday/HolidayType.java b/Server/src/main/java/core/game/content/holiday/HolidayType.java deleted file mode 100644 index 0a5daeb72..000000000 --- a/Server/src/main/java/core/game/content/holiday/HolidayType.java +++ /dev/null @@ -1,9 +0,0 @@ -package core.game.content.holiday; - -/** - * The holiday type. - * @author Vexia - */ -public enum HolidayType { - HALLOWEEN(), CHRISTMAS(), EASTER(), THANKSGIVING; -} diff --git a/Server/src/main/java/core/game/content/holiday/ItemLimitation.java b/Server/src/main/java/core/game/content/holiday/ItemLimitation.java deleted file mode 100644 index 1e56b959a..000000000 --- a/Server/src/main/java/core/game/content/holiday/ItemLimitation.java +++ /dev/null @@ -1,117 +0,0 @@ -package core.game.content.holiday; - -import core.cache.def.impl.ItemDefinition; - -import java.util.HashMap; -import java.util.Map; - -/** - * Handles limitation of holiday item releases. - * @author Emperor - */ -public final class ItemLimitation { - - /** - * The items. - */ - private static final Map ITEMS = new HashMap<>(); - - /** - * Constructs a new {@code ItemLimitation} {@code Object} - */ - public ItemLimitation() { - /* - * empty. - */ - } - - /** - * Parses the item limitation. - * @return {@code True} if parsed. - */ - public boolean parse() { -/* if (AriosStore.get("hir_limits") == null) { - return true; - } - ByteBuffer buffer = AriosStore.getArchive("hir_limits"); - int length = buffer.get() & 0xFF; - for (int i = 0; i < length; i++) { - int itemId = buffer.getShort() & 0xFFFF; - int amount = buffer.getShort() & 0xFFFF; - ITEMS.put(itemId, amount); - }*/ - return true; - } - - /** - * Dumps the item limitation data. - */ - public static void dump() { -/* ByteBuffer buffer = ByteBuffer.allocate(ITEMS.size() * 4 + 1); - buffer.put((byte) ITEMS.size()); - for (int itemId : ITEMS.keySet()) { - buffer.putShort((short) itemId); - buffer.putShort((short) (int) ITEMS.get(itemId)); - } - buffer.flip(); - AriosStore.setArchive("hir_limits", buffer);*/ - } - - /** - * Registers a new item release. - * @param itemId The item id. - * @param amount The amount. - */ - public static void register(int itemId, int amount) { - ITEMS.put(itemId, amount); - System.out.println("Registered item release [name=" + ItemDefinition.forId(itemId).getName() + ", id=" + itemId + ", limit=" + amount + "]."); - dump(); - } - - /** - * Checks if the item has been registered. - * @param itemId The item id. - * @return {@code True} if so. - */ - public static boolean isRegistered(int itemId) { - return ITEMS.containsKey(itemId); - } - - /** - * Gets the amount left to release. - * @param itemId The item id. - * @return The amount left. - */ - public static int getAmountLeft(int itemId) { - Integer amount = ITEMS.get(itemId); - if (amount == null) { - return -1; - } - return amount; - } - - /** - * Decreases the amount left. - * @param itemId The item id. - * @return {@code True} if the full amount has been fully released. - */ - public static boolean decreaseAmount(int itemId) { - if (!ITEMS.containsKey(itemId)) { - return false; - } - int amount = ITEMS.get(itemId); - if (amount > 0) { - ITEMS.put(itemId, amount - 1); - dump(); - } - return amount < 1; - } - - /** - * Gets the item limits. - * @return The item limits. - */ - public static Map getItems() { - return ITEMS; - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java b/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java deleted file mode 100644 index a9bd573de..000000000 --- a/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java +++ /dev/null @@ -1,1082 +0,0 @@ -package core.game.content.holiday.christmas; -import java.util.List; - -import core.cache.def.impl.ItemDefinition; -import core.cache.def.impl.NPCDefinition; -import core.cache.def.impl.SceneryDefinition; -import core.game.component.Component; -import core.game.component.ComponentDefinition; -import core.game.component.ComponentPlugin; -import core.plugin.Initializable; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.holiday.HolidayEvent; -import core.game.content.holiday.HolidayItem; -import core.game.content.holiday.HolidayType; -import core.game.content.holiday.ItemLimitation; -import core.game.interaction.NodeUsageEvent; -import core.game.interaction.Option; -import core.game.interaction.OptionHandler; -import core.game.interaction.UseWithHandler; -import core.game.node.Node; -import core.game.node.entity.Entity; -import core.game.node.entity.combat.BattleState; -import core.game.node.entity.combat.CombatStyle; -import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.impl.Projectile; -import core.game.node.entity.npc.AbstractNPC; -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.node.entity.player.link.emote.Emotes; -import core.game.node.item.GroundItemManager; -import core.game.node.item.Item; -import core.game.node.scenery.Scenery; -import core.game.node.scenery.SceneryBuilder; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.world.map.Location; -import core.game.world.map.RegionManager; -import rs09.game.world.repository.Repository; -import core.game.world.update.flag.context.Animation; -import core.game.world.update.flag.context.Graphics; -import core.plugin.Plugin; -import rs09.plugin.ClassScanner; -import core.tools.RandomFunction; - -/** - * Handles the 2009scape 2007 Christmas Event. - * @author Vexia - * - */ -@Initializable -public class ChristmasEvent extends HolidayEvent { - - /** - * The location of places where imps & snow are. - */ - private static final Location[] HUBS = new Location[] {Location.create(2965, 3380, 0), Location.create(3079, 3250, 0), Location.create(2659, 3657, 0), Location.create(2664, 3305, 0), Location.create(2898, 3544, 0), new Location(3159, 3490, 0)}; - - /** - * The santa hat item. - */ - private static final Item SANTA_HAT = new Item(1050); - - /** - * The christmas cracker item. - */ - private static final Item CHRISTMAS_CRACKER = new Item(962); - - /** - * The ball of snow item. - */ - private static final Item BALL_OF_SNOW = new Item(11951); - - /** - * The snow globe item. - */ - private static final Item SNOWGLOBE = new Item(11949); - - /** - * The array of snowman hat ids. - */ - private static final int[] SNOWMAN_HATS = new int[] {11955, 11956, 11957, 11958, 11959}; - - /** - * The snowman weapon ids. - */ - private static final int[] SNOWMAN_WEAPONS = new int[] {11952, 11953, 11954}; - - /** - * The pelt option. - */ - private static final Option PELT_OPTION = new Option("Pelt", 7); - - /** - * Constructs the {@code ChristmasEvent} object. - */ - public ChristmasEvent() { - super("2007 Christmas Event", HolidayType.CHRISTMAS, 1087, 16, 10); - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - if (isActive()) { - ClassScanner.definePlugins(new ChristmasEventOptionPlugin(), new SnowmanItemHandler(), new SnowImpDialogue(), new SnowmanHatComponentPlugin(), new QueenOfSnowDialogue(), new SnowmanNPC(), new PeltOptionHandler()); - } - return super.newInstance(arg); - } - - @Override - public void load() { - if (!ItemLimitation.isRegistered(SANTA_HAT.getId())) { - ItemLimitation.register(SANTA_HAT.getId(), 25); - } - if (!ItemLimitation.isRegistered(CHRISTMAS_CRACKER.getId())) { - ItemLimitation.register(CHRISTMAS_CRACKER.getId(), 25); - } - if (ItemLimitation.getAmountLeft(SANTA_HAT.getId()) > 0) { - HolidayItem.startRandomSpawn(SANTA_HAT, 1000, Location.create(3047, 3296, 0), Location.create(3016, 3291, 0), Location.create(3013, 3260, 0), Location.create(3050, 3236, 0), Location.create(3091, 3275, 0), Location.create(3102, 3270, 1), Location.create(3210, 3221, 3), Location.create(3300, 3193, 0), Location.create(3284, 3162, 1), Location.create(2741, 3443, 0), Location.create(2695, 3462, 0), Location.create(2667, 3291, 1), Location.create(3079, 3512, 0), Location.create(3079, 3548, 0), Location.create(3018, 3602, 0), Location.create(3135, 3515, 0), Location.create(3216, 3412, 1), Location.create(2942, 3382, 0), Location.create(2973, 3338, 0)); - } - NPC imp; - for (Location location : HUBS) { - imp = NPC.create(6732, location); - imp.setWalks(true); - imp.init(); - } - snow(); - } - - @Override - public boolean enter(Entity entity) { - if (entity instanceof Player) { - Player player = entity.asPlayer(); - player.setAttribute("last-location", player.getRenderInfo().getLastLocation()); - } - return super.enter(entity); - } - - @SuppressWarnings("deprecation") - @Override - public boolean leave(Entity e, boolean logout) { - if (e instanceof Player) { - Player player = e.asPlayer(); - for (int i : SNOWMAN_WEAPONS) { - if (player.getInventory().contains(i, 1)) { - player.getInventory().remove(new Item(i, player.getInventory().getAmount(i))); - } - if (player.getBank().containItems(i, 1)) { - player.getBank().remove(new Item(i, player.getBank().getAmount(i))); - } - } - if (logout) { - player.setLocation(player.getAttribute("last-location", HUBS[0])); - } - } - return super.leave(e, logout); - } - - @Override - public void finalizeDeath(Entity killer, Entity victim) { - if (killer instanceof Player && victim instanceof NPC) { - Player player = (Player) killer; - if (victim.getProperties().getCurrentCombatLevel() > 0) { - int chance = (5_000 / victim.getProperties().getCurrentCombatLevel()) * 100; - if (RandomFunction.random(chance) == 0) { - int itemId = CHRISTMAS_CRACKER.getId(); - if (ItemLimitation.getAmountLeft(itemId) > 0) { - ItemLimitation.decreaseAmount(itemId); - Repository.sendNews(player.getUsername() + " found a christmas cracker. There are " + ItemLimitation.getAmountLeft(itemId) + " crackers left!"); - player.getPacketDispatch().sendMessage("You find a christmas cracker!."); - GroundItemManager.create(new Item(itemId), victim.getLocation(), player); - } - } - } - } - } - - /** - * Sends snow near the hub. - */ - private void snow() { - Location loc = null; - Scenery obj = null; - for (Location location : HUBS) { - for (int x = 2; x < 10; x++) { - for (int y = 2; y < 10; y++) { - loc = location.transform(x, y, 0); - if (RegionManager.getObject(loc) == null && RegionManager.isTeleportPermitted(loc) && RandomFunction.random(3) == 1) { - obj = new Scenery(28296, loc); - SceneryBuilder.add(obj); - RegionManager.removeClippingFlag(0, loc.getX(), loc.getY(), false, 0x100); - } - loc = location.transform(-x, y, 0); - if (RegionManager.getObject(loc) == null && RegionManager.isTeleportPermitted(loc) && RandomFunction.random(3) == 1) { - obj = new Scenery(28296, loc); - SceneryBuilder.add(obj); - RegionManager.removeClippingFlag(0, loc.getX(), loc.getY(), false, 0x100); - } - loc = location.transform(x, -y, 0); - if (RegionManager.getObject(loc) == null && RegionManager.isTeleportPermitted(loc) && RandomFunction.random(3) == 1) { - obj = new Scenery(28296, loc); - SceneryBuilder.add(obj); - RegionManager.removeClippingFlag(0, loc.getX(), loc.getY(), false, 0x100); - } - loc = location.transform(-x, -y, 0); - if (RegionManager.getObject(loc) == null && RegionManager.isTeleportPermitted(loc) && RandomFunction.random(3) == 1) { - obj = new Scenery(28296, loc); - SceneryBuilder.add(obj); - RegionManager.removeClippingFlag(0, loc.getX(), loc.getY(), false, 0x100); - } - } - } - } - } - - /** - * Sends a christmas teleport. - * @param player The player. - * @param location The location. - */ - public static void sendChristmasTeleport(Player player, Location location) { - player.getTeleporter().send(location, TeleportType.CHRISTMAS); - } - - @Override - public boolean isActive() { - return false; - } - - @Override - public void configure() { - registerRegion(10583); - } - - /** - * Handles interactions for the Christmas Event. - * @author Vexia - * - */ - public class ChristmasEventOptionPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - SceneryDefinition.forId(28296).getHandlers().put("option:collect", this); - ItemDefinition.forId(BALL_OF_SNOW.getId()).getHandlers().put("option:build", this); - for (int i = 28266; i < 28296; i++) { - SceneryDefinition.forId(i).getHandlers().put("option:add-to", this); - } - ItemDefinition.forId(SNOWGLOBE.getId()).getHandlers().put("option:shake", this); - return this; - } - - @Override - public boolean handle(final Player player, Node node, String option) { - switch (option) { - case "collect": - if (!player.getInventory().hasSpaceFor(BALL_OF_SNOW)) { - player.sendMessage("You don't have enough inventory space to collect any snow."); - return true; - } - if (player.getInventory().add(BALL_OF_SNOW)) { - player.lock(3); - player.animate(new Animation(7529)); - player.sendMessage("You collect a ball of snow."); - } - break; - case "build": - Location loc = player.getLocation().transform(player.getDirection()); - if (RegionManager.getObject(loc) != null || !RegionManager.isTeleportPermitted(loc)) { - player.sendMessage("You can't build a snowman here."); - return true; - } - if (player.getInventory().remove(node.asItem())) { - player.sendMessage("You start to build a snowman."); - player.animate(Animation.create(7532)); - SceneryBuilder.add(new Scenery(28266, loc)); - } - break; - case "add-to": - if (node.asScenery().getId() == 28295) { - player.sendMessage("You need a " + (player.getZoneMonitor().isInZone(getName()) ? "weapon or hat " : "hat") + " to complete this snowman."); - return true; - } - if (!player.getInventory().containsItem(BALL_OF_SNOW)) { - player.sendMessage("You need snow in order to add to this snow man."); - return true; - } - if (player.getInventory().remove(BALL_OF_SNOW)) { - if (player.getLocation().equals(node.getLocation())) { - player.moveStep(); - player.faceLocation(node.getLocation()); - } - player.sendMessage("You add some snow to the snowman."); - player.lock(1); - player.animate(Animation.create(node.asScenery().getId() <= 28278 ? 7532 : 7533)); - SceneryBuilder.replace(node.asScenery(), node.asScenery().transform(node.asScenery().getId() + 1)); - if (node.asScenery().getId() + 1 >= 28295) { - if (player.getZoneMonitor().isInZone(getName())) { - player.sendMessages("The snowman is almsot complete! Talk to a snow imp to get a hat or weapon to", "complete it."); - } else { - player.sendMessage("The snowman is almsot complete! Talk to a snow imp to get a hat to complete it."); - } - } - } - break; - case "shake": - if (player.getInventory().freeSlots() < 1) { - player.sendMessage("You don't have enough inventory space to do that."); - return true; - } - player.lock(16); - player.animate(Animation.create(7535)); - player.sendMessage("You shake the snow globe."); - GameWorld.getPulser().submit(new Pulse(1, player) { - int ticks; - @Override - public boolean pulse() { - switch (++ticks) { - case 3: - player.getInterfaceManager().open(new Component(659)); - break; - case 7: - player.graphics(new Graphics(1284)); - player.sendMessage("The snow globe fills your inventory with snow."); - player.getInventory().add(new Item(BALL_OF_SNOW.getId(), player.getInventory().freeSlots())); - player.getInterfaceManager().close(); - return true; - } - return false; - } - - }); - break; - } - return true; - } - - } - - /** - * Handles the pelt option on entities. - * @author Vexia - * - */ - public class PeltOptionHandler extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (int i = 6747; i < 6750; i++) { - NPCDefinition.forId(i).getHandlers().put("option:pelt", this); - } - PELT_OPTION.setHandler(this); - return this; - } - - @Override - public boolean handle(final Player player, final Node node, String option) { - if (!player.getLocation().withinDistance(node.getLocation(), 6)) { - player.sendMessage("You are too far away to throw this snowball."); - return true; - } - if (player.getInventory().remove(BALL_OF_SNOW) || player.getEquipment().remove(BALL_OF_SNOW)) { - if (!player.getEquipment().containsItem(BALL_OF_SNOW)) { - player.getInteraction().remove(PELT_OPTION); - } - final Entity target = (Entity) node; - player.lock(4); - player.face(target); - player.animate(Animation.create(7530)); - player.graphics(Graphics.create(1282)); - if (node instanceof NPC) { - player.sendMessage("You throw a snowball."); - node.asNpc().getSkills().heal(1); - int delay = 41; - int speed = 60; - player.getLocation(); - int distance = (int) Location.getDistance(player.getLocation(), target.getLocation()); - int projectileSpeed = delay + speed + distance * 5; - double hitDelay = projectileSpeed * .02857; - GameWorld.getPulser().submit(new Pulse((int) hitDelay, target) { - @Override - public boolean pulse() { - target.getImpactHandler().manualHit(player, node instanceof NPC ? 1 : 0, HitsplatType.MISS); - return true; - } - }); - } else { - player.sendMessage("You pelt " + target.asPlayer().getUsername() + " with a snowball."); - } - Projectile.create(player, target, 1282, 30, 10).send(); - return true; - } - player.sendMessage("You need a snowball in order to do that."); - return true; - } - - @Override - public boolean isWalk() { - return false; - } - - } - - /** - * Handles the use of a snowman hat on a snowman. - * @author Vexia - * - */ - public class SnowmanItemHandler extends UseWithHandler { - - /** - * Constructs the {@code SnowmanItemHandler} - */ - public SnowmanItemHandler() { - super(11955, 11956, 11957, 11958, 11959, 11952, 11953, 11954); - } - - @Override - public Plugin newInstance(Object arg) throws Throwable { - addHandler(28295, OBJECT_TYPE, this); - ClassScanner.definePlugin(new SnowmanDialogue()); - return this; - } - - @Override - public boolean handle(NodeUsageEvent event) { - final Player player = event.getPlayer(); - if (player.getInventory().remove(event.getUsedItem())) { - boolean weapon = event.getUsedItem().getId() < 11955; - int id = weapon ? 6747 + (11954 - event.getUsedItem().getId()) : 6742 + (4 - (11959 - event.getUsedItem().getId())); - if (event.getUsedItem().getId() == 11953) { - id = 6749; - } else if (event.getUsedItem().getId() == 11952) { - id = 6748; - } - final int npcId = id; - SceneryBuilder.remove(event.getUsedWith().asScenery()); - final NPC snowman = NPC.create(npcId, event.getUsedWith().getLocation()); - snowman.init(); - snowman.faceTemporary(player, 2); - snowman.setRespawn(false); - snowman.setWalks(true); - snowman.setAttribute("owner", player.getDetails().getUid()); - if (!player.getEmoteManager().isUnlocked(Emotes.SNOWMAN_DANCE)) { - player.getEmoteManager().unlock(Emotes.SNOWMAN_DANCE); - player.sendMessage("You've unlocked the snowman dance emote!"); - } - if (!weapon && HolidayEvent.getCurrent().getStage(player) < 2) { - HolidayEvent.getCurrent().setStage(player, 2); - } - if (!weapon) { - GameWorld.getPulser().submit(new Pulse(200) { - @Override - public boolean pulse() { - snowman.clear(); - return true; - } - }); - } - } - return true; - } - - /** - * Handles the snowman dialogue. - * @author Vexia - * - */ - public class SnowmanDialogue extends DialoguePlugin { - - /** - * Constructs the {@code SnowmanDialogue} - * @param player The player. - */ - public SnowmanDialogue(Player player) { - super(player); - } - - /** - * Constructs the {@code SnowmanDialogue} - */ - public SnowmanDialogue() { - /* - * empty. - */ - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new SnowmanDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - if (npc.getAttribute("owner", 0) != player.getDetails().getUid()) { - player.sendMessage("The snowman doesn't seem interested in talking to you."); - return true; - } - npc("Happy Christmas, mortal!"); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - player("Merry Christmas!"); - stage = 10; - break; - case 10: - npc("And a Happy New Year!"); - stage++; - break; - case 11: - npc("You should keep the spirit of Christmas in your heart at", "all times, mortal. If you do this, then to have a happy", "Christmas is to have a Happy New Year."); - stage++; - break; - case 12: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] {6742, 6743, 6744, 6745, 6746}; - } - - } - } - - /** - * Represents the snow imp dialogue. - * @author Vexia - * - */ - public static class SnowImpDialogue extends DialoguePlugin { - - /** - * The saying of snow imps. - */ - private static final String[][] SAYINGS = new String[][] { - {"Let it snow, let it snow, let it snow."}, - {"I'm dreaming of a white Keldagrim"}, - {"There's no business like snow business!"}, - {"Snowflakes! Millions of snowflakes! No two are the", "same you know!"}, - {"Isn't snow brilliant?"}, - {"Snow! Ha ha ha ha! Snow everywhere!"} - }; - - /** - * Constructs the {@code SnowImpDialogue} - * @param player The player. - */ - public SnowImpDialogue(Player player) { - super(player); - } - - /** - * Constructs the {@code SnowImpDialogue} - */ - public SnowImpDialogue() { - /* - * empty. - */ - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new SnowImpDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - switch (npc.getId()) { - case 8536: - npc("Go, snow warriors! Yeah!"); - stage = 100; - break; - default: - npc(SAYINGS[RandomFunction.random(SAYINGS.length - 1)]); - stage = HolidayEvent.getCurrent().getStage(player) > 1 ? 40 : 1; - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 1: - switch (HolidayEvent.getCurrent().getStage(player)) { - case 0: - options("Who are you?", "Why are you making it snow?", "What can I do with all this snow?"); - stage = 4; - break; - case 1: - player("Could I have a snowman hat, please?"); - stage = 2; - break; - } - break; - case 2: - for (int i : SNOWMAN_HATS) { - if (player.hasItem(new Item(i))) { - npc("You already have a snowman hat, mate."); - stage = 5; - break; - } - } - end(); - player.getInterfaceManager().open(new Component(658)); - break; - case 3: - options("Who are you?", "Why are you making it snow?", "What can I do with all this snow?"); - stage++; - break; - case 4: - switch (buttonId) { - case 1: - player("Who are you?"); - stage = 10; - break; - case 2: - player("Why are you making it snow?"); - stage = 20; - break; - case 3: - player("What can I do with all this snow?"); - stage = 30; - break; - } - break; - case 5: - end(); - break; - case 10: - npc("It's a snow imp! From der Land of Snow!"); - stage++; - break; - case 11: - player("Can I go to the Land of Snow?"); - stage++; - break; - case 12: - if (HolidayEvent.getCurrent().getStage(player) > 1) { - sendChristmasTeleport(player, Location.create(2643, 5611, 0)); - end(); - break; - } - npc("We don't just let anyone into the Land of Snow, mate.", "You need to show you like snow first. Help to build a", "snowman!"); - if (HolidayEvent.getCurrent().getStage(player) < 1) { - HolidayEvent.getCurrent().setStage(player, 1); - } - stage++; - break; - case 13: - options("Who are you?", "Why are you making it snow?", "Could I have a snowman hat please?"); - stage++; - break; - case 14: - switch (buttonId) { - case 1: - player("Who are you?"); - stage = 10; - break; - case 2: - player("Why are you making it snow?"); - stage = 20; - break; - case 3: - player("Could I have a snowman hat please?"); - stage = 2; - break; - } - break; - case 20: - npc("'Cause it's Christmas, innit."); - stage = 3; - break; - case 30: - npc("Whatever yer like! I don't care! There's plen'y more", "where this lot came from."); - stage = 3; - break; - case 40: - options("Who are you?", "Why are you making it snow?", "What can I do with all this snow?", "Could I have a snowman hat, please?", "Can I go to the Land of Snow?"); - stage++; - break; - case 41: - switch (buttonId) { - case 1: - player("Who are you?"); - stage = 10; - break; - case 2: - player("Why are you making it snow?"); - stage = 20; - break; - case 3: - player("What can I do with all this snow?"); - stage = 30; - break; - case 4: - player("Could I have a snowman hat please?"); - stage = 2; - break; - case 5: - player("Can I go to the Land of Snow?"); - stage = 42; - break; - } - break; - case 42: - end(); - sendChristmasTeleport(player, Location.create(2643, 5611, 0)); - break; - case 100: - options("Who are you?", "Could I have a snowman hat, please?", "Could I have a snowman weapon, please?", "I want to go back to Keldagrim."); - stage++; - break; - case 101: - switch (buttonId) { - case 1: - player("Who are you?"); - stage = 110; - break; - case 2: - player("Could I have a snowman hat, please?"); - stage = 2; - break; - case 3: - player("Could I have a snowman weapon, please?"); - stage = 130; - break; - case 4: - player("I want to go back to Keldagrim."); - stage = 140; - break; - } - break; - case 110: - npc("It's a snow imp! From der Land of Snow!"); - stage = 100; - break; - case 130: - for (int i : SNOWMAN_WEAPONS) { - if (player.hasItem(new Item(i))) { - npc("You already have a snowman hat, mate."); - stage = 131; - break; - } - } - end(); - player.getPacketDispatch().sendString("Select a Snowman Hat or Weapon", 658, 13); - player.getPacketDispatch().sendInterfaceConfig(658, 53, false); - player.getInterfaceManager().open(new Component(658)); - break; - case 131: - break; - case 140: - npc("Very well. You may return here during Christmas-time, when", "the Land of Snow is close to Keldagrim."); - stage++; - break; - case 141: - sendChristmasTeleport(player, player.getAttribute("last-location", HUBS[0])); - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] {6732, 6733, 6734, 6735, 6736, 6737, 6738, 8536}; - } - - } - - /** - * Handles the snowman hat selector component. - * @author Vexia - * - */ - public class SnowmanHatComponentPlugin extends ComponentPlugin { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - ComponentDefinition.forId(658).setPlugin(this); - return this; - } - - @Override - public boolean handle(Player player, Component component, int opcode, int button, int slot, int itemId) { - switch (component.getId()) { - case 658: - switch (opcode) { - case 155: - if (player.getInventory().freeSlots() < 1) { - player.sendMessage("You don't have enough inventory space."); - player.getInterfaceManager().close(); - return true; - } - boolean weapons = button >= 32; - for (int i : weapons ? SNOWMAN_WEAPONS : SNOWMAN_HATS) { - if (player.hasItem(new Item(i))) { - player.getInterfaceManager().close(); - player.sendMessage("You already have a snowman " + (weapons ? "weapon" : "hat") + "."); - return true; - } - } - if (!weapons) { - int dif = 30 - button; - int div = 4 - (dif / 2); - itemId = 11955 + div; - } else { - //11952-11954 - itemId = 11954; - if (button == 36) { - itemId = 11952; - } else if (button == 34) { - itemId = 11953; - } - } - player.getInventory().add(new Item(itemId)); - player.getInterfaceManager().close(); - break; - } - break; - } - return true; - } - - } - - /** - * Handles the dialogue for the queen of snow. - * @author Vexia - * - */ - public class QueenOfSnowDialogue extends DialoguePlugin { - - /** - * Constructs the {@code QueenOfSnowDialogue} object. - */ - public QueenOfSnowDialogue() { - /* - * empty. - */ - } - - /** - * Constructs the {@code QueenOfSnowDialogue} object. - * @param player The player. - */ - public QueenOfSnowDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new QueenOfSnowDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - switch (HolidayEvent.getCurrent().getStage(player)) { - case 2: - npc("Happy Christmas, noble visitor. Welcome to the Land of", "Snow. I have a gift for you, if you would like it."); - stage = 15; - break; - case 3: - npc("Happy Christmas, noble visitor. Welcome to the Land of", "Snow."); - stage = 100; - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 15: - options("Ooh, a present?", "I want to go back to Keldagrim."); - stage++; - break; - case 16: - switch (buttonId) { - case 1: - player("Ooh, a present?"); - stage = 17; - break; - case 2: - player("I want to go back to Keldagrim."); - stage = 150; - break; - } - break; - case 17: - npc("It is a snow globe: a tiny model of your Lumbridge", "Castle enchanted with a little of this land's magical snow."); - stage++; - break; - case 18: - interpreter.sendItemMessage(SNOWGLOBE, "The Queen of Snow hands you a snow globe."); - stage++; - break; - case 19: - if (!player.getInventory().add(SNOWGLOBE)) { - end(); - player.sendMessage("You don't have enough room in your inventory."); - break; - } - if (HolidayEvent.getCurrent().getStage(player) < 3) { - HolidayEvent.getCurrent().setStage(player, 3); - } - end(); - break; - case 100: - if (!player.hasItem(SNOWGLOBE)) { - npc("I see that you have lost your snow globe, would", "you like another one?"); - stage = 200; - break; - } - options("Happy Christmas, Your Majesty.", "Why have you sent snow to Keldagrim?", "What is the Land of Snow?", "What is the snow globe for?", "I want to go back to Keldagrim."); - stage++; - break; - case 101: - switch (buttonId) { - case 1: - player("Happy Christmas, Your Majesty."); - stage = 110; - break; - case 2: - player("Why have you sent snow to Keldagrim?"); - stage = 120; - break; - case 3: - player("What is the Land of Snow?"); - stage = 130; - break; - case 4: - player("What is the snow globe for?"); - stage = 140; - break; - case 5: - player("I want to go back to Keldagrim."); - stage = 150; - break; - } - break; - case 110: - npc("And a Happy New Year to you."); - stage++; - break; - case 111: - end(); - break; - case 120: - npc("A snowy Christmas is a tradition that I have sadly neglected", "in recent years; what is Christmas without the hope", "of snow? There can be no hope of snow if snow", "never comes."); - stage = 111; - break; - case 130: - npc("The Land of Snow was created aeons ago by Guthix, as", "part of his balancing of the world. The coldness of this", "place counteracts the heat of the great deserts and volcanoes", "of others; ensuring the correct balance of hot and cold."); - stage = 111; - break; - case 140: - npc("Nothing, besides your idle amusement. It is imbued with a", "little of the snow imps' magic. When you shake it, it", "will call some snow to you from the Land of Snow."); - stage = 111; - break; - case 150: - npc("Very well. You may return here during Christmas-time,", "when the Land of Snow is close to Keldagrim. Just speak to", "a snowman or snow imp."); - stage++; - break; - case 151: - sendChristmasTeleport(player, player.getAttribute("last-location", HUBS[0])); - end(); - break; - case 200: - options("Yes, please.", "No, thank you."); - stage++; - break; - case 201: - switch (buttonId) { - case 1: - player("Yes, please."); - stage = 18; - break; - case 2: - end(); - break; - } - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] {6731}; - } - - } - - /** - * Represents the snowman NPC. - * @author Vexia - * - */ - public class SnowmanNPC extends AbstractNPC { - - /** - * Constructs the {@code SnowmanNPC}. - */ - public SnowmanNPC() { - super(-1, null); - } - - /** - * Constructs the {@code SnowmanNPC} - * @param id The id. - * @param loc The location. - */ - public SnowmanNPC(int id, Location loc) { - super(id, loc); - } - - @Override - public void handleTickActions() { - super.handleTickActions(); - if (!getProperties().getCombatPulse().isAttacking()) { - final List surronding = RegionManager.getLocalNpcs(this, 10); - for (NPC n : surronding) { - if (n.getProperties().getCombatPulse().isAttacking()) { - continue; - } - if (n == this) { - continue; - } - for (int i : getIds()) { - if (n.getId() == i) { - getProperties().getCombatPulse().attack(n); - n.getProperties().getCombatPulse().attack(this); - break; - } - } - } - } - } - - @Override - public void sendImpact(BattleState state) { - if (state.getEstimatedHit() > 4) { - state.setEstimatedHit(4); - } - state.setEstimatedHit(0); - } - - @Override - public AbstractNPC construct(int id, Location location, Object... objects) { - return new SnowmanNPC(id, location); - } - - @Override - public boolean isAttackable(Entity entity, CombatStyle style, boolean message) { - if (entity instanceof Player) { - if(message) { - ((Player) entity).sendMessage("You can't attack a snowman."); - } - return false; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] {6747, 6748, 6749}; - } - - } -} diff --git a/Server/src/main/java/core/game/content/holiday/easter/BasketofEggsEvent.java b/Server/src/main/java/core/game/content/holiday/easter/BasketofEggsEvent.java deleted file mode 100644 index 6c1948c5c..000000000 --- a/Server/src/main/java/core/game/content/holiday/easter/BasketofEggsEvent.java +++ /dev/null @@ -1,528 +0,0 @@ -package core.game.content.holiday.easter; - -import core.game.content.consumable.effects.HealingEffect; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.consumable.Consumables; -import core.game.content.consumable.Food; -import core.game.content.holiday.HolidayEvent; -import core.game.content.holiday.HolidayItem; -import core.game.content.holiday.HolidayType; -import core.game.content.holiday.ItemLimitation; -import core.game.interaction.Option; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.Entity; -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.emote.Emotes; -import core.game.node.item.GroundItemManager; -import core.game.node.item.Item; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.world.map.Location; -import rs09.game.world.repository.Repository; -import core.game.world.update.flag.context.Animation; -import core.plugin.Plugin; -import rs09.plugin.ClassScanner; -import core.plugin.Initializable; -import core.tools.RandomFunction; - -/** - * Represents the 2005 Easter Event of giving out chocolate eggs. - * @author Vexia - * - */ -@Initializable -public class BasketofEggsEvent extends HolidayEvent { - - /** - * The chocolate eggs item. - */ - private static final Item[] CHOCOLATE_EGGS = new Item[] { new Item(12646), new Item(12647), new Item(12648) }; - - /** - * The egging option. - */ - private static final Option EGG_OPTION = new Option("Egg", 7); - - /** - * The whack option. - */ - private static final Option WHACK_OPTION = new Option("Whack", 7); - - /** - * The rubber chicken item. - */ - public static final Item RUBBER_CHICKEN = new Item(4566); - - /** - * The basket of eggs item. - */ - private static final Item BASKET_OF_EGGS = new Item(4565); - - /** - * The current egg item. - */ - private static Item egg; - - /** - * The bunny npc. - */ - private static NPC bunny; - - /** - * Constructs a new {@Code BasketofEggsEvent} {@Code Object} - */ - public BasketofEggsEvent() { - super("Basket of Eggs", HolidayType.EASTER, 1086, 16, 2); - ClassScanner.definePlugins(new BasketofEggsPlugin(), new EasterBunnyDialogue(), new RubberchickenPlugin(), new ChocolateEggPlugin(), new EasterItemPlugin()); - } - - @Override - public void load() { - egg = new Item(1961); - if (!ItemLimitation.isRegistered(1037)) { - ItemLimitation.register(1037, 25); - } - if (!ItemLimitation.isRegistered(egg.getId())) { - ItemLimitation.register(egg.getId(), 100); - } - if (ItemLimitation.getAmountLeft(egg.getId()) > 0) { - HolidayItem.startRandomSpawn(egg, 1000, Location.create(3433, 3534, 0), Location.create(3099, 3548, 0), Location.create(3067, 10255, 0), Location.create(2913, 3746, 0), Location.create(3193, 3914, 0), Location.create(3214, 9618, 0), Location.create(3227, 3219, 2), Location.create(3300, 3312, 0), Location.create(3075, 3260, 0), Location.create(3213, 3428, 0), Location.create(3213, 3480, 0), Location.create(2710, 3460, 0), Location.create(2750, 3440, 0), Location.create(2927, 3144, 0), Location.create(2667, 3309, 0), Location.create(2600, 3104, 0), Location.create(2910, 4832, 0), Location.create(2925, 3445, 0), Location.create(2475, 3423, 1), Location.create(2817, 3441, 0), Location.create(2948, 3216, 0), Location.create(1864, 5243, 0), Location.create(2706, 3733, 0), Location.create(3186, 3446, 1), Location.create(3189, 9832, 0), Location.create(2655, 3310, 0), Location.create(3145, 9913, 0)); - } - bunny = NPC.create(1835, new Location(3008, 3294, 0)); - bunny.setWalks(true); - bunny.init(); - } - - @Override - public void finalizeDeath(Entity killer, Entity victim) { - if (killer instanceof Player && victim instanceof NPC) { - Player player = (Player) killer; - if (victim.getProperties().getCurrentCombatLevel() > 0) { - int chance = (5_000 / victim.getProperties().getCurrentCombatLevel()) * 100; - if (RandomFunction.random(chance) == 0) { - int itemId = 1037; - if (ItemLimitation.getAmountLeft(itemId) > 0) { - ItemLimitation.decreaseAmount(itemId); - Repository.sendNews(player.getUsername() + " found a pair of bunny ears!"); - player.getPacketDispatch().sendMessage("You find a set of bunny ears."); - GroundItemManager.create(new Item(itemId), victim.getLocation(), player); - } - } - } - } - } - - @Override - public boolean isActive() { - return false; - } - - @Override - public void configure() { - - } - - /** - * Gets the amount of eggs in a players inventory. - * @param player the player. - * @return the amount of eggs. - */ - public int getEggs(Player player) { - int eggs = 0; - for (Item item : CHOCOLATE_EGGS) { - eggs += player.getInventory().getAmount(item); - } - return eggs; - } - - /** - * Handlers the easter bunny dialogue. - * @author Vexia - * - */ - public class EasterBunnyDialogue extends DialoguePlugin { - - /** - * Constructs a new {@Code EasterBunnyDialogue} {@Code Object} - */ - public EasterBunnyDialogue() { - /* - * empty. - */ - } - - /** - * Constructs a new {@Code EasterBunnyDialogue} {@Code Object} - * @param player the player. - */ - public EasterBunnyDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new EasterBunnyDialogue(player); - } - - @Override - public boolean open(Object... args) { - if (player.isAdmin()) { - player.sendMessage("" + egg.getLocation()); - } - switch (getStage(player)) { - case 0: - npc("Oh dear, the eggs, the eggs...", "What will I do about the eggs!? All of", "the eggs!!??"); - break; - case 1: - if (player.getAttribute("eggs", 0) >= 15) { - npc("Thank you, " + player.getUsername() + "! You handed out " + player.getAttribute("eggs", 0) + " eggs! Here", "is your Easter reward."); - } else { - Pulse pulse = player.getAttribute("egg-pulse", null); - if (pulse != null && pulse.isRunning() && player.hasItem(BASKET_OF_EGGS)) { - npc("You need to hand out a total of 15 eggs in order", "for me to give you a reward."); - stage = 4; - return true; - } - npc("You didn't hand out enough eggs in order to", "receive a prize. Take this basket and try", "again."); - stage = 2; - } - break; - case 2: - npc("Thank you for all of your help " + player.getUsername() + "!"); - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (getStage(player)) { - case 0: - switch (stage) { - case 0: - npc("I'm so sorry, I didn't realize you were there.", "What might I assist you with?"); - stage++; - break; - case 1: - options("What about eggs..?", "What are you doing here?", "Are you in a costume?", "Nothing."); - stage++; - break; - case 2: - switch (buttonId) { - case 1: - player("What about eggs..?"); - stage = 10; - break; - case 2: - npc("I am the easter bunny, and since it is easter", "I must begin handing out chocolate eggs to all", "of " + GameWorld.getSettings().getName() + "."); - stage = 20; - break; - case 3: - player("Are you in a costume?"); - stage = 30; - break; - case 4: - player("Nothing, just passing through."); - stage = 40; - break; - } - break; - case 10: - npc("Being the easter bunny is no simple task and", "I have found myself very overwhelmed this year.", "I have no clue how I must deliver all of these basket", "of eggs to all the people of " + GameWorld.getSettings().getName() + "."); - stage = 21; - break; - case 20: - npc("I must admit that it is a very large task", "for such a bunny like myself. It takes a", "whole year to prepare and I am still behind!"); - stage++; - break; - case 21: - options("Do you need any help?", "Goodluck with that."); - stage++; - break; - case 22: - if (buttonId == 1) { - player("Do you need any help?"); - stage = 24; - } else { - player("Goodluck with that."); - stage++; - } - break; - case 23: - npc("Thank you for your concern..."); - stage = 31; - break; - case 24: - npc("I would appreciate your help very much " + player.getUsername() + ".", "You have two minutes to go and hand out 15", "eggs from the basket."); - stage++; - break; - case 25: - npc("Take this basket of eggs and hand out the chocolate eggs.", "When you're done come back and talk to me. I'm sure", "we can sort out some type of reward for your assistance."); - stage++; - break; - case 26: - interpreter.sendItemMessage(BASKET_OF_EGGS, "The easter bunny hands you a basket of eggs."); - stage++; - break; - case 27: - BasketofEggsEvent.this.setStage(player, 1); - player.getInventory().add(BASKET_OF_EGGS, player); - end(); - Pulse pulse = new Pulse(200, player) { - - @Override - public boolean pulse() { - player.getDialogueInterpreter().sendDialogue("Your time is up. Go and talk to the easter bunny."); - return true; - } - - @Override - public void stop() { - player.getBank().remove(BASKET_OF_EGGS); - player.getEquipment().remove(BASKET_OF_EGGS); - player.getInventory().remove(BASKET_OF_EGGS); - super.stop(); - } - }; - player.setAttribute("egg-pulse", pulse); - GameWorld.getPulser().submit(pulse); - break; - case 30: - npc("No you fool! I am an easter bunny!!"); - stage++; - break; - case 31: - end(); - break; - case 40: - end(); - break; - } - break; - case 1: - switch (stage) { - case 0: - player.removeAttribute("eggs"); - interpreter.sendItemMessage(RUBBER_CHICKEN, "The easter bunny hands you over a rubber chicken", "and unlocks the 'Bunny-hop' emote."); - stage++; - break; - case 1: - player.getBank().remove(BASKET_OF_EGGS); - player.getEquipment().remove(BASKET_OF_EGGS); - player.getInventory().remove(BASKET_OF_EGGS); - player.getInventory().add(RUBBER_CHICKEN, player); - player.getEmoteManager().unlock(Emotes.BUNNY_HOP); - BasketofEggsEvent.this.setStage(player, 2); - end(); - break; - case 2: - interpreter.sendItemMessage(BASKET_OF_EGGS, "The easter bunny hands you a basket of eggs."); - stage++; - break; - case 3: - player.removeAttribute("eggs"); - player.getInventory().add(BASKET_OF_EGGS, player); - end(); - Pulse pulse = new Pulse(200, player) { - - @Override - public boolean pulse() { - player.getDialogueInterpreter().sendDialogue("Your time is up. Go and talk to the easter bunny."); - return true; - } - - @Override - public void stop() { - player.getBank().remove(BASKET_OF_EGGS); - player.getEquipment().remove(BASKET_OF_EGGS); - player.getInventory().remove(BASKET_OF_EGGS); - super.stop(); - } - }; - player.setAttribute("egg-pulse", pulse); - GameWorld.getPulser().submit(pulse); - break; - case 4: - end(); - break; - } - break; - case 2: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 1835 }; - } - - } - - /** - * Handles the interactions related to the basket of eggs. - * @author Vexia - * - */ - public class BasketofEggsPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - EGG_OPTION.setHandler(this); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - if (!(node instanceof Player)) { - return false; - } - if (getStage(player) != 1) { - player.getEquipment().remove(BASKET_OF_EGGS); - player.getInventory().remove(BASKET_OF_EGGS); - player.getBank().remove(BASKET_OF_EGGS); - return true; - } - if (!player.getEquipment().containsItem(BASKET_OF_EGGS)) { - player.sendMessage("You need to be wielding a basket of eggs in order to do that."); - return true; - } - Pulse pulse = player.getAttribute("egg-pulse", null); - if (pulse == null || !pulse.isRunning()) { - player.getEquipment().remove(BASKET_OF_EGGS); - player.getInventory().remove(BASKET_OF_EGGS); - player.getBank().remove(BASKET_OF_EGGS); - return true; - } - Player target = node.asPlayer(); - if (getEggs(target) >= 4 && !GameWorld.getSettings().isDevMode()) { - player.sendMessage("That player already has enough chocolate eggs."); - return true; - } - if (target.getInventory().freeSlots() < 1) { - player.sendMessage("That player doesn't have enough room in their inventory."); - return true; - } - target.sendMessage(player.getUsername() + " gave you an easter egg!"); - player.setAttribute("eggs", player.getAttribute("eggs", 0) + 1); - player.sendMessage("You gave " + target.getUsername() + " an easter egg!"); - target.getInventory().add(RandomFunction.getRandomElement(CHOCOLATE_EGGS)); - return true; - } - - } - - /** - * Handles the easter item plugin. - * @author Vexia - * - */ - public class EasterItemPlugin implements Plugin { - @Override - public Plugin newInstance(Object arg) throws Throwable { - RUBBER_CHICKEN.getDefinition().getHandlers().put("equipment", this); - BASKET_OF_EGGS.getDefinition().getHandlers().put("equipment", this); - return this; - } - - @Override - public Object fireEvent(String identifier, Object... args) { - final Player player = (Player) args[0]; - Item item = (Item) args[1]; - final Item other = args.length == 2 ? null : (Item) args[2]; - if (other != null) { - identifier = "equip"; - item = other; - } - switch (identifier) { - case "equip": - player.getInteraction().set(item.getId() == BASKET_OF_EGGS.getId() ? EGG_OPTION : WHACK_OPTION); - break; - case "unequip": - player.getInteraction().remove(item.getId() == BASKET_OF_EGGS.getId() ? EGG_OPTION : WHACK_OPTION); - break; - } - return true; - } - } - - /** - * Handles the interactions related to the rubber chicken. - * @author Vexia - * - */ - public class RubberchickenPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - RUBBER_CHICKEN.getDefinition().getHandlers().put("option:operate", this); - RUBBER_CHICKEN.getDefinition().getHandlers().put("option:dance", this); - WHACK_OPTION.setHandler(this); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - switch (option) { - case "whack": - if (!(node instanceof Player)) { - return true; - } - Player target = (Player) node; - player.lock(4); - player.face(target); - player.animate(Animation.create(1833)); - player.getAudioManager().send(2257, true); - node.asPlayer().getPacketDispatch().sendMessage(player.getUsername() + " whacks you with a rubber chicken."); - return true; - case "dance": - case "operate": - if (player.getAttribute("chicken-delay", 0) > GameWorld.getTicks()) { - return true; - } - player.setAttribute("chicken-delay", GameWorld.getTicks() + 8); - player.animate(Animation.create(1835)); - return true; - } - return true; - } - - // http://www.rune-server.org/2009scape-development/rs-503-client-server/tutorials/461911-718-right-click-mute-option-mods.html - // http://www.rune-server.org/2009scape-development/rs2-server/snippets/513788-474-rs2-server-player-option-5-used-rubber-chicken-includes.html - - } - - /** - * Represents the chocolate egg plugin. - * @author Vexia - * - */ - public class ChocolateEggPlugin extends Food { - - /** - * Constructs a new {@Code ChocolateEggPlugin} {@Code Object} - */ - public ChocolateEggPlugin() { - this(-1); - } - - @Override - public ChocolateEggPlugin newInstance(Object object) { - for (Item item : CHOCOLATE_EGGS) { - Consumables.add(new ChocolateEggPlugin(item.getId())); - } - return this; - } - - /** - * Constructs a new {@code CupofTeaPlugin} {@code Object}. - */ - public ChocolateEggPlugin(int id) { - super(new int[] {id}, new HealingEffect(0), new Animation(1835)); - } - } -} diff --git a/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java b/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSChestDialogue.java b/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSChestDialogue.java deleted file mode 100644 index bcd1b56f7..000000000 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DSChestDialogue.java +++ /dev/null @@ -1,76 +0,0 @@ -package core.game.content.quest.free.dragonslayer; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.node.entity.player.Player; -import core.game.node.item.GroundItemManager; - -/** - * Represents the dialogue plugin used for the dragon slayer chest. - * @author 'Vexia - * @version 1.0 - */ -public final class DSChestDialogue extends DialoguePlugin { - - /** - * Constructs a new {@code DSChestDialogue} {@code Object}. - */ - public DSChestDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code DSChestDialogue} {@code Object}. - * @param player the player. - */ - public DSChestDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new DSChestDialogue(player); - } - - @Override - public boolean open(Object... args) { - interpreter.sendDialogue("As you open the chest, you notice an inscription on the lid:"); - stage = 0; - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - interpreter.sendDialogue("Here I rest the map to my beloved home. To whoever finds it, I beg", "of you, let it be. I was honour-bound not to destroy the map piece,", "but I have used all my magical skill to keep it from being recovered."); - stage = 1; - break; - case 1: - interpreter.sendDialogue("This map leads to the lair of the beast that destroyed my home,", "devoured my family, and burned to a cinder all that I love. But", "revenge would not benefit me now, and to disturb this beast is to risk", "brining its wrath down upon another land."); - stage = 2; - break; - case 2: - interpreter.sendDialogue("I cannot stop you from taking this map piece now, but think on this:", "if you can slay the Dragon of Crandor, you are a greater hero than", "my land ever produced. There is no shame in backing out now."); - stage = 3; - break; - case 3: - interpreter.sendItemMessage(DragonSlayer.MAGIC_PIECE.getId(), "You find a map piece in the chest."); - stage = 4; - break; - case 4: - if (!player.getInventory().add(DragonSlayer.MAGIC_PIECE)) { - GroundItemManager.create(DragonSlayer.MAGIC_PIECE, player); - } - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] { 3802875 }; - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/CellarMapZone.java b/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/CellarMapZone.java deleted file mode 100644 index 2c2211712..000000000 --- a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/CellarMapZone.java +++ /dev/null @@ -1,98 +0,0 @@ -package core.game.content.quest.tutorials.learningtheropes; - -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.world.map.Direction; -import core.game.world.map.Location; -import core.game.world.map.build.DynamicRegion; -import core.game.world.map.zone.MapZone; -import core.game.world.update.flag.context.Animation; - -/** - * @author Ethan Kyle Millard - * @since Wed, October 10, 2018 @ 1:03 PM - */ -public class CellarMapZone extends MapZone { - - private static final NPC[] NPCS = new NPC[]{ - /** sir vant */ - NPC.create(7938, Location.create(2524, 5005, 0), Direction.NORTH), - /** goblin*/ - NPC.create(7965, Location.create(2524, 4997, 0), Direction.NORTH), - }; - - public static final CellarMapZone INSTANCE = new CellarMapZone(); - - /** - * The region of the zone. - */ - private DynamicRegion region; - - /** - * The base location. - */ - private Location base; - - - /** - * Constructs a new {@code MapZone} {@code Object}. - */ - public CellarMapZone() { - super("Cellar Map Zone", true); - } - - @Override - public void configure() { - region = DynamicRegion.create(10062); - setRegionBase(); - registerRegion(region.getId()); - setNpcs(); - } - - public void create(Player player) { - configure(); - player.teleport(getBase().transform(28, 12, 0)); - } - - private void setNpcs() { - for (NPC n : NPCS) { - n = NPC.create(n.getId(), n.getLocation(), n.getDirection()); - n.setLocation(base.transform(n.getLocation().getLocalX(), n.getLocation().getLocalY(), 0)); - n.setRespawn(false); - n.init(); - n.setWalks(false); - n.animate(new Animation(-1)); - } - } - - /** - * Sets the region base. - */ - private void setRegionBase() { - if (region != null) { - setBase(Location.create(region.getBorders().getSouthWestX(), region.getBorders().getSouthWestY(), 0)); - } - } - - /** - * Gets the base. - * - * @return the base - */ - public Location getBase() { - return base; - } - - /** - * Sets the base. - * - * @param base the base to set. - */ - public void setBase(Location base) { - this.base = base; - } - - public static CellarMapZone get() { - return INSTANCE; - } -} diff --git a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/LTRDragonFightCutscene.java b/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/LTRDragonFightCutscene.java deleted file mode 100644 index 2a70aa391..000000000 --- a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/LTRDragonFightCutscene.java +++ /dev/null @@ -1,353 +0,0 @@ -package core.game.content.quest.tutorials.learningtheropes; - -import core.game.content.activity.ActivityPlugin; -import core.game.content.activity.CutscenePlugin; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.combat.ImpactHandler; -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.entity.state.EntityState; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.game.world.map.Direction; -import core.game.world.map.Location; -import core.game.world.map.build.DynamicRegion; -import core.game.world.map.path.Path; -import core.game.world.map.path.Pathfinder; -import core.game.world.map.zone.ZoneBuilder; -import core.game.world.update.flag.context.Animation; -import core.game.world.update.flag.context.Graphics; -import core.net.packet.PacketRepository; -import core.net.packet.context.CameraContext; -import core.net.packet.out.CameraViewPacket; -import core.plugin.Initializable; - -/** - * @author Ethan Kyle Millard - * @since Mon, October 08, 2018 @ 5:00 PM - */ -@Initializable -public class LTRDragonFightCutscene extends CutscenePlugin { - - private static final NPC[] NPCS = new NPC[] { - /** dragon */ - NPC.create(7943, Location.create(2524, 5015, 0), Direction.SOUTH), - /** sir vant */ - NPC.create(7938, Location.create(2524, 5005, 0), Direction.NORTH), - /** goblin*/ - NPC.create(7964, Location.create(2522, 5000, 0), Direction.NORTH), - }; - - private static final Animation SIR_VANT_BLOCK = Animation.create(9941); - private static final Animation SIR_VANT_STAB = Animation.create(9938); - private static final Animation SIR_VANT_SLASH = Animation.create(9939); - private static final Animation SIR_VANT_BLOCK_FIRE = Animation.create(9942); - private static final Animation SIR_VANT_BIG_SLASH = Animation.create(9943); - private static final Animation DRAGON_ATTACK = Animation.create(9922); - private static final Animation DRAGON_BLOCK = Animation.create(9923); - private static final Animation DRAGON_FIRE_BREATH = Animation.create(9919); - private static final Graphics DRAGON_FIRE_BREATH_GFX = new Graphics(1, 64); - private static final Animation DRAGON_SLASHED = Animation.create(9921); - private static final Animation DRAGON_STANDING_UNCUT = Animation.create(9914); - private static final Animation DRAGON_STANDING_CUT = Animation.create(9915); - private static final Animation DRAGON_STANDING_WOBBLING = Animation.create(9916); - private static final Animation DRAGON_STANDING_CUTTING = Animation.create(9917); - private static final Animation DRAGON_FLYING = Animation.create(9913); - private static final Animation GOBLIN_FALLING = Animation.create(9965); - private static final Animation GOBLIN_PLUNDERING = Animation.create(9963); - private static final Animation GOBLIN_HIT_ON_HEAD= Animation.create(9964); - - - - private final FightPulse fightPulse = new FightPulse(); - - - public LTRDragonFightCutscene() { - this(null); - } - - public LTRDragonFightCutscene(final Player player) { - super("ltr:dragon_fight_cs"); - this.player = player; - } - - @Override - public ActivityPlugin newInstance(Player p) throws Throwable { - return new LTRDragonFightCutscene(p); - } - - @Override - public Location getSpawnLocation() { - return getBase().transform(28, 12, 0); - } - - @Override - public Location getStartLocation() { - return getBase().transform(28, 12, 0); - } - - @Override - public void register() { - super.register(); - } - - @Override - public void open() { - ZoneBuilder.configure(CellarMapZone.get()); - setNpcs(); - GameWorld.getPulser().submit(fightPulse); - player.lock(); - player.getLocks().lockMovement(1000000); - camera(31, 12, -45, 0, 300, 95); - } - - - public final class FightPulse extends Pulse { - - /** - * Represents the counter. - */ - private int counter; - - /** - * Constructs a new {@code FightPulse} {@code Object}. - */ - public FightPulse() { - super(1, player); - } - - @Override - public boolean pulse() { - switch (counter++) { - case 1: - System.out.println("Fight begin"); - getSirVant().getSkills().setStaticLevel(Skills.HITPOINTS, 99); - getSirVant().getSkills().setLifepoints(99); - getDragon().getSkills().setStaticLevel(Skills.HITPOINTS, 99); - getDragon().getSkills().setLifepoints(99); - System.out.println("getGoblin().getLocation().getLocalX() = " + getGoblin().getLocation().getLocalX()); - System.out.println("getGoblin().getLocation().getLocalY() = " + getGoblin().getLocation().getLocalY()); - break; - - case 4: - camera(28, 21, 1, 4, 220, 100); - Path path = Pathfinder.find(getDragon(), getDragon().getLocation().transform(-1, -9, 0), true, Pathfinder.DUMB, (a, b, c) -> 0); - path.walk(getDragon()); - break; - - case 9: - camera(31, 12, -5, 3, 300, 100); - break; - - case 13: - camera(32, 10, -4, 5, 450, 100); - break; - - case 15: - getDragon().animate(DRAGON_ATTACK);//attack - getSirVant().animate(SIR_VANT_BLOCK);//block - getSirVant().getImpactHandler().manualHit(getDragon(), 12, ImpactHandler.HitsplatType.NORMAL); - break; - - case 17: - getDragon().animate(DRAGON_BLOCK); - getSirVant().animate(SIR_VANT_STAB); - getDragon().getImpactHandler().manualHit(getSirVant(), 11, ImpactHandler.HitsplatType.NORMAL); - break; - - case 19: - getDragon().animate(DRAGON_BLOCK); - getSirVant().animate(SIR_VANT_SLASH); - getDragon().getImpactHandler().manualHit(getSirVant(), 8, ImpactHandler.HitsplatType.NORMAL); - break; - - case 21: - getDragon().animate(DRAGON_FIRE_BREATH); - getDragon().graphics(DRAGON_FIRE_BREATH_GFX); - getSirVant().animate(SIR_VANT_BLOCK_FIRE); - getSirVant().getImpactHandler().manualHit(getDragon(), 18, ImpactHandler.HitsplatType.NORMAL); - break; - - case 23: - getSirVant().sendChat("Look out behind you!"); - break; - - case 25: - camera(32, 13, -5, -5, 300, 100); - getGoblin().animate(GOBLIN_FALLING); - break; - case 26: - camera(31, 9, -3, -3, 250, 75); - break; - case 27: - path = Pathfinder.find(getGoblin(), getGoblin().getLocation().transform(2, -3, 0), true, Pathfinder.DUMB, (a, b, c) -> 0); - path.walk(getGoblin()); - break; - - case 30: - getGoblin().sendChat("What can I steal in here?"); - getGoblin().animate(GOBLIN_PLUNDERING); - break; - - case 34: - camera(32, 10, -3, 5, 500, 100); - break; - - case 35: - getDragon().animate(DRAGON_FLYING); - break; - - case 39: - getDragon().animate(DRAGON_STANDING_UNCUT); - break; - case 40: - getDragon().animate(DRAGON_STANDING_CUT); - getSirVant().animate(SIR_VANT_BIG_SLASH); - getDragon().getImpactHandler().manualHit(getSirVant(), 30, ImpactHandler.HitsplatType.NORMAL); - break; - case 42: - getDragon().animate(DRAGON_STANDING_WOBBLING); - break; - - case 45: - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.SHAKE, 4, 4, 1200, 4, 4)); - camera(31, 9, -3, -3, 250, 45); - break; - case 46: - getGoblin().face(player); - break; - case 47: - getGoblin().animate(GOBLIN_HIT_ON_HEAD); - break; - case 50: - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.SHAKE, 3, 2, 2, 2, 2)); - getGoblin().getStateManager().set(EntityState.STUNNED, 4); - player.face(getGoblin()); - break; - case 53: - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.RESET, 5, 2, 450, 100, 0)); - break; - case 54: - camera(28, 5, 2, 6, 450, 100); - break; - case 55: - path = Pathfinder.find(getDragon(), getDragon().getLocation().transform(0, 9, 0), true, Pathfinder.DUMB, (a, b, c) -> 0); - path.walk(getDragon()); - break; - case 60: - System.out.println("Fight end"); - LTRDragonFightCutscene.this.stop(true); - CellarMapZone.get().create(player); - return true; - case 61: - break; - } - return !player.isActive(); - } - - @Override - public void stop() { - super.stop(); - clearNpcs(); - } - - /** - * Gets the counter. - * - * @return the counter. - */ - public int getCounter() { - return counter; - } - } - - /** - * Method used to handle the camera. - * - * @param x - * the x offset. - * @param y - * the y offset. - * @param xRot - * the xRotation. - * @param yRot - * the yRotation. - * @Param height the height. - */ - private void camera(int x, int y, int xRot, int yRot, int height, int speed) { - Location loc = base.transform(x, y, 0); - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.POSITION, loc.getX(), loc.getY(), height, 1, speed)); - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.ROTATION, loc.getX() + xRot, loc.getY() + yRot, height, 1, speed)); - } - - @Override - public void configure() { - region = DynamicRegion.create(10062); - setRegionBase(); - registerRegion(region.getId()); - } - - private void setNpcs() { - for (NPC n : NPCS) { - n = NPC.create(n.getId(), n.getLocation(), n.getDirection()); - n.setLocation(base.transform(n.getLocation().getLocalX(), n.getLocation().getLocalY(), 0)); - n.setRespawn(false); - n.init(); - n.setWalks(false); - } - } - - @Override - public void stop(boolean fade) { - super.stop(false); - player.teleport(Location.create(2524, 5004, 0)); - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.RESET, 0, 0, 0, 0, 0)); - } - - /** - * Method used to clear all the npcs. - */ - private void clearNpcs() { - GameWorld.getPulser().submit(new Pulse(5) { - @Override - public boolean pulse() { - for (NPC n : region.getPlanes()[0].getNpcs()) { - n.clear(); - } - return true; - } - - }); - } - /** - * Gets the npc. - * - * @param id - * the id. - * @return the npc. - */ - private NPC getNpc(int id) { - for (NPC n : region.getPlanes()[0].getNpcs()) { - if (n.getId() == id) { - return n; - } - } - return null; - } - - private void walk(NPC npc, final Location location) { - Pathfinder.find(npc, location, true, Pathfinder.DUMB).walk(npc); - } - - public NPC getDragon() { - return getNpc(7943); - } - public NPC getSirVant() { - return getNpc(7938); - } - public NPC getGoblin() { - return getNpc(7964); - } - - -} diff --git a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/SirVantDialogue.java b/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/SirVantDialogue.java deleted file mode 100644 index 04696382c..000000000 --- a/Server/src/main/java/core/game/content/quest/tutorials/learningtheropes/SirVantDialogue.java +++ /dev/null @@ -1,123 +0,0 @@ -package core.game.content.quest.tutorials.learningtheropes; - -import core.game.container.impl.EquipmentContainer; -import core.game.content.dialogue.DialoguePlugin; -import core.game.content.dialogue.FacialExpression; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import core.plugin.Initializable; - -/** - * @author Ethan Kyle Millard - * @since Mon, October 08, 2018 @ 4:19 PM - */ -@Initializable -public class SirVantDialogue extends DialoguePlugin { - - - /** - * Default Constructor - */ - public SirVantDialogue() { - /** - * Leave this empty - */ - } - - public SirVantDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new SirVantDialogue(player); - } - - @Override - public boolean open(Object... args) { - int tut_stage = 0;//TutorialSession.getExtension(player).getStage(); - System.out.println("tut_stage = " + tut_stage); - switch (tut_stage) { - case 0: - case 1: - case 2: - case 72: - npc(FacialExpression.JOLLY, "My Word! You scared me there, friend. I have no idea", "where you came from, but you have fantastic timing.", "You see, I have come across a dragon."); - setStage(1); - break; - case 3: - player.getEquipment().replace(new Item(9703), EquipmentContainer.SLOT_WEAPON); - player.getEquipment().replace(new Item(9704), EquipmentContainer.SLOT_SHIELD); - npc("I think we have found a job for you, whoever you are.", "Here, take this sword and shield."); - setStage(10); - break; - } - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 1: - player("A dragon?"); - next(); - break; - case 2: - npc("Oh yes. It's not usually a problem. After all, I am a", "White Knight! I just haven't really had time to prepare:", "food, runes, legions of other White Knights - those sorts", "of things."); - next(); - break; - case 3: - player ("You didn't prepare for facing a dragon?"); - next(); - break; - case 4: - npc ("It's not as of I woke with a dragon-slaying urge! I", "was on my way through Lumbridge when it started", "attacking. It's a rather larger, three-headed variant. Very", "rare."); - next(); - break; - case 5: - player ("So, what can I do?"); - next(); - break; - case 6: - npc ("You can keep back - it's returning!"); - next(); - break; - case 7: - end(); - break; - case 10: - npc("I think the value of this property has slumped a little."); - next(); - break; - case 11: - player(FacialExpression.ASKING, "A little? It's got a huge dragon on it!"); - next(); - break; - case 12: - npc(FacialExpression.JOLLY, "I'm sure the owners has no idea when they bought it.", "It would take and interesting individual to deliberately","build a cellar in a dragon's den."); - next(); - break; - case 13: - npc("I believe this dragon has been asleep for a while - at", "least as long as it has taken Lumbridge, the town above","us, to be established. Something must have roused the","dragon - a large noise, tail cramp, the smell of damsels."); - next(); - break; - case 14: - npc("Don't worry, the goblin is stunned, so it can't hurt you", "at the moment. You should know something about","basic combat before tackling it."); - next(); - break; - case 15: - npc("Now, I have to keep watch for the dragon."); - next(); - break; - case 16: - end(); - break; - } - return true; - } - - @Override - public int[] getIds() { - return new int[] {7938}; - } -} diff --git a/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java b/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/Server/src/main/java/core/game/interaction/city/HomePlugin.java b/Server/src/main/java/core/game/interaction/city/HomePlugin.java deleted file mode 100644 index 1b6acbc8f..000000000 --- a/Server/src/main/java/core/game/interaction/city/HomePlugin.java +++ /dev/null @@ -1,34 +0,0 @@ -package core.game.interaction.city; - -import core.cache.def.impl.NPCDefinition; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.player.Player; -import core.plugin.Initializable; -import core.plugin.Plugin; - -/** - * Package -> core.game.interaction.city - * Created on -> 9/10/2016 @10:42 PM for 530 - * - * @author Ethan Kyle Millard - */ -@Initializable -public class HomePlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - NPCDefinition.forId(552).getHandlers().put("talk-to", this); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - switch (node.getId()) { - case 552: - player.getDialogueInterpreter().open(552); - break; - } - return false; - } -} diff --git a/Server/src/main/java/core/game/interaction/item/withobject/DragonPlatebody.java b/Server/src/main/java/core/game/interaction/item/withobject/DragonPlatebody.java deleted file mode 100644 index 8ce560193..000000000 --- a/Server/src/main/java/core/game/interaction/item/withobject/DragonPlatebody.java +++ /dev/null @@ -1,5 +0,0 @@ -package core.game.interaction.item.withobject; - -public class DragonPlatebody { - -} diff --git a/Server/src/main/java/core/game/interaction/npc/SecurityGuardPlugin.java b/Server/src/main/java/core/game/interaction/npc/SecurityGuardPlugin.java deleted file mode 100644 index 203b8918b..000000000 --- a/Server/src/main/java/core/game/interaction/npc/SecurityGuardPlugin.java +++ /dev/null @@ -1,66 +0,0 @@ -package core.game.interaction.npc; - -import core.game.content.dialogue.DialoguePlugin; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.npc.NPC; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import core.plugin.Initializable; -import core.plugin.Plugin; -import rs09.plugin.ClassScanner; -import org.rs09.consts.Items; - -@Initializable -public final class SecurityGuardPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - ClassScanner.definePlugin(new SecurityGuardDialogue()); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - if (option.equals("talk-to")) { - player.getDialogueInterpreter().open(4375); - } - return true; - } - - public final class SecurityGuardDialogue extends DialoguePlugin { - - public SecurityGuardDialogue() {} - - public SecurityGuardDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new SecurityGuardDialogue(player); - } - - @Override - public boolean open(Object... args) { - npc = (NPC) args[0]; - if (player.getInventory().hasSpaceFor(new Item(Items.SECURITY_BOOK_9003))) { - npc("Here's a Security book for you.", "Have a nice day."); - player.getInventory().add(new Item(Items.SECURITY_BOOK_9003)); - } else { - npc("Have a nice day."); - } - return false; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - return false; - } - - @Override - public int[] getIds() { - return new int[] { 4375 }; - } - } -} \ No newline at end of file diff --git a/Server/src/main/java/core/game/interaction/object/GertrudeCatPlugin.java b/Server/src/main/java/core/game/interaction/object/GertrudeCatPlugin.java deleted file mode 100644 index ba9408273..000000000 --- a/Server/src/main/java/core/game/interaction/object/GertrudeCatPlugin.java +++ /dev/null @@ -1,66 +0,0 @@ -/* -package core.game.interaction.object; - -import core.cache.def.impl.ObjectDefinition; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.quest.Quest; -import core.game.node.item.Item; -import core.plugin.Plugin; -import core.plugin.InitializablePlugin; -import core.tools.RandomFunction; - -*/ -/** - * Represents the plugin to handle interactions with gertrudes cat. - * @author 'Vexia - * @version 1.0 - *//* - -@InitializablePlugin -public final class GertrudeCatPlugin extends OptionHandler { - - */ -/** - * Represents the kitten item. - *//* - - private static final Item KITTEN = new Item(13236); - - @Override - public Plugin newInstance(Object arg) throws Throwable { - ObjectDefinition.forId(2620).getConfigurations().put("option:search", this); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - final Quest quest = player.getQuestRepository().getQuest("Gertrude's Cat"); - switch (option) { - case "search": - if (quest.getStage(player) == 50 && !player.getInventory().containsItem(KITTEN) && !player.getBank().containsItem(KITTEN)) { - quest.setStage(player, 40); - } - if (quest.getStage(player) == 40) { - if (player.getAttribute("findkitten", false) && player.getInventory().freeSlots() > 0) { - quest.setStage(player, 50); - player.getDialogueInterpreter().sendDialogue("You find some kittens! You carefully place them into your backpack."); - player.getInventory().add(KITTEN); - return true; - } - } else { - player.getPacketDispatch().sendMessage("You search the crate."); - player.getPacketDispatch().sendMessage("You find nothing."); - if (RandomFunction.random(0, 3) == 1) { - player.getPacketDispatch().sendMessage("You can hear kittens mewing close by..."); - player.setAttribute("findkitten", true); - } - } - break; - } - return true; - } - -} -*/ diff --git a/Server/src/main/java/core/game/node/entity/npc/drop/SharedTables.java b/Server/src/main/java/core/game/node/entity/npc/drop/SharedTables.java deleted file mode 100644 index c842c7128..000000000 --- a/Server/src/main/java/core/game/node/entity/npc/drop/SharedTables.java +++ /dev/null @@ -1,121 +0,0 @@ -package core.game.node.entity.npc.drop; - -import org.rs09.consts.Items; -import core.game.node.item.WeightedChanceItem; - -public enum SharedTables { - COMMON_SEEDS(new WeightedChanceItem[] { - new WeightedChanceItem(Items.LIMPWURT_SEED_5100,1,137), - new WeightedChanceItem(Items.STRAWBERRY_SEED_5323,1,131), - new WeightedChanceItem(Items.MARRENTILL_SEED_5292,1,125), - new WeightedChanceItem(Items.JANGERBERRY_SEED_5104,1,92), - new WeightedChanceItem(Items.TARROMIN_SEED_5293,1,85), - new WeightedChanceItem(Items.WILDBLOOD_SEED_5311,1,83), - new WeightedChanceItem(Items.WATERMELON_SEED_5321,1,63), - new WeightedChanceItem(Items.HARRALANDER_SEED_5294,1,56), - new WeightedChanceItem(Items.RANARR_SEED_5295,1,39), - new WeightedChanceItem(Items.WHITEBERRY_SEED_5105,1,34), - new WeightedChanceItem(Items.MUSHROOM_SPORE_5282,1,29), - new WeightedChanceItem(Items.TOADFLAX_SEED_5296,1,27), - new WeightedChanceItem(Items.BELLADONNA_SEED_5281,1,18), - new WeightedChanceItem(Items.IRIT_SEED_5297,1,18), - new WeightedChanceItem(Items.POISON_IVY_SEED_5106,1,13), - new WeightedChanceItem(Items.AVANTOE_SEED_5298,1,12), - new WeightedChanceItem(Items.CACTUS_SEED_5280,1,12), - new WeightedChanceItem(Items.KWUARM_SEED_5299,1,9), - new WeightedChanceItem(Items.SNAPDRAGON_SEED_5300,1,5), - new WeightedChanceItem(Items.CADANTINE_SEED_5301,1,4), - new WeightedChanceItem(Items.LANTADYME_SEED_5302,1,3), - new WeightedChanceItem(Items.DWARF_WEED_SEED_5303,1,2), - new WeightedChanceItem(Items.TORSTOL_SEED_5304,1,1) - }), - - FIXED_ALLOTMENT_SEEDS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.POTATO_SEED_5318, 4, 48), - new WeightedChanceItem(Items.ONION_SEED_5319,4,36), - new WeightedChanceItem(Items.CABBAGE_SEED_5324,4,24), - new WeightedChanceItem(Items.TOMATO_SEED_5322,3,12), - new WeightedChanceItem(Items.SWEETCORN_SEED_5320,3,6), - new WeightedChanceItem(Items.STRAWBERRY_SEED_5323,2,3), - new WeightedChanceItem(Items.WATERMELON_SEED_5321,2,2), - }), - - RARE_SEEDS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.TOADFLAX_SEED_5296,1,24), - new WeightedChanceItem(Items.IRIT_SEED_5297,1,16), - new WeightedChanceItem(Items.BELLADONNA_SEED_5281,1,16), - new WeightedChanceItem(Items.AVANTOE_SEED_5298,1,11), - new WeightedChanceItem(Items.POISON_IVY_SEED_5106,1,11), - new WeightedChanceItem(Items.CACTUS_SEED_5280,1,11), - new WeightedChanceItem(Items.KWUARM_SEED_5299,1,8), - new WeightedChanceItem(Items.SNAPDRAGON_SEED_5300,1,5), - new WeightedChanceItem(Items.CADANTINE_SEED_5301,1,4), - new WeightedChanceItem(Items.LANTADYME_SEED_5302,1,3), - new WeightedChanceItem(Items.DWARF_WEED_SEED_5303,1,2), - new WeightedChanceItem(Items.TORSTOL_SEED_5304,1,1) - }), - - TREE_HERB_SEEDS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.RANARR_SEED_5295,1,8), - new WeightedChanceItem(Items.SNAPDRAGON_SEED_5300,1,7), - new WeightedChanceItem(Items.TORSTOL_SEED_5304,1,6), - new WeightedChanceItem(Items.WATERMELON_SEED_5321,15,5), - new WeightedChanceItem(Items.WILLOW_SEED_5313,1,5), - new WeightedChanceItem(Items.MAPLE_SEED_5314,1,5), - new WeightedChanceItem(Items.YEW_SEED_5315,1,5), - new WeightedChanceItem(Items.PAPAYA_TREE_SEED_5288,1,4), - new WeightedChanceItem(Items.MAGIC_SEED_5316, 1, 3), - new WeightedChanceItem(Items.PALM_TREE_SEED_5289,1, 3), - new WeightedChanceItem(Items.SPIRIT_SEED_5317,1,2) - }), - - VARIABLE_ALLOTMENT_SEEDS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.POTATO_SEED_5318,1,4,64), - new WeightedChanceItem(Items.ONION_SEED_5319,1,3,32), - new WeightedChanceItem(Items.CABBAGE_SEED_5324,1,3,16), - new WeightedChanceItem(Items.TOMATO_SEED_5322,1,2,8), - new WeightedChanceItem(Items.SWEETCORN_SEED_5320,1,2,4), - new WeightedChanceItem(Items.STRAWBERRY_SEED_5323,1,2), - new WeightedChanceItem(Items.WATERMELON_SEED_5321,1,1) - }), - - HOPS_DROP_TABLE(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.BARLEY_SEED_5305,4,35), - new WeightedChanceItem(Items.HAMMERSTONE_SEED_5307,4,28), - new WeightedChanceItem(Items.JUTE_SEED_5306,2,19), - new WeightedChanceItem(Items.ASGARNIAN_SEED_5308,3,17), - new WeightedChanceItem(Items.YANILLIAN_SEED_5309,2,12), - new WeightedChanceItem(Items.KRANDORIAN_SEED_5310,2,4), - new WeightedChanceItem(Items.WILDBLOOD_SEED_5311,1, 1) - }), - - HERBS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.GRIMY_GUAM_199, 1, 11), - new WeightedChanceItem(Items.GRIMY_MARRENTILL_201,1,8), - new WeightedChanceItem(Items.GRIMY_TARROMIN_203,1,6), - new WeightedChanceItem(Items.GRIMY_HARRALANDER_205,1,5), - new WeightedChanceItem(Items.GRIMY_RANARR_208,1,4), - new WeightedChanceItem(Items.GRIMY_IRIT_209,1,3), - new WeightedChanceItem(Items.GRIMY_AVANTOE_212,1,2), - new WeightedChanceItem(Items.GRIMY_KWUARM_213,1,2), - new WeightedChanceItem(Items.GRIMY_CADANTINE_215,1,2), - new WeightedChanceItem(Items.GRIMY_LANTADYME_2485,1,1), - new WeightedChanceItem(Items.GRIMY_DWARF_WEED_217,1,1) - }), - - USEFUL_HERBS(new WeightedChanceItem[]{ - new WeightedChanceItem(Items.GRIMY_AVANTOE_212,1,2), - new WeightedChanceItem(Items.GRIMY_SNAPDRAGON_3052,1,1), - new WeightedChanceItem(Items.GRIMY_RANARR_208,1,1), - new WeightedChanceItem(Items.GRIMY_TORSTOL_220,1,1) - }); - - - - WeightedChanceItem[] table; - SharedTables(WeightedChanceItem[] table){ - this.table = table; - } - - -} diff --git a/Server/src/main/java/core/game/node/entity/npc/other/CitizenNPC.java b/Server/src/main/java/core/game/node/entity/npc/other/CitizenNPC.java deleted file mode 100644 index 430ec7f59..000000000 --- a/Server/src/main/java/core/game/node/entity/npc/other/CitizenNPC.java +++ /dev/null @@ -1,55 +0,0 @@ -package core.game.node.entity.npc.other; - -import core.plugin.Initializable; -import core.game.node.entity.skill.Skills; -import core.game.node.entity.npc.AbstractNPC; -import core.game.world.map.Location; - -/** - * Represents a generic citizen npc. - * @author 'Vexia - * @version 1.9 - */ -@Initializable -public final class CitizenNPC extends AbstractNPC { - - /** - * Represents the NPC ids of NPCs using this plugin. - */ - private static final int[] ID = { 1, 2, 3, 4, 5, 6, 16, 24, 25, 170, 351, 352, 353, 354, 359, 360, 361, 362, 363, 663, 726, 727, 728, 729, 730, 1086, 2675, 2776, 3224, 3225, 3227, 5923, 5924 }; - - /** - * Constructs a new {@code CitizenNPC} {@code Object}. - */ - public CitizenNPC() { - super(0, null, true); - } - - /** - * Constructs a new {@code CitizenNPC} {@code Object}. - * @param id the id. - * @param location the location. - */ - private CitizenNPC(int id, Location location) { - super(id, location, true); - } - - @Override - public void init() { - super.init(); - getSkills().setLevel(Skills.HITPOINTS, 7); - getSkills().setStaticLevel(Skills.HITPOINTS, 7); - getSkills().setLifepoints(7); - } - - @Override - public AbstractNPC construct(int id, Location location, Object... objects) { - return new CitizenNPC(id, location); - } - - @Override - public int[] getIds() { - return ID; - } - -} diff --git a/Server/src/main/java/core/game/node/entity/npc/revenant/CorruptEquipment.java b/Server/src/main/java/core/game/node/entity/npc/revenant/CorruptEquipment.java deleted file mode 100644 index eafd74a0b..000000000 --- a/Server/src/main/java/core/game/node/entity/npc/revenant/CorruptEquipment.java +++ /dev/null @@ -1,43 +0,0 @@ -package core.game.node.entity.npc.revenant; - -import core.game.container.impl.EquipmentContainer; -import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.DegradableEquipment; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import rs09.plugin.ClassScanner; - -/** - * Handles the degrading of corrupt equipment. - * @author Vexia - * - */ -public class CorruptEquipment extends DegradableEquipment { - - /** - * Constructs a new @{Code CorruptEquipment} object. - * @param slot The slot. - * @param itemIds The item ids. - */ - public CorruptEquipment(int slot, int[] itemIds) { - super(slot, itemIds); - } - - /** - * Initializes the corrupt equipment degarding. - */ - public static void init() { - ClassScanner.definePlugin(new CorruptEquipment(EquipmentContainer.SLOT_CHEST, new int[] {13958, 13960})); - } - - @Override - public void degrade(Player player, Entity entity, Item item) { - - } - - @Override - public int getDropItem(int itemId) { - return 0; - } - -} diff --git a/Server/src/main/java/core/game/node/entity/npc/revenant/PVPEquipment.java b/Server/src/main/java/core/game/node/entity/npc/revenant/PVPEquipment.java deleted file mode 100644 index 908f82bc0..000000000 --- a/Server/src/main/java/core/game/node/entity/npc/revenant/PVPEquipment.java +++ /dev/null @@ -1,42 +0,0 @@ -package core.game.node.entity.npc.revenant; - -import core.game.node.entity.Entity; -import core.game.node.entity.combat.equipment.DegradableEquipment; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import rs09.plugin.ClassScanner; - -/** - * Handles the degrading of PVP armour. - * @author Vexia - * - */ -public class PVPEquipment extends DegradableEquipment { - - /** - * Constructs a new @{Code PVPEquipment} object. - * @param slot The slot. - * @param itemIds The item ids. - */ - public PVPEquipment(int slot, int[] itemIds) { - super(slot, itemIds); - } - - /** - * Initializes the PVP equipment degrading. - */ - public static void init() { - ClassScanner.definePlugin(new PVPEquipment(1, null)); - } - - @Override - public void degrade(Player player, Entity entity, Item item) { - - } - - @Override - public int getDropItem(int itemId) { - return 0; - } - -} diff --git a/Server/src/main/kotlin/api/events/Event.kt b/Server/src/main/kotlin/api/events/Event.kt deleted file mode 100644 index 5760e860d..000000000 --- a/Server/src/main/kotlin/api/events/Event.kt +++ /dev/null @@ -1,3 +0,0 @@ -package api.events - -interface Event {} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerCompatible.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerCompatible.kt deleted file mode 100644 index 5415ad2d1..000000000 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/PlayerCompatible.kt +++ /dev/null @@ -1,3 +0,0 @@ -package rs09.game.ai.general.scriptrepository - -annotation class PlayerCompatible diff --git a/Server/src/main/kotlin/rs09/game/camerautils/CameraUtils.kt b/Server/src/main/kotlin/rs09/game/camerautils/CameraUtils.kt deleted file mode 100644 index e238c240f..000000000 --- a/Server/src/main/kotlin/rs09/game/camerautils/CameraUtils.kt +++ /dev/null @@ -1,5 +0,0 @@ -package rs09.game.camerautils - -object CameraUtils { - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/GuardianMummyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/GuardianMummyDialogue.kt deleted file mode 100644 index 7ca72feb7..000000000 --- a/Server/src/main/kotlin/rs09/game/content/activity/pyramidplunder/GuardianMummyDialogue.kt +++ /dev/null @@ -1,74 +0,0 @@ -package rs09.game.content.activity.pyramidplunder - -import api.setAttribute -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class GuardianMummyDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.OLD_NOT_INTERESTED, "*sigh* Not another one.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.HALF_ASKING, "Another what?").also { stage++ } - 1 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "Another 'archaeologist'. I'm not going to let you plunder my master's tomb you know.").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL, "That's a shame. Have you got anything else I could do while I'm here?").also { stage++ } - 3 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "If it will keep you out of mischief I suppose I could set something up for you... I have a few rooms full of some things you humans might consider valuable, do you want to give it a go?").also { stage++ } - 4 -> player.dialogueInterpreter.sendOptions("Play Pyramid Plunder?", "That sounds like fun; what do I do?", "Not right now.", "I know what I'm doing, so let's get on with it.").also { stage++ } - 5 -> when(buttonId) - { - 1 -> playerl(FacialExpression.FRIENDLY, "That sounds like fun; what do I do?").also { stage = 10 } - 2 -> playerl(FacialExpression.NEUTRAL, "Not right now.").also { stage = END_DIALOGUE } - 3 -> playerl(FacialExpression.ANNOYED, "I know what I'm doing, so let's get on with it.").also { stage = 100 } - } - - 10 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "You have five minutes to explore the treasure rooms and collect as many artefacts as you can. The artefacts are in the urns, chests and sarcophagi found in each room.").also { stage++ } - 11 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "There are eight treasure rooms, each subsequent room requires higher thieving skills to both enter the room and thieve from the urns and other containers.").also { stage++ } - 12 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "The rewards also become more lucrative the further into the tomb you go. You will also have to deactivate a trap in order to enter the main part of each room.").also { stage++ } - 13 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "When you want to move onto the next room you need to find the correct door first.").also { stage++ } - 14 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "There are four possible exits... you must open the door before finding out whether it is the exit or not. Opening the doors require picking their locks. Having a lockpick will make this easier.").also { stage++ } - 15 -> player.dialogueInterpreter.sendOptions("Do you have any more questions?", "How do I leave the game?", "How do I get the artefacts?", "What do I do with the artefacts I collect?", "I'm ready to give it a go now.").also { stage++ } - 16 -> when(buttonId) - { - 1 -> playerl(FacialExpression.FRIENDLY, "How do I leave the game?").also { stage = 20 } - 2 -> playerl(FacialExpression.FRIENDLY, "How do I get the artefacts?").also { stage = 30 } - 3 -> playerl(FacialExpression.FRIENDLY, "What do I do with the artefacts?").also { stage = 40 } - 4 -> playerl(FacialExpression.FRIENDLY, "I'm ready to give it a go now.").also { stage = 100 } - } - - 20 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "If at any point you decide you need to leave just use a glowing door. The game will end and you will be taken out of the pyramid").also { stage = 15 } - - 30 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "The artefacts are in the urns, chests and sarcophagi. Urns contain snakes that guard them. The sarcophagi take some strength to open. They take a while to open.").also { stage++ } - 31 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "Of course, Mummies have been known to take a nap in the sarcophagi, so beware. The golden chests generally contain better artefacts, but are also trapped with scarabs!").also { stage = 15 } - - 40 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "There are a number of different artefacts, of three main types. The least valuable are the pottery statuettes and scarabs, and the ivory combs.").also { stage++ } - 41 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "Next are the stone scarabs, statuettes and seals, and finally the gold versions of those artefacts. They are not old, but are well made.").also { stage++ } - 42 -> playerl(FacialExpression.HALF_ASKING, "What do I do with artefacts once I've collected them?").also { stage++ } - 43 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "That Simon Simpleton, I mean Templeton, will probably give you some money for them. He couldn't spot a real artefact if it came up to him and bit him in the face.").also { stage++ } - 44 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "He usually slinks about near the pyramid north-east of Sophanem. I expect he's trying to get some poor fools to steal things from that pyramid as well.").also { stage = 15 } - - 100 -> npcl(FacialExpression.OLD_NOT_INTERESTED, "Alright, fine.").also { stage++ } - 101 -> { - end() - PyramidPlunderMinigame.join(player) - setAttribute(player, "/save:pp:mummy-spoken-to", true) - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GUARDIAN_MUMMY_4476) - } - - override fun newInstance(player: Player?): DialoguePlugin { - return GuardianMummyDialogue(player) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt b/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt deleted file mode 100644 index 0b391510c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt +++ /dev/null @@ -1,22 +0,0 @@ -package rs09.game.content.ame.events.genie - -import api.* -import core.game.content.dialogue.FacialExpression -import core.cache.def.impl.ItemDefinition -import core.game.component.Component -import core.game.node.entity.combat.ImpactHandler -import core.game.node.item.GroundItemManager -import core.game.node.item.Item -import rs09.game.content.ame.RandomEventManager -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -class GenieDialogue : DialogueFile() { - override fun handle(componentID: Int, buttonID: Int) { - val assigned = player!!.getAttribute("genie:item",0) - npcl(FacialExpression.NEUTRAL, "Ah, so you are there, ${player!!.name.capitalize()}. I'm so glad you summoned me. Please take this lamp and make your wish.") - addItemOrDrop(player!!, assigned) - RandomEventManager.getInstance(player!!)!!.event?.terminate() - stage = END_DIALOGUE - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueBuilder.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueBuilder.kt deleted file mode 100644 index db531f8a5..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueBuilder.kt +++ /dev/null @@ -1,149 +0,0 @@ -package rs09.game.content.dialogue -import core.game.node.entity.player.Player -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -abstract class DialogueBuilderFile : DialogueFile() { - var data: ArrayList = ArrayList() - //var stages: ArrayList = ArrayList() - abstract fun create(b: DialogueBuilder) - init { - create(DialogueBuilder(this)) - } - override fun handle(componentID: Int, buttonID: Int) { - for((i, clause) in data.iterator().withIndex()) { - if(clause.predicate(player!!)) { - stage = clause.handle(this, componentID, buttonID, stage) - if(stage == END_DIALOGUE) { - end() - } - return - } - } - } -} - -interface DialogueNode { - fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int -} - -class NpcLNode(val value: String): DialogueNode { - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - df.npcl(value) - return stage + 1 - } -} -class NpcNode(val values: Array): DialogueNode { - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - df.npc(*values) - return stage + 1 - } -} -class PlayerLNode(val value: String): DialogueNode { - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - df.playerl(value) - return stage + 1 - } -} -class ClosureNode(val f: (Player) -> Int): DialogueNode { - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - return f(df.player!!) - } -} - -class OptionEntry(val text: String, val nextStage: Int, val predicate: (Player) -> Boolean = { _ -> true }) {} - -class OptionsNode(var options: ArrayList): DialogueNode { - fun optionNames(player: Player): Array { - return options.asSequence().filter({ it.predicate(player) }).map({ it.text }).toList().toTypedArray() - } - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - val tmp: Array = optionNames(df.player!!) - if(tmp.size > 1) { - df.options(*tmp) - return stage + 1 - } else if(tmp.size == 1) { - val tmp: List = options.asSequence().filter({ it.predicate(df.player!!) }).toList() - df.stage = tmp[0].nextStage - df.handle(componentID, 0) - return df.stage - } else { - return END_DIALOGUE - } - } -} -class OptionsDispatchNode(var options: ArrayList): DialogueNode { - override fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - val tmp: List = options.asSequence().filter({ it.predicate(df.player!!) }).toList() - df.stage = tmp[buttonID-1].nextStage - df.handle(componentID, 0) - return df.stage - } -} - -class DialogueClause(val predicate: (player: Player) -> Boolean, val nodes: ArrayList) { - fun handle(df: DialogueFile, componentID: Int, buttonID: Int, stage: Int): Int { - if(stage < nodes.size) { - return nodes[stage].handle(df, componentID, buttonID, stage) - } else { - return END_DIALOGUE - } - } -} - -class DialogueOptionsBuilder(var target: DialogueBuilderFile, val clauseIndex: Int, var options: ArrayList) { - fun option(value: String): DialogueBuilder { - options.add(OptionEntry(value, target.data[clauseIndex].nodes.size)) - return DialogueBuilder(target, clauseIndex) - } - - fun optionIf(value: String, predicate: (Player) -> Boolean): DialogueBuilder { - options.add(OptionEntry(value, target.data[clauseIndex].nodes.size, predicate)) - return DialogueBuilder(target, clauseIndex) - } -} - -class DialogueBuilder(var target: DialogueBuilderFile, var clauseIndex: Int = -1) { - fun onPredicate(predicate: (player: Player) -> Boolean): DialogueBuilder { - target.data.add(DialogueClause(predicate, ArrayList())) - clauseIndex = target.data.size - 1 - return this - } - fun onQuestStages(name: String, vararg stages: Int): DialogueBuilder { - return onPredicate() { player -> - val questStage = player.questRepository.getStage(name) - return@onPredicate stages.contains(questStage) - } - } - fun playerl(value: String): DialogueBuilder { - target.data[clauseIndex].nodes.add(PlayerLNode(value)) - return this - } - fun npcl(value: String): DialogueBuilder { - target.data[clauseIndex].nodes.add(NpcLNode(value)) - return this - } - fun npc(vararg values: String): DialogueBuilder { - target.data[clauseIndex].nodes.add(NpcNode(values as Array)) - return this - } - fun endWith(f: (Player) -> Unit) { - target.data[clauseIndex].nodes.add(ClosureNode({ player -> - f(player) - return@ClosureNode END_DIALOGUE - })) - } - fun end() { - target.data[clauseIndex].nodes.add(ClosureNode({ _ -> - return@ClosureNode END_DIALOGUE - })) - } - fun options(): DialogueOptionsBuilder { - var options: ArrayList = ArrayList() - val node = OptionsNode(options) - val dispatchNode = OptionsDispatchNode(options) - target.data[clauseIndex].nodes.add(node) - target.data[clauseIndex].nodes.add(dispatchNode) - return DialogueOptionsBuilder(target, clauseIndex, options) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueTopic.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueTopic.kt deleted file mode 100644 index 91683a2f5..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/DialogueTopic.kt +++ /dev/null @@ -1,14 +0,0 @@ -package rs09.game.content.dialogue - -import core.game.content.dialogue.FacialExpression - -/** - * Topic/IfTopic system backported from my personal project - * @author Ceikry - */ -open class Topic(val expr: FacialExpression, val text: String, val toStage: T, val skipPlayer: Boolean = false) { - constructor(text: String, toStage: T, skipPlayer: Boolean = false) : this(FacialExpression.ASKING, text, toStage, skipPlayer) -} -class IfTopic(expr: FacialExpression, text: String, toStage: T, val showCondition: Boolean, skipPlayer: Boolean = false) : Topic(expr, text, toStage, skipPlayer) { - constructor(text: String, toStage: T, showCondition: Boolean, skipPlayer: Boolean = false) : this(FacialExpression.ASKING, text, toStage, showCondition, skipPlayer) -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AablaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AablaDialogue.kt deleted file mode 100644 index a19abf1e4..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AablaDialogue.kt +++ /dev/null @@ -1,49 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class AablaDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return AablaDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 0 -> showTopics( - Topic("Can you heal me?", AlKharidHealDialogue(true)), - Topic("Do you see a lot of injured fighters?", 101), - Topic("Do you come here often?", 201) - ) - - 101 -> npcl(FacialExpression.FRIENDLY, "I work here, so yes!").also { stage = END_DIALOGUE } - - 201 -> npcl(FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } - 202 -> npcl(FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } - 203 -> player(FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.AABLA_959) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheFarmerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheFarmerDialogue.kt deleted file mode 100644 index bfa8b8296..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheFarmerDialogue.kt +++ /dev/null @@ -1,73 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AliTheFarmerDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there!") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"Oh, er, hello. What do you want?").also { stage++ } - 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", - "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } - 2 -> when(buttonId){ - 1 -> player(FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } - 3 -> player(FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } - 4 -> player(FacialExpression.ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } - - } - - 10 -> npc(FacialExpression.FRIENDLY,"There's not much farming land around here.", "Only that little patch outside.").also { stage++ } - 11 -> player(FacialExpression.ASKING,"Can you give me any advice on farming here in","the desert?").also { stage++ } - 12 -> npc(FacialExpression.FRIENDLY,"Like I said, I only know about cactuses...").also { stage++ } - 13 -> player(FacialExpression.FRIENDLY,"Just tell me about cactuses, then.").also { stage++ } - 14 -> npc(FacialExpression.FRIENDLY,"First you have to weed the patch using a rake.").also { stage++ } - 15 -> player(FacialExpression.ASKING,"Can you give me any other advice?").also { stage++ } - 16 -> npc(FacialExpression.FRIENDLY,"Not really. I've not done much farming recently.").also { stage++ } - 17 -> player(FacialExpression.ASKING,"Well, can you at least sell me any gardening", "tools or seeds?").also { stage++ } - 18 -> npc(FacialExpression.GUILTY,"Sorry. They haven't been delivered yet.").also { stage = 1 } - - 20 -> npc( - FacialExpression.FRIENDLY,"I'm going to set up a shop selling farming implements.", - "That patch out there may be small, ", "but it's all we've got.").also { stage = 11 } - - 30 -> npc( - FacialExpression.FRIENDLY,"Yes, he bought these tents and had them put up for us.", - "He says he'll also get our goods in,", "so we can start selling them soon.").also { stage++ } - 31 -> npc(FacialExpression.FRIENDLY,"I only know how to farm cactuses, so this spot", "is perfect.").also { stage++ } - 32 -> player(FacialExpression.THINKING,"Maybe I should talk to him...").also { stage++ } - 33 -> npc(FacialExpression.FRIENDLY,"Of course.", "He's always happy to talk to possible business", "partners.").also { stage = 1 } - - 40 -> npc(FacialExpression.FRIENDLY,"Now why would you think that?").also { stage++ } - 41 -> player(FacialExpression.FRIENDLY,"One of the shopkeepers told they were threatened", "by a man with a rake...").also { stage++ } - 42 -> npc(FacialExpression.FRIENDLY,"Those people just don't want us to succeed.", "Don't listen to them!").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheFarmerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(2821) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheGuard.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheGuard.kt deleted file mode 100644 index f14063e1b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheGuard.kt +++ /dev/null @@ -1,70 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AliTheGuard(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there!") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.ANNOYED,"I'm working. What do you have to say that's so urgent?").also { stage++ } - 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", - "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } - 2 -> when(buttonId){ - 1 -> player(FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } - 3 -> player(FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } - 4 -> player(FacialExpression.ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } - } - - 10 -> npc(FacialExpression.FRIENDLY,"There's a lot of space here. More open space than back home.").also { stage++ } - 11 -> player(FacialExpression.ASKING,"So where is back home?").also { stage++ } - 12 -> npc(FacialExpression.FRIENDLY,"Pollnivneach. It's a town to the south of the", "Shantay Pass.").also { stage = 1 } - - 20 -> npc( - FacialExpression.ANNOYED,"I'm on guard duty.", "Making sure nobody tries to steal anything from", - "the house and tents in the middle of town.").also { stage++ } - 21 -> player(FacialExpression.ASKING,"Why are you only guarding those buildings?").also { stage++ } - 22 -> npc(FacialExpression.SUSPICIOUS,"That's all I've been hired to guard.").also { stage = 1 } - - 30 -> npc(FacialExpression.FRIENDLY,"Yeah, he hired me.", "He owns this house and these two tents, too.").also { stage++ } - 31 -> player(FacialExpression.HALF_ASKING,"Is the work good?").also { stage++ } - 32 -> npc(FacialExpression.FRIENDLY,"It pays better than back home.").also { stage++ } - 33 -> player(FacialExpression.ASKING,"Why, what did you do back home?").also { stage++ } - 34 -> npc(FacialExpression.SUSPICIOUS,"Never you mind.").also { stage++ } - 35 -> npc(FacialExpression.FRIENDLY,"But Ali Morrisane pays us well, at least.").also { stage++ } - 36 -> player(FacialExpression.ASKING,"Maybe I should talk to him...").also { stage++ } - 37 -> npc(FacialExpression.FRIENDLY,"Why not?", "He always likes to meet potential business partners.").also { stage = 1 } - - 40 -> npc(FacialExpression.ANNOYED,"So? They talk too much.").also { stage++ } - 41 -> player(FacialExpression.HALF_ASKING,"You're not going to deny it?").also { stage++ } - 42 -> npc(FacialExpression.LOUDLY_LAUGHING,"Why bother?", "None of them can fight back, after all.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheGuard(player) - } - - override fun getIds(): IntArray { - return intArrayOf(2823) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperDialogue.kt deleted file mode 100644 index 37659cc0f..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheLeafletDropperDialogue.kt +++ /dev/null @@ -1,83 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import api.addItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - * Converts AliTheLeafletDropper.java with a Kotlin implementation - */ - -@Initializable -class AliTheLeafletDropperDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheLeafletDropperDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.CHILD_NORMAL, "I don't have the time to talk right now! Ali Morrisane is paying me to hand out these flyers.") - stage = 100 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 100 -> options( - "Who is Ali Morissane?", - "What are the flyers for?", - "What is there to do round here, boy?" - ).also { stage++ } - 101 -> when(buttonId) { - 1 -> { - player(FacialExpression.ASKING, "Who is Ali Morissane?").also{ stage = 201 } - } - 2 -> { - player(FacialExpression.ASKING, "What are the flyers for?").also { stage = 301 } - } - 3 -> { - player(FacialExpression.ASKING, "What is there to do round here, boy?").also { stage = 401 } - } - } - - 201 -> npcl(FacialExpression.CHILD_FRIENDLY, "Ali Morrisane is the greatest merchant in the east!").also { stage++ } - 202 -> player(FacialExpression.HALF_ASKING, "Were you paid to say that?").also { stage++ } - 203 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING, "Of course I was! You can find him on the north edge of town.").also { stage = END_DIALOGUE } - - 301 -> npcl(FacialExpression.CHILD_THINKING, "Well, Ali Morrisane isn't too popular with the other traders in Al Kharid, mainly because he's from Pollnivneach and they feel he has no business trading in their town.").also { stage++ } - 302 -> npcl(FacialExpression.CHILD_FRIENDLY, "I think they're just sour because he's better at making money than them.").also { stage++ } - 303 -> npcl(FacialExpression.CHILD_FRIENDLY, "The flyer advertises the different shops you can find in Al Kharid.").also { stage++ } - 304 -> npcl(FacialExpression.CHILD_THINKING, "It also entitles you to money off your next purchase in any of the shops listed on it. It's Ali's way of getting on the good side of the traders.").also { stage++ } - 305 -> player(FacialExpression.ASKING, "Which shops?").also { - if(player.inventory.containItems(Items.AL_KHARID_FLYER_7922)) { - npcl(FacialExpression.CHILD_SUSPICIOUS, "Are you trying to be funny or has age turned your brain to mush? Look at the flyer you already have!").also { stage = END_DIALOGUE } - } else { - if(addItem(player, Items.AL_KHARID_FLYER_7922)) { - npcl(FacialExpression.CHILD_FRIENDLY, "Here! Take one and let me get back to work.").also { stage = END_DIALOGUE } - } else { - end() - } - } - } - - 401 -> npcl(FacialExpression.CHILD_NORMAL, "I'm very busy, so listen carefully! I shall say this only once.").also { stage++ } - 402 -> npcl(FacialExpression.CHILD_THINKING, "Apart from a busy and wonderous market place in Al Kharid to the south, there is the Duel Arena to the south-east where you can challenge other players to a fight.").also { stage++ } - 403 -> npcl(FacialExpression.CHILD_NORMAL, "If you're here to make money, there is a mine to the south.").also { stage++ } - 404 -> npcl(FacialExpression.CHILD_SUSPICIOUS, "Watch out for scorpions though, they'll take a pop at you if you go too near them. To avoid them just follow the western fence as you travel south.").also { stage++ } - 405 -> npcl(FacialExpression.CHILD_FRIENDLY, "If you're in the mood for a little rest and relaxation, there are a couple of nice fishing spots south of the town.").also { stage++ } - 406 -> player(FacialExpression.FRIENDLY, "Thanks for the help!").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.ALI_THE_LEAFLET_DROPPER_3680) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheSmithDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheSmithDialogue.kt deleted file mode 100644 index 1ea3831df..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/AliTheSmithDialogue.kt +++ /dev/null @@ -1,68 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AliTheSmithDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there!") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"You seem rather cheerful. Is there anything you're after?").also { stage++ } - 1 -> options ("What can you tell me about Al Kharid?", "So, what do you do here?", - "I hear you work for Ali Morrisane...", "I hear you've been threatening the other shopkeepers.").also { stage++ } - 2 -> when(buttonId){ - 1 -> player(FacialExpression.ASKING, "What can you tell me about Al Kharid?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "So, what do you do here?").also { stage = 20 } - 3 -> player(FacialExpression.ASKING, "I hear you work for Ali Morrisane...").also { stage = 30 } - 4 -> player(FacialExpression.HALF_ASKING, "I hear you've been threatening the other shopkeepers.").also { stage = 40 } - } - - 10 ->npc(FacialExpression.FRIENDLY,"Well, it's hot and full of sand.").also { stage++ } - 11 ->player(FacialExpression.ASKING,"Anything else?").also { stage++ } - 12 ->npc(FacialExpression.FRIENDLY,"Don't ask me, I'm not from around here.").also { stage++ } - 13 ->player(FacialExpression.HALF_ASKING,"So where are you from?").also { stage++ } - 14 ->npc(FacialExpression.HALF_GUILTY,"A town to the south of the Shantay Pass,","called Pollnivneach.").also { stage = 1 } - - 20 ->npc(FacialExpression.SAD,"Not very much, at the moment.", "I came from further south to set up a smithy here...").also { stage++ } - 21 ->npc(FacialExpression.SAD,"...but we still haven't set up the shops,", "so we have no customers yet.").also { stage = 1 } - - 30 -> npc(FacialExpression.FRIENDLY,"Yes, he's the one who persuaded us to come here.").also { stage++ } - 31 -> npc( - FacialExpression.HALF_GUILTY,"He said we'd have lots of customers once we set up", - "our shops, and all he asks for is a cut"," of the profits.").also { stage++ } - 32 -> player(FacialExpression.ASKING,"Maybe I should talk to him...").also { stage++ } - 33 -> npc(FacialExpression.FRIENDLY,"Of course.", "He's always happy to talk to possible business partners.").also { stage = 1 } - - 40 -> npc(FacialExpression.SUSPICIOUS,"What? Who's spreading that rumour?").also { stage++ } - 41 -> player(FacialExpression.THINKING,"Well, one of the shopkeepers told me a man with", "a large hammer came to threaten them.").also { stage++ } - 42 -> npc(FacialExpression.SUSPICIOUS,"Don't pay any attention to those people.").also { stage++ } - 43 -> npc(FacialExpression.LAUGH,"They're just worried that they'll lose money", "when we open our shops.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheSmithDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(2820) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/FadliDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/FadliDialogue.kt deleted file mode 100644 index 87ffbd31e..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/FadliDialogue.kt +++ /dev/null @@ -1,72 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class FadliDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return FadliDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 0 -> npcl(FacialExpression.HALF_ASKING, "What?").also { stage++ } - 1 -> showTopics( - Topic("What do you do?", 101), - Topic("What is this place?", 201), - Topic(FacialExpression.FRIENDLY,"I'd like to store some items, please.", 301), - Topic("Do you watch any matches?", 401) - ) - - 101 -> npcl(FacialExpression.FRIENDLY, "You can store your stuff here if you want. You can dump anything you don't want to carry whilst your fighting duels and then pick it up again on the way out.").also { stage++ } - 102 -> npcl(FacialExpression.SAD, "To be honest I'm wasted here.").also { stage++ } - 103 -> npcl(FacialExpression.EVIL_LAUGH, "I should be winning duels in an arena! I'm the best warrior in Al Kharid!").also { stage++ } - 104 -> player(FacialExpression.HALF_WORRIED, "Easy, tiger!").also { stage = END_DIALOGUE } - - 201 -> npcl(FacialExpression.LAUGH, "Isn't it obvious?").also { stage++ } - 202 -> npcl(FacialExpression.ANNOYED, "This is the Duel Arena...duh!").also { stage = END_DIALOGUE } - - 301 -> npcl(FacialExpression.FRIENDLY, "Sure.").also { - end() - player.bank.open() - } - - 401 -> npcl(FacialExpression.LAUGH, "Most aren't any good so I throw rotten fruit at them!").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FADLI_958) - } -} - -class FadliListener : InteractionListener { - override fun defineListeners() { - on(NPCs.FADLI_958, IntType.NPC, "buy") { player, node -> - if(node.asNpc().openShop(player)) { - return@on true - } - return@on false - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/JaraahDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/JaraahDialogue.kt deleted file mode 100644 index cfccea1ce..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/JaraahDialogue.kt +++ /dev/null @@ -1,67 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import api.animate -import api.getDynLevel -import api.getStatLevel -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills -import core.plugin.Initializable -import org.rs09.consts.Animations -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class JaraahDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return JaraahDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 0 -> npcl(FacialExpression.ANNOYED, "What? Can't you see I'm busy?!").also { stage++ } - 1 -> showTopics( - Topic("Can you heal me?", 101), - Topic("You must see some gruesome things?", 201), - Topic("Why do they call you 'The Butcher'?", 301) - ) - - // Jaraah has to be special and have different dialogue for the heal listener so I am repeating it here. - 101 -> { - animate(npc!!, Animations.HUMAN_PICKPOCKETING_881) - if(player!!.skills.lifepoints < getStatLevel(player!!, Skills.HITPOINTS)) { - player!!.skills.heal(21) - npcl(FacialExpression.FRIENDLY, "There you go!") - } else { - npcl(FacialExpression.FRIENDLY, "Okay, this will hurt you more than it will me.") - } - stage = END_DIALOGUE - } - - 201 -> npcl(FacialExpression.FRIENDLY, "It's a gruesome business and with the tools they give me it gets mroe gruesome before it gets better!").also { stage = END_DIALOGUE } - - 301 -> npcl(FacialExpression.HALF_THINKING, "'The Butcher'?").also { stage++ } - 302 -> npcl(FacialExpression.LAUGH, "Ha!").also { stage++ } - 303 -> npcl(FacialExpression.HALF_ASKING, "Would you like me to demonstrate?").also { stage++ } - 304 -> player(FacialExpression.AFRAID, "Er...I'll give it a miss, thanks.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.JARAAH_962) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SabreenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SabreenDialogue.kt deleted file mode 100644 index bad37167c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SabreenDialogue.kt +++ /dev/null @@ -1,49 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class SabreenDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return SabreenDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hi!").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 0 -> showTopics( - Topic("Can you heal me?", AlKharidHealDialogue(true)), - Topic("Do you see a lot of injured fighters?", 101), - Topic("Do you come here often?", 201) - ) - - 101 -> npcl(FacialExpression.FRIENDLY, "I work here, so yes!").also { stage = END_DIALOGUE } - - 201 -> npcl(FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } - 202 -> npcl(FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } - 203 -> player(FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.SABREEN_960) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SurgeonGeneralTafaniDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SurgeonGeneralTafaniDialogue.kt deleted file mode 100644 index a9b9dd51c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/alkharid/SurgeonGeneralTafaniDialogue.kt +++ /dev/null @@ -1,69 +0,0 @@ -package rs09.game.content.dialogue.region.alkharid - -import core.game.content.dialogue.DialoguePlugin -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.content.global.Skillcape -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.* -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class SurgeonGeneralTafaniDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return SurgeonGeneralTafaniDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY, "Hi. How can I help?").also { stage = 100 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 100 -> showTopics( - Topic("Can you heal me?", AlKharidHealDialogue(true)), - Topic("Do you see a lot of injured fighters?", 201), - Topic("Do you come here often?", 301), - IfTopic("Can I buy a Skillcape of Hitpoints from you?", 401, hasLevelStat(player, Skills.HITPOINTS, 99)), - IfTopic("Where can I get a cape like yours?", 501, !hasLevelStat(player, Skills.HITPOINTS, 99)) - ) - - 201 -> npcl(FacialExpression.HALF_THINKING, "Yes I do. Thankfully we can cope with almost anything. Jaraah really is a wonderful surgeon, his methods are a little unorthodox but he gets the job done.").also { stage++ } - 202 -> npcl(FacialExpression.HALF_GUILTY, "I shouldn't tell you this but his nickname is 'The Butcher'.").also { stage++ } - 203 -> player(FacialExpression.HALF_WORRIED, "That's reassuring.").also { stage = END_DIALOGUE } - - 301 -> npcl(FacialExpression.LAUGH, "I work here, so yes!").also { stage = END_DIALOGUE } - - 401 -> npcl(FacialExpression.FRIENDLY, "Why, certainly my friend. However, owning such an item makes you part of an elite group and that privilege will cost you 99000 coins.").also { stage++ } - 402 -> showTopics( - Topic(FacialExpression.HALF_GUILTY, "Sorry, that's much too pricey.", 411), - Topic(FacialExpression.HAPPY, "Sure, that's not too expensive for such a magnificent cape.", 421) - ) - - 411 -> npcl(FacialExpression.NEUTRAL, "I'm sorry you feel that way. Still, if you change your mind...").also { stage = END_DIALOGUE } - 421 -> if(Skillcape.purchase(player, Skills.HITPOINTS)) { - npcl(FacialExpression.FRIENDLY, "There you go! I hope you enjoy it.").also { stage = END_DIALOGUE } - } else { - npcl(FacialExpression.HALF_GUILTY, "Sorry, you can't buy that right now.").also { stage = END_DIALOGUE } - } - - 501 -> npcl(FacialExpression.HALF_THINKING, "Well, these capes are only available for people who have achieved a Hitpoint level of 99. You should go and train some more and come back to me when your Hitpoints are higher.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.SURGEON_GENERAL_TAFANI_961) - } -} - diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/bananaplantation/BonzaraDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/bananaplantation/BonzaraDialogue.kt deleted file mode 100644 index 806dd85da..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/bananaplantation/BonzaraDialogue.kt +++ /dev/null @@ -1,54 +0,0 @@ -package rs09.game.content.dialogue.region.apeatoll.bananaplantation - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class BonzaraDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.OLD_DEFAULT,"It looks like you're trying to escape. Would you like some help?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Yes", "No").also { stage++ } - 1 -> when (buttonId) { - 1 -> player(FacialExpression.WORRIED, "I ... uh ... yes.").also { stage = 10 } - 2 -> playerl(FacialExpression.ASKING, "No thank you. Who are you by the way?").also { stage = 20 } - } - - 10 -> npc(FacialExpression.OLD_DEFAULT, "Right you are.").also { stage++ } - 11 -> { - end() - //teleport to ape atoll - } - - 20 -> npcl(FacialExpression.OLD_DEFAULT, "Never mind that child. You should worry more about who you are and the nature of the forces that have driven you here.").also { stage++ } - 21 -> player(FacialExpression.THINKING, "I'll ... keep that in mind, thanks.").also { stage++ } - 22 -> npc(FacialExpression.OLD_DEFAULT, "We WILL meet again, " + player.name + ".").also { stage++ } - 23 -> player(FacialExpression.SUSPICIOUS, "Ok...").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BonzaraDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BONZARA_1468) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/DagaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/DagaDialogue.kt deleted file mode 100644 index 90e3d726d..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/apeatoll/marim/DagaDialogue.kt +++ /dev/null @@ -1,62 +0,0 @@ -package rs09.game.content.dialogue.region.apeatoll.marim - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - * Does not include treasure trails dialogue - */ - -@Initializable -class DagaDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Would you like to buy or sell some scimitars?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Yes, please.", "No, thanks.", "Do you have any Dragon Scimitars in stock?").also { stage++ } - - 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "No, thanks.").also { stage = END_DIALOGUE } - 3 -> player(FacialExpression.HALF_ASKING, "Do you have any Dragon Scimitars in stock?").also { stage = 30 } - } - - 10 -> end().also { npc.openShop(player) } - - 30 -> npcl(FacialExpression.OLD_DEFAULT, "It just so happens I recently got a fresh delivery, do you want to buy one?").also { stage++ } - 31 -> options("Yes, please.", "No, thanks.").also { stage++ } - - 32 -> when (buttonId) { - 1 -> if (inInventory(player, Items.COINS_995, 100000)) { - end().also { return removeItem(player, Item(Items.COINS_995, 100000)) && addItem(player, Items.DRAGON_SCIMITAR_4587, 1) } - } else { - npcl(FacialExpression.OLD_NORMAL, "Sorry but you don't have enough to buy one, at the moment it costs 100,000 gold coins.").also { stage = END_DIALOGUE } - } - 2 -> player(FacialExpression.FRIENDLY, "No thanks.").also { stage = END_DIALOGUE } - } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DagaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DAGA_1434) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/MonkeyChildThingZooDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/MonkeyChildThingZooDialogue.kt deleted file mode 100644 index 6cf706f4a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/ardougne/MonkeyChildThingZooDialogue.kt +++ /dev/null @@ -1,71 +0,0 @@ -package rs09.game.content.dialogue.region.ardougne - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class MonkeyChildThingZooDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"").also { stage = 0 } - if (!player.equipment.contains(Items.MSPEAK_AMULET_4021, 1)) { - npc(FacialExpression.OLD_LAUGH1, "Eeekeek ookeek!").also { stage = 99 } - } else { - var a = 1..5 - when(a.random()) { - 1 -> npc(FacialExpression.OLD_LAUGH1, "Arr!").also { stage = 10 } - 2 -> npcl(FacialExpression.OLD_LAUGH1, "Let me go, can't ye hear them? Howlin' in the dark...").also { stage = 20 } - 3 -> npcl(FacialExpression.OLD_DEFAULT, "I'm not goin' back in that brewery, not fer all the Bitternuts I can carry!").also { stage = 99 } - 4 -> npc(FacialExpression.OLD_DEFAULT, "Are ye here for...the stuff?").also { stage = 30 } - 5 -> npc(FacialExpression.OLD_DISTRESSED, "Arr! Yer messin with me monkey plunder!").also { stage = 40 } - } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - - 10 -> player(FacialExpression.JOLLY, "Arr!").also { stage++ } - 11 -> npc(FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } - 12 -> player(FacialExpression.JOLLY, "Arr!").also { stage++ } - 13 -> npc(FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } - 14 -> player(FacialExpression.JOLLY, "Arr!").also { stage++ } - 15 -> npc(FacialExpression.OLD_LAUGH1, "Arr!").also { stage++ } - 16 -> player(FacialExpression.JOLLY, "Arr!").also { stage++ } - 17 -> npc(FacialExpression.OLD_LAUGH1, "Bored now...").also { stage = 99 } - - 20 -> player(FacialExpression.ASKING, "What do you mean?").also { stage++ } - 21 -> npc(FacialExpression.OLD_DISTRESSED, "I'm not hangin' around te be killed!").also { stage++ } - 22 -> npc(FacialExpression.OLD_DISTRESSED, "The Horrors, the Horrors!").also { stage = 99 } - - 30 -> player(FacialExpression.ASKING, "What?").also { stage++ } - 31 -> npc(FacialExpression.OLD_DEFAULT, "You know...the 'special' bananas?").also { stage++ } - 32 -> player(FacialExpression.ASKING, "No... why do you ask?").also { stage++ } - 33 -> npc(FacialExpression.OLD_SAD, "No reason. Have a nice day.").also { stage = 99 } - - 40 -> player(FacialExpression.ASKING, "What?").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return MonkeyChildThingZooDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MONKEY_4363) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/barbarianassault/CaptainCainDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/barbarianassault/CaptainCainDialogue.kt deleted file mode 100644 index 261f30db7..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/barbarianassault/CaptainCainDialogue.kt +++ /dev/null @@ -1,68 +0,0 @@ -package rs09.game.content.dialogue.region.barbarianassault - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE -import java.text.SimpleDateFormat -import java.time.temporal.ChronoUnit -import java.util.* - -@Initializable -class CaptainCainDialogue(player: Player? = null) : DialoguePlugin(player) { - val sdf = SimpleDateFormat("ddMMyyyy") - override fun newInstance(player: Player?): DialoguePlugin { - return CaptainCainDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY, "Hello, there, adventurer. Say, you wouldn't happen to be interested in purchasing a Fighter Torso would you?") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - val start = sdf.parse("27112020").toInstant() - val now = Date().toInstant() - val days = ChronoUnit.DAYS.between(start,now) - when(stage){ - 0 -> npcl(FacialExpression.ANNOYED,"I'm having to offer this service because it's been $days days since Ryan promised to give us barbarian assault.").also { stage++ } - 1 -> options("Yes, please.","No, thanks.").also { stage++ } - 2 -> when(buttonId){ - 1 -> playerl(FacialExpression.FRIENDLY, "Yes, please.").also { stage = 10 } - 2 -> playerl(FacialExpression.HALF_THINKING, "No, thanks.").also { stage = END_DIALOGUE } - } - - 10 -> npcl(FacialExpression.FRIENDLY, "Alright, then, that'll be 7,500,000 gold please.").also { stage++ } - 11 -> options("Here you go!","Nevermind.").also { stage++ } - 12 -> when(buttonId){ - 1 -> if(inInventory(player, 995, 7500000)) - playerl(FacialExpression.FRIENDLY, "Here you go!").also { stage = 20 } - else - playerl(FacialExpression.HALF_GUILTY, "Actually, I don't have that much.").also { stage = END_DIALOGUE } - - 2 -> playerl(FacialExpression.FRIENDLY, "On second thought, nevermind.").also { stage = END_DIALOGUE } - } - - 20 -> { - npcl(FacialExpression.FRIENDLY, "Thank you much, kind sir. And here's your torso.") - if(removeItem(player, Item(995,7500000), api.Container.INVENTORY)) { - addItem(player, Items.FIGHTER_TORSO_10551, 1) - } - stage = END_DIALOGUE - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CAPTAIN_CAIN_5030) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/MasterCrafterDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/MasterCrafterDialogue.kt deleted file mode 100644 index 9ab929275..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/MasterCrafterDialogue.kt +++ /dev/null @@ -1,68 +0,0 @@ -package rs09.game.content.dialogue.region.craftingguild - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class MasterCrafterDialogue(player: Player? = null) : DialoguePlugin(player) { - - var CAPE = Items.CRAFTING_CAPE_9780 - var COIN = Items.COINS_995 - - override fun newInstance(player: Player) : DialoguePlugin { - return MasterCrafterDialogue(player) - } - - override fun open(vararg args: Any?) : Boolean { - npc = args[0] as NPC - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int) : Boolean { - when(stage) { - 0 -> if(hasLevelStat(player, Skills.CRAFTING, 99)) { - player(FacialExpression.ASKING, "Hey, could I buy a Skillcape of Crafting?").also{ stage = 10 } - } else { - player(FacialExpression.ASKING,"Hey, what is that cape you're wearing? I don't recognize it.").also { stage++ } - } - 1 -> npcl(FacialExpression.FRIENDLY, "This? This is a Skillcape of Crafting. It is a symbol of my ability " + - "and standing here in the Crafting Guild. If you should ever achieve level 99 Crafting come and talk to me " + - "and we'll see if we can sort you out with one.").also{ stage = END_DIALOGUE } - 10 -> npcl(FacialExpression.HAPPY, "Certainly! Right after you pay me 99000 coins.").also{ stage++ } - 11 -> options("Okay, here you go.", "No thanks.").also{ stage++ } - 12 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Okay, here you go.").also{ stage++ } - 2 -> player(FacialExpression.HALF_THINKING, "No, thanks.").also{ stage = END_DIALOGUE } - } - 13 -> if(inInventory(player, COIN, 99000)) { - removeItem(player, Item(COIN, 99000), Container.INVENTORY) - addItem(player, CAPE, 1) - npcl(FacialExpression.HAPPY, "There you go! Enjoy.").also{ stage = END_DIALOGUE } - } else { - npcl(FacialExpression.NEUTRAL, "You don't have enough coins for a cape.").also{ stage = END_DIALOGUE } - } - 20 -> npcl(FacialExpression.NEUTRAL, "Where's your brown apron? You can't come in here unless you're wearing one.").also{ stage++ } - 21 -> player(FacialExpression.HALF_GUILTY, "Err... I haven't got one.").also{ stage = END_DIALOGUE } - } - return true - } - - override fun getIds() : IntArray { - return intArrayOf(NPCs.MASTER_CRAFTER_805) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TannerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TannerDialogue.kt deleted file mode 100644 index 770c620dd..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TannerDialogue.kt +++ /dev/null @@ -1,53 +0,0 @@ -package rs09.game.content.dialogue.region.craftingguild - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -@Initializable -class TannerDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun newInstance(player: Player) : DialoguePlugin { - return TannerDialogue(player) - } - - override fun open(vararg args: Any?) : Boolean { - npc = args[0] as NPC - npcl(FacialExpression.NEUTRAL, "Greetings friend. I am a manufacturer of leather.") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int) : Boolean { - when(stage) { - 0 -> options("Can I buy some leather then?", "Leather is rather weak stuff.").also{ stage++ } - 1 -> when(buttonId) { - 1 -> player(FacialExpression.ASKING,"Can I buy some leather then?").also{ stage = 10 } - 2 -> player(FacialExpression.SUSPICIOUS, "Leather is rather weak stuff.").also { stage = 20 } - } - - 10 -> npcl(FacialExpression.FRIENDLY, "Certainly!").also { stage = END_DIALOGUE }.also{ npc.openShop(player) } - - 20 -> npcl(FacialExpression.NOD_YES, "Normal leather may be quite weak, but it's very cheap - I " + - "make it from cowhides for only 1 gp per hide - and it's so easy to craft that anyone can work with it.").also{ stage++ } - 21 -> npcl(FacialExpression.HALF_THINKING, "Alternatively you could try hard leather. It's not so easy " + - "to craft, but I only charge 3 gp per cowhide to prepare it, and it makes much sturdier armour.").also{ stage++ } - 22 -> npcl(FacialExpression.FRIENDLY, "I can also tan snake hides and dragonhides, suitable for crafting" + - "into the highest quality armour for rangers.").also{ stage++ } - 23 -> player(FacialExpression.NEUTRAL, "Thanks, I'll bear it in mind.").also { stage = END_DIALOGUE } - } - return true - } - override fun getIds() : IntArray { - return intArrayOf(NPCs.TANNER_804) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TheDoorDialogues.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TheDoorDialogues.kt deleted file mode 100644 index 91327429a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/craftingguild/TheDoorDialogues.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.craftingguild - -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ - -class TheDoorDialogues(val it: Int) : DialogueFile() { - override fun handle(interfaceId: Int, buttonId: Int) { - npc = NPC(NPCs.MASTER_CRAFTER_805) - when(it) { - 0 -> when(stage) { - 0 -> npcl(FacialExpression.FRIENDLY, "Welcome to the Guild of Master craftsmen.").also{ stage = END_DIALOGUE } - } - 1 -> when(stage) { - 0 -> npcl(FacialExpression.ASKING, "Where's your brown apron? You can't come in here unless you're wearing one.").also{ stage++ } - 1 -> player(FacialExpression.SAD, "Err... I haven't got one.").also { stage = END_DIALOGUE } - } - 2 -> when(stage) { - 0 -> npcl(FacialExpression.NEUTRAL, "Sorry, only experienced crafters are allowed in here. You must be level 40 or above to enter.").also{ stage = END_DIALOGUE } - } - } - - } - - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/darkwizardstower/ZandarHorfyreDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/darkwizardstower/ZandarHorfyreDialogue.kt deleted file mode 100644 index 505f958ca..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/darkwizardstower/ZandarHorfyreDialogue.kt +++ /dev/null @@ -1,53 +0,0 @@ -package rs09.game.content.dialogue - -import api.teleport -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.TeleportManager -import core.game.world.map.Location -import core.plugin.Initializable -import rs09.tools.END_DIALOGUE - -/** - * @author bushtail - */ -@Initializable -class ZandarHorfyreDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun newInstance(player: Player) : DialoguePlugin { - return ZandarHorfyreDialogue(player) - } - - override fun open(vararg args: Any?) : Boolean { - npc = args[0] as NPC - player(FacialExpression.HALF_THINKING,"Who are you?") - stage = -1 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int) : Boolean { - when (stage) { - -1 -> npcl(FacialExpression.NEUTRAL,"My name is Zandar Horfyre, and you ${ player.name } are trespassing in my tower, not to mention attacking my students! I thank you to leave immediately!").also{ stage++ } - 0 -> options("Ok, I was going anyway.", "No, I think I'll stay for a bit.").also{ stage++ } - 1 -> when(buttonId) { - 1 -> player("Ok, I was going anyway.").also{ stage = 10 } - 2 -> player("No, I think I'll stay for a bit.").also{ stage = 20 } - } - - 10 -> npcl(FacialExpression.NEUTRAL,"Good! And don't forget to close the door behind you!").also{ stage++ } - 11 -> stage = END_DIALOGUE - - 20 -> npcl(FacialExpression.ANNOYED,"Actually, that wasn't an invitation. I've tried being polite, now we'll do it the hard way!").also{ teleport(player, Location.create(3217, 3177, 0), TeleportManager.TeleportType.INSTANT) }.also{ stage++ } - 21 -> player(FacialExpression.ANGRY, "Zamorak curse that mage!").also{ stage++ } - 22 -> player(FacialExpression.LAUGH, "Actually, I guess he already has!").also{ stage++ } - 23 -> end() - } - return true - } - - override fun getIds() : IntArray { - return intArrayOf(3308) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BartakDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BartakDialogue.kt deleted file mode 100644 index 39ce11110..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dorgeshuun/BartakDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.dorgeshuun - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class BartakDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DISTRESSED,"Oh no! What's broken?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.ASKING, "What? Nothing's broken?").also { stage++ } - 1 -> npc(FacialExpression.OLD_DISTRESSED, "I'm sorry. I'm just a bit jumpy.").also { stage++ } - 2 -> npcl(FacialExpression.OLD_DISTRESSED, "I'm in charge of all the metalworking of Dorgesh-Kaan. It's a big responsibility!").also { stage++ } - 3 -> npcl(FacialExpression.OLD_DISTRESSED, "If something metal breaks I have to fix it. And lots of things are made of metal!").also { stage++ } - 4 -> player(FacialExpression.FRIENDLY, "Don't worry, I'm sure you're up to the task!").also { stage++ } - 5 -> npc(FacialExpression.OLD_DISTRESSED, "I hope you're right.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BartakDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BARTAK_5778) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/duelarena/AfrahDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/duelarena/AfrahDialogue.kt deleted file mode 100644 index 38b140f8b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/duelarena/AfrahDialogue.kt +++ /dev/null @@ -1,174 +0,0 @@ -package rs09.game.content.dialogue.region.duelarena - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AfrahDialogue : DialoguePlugin { - - private val conversations = arrayOf (0, 4, 10, 11, 15, 17, 20, 22, 23, 24, 29, 32) - - override fun open(vararg args: Any): Boolean { - player(FacialExpression.ASKING, "Hi!") - stage = conversations.random() - npc = args[0] as NPC - return true - } - - constructor() {} - constructor(player: Player?) : super(player) {} - - override fun getIds(): IntArray { - return intArrayOf(968) - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when (stage) { - 0 -> { - npc(FacialExpression.ASKING, "Ooh. This is exciting!") - stage++ - } - 1 -> { - player(FacialExpression.ASKING, "Yup!") - stage = 99 - } - 2 -> { - npc(FacialExpression.ASKING, "I wouldn't want to be the poor guy that has to", "clean up after the duels.") - stage++ - } - 3 -> { - player(FacialExpression.ASKING, "Me neither.") - stage = 99 - } - 4 -> { - npc(FacialExpression.ASKING, "My son just won his first duel!") - stage++ - } - 5 -> { - player(FacialExpression.ASKING, "Congratulations!") - stage++ - } - 6 -> { - npc(FacialExpression.ASKING, "He ripped his opponent in half!") - stage++ - } - 7 -> { - player(FacialExpression.ASKING, "That's gotta hurt!") - stage++ - } - 8 -> { - npc(FacialExpression.ASKING, "He's only 10 as well!") - stage++ - } - 9 -> { - player(FacialExpression.ASKING, "You gotta start 'em young!") - stage = 99 - } - 10 -> { - npc(FacialExpression.ASKING, "Hmph.") - stage = 99 - } - 11 -> { - npc(FacialExpression.ASKING, "My favourite fighter is Mubariz!") - stage++ - } - 12 -> { - player(FacialExpression.ASKING, "The guy at the information kiosk?") - stage++ - } - 13 -> { - npc(FacialExpression.ASKING, "Yeah! He rocks!") - stage++ - } - 14 -> { - player(FacialExpression.ASKING, "Takes all sorts, I guess.") - stage = 99 - } - 15 -> { - npc(FacialExpression.ASKING, "Hi! I'm here to watch the duels!") - stage++ - } - 16 -> { - player(FacialExpression.ASKING, "Me too!") - stage = 99 - } - 17 -> { - npc(FacialExpression.ASKING, "Did you know they think this place dates","back to the second age?!") - stage++ - } - 18 -> { - player(FacialExpression.ASKING, "Really?") - stage++ - } - 19 -> { - npc(FacialExpression.ASKING, "Yeah. The guy at the information kiosk was telling me.") - stage = 99 - } - 20 -> { - npc(FacialExpression.ANGRY, "Can't you see I'm watching the duels?") - stage++ - } - 21 -> { - player(FacialExpression.SAD, "I'm sorry!") - stage = 99 - } - 22 -> { - npc(FacialExpression.ASKING, "Well. This beats doing the shopping!") - stage = 99 - } - 23 -> { - npc(FacialExpression.ASKING, "Hi!") - stage = 99 - } - 24 -> { - npc(FacialExpression.ASKING, "Knock knock!") - stage++ - } - 25 -> { - player(FacialExpression.ASKING, "Who's there?") - stage++ - } - 26 -> { - npc(FacialExpression.ASKING, "Boo!") - stage++ - } - 27 -> { - player(FacialExpression.ASKING, "Boo who?") - stage++ - } - 28 -> { - npc(FacialExpression.LAUGH, "Don't cry, it's just me!") - stage = 99 - } - 29 -> { - npc(FacialExpression.ASKING, "Why did the skeleton burp?") - stage++ - } - 30 -> { - player(FacialExpression.ASKING, "I don't know?") - stage++ - } - 31 -> { - npc(FacialExpression.ASKING, "'Cause it didn't have the guts to fart!") - stage = 99 - } - 32 -> { - npc(FacialExpression.ASKING, "Waaaaassssssuuuuupp?!.") - stage = 99 - } - 99 -> end() - } - return true - } - - override fun newInstance(player: Player): DialoguePlugin { - return AfrahDialogue(player) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt deleted file mode 100644 index 519b105ff..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt +++ /dev/null @@ -1,63 +0,0 @@ -package rs09.game.content.dialogue.region.dungeon.taverley - -import api.Container -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class VelrakDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return VelrakDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - if(inInventory(player, Items.DUSTY_KEY_1590)){ - playerl(FacialExpression.HALF_THINKING, "Are you still here?").also { stage = 100 } - } else { - npcl(FacialExpression.FRIENDLY, "Thank you for rescuing me! It isn't very comfy in this cell.") - removeItem(player, Items.JAIL_KEY_1591, Container.INVENTORY) - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("So... do you know anywhere good to explore?","Do I get a reward for freeing you?").also { stage++ } - 1 -> when(buttonId){ - 1 -> playerl(FacialExpression.HALF_THINKING, "So... do you know anywhere good to explore?").also { stage = 10 } - 2 -> playerl(FacialExpression.FRIENDLY, "Do I get a reward for freeing you?").also { stage = 20 } - } - - 10 -> npcl(FacialExpression.HALF_THINKING, "Well, this dungeon was quite good to explore...until I got captured, anyway. I was given a key to an inner part of this dungeon by a mysterious stranger!").also { stage++ } - 11 -> npcl(FacialExpression.NEUTRAL, "It's rather tough for me to get that far into the dungeon however. I just keep getting captured! Would you like to give it a go?").also { stage++ } - 12 -> options("Yes, please!", "No, it's too dangerous for me too.").also { stage++ } - 13 -> when(buttonId){ - 1 -> playerl(FacialExpression.FRIENDLY, "Yes, please!").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL, "No, it's too dangerous for me too.").also { stage = 15 } - } - - 14 -> sendItemDialogue(player, Items.DUSTY_KEY_1590, "Velrak reaches somewhere mysterious and passes you a key.").also { addItem(player, Items.DUSTY_KEY_1590, 1); stage = END_DIALOGUE } - - 15 -> npcl(FacialExpression.FRIENDLY, "I don't blame you!").also { stage = END_DIALOGUE } - - 20 -> npcl(FacialExpression.HALF_GUILTY, "Well, not really. The Black Knights took all of my stuff before throwing me in here to rot!").also { stage = 0 } - - 100 -> npcl(FacialExpression.HALF_THINKING, "Yes... I'm still plucking up the courage to run out past those Black Knights.").also { stage++ } - 101 -> playerl(FacialExpression.FRIENDLY, "Oh, go on. You can do it!").also { stage = END_DIALOGUE } - } - - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.VELRAK_THE_EXPLORER_798) - } - - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DrogoDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DrogoDialogue.kt deleted file mode 100644 index 348d642d5..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DrogoDialogue.kt +++ /dev/null @@ -1,48 +0,0 @@ -package rs09.game.content.dialogue.region.dwarvenmine - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DrogoDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"'Ello. Welcome to my Mining shop, friend.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Do you want to trade?", "Hello, shorty.", "Why don't you ever restock ores and bars?").also { stage++ } - 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Do you want to trade?").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "Hello, shorty.").also { stage = 20 } - 3 -> player(FacialExpression.FRIENDLY, "Why don't you ever restock ores and bars?").also { stage = 30 } - } - - 10 -> end().also { npc.openShop(player) } - 20 -> npc(FacialExpression.OLD_ANGRY1,"I may be short, but at least I've got manners.").also { stage = 99 } - 30 -> npc(FacialExpression.OLD_DEFAULT,"The only ores and bars I sell are those sold to me.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DrogoDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DROGO_DWARF_579) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DwarvenMineGuardDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DwarvenMineGuardDialogue.kt deleted file mode 100644 index 1dfb77367..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/DwarvenMineGuardDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.dwarvenmine - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DwarvenMineGuardDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.OLD_ANGRY1, "Don't distract me while I'm on duty! This mine has to be protected!").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "What's going to attack a mine?").also { stage++ } - 2 -> npcl(FacialExpression.OLD_ANGRY1, "Goblins! They wander everywhere, attacking anyone they think is small enough to be an easy victim. We need more cannons to fight them off properly.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY, "Well, I've done my bit to help with that.").also { stage++ } - 4 -> npcl(FacialExpression.OLD_ANGRY1, "Yes, I heard. Now please let me get on with my guard duties.").also { stage++ } - 5 -> player(FacialExpression.FRIENDLY, "Alright, I'll leave you alone now.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DwarvenMineGuardDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GUARD_206) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/NurmofDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/NurmofDialogue.kt deleted file mode 100644 index 17a6b44f3..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dwarvenmine/NurmofDialogue.kt +++ /dev/null @@ -1,47 +0,0 @@ -package rs09.game.content.dialogue.region.dwarvenmine - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class NurmofDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.OLD_NORMAL,"Greetings and welcome to my pickaxe shop. Do you want to buy my premium quality pickaxes?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Yes, please.", "No, thank you.", "Are your pickaxes better than other pickaxes, then?").also { stage++ } - - 1 -> when (buttonId) { - 1 -> end().also { npc.openShop(player) } - 2 -> player(FacialExpression.FRIENDLY, "No thank you.").also { stage = 99 } - 3 -> player(FacialExpression.HALF_ASKING, "Are your pickaxes better than other pickaxes, then?").also { stage = 10 } - } - - 10 -> npcl(FacialExpression.OLD_NORMAL,"Of course they are! My pickaxes are made of higher grade metal than your ordinary bronze pickaxes, allowing you to mine ore just that little bit faster.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return NurmofDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.NURMOF_594) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/HighPriestEntranaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/HighPriestEntranaDialogue.kt deleted file mode 100644 index 5237798a3..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/HighPriestEntranaDialogue.kt +++ /dev/null @@ -1,68 +0,0 @@ -package rs09.game.content.dialogue.region.entrana - -import api.addItemOrDrop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class HighPriestEntranaDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - if (!player.questRepository.isComplete("Heroes' Quest")) { - npc(FacialExpression.FRIENDLY, "Many greetings. Welcome to our fair island.").also { stage = 10 } - } else { - options("Have you seen a pair of ice gloves?", "Ask about Entrana").also { stage = 5 } - } - - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.FRIENDLY, "and devoted the island to those who wish peace for the world.").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "The inhabitants of this island are mostly monks who spend their time meditating on Saradomin's ways.").also { stage++ } - 3 -> npcl(FacialExpression.FRIENDLY, "Of course, there are now more pilgrims to this holy site, since Saradomin defeated Zamorak in the battle of Lumbridge. It is good that so many see Saradomin's true glory!").also { stage = 99 } - - 5 -> when (buttonId) { - 1 -> npcl(FacialExpression.FRIENDLY, "By which you mean the pair of mythical gloves you stole from the cold dead body of the Queen of the Ice?").also { stage = 20 } - 2 -> npcl(FacialExpression.FRIENDLY,"You are standing on the holy island of Entrana. It was here that Saradomin first stepped upon Gielinor. In homage to Saradomin's first arrival, we have built a great church,").also { stage = 1 } - } - - 10 -> npc(FacialExpression.FRIENDLY, "Enjoy our stay here. May it be spiritually uplifting!").also { stage = 99 } - - 20 -> player(FacialExpression.SUSPICIOUS, "Er...").also { stage++ } - 21 -> npcl(FacialExpression.ANNOYED, "The gloves that you acquired to aid you in plucking the Entranan firebird? Another victim of your murderous nature, I should add.").also { stage++ } - 22 -> npcl(FacialExpression.ANNOYED, "The ice gloves that, from context, I would assume you have lost, if not carelessly discarded?").also { stage++ } - - 23 -> player(FacialExpression.FRIENDLY, "Those ice gloves, yes.").also { stage++ } - 24 -> sendDialogue("The high priest of Entrana shivers as he hands you your lost ice gloves.").also { - addItemOrDrop(player, Items.ICE_GLOVES_1580, 1) - stage++ - } - 25 -> npcl(FacialExpression.ANNOYED, "One of my monks found these gloves. If only to spare this world from further carnage, I return them to you.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return HighPriestEntranaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.HIGH_PRIEST_216) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/MazionDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/MazionDialogue.kt deleted file mode 100644 index d9547acb9..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/entrana/MazionDialogue.kt +++ /dev/null @@ -1,41 +0,0 @@ -package rs09.game.content.dialogue.region.entrana - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class MazionDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when ((1..3).random()) { - 1 -> npc(FacialExpression.FRIENDLY, "Nice weather we're having today!").also { stage = 99 } - 2 -> npc(FacialExpression.FRIENDLY, "Hello " + player.name + ", fine day today!").also { stage = 99 } - 3 -> npc(FacialExpression.ANNOYED, "Please leave me alone, a parrot stole my banana.").also { stage = 99 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return MazionDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MAZION_3114) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/AmbassadorSpanfippleDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/AmbassadorSpanfippleDialogue.kt deleted file mode 100644 index 109bf3597..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/AmbassadorSpanfippleDialogue.kt +++ /dev/null @@ -1,62 +0,0 @@ -package rs09.game.content.dialogue.region.falador - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - - -/** - * @author qmqz - */ - -@Initializable -class AmbassadorSpanfippleDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"It's all very white round here, isn't it?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - player(FacialExpression.THINKING, "Well, it is the White Knights' Castle.").also { stage++ } - } - - 1 -> { - npcl(FacialExpression.OLD_DEFAULT, "I think it would all look better in pink. At least then I wouldn't be squinting all the time.").also { stage++ } - } - - 2 -> { - playerl(FacialExpression.FRIENDLY, "Yes, but then they'd have to become the Pink Knights. I think they'd have problems recruiting then.").also { stage++ } - } - - 3 -> { - npc(FacialExpression.OLD_DEFAULT, "You're probably right. Maybe brown, then.").also { stage++ } - } - - 4 -> { - player(FacialExpression.HALF_THINKING, "I think that may be worse...").also { stage++ } - } - - 5 -> { - npc(FacialExpression.OLD_ANGRY1, "Bah, humans have no sense of style...").also { stage = 99 } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AmbassadorSpanfippleDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.AMBASSADOR_SPANFIPPLE_4581) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/DrunkenManDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/DrunkenManDialogue.kt deleted file mode 100644 index 14c9f0cfc..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/DrunkenManDialogue.kt +++ /dev/null @@ -1,66 +0,0 @@ -package rs09.game.content.dialogue.region.falador - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DrunkenManDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - npc(FacialExpression.DRUNK, "... whassup?").also { stage++ } - } - - 1 -> { - player(FacialExpression.ASKING, "Are you alright?").also { stage++ } - } - - 2 -> { - npc(FacialExpression.DRUNK, "... see... two of you... why there two of you?").also { stage++ } - } - - 3 -> { - player(FacialExpression.FRIENDLY, "There's only one of me, friend.").also { stage++ } - } - - 4 -> { - npc(FacialExpression.DRUNK, "... no, two of you... you can't count...", - "... maybe you drunk too much...").also { stage++ } - } - - 5 -> { - player(FacialExpression.FRIENDLY, "Whatever you say, friend.").also { stage++ } - } - - 6 -> { - npc(FacialExpression.DRUNK, "... giant hairy cabbages...").also { stage = 99 } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DrunkenManDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DRUNKEN_MAN_3222) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WorkmanDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WorkmanDialogue.kt deleted file mode 100644 index 9f0391343..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/falador/WorkmanDialogue.kt +++ /dev/null @@ -1,49 +0,0 @@ -package rs09.game.content.dialogue.region.falador - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs.WORKMAN_3236 - -/** - * @author qmqz - */ - -@Initializable -class WorkmanDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hiya.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - npc(FacialExpression.ASKING, "What do you want? I've got work to do!").also { stage++ } - } - - 1 -> { - player(FacialExpression.ASKING, "Can you teach me anything?").also { stage++ } - } - - 2 -> { - npcl(FacialExpression.ANNOYED, "No - I've got one lousy apprentice already, and that's quite enough hassle! Go away!").also { stage = 99 } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return WorkmanDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(WORKMAN_3236) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/ElfTrackerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/ElfTrackerDialogue.kt deleted file mode 100644 index 90cd5c55b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/ElfTrackerDialogue.kt +++ /dev/null @@ -1,89 +0,0 @@ -package rs09.game.content.dialogue.region.isafdar - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class ElfTrackerDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - //todo check if found tracks or not - //temporary booly boi - var tracksFound = false - if (!tracksFound) { - player(FacialExpression.FRIENDLY, "Hello.").also { stage = 0 } - } else { - playerl(FacialExpression.NEUTRAL, "I've found tracks leading off to the west. But they trail off into the trees. Beyond that I am unable to follow.").also { stage = 30} - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.SUSPICIOUS, "Human! You must be one of Tyras's men...").also { stage++ } - 1 -> playerl(FacialExpression.HALF_GUILTY, "No, I'm " + player.name + "! Lord Iorwerth said you might be able to help me.").also { stage++ } - 2 -> npc(FacialExpression.SUSPICIOUS, "And you have something to prove this?").also { stage++ } - 3 -> { - //todo check quest stages whenever it's added - if (player.inventory.contains(Items.CRYSTAL_PENDANT_3208, 1) || player.equipment.contains(Items.CRYSTAL_PENDANT_3208, 1)) { - sendDialogue("You show the tracker the crystal pendant.").also { stage = 20 } - } else { - player(FacialExpression.HALF_GUILTY, "Well... Err... No.").also { stage = 10 } - } - } - 10 -> npcl(FacialExpression.ANNOYED, "As I was saying... I have no time for brigands or outlaws.").also { stage = 99 } - - 20 -> npcl(FacialExpression.FRIENDLY, "That is Lord Iorwerth's pendant. He must have a lot of faith in you. Now, what is it I can help you with?").also { stage ++ } - 21 -> playerl(FacialExpression.ASKING, "I need to find Tyras and kill him. Do you know where his camp is?").also { stage++ } - 22 -> npcl(FacialExpression.FRIENDLY, "Well this was his old camp. After the battle a few days ago they moved. We're yet to find them again.").also { stage++ } - 23 -> player(FacialExpression.ASKING, "Can I help at all?").also { stage++ } - 24 -> npcl(FacialExpression.FRIENDLY, "As it goes I'm not actually tracking them at the moment. I'm currently trying to trace our renegade brethen instead. This here is the best lead we've found so far.").also { stage++ } - 25 -> player(FacialExpression.HALF_ASKING, "What is?").also { stage++ } - 26 -> npc(FacialExpression.THINKING, "Ahh I guess you can't see it with those human eyes.").also { stage++ } - 27 -> npcl(FacialExpression.THINKING, "I tell you what. Now that you're here I may as well give you a hand. I'll search here on the east side. You check out the west end of the camp.").also { stage++ } - 28 -> npc(FacialExpression.THINKING, "Come and tell me if you find anything.").also { stage = 99 } - - //todo after finding the tracks - 30 -> npcl(FacialExpression.THINKING, "These forests aren't always as dense as you'd think. If you look closer, you might see ways that you can get through. With that in mind, why don't you give it another go?").also { stage++ } - 31 -> player(FacialExpression.ANNOYED, "Thanks... I'll see what I can find.").also { stage = 99 } - - //todo after searching past the dense forest - 40 -> player(FacialExpression.FRIENDLY, "Hello.").also { stage++ } - 41 -> npc(FacialExpression.FRIENDLY, "How goes the hunt for that bandit camp?").also { stage++ } - 42 -> { - //todo (If the camp has not been found) - //temporary booly bois - var campFound = false - if (!campFound) { - player(FacialExpression.FRIENDLY, "Getting there.").also { stage = 99 } - } else { - player(FacialExpression.NEUTRAL, "I found it a short distance west of here.").also { stage++ } - } - } - 43 -> npcl(FacialExpression.FRIENDLY, "I'm sure Lord Iorwerth will be pleased to hear that. You should let him know.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ElfTrackerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.ELF_TRACKER_1199) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/IlfeenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/IlfeenDialogue.kt deleted file mode 100644 index 9e1ecc8a0..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/IlfeenDialogue.kt +++ /dev/null @@ -1,78 +0,0 @@ -package rs09.game.content.dialogue.region.isafdar - -import api.addItemOrDrop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class IlfeenDialogue(player: Player? = null) : DialoguePlugin(player){ - - //temp var - var queststage = 0 - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - //todo choose dialogue tree based off of quest stage - when(queststage) { - 0 -> npcl(FacialExpression.FRIENDLY,"Good day, what are you doing all the way out here?").also { stage = 0 } - 1 -> playerl(FacialExpression.ASKING, "There is something I meant to ask you about. Do you remember Oaknock? He was a gnome inventor.").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "Hello again. Are you still offering to chant seeds?").also { stage = 20 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "I'm just wandering, it's a lovely day for a walk in the woods.").also { stage++ } - 1 -> npc(FacialExpression.FRIENDLY, "It is that.").also { stage++ } - 2 -> player(FacialExpression.FRIENDLY, "Well I shouldn't keep you, see you later.").also { stage++ } - 3 -> npc(FacialExpression.FRIENDLY, "Bye.").also { stage = 99 } - - 10 -> npcl(FacialExpression.HAPPY, "Of course! I remember him from when I was living in the eastern lands. He was just a budding engineer then. I rather liked the young gnome: he was rather loud, but he had a good soul.").also { stage++ } - 11 -> npcl(FacialExpression.HAPPY, "He was very interested in elven magic. Last time we spoke, not too long ago, he was very interested in illusion magic and how to dispel it. I gave him some advice and a few pieces of equipment to help him.").also { stage++ } - 12 -> playerl(FacialExpression.THINKING, "I think Oaknock died of old age a few hundred years ago now.").also { stage++ } - 13 -> npcl(FacialExpression.HALF_GUILTY, "I keep forgetting, a hundred years is a long time for you.").also { stage++ } - 14 -> player(FacialExpression.ASKING, "Did you ever give him a seed?").also { stage++ } - 15 -> npcl(FacialExpression.FRIENDLY, "Of course. It grew into a saw. I hope he found it useful.").also { stage++ } - 16 -> player(FacialExpression.FRIENDLY, "I think he did! Thanks.").also { stage++ } - 17 -> sendDialogue("Ilfeen smiles serenely.").also { stage = 99 } - - 20 -> npcl(FacialExpression.ASKING, "I am, but you’ll need your own seed. I can also chant your shield or bow back to full charges if you have it with you. Would you like me to enchant anything?").also { stage++ } - 21 -> npcl(FacialExpression.ASKING, "Or I could give you a book about crystal singing?").also { stage++ } - 22 -> options ("Enchant something.", "Crystal singing book.", "Nothing, thanks.").also { stage++ } - 23 -> when (buttonId) { - //1 -> todo opens interface for enchanting - 2 -> player(FacialExpression.ASKING, "Could I have the book, please?").also { stage = 40 } - 3 -> npc(FacialExpression.FRIENDLY, "Well, good luck.").also { stage = 43 } - } - - 40 -> { - addItemOrDrop(player, Items.CRYSTAL_OF_SEREN_4313, 1) - sendDialogue("Ilfeen hands you a book.").also { stage++ } - } - 41 -> player(FacialExpression.FRIENDLY, "Thanks, I'll read all about it.").also { stage++ } - 42 -> npc(FacialExpression.FRIENDLY, "Well, good luck.").also { stage++ } - 43 -> player(FacialExpression.FRIENDLY, "Goodbye, Ilfeen.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return IlfeenDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.ILFEEN_1777) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuard.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuard.kt deleted file mode 100644 index 2502b49d5..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/isafdar/TyrasGuard.kt +++ /dev/null @@ -1,57 +0,0 @@ -package rs09.game.content.dialogue.region.isafdar - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class TyrasGuard(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"What is it?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("What's going on around here?", "Do you know what's south of here?", "I'll leave you alone.").also { stage++ } - 1 -> when (buttonId) { - 1 -> player(FacialExpression.ASKING, "What's going on around here?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "Do you know what's south of here?").also { stage = 20 } - 3 -> player(FacialExpression.NEUTRAL, "I'll leave you alone.").also { stage = 99 } - } - - 10 -> npcl(FacialExpression.NEUTRAL, "Sorry, I shouldn't give out sensitive information to civilians. You should go to General Hining, in the camp along the road.").also { stage++ } - 11 -> options("Do you know what's south of here?", "Okay, thanks.").also { stage++ } - 12 -> when (buttonId) { - 1 -> player(FacialExpression.ASKING, "Do you know what's south of here?").also { stage = 20 } - 2 -> player(FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = 99 } - } - - 20 -> npcl(FacialExpression.NEUTRAL, "No. We sent a scouting party in that direction, when we first established our camp. Some of the men got lost in the swamps. Eventually we listed them as dead.").also { stage++ } - 21 -> npcl(FacialExpression.NEUTRAL, "Then suddenly they returned, with a wild gleam in their eyes, raving about gods and snakes and all kinds of madness.").also { stage++ } - 22 -> npcl(FacialExpression.NEUTRAL, "We had to drive them out, in case their condition infected the rest of the troops. Their wives will be given a full widow pension when we return home.").also { stage++ } - 23 -> npcl(FacialExpression.NEUTRAL, "General Hining concluded that, whatever is down there, it's not affiliated with any of the elf factions, and it should be left alone.").also { stage++ } - 24 -> player(FacialExpression.FRIENDLY, "Thank you.").also { stage = 0 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return TyrasGuard(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.TYRAS_GUARD_1203) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/CitizenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/CitizenDialogue.kt deleted file mode 100644 index 03ad3458d..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/CitizenDialogue.kt +++ /dev/null @@ -1,58 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class CitizenDialogue(player: Player? = null) : DialoguePlugin(player) { - val stages = intArrayOf(0, 100, 200, 300) - override fun newInstance(player: Player?): DialoguePlugin { - return CitizenDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - stage = stages.random() - handle(0,0) - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.NEUTRAL, "It's a bit grey round here, isn't it?").also { stage++ } - 1 -> npcl(FacialExpression.NEUTRAL, "It gets you down after a while, you know. There are 273 shades of grey, you know, and we have them all.").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL, "That's grey-t.").also { stage++ } - 3 -> npcl(FacialExpression.SAD, "That attempt at humour merely made me more depressed. Leave me alone.").also { stage = END_DIALOGUE } - - 100 -> playerl(FacialExpression.NEUTRAL, "Cheer up! It's not the end of the world.").also { stage++ } - 101 -> npcl(FacialExpression.SAD, "I'd prefer that, if it meant I didn't have to talk to people as inanely happy as you.").also { stage++ } - 102 -> playerl(FacialExpression.AMAZED, "Whoa! I think you need to get out more.").also { stage = END_DIALOGUE } - - 200 -> playerl(FacialExpression.NEUTRAL, "How's the King treating you then?").also { stage++ } - 201 -> npcl(FacialExpression.SAD, "Like serfs.").also { stage++ } - 202 -> playerl(FacialExpression.HALF_THINKING, "Serf?").also { stage++ } - 203 -> npcl(FacialExpression.SAD, "Yes, you know - peons, plebs, the downtrodden. He treats us like his own personal possessions.").also { stage++ } - 204 -> playerl(FacialExpression.NEUTRAL, "You should leave this place.").also { stage++ } - 205 -> npcl(FacialExpression.SAD, "I keep trying to save up enough to leave, but the King keeps taxing us! We have no money left." ).also { stage++ } - 206 -> playerl(FacialExpression.SAD, "Oh dear." ).also { stage = END_DIALOGUE } - - 300 -> playerl(FacialExpression.HALF_THINKING, "How are you today?").also { stage++ } - 301 -> npcl(FacialExpression.SAD, "**sigh**").also { stage++ } - 302 -> playerl(FacialExpression.ASKING, "That good? Everyone around here seems a little depressed. ").also { stage++ } - 303 -> npcl(FacialExpression.SAD, "**sigh**").also { stage++ } - 304 -> playerl(FacialExpression.HALF_THINKING, "And not particularly talkative.").also { stage++ } - 305 -> npcl(FacialExpression.SAD, "**sigh**").also { stage++ } - 306 -> playerl(FacialExpression.HALF_THINKING,"I'll leave you to your sighing. It looks like you have plenty to do." ).also { stage = END_DIALOGUE } - - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.LENSA_5494, NPCs.SASSILIK_5496, NPCs.FREYGERD_5493) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/EricDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/EricDialogue.kt deleted file mode 100644 index 354555430..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/EricDialogue.kt +++ /dev/null @@ -1,31 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class EricDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return EricDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.HALF_GUILTY, "Spare us a few coppers mister") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - playerl(FacialExpression.ANGRY, "NO!") - stage = END_DIALOGUE - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.ERIC_5499) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/GruvaPatrullDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/GruvaPatrullDialogue.kt deleted file mode 100644 index b8c641f4c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/GruvaPatrullDialogue.kt +++ /dev/null @@ -1,34 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class GruvaPatrullDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return GruvaPatrullDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY,"Ho! Outerlander.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.HALF_ASKING, "What's down the scary-looking staircase?").also { stage++ } - 1 -> npcl(FacialExpression.NEUTRAL, "These are the stairs down to the mining caves. There are rich veins of many types down there, and miners too. Though be careful; some of the trolls occasionally sneak into the far end of the cave.").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL, "Thanks. I'll look out for them.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GRUVA_PATRULL_5500) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/LeftieRightieDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/LeftieRightieDialogue.kt deleted file mode 100644 index 03cc179b4..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/LeftieRightieDialogue.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -class LeftieRightieDialogue() : DialogueFile() { - val rightie = NPCs.GUARD_5491 - val leftie = NPC(NPCs.GUARD_5492) - override fun handle(componentID: Int, buttonID: Int) { - when(stage){ - 0 -> npcl(FacialExpression.NEUTRAL, "Are you all right? Leftie?").also { stage++ } - 1 -> npc2("No, I'm on the left.").also { stage++ } - 2 -> npcl(FacialExpression.NEUTRAL, "Only from your perspective. Someone entering the gate should call you Rightie, right Leftie?").also { stage++ } - 3 -> npc2("Right, Rightie. So you'd be Leftie not Rightie, right?").also { stage++ } - 4 -> npcl(FacialExpression.NEUTRAL, "That's right Leftie, that's right.").also { stage++ } - 5 -> npc2("Rightie-oh Rightie, or should I call you Leftie?").also { stage++ } - 6 -> npcl(FacialExpression.NEUTRAL, "No, Rightie's fine Leftie.").also { stage++ } - 7 -> playerl(FacialExpression.ANGRY, "Aaagh! Enough! If either of you mention left or right in my presence I'll have to scream! Can I come through the gate?" ).also { stage++ } - 8 -> npc2("Don't let us stop you.").also { stage++ } - 9 -> npcl(FacialExpression.NEUTRAL, "Yes, head right on in, sir.").also { stage++ } - 10 -> playerl(FacialExpression.ANGRY, "You said it! You said it! ARRRRRRRRGH!").also { stage = END_DIALOGUE } - } - } - - fun npc2(messages: String){ - sendNormalDialogue(leftie, FacialExpression.NEUTRAL, *splitLines(messages)) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MinerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MinerDialogue.kt deleted file mode 100644 index fd2861969..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/MinerDialogue.kt +++ /dev/null @@ -1,62 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -@Initializable -class MinerDialogue(player: Player? = null) : DialoguePlugin(player) { - val stages = intArrayOf(0, 100, 200, 300, 400, 500) - override fun newInstance(player: Player?): DialoguePlugin { - return MinerDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - stage = stages.random() - handle(0,0) - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.SAD, "I've been here for two days straight. When I close my eyes, I see rocks.").also { stage++ } - 1 -> playerl(FacialExpression.HALF_ASKING, "Why would anyone stay here for so long?").also { stage++ } - 2 -> npcl(FacialExpression.NEUTRAL, "I fear the outside. I fear the big light.").also { stage++ } - 3 -> playerl(FacialExpression.HALF_GUILTY, "Oh dear. Being underground for so long may have driven you mad.").also { stage = END_DIALOGUE } - - 100 -> npcl(FacialExpression.NEUTRAL, "My back is killing me!").also { stage++ } - 101 -> playerl(FacialExpression.HALF_GUILTY, "Could be worse, it could be the trolls killing you." ).also { stage++ } - 102 -> npcl(FacialExpression.NEUTRAL, "How very droll.").also { stage++ } - 103 -> playerl(FacialExpression.NEUTRAL, "No, troll.").also { stage++ } - 104 -> npcl(FacialExpression.SAD, "Bah! I resist your attempts at jollity.").also { stage = END_DIALOGUE } - - 200 -> npcl(FacialExpression.SCARED, "Gah! Trolls everywhere. There's no escape!").also { stage++ } - 201 -> playerl(FacialExpression.HALF_THINKING, "You could just leave the mine.").also { stage++ } - 202 -> npcl(FacialExpression.NEUTRAL, "Oh, I'd never thought of that.").also { stage = END_DIALOGUE } - - 300 -> playerl(FacialExpression.HALF_ASKING, "How's your prospecting going?").also { stage++ } - 301 -> npcl(FacialExpression.LAUGH, "Mine's been going pretty well.").also { stage++ } - 302 -> playerl(FacialExpression.HALF_THINKING, "...").also { stage++ } - 303 -> npcl(FacialExpression.LAUGH, "Mine? Mine...you get it?").also { stage++ } - 304 -> playerl(FacialExpression.HALF_THINKING, "Oh, I got it. That doesn't make it funny though.").also { stage++ } - 305 -> npcl(FacialExpression.NEUTRAL, "Suit yourself.").also { stage = END_DIALOGUE } - - 400 -> npcl(FacialExpression.NEUTRAL, "High hoe, High hoe!").also { stage++ } - 401 -> playerl(FacialExpression.ASKING, "Why are you singing about farming implements at altitude?").also { stage++ } - 402 -> npcl(FacialExpression.NEUTRAL, "I don't know, I've never thought about it. Ask my Dad, he taught me the song.").also { stage = END_DIALOGUE } - - 500 -> npcl(FacialExpression.NEUTRAL, "This place rocks!").also { stage++ } - 501 -> playerl(FacialExpression.HALF_THINKING, "No it doesn't, it stays perfectly still.").also { stage++ } - 502 -> npcl(FacialExpression.HALF_THINKING, "Bah! Be quiet, pedant." ).also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MINER_5497, NPCs.MINER_5498) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/TowerGuardDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/TowerGuardDialogue.kt deleted file mode 100644 index dcb0edb17..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/jatizso/TowerGuardDialogue.kt +++ /dev/null @@ -1,53 +0,0 @@ -package rs09.game.content.dialogue.region.jatizso - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.tools.END_DIALOGUE - -@Initializable -class TowerGuardDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return TowerGuardDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - playerl(FacialExpression.HALF_ASKING, "What are you doing here?") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.NEUTRAL, "I'M ON SHOUTING DUTY!").also { stage++ } - 1 -> playerl(FacialExpression.HALF_THINKING, "No need to shout.").also { stage++ } - 2 -> npc(FacialExpression.NEUTRAL, "I'M SORRY I'VE BEEN SHOUTING","INSULTS SO LONG I CAN'T HELP IT!").also { stage++ } - 3 -> playerl(FacialExpression.HALF_THINKING, "Who are you insulting?").also { stage++ } - 4 -> npc(FacialExpression.NEUTRAL, "THE TOWER IN ${if(npc.id == NPCs.GUARD_5489) "NEITIZNOT" else "JATIZSO"}.","THEY SHOUT INSULTS BACK.").also { stage++ } - 5 -> playerl(FacialExpression.ASKING, "Err, why?" ).also { stage++ } - 6 -> npc(FacialExpression.NEUTRAL, "THE ${if(npc.id == NPCs.GUARD_5489) "KING" else "BURGHER"} TELLS US TO.").also { stage++ } - 7 -> playerl(FacialExpression.HALF_THINKING, "Your ${if(npc.id == NPCs.GUARD_5489) "King" else "Burgher"} is a strange person.").also { stage++ } - 8 -> options("Can I watch? I'm curious.", "Oh well, I'd better get going.").also { stage++ } - 9 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING, "Can I watch? I'm curious.").also { stage++ } - 2 -> playerl(FacialExpression.HALF_THINKING, "Oh well, I'd better get going.").also { stage = END_DIALOGUE } - } - 10 -> npcl(FacialExpression.NEUTRAL, "IF YOU LIKE!").also { - stage = END_DIALOGUE - InteractionListeners.run(NPCs.GUARD_5489, IntType.NPC, "watch-shouting", player, npc) - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GUARD_5489, NPCs.GUARD_5490) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/AgmundiDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/AgmundiDialogue.kt deleted file mode 100644 index 852662ec8..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/AgmundiDialogue.kt +++ /dev/null @@ -1,67 +0,0 @@ -package rs09.game.content.dialogue.region.keldagrim - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AgmundiDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.CHILD_NORMAL,"Oh no, not another human... what do you want then?") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.ASKING, "Oh, do you get humans here often?").also { stage++ } - 1 -> npc(FacialExpression.OLD_NORMAL, "Not that often, no, but sometimes.").also { stage++ } - 2 -> npc(FacialExpression.OLD_NORMAL, "Of course, since you people are too big for dwarven", - "clothes, they typically don't stay very long.").also { stage++ } - 3 -> player(FacialExpression.SUSPICIOUS, "Why don't you make bigger clothes then?").also { stage++ } - 4 -> npc(FacialExpression.OLD_NOT_INTERESTED, "What'd be the point? Besides, I don't make", "these clothes myself.").also { stage++ } - - 5 -> options ("Who makes these clothes then?", "I still want to buy your clothes.", "So do you have any quests for me?").also { stage++ } - 6 -> when(buttonId){ - 1 -> player(FacialExpression.GUILTY, "Who makes the clothes then?").also { stage = 10 } - 2 -> npc.openShop(player) - 3 -> npc(FacialExpression.OLD_NOT_INTERESTED,"Quests? Why would I have any quests?").also { stage = 20 } - - } - - 10 -> npc(FacialExpression.OLD_DEFAULT,"Oh, my sister, she lives in Keldagrim-East.", - "Has a little stall on the other side of", - "the Kelda.").also { stage++ } - 11 -> npc(FacialExpression.OLD_DEFAULT,"If she only worked a little harder, like me,", - "she wouldn't have to live in the sewers of the city.", - "Shame really.").also { stage++ } - 12 -> player("The sewers? Your sister lives in the sewers?").also { stage++ } - 13 -> npc(FacialExpression.OLD_SAD,"Keldagrim-East, such a ghastly place.", - "Not civil, polite and clean like we are in the West.").also { stage++ } - 14 -> player(FacialExpression.SUSPICIOUS, "Uh-huh.").also { stage=99 } - - 20 -> player("Oh, just anything to do would be fine.").also { stage++ } - 21 -> npc(FacialExpression.OLD_NOT_INTERESTED,"No, not right now... maybe I'll have something", - "for you to do later, but nothing at the moment.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AgmundiDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(2161) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/InnKeeperDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/InnKeeperDialogue.kt deleted file mode 100644 index c28cc82c2..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/keldagrim/InnKeeperDialogue.kt +++ /dev/null @@ -1,57 +0,0 @@ -package rs09.game.content.dialogue.region.keldagrim - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class InnKeeperDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - npc(FacialExpression.CHILD_NEUTRAL, "Welcome to the King's Axe inn!", "What can I help you with?").also { stage++ } - } - - 1 -> { - player(FacialExpression.ASKING, "Can I have some beer please?").also { stage++ } - } - - 2 -> { - npc(FacialExpression.CHILD_NORMAL, "Go to the bar downstairs.", "I only deal with residents.").also { stage++ } - } - - 3 -> { - player(FacialExpression.THINKING, "Residents? People live here?").also { stage++ } - } - - 4 -> { - npc(FacialExpression.CHILD_LOUDLY_LAUGHING, "No, just guests that stay the night.").also { stage = 99 } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return InnKeeperDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.INN_KEEPER_2177) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/LegendsGuardDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/LegendsGuardDialogue.kt deleted file mode 100644 index 5d98dd7ca..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/legendsguild/LegendsGuardDialogue.kt +++ /dev/null @@ -1,47 +0,0 @@ -package rs09.game.content.dialogue.region.legendsguild - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * Dialogue for Legends Guards at the Legends Guild - * @author qmqz - */ -@Initializable -class LegendsGuardDialogue(player: Player? = null) : DialoguePlugin(player){ - fun gender (male : String = "sir", female : String = "madam") = if (player.isMale) male else female - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"! ! ! Attention ! ! !") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"Legends Guild Member Approaching").also { stage++ } - 1 -> npc(FacialExpression.FRIENDLY,"Welcome "+ gender() + "!", "I hope you enjoy your time in the Legends Guild.").also { stage = 99 } - - //while doing legend's quest - 10 -> npc(FacialExpression.FRIENDLY,"I hope the quest is going well " + gender() + ".").also { stage = 99 } - - //after the legend's quest is done - 20 -> npc(FacialExpression.FRIENDLY,"Legends Guild Member Approaching!").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return LegendsGuardDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(398, 399) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/ArvelDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/ArvelDialogue.kt deleted file mode 100644 index 25a8e2521..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/ArvelDialogue.kt +++ /dev/null @@ -1,47 +0,0 @@ -package rs09.game.content.dialogue.region.lletya - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Not including quest-related dialogue - */ - -@Initializable -class ArvelDialogue(player: Player? = null) : DialoguePlugin(player){ - - fun gender (male : String = "hero", female : String = "heroine") = if (player.isMale) male else female - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY,"Good day traveller. You are far from home, what brings you here?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "I am a wandering " + gender() + ". I come here in search of adventure.").also { stage++ } - 1 -> npc(FacialExpression.FRIENDLY, "Sounds ghastly, I just want to live in peace.").also { stage++ } - 2 -> playerl(FacialExpression.FRIENDLY, "Unfortunately without people like me, peace doesn't last for long.").also { stage++ } - 3 -> npcl(FacialExpression.FRIENDLY, "True, but then again most adventurers cause as much trouble as they put right.").also { stage++ } - 4 -> player(FacialExpression.FRIENDLY, "You've got a point there... Hmm...").also { stage++ } - 5 -> npc(FacialExpression.FRIENDLY, "Well, good day traveller. And always do the right thing.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ArvelDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.ARVEL_2365) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/DalldavDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/DalldavDialogue.kt deleted file mode 100644 index d40fb783f..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/DalldavDialogue.kt +++ /dev/null @@ -1,48 +0,0 @@ -package rs09.game.content.dialogue.region.lletya - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DalldavDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Can I help you at all?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Yes please. What are you selling?", "Why do you sell this stuff?", "No thanks.").also { stage++ } - 1 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes please. What are you selling?").also { stage = 10 } - 2 -> playerl(FacialExpression.FRIENDLY, "Why do you sell this stuff? The Crystal Bow is so much better.").also { stage = 20 } - 3 -> player(FacialExpression.FRIENDLY, "No thanks.").also { stage = 99 } - } - - 10 -> end().also { npc.openShop(player) } - - 20 -> npcl(FacialExpression.FRIENDLY, "We keep all these old toys to train our children with, but if people will part with coins for them, then they are theirs!").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DalldavDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DALLDAV_2356) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/GoreuDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/GoreuDialogue.kt deleted file mode 100644 index b1e35a2e9..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/GoreuDialogue.kt +++ /dev/null @@ -1,42 +0,0 @@ -package rs09.game.content.dialogue.region.lletya - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class GoreuDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Good day, can I help you?").also { stage++ } - 1 -> playerl(FacialExpression.FRIENDLY, "No thanks I'm just watching the world go by.").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "Well I can think of no better place to do it, it is beautiful here is it not?").also { stage++ } - 3 -> playerl(FacialExpression.FRIENDLY, "Indeed it is.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return GoreuDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GOREU_2363) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/KelynDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/KelynDialogue.kt deleted file mode 100644 index 860653d7b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/KelynDialogue.kt +++ /dev/null @@ -1,43 +0,0 @@ -package rs09.game.content.dialogue.region.lletya - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class KelynDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Huh... Oh sorry, you made me jump. I was miles away, day dreaming.").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "About what may I ask?").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "I was thinking about the crystal spires of Prifddinas.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY, "It must be beautiful, I've only seen the city walls.").also { stage++ } - 4 -> npcl(FacialExpression.FRIENDLY, "I have never seen it, all I know are the stories. I hope that changes one day.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return KelynDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.KELYN_2367) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/MawrthDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/MawrthDialogue.kt deleted file mode 100644 index bd1e37594..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lletya/MawrthDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.lletya - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class MawrthDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY,"Those children are nothing but trouble - if I did not watch them all the time, Seren knows what trouble they would get in to!").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.FRIENDLY, "They look old enough to look after themselves.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "They are only 34 and 38, far too young to be left unsupervised.").also { stage++ } - 2 -> player(FacialExpression.FRIENDLY, "Only!?! How old does that make you?").also { stage++ } - 3 -> npcl(FacialExpression.FRIENDLY, "Has no one told you it is rude to ask a lady her age?").also { stage++ } - 4 -> playerl(FacialExpression.FRIENDLY, "Sorry, I wasn't thinking. Anyway... I'd better stop distracting you.").also { stage++ } - 5 -> npc(FacialExpression.FRIENDLY, "Okay, See you some other time.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return MawrthDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MAWRTH_2366) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/LumbridgeGuideDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/LumbridgeGuideDialogue.kt deleted file mode 100644 index d91132a77..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lumbridge/LumbridgeGuideDialogue.kt +++ /dev/null @@ -1,127 +0,0 @@ -package rs09.game.content.dialogue.region.lumbridge - -import api.isQuestComplete -import api.sendGraphics -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.IronmanMode -import core.game.node.entity.player.link.diary.DiaryType -import core.game.world.map.zone.impl.ModeratorZone -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE - -@Initializable -class LumbridgeGuideDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return LumbridgeGuideDialogue(player) - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - val staff = player.isStaff - val ironman = player.ironmanManager.isIronman - val sheepShearerComplete = isQuestComplete(player, "Sheep Shearer") - val cooksAssistantComplete = isQuestComplete(player, "Cook's Assistant") - - when (stage) { - 0 -> npcl(FacialExpression.FRIENDLY, "Greetings, adventurer. I am Phileas, the Lumbridge Guide. I am here to give information and directions to new players. Do you require any help?").also { stage++ } - 1 -> showTopics( - Topic("Where can I find a quest to go on?", 10), - Topic("What monsters should I fight?", 20), - Topic("Where can I make money?", 30), - Topic("I'd like to know more about security.", 40), - IfTopic("Where can I find a bank?", 50, !staff && !ironman), - IfTopic("More Options...", 100, staff || ironman, skipPlayer = true), - ) - - //More Options... - 100 -> showTopics( - Topic("Where can I find a bank?", 50), - IfTopic("I would like to access the P-Mod room.", 200, staff), - IfTopic("I would like to de-iron.", 300, ironman), - Topic("Go back...", 1, skipPlayer = true) - ) - - //Where can I find a quest? - 10 -> { - if (!cooksAssistantComplete) - npcl(FacialExpression.HALF_THINKING, "You can try talking to the Cook in the Lumbridge Castle. I hear he is always looking for some help.") - else if (!sheepShearerComplete) - npcl(FacialExpression.HALF_THINKING, "You can try talking to Fred the Farmer north-west of here. I hear he is always looking for some help.") - else - npcl(FacialExpression.FRIENDLY, "You are such an accomplished adventurer already; you should be telling me some good quests to go on.") - stage = END_DIALOGUE - } - - //What monsters should I fight? - 20 -> if (player.properties.currentCombatLevel >= 30) { - npcl(FacialExpression.FRIENDLY, "You're strong enough to work out what monsters to fight for yourself now, but the tutors might help you with any questions you have about the skills; they're just south of the general store.") - stage = END_DIALOGUE - } else { - npcl(FacialExpression.FRIENDLY, "There are things to kill all over the place! At your level, you might like to try wandering westwards to the Wizards' Tower or north-west to the Barbarian Village.") - stage++ - } - 21 -> npcl(FacialExpression.FRIENDLY, "Non-player characters usually appear as yellow dots on your mini-map, although there are some that you won't be able to fight, such as myself. Watch out for monsters which are tougher").also { stage++ } - 22 -> npcl(FacialExpression.FRIENDLY, "than you. A monster's combat level is shown next to their 'Attack' option. If that level is coloured green it means the monster is weaker than you. If it is red, it means the monster is tougher than you.").also { stage++ } - 23 -> npcl(FacialExpression.FRIENDLY, "Remember, you will do better if you have better armour and weapons and it's always worth carrying a bit of food to heal yourself.").also { stage = 1 } - - //Where can I make money? - 30 -> npcl(FacialExpression.FRIENDLY, "There are many ways to make money in the game. I would suggest either killing monsters or doing a trade skill such as Smithing or Fishing.").also { stage++ } - 31 -> npcl(FacialExpression.FRIENDLY, "Please don't try to get money by begging off other players. It will make you unpopular. Nobody likes a beggar. It is very irritating to have other players asking for your hard-earned cash.").also { stage = 1 } - - //I'd like to know more about security - 40 -> npcl(FacialExpression.FRIENDLY, "I can tell you about password security, avoiding item scamming and in-game moderation. I can also tell you about a place called the Stronghold of Security, where you can learn more about account security and have a").also { stage++ } - 41 -> { - player.achievementDiaryManager.finishTask(player, DiaryType.LUMBRIDGE, 0, 17) - npcl(FacialExpression.FRIENDLY, "bit of an adventure at the same time. In fact, why don't you just head there instead? It's a lot more fun, I promise. You can find it down the hole in the middle of Barbarian Village to the north-west.") - stage = 1 - } - - //Where can I find a bank? - 50 -> npcl(FacialExpression.FRIENDLY, "You'll find a bank upstairs in Lumbridge Castle - go right to the top!").also { stage = 1 } - - //visit pmod room - 200 -> npcl(FacialExpression.FRIENDLY, "Yes, of course.").also { stage++ } - 201 -> { - end() - if (player.isStaff) - ModeratorZone.teleport(player) - } - - //deiron - 300 -> npcl(FacialExpression.FRIENDLY, "Of course, but first let me give you a word of warning.").also { stage++ } - 301 -> npcl(FacialExpression.FRIENDLY, "Should you choose to step away from the path of the ironman now, you will not have the option to return.").also { stage++ } - 302 -> npcl(FacialExpression.FRIENDLY, "Now I ask you to make sure, are you sure you want to permanently remove ironman mode?").also { stage++ } - 303 -> showTopics( - Topic(FacialExpression.FRIENDLY, "Yes, I'm sure.", 310), - Topic(FacialExpression.FRIENDLY, "No, I've changed my mind.", END_DIALOGUE) - ) - - //yes - deiron - 310 -> npcl(FacialExpression.FRIENDLY, "Very well, let me just check one thing...").also { stage++ } - 311 -> if (player.ironmanManager.mode == IronmanMode.HARDCORE) { - npcl(FacialExpression.WORRIED, "Oh, dear, it's just as I feared. You're a hardcore ironman! My apologies, but there's nothing I can do to help.").also { stage = END_DIALOGUE } - } else { - npcl(FacialExpression.FRIENDLY, "Oh, wonderful. It appears everything is in order. Sit still for a moment...").also { stage++ } - } - 312 -> { - sendGraphics(342, player.location) - sendDialogue("------------------", "The wise old wizard casts a strange spell.", "------------------") - stage++ - } - 313 -> { - player.ironmanManager.mode = IronmanMode.NONE - npcl(FacialExpression.HALF_ASKING, "There, I believe it is done. You should no longer be restricted from the wider world.") - stage = END_DIALOGUE - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.LUMBRIDGE_GUIDE_2244) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BabaYagaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BabaYagaDialogue.kt deleted file mode 100644 index 004239c72..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/BabaYagaDialogue.kt +++ /dev/null @@ -1,55 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Does not include Lunar Diplomacy dialogue - */ - -@Initializable -class BabaYagaDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.ASKING, "Ah, a stranger to our island. How can I help?").also { stage ++ } - 1 -> options("Have you got anything to trade?", "It's a very interesting house you have here.", "I'm good thanks, bye.").also { stage ++ } - - 2 -> when(buttonId) { - 1 -> end().also { npc.openShop(player) } - 2 -> playerl(FacialExpression.ASKING, "It's a very interesting house you have here. Does he have a name?").also { stage = 10 } - 3 -> end() - } - - 10 -> npc(FacialExpression.FRIENDLY, "Why of course. It's Berty.").also { stage++ } - 11 -> player(FacialExpression.THINKING, "Berty? Berty the Chicken leg house?").also { stage++ } - 12 -> npc(FacialExpression.LAUGH, "Yes.").also { stage++ } - 13 -> player(FacialExpression.ASKING, "May I ask why?").also { stage++ } - 14 -> npcl(FacialExpression.LAUGH, "It just has that certain ring to it, don't you think? Beeerteeee!").also { stage++ } - 15 -> player(FacialExpression.HALF_WORRIED, "You're ins...").also { stage++ } - 16 -> npc("Insane? Very.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BabaYagaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BABA_YAGA_4513) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/CabinBoyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/CabinBoyDialogue.kt deleted file mode 100644 index b8cba9294..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/CabinBoyDialogue.kt +++ /dev/null @@ -1,72 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import api.addItemOrDrop -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Must have Lunar Diplomacy completed for the emerald lens - */ - -@Initializable -class CabinBoyDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - if (player.inventory.contains(Items.EMERALD_LENS_9066, 1) || player.bank.contains(Items.EMERALD_LENS_9066, 1)) { - playerl(FacialExpression.FRIENDLY, "So you've plucked up the courage to come and confront that girl!").also { stage = 0 } - } else { - player(FacialExpression.FRIENDLY, "Hi.").also { stage = 20 } - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.CHILD_FRIENDLY, "That I did, that I did!").also { stage++ } - 1 -> player(FacialExpression.ASKING, "And?").also { stage++ } - 2 -> npcl(FacialExpression.CHILD_FRIENDLY, "She turned out to be really nice! She's joining us to become a pirate!").also { stage++ } - 3 -> playerl(FacialExpression.HALF_WORRIED, "Really? And you're not sceptical about this? You know, after what she did last time?").also { stage++ } - 4 -> npc(FacialExpression.CHILD_SUSPICIOUS, "She---has---no---spell---on---me.").also { stage++ } - 5 -> player(FacialExpression.HALF_THINKING, "Huh? Why are you talking like that?").also { stage++ } - 6 -> npc(FacialExpression.CHILD_THINKING, "Like what?").also { stage++ } - 7 -> playerl(FacialExpression.HALF_ASKING, "Like someone else was talking for you. Are you sure she hasn't put a spell on you again? Did she wave a watch in front of your face? You know, tell you to look deep into her eyes?").also { stage++ } - 8 -> npc(FacialExpression.CHILD_SUSPICIOUS, "She---has---no---spell---on---me.").also { stage++ } - 9 -> playerl(FacialExpression.HALF_THINKING, "I think you've been hypnotised. I wonder what happens if I click my fingers?").also { - player.sendChat("*click*").also { stage++ } - } - 10 -> npc(FacialExpression.CHILD_SAD, "*Cluck* *cluck* *bwaarrk*").also { stage++ } - 11 -> npc(FacialExpression.CHILD_SAD, "").also { stage++ } - 12 -> player(FacialExpression.WORRIED, "Oh dear. Oh well, I'm sure you'll learn one day.").also { stage = 99 } - - 20 -> npc(FacialExpression.CHILD_FRIENDLY, "I bet you're after another lens!").also { stage++ } - 21 -> player(FacialExpression.HALF_THINKING, "How could you possibly know that?").also { stage++ } - 22 -> npcl(FacialExpression.CHILD_FRIENDLY, "Hey, I think I'm learning a thing or two from these Moon Clan ladies.").also { stage++ } - 23 -> options("Please", "No thanks").also { stage++ } - 24 -> when (buttonId) { - 1 -> player(FacialExpression.HALF_ASKING, "Oi! I need another lens, boy.").also { stage = 25} - 2 -> player(FacialExpression.SUSPICIOUS, "I think I'll pass. But thanks..").also { stage = 99 } - } - 25 -> npc(FacialExpression.CHILD_FRIENDLY, "Huh, oh ok, I suppose I owe you one.").also { addItemOrDrop(player, Items.EMERALD_LENS_9066, 1) }.also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CabinBoyDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CABIN_BOY_4539) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/MelenaMoonlanderDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/MelenaMoonlanderDialogue.kt deleted file mode 100644 index cd8299d0e..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/MelenaMoonlanderDialogue.kt +++ /dev/null @@ -1,64 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class MelenaMoonlanderDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Hi. Welcome to the general store. How might I help you?").also { stage++ } - - 1 -> options("What can you sell me?", "I have a question...", "I'm good thanks, bye.").also { stage++ } - - 2 -> when (buttonId) { - 1 -> end().also { npc.openShop(player) } - 2 -> player(FacialExpression.HALF_ASKING, "I have a question...").also { stage = 11 } - 3 -> player(FacialExpression.FRIENDLY, "I'm good thanks, bye.").also { stage = 99 } - } - - 11 -> npc(FacialExpression.FRIENDLY, "About magic of course.").also { stage++ } - 12 -> player(FacialExpression.SUSPICIOUS, "Sorry?").also { stage++ } - 13 -> npcl(FacialExpression.FRIENDLY, "I said about magic of course. You know, in response to your question.").also { stage++ } - 14 -> player(FacialExpression.HALF_THINKING, "But I didn't ask anything yet.").also { stage++ } - 15 -> npcl(FacialExpression.FRIENDLY, "Yes, but you were thinking of asking me how I was floating.").also { stage++ } - 16 -> player(FacialExpression.AMAZED, "That's true! How could you possibly know that?").also { stage++ } - 17 -> npc(FacialExpression.HALF_THINKING, "Don't you realise we can read your mind.").also { stage++ } - 18 -> player(FacialExpression.SUSPICIOUS, "Oh, of course. How do you manage to do that?").also { stage++ } - 19 -> npcl(FacialExpression.FRIENDLY, "It's quite simple, everyone has a resonance that is responded to by the moon. This resonance changes depending on what we are thinking. You can tune yourself in to listen to this").also { stage++ } - 20 -> npcl(FacialExpression.FRIENDLY, "resonance with practice - it's a life long quest for the members of the Moon Clan, but its especially easy to read with outsiders like yourself,").also { stage++ } - 21 -> npc(FacialExpression.FRIENDLY, "as you are far louder and unguarded.").also { stage++ } - 22 -> player(FacialExpression.SUSPICIOUS, "I see. I best be careful what I think of then.").also { stage++ } - 23 -> player(FacialExpression.WORRIED, "...").also { stage++ } - 24 -> player(FacialExpression.THINKING, "...").also { stage++ } - 25 -> npc(FacialExpression.DISGUSTED_HEAD_SHAKE, "That's disgusting!").also { stage++ } - 26 -> player(FacialExpression.SAD, "Sorry.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return MelenaMoonlanderDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MELANA_MOONLANDER_4516) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/PaulinePolarisDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/PaulinePolarisDialogue.kt deleted file mode 100644 index ad71d5407..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/PaulinePolarisDialogue.kt +++ /dev/null @@ -1,48 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Does not include Lunar Diplomacy dialogue - */ - -@Initializable -class PaulinePolarisDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.ASKING, "Ah, a stranger to our island. How can I help?").also { stage ++ } - 1 -> playerl(FacialExpression.FRIENDLY, "Well, I've actually come here on a diplomatic mission. I want to try and settle some of the disputes between the Fremenniks and your clan.").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "The Rremenniks? Pah! They are just too ignorant and stubborn to listen to anything we have to say - how can we possibly associate with a race that won't listen?").also { stage++ } - 3 -> playerl(FacialExpression.FRIENDLY, "I think they are very eager to listen, but they feel like you are keeping secrets from them.").also { stage++ } - 4 -> npc(FacialExpression.HALF_THINKING, "Secrets?").also { stage++ } - 5 -> playerl(FacialExpression.HALF_ASKING, "Yes, as in your magic ways. To be honest, I think it is fear of the unknown.").also { stage++ } - 6 -> npcl(FacialExpression.FRIENDLY, "Well, when the day comes that a Fremennik can prove they have the patience and interest in learning our ways, then we will perhaps share our secrets.").also { stage++ } - 7 -> player(FacialExpression.FRIENDLY, "I'm hoping I might be able to achieve that.").also { stage++ } - 8 -> npc(FacialExpression.FRIENDLY, "Good luck. It's far from simple.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return PaulinePolarisDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.PAULINE_POLARIS_4514) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/RimaeSirsalisDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/RimaeSirsalisDialogue.kt deleted file mode 100644 index a701275ae..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/RimaeSirsalisDialogue.kt +++ /dev/null @@ -1,62 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class RimaeSirsalisDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("What can you sell me?", "Do you have any use for suqah teeth or hides?", "It's a very interesting island you have here.", "I'm good thanks, bye.").also { stage++ } - - 1 -> when (buttonId) { - 1 -> end().also { npc.openShop(player) } - 2 -> player(FacialExpression.HALF_ASKING, "Do you have any use for suqah teeth or hides?").also { stage = 5 } - 3 -> npcl(FacialExpression.FRIENDLY, "Why thank you. It's been our haven for a great many generations.").also { stage = 10 } - 4 -> player(FacialExpression.FRIENDLY, "I'm good thanks, bye.").also { stage = 99 } - } - - 5 -> npcl(FacialExpression.FRIENDLY, "Most certainly! The hides are great for making clothes and the teeth are particularly useful for broaches, necklaces and the like. But I won't accept them from anyone.").also { stage = 99 } - - 10 -> playerl(FacialExpression.FRIENDLY, "Everything seems to have a magical feel to it.").also { stage++ } - 11 -> npcl(FacialExpression.FRIENDLY, "Of course. We integrate magic into all areas of our lives. It is a part of everyone, so why deny it? It's best to make the most of this innate gift we have all been given.").also { stage++ } - 12 -> player(FacialExpression.FRIENDLY, "What sort of things do you use your magic for?").also { stage++ } - 13 -> npcl(FacialExpression.FRIENDLY, "Take a look around. We use it in our day to day lives, from making a cup of tea to travelling around the island.").also { stage++ } - 14 -> npcl(FacialExpression.FRIENDLY, "You see our ancestors were the ones that found the first rune essence and put it to use! The various factions were eventually created,").also { stage++ } - 15 -> npcl(FacialExpression.FRIENDLY, "with people having different ideas on how the essence should be used (or not in some cases!)").also { stage++ } - 16 -> player(FacialExpression.FRIENDLY, "What has kept you so secluded on this island?").also { stage++ } - 17 -> npcl(FacialExpression.FRIENDLY, "It may be a bit beyond you, but although magic comes from within, we are all strongly linked to the moon and the").also { stage++ } - 18 -> npc(FacialExpression.FRIENDLY, "effects it has on us cannot be denied!").also { stage++ } - 19 -> player(FacialExpression.FRIENDLY, "It can't?").also { stage++ } - 20 -> npcl(FacialExpression.FRIENDLY, "Of course not. This very island has a great link to our moon, which helps us understand ourselves - especially our dreams,").also { stage++ } - 21 -> npc(FacialExpression.FRIENDLY, "which is the path to understanding magic.").also { stage++ } - 22 -> playerl(FacialExpression.FRIENDLY, "I think I will just have to take your word on that.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return RimaeSirsalisDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.RIMAE_SIRSALIS_4518) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SeleneDialog.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SeleneDialog.kt deleted file mode 100644 index ae8b27c90..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/lunarisle/SeleneDialog.kt +++ /dev/null @@ -1,79 +0,0 @@ -package rs09.game.content.dialogue.region.lunarisle - -import api.teleport -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.TeleportManager -import core.game.world.map.Location -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import java.util.concurrent.Executors -import java.util.concurrent.TimeUnit - -/** - * @author qmqz - */ - -@Initializable -class SeleneDialog(player: Player? = null) : DialoguePlugin(player){ - - private val Rellekka = Location.create(2663, 3644, 0) - private var teled = false - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - if (!teled) { - if (player.inventory.contains(Items.SEAL_OF_PASSAGE_9083, 1) || player.equipment.contains(Items.SEAL_OF_PASSAGE_9083, 1)) { - player(FacialExpression.FRIENDLY, "Can you tell me a bit about your people?").also { stage = 0; } - } else { - player(FacialExpression.FRIENDLY, "Hi, I...").also { stage = 10 } - } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY,"Ok. Like what?").also { stage++ } - 1 -> player(FacialExpression.HALF_ASKING, "How about the values of the Moon clan!").also { stage++ } - 2 -> npcl(FacialExpression.NEUTRAL, "Let me see... We value knowledge of self because it is this that gives us our strength! It is most important!").also { stage++ } - 3 -> playerl(FacialExpression.FRIENDLY, "Well... I know things about myself. I know I like hot chocolate!").also { stage++ } - 4 -> npcl(FacialExpression.LAUGH, "I was meaning something a little deeper than that. We also like to see someone listen. You know how they say a wise man listens?").also { stage++ } - 5 -> player(FacialExpression.HALF_WORRIED, "....").also { stage++ } - 6 -> npc(FacialExpression.HALF_WORRIED, "Did you hear me?").also { stage++ } - 7 -> player(FacialExpression.HALF_WORRIED, ".... I'm listening.").also { stage++ } - 8 -> npc(FacialExpression.HALF_WORRIED, "Most wise.").also { stage++ } - 9 -> player(FacialExpression.HALF_WORRIED, "Huh?").also { stage = 99 } - - 10 -> npc(FacialExpression.ANNOYED, "What are you doing here, Fremennik?!").also { stage++ } - 11 -> player(FacialExpression.WORRIED, "I have a seal of pass...").also { stage++ } - 12 -> npc(FacialExpression.ANNOYED, "No you do not! Begone!").also { stage++ } - 13 -> teleport(player, Rellekka, TeleportManager.TeleportType.LUNAR).also { wait1() } - - 99 -> end() - } - return true - } - - private fun wait1() { - Executors.newSingleThreadScheduledExecutor().schedule({ - if (player.location.isInRegion(Rellekka.regionId)) { - playerl(FacialExpression.WORRIED, "Ooops. Suppose I need a seal of passage when I'm walking around that island.").also { end() } - } else { - wait1() - } - }, 1, TimeUnit.SECONDS) - } - - override fun newInstance(player: Player?): DialoguePlugin { - return SeleneDialog(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.SELENE_4517) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DonalDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DonalDialogue.kt deleted file mode 100644 index 31b19c6e3..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/DonalDialogue.kt +++ /dev/null @@ -1,52 +0,0 @@ -package rs09.game.content.dialogue.region.miscellania - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DonalDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"What do you want?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - player(FacialExpression.THINKING, "Just wondering if you were still here.").also { stage++ } - } - - 1 -> { - npc(FacialExpression.OLD_DEFAULT, "Of course I'm still here.").also { stage++ } - } - - 2 -> { - npc(FacialExpression.OLD_DISTRESSED, "I'm not going near that crack in the wall again.").also { stage++ } - } - - 3 -> { - npc(FacialExpression.OLD_DISTRESSED, "Rock falls and so on are fine, ", "but sea monsters in caves - never!").also { stage = 99 } - } - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DonalDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DONAL_3938) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FerdDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FerdDialogue.kt deleted file mode 100644 index a3d19afb5..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FerdDialogue.kt +++ /dev/null @@ -1,66 +0,0 @@ -package rs09.game.content.dialogue.region.miscellania - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class FerdDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.OLD_DEFAULT,"Good day, sir.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - player(FacialExpression.THINKING, "What are you doing down here?.").also { stage++ } - } - - 1 -> { - npc(FacialExpression.OLD_DEFAULT, "Shoring up the walls.").also { stage++ } - } - - 2 -> { - player(FacialExpression.ASKING, "What does that do?").also { stage++ } - } - - 3 -> { - npc(FacialExpression.OLD_DEFAULT, "Stops them falling down.").also { stage = 99 } - } - - 4 -> { - player(FacialExpression.ASKING, "Oh, I see.").also { stage++ } - } - - 5 -> { - npc(FacialExpression.OLD_NOT_INTERESTED, "Aye.", - "If you want to chatter, you'd better talk to ", - "Thorodin over there. I'm working.").also { stage = 99 } - } - - 6 -> { - player(FacialExpression.ASKING, "Okay then.").also { stage++ } - } - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return FerdDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FERD_3937) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FishmongerMiscDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FishmongerMiscDialogue.kt deleted file mode 100644 index 4455ed73a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/FishmongerMiscDialogue.kt +++ /dev/null @@ -1,42 +0,0 @@ -package rs09.game.content.dialogue.region.miscellania - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class FishmongerMiscDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Throne of Miscellania")) { - npcl(FacialExpression.FRIENDLY,"Greetings, Sir. Get your fresh fish here! I've heard that the Etceterian fish is stored in a cow shed.").also { stage = 0 } - } else { - npcl(FacialExpression.FRIENDLY,"Greetings, Your Highness. Have some fresh fish! I've heard that the Etceterian fish is stored in a cow shed.").also { stage = 0 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> end().also { npc.openShop(player) } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return FishmongerMiscDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FISHMONGER_1393) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/HallaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/HallaDialogue.kt deleted file mode 100644 index 162838cac..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/HallaDialogue.kt +++ /dev/null @@ -1,70 +0,0 @@ -package rs09.game.content.dialogue.region.miscellania - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class HallaDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Welcome to Miscellania's first clothing store!", "We sell clothing made especially for Fremenniks", "and Dwarves.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - npc(FacialExpression.ASKING, "Can I help you with anything, your Royal Highness?").also { stage++ } - } - - 1 -> { - options("I'd like to look at what you have for sale.", "No thank you, I'm fine.", "What's it like living down here?").also { stage++ } - } - - 2 -> when(buttonId){ - 1 -> { - player(FacialExpression.FRIENDLY, "I'd like to look at what you have for sale.").also { stage = 10 } - } - - 2 -> { - player(FacialExpression.NEUTRAL, "No thank you, I'm fine.").also { stage = 99 } - } - - 3 -> { - player(FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } - } - } - - 10 -> { - end().also { npc.openShop(player) } - } - - 20 -> { - npc(FacialExpression.NEUTRAL, "It's very spacious down here.", "One of the dwarves said that the caves go on for miles!").also { stage++ } - } - 21 -> { - npc(FacialExpression.NEUTRAL, "The only problem I find is that the lighting's not very good,", "which means I make mistakes when cutting cloth.").also { stage = 99 } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return HallaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.HALLA_3921) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/RunaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/RunaDialogue.kt deleted file mode 100644 index e222ade38..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/miscellania/RunaDialogue.kt +++ /dev/null @@ -1,77 +0,0 @@ -package rs09.game.content.dialogue.region.miscellania - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class RunaDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Would you like to try some fine Miscellanian ale,", "your Royal Highness?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - npc(FacialExpression.ASKING, "Well I say Miscellanian, but it's actually brewed", "on the mainland.").also { stage++ } - } - - 1 -> { - npc(FacialExpression.FRIENDLY, "Would you like to try some anyway?").also { stage++ } - } - - 2 -> { - options("Yes, please.", "No, thank you.", "What's it like living down here?").also { stage++ } - } - - 3 -> when(buttonId){ - 1 -> { - player(FacialExpression.ASKING, "Yes please.").also { stage = 10 } - } - - 2 -> { - player(FacialExpression.NEUTRAL, "No thank you.").also { stage = 99 } - } - - 3 -> { - player(FacialExpression.ASKING, "What's it like living down here?").also { stage = 20 } - } - } - - 10 -> { - end().also { npc.openShop(player) } - } - - 20 -> { - npc(FacialExpression.HALF_WORRIED, "Business is booming!").also { stage++ } - } - - 21 -> { - npc(FacialExpression.HALF_WORRIED, "Now, if only I hadn't taken a loss to the beer I sold", "to those teenagers.").also { end() } - } - - 99 -> { - end() - } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return RunaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.RUNA_3920) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/mosleharmless/CharleyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/mosleharmless/CharleyDialogue.kt deleted file mode 100644 index 8c8e5041c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/mosleharmless/CharleyDialogue.kt +++ /dev/null @@ -1,77 +0,0 @@ -package rs09.game.content.dialogue.region.mosleharmless - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class CharleyDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - if (player.inventory.contains(Items.BOOK_O_PIRACY_7144, 1)) { - npc(FacialExpression.FRIENDLY, "I got fish, you got gold?").also { stage = 10 } - } else { - player(FacialExpression.FRIENDLY, "Hello!").also { stage = 0 } - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "Arr? Be ye wantin' te go on account with our gang o' fillibusters?").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "The powder monkey be takin' a caulk after gettin' rowdy on bumboo, so there be plenty of room for ye.").also { stage++ } - 2 -> player(FacialExpression.FRIENDLY, "Riiiiight...").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY, "I'll just be over here if you need me.").also { stage = 99 } - - 10 -> options("Yes.", "Yes, but I don't want your fish.", "What happened to your legs?").also { stage++ } - - 11 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Yes.").also { stage = 80 } - 2 -> player(FacialExpression.FRIENDLY, "Yes, but I don't want your fish.").also { stage = 20 } - 3 -> player(FacialExpression.HALF_ASKING, "What happened to your legs?").also { stage = 30 } - } - - 20 -> npcl(FacialExpression.FRIENDLY, "Then what are ye doin' in a fish shop? Looking fer work?").also { stage++ } - 21 -> player(FacialExpression.FRIENDLY, "Possibly, do you have any quests?").also { stage++ } - 22 -> npcl(FacialExpression.HALF_ASKING, "I dunno, I haven't gone through the last catch yet. What sort of a fish is it?").also { stage++ } - 23 -> player(FacialExpression.FRIENDLY, "A quest isn't a type of fish!").also { stage++ } - 24 -> npcl(FacialExpression.FRIENDLY, "Then I don't have any, and yer wastin' my time!").also { stage = 99 } - - 30 -> npcl(FacialExpression.FRIENDLY, "Ye wanna know what happened to my legs?").also { stage++ } - 31 -> npcl(FacialExpression.FRIENDLY, "Yer too much of a lilly-livered, hat wearin' landlubber to know what happened to my legs!").also { stage++ } - 32 -> playerl(FacialExpression.FRIENDLY, "No I'm not! I've seen some freaky stuff! I can take it!").also { stage++ } - 33 -> npcl(FacialExpression.FRIENDLY, "All right, lad, since yer so insistent, I'll tell ye.").also { stage++ } - 34 -> npcl(FacialExpression.FRIENDLY, "See, I was clingin' onto a barrel, me ship havin' just had an encounter with this albatross.").also { stage++ } - 35 -> npcl(FacialExpression.FRIENDLY, "The sea was thrashin' and wild, but not so wild that I didn't see the fins of some sharks closin' in on me.").also { stage++ } - 36 -> npcl(FacialExpression.FRIENDLY, "I managed to yank a sliver of wood from the barrel just as one of them grabbed me from below, but I slipped down the things throat by about two feet before I managed te kill it.").also { stage++ } - 37 -> player(FacialExpression.FRIENDLY, "How did you survive?").also { stage++ } - 38 -> npcl(FacialExpression.FRIENDLY, "A passin' ship saw the sharks and knew there would be survivors in the water. They sent a longboat and picked me up, but not before the sharks had taken off my legs.").also { stage++ } - 39 -> npcl(FacialExpression.FRIENDLY, "And that lad is why they call me two feet Charley, because they found me jammed two feet down a shark's throat.").also { stage++ } - 40 -> player(FacialExpression.DISGUSTED, "I think I'm gonna be sick...").also { stage++ } - 41 -> npcl(FacialExpression.FRIENDLY, "I knew ye couldn't handle the truth!").also { stage = 99 } - - 80 -> end().also { npc.openShop(player) } - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CharleyDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CHARLEY_3161) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/FridleifShieldsonDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/FridleifShieldsonDialogue.kt deleted file mode 100644 index c3e46ded2..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/FridleifShieldsonDialogue.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class FridleifShieldsonDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return FridleifShieldsonDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY, "Greetings!") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "Hello!").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FRIDLEIF_SHIELDSON_5505) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/GunnarHoldstromDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/GunnarHoldstromDialogue.kt deleted file mode 100644 index a8a241124..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/GunnarHoldstromDialogue.kt +++ /dev/null @@ -1,34 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class GunnarHoldstromDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return GunnarHoldstromDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.HAPPY, "Ah, isn't it a lovely day?") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.ASKING, "It's not bad. What puts you in such a good mood?").also { stage++ } - 1 -> npcl(FacialExpression.HAPPY, "Oh, I just love my job. The smell of the sea breeze, the smell of the arctic pine sap, the smell of the yaks. I find it all so bracing.").also { stage++ } - 2 -> playerl(FacialExpression.ASKING, "Bracing? Hmmm. I think I might have chosen a different word.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.GUNNAR_HOLDSTROM_5511) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/JofridrMordstatterDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/JofridrMordstatterDialogue.kt deleted file mode 100644 index ea658b0cd..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/JofridrMordstatterDialogue.kt +++ /dev/null @@ -1,47 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class JofridrMordstatterDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return JofridrMordstatterDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.NEUTRAL, "Hello there. Would you like to see the goods I have for sale?") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when (stage) { - 0 -> options("Yes please, Jofridr.", "No thank you, Jofridr.", "Why do you have so much wool in your store?").also { stage++ } - 1 -> when (buttonId) { - 1 -> playerl(FacialExpression.NEUTRAL, "Yes please, Jofridr.").also { stage = END_DIALOGUE }.also { npc.openShop(player) } - 2 -> playerl(FacialExpression.NEUTRAL, "No thank you, Jofridr.").also { stage = 5 } - 3 -> playerl(FacialExpression.THINKING, "Why do you have so much wool in your store? I haven't seen any sheep anywhere.").also { stage = 11} - } - 5 -> npcl(FacialExpression.NEUTRAL,"Fair thee well.").also { stage = END_DIALOGUE } - - 11 -> npcl(FacialExpression.FRIENDLY,"Ah, I have contacts on the mainland. I have a sailor friend who brings me crates of wool on a regular basis.").also { stage++ } - 12 -> playerl(FacialExpression.ASKING,"What do you trade for it?").also { stage++ } - 13 -> npcl(FacialExpression.FRIENDLY,"Rope of course! What else can we sell? Fish would go off before it got so far south.").also { stage++ } - 14 -> playerl(FacialExpression.ASKING,"Where does all this rope go?").also { stage++ } - 15 -> npcl(FacialExpression.THINKING,"Err, I don't remember the name of the place very well. Dreinna? Drennor? Something like that.").also { stage++ } - 16 -> playerl(FacialExpression.NEUTRAL,"That's very interesting. Thanks Jofridr.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.JOFRIDR_MORDSTATTER_5509) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/KjedeligUppsenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/KjedeligUppsenDialogue.kt deleted file mode 100644 index f396415aa..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/KjedeligUppsenDialogue.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class KjedeligUppsenDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return KjedeligUppsenDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.NEUTRAL, "I'm guarding the king, I cannot speak.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.NEUTRAL, "Sorry.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.KJEDELIG_UPPSEN_5518) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/LisseIsaaksonDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/LisseIsaaksonDialogue.kt deleted file mode 100644 index dd24b0e1b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/LisseIsaaksonDialogue.kt +++ /dev/null @@ -1,38 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class LisseIsaaksonDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return LisseIsaaksonDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY, "Hello, visitor!") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.ASKING, "Hello. What are you up to?").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "Ah, I was about to collect some yak's milk to make yak cheese.").also { stage++ } - 2 -> playerl(FacialExpression.HALF_WORRIED, "Eughr! Though I am curious. Can I try some?").also { stage++ } - 3 -> npcl(FacialExpression.SAD, "Sorry, no. The last outlander who ate my cheese was ill for a month.").also { stage++ } - 4 -> playerl(FacialExpression.ASKING, "So why don't you get ill as well?").also { stage++ } - 5 -> npcl(FacialExpression.FRIENDLY, "Well, we eat yak milk products every day, from when we're born. So I suppose we're used to it. Anyway I should stop yakking - haha - and get on with my work.").also { stage++ } - 6 -> playerl(FacialExpression.HAPPY, "I'm glad to see that puns are common everywhere in Gielinor; even here.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.LISSE_ISAAKSON_5513) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/MortenHoldstromDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/MortenHoldstromDialogue.kt deleted file mode 100644 index c1dd5c240..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/MortenHoldstromDialogue.kt +++ /dev/null @@ -1,38 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class MortenHoldstromDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return MortenHoldstromDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.NEUTRAL, "Good day to you.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.ASKING, "Hello. What are you up to?").also { stage++ } - 1 -> npcl(FacialExpression.HAPPY, "Ah, today is a surströmming day! The herring I buried six months ago is ready to be dug up.").also { stage++ } - 2 -> playerl(FacialExpression.DISGUSTED, "Eughr! What are you going to do with it?").also { stage++ } - 3 -> npcl(FacialExpression.HAPPY, "Eat it, of course! It will be fermented just-right by now.").also { stage++ } - 4 -> playerl(FacialExpression.ASKING, "Fermented? You eat rotten fish?").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY, "Hmmm, tasty. I'm guessing you don't want to come round and try it?").also { stage++ } - 6 -> playerl(FacialExpression.ANNOYED, "You guess correctly.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.MORTEN_HOLDSTROM_5510) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/SlugHemliggsenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/SlugHemliggsenDialogue.kt deleted file mode 100644 index 418b55d14..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/SlugHemliggsenDialogue.kt +++ /dev/null @@ -1,31 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class SlugHemliggsenDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return SlugHemliggsenDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.WORRIED, "Shhh. Go away. I'm not allowed to talk to you.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - playerl(FacialExpression.ANNOYED, "Fine, whatever ...") - stage = END_DIALOGUE - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.SLUG_HEMLIGSSEN_5520) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/ThakkradSigmundsonDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/ThakkradSigmundsonDialogue.kt deleted file mode 100644 index 37eaa75dd..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/ThakkradSigmundsonDialogue.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class ThakkradSigmundsonDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return ThakkradSigmundsonDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.FRIENDLY, "Greetings! I can cure your Yak Hides if you'd like!") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "Good to know!").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.THAKKRAD_SIGMUNDSON_5506) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/TrogenKonungardeDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/TrogenKonungardeDialogue.kt deleted file mode 100644 index 244e9f499..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/neitiznot/TrogenKonungardeDialogue.kt +++ /dev/null @@ -1,32 +0,0 @@ -package rs09.game.content.dialogue.region.neitiznot - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class TrogenKonungardeDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return TrogenKonungardeDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.NEUTRAL, "I'm guarding the king, I cannot speak.") - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.NEUTRAL, "Sorry.").also { stage = END_DIALOGUE } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.TROGEN_KONUNGARDE_5519) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/BeefyBurnsDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/BeefyBurnsDialogue.kt deleted file mode 100644 index ef5d99fd6..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/BeefyBurnsDialogue.kt +++ /dev/null @@ -1,43 +0,0 @@ -package rs09.game.content.dialogue.region.piratescove - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class BeefyBurnsDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.HALF_ASKING, "What are you cooking?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.LAUGH, "My speciality! What else could I be cooking?").also { stage++ } - 1 -> player(FacialExpression.THINKING, "Ok, and your speciality is...?").also { stage++ } - 2 -> npcl(FacialExpression.LAUGH, "Boiled shark guts with a hint of rosemary and a dash of squid ink.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY,"I think I'll stick to making my own food.").also { stage++ } - 4 -> npc(FacialExpression.FRIENDLY, "Your loss!").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BeefyBurnsDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BEEFY_BURNS_4541) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/DaveyBoyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/DaveyBoyDialogue.kt deleted file mode 100644 index aa1a341c8..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/DaveyBoyDialogue.kt +++ /dev/null @@ -1,51 +0,0 @@ -package rs09.game.content.dialogue.region.piratescove - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class DaveyBoyDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when ((1..2).random()) { - 1 -> playerl(FacialExpression.HALF_ASKING, "What does it take to become first mate on a ship?").also { stage = 0 } - 2 -> npcl(FacialExpression.ANNOYED, "It is customary when stowing away on a vessel to not introduce yourself to the Captains First Mate, oh foolish one.").also { stage = 10 } - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.LAUGH, "Good question. We have a diplomatic consession at the turn of the financial year. Said pirate is chosen should the existing mate be absent without leave.").also { stage++ } - 1 -> playerl(FacialExpression.THINKING, "I had no idea. I always figured it was all about popularity.").also { stage++ } - 2 -> npc(FacialExpression.FRIENDLY, "It is. I'm just pulling your leg.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY,"Oh....").also { stage = 99 } - - 10 -> player(FacialExpression.ANNOYED, "Hey! I'm not a stowaway!").also { stage++ } - 11 -> player(FacialExpression.ANNOYED, "That Lokar guy invited me aboard...").also { stage++ } - 12 -> npcl(FacialExpression.FRIENDLY, "I see. Well, don't distract me as I'm making preparations for departure.").also { stage++ } - 13 -> npcl(FacialExpression.FRIENDLY, "Try not to distract any of the crew either, Zamorak knows it's hard enough to get them to do any work around here without strangers wandering round the ship asking them inane questions.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DaveyBoyDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FIRST_MATE_DAVEY_BOY_4543) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/EagleEyeShultzDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/EagleEyeShultzDialogue.kt deleted file mode 100644 index c250ac646..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/EagleEyeShultzDialogue.kt +++ /dev/null @@ -1,42 +0,0 @@ -package rs09.game.content.dialogue.region.piratescove - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class EagleEyeShultzDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - playerl(FacialExpression.HALF_ASKING, "What do you do for fun on this ship? You know, when you're not doing pirate stuff.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.FRIENDLY, "All sorts! Hide and seek, pin the patch on the pirate, walk the plank!").also { stage++ } - 1 -> playerl(FacialExpression.WORRIED, "What a life! Wait a minute. 'Walk the plank'? Surely that's a bit dangerous?").also { stage++ } - 2 -> npcl(FacialExpression.LAUGH, "Well of course, but where's the fun without a few deaths?").also { stage++ } - 3 -> player(FacialExpression.HALF_THINKING,"I think I'll stick to Runelink.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return EagleEyeShultzDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.EAGLE_EYE_SHULTZ_4542) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/LecherousLeeDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/LecherousLeeDialogue.kt deleted file mode 100644 index 8a4e9c5be..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/piratescove/LecherousLeeDialogue.kt +++ /dev/null @@ -1,107 +0,0 @@ -package rs09.game.content.dialogue.region.piratescove - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class LecherousLeeDialogue(player: Player? = null) : DialoguePlugin(player){ - - private val conversations = arrayOf (0, 10, 13, 17, 21, 27, 31, 36, 43, 52) - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hello.").also { stage = conversations.random() } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.FRIENDLY, "So how's life as a pirate?").also { stage++ } - 1 -> npcl(FacialExpression.LAUGH, "What kind of question is that? How's life as a... I dunno. Whatever it is that you do for a living.").also { stage++ } - 2 -> player(FacialExpression.FRIENDLY,"I'm a freelance troubleshooter.").also { stage++ } - 3 -> npc(FacialExpression.FRIENDLY, "What does that entail then?").also { stage++ } - 4 -> playerl(FacialExpression.FRIENDLY,"Mostly killing things for money and delivering items around the planet for people.").also { stage++ } - 5 -> player(FacialExpression.FRIENDLY,"I collect stuff.").also { stage++ } - 6 -> npc(FacialExpression.FRIENDLY, "So how's that life?").also { stage++ } - 7 -> player(FacialExpression.FRIENDLY,"Can't complain, can't complain...").also { stage++ } - 8 -> npc(FacialExpression.FRIENDLY, "Well, there you go.").also { stage = 99 } - - 10 -> player(FacialExpression.FRIENDLY, "Aren't you a little short for a pirate?").also { stage++ } - 11 -> npcl(FacialExpression.LAUGH, "My mother was a gnome. Apparently it was a very painful birth.").also { stage++ } - 12 -> player(FacialExpression.FRIENDLY,"More info than I wanted, thanks!").also { stage = 99 } - - 13 -> npcl(FacialExpression.FRIENDLY, "Sorry, can't stop, the Captain will have my guts for garters if he catches me slacking off talking to the stowaway.").also { stage++ } - 14 -> player(FacialExpression.FRIENDLY,"I'm not a stowaway! I was invited aboard!").also { stage++ } - 15 -> npcl(FacialExpression.FRIENDLY, "Yeah, whatever guy, it doesn't really matter who you are I'll get in trouble!").also { stage = 99 } - - 17 -> playerl(FacialExpression.FRIENDLY, "You know, I've always wondered what life as a pirate actually entails.").also { stage++ } - 18 -> npcl(FacialExpression.LAUGH, "Well, at the moment it mostly involves being asked random questions by a stowaway.").also { stage++ } - 19 -> playerl(FacialExpression.FRIENDLY,"I'm not a stowaway! I was invited aboard! By Lokar! Ask him!").also { stage++ } - 20 -> npcl(FacialExpression.FRIENDLY, "Hey, whatever pal. Just make sure the captain doesn't catch you, pirates don't like stowaways much.").also { stage = 99 } - - 21 -> npcl(FacialExpression.LAUGH, "Ah, good day to you sirrah! Your face is unfamiliar, did you perhaps join us aboard the ship at Lunar Isle?").also { stage++ } - 22 -> playerl(FacialExpression.FRIENDLY,"No, Lokar offered me a lift in Rellekka actually.").also { stage++ } - 23 -> npcl(FacialExpression.FRIENDLY, "Oh, really? You don't look like a Fremennik to me!").also { stage++ } - 24 -> playerl(FacialExpression.FRIENDLY,"Well... I kind of am, and I kind of aren't. It's a long story.").also { stage++ } - 25 -> npcl(FacialExpression.FRIENDLY, "Sorry I don't have time to hear it then! See you around young fremennik-who-is-not-really-a- fremennik!").also { stage++ } - 26 -> playerl(FacialExpression.FRIENDLY,"'Bye.").also { stage = 99 } - - 27 -> player(FacialExpression.FRIENDLY, "Brrrr! Its cold up here!").also { stage++ } - 28 -> npcl(FacialExpression.LAUGH, "You think this is cold? Up by Acheron it gets so cold that when you talk you see the words freeze in the air in front of you!").also { stage++ } - 29 -> player(FacialExpression.FRIENDLY,"REALLY?").also { stage++ } - 30 -> npcl(FacialExpression.FRIENDLY, "Nah, not really. I was exaggerating for humourous effect. It is very very cold though!").also { stage = 99 } - - - 31 -> npc(FacialExpression.LAUGH, "Hello to you too.").also { stage++ } - 32 -> playerl(FacialExpression.FRIENDLY,"Yar! We be pirates, yar! Avast, ye scurvy land-lubbing lychee!").also { stage++ } - 33 -> npcl(FacialExpression.FRIENDLY, "Please don't talk like that, it is extremely irritating.").also { stage++ } - 34 -> npcl(FacialExpression.FRIENDLY, "Also, please don't call me a lychee, whatever that may be.").also { stage++ } - 35 -> player(FacialExpression.FRIENDLY,"Oh. Okay. Sorry.").also { stage = 99} - - - 36 -> npc(FacialExpression.LAUGH, "ARGH!", "SOUND THE ALARM!", "STOWAWAY ON BOARD!", "STOWAWAY ON BOARD!").also { stage++ } - 37 -> player(FacialExpression.FRIENDLY,"No! I'm not a stowaway! Honest! I was invited here!").also { stage++ } - 38 -> npc(FacialExpression.FRIENDLY, "Oh, sorry, my mistake then.").also { stage++ } - 39 -> npcl(FacialExpression.FRIENDLY, "You must admit you do look a lot like a stowaway though.").also { stage++ } - 40 -> player(FacialExpression.FRIENDLY,"Why, what do they usually look like?").also { stage++ } - 41 -> npc(FacialExpression.FRIENDLY, "Erm... I've never actually met one...").also { stage++ } - 42 -> player(FacialExpression.FRIENDLY,"Okay then...").also { stage = 99 } - - 43 -> npc(FacialExpression.LAUGH, "Hello.").also { stage++ } - 44 -> player(FacialExpression.FRIENDLY,"So... You're a pirate, huh?").also { stage++ } - 45 -> npcl(FacialExpression.FRIENDLY, "It's what it says on my pay-packet at the end of the month.").also { stage++ } - 46 -> player(FacialExpression.FRIENDLY,"How's that working out for you?").also { stage++ } - 47 -> npcl(FacialExpression.FRIENDLY, "Pretty good so far. All the grog and loot that we can plunder, plus full medical including dental.").also { stage++ } - 48 -> player(FacialExpression.FRIENDLY,"You mean you have insurance?").also { stage++ } - 49 -> npcl(FacialExpression.FRIENDLY, "Not as such. If any of us get sick we kidnap a doctor and don't let him go until we're better.").also { stage++ } - 50 -> npcl(FacialExpression.FRIENDLY, "You'd be surprised what an incentive for expert health care that is.").also { stage++ } - 51 -> player(FacialExpression.FRIENDLY,"I can imagine.").also { stage = 99 } - - 52 -> npc(FacialExpression.LAUGH, "Hello there. So what brings you aboard the Lady Zay?").also { stage++ } - 53 -> playerl(FacialExpression.FRIENDLY,"Well, I was planning on visiting the Moon Clan, but I have to say your ship is very impressive.").also { stage++ } - 54 -> npcl(FacialExpression.FRIENDLY, "Aye, she's a beauty alright! The Lady Zay has been my home for many hard months, through storm and sun, and she always gets us to here we were headed!").also { stage++ } - 55 -> playerl(FacialExpression.FRIENDLY,"Yes, she's certainly one of the finest boats I've seen on my travels!").also { stage++ } - 56 -> npc(FacialExpression.FRIENDLY, "That she is lad, that she is.").also { stage = 99 } - - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return LecherousLeeDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.LECHEROUS_LEE_4556) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheHagDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheHagDialogue.kt deleted file mode 100644 index c699dde4f..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheHagDialogue.kt +++ /dev/null @@ -1,49 +0,0 @@ -package rs09.game.content.dialogue.region.pollnivneach - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AliTheHagDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Good day, old hag.") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.LAUGH,"Old hag indeed! I have a name you know!").also { stage++ } - 1 -> player(FacialExpression.THINKING,"Let me guess it wouldn't be Ali would it?").also { stage++ } - 2 -> npc(FacialExpression.ANNOYED,"Well how else would you abbreviate Alice then?", "And no, you can't call me Al!").also { stage++ } - 3 -> npc( - FacialExpression.ASKING,"Now what do you want from the Old hag of Pollnivneach?", - "To hex someone? Power, beauty, eternal youth", "or something else drab like that?").also { stage++ } - 4 -> player(FacialExpression.HALF_GUILTY,"Actually none of those, I'm new in town and", "I just wanted to get to know the locals.").also { stage++ } - 5 -> npc( - FacialExpression.ANNOYED,"I'm busy brewing potions, so if you ", - "disturb me again without reason,","I will turn you into a frog!").also { stage++ } - 6 -> player(FacialExpression.SCARED,"Oh I'm sorry I won't let it happen again.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheHagDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1871) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheMayorDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheMayorDialogue.kt deleted file mode 100644 index 42866d937..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/pollnivneach/AliTheMayorDialogue.kt +++ /dev/null @@ -1,59 +0,0 @@ -package rs09.game.content.dialogue.region.pollnivneach - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * @author qmqz - */ - -@Initializable -class AliTheMayorDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc( - FacialExpression.FRIENDLY,"Welcome adventurer to the town of Pollnivneach,", - "the gateway to Menaphos and Al-Kharid. My name is Ali", - "and I'm the mayor of this town.", - "I hope you enjoy your stay here.") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player( - FacialExpression.FRIENDLY, "Thank you.", - "That is the warmest welcome I've had anywhere", - "for a while at least. People generally treat", - "travelling adventurers with suspicion.").also { stage++ } - 1 -> npc( - FacialExpression.FRIENDLY,"All are welcome here, such is the way", - "of things in border regions.", - "Now more than ever I suppose.").also { stage++ } - 2 -> player(FacialExpression.FRIENDLY,"What do you mean by that?").also { stage++ } - 3 -> npc(FacialExpression.FRIENDLY,"There's trouble in town, and a lot of ", "villagers have left as a result.").also { stage++ } - 4 -> player(FacialExpression.FRIENDLY,"I'm looking for someone called Ali.").also { stage++ } - 5 -> npc(FacialExpression.FRIENDLY,"I doubt that's easy in Pollnivneach.").also { stage++ } - 6 -> player(FacialExpression.FRIENDLY,"Well can you help me?").also { stage++ } - 7 -> npc( - FacialExpression.FRIENDLY,"I'm more than a little busy at the moment, ", - "I'm sure there are plenty of people ", "in town who could help you.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AliTheMayorDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1870) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BjornAndEldgrimDialogues.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BjornAndEldgrimDialogues.kt deleted file mode 100644 index 82257325a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BjornAndEldgrimDialogues.kt +++ /dev/null @@ -1,52 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class BjornAndEldgrimDialogues(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - player(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 } - } else if (isQuestComplete(player, "Fremennik Trials")) { - npc(FacialExpression.DRUNK, "Hey! Itsh you again! Whatshyerfashe!").also { stage = 10 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npcl(FacialExpression.DRUNK, "Hey! scheck it out! Itsh an outerlandub! Yer shud go shpeak to the chieftain!").also { stage++ } - 1 -> player(FacialExpression.ASKING, "The who?").also { stage++ } - 2 -> npcl(FacialExpression.DRUNK, "That guy over there by that stuff! (hic) Yeh, abshoultely! He's da bosh!").also { stage = END_DIALOGUE } - - 10 -> player(FacialExpression.ASKING, "${player.name}?").also { stage++ } - 11 -> npcl(FacialExpression.DRUNK, "Nah nah nah, not them, the other one, whatshyerfashe!").also { stage++ } - 12 -> player(FacialExpression.ASKING, "${player.getAttribute("fremennikname","fremmyname")}?").also { stage++ } - 13 -> npc(FacialExpression.DRUNK, "Thatsh what I said diddle I?").also { stage++ } - 14 -> player(FacialExpression.ASKING, "Um.... okay. I'll leave you to your drinking.").also { stage++ } - 15 -> npc(FacialExpression.DRUNK, "Thanksh pal! You're alright!").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BjornAndEldgrimDialogues(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BJORN_1284, NPCs.ELDGRIM_1285) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BlaninDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BlaninDialogue.kt deleted file mode 100644 index 690f222f0..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/BlaninDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class BlaninDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - player(FacialExpression.FRIENDLY, "Good day.").also { stage = 0 } - } else { - player(FacialExpression.FRIENDLY, "That's one less thing to worry about.").also { stage = 10 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY, "Good day to you, sir.").also { stage = END_DIALOGUE } - 10 -> npc(FacialExpression.FRIENDLY, "Glad I could help.").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BlaninDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BLANIN_2940) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/DronDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/DronDialogue.kt deleted file mode 100644 index 62c4a0c72..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/DronDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class DronDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Making History")) { - player(FacialExpression.FRIENDLY, "Excuse me.").also { stage = 0 } - } else { - player(FacialExpression.FRIENDLY, "Excuse me.").also { stage = 10 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.ANNOYED, "Leave me or I'll destroy you!").also { stage = END_DIALOGUE } - 10 -> npc(FacialExpression.ANNOYED, "You have your answers, now go away!").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return DronDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.DRON_2939) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/IngridHradsonDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/IngridHradsonDialogue.kt deleted file mode 100644 index 885249b47..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/IngridHradsonDialogue.kt +++ /dev/null @@ -1,49 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class IngridHradsonDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - npcl(FacialExpression.ANNOYED, "Outlander, I have work to be getting on with... Please stop bothering me.").also { stage = END_DIALOGUE } - } else if (isQuestComplete(player, "Fremennik Trials") && !isQuestComplete(player, "Olaf's Quest")) { - npc(FacialExpression.FRIENDLY, "Good afternoon! How do you like our village?").also { stage = 0 } - } else if (isQuestComplete(player, "Fremennik Trials") && isQuestComplete(player, "Olaf's Quest")) { - npc(FacialExpression.ASKING, "Hello again! Have you any word from my husband?").also { stage = 10 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "It's lovely. You have a fine collection of goats.").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "We polish them every day to get them nice and clean.").also { stage = END_DIALOGUE } - - 10 -> playerl(FacialExpression.HALF_GUILTY, "Err, no, not yet. It takes a while for the messages to reach me you know.").also { stage++ } - 11 -> npcl(FacialExpression.FRIENDLY, "Well, when you do, tell him we'll be more than happy to see him again.").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return IngridHradsonDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.INGRID_HRADSON_3696) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/LonghallBouncerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/LonghallBouncerDialogue.kt deleted file mode 100644 index f505a2d6f..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/LonghallBouncerDialogue.kt +++ /dev/null @@ -1,44 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class LonghallBouncerDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - npcl(FacialExpression.ANNOYED, "Hey, outerlander. You can't go through there. Talent only, backstage.").also { stage = END_DIALOGUE } - } else{ - npcl(FacialExpression.ANNOYED, "You can't go through there. Talent only, backstage.").also { stage = 0 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.PANICKED, "But I'm a Bard!").also { stage++ } - 1 -> npcl(FacialExpression.FRIENDLY, "No you're not. I saw your performance. I was paid well to keep you from ever setting foot on stage here again.").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return LonghallBouncerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.LONGHALL_BOUNCER_1278) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/ReesoDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/ReesoDialogue.kt deleted file mode 100644 index 439b66123..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/ReesoDialogue.kt +++ /dev/null @@ -1,41 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class ReesoDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - npcl(FacialExpression.ANNOYED, "Please do not disturb me, outerlander. I have much to do.").also { stage = END_DIALOGUE } - } else { - npcl(FacialExpression.STRUGGLE, "Sorry, ${player.getAttribute("fremennikname","fremmyname")}, I must get on with my work.").also { stage = END_DIALOGUE } - } - - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ReesoDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.REESO_3116) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/VolfOlasfsonDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/VolfOlasfsonDialogue.kt deleted file mode 100644 index f7a2892fb..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/rellekka/VolfOlasfsonDialogue.kt +++ /dev/null @@ -1,48 +0,0 @@ -package rs09.game.content.dialogue.region.rellekka - -import api.isQuestComplete -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -/** - * @author qmqz - */ - -@Initializable -class VolfOlasfsonDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if (!isQuestComplete(player, "Fremennik Trials")) { - npc(FacialExpression.ANNOYED, "Sorry, outlander, but I have things to be doing.").also { stage = END_DIALOGUE } - } else if (isQuestComplete(player, "Fremennik Trials") && !isQuestComplete(player, "Olaf's Quest")) { - npc(FacialExpression.FRIENDLY, "Hello there. Enjoying the view?").also { stage = 0 } - } else if (isQuestComplete(player, "Fremennik Trials") && isQuestComplete(player, "Olaf's Quest")) { - npcl(FacialExpression.ASKING, "Hello again, friend! Does my father send any word... or treasures like before?").also { stage = 10 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> player(FacialExpression.FRIENDLY, "Yes I am. You have a lovely yurt.").also { stage++ } - 1 -> npc(FacialExpression.FRIENDLY, "Thanks! I exercise it regularly.").also { stage = END_DIALOGUE } - - 10 -> playerl(FacialExpression.HALF_GUILTY, "Not today, but if he does, you will be the first to know.").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return VolfOlasfsonDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.VOLF_OLAFSON_3695) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/EmbalmerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/EmbalmerDialogue.kt deleted file mode 100644 index 4b2f4e7fc..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/sophanem/EmbalmerDialogue.kt +++ /dev/null @@ -1,41 +0,0 @@ -package rs09.game.content.dialogue.region.sophanem - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class EmbalmerDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.SUSPICIOUS,"What are you doing?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "I have this acne potion which I thought might help ease your itching.").also { stage++ } - 1 -> npcl(FacialExpression.ANNOYED, "If I thought that these spots could be cured by some potion, I would have mixed up one myself before now.").also { stage++ } - 2 -> player(FacialExpression.SAD, "Sorry, I was just trying to help.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return EmbalmerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.EMBALMER_1980) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/CarolineDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/CarolineDialogue.kt deleted file mode 100644 index 2ab1aead7..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/CarolineDialogue.kt +++ /dev/null @@ -1,41 +0,0 @@ -package rs09.game.content.dialogue.region.witchaven - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class CarolineDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello again.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY, "Hello traveller, how are you?").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "Not bad thanks, yourself?").also { stage++ } - 2 -> npcl(FacialExpression.FRIENDLY, "I'm good. Busy as always looking after Kent and Kennith but no complaints.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CarolineDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CAROLINE_696) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/ColONiallDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/ColONiallDialogue.kt deleted file mode 100644 index 85cedf6d9..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/ColONiallDialogue.kt +++ /dev/null @@ -1,56 +0,0 @@ -package rs09.game.content.dialogue.region.witchaven - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Does not take quest into consideration - */ - -@Initializable -class ColONiallDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY, "Hello. What can I do for you?").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "Oh, I'm just wondering what you're doing.").also { stage++ } - 2 -> npc(FacialExpression.FRIENDLY, "A spot of fishing.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY, "That doesn't look much like a fishing rod.").also { stage++ } - 4 -> npc(FacialExpression.FRIENDLY, "That my friend, depends on what you're fishing for.").also { stage++ } - 5 -> player(FacialExpression.FRIENDLY, "And what would that be?").also { stage++ } - 6 -> npcl(FacialExpression.FRIENDLY, "A little of this, a little of that; the usual things.").also { stage++ } - 7 -> player(FacialExpression.FRIENDLY, "Have you caught much?").also { stage++ } - 8 -> npc(FacialExpression.FRIENDLY, "The odd bite here and there. Hmm.").also { stage++ } - 9 -> player(FacialExpression.FRIENDLY, "What?").also { stage++ } - 10 -> npcl(FacialExpression.FRIENDLY, "You look like a capable lad. Tell you what, when you've got a bit more experience under your belt, get yourself over to Falador.").also { stage++ } - 11 -> player(FacialExpression.FRIENDLY, "What's in Falador?").also { stage++ } - 12 -> npcl(FacialExpression.FRIENDLY, "An old friend of mine. You'll find him sitting on a bench in Falador Park. See what he can do for you.").also { stage++ } - 13 -> player(FacialExpression.FRIENDLY, "What's his name? Who should I say sent me?").also { stage++ } - 14 -> npcl(FacialExpression.FRIENDLY, "None of that matters if you can find him and if you're ready my name isn't necessary.").also { stage++ } - 15 -> player(FacialExpression.FRIENDLY, "Oh right. I'll get going then. Goodbye.").also { stage++ } - 16 -> npc(FacialExpression.FRIENDLY, "Goodbye and good luck.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ColONiallDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.COL_ONIALL_4872) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/EzekialLovecraftDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/EzekialLovecraftDialogue.kt deleted file mode 100644 index ed0554c8a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/EzekialLovecraftDialogue.kt +++ /dev/null @@ -1,64 +0,0 @@ -package rs09.game.content.dialogue.region.witchaven - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - * Does not take quests into consideration - */ - -@Initializable -class EzekialLovecraftDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.FRIENDLY,"Well hello there; welcome to our little village. Pray, stay awhile.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("What do you do here?", "Can I buy some fishing supplies please?", "You are a bit too strange for me. Bye.").also { stage++ } - - 1 -> when (buttonId) { - 1 -> player(FacialExpression.ASKING, "What do you do here?").also { stage = 10 } - 2 -> player(FacialExpression.HALF_ASKING, "Can I buy some fishing supplies please?").also { stage = 25 } - 3 -> player(FacialExpression.ANNOYED, "You are a bit too strange for me. Bye.").also { stage = 30 } - } - - 10 -> npcl(FacialExpression.FRIENDLY, "I supply the local fishermen with the tools and bait they need to do their job.").also { stage++ } - 11 -> player(FacialExpression.FRIENDLY, "Interesting. Have you been doing it long?").also { stage++ } - 12 -> npcl(FacialExpression.FRIENDLY, "Why yes, all of my life. I took over from my father, who inherited the business from his father and so on. In fact, there have been Lovecraft's selling bait for over ten generations.").also { stage++ } - 13 -> player(FacialExpression.FRIENDLY, "Wow, that's some lineage.").also { stage++ } - 14 -> npcl(FacialExpression.LAUGH, "Oh yes, we have a long and interesting family history. For one reason or another the Lovecraft's have always been bait sellers or writers.").also { stage++ } - 15 -> playerl(FacialExpression.FRIENDLY, "Hmm, yes well. I'm sure it's all fascinating, but I...").also { stage++ } - 16 -> npcl(FacialExpression.FRIENDLY, "Oh very, very fascinating, for instance my great grandfather Howard...").also { stage++ } - 17 -> playerl(FacialExpression.HALF_ROLLING_EYES, "Yawn. Oh, I'm sorry but I really must be getting on. I think my giraffe needs feeding.").also { stage++ } - 18 -> npc(FacialExpression.HALF_ASKING, "Your?").also { stage++ } - 19 -> playerl(FacialExpression.ANNOYED, "Giraffe. Sorry, but he gets cranky without enough sugar. Bye now!").also { stage++ } - 20 -> npc(FacialExpression.FRIENDLY, "Oh right, goodbye.").also { stage = 99 } - - 25 -> end().also { npc.openShop(player) } - - 30 -> npc(FacialExpression.FRIENDLY, "Sniff. Yes, everyone says that.").also { stage = 99 } - - - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return EzekialLovecraftDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.EZEKIAL_LOVECRAFT_4856) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/HolgartDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/HolgartDialogue.kt deleted file mode 100644 index cf784455e..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/HolgartDialogue.kt +++ /dev/null @@ -1,43 +0,0 @@ -package rs09.game.content.dialogue.region.witchaven - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class HolgartDialogue(player: Player? = null) : DialoguePlugin(player){ - fun gender (male : String = "sir", female : String = "madam") = if (player.isMale) male else female - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY,"Hello there.").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.FRIENDLY, "Well hello " + gender() + ", beautiful day isn't it?").also { stage++ } - 1 -> player(FacialExpression.FRIENDLY, "Not bad I suppose.").also { stage++ } - 2 -> npc(FacialExpression.FRIENDLY, "Just smell that sea air... beautiful.").also { stage++ } - 3 -> player(FacialExpression.FRIENDLY, "Hmm... lovely...").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return HolgartDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.HOLGART_4866) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/WitchhavenVillageDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/WitchhavenVillageDialogue.kt deleted file mode 100644 index 9eafa60df..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/witchaven/WitchhavenVillageDialogue.kt +++ /dev/null @@ -1,78 +0,0 @@ -package rs09.game.content.dialogue.region.witchaven - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class WitchhavenVillageDialogue(player: Player? = null) : DialoguePlugin(player){ - - private val conversations = arrayOf (0, 7, 11, 19, 24) - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hello there.").also { stage = conversations.random() } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - - 0 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } - 1 -> npc(FacialExpression.NEUTRAL, "Ye mariners all, as ye pass by,").also { stage++ } - 2 -> npc(FacialExpression.NEUTRAL, "Come in and drink if you are dry,").also { stage++ } - 3 -> npc(FacialExpression.NEUTRAL, "Come spend, me lads, your money brisk,").also { stage++ } - 4 -> npc(FacialExpression.NEUTRAL, "And pop your nose in a jug of this.").also { stage++ } - 5 -> player(FacialExpression.NEUTRAL, "You're not fooling anyone you know.").also { stage++ } - 6 -> npc(FacialExpression.NEUTRAL, "We fooled you easily enough.").also { stage = 99 } - - 7 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } - 8 -> npc(FacialExpression.NEUTRAL, "Free. She is free...").also { stage++ } - 9 -> player(FacialExpression.NEUTRAL, "What?").also { stage++ } - 10 -> npc(FacialExpression.NEUTRAL, "The mother is free.").also { stage = 99 } - - 11 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } - 12 -> npc(FacialExpression.NEUTRAL, "You! You did it!").also { stage++ } - 13 -> player(FacialExpression.NEUTRAL, "I didn't mean to!").also { stage++ } - 14 -> npc(FacialExpression.NEUTRAL, "You killed him!").also { stage++ } - 15 -> player(FacialExpression.NEUTRAL, "It was an accide... Killed who?").also { stage++ } - 16 -> npc(FacialExpression.NEUTRAL, "Our Prince, you killed our Prince.").also { stage++ } - 17 -> player(FacialExpression.NEUTRAL, "Oh that, yes I did.").also { stage++ } - 18 -> npc(FacialExpression.NEUTRAL, "Leave us alone.").also { stage = 99 } - - 19 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } - 20 -> npc(FacialExpression.NEUTRAL, "Soon now... So soon...").also { stage++ } - 21 -> npc(FacialExpression.NEUTRAL, "The stars are almost right.").also { stage++ } - 22 -> player(FacialExpression.NEUTRAL, "For what?").also { stage++ } - 23 -> npc(FacialExpression.NEUTRAL, ". . .").also { stage = 99 } - - 24 -> sendDialogue("Their eyes are staring vacantly into space.").also { stage++ } - 25 -> npc(FacialExpression.NEUTRAL, "Ahh, our saviour.").also { stage++ } - 26 -> player(FacialExpression.NEUTRAL, "Please don't remind me.").also { stage++ } - 27 -> npc(FacialExpression.NEUTRAL, "Do not worry, soon your regret will be gone.").also { stage++ } - 28 -> player(FacialExpression.NEUTRAL, "If you think you will get to me...").also { stage++ } - 29 -> npc(FacialExpression.NEUTRAL, "All in good time.").also { stage = 99 } - - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return WitchhavenVillageDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.WITCHAVEN_VILLAGER_4883, NPCs.WITCHAVEN_VILLAGER_4884, - NPCs.WITCHAVEN_VILLAGER_4885, NPCs.WITCHAVEN_VILLAGER_4886, - NPCs.WITCHAVEN_VILLAGER_4887, NPCs.WITCHAVEN_VILLAGER_4888) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/BlaecDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/BlaecDialogue.kt deleted file mode 100644 index ca085c26c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/BlaecDialogue.kt +++ /dev/null @@ -1,42 +0,0 @@ -package rs09.game.content.dialogue.region.zanaris - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class BlaecDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when ((1..3).random()) { - 1 -> npc(FacialExpression.FRIENDLY,"Wunnerful weather we're having today!").also { stage = 99 } - 2 -> npc(FacialExpression.FRIENDLY,"Greetin's " + player.name + ", fine day today!").also { stage = 99 } - 3 -> npcl(FacialExpression.ANNOYED,"Please leave me alone, I'm busy trapping the pygmy shrews.").also { stage = 99 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return BlaecDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BLAEC_3115) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/CoOrdinatorDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/CoOrdinatorDialogue.kt deleted file mode 100644 index dd31fbc81..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/CoOrdinatorDialogue.kt +++ /dev/null @@ -1,47 +0,0 @@ -package rs09.game.content.dialogue.region.zanaris - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class CoOrdinatorDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - player(FacialExpression.FRIENDLY, "Hello, what are you doing?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> { - when ((1..5).random()) { - 1 -> npcl(FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to find a Winter Fairy to send to Trollheim!").also { stage = 99 } - 2 -> npcl(FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to send a fairy to get little Freddie's tooth!").also { stage = 99 } - 3 -> npcl(FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time for idle chit-chat, I need to send an Autumn Fairy off to Burthorpe!").also { stage = 99 } - 4 -> npcl(FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time to talk, I need to send a Tooth Fairy to visit Sarah-Jane!").also { stage = 99 } - 5 -> npcl(FacialExpression.OLD_DISTRESSED,"Sorry, I don't have time to stop, I need to send a weather fairy off to Etceteria!").also { stage = 99 } - } - } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CoOrdinatorDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CO_ORDINATOR_3302) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyDialogue.kt deleted file mode 100644 index 2e5ea3624..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyDialogue.kt +++ /dev/null @@ -1,53 +0,0 @@ -package rs09.game.content.dialogue.region.zanaris - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class FairyDialogue(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when ((1..7).random()) { - 1 -> npcl(FacialExpression.OLD_CALM_TALK1,"Err, hello. Do you have any idea what a Winter Fairy actually does?").also { stage = 10 } - 2 -> npcl(FacialExpression.OLD_DISTRESSED,"Have you got any idea where Burthorpe is? The co-ordinator says I need to go there and paint all the leaves yellow, but I've never heard of that place!").also { stage = 99 } - 3 -> npcl(FacialExpression.OLD_DISTRESSED,"Be careful when you pick mushrooms near the strange ruins to the south. Some of them will try to eat you!").also { stage = 99 } - 4 -> npcl(FacialExpression.OLD_DISTRESSED,"I'm afraid I can't stop to chat. I've just been told to get ready to go to Etceteria for some reason or other!").also { stage = 99 } - 5 -> npcl(FacialExpression.OLD_CALM_TALK2,"Picking mushrooms near the forge will probably end quite badly for you. Not as bad as the ones by the strange ruins to the south though. They're much bigger.").also { stage = 99 } - 6 -> npc(FacialExpression.OLD_DISTRESSED,"Sorry, I can't talk I'm looking for Sarah-Jane!").also { stage = 99 } - 7 -> npc(FacialExpression.OLD_CALM_TALK2,"Is your name Freddie, and are you losing your teeth?").also { stage = 20 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 10 -> player(FacialExpression.THINKING, "No, no idea at all.").also { stage++ } - 11 -> npcl(FacialExpression.OLD_DISTRESSED,"Oh, pity. Neither do I, but I'm supposed to be one this week.").also { stage = 99 } - - 20 -> player(FacialExpression.THINKING, "Err, no. I'm afraid not.").also { stage++ } - 21 -> npcl(FacialExpression.OLD_CALM_TALK2, "Oh, right. You don't have any idea where I can find him do you?").also { stage++ } - 22 -> player(FacialExpression.NEUTRAL, "No, I don't know that either.").also { stage++ } - 23 -> npcl(FacialExpression.OLD_CALM_TALK1, "Oh, ok then. If you do find out please let me know. The co-ordinator has sent me to find him.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return FairyDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FAIRY_4443, NPCs.FAIRY_4444, NPCs.FAIRY_4445, NPCs.FAIRY_4446, NPCs.FAIRY_567, NPCs.FAIRY_57) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyFixit.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyFixit.kt deleted file mode 100644 index fbf4a42b4..000000000 --- a/Server/src/main/kotlin/rs09/game/content/dialogue/region/zanaris/FairyFixit.kt +++ /dev/null @@ -1,72 +0,0 @@ -package rs09.game.content.dialogue.region.zanaris - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class FairyFixit(player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - //tempvar - //post quest dialogue is missing for rs3 and osrs is too modern, so i'm just gonna use osrs as a placeholder - var completedFairyQueen = false - if (completedFairyQueen) { - npc(FacialExpression.OLD_CALM_TALK1, "Pssst! Human! I've got something for you.").also { stage = 20 } - } else { - npc(FacialExpression.OLD_DISTRESSED, "What is it, human? Busy busy busy!").also { stage = 0 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Why are you carrying that toolbox?", "I'm okay, thanks.").also { stage++ } - 1 -> when (buttonId){ - 1 -> player(FacialExpression.ASKING,"Why are you carrying that toolbox?").also { stage = 10 } - 2 -> player(FacialExpression.FRIENDLY, "I'm okay, thanks.").also { stage = 99 } - } - - - 10 -> npc(FacialExpression.OLD_DEFAULT, "It's the fizgog! It's picking up cable again!").also { stage++ } - 11 -> playerl(FacialExpression.ASKING, "Uh, right. So is it safe to use the fairy rings then?").also { stage++ } - 12 -> npcl(FacialExpression.OLD_CALM_TALK1, "Sure, as long as you have been given permission to use them. You should just be aware that using the fairy rings sometimes has strange results - the locations that you have been to may").also { stage++ } - 13 -> npcl(FacialExpression.OLD_CALM_TALK2, "affect the locations you are trying to reach. I could fix it by replacing the fizgog and the whosprangit; I've put in a request for some new parts, but they're").also { stage++ } - 14 -> npc(FacialExpression.OLD_CALM_TALK1, "pretty hard to get hold of it seems.").also { stage = 99 } - - 20 -> options("What have you got for me?", "Why are you carrying that toolbox?", "Not interested, thanks.").also { stage++ } - 21 -> when (buttonId) { - 1 -> player(FacialExpression.ASKING, "What have you got for me?").also { stage = 30 } - 2 -> player(FacialExpression.ASKING,"Why are you carrying that toolbox?").also { stage = 10 } - 3 -> player(FacialExpression.NEUTRAL, "Not interested, thanks.").also { stage = 99 } - } - - 30 -> npcl(FacialExpression.OLD_CALM_TALK1, "They said you'd helped cure our Queen. I haven't got a lot of rewards to offer, but my enchantment scrolls might help if you're working with fairy rings in your home.").also { stage++ } - 31 -> { - end() - npc.openShop(player) - } - - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return FairyFixit(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FAIRY_FIXIT_4455) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/GillieGroatsDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/GillieGroatsDialogue.kt deleted file mode 100644 index a56b755c1..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/GillieGroatsDialogue.kt +++ /dev/null @@ -1,73 +0,0 @@ -package rs09.game.content.quest.free.cooksassistant - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * Dialogue for Gillie Groats. - * @author Qweqker - */ - -@Initializable -class GillieGroatsDialogue (player: Player? = null) : DialoguePlugin(player){ - - override fun open(vararg args: Any?): Boolean { - var milk = false - if (args.size == 2) milk = true - if (milk) { //If the player attempts to milk a dairy cow without a bucket - npc(FacialExpression.LAUGH, "Tee hee! You've never milked a cow before, have you?") - stage = 100 - return true - } - npc(FacialExpression.HAPPY, "Hello, I'm Gillie the Milkmaid. What can I do for you?") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when (stage) { - - //If the player talks to Gillie directly - 0 -> options("Who are you?", "Can you tell me how to milk a cow?", "I'm fine, thanks.").also { stage++ } - 1 -> when(buttonId) { - 1 -> npc(FacialExpression.HAPPY, "My name's Gillie Groats. My father is a farmer and I", "milk the cows for him.").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "So how do you get milk from a cow then?").also { stage = 20 } - 3 -> player(FacialExpression.NEUTRAL, "I'm fine, thanks.").also { stage = 1000 } - } - - //Who are you? - 10 -> player(FacialExpression.ASKING, "Do you have any buckets of milk spare?").also { stage++ } - 11 -> npc(FacialExpression.SUSPICIOUS, "I'm afraid not. We need all of our milk to sell to", "market, but you can milk the cow yourself if you need", "milk.").also { stage++ } - 12 -> player(FacialExpression.HAPPY,"Thanks.").also { stage = 1000 } - - //Can you tell me how to milk a cow? - 20 -> npc(FacialExpression.FRIENDLY, "It's very easy. First you need an empty bucket to hold", "the milk.").also { stage++ } - 21 -> npc(FacialExpression.FRIENDLY, "Then find a dairy cow to milk - you can't milk just", "any cow.").also { stage++ } - 22 -> player(FacialExpression.ASKING, "How do I find a dairy cow?").also { stage++ } - 23 -> npc(FacialExpression.FRIENDLY, "They are easy to spot - they are dark brown and", "white, unlike beef cows, which are light brown and white.", "We also tether them to a post to stop them wandering", "around all over the place.").also {stage++ } - 24 -> npc(FacialExpression.FRIENDLY, "There are a couple very near, in this field.").also { stage++ } - 25 -> npc(FacialExpression.HAPPY, "Then just milk the cow and your bucket will fill with", "tasty, nutritious milk.").also { stage = 1000 } - - //Continuation of attempting to milk a dairy cow without a bucket - 100 -> player(FacialExpression.ASKING, "Erm... No. How could you tell?").also { stage++ } - 101 -> npc(FacialExpression.LAUGH, "Because you're spilling milk all over the floor. What a","waste ! You need something to hold the milk.").also { stage++ } - 102 -> player(FacialExpression.NEUTRAL, "Ah yes, I really should have guessed that one, shouldn't", "I?").also { stage++ } - 103 -> npc(FacialExpression.LAUGH, "You're from the city, aren't you... Try it again with an","empty bucket.").also{ stage++ } - 104 -> player(FacialExpression.NEUTRAL,"Right, I'll do that.").also { stage = 1000 } - - //Dialogue Endpoint - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return GillieGroatsDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(3807) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/LumbridgeCookDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/LumbridgeCookDialogue.kt deleted file mode 100644 index 5e99af1c1..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/LumbridgeCookDialogue.kt +++ /dev/null @@ -1,283 +0,0 @@ -package rs09.game.content.quest.free.cooksassistant - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable - -/** - * Dialogue for the Lumbridge Cook. - * @author Qweqker - */ - -@Initializable -class LumbridgeCookDialogue (player: Player? = null) : DialoguePlugin(player){ - - //Item declaration - val EMPTY_BUCKET = 1925 - val MILK = 1927 - val EMPTY_POT = 1931 - val FLOUR = 1933 - val EGG = 1944 - - //Default settings for the Cook checking for ingredients in the player's inventory - var gave = false - var leftoverItems = "" - - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if(player?.questRepository?.getQuest("Lost Tribe")?.getStage(player) == 10){ - player("Did you see what happened in the cellar?") - stage = 0 - return true - } - if (player?.questRepository?.getQuest("Cook's Assistant")!!.getStage(player) <= 0) { //If the player has ot started cook's assistant - npc(FacialExpression.SAD, "What am I to do?") - stage = 0 - return true - } else if (player?.questRepository?.getQuest("Cook's Assistant")!!.getStage(player) in 10..99) { //During the Cook's Assistant Quest - if (player.getAttribute("cooks_assistant:all_submitted", false) || (player.getAttribute("cooks_assistant:milk_submitted", false) && player.getAttribute("cooks_assistant:flour_submitted", false) && player.getAttribute("cooks_assistant:egg_submitted", false))){ //If the player has handed all the ingredients to the chef but did not continue the dialogue - npc(FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!") - stage = 200 - return true - } else { //If the player has not handed all the items to the chef - npc(FacialExpression.SAD, "How are you getting on with finding the ingredients?") - gave = false //Resetting to false here to prevent dialogue skipping later - stage = 100 - return true - } - } - //After completing Cook's Assistant - npc(FacialExpression.HAPPY, "Hello friend, how is the adventuring going?") - stage = 300 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - if(player.questRepository.getQuest("Lost Tribe").getStage(player) == 10){ - when(stage){ - //Lost Tribe - 0 -> npc("Last night I was in the kitchen and I heard a noise","from the cellar. I opened the trapdoor and saw a","creature dart into a hole in the wall.").also { stage++ } - 1 -> npc("It looked a bit like a goblin, but it had big bulging eyes.","It wasn't wearing armour, but it had this odd helmet","with a light on it.").also { stage++ } - 2 -> npc("The tunnel was too dark for me to follow it, so I went","to tell the Duke. But when we went down to the cellar","the hole had been blocked up, and no one believes me.").also { stage++ } - 3 -> player("I believe you.").also { stage++ } - 4 -> npc("Thank you, ${player.name}! If you can convince the Duke","I'm telling the truth then we can get to the bottom of","this mystery.").also { stage = 1000; player.questRepository.getQuest("Lost Tribe").setStage(player,20) } - 5 -> end() - } - return true - } - when (stage) { - 0 -> options("What's wrong?", "Can you make me a cake?", "You don't look very happy.", "Nice hat!").also { stage++ } - 1 -> when(buttonId) { - 1 -> player(FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "You're a cook, why don't you bake me a cake?").also { stage = 20 } - 3 -> player(FacialExpression.NEUTRAL,"You don't look very happy.").also { stage = 30; } - 4 -> player(FacialExpression.HAPPY, "Nice hat!").also { stage = 40 } - } - - //What's wrong? - 10 -> npc(FacialExpression.SCARED, "Oh dear, oh dear, oh dear, I'm in a terrible terrible", "mess! It's the Duke's birthday today, and I should be", "making him a lovely big birthday cake.").also { stage++ } - 11 -> npc(FacialExpression.SAD, "I've forgotten to buy the ingredients. I'll never get", "them in time now. He'll sack me! What will I do? I have", "four children and a goat to look after. Would you help", "me? Please?").also { stage++ } - 12 -> options("I'm always happy to help a cook in distress.", "I can't right now, Maybe later.").also { stage++ } - 13 -> when(buttonId) { - 1 -> player(FacialExpression.HAPPY, "Yes, I'll help you.").also { stage = 50 } - 2 -> player(FacialExpression.ANNOYED, "No, I don't feel like it. Maybe later.").also { stage++ } - } - - //I can't right now - 14 -> npc(FacialExpression.SAD, "Fine. I always knew you Adventurer types were callous", "beasts. Go on your merry way!").also { stage = 1000 } - - //Can you make me a cake? - 20 -> npc(FacialExpression.SAD, "*sniff* Don't talk to me about cakes...").also { stage++ } - 21 -> player(FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10} - - //You don't look very happy - 30 -> npc(FacialExpression.SAD, "No, I'm not. The world is caving in around me - I am", "overcome by dark feelings of impending doom.").also { stage++ } - 31 -> options("What's wrong?","I'd take the rest of the day off if I were you.").also { stage++ } - 32 -> when(buttonId) { - 1 -> player(FacialExpression.NEUTRAL, "What's wrong?").also { stage = 10} - 2 -> player(FacialExpression.NEUTRAL,"I'd take the rest of the day off if I were you.").also { stage++ } - } - 33 -> npc(FacialExpression.SAD,"No, that's the worst thing I could do. I'd get in terrible","trouble.").also { stage++ } - 34 -> player(FacialExpression.ASKING,"Well maybe you need to take a holiday...").also { stage++ } - 35 -> npc(FacialExpression.SAD,"That would be nice, but the Duke doesn't allow holidays","for core staff").also { stage++ } - 36 -> player(FacialExpression.SUSPICIOUS,"Hmm, why not run away to the sea and start a new","life as a Pirate?").also { stage++ } - 37 -> npc(FacialExpression.SAD,"My wife gets sea sick, and I have an irrational fear of","eyepatches. I don't see it working myself.").also { stage++ } - 38 -> player(FacialExpression.NEUTRAL,"I'm afraid I've run out of ideas.").also { stage++ } - 39 -> npc(FacialExpression.SAD,"I know I'm doomed.").also { stage = 21 } - - //Nice hat! - 40 -> npc(FacialExpression.SAD, "Er, thank you. It's a pretty ordinary cook's hat, really.").also { stage++ } - 41 -> player(FacialExpression.HAPPY, "Still, it suits you. The trousers are pretty special too.").also { stage++ } - 42 -> npc(FacialExpression.SAD, "It's all standard-issue cook's uniform.").also { stage++ } - 43 -> player(FacialExpression.HAPPY, "The whole hat, apron, stripy trousers ensemble. It", "works. It makes you looks like a real cook.").also { stage++ } - 44 -> npc(FacialExpression.ANGRY, "I AM a real cook! I haven't got time to be chatting", "about culinary fashion. I'm in desperate need of help!").also { stage = 21 } - - //Yes, I'll help you - 50 -> npc(FacialExpression.HAPPY, "Oh thank you, thank you. I need milk, an egg and", "flour. I'd be very grateful if you can get them for me.").also{ player?.questRepository?.getQuest("Cook's Assistant")?.start(player!!); stage++ } - 51 -> player(FacialExpression.NEUTRAL, "So where do I find these ingredients then?").also { stage = 60 } - - //Where do I find these ingredients? - 60 -> options("Where do I find some flour?","How about milk?","And eggs? Where are they found?","Actually, I know where to find this stuff.").also { stage++ } - 61 -> when(buttonId) { - 1 -> npc(FacialExpression.NEUTRAL,"There is a Mill fairly close, go North and then West.","Mill Lane Mill is just off the road to Draynor. I","usually get my flour from there.").also {stage = 70 } - 2 -> npc(FacialExpression.NEUTRAL,"There is a cattle field on the other side of the river,","just across the road from the Groats' Farm.").also { stage = 71 } - 3 -> npc(FacialExpression.NEUTRAL,"I normally get my eggs from the Groats' farm, on the","other side of the river.").also { stage = 73 } - 4 -> player(FacialExpression.NEUTRAL,"Actually, I know where to find this stuff.").also { stage = 1000 } - } - - //Where do I find some flour? - 70 -> npc(FacialExpression.SUSPICIOUS,"Talk to Millie, she'll help, she's a lovely girl and a fine","Miler. Make sure you take a pot with you for the flour","though, " + if (player.inventory.contains(EMPTY_POT, 1)) "you've got one on you already." else "there should be one on the table in here.").also { stage = 80 } - - //How about milk? - 71 -> npc(FacialExpression.SUSPICIOUS,"Talk to Gillie Groats, she looks after the Dairy cows -","she'll tell you everything you need to know about","milking cows!").also { stage++ } - 72 -> - if (player.inventory.contains(EMPTY_BUCKET , 1)) { - npc(FacialExpression.NEUTRAL,"You'll need an empty bucket for the milk itself. I do see", "you've got a bucket with you already luckily!").also { stage = 80 } - } else { - npc(FacialExpression.NEUTRAL,"You'll need an empty bucket for the milk itself. The", "general store just north of the castle will sell you one", "for a couple of coins.").also { stage = 80 } - } - - //And Eggs? - 73 -> npc(FacialExpression.NEUTRAL,"But any chicken should lay eggs.").also { stage = 80 } - - //Alternative menu for "Where do I find these ingredients?" - 80 -> options("Where do I find some flour?","How about milk?","And eggs? Where are they found?","I've got all the information I need. Thanks.").also { stage++ } - 81 -> when(buttonId) { - 1 -> npc(FacialExpression.NEUTRAL,"There is a Mill fairly close, go North and then West.","Mill Lane Mill is just off the road to Draynor. I","usually get my flour from there.").also {stage = 70 } - 2 -> npc(FacialExpression.NEUTRAL,"There is a cattle field on the other side of the river,","just across the road from the Groats' Farm.").also { stage = 71 } - 3 -> npc(FacialExpression.NEUTRAL,"I normally get my eggs from the Groats' farm, on the","other side of the river.").also { stage = 73 } - 4 -> player(FacialExpression.NEUTRAL,"I've got all the information I need. Thanks.").also { stage = 1000 } - } - - 100 -> - if (!player.getAttribute("cooks_assistant:milk_submitted", false) && player.inventory.contains(MILK, 1)) { - player.setAttribute("/save:cooks_assistant:milk_submitted", true).also { - player(FacialExpression.HAPPY, "Here's a bucket of milk.") - player.inventory.remove(Item(MILK)) - gave = true - stage = 100 - } - } else if (!player.getAttribute("cooks_assistant:flour_submitted", false) && player.inventory.contains(FLOUR, 1)) { - player.setAttribute("/save:cooks_assistant:flour_submitted", true).also { - player(FacialExpression.HAPPY, "Here's a pot of flour.") - player.inventory.remove(Item(FLOUR)) - gave = true - stage = 100 - } - } else if (!player.getAttribute("cooks_assistant:egg_submitted", false) && player.inventory.contains(EGG, 1)) { - player.setAttribute("/save:cooks_assistant:egg_submitted", true).also { - player(FacialExpression.HAPPY, "Here's a fresh egg.") - player.inventory.remove(Item(EGG)) - gave = true - stage = 100 - } - } else { - if (gave) { - - //If this is the first time the player gave an item (or items) to the Lumbridge cook - if (!player.getAttribute("cooks_assistant:submitted_some_items", false)) { - player.setAttribute("/save:cooks_assistant:submitted_some_items", true) - } - - //If the player has now handed in all the ingredients - if (player.getAttribute("cooks_assistant:milk_submitted", false) && player.getAttribute("cooks_assistant:flour_submitted", false) && player.getAttribute("cooks_assistant:egg_submitted", false)) { - npc(FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!").also { player.setAttribute("/save:cooks_assistant:all_submitted",true); stage = 200 } - } else { - npc(FacialExpression.WORRIED,"Thanks for the ingredients you have got so far, please get","the rest quickly. I'm running out of time! The Duke","will throw me into the streets!").also { stage = 151 } - } - - } else { //If the player did not give an item to the Lumbridge cook - - //If the player also has never submitted anything before - if (!player.getAttribute("cooks_assistant:submitted_some_items", false)) { - player(FacialExpression.NEUTRAL, "I haven't gotten any of them yet, I'm still looking.").also { stage = 155 } - } else { - options("I'll get right on it.", "Can you remind me how to find these things again?").also { stage = 161 } - } - } - } - - //If the player has submitted some ingredients but not all of them - 150 -> npc(FacialExpression.WORRIED,"Thanks for the ingredients you have got so far, please get","the rest quickly. I'm running out of time! The Duke","will throw me into the streets!").also { stage++ } - - //Checking what the player has left over - 151 -> leftoverItems = "".also{ - if (!player.getAttribute("cooks_assistant:milk_submitted", false)){ - leftoverItems += "A bucket of milk. " - } - if (!player.getAttribute("cooks_assistant:flour_submitted", false)){ - leftoverItems += "A pot of flour. " - } - if (!player.getAttribute("cooks_assistant:egg_submitted", false)){ - leftoverItems += "An egg." - } - if (leftoverItems != ""){ - sendDialogue("You still need to get:",leftoverItems).also {stage = 160} - } else { - npc(FacialExpression.HAPPY, "You've brought me everything I need! I am saved!", "Thank you!").also { player.setAttribute("/save:cooks_assistant:all_submitted",true); stage = 200 } - } - } - - //If the player has yet to collect or hand in any of the ingredients - 155 -> npc(FacialExpression.WORRIED,"Please get the ingredients quickly. I'm running out of","time! The Duke will throw me into the streets!").also { stage++ } - 156 -> sendDialogue("You still need to get:", "A bucket of milk. A pot of flour. An egg.").also { stage = 160 } - - - // Menu after checking the items handed in - 160 -> options("I'll get right on it.","Can you remind me how to find these things again?").also { stage++ } - 161 -> when(buttonId) { - 1 -> player(FacialExpression.NEUTRAL,"I'll get right on it.").also { stage = 1000 } - 2 -> player(FacialExpression.ASKING,"Can you remind me how to find these things again?").also { stage = 60 } - } - - //Final Cooks Assistant Dialogue - 200 -> player(FacialExpression.HAPPY, "So do I get to go to the Duke's Party?").also { stage++ } - 201 -> npc(FacialExpression.SAD, "I'm afraid not, only the big cheeses get to dine with the", "Duke.").also { stage++ } - 202 -> player(FacialExpression.NEUTRAL, "Well, maybe one day I'll be important enough to sit on", "the Duke's table.").also { stage ++ } - 203 -> npc(FacialExpression.NEUTRAL, "Maybe, but I won't be holding my breath.").also { stage++ } - - //Activate the Cook's Assistant Quest Complete Certificate - 204 -> end().also { player?.questRepository?.getQuest("Cook's Assistant")?.finish(player!!) } - - //Dialogue after Cook's Assistant Completion - 300 -> if(player.questRepository.getQuest("Lost Tribe").getStage(player) == 10) { - player("Do you know what happened in the castle cellar?").also { stage = 600 } - } else { - options("I am getting strong and mighty.", "I keep on dying.", "Can I use your range?").also { stage++ } - } - 301 -> when (buttonId) { - 1 -> player(FacialExpression.HAPPY, "I am getting strong and mighty. Grrr").also { stage = 310 } - 2 -> player(FacialExpression.SAD, "I keep on dying.").also { stage = 320 } - 3 -> player(FacialExpression.ASKING, "Can I use your range?").also { stage = 330 } - } - - //I am getting strong and mighty - 310 -> npc(FacialExpression.HAPPY,"Glad to hear it!").also { stage = 1000 } - - //I keep on dying - 320 -> npc(FacialExpression.HAPPY, "Ah, well, at least you keep coming back to life too!").also { stage = 1000 } - - //Can I use your range? - 330 -> npc(FacialExpression.HAPPY, "Go ahead! It's a very good range; it's better than most" ,"other ranges.").also { stage++ } - 331 -> npc(FacialExpression.NEUTRAL, "It's called the Cook-o-Matic 100 and it uses a combination","of state-of-the-art temperature regulation and magic.").also { stage++ } - 332 -> player(FacialExpression.ASKING,"Will it mean my food will burn less often?").also { stage++ } - 333 -> npc(FacialExpression.NEUTRAL,"Well, that's what the salesman told us anyway...").also { stage++ } - 334 -> player(FacialExpression.THINKING, "Thanks?").also { stage = 1000 } - //Conversation Endpoint - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return LumbridgeCookDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(278) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/MillieMillerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/MillieMillerDialogue.kt deleted file mode 100644 index 3d0bf5f34..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/cooksassistant/MillieMillerDialogue.kt +++ /dev/null @@ -1,70 +0,0 @@ - package rs09.game.content.quest.free.cooksassistant - - import rs09.ServerConstants - import core.game.content.dialogue.DialoguePlugin - import core.game.content.dialogue.FacialExpression - import core.game.node.entity.player.Player - import core.plugin.Initializable - - /** - * Dialogue for Millie Miller. - * @author Qweqker - */ - - @Initializable - class MillieMillerDialogue (player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - - npc(FacialExpression.HAPPY, "Hello Adventurer. Welcome to Mill Lane Mill. Can I", "help you?") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when (stage) { - - //Continuation of Millie's greeting - 0 -> options("Who are you?", "What is this place?", "How do I mill flour?", "I'm fine, thanks.").also { stage++ } - 1 -> when (buttonId) { - 1 -> player(FacialExpression.ASKING, "Who are you?").also { stage = 10 } - 2 -> player(FacialExpression.ASKING, "What is this place?").also { stage = 20 } - 3 -> player(FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } - 4 -> player(FacialExpression.NEUTRAL, "I'm fine, thanks.").also { stage = 1000 } - } - - //Who are you? - 10 -> npc(FacialExpression.FRIENDLY, "I'm Miss Millicent Miller the Miller of Mill Lane Mill.", "Our family have been milling flour for generations.").also { stage++ } - 11 -> player(FacialExpression.FRIENDLY, "It's a good business to be in. People will always need", "flour.").also { stage++ } - 12 -> player(FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } - - //What is this place? - 20 -> npc(FacialExpression.SUSPICIOUS, "This is Mill Lane Mill. Millers of the finest flour in", ServerConstants.SERVER_NAME + ", and home to the Miller family for many", "generations").also { stage++ } - 21 -> npc(FacialExpression.HAPPY, "We take grain from the field nearby and mill into flour.").also { stage++ } - 22 -> player(FacialExpression.ASKING, "How do I mill flour?").also { stage = 30 } - - //How do I mill flour? - 30 -> npc(FacialExpression.FRIENDLY, "Making flour is pretty easy. First of all you need to", "get some grain. You can pick some from wheat fields.", "There is one just outside the Mill, but there are many", "others scattered across " + ServerConstants.SERVER_NAME + ". Feel free to pick wheat").also { stage++ } - 31 -> npc(FacialExpression.FRIENDLY, "from our field! There always seems to be plenty of", "wheat there.").also { stage++ } - 32 -> player(FacialExpression.ASKING, "Then I bring my wheat here?").also { stage++ } - 33 -> npc(FacialExpression.FRIENDLY, "Yes, or one of the other mills in " + ServerConstants.SERVER_NAME + ". They all work", "the same way. Just take your grain to the top floor of", "the mill (up two ladders, there are three floors including", "this one) and then place some grain in to the hopper.").also { stage++ } - 34 -> npc(FacialExpression.HAPPY, "Then you need to start the grinding process by pulling", "the hopper lever. You can add more grain, but each", "time you add grain you have to pul the hopper lever", "again.").also { stage++ } - 35 -> player(FacialExpression.ASKING, "So where does the flour go then?").also { stage++ } - 36 -> npc(FacialExpression.SUSPICIOUS, "The flour appears in this room here, you'll need a pot", "to put the flour into. One pot will hold the flour made", "by one load of grain").also { stage++ } - 37 -> npc(FacialExpression.HAPPY, "And that's it! You now have some pots of finely ground", "flour of the highest quality. Ideal for making tasty cakes", "or delicous bread. I'm not a cook so you'll have to ask a", "cook to ind out how to bake things.").also { stage++ } - 38 -> player(FacialExpression.HAPPY, "Great! Thanks for your help.").also { stage = 1000 } - - //Conversation Endpoint - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return MillieMillerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(3806) - } - } \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSListeners.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSListeners.kt deleted file mode 100644 index 0e962b66c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSListeners.kt +++ /dev/null @@ -1,15 +0,0 @@ -package rs09.game.content.quest.free.dragonslayer - -import api.sendMessage -import org.rs09.consts.Scenery -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType - -class DSListeners : InteractionListener { - override fun defineListeners() { - on(Scenery.CELL_DOOR_40184, IntType.SCENERY, "open") {player, _ -> - sendMessage(player, "It's locked tight.") - return@on true - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/CharlieTheTrampDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/CharlieTheTrampDialogue.kt deleted file mode 100644 index 9d70b19b2..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/shieldofarrav/CharlieTheTrampDialogue.kt +++ /dev/null @@ -1,118 +0,0 @@ -package rs09.game.content.quest.free.shieldofarrav - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.content.quest.free.shieldofarrav.ShieldofArrav -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -/** - * @author qmqz - */ - -@Initializable -class CharlieTheTrampDialogue(player: Player? = null) : DialoguePlugin(player){ - var q = "Shield of Arrav" - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npc(FacialExpression.FRIENDLY,"Spare some change guv?").also { stage = 0 } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Who are you?", "Sorry, I haven't got any.", "Go get a job!", "Ok. Here you go.", "Is there anything down this alleyway?").also { stage++ } - - 1 -> when (buttonId) { - 1 -> player(FacialExpression.HALF_THINKING, "Who are you?").also { stage = 50 } - 2 -> player(FacialExpression.NEUTRAL, "Sorry, I haven't got any.").also { stage = 100 } - 3 -> player(FacialExpression.ANNOYED, "Go get a job!").also { stage = 150 } - 4 -> player(FacialExpression.ANNOYED, "Ok. Here you go.").also { stage = 200 } - 5 -> player(FacialExpression.ANNOYED, "Is there anything down this alleyway?").also { stage = 250 } - } - - 50 -> npcl(FacialExpression.FRIENDLY, "Charles. Charles E. Trampin' at your service. Now, about that change you were going to give me...").also { stage = 0 } - 100 -> npc(FacialExpression.SAD, "Thanks anyways!").also { stage = 99 } - 150 -> npc(FacialExpression.ANNOYED, "You startin? I hope your nose falls off!").also { stage = 99 } - 200 -> { - if (player.inventory.contains(Items.COINS_995, 1)) { - player.inventory.remove(Item(Items.COINS_995, 1)).also { end() } - } else { - sendDialogue("You need one coin to give away.").also { stage = 99 } - } - } - 201 -> npc(FacialExpression.HAPPY, "Hey, thanks a lot!").also { stage++ } - 202 -> options("No problem.", "Don't I get some sort of quest hint or something now?").also { stage++ } - 203 -> when(buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "No problem.").also { stage = 99 } - 2 -> player(FacialExpression.HALF_THINKING, "So... don't I get some sort of quest hint or something now?").also { stage = 220 } - } - 220 -> npcl(FacialExpression.ANNOYED, "Huh? What do you mean? That wasn't why I asked you for money.").also { stage++ } - 221 -> npcl(FacialExpression.SAD, "I just need to eat...").also { stage = 99 } - 250 -> npcl(FacialExpression.AFRAID,"The ruthless and notorious criminal gang known as the Black Arm Gang have their headquarters down there.").also { stage++ } - 251 -> options("Thank you for the warning!", "Do you think they would let me join?").also { stage++ } - 252 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY,"Thanks for the warning!").also { stage = 270 } - 2 -> player(FacialExpression.ASKING, "Do you think they would let me join?").also { stage = 280 } - } - 270 -> npc(FacialExpression.HAPPY, "Don't worry about it.").also { stage = 99 } - - 280 -> if (!ShieldofArrav.isBlackArm(player) && !ShieldofArrav.isPhoenix(player)) { - npcl(FacialExpression.SUSPICIOUS, "You never know. You'll find a lady down there called Katrine. Speak to her.").also { stage = 282 } - } else if (ShieldofArrav.isBlackArm(player)) { - npcl(FacialExpression.SUSPICIOUS, "I was under the impression you were already a member...").also { stage = 99 } - } else { - npcl(FacialExpression.ANNOYED, "No. You're a collaborator with the Phoenix Gang. There's no way they'll let you join now.").also { stage++ } - } - - 282 -> npc(FacialExpression.AFRAID, "But don't upset her, she's pretty dangerous.").also { stage++ } - 283 -> npcl(FacialExpression.FRIENDLY, "I also heard that Reldo the librarian knows more about them, go talk to him.").also { stage++ } - 284 -> { - if (!player.questRepository.hasStarted(q)) { - player.questRepository.getQuest(q).start(player) - player.questRepository.getQuest(q).setStage(player,50) - } else if (!ShieldofArrav.isBlackArm(player) && !ShieldofArrav.isPhoenix(player)) { - player.questRepository.getQuest(q).setStage(player, 50) - } - end() - } - - 291 -> options("How did you know I was in the Phoenix Gang?", "Any ideas how I could get in there then?").also { stage++ } - 292 -> when(buttonId) { - 1 -> player(FacialExpression.SUSPICIOUS, "How did you know I was in the Phoenix Gang?").also { stage = 300 } - 2 -> stage = 290 - } - - 300 -> npcl(FacialExpression.NEUTRAL, "In my current profession I spend a lot of time on the streets and you hear these sorta things sometimes.").also { stage++ } - 301 -> player(FacialExpression.ASKING, "Any ideas how I could get in there then?").also { stage++ } - 302 -> npc(FacialExpression.THINKING, "Hmmm. I dunno.").also { stage++ } - 303 -> npcl(FacialExpression.THINKING, "Your best bet would probably be to find someone else... Someone who ISN'T a member of the Phoenix Gang, and get them to infiltrate the ranks of the Black Arm Gang for you.").also { stage++ } - 304 -> npc(FacialExpression.THINKING, "If you find someone like that, tell 'em to come to me first.").also { stage++ } - - 305 -> options("Ok. Good plan!", "Like who?").also { stage++ } - 306 -> when (buttonId) { - 1 -> player(FacialExpression.FRIENDLY, "Ok. Good plan!").also { stage = 310 } - 2 -> player(FacialExpression.ASKING, "Like who?").also { stage = 320 } - } - - 310 -> npc(FacialExpression.LAUGH, "I'm not just a pretty face!").also { stage = 99 } - 320 -> npcl(FacialExpression.NEUTRAL, "There's plenty of other adventurers about besides yourself. I'm sure if you asked one of them nicely they would help you.").also { stage = 99 } - - 99 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CharlieTheTrampDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.CHARLIE_THE_TRAMP_641) - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWUtils.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWUtils.kt deleted file mode 100644 index c0e39e95f..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/elementalworkshop/EWUtils.kt +++ /dev/null @@ -1,115 +0,0 @@ -package rs09.game.content.quest.members.elementalworkshop - -import api.getVarbitValue -import core.game.content.dialogue.book.BookLine -import core.game.content.dialogue.book.Page -import core.game.content.dialogue.book.PageSet -import core.game.node.entity.player.Player -import org.rs09.consts.Vars - -/** - * Utils for the Elemental Workshop I quest - * Book/Varp/Method Utils - * - * @author Woah, with love - */ -object EWUtils { - - // Helpers for the battered/slashed book - /** - * Represents the book id - */ - const val BATTERED_BOOK_ID = 49610760 - const val SLASHED_BOOK_ID = 49610761 - - /** - * Represents the array of pages for this book. - */ - val PAGES = arrayOf( - PageSet( - Page( - BookLine("Within the pages of this", 55), - BookLine("book you will find the", 56), - BookLine("secret to working the", 57), - BookLine("very elements themselves.", 58), - BookLine("Early in the fifth age, a", 59), - BookLine("new ore was discovered.", 60), - BookLine("This ore has a unique", 61), - BookLine("property of absorbing,", 62), - BookLine("transforming or focusing", 63), - BookLine("elemental energy. A", 64), - BookLine("workshop was erected", 65), - ), - Page( - BookLine("close by to work this new", 66), - BookLine("material. The workshop", 67), - BookLine("was set up for artisans", 68), - BookLine("and inventors to be able", 69), - BookLine("to come and create", 70), - BookLine("devices made from the", 71), - BookLine("unique ore, found only in", 72), - BookLine("the village of the Seers.", 73) - ) - ), - PageSet( - Page( - BookLine("After some time of", 55), - BookLine("successful industry the", 56), - BookLine("true power of this ore", 57), - BookLine("became apparent, as", 58), - BookLine("greater and more", 59), - BookLine("powerful weapons were", 60), - BookLine("created. Realising the", 61), - BookLine("threat this posed, the magi", 62), - BookLine("of the time closed down", 63), - BookLine("the workshop and bound", 64), - BookLine("it under lock and key,", 65) - ), - Page( - BookLine("also trying to destroy all",66), - BookLine("knowledge of ",67), - BookLine("manufacturing processes.",68), - BookLine("Yet this book remains and",69), - BookLine("you may still find a way",70), - BookLine("to enter the workshop",71), - BookLine("within this leather bound",72), - BookLine("volume.",73), - ) - ) - ) - - /* OFFSETS */ - const val LEFT_WATER_CONTROL_STATE = 3 - const val RIGHT_WATER_CONTROL_STATE = 4 - const val WATER_WHEEL_STATE = 5 - const val FURNACE_STATE = 7 - const val BELLOWS_STATE = 9 - - fun leftWaterControlBit(player: Player): Int { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) - } - - fun rightWaterControlBit(player: Player): Int { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) - } - - fun leftWaterControlEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, LEFT_WATER_CONTROL_STATE) == 1 - } - - fun rightWaterControlEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, RIGHT_WATER_CONTROL_STATE) == 1 - } - - fun waterWheelEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, WATER_WHEEL_STATE) == 1 - } - - fun bellowsEnabled(player: Player): Boolean { - return getVarbitValue(player, Vars.VARP_QUEST_ELEMENTAL_WORKSHOP, BELLOWS_STATE) == 1 - } - - fun currentStage(player: Player): Int { - return player.questRepository.getStage("Elemental Workshop I") - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusDialogue.kt deleted file mode 100644 index 90c9d3d17..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/ShamusDialogue.kt +++ /dev/null @@ -1,70 +0,0 @@ -package rs09.game.content.quest.members.lostcity - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import api.questStage -import api.setQuestStage - -/** - * ShamusDialogue, to handle the dialogue of Shamus the Leprechaun from the Lost City quest - * @author lila - * @author Vexia - */ -@Initializable -class ShamusDialogue(player: Player? = null) : DialoguePlugin(player) { - - val quest = "Lost City" - - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.ANNOYED,"Ay yer big elephant! Yer've caught me, to be sure! What would an elephant like yer be wanting wid ol' Shamus then?") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(questStage(player,quest)) { - 0 -> when(stage++) { - 0 -> playerl(FacialExpression.THINKING, "I'm not sure.") - 1 -> npcl(FacialExpression.ANNOYED,"Well you'll have to be catchin' me again when yer are, elephant!") - 2 -> end().also { ShamusTreeListener.disappearShamus() } - } - 10 -> when(stage++) { - 0 -> playerl(FacialExpression.NEUTRAL,"I want to find Zanaris.") - 1 -> npcl(FacialExpression.NEUTRAL,"Zanaris is it now? Well well well... Yer'll be needing to be going to that funny little shed out there in the swamp, so you will.") - 2 -> playerl(FacialExpression.THINKING,"...but... I thought... Zanaris was a city?") - 3 -> npcl(FacialExpression.HAPPY,"Aye that it is!") - 4 -> playerl(FacialExpression.THINKING,"...How does it fit in a shed then?") - 5 -> npcl(FacialExpression.LAUGH,"Ah yer stupid elephant! The city isn't IN the shed! The doorway to the shed is being a portal to Zanaris, so it is.") - 6 -> playerl(FacialExpression.HALF_THINKING,"So I just walk into the shed and end up in Zanaris then?") - 7 -> npcl(FacialExpression.NEUTRAL, "Oh, was I fergetting to say? Yer need to be carrying a Dramenwood staff to be getting there! Otherwise Yer'll just be ending up in the shed.") - 8 -> playerl(FacialExpression.ASKING,"So where would I get a staff?") - 9 -> npcl(FacialExpression.NEUTRAL,"Dramenwood staffs are crafted from branches of the Dramen tree, so they are. I hear there's a Dramen tree over on the island of Entrana in a cave.") - 10 -> npcl(FacialExpression.HALF_THINKING,"or some such. There would be probably be a good place for an elephant like yer to be starting looking I reckon.") - 11 -> npcl(FacialExpression.NEUTRAL,"The monks are running a ship from Port Sarim to Entrana, I hear too. Now leave me alone yer elephant!") - 12 -> end().also { - ShamusTreeListener.disappearShamus() - sendDialogue("The leprechaun magically disappears.") - setQuestStage(player,quest,20) - } - } - else -> when(stage++) { - 0 -> playerl(FacialExpression.THINKING, "I'm not sure.") - 1 -> { - val pronoun = if(player.isMale) "he" else "she" - npcl(FacialExpression.ANNOYED,"HA! Look at yer! Look at the stupid elephant who tries to go catching a leprechaun when $pronoun don't even be knowing what $pronoun wants!") - } - 2 -> end().also { ShamusTreeListener.disappearShamus() } - } - - } - return true - } - - override fun newInstance(player: Player): DialoguePlugin { - return ShamusDialogue(player) - } - override fun getIds(): IntArray = intArrayOf(NPCs.SHAMUS_654) -} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/WarriorDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/WarriorDialogue.kt deleted file mode 100644 index fdd571824..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/lostcity/WarriorDialogue.kt +++ /dev/null @@ -1,100 +0,0 @@ -package rs09.game.content.quest.members.lostcity - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.Topic -import rs09.tools.END_DIALOGUE -import api.questStage -import api.startQuest - -/** - * WarriorDialogue, to handle the dialogue for the Warrior in the Lost City quest - * @author lila - * @author Vexia - */ -@Initializable -class WarriorDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - when(questStage(player,"Lost City")) { - 10 -> playerl(FacialExpression.THINKING,"So let me get this straight: I need to search the trees around here for a leprechaun; and then when I find him, he will tell me where this 'Zanaris' is?").also { stage = 1000 } - 20, 21 -> playerl(FacialExpression.HAPPY,"Have you found anything yet?").also { stage = 2000 } - 100 -> playerl(FacialExpression.HAPPY,"Hey, thanks for all the information. It REALLY helped me out in finding the lost city of Zanaris and all.").also { stage = 3000 } - else -> npcl(FacialExpression.NEUTRAL,"Hello there traveller.").also { stage = 1 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage) { - 1 -> showTopics( - Topic(FacialExpression.THINKING,"What are you camped out here for?",100), - Topic(FacialExpression.HALF_THINKING,"Do you know any good adventures I can go on?",101) - ) - 2 -> showTopics( - Topic(FacialExpression.ASKING,"Please tell me.",200), - Topic(FacialExpression.ANGRY,"I don't think you've found a good adventure at all!",250) - ) - 3 -> showTopics( - Topic(FacialExpression.ASKING,"Who's Zanaris?",301), - Topic(FacialExpression.ASKING,"What's Zanaris?",302), - Topic(FacialExpression.ASKING,"What makes you think it's out here?",300) - ) - 4 -> showTopics( - Topic(FacialExpression.ASKING,"If it's hidden how are you planning to find it?",400), - Topic(FacialExpression.LAUGH,"There's no such thing!",450) - ) - 5 -> options("Please tell me.", "Looks like you don't know either.").also { stage = 500 } - 6 -> playerl(FacialExpression.HAPPY,"So a leprechaun knows where Zanaris is eh?").also { stage = 600 } - 7 -> playerl(FacialExpression.HAPPY,"Thanks for the help!").also { stage = 700 } - 8 -> end().also { - startQuest(player,"Lost City") - } - 100 -> npcl(FacialExpression.HAPPY,"We're looking for Zanaris...GAH! I mean we're not here for any particular reason at all.").also { stage = 3 } - 101 -> npcl(FacialExpression.NEUTRAL,"Well we're on an adventure right now. Mind you, this is OUR adventure and we don't want to share it - find your own!").also { stage = 2 } - 200 -> npcl(FacialExpression.NEUTRAL,"No.").also { stage++ } - 201 -> playerl(FacialExpression.SAD,"Please?").also { stage++ } - 202 -> npcl(FacialExpression.ANNOYED,"No!").also { stage++ } - 203 -> playerl(FacialExpression.SAD,"PLEEEEEEEEEEEEEEEEEEEEEEEEASE???").also { stage++ } - 204 -> npcl(FacialExpression.ANGRY,"NO!").also { stage = END_DIALOGUE } - 250 -> npcl(FacialExpression.ANGRY,"Hah! Adventurers of our calibre don't just hang around in forests for fun, whelp!").also { stage++ } - 251 -> playerl(FacialExpression.THINKING,"Oh Really?").also { stage++ } - 252 -> playerl(FacialExpression.THINKING,"What are you camped out here for?").also{ stage = 100 } - 300 -> npcl(FacialExpression.HAPPY,"Don't you know of the legends that tell of the magical city, hidden in the swamp... Uh, no, you're right, we're wasting our time here.").also { stage = 4 } - 301 -> npcl(FacialExpression.NEUTRAL,"Ahahahaha! Zanaris isn't a person! It's a magical hidden city filled with treasure and rich... uh, nothing. It's nothing.").also { stage = 4 } - 302 -> npcl(FacialExpression.HALF_THINKING,"I don't think we want other people competing with us to find it. Forget I said anything.").also { stage = 5 } - 400 -> npcl(FacialExpression.NEUTRAL,"Well, we don't want to tell anyone else about that, because we don't want anyone else sharing in all that glory and treasure.").also { stage = 5 } - 450 -> npcl(FacialExpression.NEUTRAL,"When we've found Zanaris you'll... GAH! I mean, we're not here for any particular reason at all.").also { stage = 3 } - 500 -> when(buttonId) { - 1 -> playerl(FacialExpression.ASKING,"Please tell me.").also{ stage = 200 } - 2 -> playerl(FacialExpression.THINKING,"Well, it looks to ME like YOU don't know EITHER, seeing as you're all just sat around here.").also { stage++ } - } - 501 -> npcl(FacialExpression.ANGRY,"Of course we know! We just haven't found which tree the stupid leprechaun's hiding in yet!").also { stage++ } - 502 -> npcl(FacialExpression.NEUTRAL,"GAH! I didn't mean to tell you that! Look, just forget I said anything okay?").also { stage = 6 } - 600 -> npcl(FacialExpression.NEUTRAL,"Ye.. uh, no. No, not at all. And even if he did - which he doesn't - he DEFINITELY ISN'T hiding in some tree around here. Nope, definitely not. Honestly.").also { stage = 7 } - 700 -> npcl(FacialExpression.WORRIED,"Help? What help? I didn't help! Please don't say I did, I'll get in trouble!").also { stage = 8 } - 1000 -> npcl(FacialExpression.WORRIED,"What? How did you know that? Uh... I mean, no, no you're very wrong. Very wrong, and not right at all, and I definitely didn't tell you about that at all.").also { stage = END_DIALOGUE } - 2000 -> npcl(FacialExpression.SAD,"We're still searching for Zanaris...GAH! I mean we're not doing anything here at all.").also { stage++ } - 2001 -> playerl(FacialExpression.SAD,"I haven't found it yet either.").also { stage = END_DIALOGUE } - 3000 -> npcl(FacialExpression.SAD,"Oh please don't say that anymore! If the rest of my party knew I'd helped you they'd probably throw me out and make me walk home by myself!").also { stage++ } - 3001 -> npcl(FacialExpression.ASKING,"So anyway, what have you found out? Where is the fabled Zanaris? Is it all the legends say it is?").also { stage++ } - 3002 -> playerl(FacialExpression.HAPPY,"You know.... I think I'll keep that to myself.").also { stage = END_DIALOGUE } - } - return true - } - - override fun newInstance(player: Player): DialoguePlugin { - return WarriorDialogue(player) - } - override fun getIds(): IntArray = intArrayOf(NPCs.WARRIOR_650) -} - -/* -Some evidence from early/mid 2009 to help determine facial expressions, and contains some lines not previously included in this warrior's dialogue -this also functions as evidence for most of the warrior's dialogue -https://www.youtube.com/watch?v=nFDifUB8dxQ -https://www.youtube.com/watch?v=4BKRG4yw16o - */ diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/ArheinMCDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/ArheinMCDialogue.kt deleted file mode 100644 index 86358d38c..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/merlinsquest/ArheinMCDialogue.kt +++ /dev/null @@ -1,29 +0,0 @@ -package rs09.game.content.quest.members.merlinsquest - -import core.game.content.dialogue.FacialExpression -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.START_DIALOGUE - -/** - * @author lila - */ - -/** - * This class handles dialogue for Arhein for the Merlin's Crystal quest - */ - -class ArheinMCDialogue (val questStage: Int) : DialogueFile() { - override fun handle(componentID: Int, buttonID: Int) { - when (stage) { - START_DIALOGUE -> playerl(FacialExpression.NEUTRAL, "Can you drop me off on the way down please?").also { stage++ } - 1 -> { - npcl(FacialExpression.ANNOYED,"I don't think Sir Mordred would like that. He wants as few outsiders visiting as possible. I wouldn't want to lose his business.") - val quest = player!!.questRepository.getQuest("Merlin's Crystal") - player!!.questRepository.setStage(quest, 40) - stage = END_DIALOGUE - } - } - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherCedricNPC.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherCedricNPC.kt deleted file mode 100644 index e8e966038..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherCedricNPC.kt +++ /dev/null @@ -1,123 +0,0 @@ -package rs09.game.content.quest.members.monksfriend - -import api.questStage -import api.sendItemDialogue -import api.setQuestStage -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.item.Item -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE - -/** - * Handles BrotherCedricDialogue Dialogue - * @author Kya - */ -class BrotherCedricDialogue : DialogueFile() { - override fun handle(componentID: Int, buttonID: Int) { - val questName = "Monk's Friend" - val questStage = questStage(player!!, questName) - when { - questStage < 30 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello.").also{stage++} - 1 -> npcl(FacialExpression.DRUNK, "Honey, money, woman and wine!").also{stage++} - 2 -> playerl(FacialExpression.HALF_ASKING, "Are you ok?").also{stage++ } - 3 -> npcl(FacialExpression.DRUNK, "Yesshh...hic up...beautiful!").also{stage++} - 4 -> playerl(FacialExpression.NEUTRAL, "Take care old monk.").also{ stage++ } - 5 -> npcl(FacialExpression.DRUNK, "La..di..da..hic..up!").also{stage = END_DIALOGUE} - } - } - questStage == 30 -> { - when(stage){ - 0 -> playerl(FacialExpression.HAPPY, "Brother Cedric are you okay?").also{stage++} - 1 -> npcl(FacialExpression.DRUNK, "Yeesshhh, I'm very, very drunk..hic..up..").also{stage++} - 2 -> playerl(FacialExpression.NEUTRAL, "Brother Omad needs the wine for the party.").also{stage++} - 3 -> npcl(FacialExpression.SAD, "Oh dear, oh dear, I knew I had to do something!").also{stage = END_DIALOGUE}.also{ setQuestStage(player!!, questName, 40) } - } - } - questStage == 40 -> { - when(stage){ - 0 -> playerl(FacialExpression.HAPPY, "Are you okay?").also{stage++} - 1 -> npcl(FacialExpression.DRUNK, "Hic up! Oh my head! I need a jug of water.").also{stage++} - 2 -> if (player!!.inventory.containItems(Items.JUG_OF_WATER_1937)){ - playerl(FacialExpression.FRIENDLY, "Cedric! Here, drink! I have some water.").also{stage=10} - } else { - playerl(FacialExpression.NEUTRAL, "I'll see if I can get some.").also{stage = 3} - } - 3 -> npcl(FacialExpression.DRUNK, "Thanks! *hic*").also{stage = END_DIALOGUE} - 10 -> npcl(FacialExpression.DRUNK, "Good stuff, my head's spinning!").also {stage++} - 11 -> { - sendItemDialogue(player!!, Items.JUG_OF_WATER_1937, "You hand the monk a jug of water.") - stage=0 - player!!.inventory.remove(Item(Items.JUG_OF_WATER_1937)) - setQuestStage(player!!, questName, 41) - } - } - } - questStage == 41 -> { - when(stage){ - 0 -> npcl(FacialExpression.HAPPY, "Aah! That's better!").also{stage++} - 1 -> npcl(FacialExpression.HAPPY, "Now I just need to fix this cart and we can go party.").also {stage++} - 2 -> npcl(FacialExpression.NEUTRAL, "Could you help?").also{stage++} - 3 -> options( - "No, I've helped enough monks today!", - "Yes, I'd be happy to!").also{stage++} - 4 -> when(buttonID){ - 1 -> playerl(FacialExpression.ANGRY, "No, I've helped enough monks today!").also{stage++} - 2 -> playerl(FacialExpression.FRIENDLY, "Yes, I'd be happy to!").also{stage=10} - } - 5 -> npcl(FacialExpression.HAPPY, "In that case I'd better drink more wine! It helps me think.").also {stage=END_DIALOGUE} - 10 -> npcl(FacialExpression.HAPPY, "Excellent, I just need some wood.").also{stage++} - 11 -> playerl(FacialExpression.NEUTRAL, "Ok, I'll see what I can find.").also{stage = END_DIALOGUE}.also{setQuestStage(player!!, questName, 42)} - } - } - questStage == 42 -> { - when(stage){ - 0 -> npcl(FacialExpression.HALF_ASKING, "Did you manage to get some wood?").also{stage++} - 1 -> if (player!!.inventory.containItems(Items.LOGS_1511)){ - sendItemDialogue(player!!, Items.LOGS_1511, "You hand Cedric some logs.") - stage=2 - } else { - playerl(FacialExpression.SAD, "Not yet, I'm afraid.").also{stage = END_DIALOGUE} - } - 2 -> playerl(FacialExpression.HAPPY, "Here you go!").also{stage++} - 3 -> npcl(FacialExpression.HAPPY, "Well done! Now I'll fix this cart. You head back to Brother Omad and tell him I'll be there soon.").also{stage++} - 4 -> playerl(FacialExpression.HAPPY, "Ok! I'll see you later!").also{ - stage=END_DIALOGUE - player!!.inventory.remove(Item(Items.LOGS_1511)) - setQuestStage(player!!, questName, 50) - } - } - } - questStage == 50 -> { - when(stage){ - 0 -> playerl(FacialExpression.HAPPY, "Hello Cedric.").also{stage++} - 1 -> npcl(FacialExpression.NEUTRAL, "Hi, I'm almost done here. Could you tell Omad that I'll be back soon?").also{stage = END_DIALOGUE } - } - } - questStage == 100 -> { - when(stage){ - 0 -> npcl(FacialExpression.NEUTRAL, "Brother Omad sends you his thanks! He won't be in a fit state to thank you in person.").also{stage = END_DIALOGUE} - } - } - } - } -} - -/** - * Handles BrotherCedricListener to launch the dialogue - * @author Kya - */ -class BrotherCedricListener : InteractionListener { - override fun defineListeners() { - on(NPCs.BROTHER_CEDRIC_280, IntType.NPC, "talk-to"){ player, _ -> - player.dialogueInterpreter.open(BrotherCedricDialogue(), NPC(NPCs.BROTHER_CEDRIC_280)) - return@on true - } - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherOmadNPC.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherOmadNPC.kt deleted file mode 100644 index dcc174a23..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/monksfriend/BrotherOmadNPC.kt +++ /dev/null @@ -1,216 +0,0 @@ -package rs09.game.content.quest.members.monksfriend - -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.item.Item -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.game.world.map.RegionManager -import core.game.world.update.flag.context.Animation -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.world.GameWorld.Pulser -import rs09.tools.END_DIALOGUE - - -/** -* Handles BrotherOmadDialogue Dialogue -* @author Kya -*/ -class BrotherOmadDialogue : DialogueFile() { - override fun handle(componentID: Int, buttonID: Int) { - val questName = "Monk's Friend" - val questStage = questStage(player!!, questName) - when (questStage) { - 0 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello there. What's wrong?").also { stage++ } - 1 -> npcl(FacialExpression.SAD, "*yawn*...oh, hello...*yawn* I'm sorry! I'm just so tired! I haven't slept in a week!").also { stage++ } - 2 -> options( - "Why can't you sleep, what's wrong?", - "Sorry! I'm too busy to hear your problems!").also { stage++ } - 3 -> when (buttonID) { - 1 -> playerl(FacialExpression.HALF_ASKING, "Why can't you sleep, what's wrong?").also { stage++ } - 2 -> playerl(FacialExpression.FRIENDLY, "Sorry! I'm too busy to hear your problems!").also { stage = END_DIALOGUE } - } - 4 -> npcl(FacialExpression.SAD, "It's brother Androe's son! With his constant: Waaaaaah! Waaaaaaaaah! Androe said it's natural, but it's so annoying!").also { stage++ } - - 5 -> playerl(FacialExpression.NEUTRAL, "I suppose that's what kids do.").also { stage++ } - 6 -> npcl(FacialExpression.SAD, "He was fine, up until last week! Thieves broke in! They stole his favourite sleeping blanket!").also { stage++ } - 7 -> npcl(FacialExpression.SAD, "Now he won't rest until it's returned... ...and that, means neither can I!").also { stage++ } - 8 -> options( - "Can I help at all?", - "I'm sorry to hear that! I hope you find his blanket.").also { stage++ } - 9 -> when (buttonID) { - 1 -> playerl(FacialExpression.HALF_ASKING, "Can I help at all?").also { stage++ } - 2 -> playerl(FacialExpression.FRIENDLY, "I'm sorry to hear that! I hope you find his blanket.").also { stage = END_DIALOGUE } - } - 10 -> npcl(FacialExpression.HALF_WORRIED, "Please do. We won't be able to help you as we are peaceful men but we would be grateful for your help!").also { stage++ } - 11 -> playerl(FacialExpression.HALF_ASKING, "Where are they?").also { stage++ } - 12 -> npcl(FacialExpression.SAD, "They hide in a secret cave in the forest. It's hidden under a ring of stones. Please, bring back the blanket!").also { stage = END_DIALOGUE }.also { player!!.questRepository.getQuest("Monk's Friend").start(player) }.also { player!!.questRepository.syncronizeTab(player) } - } - } - 10 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello.").also{stage = 20 } - 20 -> npcl(FacialExpression.SAD, "*yawn*...oh, hello again...*yawn*").also{stage++ } - 21 -> npcl(FacialExpression.SAD, "Please tell me you have the blanket.").also{stage++} - 22 -> if(player!!.inventory.containItems(Items.CHILDS_BLANKET_90)){ - playerl(FacialExpression.HAPPY, "Yes! I've recovered it from the clutches of the evil thieves!").also{stage = 30} - } else { - playerl(FacialExpression.SAD, "I'm afraid not.").also{stage++} - } - 23 -> npcl(FacialExpression.SAD, "I need some sleep!").also{stage = END_DIALOGUE} - 30 -> { - sendItemDialogue(player!!, Items.CHILDS_BLANKET_90, "You hand the monk the childs blanket.") - stage=31 - } - 31 -> npcl(FacialExpression.HAPPY, "Really, that's excellent, well done! Maybe now I will be able to get some rest.").also{stage++} - 32 -> npcl(FacialExpression.SAD, "*yawn*..I'm off to bed! Farewell brave traveller!").also{player!!.inventory.remove(Item(Items.CHILDS_BLANKET_90)) - setQuestStage(player!!, questName, 20); stage = END_DIALOGUE} - } - } - 20 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello, how are you?").also{stage = 30 } - 30 -> npcl(FacialExpression.HAPPY, "Much better now I'm sleeping well! Now I can organise the party.").also{stage++} - 31 -> playerl(FacialExpression.HAPPY, "Ooh! What party?").also{stage++} - 32 -> npcl(FacialExpression.HAPPY, "The son of Brother Androe's birthday party. He's going to be one year old!").also {stage++} - 33 -> playerl(FacialExpression.HAPPY, "That's sweet!").also{stage++ } - 34 -> npcl(FacialExpression.HAPPY, "It's also a great excuse for a drink!").also{stage++} - 35 -> npcl(FacialExpression.NEUTRAL, "We just need Brother Cedric to return with the wine.").also{stage++} - 36 -> options( - "Who's Brother Cedric?", - "Enjoy it! I'll see you soon!").also { stage++} - 37 -> when(buttonID){ - 1 -> playerl(FacialExpression.HALF_ASKING, "Who's Brother Cedric?").also{stage++} - 2 -> playerl(FacialExpression.FRIENDLY, "Enjoy it! I'll see you soon!").also{stage = 998} - } - 998 -> npcl(FacialExpression.NEUTRAL, "Take care traveller.").also{stage = END_DIALOGUE} - 38 -> npcl(FacialExpression.FRIENDLY, "Cedric is a member of the order too. We sent him out three days ago to collect wine. But he didn't return!").also{stage++} - 39 -> npcl(FacialExpression.NEUTRAL, "He most probably got drunk and lost in the forest!").also{stage++} - 40 -> options( - "I've no time for that, sorry.", - "Where should I look?", - "Can I come to the party?").also { stage++} - 41 -> when(buttonID){ - 1 -> playerl(FacialExpression.NEUTRAL, "I've no time for that, sorry.").also {stage = 996} - 2 -> playerl(FacialExpression.HALF_ASKING, "Where should I look?").also {stage++} - 3 -> playerl(FacialExpression.HALF_ASKING, "Can I come to the party?").also{stage = 997} - } - 996 -> npcl(FacialExpression.NEUTRAL, "Okay traveller, take care.").also{stage = END_DIALOGUE} - 997 -> npcl(FacialExpression.NEUTRAL, "Of course, but we need the wine first.").also{stage = END_DIALOGUE} - 42 -> npcl(FacialExpression.FRIENDLY, "Oh, he won't be far. Probably out in the forest.").also{stage++} - 43 -> playerl(FacialExpression.FRIENDLY, "Ok, I'll go and find him.").also { stage = END_DIALOGUE}.also{ setQuestStage(player!!, questName, 30)} - } - } - 30 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello brother Omad.").also{stage = 50} - 50 -> npcl(FacialExpression.NEUTRAL, "Hello adventurer, have you found Brother Cedric?").also{stage++} - 51 -> playerl(FacialExpression.SAD, "Not yet.").also{stage++} - 52 -> npcl(FacialExpression.FRIENDLY, "Well, keep looking, we need that wine!").also{stage = END_DIALOGUE} - } - } - 40 -> { - when(stage) { - 0 -> npcl(FacialExpression.HAPPY, "Hello adventurer, have you found Brother Cedric?").also{stage = 60} - 60 -> playerl(FacialExpression.NEUTRAL, "Yes I've seen him, he's a bit drunk!").also{stage++} - 61 -> npcl(FacialExpression.FRIENDLY, "Well, try your best to get him back here!").also{stage = END_DIALOGUE} - } - } - 41, 42 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hello again brother Omad.").also{stage = 70} - 70 -> npcl(FacialExpression.NEUTRAL, "Hello adventurer, where's Brother Cedric?").also{stage++} - 71 -> npcl(FacialExpression.NEUTRAL, "He's having a bit of trouble with his cart.").also{stage++} - 72 -> npcl(FacialExpression.NEUTRAL, "Hmmm! Maybe you could help?").also{stage = END_DIALOGUE} - } - } - 50 -> { - when(stage) { - 0 -> playerl(FacialExpression.HAPPY, "Hi Omad, Brother Cedric is on his way!").also{stage = 80} - 80 -> npcl(FacialExpression.HAPPY, "Good! Good! Now we can party!").also{stage++} - 81 -> npcl(FacialExpression.HAPPY, "I have little to repay you with, but I'd like to offer you some rune stones. But first, let's party!").also{stage++} - 82 -> sendDialogue(player!!, "Brother Omad gives you 8 Law Runes").also{stage++} - 83 -> playerl(FacialExpression.HAPPY, "Thanks Brother Omad!").also{stage++} - 84 -> { - commenceMonkParty(true) - end() - } - } - } - 100 -> { - commenceMonkParty(false) - } - } - } - - private fun commenceMonkParty(questComplete : Boolean) { - val brotherOmad: NPC? = RegionManager.getNpc(Location(2604, 3209, 0), 279, 6) - val monk: NPC? = RegionManager.getNpc(Location(2609, 3207, 0), 281, 6) - - // Spawn balloons when PartyRoom code is fixed. - - Pulser.submit(object : Pulse(1) { - var count = 0 - override fun pulse(): Boolean { - when (count) { - 1 -> { - brotherOmad!!.sendChat("Party!") - brotherOmad.animator.animate(Animation(866)) // Dance - - } - 3 -> { - player!!.sendChat("Woop!") - player!!.animator.animate(Animation(866)) // Dance - } - 5 -> { - monk!!.sendChat("Yeah!") - monk.animator.animate(Animation(2106)) // Jig - } - 7 -> brotherOmad!!.sendChat("Let's boogie!") - 9 -> player!!.sendChat("Oh, baby!") - 11 -> monk!!.sendChat("GO!") - 13 -> { - brotherOmad!!.sendChat("Get down!") - brotherOmad.animator.animate(Animation(2108)) // Headbang - } - 15 -> player!!.sendChat("Feel the rhythm!") - 17 -> monk!!.sendChat("Dance!") - 19 -> brotherOmad!!.sendChat("Oh my!") - 21 -> { - player!!.sendChat("Watch me go!") - player!!.animator.animate(Animation(861)) // Laugh - } - 23 -> { - monk!!.sendChat("You go!") - monk.animator.animate(Animation(2109)) // Jump for joy - } - 25 -> if (questComplete) { - player!!.questRepository.getQuest("Monk's Friend").finish(player) - } - } - count++ - return false - } - }) - } -} - -/** - * Handles BrotherCedricListener to launch the dialogue - * @author Kya - */ -class BrotherOmadListener : InteractionListener { - override fun defineListeners() { - on(NPCs.BROTHER_OMAD_279, IntType.NPC, "talk-to"){ player, _ -> - player.dialogueInterpreter.open(BrotherOmadDialogue(), NPC(NPCs.BROTHER_OMAD_279)) - return@on true - } - } -} diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSDrezelDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSDrezelDialogue.kt deleted file mode 100644 index 98ac12013..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSDrezelDialogue.kt +++ /dev/null @@ -1,120 +0,0 @@ -package rs09.game.content.quest.members.naturespirit - -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.audio.Audio -import core.game.system.task.Pulse -import core.game.world.update.flag.context.Animation -import core.game.world.update.flag.context.Graphics -import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE -import rs09.tools.stringtools.colorize - -class NSDrezelDialogue : DialogueFile() { - var questStage = 0 - override fun handle(componentID: Int, buttonID: Int) { - questStage = player!!.questRepository.getStage("Nature Spirit") - - if(questStage <= 5){ - when(stage){ - 0 -> options("Sorry, not interested...", "Well, what is it, I may be able to help?").also { stage++ } - 1 -> when(buttonID){ - 1 -> playerl(FacialExpression.NEUTRAL, "Sorry, not interested.").also { stage = END_DIALOGUE } - 2 -> playerl(FacialExpression.FRIENDLY, "Well, what is it, I may be able to help?").also { stage++ } - } - - 2 -> npcl(FacialExpression.HALF_THINKING, "There's a man called Filliman who lives in Mort Myre, I wonder if you could look for him? The swamps of Mort Myre are dangerous though, they're infested with Ghasts!").also { stage++ } - 3 -> options("Who is this Filliman?", "Where's Mort Myre?", "What's a Ghast?", "Yes, I'll go and look for him.", "Sorry, I don't think I can help.").also { stage++ } - 4 -> when(buttonID){ - 1 -> npcl(FacialExpression.NEUTRAL, "Filliman Tarlock is his full name and he's a Druid. He lives in Mort Myre much like a hermit, but there's many a traveller who he's helped.").also { stage-- } - 2 -> npcl(FacialExpression.NEUTRAL, "Mort Myre is a decayed and dangerous swamp to the south. It was once a beautiful forest but has since become filled with vile emanations from within Morytania.").also { stage = 6 } - 3 -> npcl(FacialExpression.NEUTRAL, "A Ghast is a poor soul who died in Mort Myre. They're undead of a special class, they're untouchable as far as I'm aware!").also { stage = 5 } - 4 -> playerl(FacialExpression.FRIENDLY, "Yes, I'll go and look for him.").also { stage = 10 } - 5 -> playerl(FacialExpression.NEUTRAL, "Sorry, I don't think I can help.").also { stage = END_DIALOGUE } - } - 5 -> npcl(FacialExpression.NEUTRAL, "Filliman knew how to tackle them, but I've not heard from him in a long time. Ghasts, when they attack, will devour any food you have. If you have no food, they'll draw their nourishment from you!").also { stage = 3 } - 6 -> npcl(FacialExpression.NEUTRAL, " We put a fence around it to stop unwary travellers going in. Anyone who dies in the swamp is forever cursed to haunt it as a Ghast. Ghasts attack travellers, turning food to rotten filth.").also { stage = 3 } - - 10 -> npcl(FacialExpression.NEUTRAL, "That's great, but it is very dangerous. Are you sure you want to do this?").also { stage++ } - 11 -> options("Yes, I'm sure.", "Sorry, I don't think I can help.").also { stage++ } - 12 -> when(buttonID){ - 1 -> playerl(FacialExpression.FRIENDLY, "Yes, I'm sure.").also { stage = 20 } - 2 -> playerl(FacialExpression.NEUTRAL, "Sorry, I don't think I can help.").also { stage = END_DIALOGUE } - } - - 20 -> npcl(FacialExpression.NEUTRAL, "That's great! Many Thanks! Now then, please be aware of the Ghasts, you cannot attack them, only Filliman knew how to take them on.").also { stage++ } - 21 -> npcl(FacialExpression.NEUTRAL, "Just run from them if you can. If you start to get lost, try to make your way back to the temple.").also { stage++ } - 22 -> { - sendDoubleItemDialogue(player!!, Items.MEAT_PIE_2327, Items.APPLE_PIE_2323, "The cleric hands you some food.") - if(questStage == 0){ - repeat(3) { addItemOrDrop(player!!, Items.MEAT_PIE_2327, 1) } - repeat(3) { addItemOrDrop(player!!, Items.APPLE_PIE_2323, 1) } - player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, 5) - } - stage++ - } - 23 -> npcl(FacialExpression.NEUTRAL, "Please take this food to Filliman, he'll probably appreciate a bit of cooked food. Now, he's never revealed where he lives in the swamps but I guess he'd be to the south, search for him won't you?").also { stage++ } - 24 -> playerl(FacialExpression.FRIENDLY, "I'll do my very best, don't worry, if he's in there and he's still alive I'll definitely find him.").also { stage = END_DIALOGUE; player!!.questRepository.getQuest("Nature Spirit").start(player!!) } - } - } - - else if(questStage == 15) { - when(stage){ - 0 -> playerl(FacialExpression.HALF_GUILTY, "I've found Filliman and you should prepare for some sad news.").also { stage++ } - 1 -> npcl(FacialExpression.HALF_GUILTY, "You mean... he's dead?").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL, "Well, er sort of. I got to his camp and I encountered a spirit of some kind. I don't think it was a Ghast, it tried to communicate with me, but made no sense, it was all 'ooooh' this and 'oooh' that.").also { stage++ } - 3 -> npcl(FacialExpression.NEUTRAL, "Hmmm, that's very interesting, I seem to remember Father Aereck in Lumbridge and his predecessor Father Urhney having a similar issue. Though this is probably not related to your problem.").also { stage++ } - 4 -> npcl(FacialExpression.NEUTRAL, " I will pray that it wasn't the spirit of my friend Filliman, but some lost soul who needs some help. Please do let me know how you get on with it.").also { stage = END_DIALOGUE } - } - } - - else if(questStage == 35){ - when(stage){ - 0 -> playerl(FacialExpression.FRIENDLY, "Hello again! I'm helping Filliman, he plans to become a nature spirit. I have a spell to cast but first I need to be blessed. Can you bless me?").also { stage++ } - 1 -> npcl(FacialExpression.NEUTRAL, "But you haven't sneezed!").also { stage++ } - 2 -> playerl(FacialExpression.FRIENDLY, "You're so funny! But can you bless me?").also { stage++ } - 3 -> npcl(FacialExpression.NEUTRAL, "Very well my friend, prepare yourself for the blessings of Saradomin. Here we go!").also { stage++ } - 4 -> { - end() - player!!.lock(); - submitIndividualPulse(player!!, BlessingPulse(npc!!, player!!)) - } - } - } - - else if(questStage == 40){ - npcl(FacialExpression.NEUTRAL, "There you go my friend, you're now blessed. It's funny, now I look at you, there seems to be something of the faith about you. Anyway, good luck with your quest!").also { stage = END_DIALOGUE; player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, 45) } - } - - else { - when(stage){ - 0 -> npcl(FacialExpression.NEUTRAL, "Hello, friend, how goes your quest with Filliman?").also { stage++ } - 1 -> playerl(FacialExpression.NEUTRAL, "Still working at it.").also { stage++ } - 2 -> npcl(FacialExpression.NEUTRAL, "Well enough! Do let me know when something develops!").also { stage = END_DIALOGUE } - } - } - } - -} - -private class BlessingPulse(val drezel: NPC, val player: Player) : Pulse(){ - var ticks = 0 - - override fun pulse(): Boolean { - when(ticks){ - 0 -> animate(drezel, 1162).also { spawnProjectile(drezel, player, 268); playAudio(player, Audio(2674)) } - 2 -> visualize(player, Animation(645), Graphics(267, 100)) - 4 -> unlock(player).also { player.questRepository.getQuest("Nature Spirit").setStage(player, 40); return true } - } - ticks++ - return false - } - - override fun stop() { - super.stop() - openDialogue(player, NSDrezelDialogue(), drezel) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSTarlockDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSTarlockDialogue.kt deleted file mode 100644 index 069e5d2d0..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSTarlockDialogue.kt +++ /dev/null @@ -1,240 +0,0 @@ -package rs09.game.content.quest.members.naturespirit - -import api.Container -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.quest.Quest -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.game.world.update.flag.context.Graphics -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.tools.END_DIALOGUE - -@Initializable -class NSTarlockDialogue(player: Player? = null) : DialoguePlugin(player) { - var questStage = 0 - - override fun newInstance(player: Player?): DialoguePlugin { - return NSTarlockDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - val quest = player.questRepository.getQuest("Nature Spirit") - questStage = quest.getStage(player) - - if(questStage > 10 && !inEquipment(player, Items.GHOSTSPEAK_AMULET_552)){ - npcl(FacialExpression.HALF_GUILTY, "OooOOOOOOoooOoOOoOOOo") - setQuest(15) - return false - } - - when(questStage){ - 10, 15 -> sendDialogue("A shifting apparition appears in front of you.").also { stage = 1000 } - 20 -> npcl(FacialExpression.HALF_GUILTY, "Oh, hello there, do you still think I'm dead? It's hard to see how I could be dead when I'm still in the world. I can see everything quite clearly. And nothing of what you say reflects the truth.") - 25 -> npcl(FacialExpression.HALF_GUILTY, "Oh, hello... Sorry, you've caught me at a bad time, it's just that I've had a sign you see and I need to find my journal.").also { stage = 7 } - 30 -> npcl(FacialExpression.HALF_GUILTY, "Thanks for the journal, I've been reading it. It looks like I came to a violent and bitter end but that's not really important. I just have to figure out what I am going to do now?").also { stage = 14 } - 35 -> npcl(FacialExpression.NEUTRAL, "Hello there, have you been blessed yet?").also { stage = 60 } - 45 -> { - if(inInventory(player, Items.MORT_MYRE_FUNGUS_2970)){ - npcl(FacialExpression.NEUTRAL, "Did you manage to get something from nature?").also { stage = 80 } - } else { - playerl( - FacialExpression.NEUTRAL, - "Hello, I've been blessed but I don't know what to do now." - ).also { stage = 70 } - } - } - 50 -> npcl(FacialExpression.NEUTRAL, " Hello again! I don't suppose you've found out what the other components of the Nature spell are have you?").also { stage = 90 } - else -> npcl(FacialExpression.NEUTRAL, ".......").also { stage = END_DIALOGUE } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> if(inInventory(player, Items.MIRROR_2966)){ - sendDialogue("You use the mirror on the spirit","of the dead Filliman Tarlock.").also { stage++ } - } else { - playerl(FacialExpression.NEUTRAL, "Yes, I do think you're dead and I'll prove it somehow.").also { stage = 1002 } - } - - 1 -> playerl(FacialExpression.NEUTRAL, "Here take a look at this, perhaps you can see that you're utterly transparent now!").also { stage++ } - 2 -> sendDialogue("The spirit of Filliman reaches forwards and takes the mirror.").also { stage++ } - 3 -> npcl(FacialExpression.HALF_GUILTY, "Well, that is the most peculiar thing I've ever experienced. Strange how well it reflects the stagnant swamp behind me, but there is nothing of my own visage apparent.").also { stage++ } - 4 -> playerl(FacialExpression.NEUTRAL, "That's because you're dead! Dead as a door nail... Deader in fact... You bear a remarkable resemblance to wormbait! Err... No offence...").also { stage++ } - 5 -> npcl(FacialExpression.HALF_GUILTY, "I think you might be right my friend, though I still feel very much alive. It is strange how I still come to be here and yet I've not turned into a Ghast.").also { stage++ } - 6 -> npcl(FacialExpression.HALF_GUILTY, " It must be a sign... Yes a sign... I must try to find out what it means. Now, where did I put my journal?").also { stage++ } - 7 -> if(!inInventory(player, Items.JOURNAL_2967)){ - playerl(FacialExpression.NEUTRAL, "Where did you put it?").also { stage++; setQuest(25) } - } else sendDialogue("You give the journal to Filliman Tarlock").also { removeItem(player, Items.JOURNAL_2967, Container.INVENTORY); stage = 10; setQuest(30) } - - //no journal - 8 -> npcl(FacialExpression.HALF_GUILTY, "Well, if I knew that, I wouldn't still be looking for it. However, I do remember something about a knot? Perhaps I was meant to tie a knot or something?").also { stage = END_DIALOGUE } - - //has journal - 10 -> playerl(FacialExpression.NEUTRAL, "Here, I found this, maybe you can use it?").also { stage++ } - 11 -> npcl(FacialExpression.FRIENDLY, "My journal! That should help to collect my thoughts.").also { stage++ } - 12 -> sendDialogue("~ The spirit starts leafing through the journal. ~", "~ He seems quite distant as he regards the pages. ~", "~ After some time the druid faces you again. ~").also {stage++} - 13 -> npcl(FacialExpression.HALF_GUILTY, "It's all coming back to me now. It looks like I came to a violent and bitter end but that's not important now. I just have to figure out what I am going to do now?").also { stage++ } - 14 -> options("Being dead, what options do you think you have?", "So, what's your plan?", "Well, good luck with that.", "How can I help?", "Ok thanks.").also { stage++ } - 15 -> when(buttonId){ - 1 -> playerl(FacialExpression.NEUTRAL, "Being dead, what options do you think you have? I'm not trying to be rude or anything, but it's not like you have many options is it? I mean, it's either up or down for you isn't it?").also { stage = 20 } - 2 -> playerl(FacialExpression.NEUTRAL, "So, what's your plan?").also { stage = 30 } - 3 -> playerl(FacialExpression.NEUTRAL, "Well, good luck with that.").also { stage = 40 } - 4 -> playerl(FacialExpression.NEUTRAL, "How can I help?").also { stage = 50 } - 5 -> playerl(FacialExpression.NEUTRAL, "Ok thanks.").also { stage = END_DIALOGUE } - } - - //Being dead, what options - 20 -> npcl(FacialExpression.HALF_GUILTY, "Hmm, well you're a poetic one aren't you. Your material world logic stands you in good stead... If you're standing in the material world...").also { stage = 14 } - - //what's your plan? - 30 -> npcl(FacialExpression.HALF_GUILTY, "In my former incarnation I was Filliman Tarlock, a great druid of some power. I spent many years in this place, which was once a forest and I would wish to protect it as a nature spirit.").also { stage = 14 } - - //good luck with that - 40 -> npcl(FacialExpression.HALF_GUILTY, "Won't you help me to become a nature spirit? I could really use your help!").also { stage = 14 } - - //How can I help? - 50 -> npcl(FacialExpression.HALF_GUILTY, "Will you help me to become a nature spirit? The directions for becoming one are a bit vague, I need three things but I know how to get one of them. Perhaps you can help collect the rest?").also { stage++ } - 51 -> playerl(FacialExpression.NEUTRAL, "I might be interested, what's involved?").also { stage++ } - 52 -> npcl(FacialExpression.HALF_GUILTY, "Well, the book says, that I need, and I quote:- 'Something with faith', 'something from nature' and the 'spirit-to-become' freely given'. Hmm, I know how to get something from nature.").also { stage++ } - 53 -> playerl(FacialExpression.NEUTRAL, "Well, that does seem a bit vague.").also { stage++ } - 54 -> npcl(FacialExpression.HALF_GUILTY, "Hmm, it does and I could understand if you didn't want to help. However, if you could perhaps at least get the item from nature, that would be a start. Perhaps we can figure out the rest as we go along.").also { stage++ } - 55 -> sendDialogue(*splitLines("The druid produces a small sheet of papyrus with some writing on it.")).also { addItemOrDrop(player, Items.DRUIDIC_SPELL_2968); setQuest(35); stage++ } - 56 -> npcl(FacialExpression.NEUTRAL, "This spell needs to be cast in the swamp after you have been blessed. I'm afraid you'll need to go to the temple to the North and ask a member of the clergy to bless you.").also { stage++ } - 57 -> playerl(FacialExpression.NEUTRAL, "Blessed, what does that do?").also { stage++ } - 58 -> npcl(FacialExpression.NEUTRAL, "It is required if you're to cast this druid spell. Once you've cast the spell, you should find something from nature. Bring it back to me and then we'll try to figure out the other things we need.").also { stage = END_DIALOGUE } - - //have you been blessed yet - 60 -> playerl(FacialExpression.NEUTRAL, "No, not yet.").also { stage++ } - 61 -> npcl(FacialExpression.NEUTRAL, "Well, hurry up!").also { stage++ } - 62 -> if(inInventory(player, Items.DRUIDIC_SPELL_2968) || inBank(player, Items.DRUIDIC_SPELL_2968)) end() - else playerl(FacialExpression.NEUTRAL, "Could I have another bloom scroll please?").also { stage++ } - 63 -> npcl(FacialExpression.NEUTRAL, "Sure, but please look after this one.").also { stage++ } - 64 -> sendDialogue("The spirit of Filliman Tarlock gives you another bloom spell.").also { addItemOrDrop(player, Items.DRUIDIC_SPELL_2968); stage = END_DIALOGUE } - - //I've been blessed - 70 -> npcl(FacialExpression.NEUTRAL, "Well, you need to bring 'something from nature', 'something with faith' and 'something of the spirit-to- become freely given.'").also { stage++ } - 71 -> playerl(FacialExpression.NEUTRAL, "Yeah, but what does that mean?").also { stage++ } - 72 -> npcl(FacialExpression.NEUTRAL, "Hmm, it is a conundrum, however, if you use that spell I gave you, you should be able to get from nature. Once you have that, we may be puzzle the rest out.").also { stage++ } - 73 -> if(!inInventory(player, Items.DRUIDIC_SPELL_2968) && !inBank(player, Items.DRUIDIC_SPELL_2968)){ - playerl(FacialExpression.NEUTRAL, "Could I have another bloom scroll please?").also { stage++ } - } else end() - 74 -> npcl(FacialExpression.NEUTRAL, "Sure, but please look after this one.").also { stage++ } - 75 -> sendDialogue("The spirit of Filliman Tarlock gives you","another bloom spell.").also { addItem(player, Items.DRUIDIC_SPELL_2968); stage = END_DIALOGUE } - - //has fungus - 80 -> sendDialogue("You show the fungus to Filliman.").also { stage++ } - 81 -> playerl(FacialExpression.NEUTRAL, "Yes, I have a fungus here that I picked.").also { stage++ } - 82 -> npcl(FacialExpression.NEUTRAL, "Wonderful, the mushroom represents 'something from nature'. Now we need to work out what the other components of the spell are!").also { stage = 90; setQuest(50) } - - //pre-spell options - 90 -> options("What are the things that are needed?", "What should I do when I have those things?", "I think I've solved the puzzle!", "Could I have another bloom scroll please?", "Ok, thanks.").also { stage++ } - 91 -> when(buttonId){ - 1 -> playerl(FacialExpression.NEUTRAL, "What are the things that are needed?").also { stage = 100 } - 2 -> playerl(FacialExpression.NEUTRAL, "What should I do when I have those things?").also { stage = 110 } - 3 -> playerl(FacialExpression.FRIENDLY, "I think I've solved the puzzle!").also { stage = 120 } - 4 -> playerl(FacialExpression.FRIENDLY, "Can I have another bloom scroll please?").also { stage = 130 } - 5 -> playerl(FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } - } - - //What things are needed? - 100 -> npcl(FacialExpression.NEUTRAL, "The three things are: 'Something with faith', 'something from nature' and 'something of the spirit-to-become freely given'.").also { stage++ } - 101 -> playerl(FacialExpression.FRIENDLY, " Ok, and 'something from nature' is the mushroom from the bloom spell you gave me?").also { stage++ } - 102 -> npcl(FacialExpression.FRIENDLY, "Yes, that's correct, that seems right to me. The other things we need are 'something with faith' and 'something of the spirit-to-become freely given.").also { stage++ } - 103 -> playerl(FacialExpression.NEUTRAL, "Do you have any ideas what those things are?").also { stage++ } - 104 -> npcl(FacialExpression.HALF_GUILTY, "I'm sorry my friend, but I do not.").also { stage = 90 } - - //What should I do when I have them? - 110 -> npcl(FacialExpression.NEUTRAL, "It says,.. 'to arrange upon three rocks around the spirit-to-become...'. Then I must cast a spell. As you can see, I've already placed the rocks.").also { stage++ } - 111 -> playerl(FacialExpression.NEUTRAL, "Can we just place the components on any rock?").also { stage++ } - 112 -> npcl(FacialExpression.NEUTRAL, "Well, the only thing the journal says is that 'something with faith stands south of the spirit-to-become', but I'm so confused now I don't really know what that means.").also { stage = 90 } - - //I think I've solved the puzzle! - 120 -> npcl(FacialExpression.NEUTRAL, "Oh really.. Have you placed all the items on the stones? Ok, well, let's try!").also { stage++ } - 121 -> sendDialogue("~ The druid attempts to cast a spell. ~").also { stage++ } - 122 -> { - animate(npc, 812) - if(NSUtils.hasPlacedCard(player) && NSUtils.hasPlacedFungus(player) && NSUtils.onStone(player)){ - end() - player.lock() - val locations = arrayOf(Location.create(3439, 3336, 0), Location.create(3441, 3336, 0), Location.create(3440, 3335, 0)) - repeat(3) {i -> spawnProjectile(locations[i], Location.create(3440, 3336, 0), 268, 0, 35, 0, 100, 20) } - submitIndividualPulse(player, object : Pulse(4){ - override fun pulse(): Boolean { - sendNPCDialogue(player, npc.originalId, "Aha, everything seems to be in place! You can come through now into the grotto for the final section of my transformation.") - setQuest(55) - unlock(player) - return true - } - - override fun stop() { - visualize(npc, -1, Graphics(266, 80)) - super.stop() - } - }) - } else { - npcl(FacialExpression.NEUTRAL, "Hmm, something still doesn't seem right. I think we need something more before we can continue.") - } - - stage = END_DIALOGUE - } - - 130 -> if(inInventory(player, Items.DRUIDIC_SPELL_2968) || inBank(player, Items.DRUIDIC_SPELL_2968)){ - npcl(FacialExpression.NEUTRAL, "No, you've already got one!").also { stage = END_DIALOGUE } - } else { - npcl(FacialExpression.NEUTRAL, "Sure, but look after this one.") - addItem(player, Items.DRUIDIC_SPELL_2968) - stage = END_DIALOGUE - } - - //Initial dialogue - 1000 -> playerl(FacialExpression.HALF_ASKING, "Hello?").also { stage++ } - 1001 -> if(inEquipment(player, Items.GHOSTSPEAK_AMULET_552)){ - npcl(FacialExpression.EXTREMELY_SHOCKED, "Oh, I understand you! At last, someone who doesn't just mumble. I understand what you're saying!").also { stage++ } - } else npcl(FacialExpression.HALF_GUILTY, "OooOOoOOoOOOOo.") - - 1002 -> options("I'm wearing an amulet of ghost speak!","How long have you been a ghost?", "What's it like being a ghost?", "Ok, thanks.").also { stage++ } - 1003 -> when(buttonId){ - 1 -> playerl(FacialExpression.NEUTRAL, "I'm wearing an amulet of ghost speak!").also { stage = 1010; setQuest(20) } - 2 -> playerl(FacialExpression.NEUTRAL, "How long have you been a ghost?").also { stage = 1020; setQuest(20) } - 3 -> playerl(FacialExpression.NEUTRAL, "What's it like being a ghost?").also { stage = 1030; setQuest(20) } - 4 -> playerl(FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } - } - - 1010 -> npcl(FacialExpression.HALF_GUILTY, "Why you poor fellow, have you passed away and you want to send a message back to a loved one?").also { stage++ } - 1011 -> playerl(FacialExpression.HALF_THINKING, "Err.. Not exactly...").also { stage++ } - 1012 -> npcl(FacialExpression.HALF_GUILTY, "You have come to haunt my dreams until I pass on your message to a dearly loved one. I understand. Pray, tell me who would you like me to pass a message on to?").also { stage++ } - 1013 -> playerl(FacialExpression.NEUTRAL, "Ermm, you don't understand... It's just that...").also { stage++ } - 1014 -> npcl(FacialExpression.HALF_GUILTY, "Yes!").also { stage++ } - 1015 -> playerl(FacialExpression.NEUTRAL, "Well please don't be upset or anything... But you're the ghost!").also { stage++ } - 1016 -> npcl(FacialExpression.HALF_GUILTY, "Don't be silly now! That in no way reflects the truth!").also { stage = 1002 } - - 1020 -> npcl(FacialExpression.HALF_GUILTY, "What?! Don't be preposterous! I'm not a ghost! How could you say something like that?").also { stage++ } - 1021 -> playerl(FacialExpression.NEUTRAL, "But it's true, you're a ghost... well, at least that is to say, you're sort of not alive anymore.").also { stage++ } - 1022 -> npcl(FacialExpression.HALF_GUILTY, "Don't be silly, I can see you. I can see that tree. If I were dead, I wouldn't be able to see anything. What you say just doesn't reflect the truth. You'll have to try harder to put one over on me!").also { stage = 1002 } - - 1030 -> npcl(FacialExpression.HALF_GUILTY, "Oh, it's quite.... Oh... Trying to catch me out were you! Anyone can clearly see that I am not a ghost!").also { stage++ } - 1031 -> playerl(FacialExpression.NEUTRAL, "But you are a ghost, look at yourself! I can see straight through you! You're as dead as this swamp! Err... No offence or anything...").also { stage++ } - 1032 -> npcl(FacialExpression.HALF_GUILTY, "No I won't take offence because I'm not dead and I'm afraid you'll have to come up with some pretty conclusive proof before I believe it. What a strange dream this is.").also { stage = 1002 } - - - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FILLIMAN_TARLOCK_1050) - } - - fun setQuest(stage: Int){ - player.questRepository.getQuest("Nature Spirit").setStage(player, stage) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritDialogue.kt deleted file mode 100644 index 233a07999..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NatureSpiritDialogue.kt +++ /dev/null @@ -1,164 +0,0 @@ -package rs09.game.content.quest.members.naturespirit - -import api.Container -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -@Initializable -class NatureSpiritDialogue(player: Player? = null) : DialoguePlugin(player){ - - val questStage = player?.questRepository?.getStage("Nature Spirit") ?: 0 - override fun newInstance(player: Player?): DialoguePlugin { - return NatureSpiritDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - - when(questStage){ - 60 -> npcl(FacialExpression.NEUTRAL, "Hmm, good, the transformation is complete. Now, my friend, in return for your assistance, I will help you to kill the Ghasts. First bring to me a silver sickle so that I can bless it for you.").also { return true } - 65 -> npcl(FacialExpression.NEUTRAL, "Have you brought me a silver sickle?").also { stage = 100; return true } - 70 -> npcl(FacialExpression.NEUTRAL, "Now you can go forth and make the swamp bloom. Collect nature's bounty to fill a druids pouch. So armed will the Ghasts be bound to you until, you flee or they are defeated.").also { stage = 200 } - 75 -> npcl(FacialExpression.NEUTRAL, "Hello again, my friend. Have you defeated three ghasts as I asked you?").also { stage = 300 } - else -> npcl(FacialExpression.FRIENDLY, "Welcome to my grotto, friend. Enjoy your visit.").also { stage = END_DIALOGUE } - } - return true - } - - override fun handle(componentID: Int, buttonID: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.NEUTRAL,"A silver sickle? What's that?").also { stage++ } - 1 -> npcl(FacialExpression.NEUTRAL, "The sickle is the symbol and weapon of the Druid, you need to construct one of silver so that I can bless it, with its powers you will be able to defeat the Ghasts of Mort Myre.").also { stage++; setQuest(65) } - 2 -> options("Where would I get a silver sickle?", "What will you do to the silver sickle?", "How can a blessed sickle help me to defeat the Ghasts?", "Ok, thanks.").also { stage++ } - 3 -> when(buttonID){ - 1 -> playerl(FacialExpression.NEUTRAL, "Where would I get a silver sickle?").also { stage = 10 } - 2 -> playerl(FacialExpression.NEUTRAL, "What will you do to the silver sickle?").also { stage = 20 } - 3 -> playerl(FacialExpression.NEUTRAL, "How can a blessed sickle help me to defeat the Ghasts?").also { stage = 30 } - 4 -> playerl(FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } - } - - //where sickle - 10 -> npcl(FacialExpression.NEUTRAL, "You could make one yourself if you're artisan enough. I've heard of a distant sandy place where you can buy the mould that you require, it's similar in many respects to the creating of a holy symbol.").also { stage = 2 } - - //What you gonna do to my sickle bro - 20 -> npcl(FacialExpression.NEUTRAL, "Why, I will give it my blessings so that the very swamp in which you stand will blossom and bloom!").also { stage = 2 } //pompous git - - //bruh how does a silver sickle help me tho - 30 -> npcl(FacialExpression.NEUTRAL, "My blessings will entice nature to bloom in Mort Myre! And then with nature's harvest you can fill a druids pouch and release the Ghasts from their torment.").also { stage = 2 } //this dude kinda weird - - //have you brought me a sickle yet bro - 100 -> if(inInventory(player, Items.SILVER_SICKLE_2961)){ - playerl(FacialExpression.FRIENDLY, "Yes, here it is. What are you going to do with it?").also { stage = 110 } - } else { - playerl(FacialExpression.NEUTRAL, "No sorry, not yet!").also { stage++ } - } - 101 -> npcl(FacialExpression.NEUTRAL, "Well, come to me when you have it.").also { stage = 2 } - - /** - * This dialogue drags on so much man this quest has been like 95% dialogue. - * Nature Spirit dude also talks like an uppity self-righteous deity looking dude - */ - - //yeah bro I got it - 110 -> npcl(FacialExpression.NEUTRAL, "My friend, I will bless it for you and you will then be able to accomplish great things. Now then, I must cast the enchantment. You can bless a new sickle by dipping it in the holy water of the grotto.").also { stage++ } - 111 -> sendDialogue("- The Nature Spirit casts a spell on the player. -").also { stage++ } - - /** - * Here we go uoooh - */ - 112 -> end().also { lock(player, 10); submitWorldPulse(SickleBlessPulse(player, npc)) } - - //go kill some ghasts bro - 200 -> npcl(FacialExpression.NEUTRAL, "Go forth into Mort Myre and slay three Ghasts. You'll be releasing their souls from Mort Myre.").also { stage++ } - 201 -> sendItemDialogue(player, Items.DRUID_POUCH_2957, "The nature spirit gives you an empty pouch.").also { stage++; setQuest(75) } - 202 -> npcl(FacialExpression.NEUTRAL, "You'll need this in order to collect together nature's bounty. It will bind the Ghast to you until you flee or it is defeated.").also { stage = END_DIALOGUE } - - //Have you killed the ghasts yet bro - 300 -> if(NSUtils.getGhastKC(player) >= 3){ - playerl(FacialExpression.NEUTRAL, "Yes, I've killed all three and their spirits have been released!").also { stage = 350 } - } else { - playerl(FacialExpression.NEUTRAL, "Not yet.").also { stage++ } - } - - //nah bro - 301 -> npcl(FacialExpression.NEUTRAL, "Well, when you do, please come to me and I'll reward you!").also { stage++ } - 302 -> options("How do I get to attack the Ghasts?", "What's this pouch for?", "What can I do with this sickle?", "I've lost my sickle.", "Ok, thanks.").also { stage++ } - 303 -> when(buttonID){ - 1 -> playerl(FacialExpression.NEUTRAL, "How do I get to attack the Ghasts?").also { stage = 310 } - 2 -> playerl(FacialExpression.NEUTRAL, "What's this pouch for?").also { stage = 320 } - 3 -> playerl(FacialExpression.NEUTRAL, "What can I do with this sickle?").also { stage = 330 } - 4 -> playerl(FacialExpression.NEUTRAL, "I've lost my sickle.").also { stage = 340 } - 5 -> playerl(FacialExpression.NEUTRAL, "Ok, thanks.").also { stage = END_DIALOGUE } - } - - //How do I attack duh ghosty bois - 310 -> npcl(FacialExpression.NEUTRAL, "Go forth and with the sickle make the swamp bloom. Collect natures bounty to fill a druids pouch. So armed will the Ghasts be bound to you until, you flee or they are defeated.").also { stage = 302 } - - //What's dis funny pouch for? - 320 -> npcl(FacialExpression.NEUTRAL, "It is for collecting natures bounty, once it contains the blossomed items of the swamp, it will make the Ghasts appear and you can then attack them.").also { stage = 302 } - - //What can I do wif da sickle m8 - 330 -> npcl(FacialExpression.NEUTRAL, "You may use it wisely within the area of Mort Myre to affect natures balance and bring forth a bounty of natures harvest. Once collected into the druid pouch will the Ghast be apparent.").also { stage = 302 } - - //oi I lost it bruv - 340 -> npcl(FacialExpression.NEUTRAL, "If you should lose the blessed sickle, simply bring another to my altar of nature and refresh it in the grotto waters.").also { stage = 302 } - - //killed all dem buggers bruv - 350 -> npcl(FacialExpression.NEUTRAL, "Many thanks my friend, you have completed your quest!").also { stage++ } - 351 -> end().also { player.questRepository.getQuest("Nature Spirit").finish(player) } - } - - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.NATURE_SPIRIT_1051) - } - - /** - * Needs to spawn 4ish of those green projectiles and the player needs to lift up the sickle - * then needs to open the dialogue back up with the quest stage at 70 - */ - internal class SickleBlessPulse(val player: Player, val spirit: NPC) : Pulse() { - var ticks = 0 - val locs: MutableList = player.location.surroundingTiles - - override fun pulse(): Boolean { - when(ticks++){ - 0 -> animate(spirit, 812) - 1 -> repeat(4) { - val loc = locs.random() - locs.remove(loc) - - spawnProjectile(loc, player.location, 268, 0, 400, 0, 125, 180) - animate(player, 9021) - } - 4 -> { - if(removeItem(player, Items.SILVER_SICKLE_2961, Container.INVENTORY)){ - addItem(player, Items.SILVER_SICKLEB_2963) - unlock(player) - player.questRepository.getQuest("Nature Spirit").setStage(player, 70) - openDialogue(player, NPCs.NATURE_SPIRIT_1051, findLocalNPC(player, NPCs.NATURE_SPIRIT_1051) as NPC) - sendMessage(player, "Your sickle has been blessed! You can bless a new sickle by dipping it into the grotto waters.") - } - } - 6 -> return true - } - return false - } - } - - fun setQuest(stage: Int){ - player!!.questRepository.getQuest("Nature Spirit").setStage(player!!, stage) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/AskeladdenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/AskeladdenDialogue.kt deleted file mode 100644 index ba49eb3e3..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/AskeladdenDialogue.kt +++ /dev/null @@ -1,145 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import core.game.node.entity.player.Player -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.item.Item -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -//Disabled because the quest isn't done yet. -class AskeladdenDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun open(vararg args: Any?): Boolean { - player?.let { - if(player.inventory.contains(3709,1)){ - playerl(FacialExpression.ASKING,"I thought you really liked the long hall?") - stage = 27 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 13){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a written promise from Askeladden to stay out of the Longhall?") - stage = 15 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I've lost one of the items I was supposed to be trading.") - stage = 35 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello again Askeladden.") - stage = 40 - return true - } - else if (it.questRepository.getStage("Fremennik Trials") > 0) { - player("Hello there.") - stage = 0 - return true - } - else if(it.getAttribute("fremtrials:lalli-talkedto",false)!!){ - player("Hello there. I understand you managed to get some", "golden wool from Lalli?") - stage = 0 - return true - } - else{ - playerl(FacialExpression.HAPPY,"Hello there.") - stage = 55 - return true - } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return AskeladdenDialogue(player) - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when (stage) { - 0 -> npc(FacialExpression.CHILD_LOUDLY_LAUGHING, "HAHAHA! Yeah, that Lalli... what a maroon!").also { stage++ } - 1 -> player("So how did you manage to get the wool?").also { stage++ } - 2 -> npc(FacialExpression.CHILD_FRIENDLY, "Well, as you know, I am doing the same trials that you", "are as part of my test of manhood, and that troll is the", "only one who can get that wool.").also { stage++ } - 3 -> npc(FacialExpression.CHILD_NORMAL, "You might have noticed he's kind of... messed in the", "head buddy! He's real paranoid about people stealing his", "golden apples, isn't he?").also { stage++ } - 4 -> player(FacialExpression.HALF_ASKING,"Indeed he is. So how did you manage to get some", "golden wool from him?").also { stage++ } - 5 -> npc(FacialExpression.CHILD_NORMAL, "It was easy buddy! I persuaded him he needed a pet to", "help him guard his apples. A pet that would never sleep!", "A pet that would never need food or exercise!").also { stage++ } - 6 -> npc(FacialExpression.CHILD_NORMAL, "A pet that would never need him to clean up its... well,", "you know, buddy. A pet that would always be loyal to", "him! A faithful companion for life!").also { stage++ } - 7 -> player(FacialExpression.HALF_ASKING, "What pet is this then?").also { stage++ } - 8 -> npc(FacialExpression.CHILD_LOUDLY_LAUGHING, "A pet ROCK!").also { stage++ } - 9 -> npc(FacialExpression.CHILD_NORMAL, "Man, can you believe that stupid troll traded me some", "of his golden wool for a worthless ROCK?").also { stage++ } - 10 -> npc(FacialExpression.CHILD_FRIENDLY, "Buddy, I hafta say: if brains were explosives, that troll", "wouldn't have enough to blow his nose!").also { stage++ } - 11 -> player(FacialExpression.HALF_ASKING, "Do you have any spare rocks then?").also { stage++ } - 12 -> npc(FacialExpression.CHILD_NEUTRAL, "Sure thing buddy, although I have to say, I doubt even", "that troll is stupid enough to fall for the SAME trick", "TWICE in a row! You can try anyways though!").also { - player.inventory.add(Item(Items.PET_ROCK_3695)) - player.setAttribute("/save:fremtrials:askeladden-talkedto",true); - stage = 1000} - - 15 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING,"What? I can't believe she asked you to get a written promise from me to stay out!").also { stage++ } - 16 -> playerl(FacialExpression.NEUTRAL,"Yup, she really did.").also { stage++ } - 17 -> npcl(FacialExpression.CHILD_FRIENDLY,"Awwwwwww.... but the longhall is just SO MUCH FUN! I'd live there if I could! I suppose you really need that promise to help become a Fremennik, huh?").also { stage++ } - 18 -> playerl(FacialExpression.NEUTRAL,"Yeah, I really do...").also { stage++ } - 19 -> npcl(FacialExpression.CHILD_FRIENDLY,"Well I'll tell you what buddy; As it's you, I'll give you that written promise. All I ask in return for it is a measly 5000 gold. What do you say?").also { stage++ } - 20 -> options("Yes","No").also { stage++ } - 21 -> when(buttonId){ - 1 -> if(player?.inventory?.contains(995,5000)!! && !player.inventory.isFull){ - playerl(FacialExpression.HAPPY,"That's all you want in return? Sure thing. Here you go.") - stage = 22 - }else stage = 25 - 2 -> stage = 25 - } - 22 -> npcl(FacialExpression.CHILD_FRIENDLY,"Done, and done. Let me know if you got any more cash burning a hole in your pocket I can relieve you of, buddy.").also { - player?.inventory?.remove(Item(Items.COINS_995,5000)) - player?.inventory?.add(Item(Items.PROMISSORY_NOTE_3709)) - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 25 -> playerl(FacialExpression.SAD,"I don't think so... That's really quite a lot of money...").also { stage++ } - 26 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING,"Hey, suit yourself buddy. You change your mind, the bank of Askeladden is open for deposits 24 hours a day! Eh-heh- heh-heh-heh.").also { stage = 1000 } - - 27 -> npcl(FacialExpression.CHILD_FRIENDLY,"I do!").also { stage++ } - 28 -> playerl(FacialExpression.ASKING,"Then why did you sign this guarantee that you will never enter it again?").also { stage++ } - 29 -> npcl(FacialExpression.CHILD_FRIENDLY,"Aha! It is because I am cunning! That guarantee says that Askeladden will never enter the longhall again!").also { stage++ } - 30 -> npcl(FacialExpression.CHILD_FRIENDLY,"But when I have completed my Fremennik trials, and passed my trial of manhood,").also { stage++ } - 31 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING,"I will be given a new name, as is our custom, and will therefore not be Askeladden anymore!").also { stage++ } - 32 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING,"That guarantee isn't worth the paper it's written on!! You didn't think I would give up going to the longhall for only 5000 did you?").also { stage++ } - 33 -> playerl(FacialExpression.ANNOYED,"Knowing you, I guess I didn't.").also { stage = 1000 } - - 35 -> npcl(FacialExpression.CHILD_NORMAL,"That's a shame. You should speak to the merchant.").also { stage = 1000 } - - 40 -> npcl(FacialExpression.CHILD_FRIENDLY,"Hey buddy! That ain't my name no more! My new Fremennik name is Larravak! What's yours?").also { stage++ } - 41 -> playerl(FacialExpression.HAPPY,"My Fremennik name is ${player.getAttribute("fremennikname","lebron james")}.").also { stage++ } - 42 -> npcl(FacialExpression.CHILD_LOUDLY_LAUGHING,"Ha! Ain't as good as my name buddy! So what can I do ya for?").also { stage++ } - 43 -> options("Ask about things to do","Ask for a new pet rock").also { stage++ } - 44 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"So, Askeladd- sorry, Larravak; What is there to do around here now that we are both Fremenniks?").also { stage++ } - 2 -> playerl(FacialExpression.ASKING,"Can I have another pet rock? I lost mine...").also { stage = 50 } - } - 45 -> npcl(FacialExpression.CHILD_THINKING,"I guess you could do a bit of shopping. We got fresh fish at the docks, and some armour and weapons at Skulgrimen's place.").also { stage++ } - 46 -> playerl(FacialExpression.HAPPY,"Okay, thanks.").also { stage = 1000 } - - 50 -> npcl(FacialExpression.CHILD_FRIENDLY,"Sure thing buddy! I'd say take better care of this one, but it's just a rock! I have hundreds of them! Go wild!").also { - player.inventory.add(Item(Items.PET_ROCK_3695)) - stage = 1000 - } - - 55 -> npcl(FacialExpression.CHILD_FRIENDLY,"Hey there, buddy. You're an outerlander, huh? I'm not really supposed to talk to you.").also { stage++ } - 56 -> playerl(FacialExpression.ASKING,"Why not?").also { stage++ } - 57 -> npcl(FacialExpression.CHILD_THINKING,"I dunno buddy. Some stupid tradition or other. We're always told not to talk to outerlanders unless the Chieftain has allowed it.").also { stage++ } - 58 -> playerl(FacialExpression.ASKING,"The Chieftain? Who is that?").also { stage++ } - 59 -> npcl(FacialExpression.CHILD_FRIENDLY,"His names Brundt, buddy. He's a real boring guy. You can find him in the long hall there.").also { stage++ } - 60 -> playerl(FacialExpression.ASKING,"Can you take me to see him?").also { stage++ } - 61 -> npcl(FacialExpression.CHILD_FRIENDLY,"Sorry buddy, I'm not allowed into the long hall. Don't worry, he's easy to spot. He's the one in the fancy helmet. Oh, and he only has one eye.").also { stage++ } - 62 -> playerl(FacialExpression.ASKING,"He's a cyclops?").also { stage++ } - 63 -> npcl(FacialExpression.CHILD_NORMAL,"Nah, nah, nah... He just wears an eyepatch! Well, see ya around buddy!").also { stage = 1000 } - - - 1000 -> end() - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(2439) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt deleted file mode 100644 index f1c549fa6..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ChieftanBrundtDialogue.kt +++ /dev/null @@ -1,338 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.node.entity.player.Player -import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import rs09.tools.END_DIALOGUE -import kotlin.random.Random - -@Initializable -class ChieftanBrundt(player: Player? = null) : DialoguePlugin(player){ - val gender = if (player?.isMale == true){"brother"} else "sister" - val fName = player?.getAttribute("fremennikname","bringle") - - override fun open(vararg args: Any?): Boolean { - if(player?.inventory?.contains(3701,1) == true){ - playerl(FacialExpression.HAPPY,"I got Sigli's hunting map for you.") - stage = 515 - return true - } - else if(player?.inventory?.contains(3708,1) == true){ - playerl(FacialExpression.ASKING,"So cutting sales tax isn't going to ruin your economy here or anything?") - stage = 520 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I've got this trade item. Is it for you?") - stage = 525 - return true - } - if(player?.getAttribute("sigmund-steps",0) == 5){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map to unspoiled hunting grounds, do you?") - stage = 510 - return true - } - else if(player?.getAttribute("sigmund-steps",0) == 4){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a guarantee of a reduction on sales taxes, do you?") - stage = 500 - return true - } - else if(player.getAttribute("fremtrials:votes",0) >= 7){ - npcl(FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") - stage = 545 - return true - } - else if(player.getAttribute("fremtrials:votes",0) in 3..6){ - npcl(FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") - stage = 540 - return true - } - else if(player.getAttribute("fremtrials:votes",0) == 1){ - npcl(FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") - stage = 535 - return true - } - else if(player.getAttribute("fremtrials:votes",-1) == 0){ - npcl(FacialExpression.HAPPY," Greetings again outerlander! How goes your attempts to gain votes with the council of elders?") - stage = 530 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.HAPPY,"Hello again, $gender $fName. I hope your travels have brought you wealth and joy! What compels you to visit me on this day?") - stage = 600 - return true - } - else if(player?.questRepository?.getStage("Fremennik Trials")!! == 0) { - npc("Greetings outlander!") - stage = 0 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - //Pre-Quest - 0 -> { options("What is this place?", "Why will no-one talk to me?", "Do you have any quests?", "Nice hat!");stage++} - 1 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"What is this place?").also { stage ++ } - 2 -> playerl(FacialExpression.ASKING,"Why will no-one talk to me?").also { stage = 5 } - 3 -> player("Do you have any quests?").also {stage = 300} - 4 -> playerl(FacialExpression.HAPPY,"Nice hat!").also { stage = 15 } - } - 2 -> npcl(FacialExpression.HAPPY,"This place? Why, this is Relleka! Homeland of all Fremennik! I do not recognise your face outerlander; Where do you come from?").also { stage++ } - 3 -> playerl(FacialExpression.HAPPY,"Hmmm... I will not press the issue then outerlander. How may my tribe and I help you?").also { stage = 0 } - - 5 -> npcl(FacialExpression.HAPPY,"Do not take it personally, outerlander! We are a simple people, and it is our experience that keeping ourselves to ourselves is best.").also { stage++ } - 6 -> npcl(FacialExpression.HAPPY,"This is why speaking to outerlanders is forbidden.").also { stage++ } - 7 -> npcl(FacialExpression.HAPPY,"We do not wish to enter war with the outerlanders and their strange magics, so we limit all unauthorised communication.").also { stage++ } - 8 -> playerl(FacialExpression.ASKING,"Then how come you're talking to me?").also { stage++ } - 9 -> npcl(FacialExpression.HAPPY,"Ah, this is because I am the chieftan. I am the one who authorised contact. You will not find many of my tribe so forthcoming with you, as I.").also { stage++ } - 10 -> playerl(FacialExpression.ASKING,"Is there a way for you to authorise your tribe to talk to me then?").also { stage++ } - 11 -> npcl(FacialExpression.HAPPY,"Well, there is one way... but I doubt it is of any interest to you.").also { stage = 0 } - - 15 -> npcl(FacialExpression.ANNOYED,"Don't mock me outerlander; this helm has saved my life more times than I care to recall right now.").also { stage = 1000 } - - - //Do you have any quests? - 300 -> {npc("Quests, you say outlander? Well, I would not call it a","quest as such, but if you are brave of heart and strong","of body, perhaps..."); stage++} - 301 -> {npc("No, you would not be interested. Forget I said","anything, outerlander."); stage++ } - 302 -> {options("Yes, I am interested.","No, I'm not interested."); stage++ } - 303 -> when(buttonId){ - 1 -> {player("Actually, I would be very interested to hear what you","have to offer."); stage = 310 } - 2 -> {player("No, I'm not interested."); stage = END_DIALOGUE } - } - - //Yes, I am interested in what you have to say. - 310 -> {npc("You would? These are unusual sentiments to hear from","an outerlander! My suggestion was going to be that if","you crave adventure and battle,"); stage++} - 311 -> {npc("and your heart sings for glory, then perhaps you would","be interested in joining our clan, and becoming a","Fremennik yourself?");stage++} - 312 -> {player("What would that involve exactly?");stage++} - 313 -> {npc("Well, there are two ways to become a member of our","clan and call yourself a Fremennik: be born a","Fremennik, or be voted in by our council of elders.");stage++} - 314 -> {player("Well, I think I've missed the first way, but how can I","get the council of elders to vote to let me join your","clan?");stage++} - 315 -> {npc("Well, that I cannot answer myself. You will need to","speak to each of them and see what they require of you","as proof of your dedication.");stage++} - 316 -> {npc("There are twelve council members around this village;","you will need to gain a majority vote of at least seven","councillors in your favor.");stage++} - 317 -> {npc("So, what say you? Give me the word and I will tell all","of my tribe of your intentions, be they yes or nay.");stage++} - 318 -> {options("I want to become a Fremennik!","I don't want to become a Fremennik.");stage++} - 319 -> when(buttonId){ - 1 -> {player("I think I would enjoy the challenge of becoming an","honorary Fremennik. Where and how do I start?");stage = 320} - 2 -> {player("That sounds too complicated to me.");stage = 322} - } - - //I think I would enjoy the challenge of becoming an honorary fremennik - 320 -> {npc("As I say outerlander, you must find and speak to the","twelve members of the council of elders, and see what","tasks they might set you.");stage++} - 321 -> {npc("If you can gain the support of seven of the twelve, then","you will be accepted as one of us without question.");stage = 1000;player?.questRepository?.getQuest("Fremennik Trials")?.start(player)} - - //That sounds too complicated for me. - 322 -> {npc("Well, that's what I expect from an outerlander.");stage = 1000} - - //No, I'm not interested - 340 -> TODO("Not implemented yet") - - 500 -> npcl(FacialExpression.THINKING,"A reduction on sales taxes? Why, I am the only one in the Fremennik who may authorise such a thing. What does an outerlander want with that?").also { stage++ } - 501 -> playerl(FacialExpression.HAPPY,"Actually, it's not for me. I need to get it as part of my trials").also { stage++ } - 502 -> npcl(FacialExpression.THINKING,"Hmmm. Interesting. Your trials seem to be very different to those I took as a young lad.").also { stage++ } - 503 -> npcl(FacialExpression.NEUTRAL,"Well, I am not adverse in principle to giving a slight tax break to our shops.").also { stage++ } - 504 -> npcl(FacialExpression.THINKING,"There will of course be a shortfall in the tribe's income, that will need to be made up for elsewhere, however.").also { stage++ } - 505 -> npcl(FacialExpression.ASKING,"How about this. For many years Sigli has been the only one in the tribe who knows the locations of the best hunting grounds where game is easiest to catch.").also { stage++ } - 506 -> npcl(FacialExpression.ASKING,"If you can persuade him to let the entire tribe know these hunting grounds, then we can increase productivity within the tribe, and any shortfall caused by lowering sales taxes will be covered.").also { stage++ } - 507 -> npcl(FacialExpression.HAPPY,"I think this is a more than fair arrangement to make, dont you?").also { stage++ } - 508 -> playerl(FacialExpression.HAPPY,"Yeah, that sounds very fair.").also { stage++ } - 509 -> npcl(FacialExpression.HAPPY,"Speak to Sigli then, and you may have my promise to reduce our sales taxes. And best of luck with the rest of your trials.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - - 510 -> npcl(FacialExpression.ANNOYED,"Ah, outerlander... if you wish to become a Fremennik you should try and pay more attention to what people tell you... ").also { stage++ } - 511 -> npcl(FacialExpression.ANNOYED,"Sigli the hunter is the only one who knows of such hunting grounds. Go and request his knowledge.").also { stage = 1000 } - - 515 -> npcl(FacialExpression.HAPPY,"Excellent work outerlander! And so quickly, too! Here, you may take my financial report promising reduced sales taxes on all goods.").also { - removeItem(player,3701) - addItem(player,3708) - stage = 1000 - } - - 520 -> npcl(FacialExpression.HAPPY,"Not at all outerlander; now that we have Sigli's map we can increase the amount of hunts we run, and make up any shortfall that way.").also { stage = 1000 } - - 525 -> npcl(FacialExpression.ANNOYED,"Not unless it's a map of the hunting grounds.").also { stage = 1000 } - - 530 -> playerl(FacialExpression.HAPPY,"I don't have any votes yet.").also { stage++ } - 531 -> npcl(FacialExpression.HAPPY,"Go and speak to the twelve members of the council of elders who live in this village. I am sure at least a few will be prepared to vote for you.").also { stage = 550 } - - 535 -> playerl(FacialExpression.HAPPY,"I only have one vote so far.").also { stage++ } - 536 -> npcl(FacialExpression.HAPPY,"Hmmm... well that is certainly a good start I would say. Keep up the good work!").also { stage++ } - 537 -> npcl(FacialExpression.HAPPY,"Remember: You need to get at least seven council votes to be accepted as a member of the Fremennik.").also { stage = 550 } - - 540 -> playerl(FacialExpression.HAPPY,"I only have ${player.getAttribute("fremtrials:votes",0)} votes so far.").also { stage++ } - 541 -> npcl(FacialExpression.HAPPY,"Hmmm... you are doing very well so far, outerlander. Keep up the good work!").also { stage = 537 } - - 545 -> playerl(FacialExpression.HAPPY,"I have seven members of the council prepared to vote in my favour now!").also { stage++ } - 546 -> npcl(FacialExpression.HAPPY,"I know outerlander, for I have been closely monitoring your progress so far!").also {stage++} - 547 -> npcl(FacialExpression.HAPPY,"Then let us put the formality aside, and let me personally welcome you into the Fremennik! May you bring us honour!").also { - if(player.inventory.freeSlots() >= 10){ - println(GenerateFremennikName()) - player.setAttribute("/save:fremennikname", GenerateFremennikName()) - stage = 560 - } - else stage = 548 - - } - 548 -> sendDialogue("You require 10 free spaces in your backpack to claim your reward.").also { stage = 1000 } - - 550 -> npcl(FacialExpression.HAPPY,"If you need any help with your trials, I suggest you speak to Askeladden. He is currently doing his own trials of manhood to become a true Fremennik.") - - 560 -> npcl(FacialExpression.HAPPY,"From this day onward, you are outerlander no more! In honour of your acceptance into the Fremennik, you gain a new name: ${player.getAttribute("fremennikname","how did u break this")}.").also { - cleanupAttributes(player) - player.questRepository.getQuest("Fremennik Trials").finish(player) - stage = 1000 - } - - 600 -> options("I just came to say hello.","Do you have any quests?","Nice hat!","Can I hear the history of your people?").also { stage++ } - 601 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"I just came by to say hello.").also { stage++ } - 2 -> playerl(FacialExpression.ASKING,"Do you have any quests?").also { stage = 605 } - 3 -> playerl(FacialExpression.HAPPY,"Nice hat!").also { stage = 610 } - 4 -> playerl(FacialExpression.ASKING,"Can I hear the history of your people?").also { stage = 615 } - } - 602 -> npcl(FacialExpression.HAPPY,"Well met, $gender $fName. it is always good to see your face in glorious Rellekka once more!").also { stage = 1000 } - - 605 -> npcl(FacialExpression.HAPPY,"Not at the moment, $fName. Rest assured, should your services to the Fremennik be required, I will call upon you").also { stage = 1000 } - - 610 -> npcl(FacialExpression.HAPPY,"Aye that it is, $gender $fName. Should you desire one of your own, you should go to Skulgrimen's shop and see what they have available!").also { stage = 1000 } - - 615 -> npcl(FacialExpression.HAPPY,"Why, of course, $fName! Do not say 'your people' like that, for you are now a Fremennik yourself! What did you want to hear of?").also { stage++ } - 616 -> options("Tell me of the finding of Koschei","Tell me of the lands to the North","Tell me of the outerlanders","Don't tell me anything").also { stage++ } - 617 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"I'm interested in finding out about that mysterious warrior I fought as part of Thorvalds' combat trial. His name is Koschei I believe.").also { stage++ } - 2 -> playerl(FacialExpression.HAPPY,"I would like to hear of the lands across the ocean to the North.").also { stage = 635 } - 3 -> playerl(FacialExpression.HAPPY,"I would like to hear a little of the history between the Fremenniks and the outerlanders.").also { stage = 645 } - 4 -> playerl(FacialExpression.HAPPY,"Actually, history isn't really my thing.").also { stage = 665 } - } - - 618 -> npcl(FacialExpression.HAPPY,"Ah... the deathless one... We do not even know if Koschei is his name, when we found him he had no memory,").also { stage++ } - 619 -> npcl(FacialExpression.HAPPY,"he was simply repeating that single word. Whatever happened to him must have rattled his soul so hard that his memory ran away from him,").also { stage++ } - 620 -> npcl(FacialExpression.HAPPY,"and he has not yet found its hiding place.").also { stage++ } - 621 -> playerl(FacialExpression.ASKING,"So how exactly did you find him?").also { stage++ } - 622 -> npcl(FacialExpression.HAPPY,"Well, it was a raiding party like any other. We had just struck one of the smaller northern islands to harvest supplies by combat, as our laws allow,").also { stage++ } - 623 -> npcl(FacialExpression.HAPPY,"when we saw a figure in the icey waters. As we were at least a 3 week sail from any port, and saw no other ships nearby, he must have been there some time.").also { stage++ } - 624 -> npcl(FacialExpression.HAPPY,"We could not leave someone to the cold death of the ocean, even an outerlander, so we fished him aboard. He muttered continually, but his words made no sense.").also { stage++ } - 625 -> npcl(FacialExpression.HAPPY,"He had no clothes or possessions with him, and seemed to have been burnt somehow before he had landed in the water. I cannot help but wonder what burnt him,").also { stage++ } - 626 -> npcl(FacialExpression.HAPPY,"for as you may have seen, he is incredibly powerful and resistant to damage by any means I know of! Anyway, we decided to bring him back to Rellekka,").also { stage++ } - 627 -> npcl(FacialExpression.HAPPY,"for he did not seem of good health or sound mind, and simply repeated the word Koschei over and over. Yrsa tended to him for many weeks, until one day it was as though a new soul had entered his burnt and broken body.").also { stage++ } - 628 -> npcl(FacialExpression.HAPPY,"He suddenly left her house one day, fully healed, and able to speak to us as though nothing had happened to him.").also { stage++ } - 629 -> npcl(FacialExpression.HAPPY,"He still had no recollection of how he had come to be in the icey ocean, or of who he was, or where he had come from, but this did not matter to us or him.").also { stage++ } - 630 -> npcl(FacialExpression.HAPPY,"He took his trials of adulthood, as you did, and has been a boon to our clan ever since. Someday I fear he may regain his memory, and leave us for his past...").also { stage++ } - 631 -> npcl(FacialExpression.HAPPY,"But I will always respect any decision he decides to make should that day ever come upon us. Until then, he is more than welcome to stay here.").also { stage++ } - 632 -> npcl(FacialExpression.HAPPY,"So, $fName, was there anything more you wished to hear?").also { stage = 616 } - - 635 -> npcl(FacialExpression.HAPPY,"Well, I think the best thing for you would be to go to the docks and ask to join one of our longboats on a journey. My affairs are concentrated mostly on Rellekka,").also { stage++ } - 636 -> npcl(FacialExpression.HAPPY,"So my knowledge is not great, but I will happily share what little I do know with you, $fName. North of this town the atmosphere becomes bitterly cold.").also { stage++ } - 637 -> npcl(FacialExpression.HAPPY,"There are a number of small inhabited islands that we have sea routes with. The largest of these is possibly Miscellania,").also { stage++ } - 638 -> npcl(FacialExpression.HAPPY,"Although I hear that there has been some recent incident with their monarch, but I don't know the details.").also { stage++ } - 639 -> npcl(FacialExpression.HAPPY,"There is also of course the island of the moon clan, who change with the tides. They are our bitterest enemies, and we are currently at war with them.").also { stage++ } - 640 -> npcl(FacialExpression.HAPPY,"They are an evil people, equally cursed and blessed by the magic in their blood. Beyond those islands, there is the large frozen wasteland we call Acheron.").also { stage++ } - 641 -> npcl(FacialExpression.HAPPY,"It is an inhospitable land, and you will need an agile and sturdy body just to keep alive in its perils.").also { stage++ } - 642 -> npcl(FacialExpression.HAPPY,"As I say, my knowledge outside of this town is rather limited, and I know no more than this.").also { stage++ } - 643 -> npcl(FacialExpression.HAPPY,"Was there anything else you wished to hear tell of?").also { stage = 616 } - - 645 -> npcl(FacialExpression.HAPPY,"Ah, now that is something I know a great deal about. Believe it or not, all outerlanders were once orginally Fremenniks.").also { stage++ } - 646 -> npcl(FacialExpression.HAPPY,"When first man came to these lands all were Fremenniks, and followed our ways. We lived a happy life, and never settled in one place for long.").also { stage++ } - 647 -> npcl(FacialExpression.HAPPY,"We travelled by boat along the coastlines, never taking more from the land than could be regrown by the same time in the following year.").also { stage++ } - 648 -> npcl(FacialExpression.HAPPY,"However, many moons past, some of our tribesmen were weary of constantly travelling the lands, and decided to build themselves permanent homes.").also { stage++ } - 649 -> npcl(FacialExpression.HAPPY,"Unfortunately, the other races that had also migrated here did not like this. They waged war against us at every opportunity.").also { stage++ } - 650 -> npcl(FacialExpression.HAPPY,"We were driven mostly to the coastlines, where we could escape by boat when attacked. Remember, at this time we had no real way to defend against constant attack.").also { stage++ } - 651 -> npcl(FacialExpression.HAPPY,"Then one day one of our Seers, whose full name has been lost in the telling of this tale, discovered a cave full of strange rocks.").also { stage++ } - 652 -> npcl(FacialExpression.HAPPY,"This rock would never be consumed, no matter how much we took, and sparkled at its peak, and broke off in small and regular sized chunks when mined.").also { stage++ } - 653 -> npcl(FacialExpression.HAPPY,"Stranger than this, we found that these rocks would become filled with power when taken to certain places across this land! There was a terrible argument in our tribe!").also { stage++ } - 654 -> npcl(FacialExpression.HAPPY,"Some said that we should take as many of these rocks as we could, and use them in defending against our enemies' attacks!").also { stage++ } - 655 -> npcl(FacialExpression.HAPPY,"Others said that we had found a place that belonged only to the gods, and that should we steal what was not ours we would find only torment and misery.").also { stage++ } - 656 -> npcl(FacialExpression.HAPPY,"We voted on this, and decided that it was in the best interests of the tribe to leave these strange rocks where they lay, for the gods can be spiteful and cruel,").also { stage++ } - 657 -> npcl(FacialExpression.HAPPY,"especially to those who do not treat them with the respect they desire. Some of our number refused to accept this ruling by our council however.").also { stage++ } - 658 -> npcl(FacialExpression.HAPPY,"They began to mine these rocks, and set up transport systems to the various places of power that enchanted them. They even created temples at each of these places!").also { stage++ } - 659 -> npcl(FacialExpression.HAPPY,"This was going too far! We had no choice, but to expel them from our tribe forever!").also { stage++ } - 660 -> npcl(FacialExpression.HAPPY,"We turned our backs upon them, and let them know they would never be welcome back to our tribes until they had released themselves from the rocks.").also { stage++ } - 661 -> npcl(FacialExpression.HAPPY,"This is the tale of how the outerlanders came about; through stealing from the gods, and from betraying our ideals. This is why we show them no trust.").also { stage++ } - 662 -> npcl(FacialExpression.HAPPY,"Was there something else you wished to hear?").also { stage = 616 } - - 665 -> npcl(FacialExpression.HAPPY,"Well let me know should you wish to hear our lore and histories. We value them highly.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - - override fun newInstance(player: Player?): DialoguePlugin { - return ChieftanBrundt(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1294) - } - -} - -fun GenerateFremennikName(): String { - val namePrefixes = arrayOf( - "Bal", - "Bar", - "Dal", - "Dar", - "Den", - "Dok", - "Jar", - "Jik", - "Lar", - "Rak", - "Ral", - "Ril", - "Sig", - "Tal", - "Thor", - "Ton" - ) - val nameSuffixes = arrayOf( - "dar", - "dor", - "dur", - "kal", - "kar", - "kir", - "kur", - "lah", - "lak", - "lim", - "lor", - "rak", - "rar", - "tin", - "ton", - "tor", - "vald" - ) - val randomPrefix = Random.nextInt(0, 15) - val randomSuffix = Random.nextInt(0, 16) - - return "${namePrefixes[randomPrefix]}${nameSuffixes[randomSuffix]}" -} - -fun cleanupAttributes(player: Player){ - player.removeAttribute("PeerStarted") - player.removeAttribute("housepuzzlesolved") - player.removeAttribute("fremtrials:peer-vote") - player.removeAttribute("fremtrials:votes") - player.removeAttribute("fremtrials:sigmund-vote") - player.removeAttribute("fremtrials:manni-vote") - player.removeAttribute("fremtrials:swensen-vote") - player.removeAttribute("fremtrials:olaf-accepted") - player.removeAttribute("fremtrials:lalli-talkedto") - player.removeAttribute("fremtrials:askeladden-talkedto") - player.removeAttribute("hasWool") - player.removeAttribute("lyreConcertPlayed") - player.removeAttribute("fremtrials:olaf-vote") - player.removeAttribute("fremtrials:sigli-accepted") - player.removeAttribute("fremtrials:thorvald-vote") - player.removeAttribute("fremtrials:sigli-vote") - player.removeAttribute("riddlesolved") -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FishermanDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FishermanDialogue.kt deleted file mode 100644 index f77ae9121..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FishermanDialogue.kt +++ /dev/null @@ -1,87 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.isQuestComplete -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import rs09.tools.END_DIALOGUE - -@Initializable -class FishermanDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - if(player?.inventory?.contains(3704,1) == true){ - playerl(FacialExpression.HAPPY,"Here. I got you your map.") - stage = 15 - return true - } - else if(player?.inventory?.contains(3703,1) == true){ - playerl(FacialExpression.ASKING,"I don't see what's so special about this so called exotic fish.") - stage = 16 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"Is this trade item for you?") - stage = 17 - return true - } - if(player?.getAttribute("sigmund-steps", 0) == 8){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map of deep sea fishing spots do you?") - stage = 10 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 7){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find an exotic and extremely odd fish, do you?") - stage = 1 - return true - } else if (isQuestComplete(player, "Fremennik Trials")){ - player(FacialExpression.FRIENDLY, "Hello there.").also { stage = 100 } - } else if (!isQuestComplete(player, "Fremennik Trials")) { - player(FacialExpression.FRIENDLY, "Hello there.").also { stage = 200 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.AMAZED,"Ah, so even outerlanders have heard of my amazing catch the other day!").also { stage++ } - 2 -> playerl(FacialExpression.THINKING,"You have it? Can I trade you something for it?").also { stage++ } - 3 -> npcl(FacialExpression.HAPPY,"As exotic looking as it is, it is bad eating. I will happily trade it if you can find me the secret map of the best fishing spots that the navigator has hidden away.").also { stage++ } - 4 -> playerl(FacialExpression.AMAZED,"Is that all?").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY,"Indeed it is, outerlander. The only reason I sit out here in the cold all day long is so I don't have to pay his outrageous prices.").also { stage++ } - 6 -> npcl(FacialExpression.HAPPY,"By getting me his copy of that map, I will finally be self sufficient. I might even make a profit!").also { stage++ } - 7 -> playerl(FacialExpression.THINKING,"I'll see what I can do.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 10 -> npcl(FacialExpression.ANNOYED,"You should pay attention when I speak! I already told you, that rip off navigator has it, and I want it!").also { stage = 1000 } - - 15 -> npcl(FacialExpression.HAPPY,"Great work outerlander! With this, I can finally catch enough fish to make an honest living from it! Here, have the stupid fish.").also { - removeItem(player,3704) - addItem(player,3703) - stage = 1000 - } - - 16 -> npcl(FacialExpression.ANNOYED,"Me neither, outerlander. That is why I gave it to you.").also { stage = 1000 } - - 17 -> npcl(FacialExpression.ANNOYED,"I don't think so.").also { stage = 1000 } - - 100 -> npcl(FacialExpression.FRIENDLY, "Welcome back, ${if (player.isMale) "brother " else "sister "}${player.getAttribute("fremennikname","fremmyname")}. It has been too long since last we spoke! The fish are really biting today!").also { stage = END_DIALOGUE } - 200 -> npcl(FacialExpression.ANNOYED, "Don't talk to me outerlander. Anything you have to say to me, you can say to the Chieftain. Goodbye.").also { stage = END_DIALOGUE } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return FishermanDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1302) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikSailorDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikSailorDialogue.kt deleted file mode 100644 index 7b69ae5fc..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/FremennikSailorDialogue.kt +++ /dev/null @@ -1,80 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable - -@Initializable -class SailorDialogue (player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - if(player?.inventory?.contains(3699,1) == true){ - playerl(FacialExpression.HAPPY,"You'll be glad to know I have had a love song written just for you by Olaf. So can I have that flower of yours now?") - stage = 15 - } - else if(player?.inventory?.contains(3698,1) == true){ - playerl(FacialExpression.ASKING,"So tell me... who is this woman that you are trying to impress anyway?") - stage = 20 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I've got an item to trade.") - stage = 25 - return true - } - else if(player?.getAttribute("sigmund-steps",0) == 2){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a love ballad, do you?") - stage = 10 - return true - } - else if(player?.getAttribute("sigmund-started",false)!!){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a unique flower from across the sea, do you?") - stage = 1 - return true - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.HAPPY,"Ah! Even the outerlanders have heard of my mysterious flower! I found it in a country far far away from here!").also { stage++ } - 2 -> playerl(FacialExpression.ASKING,"Can I buy it from you?").also { stage++ } - 3 -> npcl(FacialExpression.NEUTRAL,"I'm afraid not, outerlander. There is a woman in this village whose heart I seek to capture, and I think giving her this strange flower might be my best bet with her.").also { stage++ } - 4 -> playerl(FacialExpression.THINKING,"Maybe you could let me have the flower and do something else to impress her?").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY,"Hmm... that is not a totally stupid idea outerlander. I know she is a lover of music, and a romantic ballad might be just the thing with which to woo her.").also { stage++ } - 6 -> npcl(FacialExpression.THINKING,"Unfortunately I don't have a musical bone in my entire body, so someone else will have to write it for me.").also { stage++ } - 7 -> playerl(FacialExpression.ASKING,"So if I can find someone to write you a romantic ballad, you will give me your flower?").also { stage++ } - 8 -> npcl(FacialExpression.HAPPY,"That sounds like a fair deal to me, outerlander.").also { - player.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 10 -> npcl(FacialExpression.NEUTRAL,"Well, the only musician I know of in these parts would be that terrible bard Olaf... Ask him.").also { stage = 1000 } - - 15 -> npcl(FacialExpression.HAPPY,"Oh. It's by Olaf? Hmm. Well, a deal's a deal. I just hope it's better than the usual rubbish he comes up with, or my chances are worse than ever.").also { - removeItem(player,3699) - addItem(player,3698) - stage = 1000 - } - - 20 -> npcl(FacialExpression.HAPPY,"It's Thora, the longhall barkeep. Please don't tell her though. She's not like the rest of the Fremennik girls, she has a secret desire to see the world.").also { stage++ } - 21 -> npcl(FacialExpression.HAPPY,"Being a sailor, I can really relate to that.").also { stage = 1000 } - - 25 -> npcl(FacialExpression.HAPPY,"Remember, it's not for me unless it's a love ballad.") - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin{ - return SailorDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1385) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LalliDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LalliDialogue.kt deleted file mode 100644 index d34371871..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/LalliDialogue.kt +++ /dev/null @@ -1,166 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.inInventory -import api.removeItem -import core.game.node.entity.player.Player -import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.item.Item -import org.rs09.consts.Items - -@Initializable -class LalliDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun open(vararg args: Any?): Boolean { - player?.let { - println(it.getAttribute("lalliEatStew", false)) - if (it.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.NEUTRAL,"Hello there.") - stage = 100 - return true - } - if (it.getAttribute("lalliStewCabbageAdded", false)!! && it.getAttribute("lalliStewOnionAdded", false)!! && it.getAttribute("lalliStewPotatoAdded", false)!! && it.getAttribute("lalliStewRockAdded", false)!!){ - npcl(FacialExpression.OLD_NORMAL,"It am ready now?") - stage = 60 - return true - } - if(it.getAttribute("lalliStewCabbageAdded", false)!! || it.getAttribute("lalliStewOnionAdded", false)!! || it.getAttribute("lalliStewPotatoAdded", false)!! || it.getAttribute("lalliStewRockAdded", false)!!){ - npcl(FacialExpression.OLD_NORMAL,"It am ready now?") - stage = 58 - return true - } - if (it.getAttribute("lalliEatStew", false)!!){ - playerl(FacialExpression.NEUTRAL,"Hello there.") - stage = 65 - return true - } - if (it.getAttribute("hasWool", false)!!){ - playerl(FacialExpression.NEUTRAL,"Hello there.") - stage = 75 - return true - } - if (it.getAttribute("fremtrials:askeladden-talkedto", false)!!) { - player("Hello there.") - stage = 50 - return true - } - if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello there.") - stage = 100 - return true - } - if (it.questRepository.getStage("Fremennik Trials") > 0) { - player("Hello there.").also { stage = 0; return true } - } - } - return true - } - - - - override fun newInstance(player: Player?): DialoguePlugin { - return LalliDialogue(player) - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> npc(FacialExpression.OLD_SNEAKY,"Bah! Puny humans always try steal Lalli's golden","apples! You go away now!").also { stage++ } - 1 -> player(FacialExpression.ANNOYED,"Actually, I'm not after your golden apples. I was","wondering if I could have some golden wool, I need it","to string a lyre.").also { stage++ } - 2 -> npc(FacialExpression.OLD_SNEAKY,"Ha! You not fool me human! Me am smart! Other","trolls so jealous of how brainy I are, they kick me out","of camp and make me live down here in cave! But me","have last funny!").also { stage++ } - 3 -> npc(FacialExpression.OLD_SNEAKY,"Me find golden apples on tree and me build wall to stop","anyone who not Lalli eating lovely golden apples! Did","me not tell you I are smart?").also { stage++ } - 4 -> player("Yes, yes, you are incredibly clever. Now please can I","have some golden wool?").also { stage++ } - 5 -> npc(FacialExpression.OLD_SNEAKY,"Hmm, me think you not really think I are clever. Me","think you is trying to trick Lalli. Me not like you as much","as other human. He give me present. I give him wool.").also { stage++ } - 6 -> options("Other human?","No, honest, you're REALLY clever.","Can I give you a present?").also { stage++ } - 7 -> when(buttonId){ - 1 -> player("Other human? You mean someone else has been here","and you gave them wool?").also { stage = 10 } - 2 -> player("No, honest, you're REALLY clever!").also { stage = 20 } - 3 -> player("Can I give you a present.").also { stage = 30 } - } - - //Other human? - 10 -> npc(FacialExpression.OLD_SNEAKY,"Human call itself Askeladden! It not trick Lalli. Lalli do","good deal with human! Stupid human get some dumb","wool, but did not get golden apples!").also { stage++ } - 11 -> player("I see... okay, well, bye!").also { player.setAttribute("/save:fremtrials:lalli-talkedto",true); stage = 1000 } - - //Honest, you're clever - 20 -> npc(FacialExpression.OLD_SNEAKY,"Me no believe you tell truth. Go away.").also { stage = 1000 } - - //Can I give you a present - 30 -> npc(FacialExpression.OLD_SNEAKY,"Me think about that.").also { stage = 1000 } - - 50 -> npc(FacialExpression.OLD_SNEAKY,"Bah! Puny humans always try steal Lalli's golden","apples! You go away now!").also { stage++ } - 51 -> player("Wait! I have something that might interest you... a pet", "rock!").also { stage++ } - 52 -> npc(FacialExpression.OLD_LAUGH2, "Hah! You think me stupid or something human? Me", "already got one! Me don't want lots of baby rocks either,", "so me don't want another one around the place!").also { stage++ } - 53 -> player(FacialExpression.HALF_CRYING,"Please... all I want is some of your golden wool...").also { stage++ } - 54 -> npc(FacialExpression.OLD_SNEAKY, "Stupid human think he can trick me into giving away", "some golden apples! Hah! Golden apples is all me got to", "eat. you not get them. no way!").also { stage++ } - 55 -> player(FacialExpression.HALF_THINKING, "Hmm... So you're hungry? I think I will have the", "perfect thing for you to eat... I just need to get myself", "an onion, a potato, and a cabbage...").also { stage++ } - 56 -> interpreter.sendDialogue("You have a cunning plan to trick this troll. You need your pet rock,", "a cabbage, a potato and an onion.").also { player.removeAttribute("fremtrials:fremtrials:lalli-talkedto");stage = 1000 } - - 58 -> playerl(FacialExpression.NEUTRAL,"Not just yet...").also { stage = 1000 } - - 60 -> playerl(FacialExpression.HAPPY,"Indeed it is. Try it and see.").also { stage++ } - 61 -> npcl(FacialExpression.OLD_HAPPY,"Hmm... YUM! That are delicious! Me never know human know to make soup out of stone? It some special stone?").also { stage++ } - 62 -> playerl(FacialExpression.NEUTRAL,"Indeed it is. But I'm willing to trade it.").also { stage++ } - 63 -> npcl(FacialExpression.OLD_SNEAKY,"Let me think about that, me like to think.").also { - player.setAttribute("/save:lalliEatStew",true) - player.removeAttribute("lalliStewOnionAdded") - player.removeAttribute("lalliStewPotatoAdded") - player.removeAttribute("lalliStewCabbageAdded") - player.removeAttribute("lalliStewRockAdded") - stage = 1000 - } - - 65 -> npcl(FacialExpression.OLD_HAPPY,"Your soup very tasty, human! But me still not want trade golden apples for your stone. Me think pet rock get jealous.").also { stage++ } - 66 -> playerl(FacialExpression.ANGRY,"I. DON'T. WANT. ANY. GOLDEN. APPLES. ALL. I. WANT. IS. A. GOLDEN. FLEECE.").also { stage++ } - 67 -> npcl(FacialExpression.OLD_ALMOST_CRYING,"Gee, sorry human, all you have do is ask, me not need you to shout. You act like you think Lalli am stupid or something...").also { - if(player.inventory.isFull){ - stage = 68 - }else{ - stage = 70 - } - } - 68 -> npcl(FacialExpression.OLD_NORMAL,"Me would give you golden fleece if me think you have enough room in your inventory.").also { stage = 1000 } - 70 -> npcl(FacialExpression.OLD_HAPPY,"Here you go. Hah! Me trick you Human! All you got is worthless golden fleece! Me got very rare soup-making stone!").also { stage = 71 } - 71 -> playerl(FacialExpression.HAPPY,"Glad you're happy Lalli!").also { - player.inventory.add(Item(Items.GOLDEN_FLEECE_3693)) - player.setAttribute("/save:hasWool",true) - player.removeAttribute("lalliEatStew") - stage = 1000 - } - 75 -> npcl(FacialExpression.OLD_HAPPY,"Hah! How you like worthless golden fleece! Me very like rare soup-making stone!").also { stage++ } - 76 -> playerl(FacialExpression.HAPPY,"Oh it's great, thank you again for the fleece Lalli, I hope you're enjoying your soup").also { stage = 1000 } - - 100 -> npcl(FacialExpression.OLD_HAPPY,"Ha! Stupid human! You no get any golden apples! Even though me much like stone soup!").also { stage++ } - 101 -> playerl(FacialExpression.ASKING,"Can I please have some more golden wool?").also { stage++ } - 102 -> npcl(FacialExpression.OLD_HAPPY,"Me will sell you some golden wool, but me no sell you any golden apples!").also { stage++ } - 103 -> playerl(FacialExpression.HAPPY,"How much for the golden wool?").also { stage++ } - 104 -> npcl(FacialExpression.OLD_HAPPY,"Me want 1000 coins! You pay or go!").also { - stage = if(inInventory(player,Items.COINS_995,1000)){ - 105 - } - else 115 - } - 105 -> options("Pay","Don't pay").also { stage++ } - 106 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Is that all? Here you go!").also { - removeItem(player,Item(Items.COINS_995,1000)) - addItem(player,Items.GOLDEN_FLEECE_3693) - stage++ - } - 2 -> npcl(FacialExpression.OLD_HAPPY,"You no pay, then you go! You no get any golden apples!").also { stage = 1000 } - } - 107 -> npcl(FacialExpression.OLD_HAPPY,"Ha! Stupid human think he buy golden apples, but he actually get stupid wool! Hahaha!").also { stage = 1000 } - - 115 -> playerl(FacialExpression.THINKING,"I don't even have that much cash on me...").also { stage++ } - 116 -> npcl(FacialExpression.OLD_NORMAL,"Well stupid bad trade human don't get no wool then! Or any golden apples!").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(1270) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ManniDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ManniDialogue.kt deleted file mode 100644 index 6a6300058..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ManniDialogue.kt +++ /dev/null @@ -1,202 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.node.entity.impl.Animator -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.game.system.task.Pulse -import rs09.game.world.GameWorld -import core.game.world.map.Location -import core.game.world.update.flag.context.Animation -import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import org.rs09.consts.Items - -@Initializable -class ManniDialogue(player: Player? = null) : DialoguePlugin(player){ - var curNPC: NPC? = NPC(0,Location(0,0,0)) - override fun open(vararg args: Any?): Boolean { - curNPC = args[0] as? NPC - if(player?.questRepository?.getStage("Fremennik Trials")!! > 0){ - if(player?.inventory?.contains(3707, 1) == true){ - playerl(FacialExpression.HAPPY,"Hey. I got your cocktail for you.") - stage = 170 - return true - } - else if(player?.inventory?.contains(3706,1) == true){ - playerl(FacialExpression.ASKING,"So it doesn't bother you at all that you just gave up your place here for one drink?") - stage = 180 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"Is this trade item for you?") - stage = 165 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 12){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find the longhall barkeeps' legendary cocktail, do you?") - stage = 162 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 11){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a token to allow a seat at the champions table, do you?") - stage = 150 - return true - } - else if(player?.getAttribute("fremtrials:manni-accepted",false) == true) { - if (player?.inventory?.containsItem(Item(3712)) == true || player?.inventory?.containsItem(Item(3711)) == true) { - npc("Ah, I see you have your keg of beer. Are ye ready to", "drink against each other?") - stage = 101 - return true - } else { - npc("Come back when you're ready to begin", "the contest.") - stage = 1000; - return true - } - } - else if(player?.getAttribute("fremtrials:manni-vote",false) == true){ - npc("e have my vote!") - stage = 1000 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Howdy!") - stage = 190 - return true - } - player("Hello there!") - stage = 0 - return true - } - else { - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 200 - return true - } - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> {npc("Hello outerlander. I overheard your conversation with","Brundt just now. You wish to become a member of the","Fremennik?");stage++} - 1 -> {player("That's right! Why, are you on the counsel?");stage++} - 2 -> {npc("Do not let my drink-ssussed appearance fool you, I","earnt my place on the council many years past.I am","always glad to see new blood enter our tribe, and will","happily vote for you.");stage++} - 3 -> {player("Great!");stage++} - 4 -> {npc("Providing you can pass a little test for me. As a","Fremennik, you will need to show cunning, stamina,","fastitude, and an iron constitution. I know of only one","way to test all of these.");stage++} - 5 -> {player("And what's that?");stage++} - 6 -> {npc("Why, a drinking contest!");stage++} - 7 -> {npc("The task is simple enough! You versus me, a stiff drink","each, last man standing wins the trial. So what say you?");stage++} - 8 -> {options("Yes","No");stage++} - 9 -> when(buttonId){ - 1 -> {player("A drinking contest? Easy. Set them up, and I'll knock","them back.");stage++} - 2 -> {player("I don't like the sound of that.");stage = 12} - } - - //Yes - 10 -> {npc("When you are ready to begin, go and pick up a keg","from that table over there, and come back here.");stage++} - 11 -> {npc("We start when you have your keg of beer with you","and finish when one of us can drink no more and","yields.");stage = 1000;player?.setAttribute("/save:fremtrials:manni-accepted",true)} - - //No - 12 -> {npc("That's a shame."); stage = 1000} - - - //Begin drinking competition - 101 -> {options("Yes","No");stage++} - 102 -> when(buttonId){ - 1 -> {player("Yes, let's start this drinking contest!");stage++} - 2 -> {player("No, I don't think I am.");stage = 1000} - } - 103 -> {npc("As you wish outerlander; I will drink first, then you will","drink.");stage++} - 104 -> {GameWorld.submit(DrinkingPulse(player,curNPC,player?.getAttribute("fremtrials:keg-mixed",false))); end()} - - //Sigmund stuff - 150 -> npcl(FacialExpression.HAPPY,"As a matter of fact, I do. I have one right here. I earnt my place here at the longhall for surviving over 5000 battles and raiding parties.").also { stage++ } - 151 -> npcl(FacialExpression.HAPPY,"Due to my contribution to the tribe, I am now permitted to spend my days here in the longhall listening to the epic tales of the bard, and drinking beer.").also { stage++ } - 152 -> playerl(FacialExpression.HAPPY,"Cool. That sounds pretty sweet! So I guess you don't want to give it away?").also { stage++ } - 153 -> npcl(FacialExpression.SAD,"I think it sounds better than it actually is outerlander. I miss my glory days of combat on the battlefield.").also { stage++ } - 154 -> npcl(FacialExpression.SAD,"And to tell you the truth, the beer here isn't great, and the bards' music is lousy. I would happily give up my token if it were not for the one thing that keeps me here.").also { stage++ } - 155 -> npcl(FacialExpression.HAPPY,"Our barkeep is one of the best in the world, and has worked in taverns across the land. When she was younger, she experimented a lot with her drinks").also { stage++ } - 156 -> npcl(FacialExpression.HAPPY,"and invented a cocktail so alcoholic and tasty that it has become something of a legend to all who enjoy a drink.").also { stage++ } - 157 -> npcl(FacialExpression.SAD,"Unfortunately, she decided that cocktails were not a suitable drink for Fremennik warriors, and vowed to never again make it.").also { stage++ } - 158 -> npcl(FacialExpression.SAD,"I have been here every day since she returned, hoping that someday she might change her mind and I might try this legendary cocktail for myself. Alas, it has never come to pass...").also { stage++ } - 159 -> npcl(FacialExpression.SAD,"If you can persuade her to make me her legendary cocktail, I will be happy to never let another drop of alcohol pass my lips, and will give you my champions token.").also { stage++ } - 160 -> playerl(FacialExpression.THINKING,"That's all?").also { stage++ } - 161 -> npcl(FacialExpression.NEUTRAL,"That is all.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 162 -> npcl(FacialExpression.ANNOYED,"Uh... yes, the longhall barkeep has it. So could you get me my drink now please?").also { stage = 1000 } - - 165 -> npcl(FacialExpression.ANNOYED,"Not me, no.").also { stage = 1000 } - 170 -> npcl(FacialExpression.AMAZED,"...It is true! The legendary cocktail! I have waited for this day ever since I first started drinking!").also { - removeItem(player,3707) - addItem(player,3706) - stage++ - } - 171 -> npcl(FacialExpression.HAPPY,"Here outerlander, you may take my token. I will happily give up my place at the longhalls table of champions just for a taste of this exquisite beverage!").also { stage++ } - 172 -> playerl(FacialExpression.ASKING,"It's just a drink...").also { stage++ } - 173 -> npcl(FacialExpression.HAPPY,"No, it is an artform. A drink such as this should be appreciated, and admired.").also { stage++ } - 174 -> npcl(FacialExpression.HAPPY,"It is like a fine painting, or a tasteful sculpture. If what I hear is true, then all other drinks become like unpalatable water in comparison to this!").also { stage++ } - 175 -> playerl(FacialExpression.HAPPY,"I guess you're happy with the trade then!").also { stage = 1000 } - - 180 -> npcl(FacialExpression.HAPPY,"Ah, but it was not just any drink... It was the finest cocktail ever created! Now that I have tasted it, I need never drink again, for my tastebuds will never be so excited!").also { stage++ } - 181 -> playerl(FacialExpression.ASKING,"So it was nice?").also { stage++ } - 182 -> npcl(FacialExpression.HAPPY,"It was... exquisite!").also { stage++ } - 183 -> playerl(FacialExpression.ASKING,"What did it taste of, then?").also { stage++ } - 184 -> npcl(FacialExpression.HAPPY,"Mostly tomato juice.").also { stage = 1000 } - - 190 -> npcl(FacialExpression.HAPPY,"Hey! It's ${player.getAttribute("fremennikname","clyde smilers")}! Let me buy you a drink!").also { - addItem(player, Items.BEER_1917) - stage++ } - 191 -> npcl(FacialExpression.HAPPY,"There ya go! Anyone who can drink like you earns my respect!").also { stage = 1000 } - - 200 -> npcl(FacialExpression.HAPPY,"Do not think me rude outerlander, but our customs forbid me talking to you. All contact with outerlanders must be vetted by our chieftain, Brundt.").also { stage++ } - 201 -> playerl(FacialExpression.ASKING,"Where is this Brundt?").also { stage++ } - 202 -> npcl(FacialExpression.HAPPY,"He is standing just over there. He will speak for the tribe.").also { stage = 1000 } - - - 1000 -> end() - } - return true - } - - class DrinkingPulse(val player: Player?,val npc: NPC?, val lowAlcohol: Boolean? = false) : Pulse(){ - var counter = 0 - override fun pulse(): Boolean { - if(!lowAlcohol!!){ - when(counter++){ - 0 -> {player?.lock();npc?.lock(); npc?.isNeverWalks = true} - 1 -> {player?.face(npc); npc?.face(player)} - 3 -> npc?.animator?.animate(Animation(1330,Animator.Priority.HIGH)) - 5 -> {player?.animator?.animate(Animation(1330,Animator.Priority.HIGH)); player?.inventory?.remove(Item(3711))} - 7 -> player?.dialogueInterpreter?.sendDialogues(player,FacialExpression.DRUNK,"Ish no fair!! I canna drink another drop! I alsho","feel veddy, veddy ill...") - 15 -> player?.dialogueInterpreter?.sendDialogues(npc,FacialExpression.DRUNK,"I guessh I win then ouddaladder! (hic) Niche try,","anyway!") - 16 -> {player?.unlock(); npc?.unlock(); player?.face(player);npc?.face(npc); npc?.isNeverWalks = false; return true} - } - } else { - when(counter++){ - 0 -> {player?.lock();npc?.lock(); npc?.isNeverWalks = true} - 1 -> {player?.face(npc); npc?.face(player)} - 3 -> npc?.animator?.animate(Animation(1330,Animator.Priority.HIGH)) - 5 -> {player?.animator?.animate(Animation(1330,Animator.Priority.HIGH)); player?.inventory?.remove(Item(3711))} - 7 -> player?.dialogueInterpreter?.sendDialogues(player,FacialExpression.HAPPY,"Aaaah, lovely stuff. So you want to get the next round","in, or shall I? You don't look so good there!") - 15 -> player?.dialogueInterpreter?.sendDialogues(npc,FacialExpression.DRUNK,"Wassha? Guh? You drank that whole keg! But it dinnna","affect you at all! I conshede! You can probably","outdrink me!") - 21 -> player?.dialogueInterpreter?.sendDialogues(npc,FacialExpression.DRUNK,"I jusht can't (hic) believe it! Thatsh shome might fine","drinking legs you got! Anyone who can drink like","THAT getsh my vote atta somsh.... coumah... gets my","vote!") - 22 -> {player?.unlock(); npc?.unlock(); player?.face(player);npc?.face(npc); npc?.isNeverWalks = false;player?.removeAttribute("fremtrials:cherrybomb");player?.removeAttribute("fremtrials:manni-accepted");player?.removeAttribute("fremtrials:keg-mixed"); player?.setAttribute("/save:fremtrials:manni-vote",true); player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1); return true} - } - } - return false - } - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ManniDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1286) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PeerTheSeerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PeerTheSeerDialogue.kt deleted file mode 100644 index 13b2a2683..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/PeerTheSeerDialogue.kt +++ /dev/null @@ -1,263 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.dumpContainer -import api.questStage -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.diary.DiaryType -import core.plugin.Initializable -import core.tools.RandomFunction -import rs09.tools.END_DIALOGUE -import kotlin.random.Random - -@Initializable -class PeerTheSeerDialogue(player: Player? = null) : DialoguePlugin(player) { - val predictionOne = arrayOf("one","two","three","four","five","six","seven","eight","ten") - val predictionTwo = arrayOf("black","blue","brown","cyan","green","pink","purple","red","yellow") - val predictionThree = arrayOf("fire giant","ghosts","giant","goblin","green dragon","hobgoblin","lesser demon","moss giant","ogre","zombie") - val predictionFour = arrayOf("Al Kharid","Ardougne","Burthorpe","Canifis","Catherby","Falador","Karamja","Varrock","The Wilderness","Yanille") - val predictionFive = arrayOf("battleaxe","crossbow","dagger","javelin","long sword","mace","scimitar","spear","warhammer") - val predictionSix = arrayOf("Agility","Cooking","Crafting","Fishing","Fletching","Herblore","Mining","Runecrafting","Thieving") - val PREDICTIONS = arrayOf( - "You will find luck today with the number ${predictionOne[RandomFunction.getRandom(8)]}.", - "The colour ${predictionTwo[RandomFunction.getRandom(8)]} will bring you luck this day.", - "The enemy called ${predictionThree[RandomFunction.getRandom(9)]} is your lucky totem this day.", - "The place called ${predictionFour[RandomFunction.getRandom(9)]} will be worth your time to visit.", - "The stars tell me that you should use a ${predictionFive[RandomFunction.getRandom(8)]} in combat today.", - "You would be wise to train the skill ${predictionSix[RandomFunction.getRandom(8)]}") - var prediction = RandomFunction.getRandom(5) - - override fun open(vararg args: Any?): Boolean { - if(player.inventory.contains(3710,1)){ - playerl(FacialExpression.HAPPY,"Can I have a weather forecast now please?") - stage = 15 - return true - } - else if(player.inventory.contains(3705,1)){ - playerl(FacialExpression.ASKING,"So, about this forecast...") - stage = 20 - return true - } - else if(player.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I've got an item to trade but I don't know if it's for you.") - stage = 26 - return true - } - else if(player.getAttribute("sigmund-steps", 0) == 10){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a brave and powerful warrior to act as a bodyguard?") - stage = 8 - return true - } - else if(player.getAttribute("sigmund-steps", 0) == 9){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a weather forecast from the Fremennik Seer do you?") - stage = 1 - return true - } - else if(player.getAttribute("PeerStarted",false) && !player.inventory.isEmpty || !player.equipment.isEmpty){ - npcl(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") - stage = 100 - return true - } - else if(player.getAttribute("PeerStarted",false) && player.inventory.isEmpty && player.equipment.isEmpty){ - npcl(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") - stage = 110 - return true - } - else if(player.getAttribute("fremtrials:peer-vote",false)){ - npcl(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") - stage = 120 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") - stage = 150 - return true - } - else if(player.questRepository.hasStarted("Fremennik Trials")){ - npcl(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?") - stage = 50 - return true - } - if (questStage(player, "Fremennik Trials") == 0) { - npc(FacialExpression.SAD,"Uuuh... What was that dark presence I felt?").also { stage = 300 } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.ANNOYED,"Er.... Yes, because I AM the Fremennik Seer.").also { stage++ } - 2 -> playerl(FacialExpression.ASKING,"Can I have a weather forecast then please?").also { stage++ } - 3 -> npcl(FacialExpression.THINKING,"You require a divination of the weather? This is a simple matter for me, but I will require something in return from you for this small service.").also { stage++ } - 4 -> playerl(FacialExpression.ASKING,"I knew you were going to say that...").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY,"Do not fret, outerlander; it is a fairly simple matter. I require a bodyguard for protection. Find someone willing to offer me this service.").also { stage++ } - 6 -> playerl(FacialExpression.ASKING,"That's all?").also { stage++ } - 7 -> npcl(FacialExpression.HAPPY,"That is all.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 10 -> npcl(FacialExpression.ANNOYED,"If I did, then I would simply have asked them myself now, wouldn't I, outerlander?").also { stage = 1000 } - - 15 -> npcl(FacialExpression.ANNOYED,"I have already told you outerlander; You may have a reading from me when I have a signed contract from a warrior guaranteeing my protection.").also { stage++ } - 16 -> playerl(FacialExpression.HAPPY,"Yeah, I know; I have one right here from Thorvald.").also { - removeItem(player,3710) - addItem(player,3705) - stage++ - } - 17 -> npcl(FacialExpression.AMAZED,"You have not only persuaded one of the Fremennik to act as a servant to me, but you have enlisted the aid of mighty Thorvald himself???").also { stage++ } - 18 -> npcl(FacialExpression.HAPPY,"You may take this forecast with my blessing outerlander. You have offered me the greatest security I can imagine.").also { stage = 1000 } - - 20 -> npcl(FacialExpression.THINKING,"Yes, outerlander?").also { stage++ } - 21 -> playerl(FacialExpression.ASKING,"I still don't know why you didn't just let me have one anyway in the first place. Surely it means nothing to you?").also { stage++ } - 22 -> npcl(FacialExpression.THINKING,"That is not true, outerlander. Although I see glimpses of the future all of the time, using my powers brings the attention of the gods to me.").also { stage++ } - 23 -> npcl(FacialExpression.THINKING,"Some of the gods are spiteful and cruel, and I fear if I use my powers too much then I will meet with unpredictable accidents.").also { stage++ } - 24 -> npcl(FacialExpression.HAPPY,"This is why I needed protection.").also { stage++ } - 25 -> playerl(FacialExpression.THINKING,"Okay... I... think I understand...").also { stage = 1000 } - - 26 -> npcl(FacialExpression.ANNOYED,"Not me, I'm afraid.").also { stage++ } - - //The Seer's Trial - 50 -> npcl(FacialExpression.AMAZED,"!").also { stage++ } - 51 -> npcl(FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } - 52 -> playerl(FacialExpression.ASKING,"Hello. I'm looking for members of the council of elders to vote for me to become a Fremennik.").also { stage++ } - 53 -> npcl(FacialExpression.THINKING,"Are you now? Well that is interesting. Usually outerlanders do not concern themselves with our ways like that.").also { stage++ } - 54 -> npcl(FacialExpression.HAPPY,"I am one of the members of the council of elders, and should you be able to prove to me that you have something to offer my clan I will vote in your favour at the next meeting.").also { stage++ } - 55 -> playerl(FacialExpression.ASKING,"How can I prove that to you?").also { stage++ } - 56 -> npcl(FacialExpression.HAPPY,"Well, I have but a simple test. This building behind me is my house. Inside I have constructed a puzzle.").also { stage++ } - 57 -> npcl(FacialExpression.HAPPY,"As a Seer to the clan, I value intelligence very highly, so you may think of it as an intelligence test of sorts.").also { stage++ } - 58 -> playerl(FacialExpression.THINKING,"An intelligence test? I thought barbarians were stupid!").also { stage++ } - 59 -> npcl(FacialExpression.ANNOYED,"That is the opinion that outerlanders usually hold of my people, it is true. But that is because people often confuse knowledge with wisdom.").also { stage++ } - 60 -> npcl(FacialExpression.ANNOYED,"My puzzle tests not what you know, but what you can work out. All members of our clan have been tested when they took their trials.").also { stage++ } - 61 -> playerl(FacialExpression.ASKING,"So what exactly does this puzzle consist of, then?").also { stage++ } - 62 -> npcl(FacialExpression.HAPPY,"Well, firstly you must enter my house with no items, weapons or armour. Then it is a simple matter of entering through one door and leaving by the other.").also { stage++ } - 63 -> playerl(FacialExpression.ASKING,"I can't take anything in there with me?").also { stage++ } - 64 -> npcl(FacialExpression.HAPPY,"That is correct outerlander. Everything you need to complete the puzzle you will find inside the building. Nothing more.").also { stage++ } - 65 -> npcl(FacialExpression.HAPPY,"So what say you outerlander? You think you have the wit to earn yourself my vote?").also { stage++ } - 66 -> options("Yes","No").also { stage++ } - 67 -> when(buttonId){ - 1 ->{ playerl(FacialExpression.HAPPY,"Yes, I accept your challenge, I have one small question, however...") - player?.setAttribute("/save:PeerStarted",true) - player?.setAttribute("/save:PeerRiddle", Random.nextInt(0,3)) - stage = 70 - } - 2 ->{ playerl(FacialExpression.HAPPY,"No, thinking about stuff isn't really my 'thing'. I'd rather go kill something. I'll find someone else to vote for me") - stage++ - } - } - //No to challenge - 68 -> npcl(FacialExpression.HAPPY,"As you wish, outerlander.").also { stage = 1000 } - - //Yes to challenge - 70 -> npcl(FacialExpression.ASKING,"Yes outerlander?").also { stage++ } - 71 -> playerl(FacialExpression.THINKING,"Well... you say I can bring nothing with me when I enter your house...").also { stage++ } - 72 -> npcl(FacialExpression.ANNOYED,"Yes outerlander??").also { stage++ } - 73 -> playerl(FacialExpression.THINKING,"Well...").also { stage++ } - 74 -> npcl(FacialExpression.ANGRY,"Yes, outerlander???").also { stage++ } - 75 -> playerl(FacialExpression.ASKING,"Where is the nearest bank?").also { stage++ } - 76 -> npcl(FacialExpression.HAPPY,"Ah, I see your problem outerlander. The nearest bank to here is the place known to outerlanders as the Seers Village.").also { stage++ } - 77 -> npcl(FacialExpression.HAPPY,"It is some way South. I do however have an alternative, should you wish to take it.").also { stage++ } - 78 -> playerl(FacialExpression.ASKING,"And what is that?").also { stage++ } - 79 -> npcl(FacialExpression.HAPPY,"I can store all the weapons, armour and items that you have upon you directly into your bank account.").also { stage++ } - 80 -> npcl(FacialExpression.HAPPY,"This will tax what little magic I possess however, so you will have to travel to the bank to withdraw them again.").also { stage++ } - 81 -> npcl(FacialExpression.HAPPY,"What say you outerlander? Do you wish me to do this for you?").also { stage++ } - 82 -> options("Yes","No").also { stage++ } - 83 -> when(buttonId){ - 1 -> { - val slotAmount = player.inventory.itemCount() + player.equipment.itemCount() - if (slotAmount < player.bank.freeSlots()){ - npcl(FacialExpression.HAPPY,"The task is done. I wish you luck with your test, outerlander.") - dumpContainer(player,player.inventory) - dumpContainer(player,player.equipment) - stage = 1000 - } - else { - npcl(FacialExpression.SAD,"I am sorry outerlander, the spell is not working. I believe you may have some objects that you cannot bank with you") - stage = 1000 - } - } - 2 -> playerl(FacialExpression.HAPPY,"No thanks. Nobody touches my stuff but me!").also { stage++ } - } - - //No to banking - 84 -> npcl(FacialExpression.HAPPY,"As you wish, outerlander. You may attempt my little task when you have deposited your equipment in the bank").also { - stage = 1000 - } - - //Yes to banking but cannot bank - 90 -> npcl(FacialExpression.SAD,"I am sorry outerlander, the spell is not working. I believe you may have some objects that you cannot bank with you").also { - stage = 1000 - } - - //Returning after accepting with items. - 100 -> npcl(FacialExpression.AMAZED,"!").also { stage++ } - 101 -> npcl(FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } - 102 -> playerl(FacialExpression.ASKING,"So I can bring nothing with me when I enter your house?").also { stage++ } - 103 -> npcl(FacialExpression.HAPPY,"That is correct outerlander, but as I say, I can use my small skill in magic to send your items directly into your bank account from here.").also { stage++ } - 104 -> npcl(FacialExpression.HAPPY,"You will need to manually go to the bank to withdraw them again however.").also { stage++ } - 105 -> npcl(FacialExpression.HAPPY,"Would you like me to perform this small spell upon you, outerlander?").also { stage = 82 } - - //Returning after accepting without items. - 110 -> npcl(FacialExpression.AMAZED,"!").also { stage++ } - 111 -> npcl(FacialExpression.HAPPY,"Ahem, sorry about that. Hello outerlander. What do you want?").also { stage++ } - 112 -> playerl(FacialExpression.ASKING,"So I just have to enter by one door of your house, and leave by the other?").also { stage++ } - 113 -> npcl(FacialExpression.HAPPY,"That is correct outerlander. Be warned it is not as easy as it may at first sound...").also { stage = 1000 } - - //After completing the Seer's Trial. - 120 -> npcl(FacialExpression.AMAZED,"!").also { stage++ } - 121 -> npcl(FacialExpression.HAPPY,"Ahem, sorry about that.").also { stage++ } - 122 -> playerl(FacialExpression.HAPPY,"So you will vote for me at the council?").also { stage++ } - 123 -> npcl(FacialExpression.HAPPY,"Absolutely, outerlander. Your wisdom in passing my test marks you as worthy in my eyes.").also { stage = 1000 } - - - //After Fremennik Trials - 150 -> npcl(FacialExpression.AMAZED,"!").also { stage++ } - 151 -> npcl(FacialExpression.HAPPY,"Ahem, sorry about that.").also { - stage = if(player.achievementDiaryManager.getDiary(DiaryType.FREMENNIK).isComplete(0)){ - 200 - }else 152 - } - 152 -> playerl(FacialExpression.HAPPY,"Hello Peer.").also { stage++ } - 153 -> npcl(FacialExpression.HAPPY,"Greetings to you, brother ${player.getAttribute("fremennikname","dingle")}! What brings you to see me again?").also { stage++ } - 154 -> options("Can you tell my future?","Nothing really.").also{stage++} - 155 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"I was wondering if you could give me a reading on my future...?").also { stage++ } - 2 -> playerl(FacialExpression.HAPPY,"Nothing really, I just stopped by to say hello").also { stage = 160 } - } - 156 -> npcl(FacialExpression.HAPPY,"Ah, you would like a prediction? I do not see that that would be so difficult... Wait a moment...").also { - stage++ - } - 157 -> npcl(FacialExpression.HAPPY,"Here is your prediction: ${PREDICTIONS[prediction]}").also { stage = 1000 } - - 160 -> npcl(FacialExpression.HAPPY,"Well, hello to you too!").also { stage = 1000 } - - - 200 -> options("Deposit service","Can you tell my future?","Nothing really.").also{ stage++ } - 201 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Could you deposit some things for me, please?").also { stage++ } - 2 -> playerl(FacialExpression.ASKING,"I was wondering if you could give me a reading on my future...?").also { stage = 156 } - 3 -> playerl(FacialExpression.HAPPY,"Nothing really, I just stopped by to say hello").also { stage = 160 } - } - 202 -> npcl(FacialExpression.HAPPY,"Of course, ${player.getAttribute("fremennikname","dingle")}. I am always happy to aid those who have earned the right to wear Fremennik sea boots.").also { - player.bank.openDepositBox() - stage = 1000 - } - - 300 -> npc(FacialExpression.NEUTRAL,"!").also { stage++ } - 301 -> npcl(FacialExpression.NEUTRAL,"Ahem, sorry about that. I have no interest in talking to you just now outerlander.").also { stage = END_DIALOGUE } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return PeerTheSeerDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1288) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigmundDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigmundDialogue.kt deleted file mode 100644 index 19a801bf4..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SigmundDialogue.kt +++ /dev/null @@ -1,146 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -class SigmundDialogue (player: Player? = null) : DialoguePlugin(player) { - - private val QUEST_ITEMS = intArrayOf(3709,3707,3706,3710,3705,3704,3703,3702,3701,3708,3700,3699,3698) - - val gender = if(player?.isMale == true){ - "brother" - }else "sister" - - val fName = player?.getAttribute("fremennikname","uhhh fucking uhhh geoff lol") - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 50 - return true - } - else if(!player.questRepository.hasStarted("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 60 - return true - } - if(player?.inventory?.contains(3698,1) == true){ - playerl(FacialExpression.HAPPY,"Here's that flower you wanted.") - stage = 30 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true && !player.inventory.containsAtLeastOneItem(QUEST_ITEMS)){ - npcl(FacialExpression.ASKING,"So... how goes it outerlander? Did you manage to obtain my flower for me yet? Or do you lack the necessary merchanting skills?") - stage = 35 - return true - } - if(player?.getAttribute("sigmund-started",false)!!){ - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 25 - return true - } - else if(!player?.getAttribute("fremtrials:sigmund-vote",false)!!){ - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 1 - return true - } - else if(player?.getAttribute("fremtrials:sigmund-vote",false) == true){ - playerl(FacialExpression.HAPPY,"Hello there!") - stage = 40 - return true - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.NEUTRAL,"Hello outlander.").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL,"Are you a member of the council?").also { stage++ } - 3 -> npcl(FacialExpression.NEUTRAL,"That I am outlander; it is a position that brings my family and I pride.").also { stage++ } - 4 -> playerl(FacialExpression.NEUTRAL,"I was wondering if I can count on your vote at the council of elders?").also { stage++ } - 5 -> npcl(FacialExpression.THINKING,"You wish to become a Fremennik? I may be persuaded to swing my vote to your favor, but you will first need to do a little task for me.").also { stage++ } - 6 -> playerl(FacialExpression.ANNOYED,"How did I know it wouldn't be that simple for your vote?").also { stage++ } - 7 -> npcl(FacialExpression.NEUTRAL,"Calm yourself outerlander. It is but a small task really... I simply require a flower.").also { stage++ } - 8 -> playerl(FacialExpression.ASKING,"A flower? What's the catch?").also { stage++ } - 9 -> npcl(FacialExpression.NEUTRAL,"The catch? Well, it is not just any flower. Someone in this town has an extremely unique flower from a far off land that they picked up on their travels.").also { stage++ } - 10 -> npcl(FacialExpression.NEUTRAL,"I would like you to demonstrate your merchanting skills to me by persuading them to part with it, and then give it to me for my vote.").also { stage++ } - 11 -> playerl(FacialExpression.THINKING,"Well... I guess that doesn't sound too hard.").also { stage++ } - 12 -> npcl(FacialExpression.HAPPY,"Excellent! You will obtain this flower for me, then?").also { stage++ } - 13 -> options("Yes","No").also { stage++ } - 14 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"Okay. I don't think this will be too difficult. Any suggestions on where to start looking for this flower?").also { - player?.setAttribute("/save:sigmund-started",true) - player?.setAttribute("/save:sigmund-steps",1) - stage++ } - 2 -> playerl(FacialExpression.ANNOYED,"You know what? No. This all sounds like a lot of hassle to me, and frankly I just can't be bothered with it right now. I'll go get someone else to vote for me.").also { stage = 20 } - } - 15 -> npcl(FacialExpression.THINKING,"Ah, well outerlander, if I knew where to start looking I would simply do it myself!").also { stage++ } - 16 -> playerl(FacialExpression.ANNOYED,"No help at ALL?").also { stage++ } - 17 -> npcl(FacialExpression.NEUTRAL,"We are a very insular clan, so I would not expect you to have to leave this town to find whatever you need.").also { stage = 1000 } - - //No - 20 -> npcl(FacialExpression.NEUTRAL,"As you wish outlander. If you change your mind, come and see me again; I am very interested in getting my hands on that flower").also { stage = 1000 } - - 25 -> npcl(FacialExpression.ASKING,"So... how goes it outerlander? Did you manage to obtain my flower for me yet? Or do you lack the necessary merchanting skills?").also { stage++ } - 26 -> playerl(FacialExpression.ASKING,"I'm still working on it... Do you have any suggestion where to start looking for it?").also { stage++ } - 27 -> npcl(FacialExpression.THINKING," I suggest you ask around the other Fremennik in the town. A good merchant will find exactly what their customer needs somewhere.").also { stage = 1000 } - - 30 -> npcl(FacialExpression.AMAZED,"Incredible! Your merchanting skills might even match my own! I have no choice but to recommend you to the council of elders!").also { - removeItem(player,3698) - player?.removeAttribute("sigmund-steps") - player?.removeAttribute("sigmund-started") - player?.removeAttribute("sigmundreturning") - player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) - player?.setAttribute("/save:fremtrials:sigmund-vote",true) - stage = 1000 - } - - 35 -> playerl(FacialExpression.ASKING,"I'm still working on it... Do you have any suggestion where to start looking for it?").also { stage++ } - 36 -> npcl(FacialExpression.ASKING,"I suggest you ask around the other Fremennik in the town. A good merchant will find exactly what their customer needs somewhere.").also { stage++ } - 37 -> playerl(FacialExpression.ASKING,"I was making some trades, but then I lost the goods...").also { stage++ } - 38 -> npcl(FacialExpression.THINKING,"Hmmm... well try and start again at the beginning. And try to be more careful of your wares in future.").also { - addItem(player, Items.PROMISSORY_NOTE_3709) - stage = 1000 } - - 40 -> npcl(FacialExpression.HAPPY,"Hello again outerlander! I am amazed once more at your apparent skill at merchanting!").also { stage++ } - 41 -> playerl(FacialExpression.HAPPY,"So I can count on your vote at the council of elders?").also { stage++ } - 42 -> npcl(FacialExpression.HAPPY,"Absolutely, outerlander. Your merchanting skills will be a real boon to the Fremennik.").also { stage = 1000 } - - 50 -> npcl(FacialExpression.HAPPY,"Greetings again $gender $fName! What can I do for you this day?").also { stage++ } - 51 -> options("Can I see your wares?","Nothing thanks").also { stage++ } - 52 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Can I see your wares?").also { stage++ } - 2 -> playerl(FacialExpression.HAPPY,"Nothing thanks").also { stage = 55 } - } - 53 -> npcl(FacialExpression.HAPPY,"Certainly, $fName.").also { - npc.openShop(player) - stage = 1000 - } - - 55 -> npcl(FacialExpression.HAPPY,"Well, feel free to stop by anytime you wish $fName. You are always welcome here!").also { stage = 1000 } - - 60 -> npcl(FacialExpression.HAPPY,"Hello outerlander. By the laws of our tribe, I am afraid I may not speak to you without the express permission of the chieftain.").also { stage++ } - 61 -> playerl(FacialExpression.ASKING,"Where would I find him?").also { stage++ } - 62 -> npcl(FacialExpression.HAPPY,"In the longhall, outerlander.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return SigmundDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1282) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SkulgrimenDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SkulgrimenDialogue.kt deleted file mode 100644 index 475e67318..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SkulgrimenDialogue.kt +++ /dev/null @@ -1,103 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -@Initializable -class SkulgrimenDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if(player?.inventory?.contains(3703,1) == true){ - playerl(FacialExpression.HAPPY,"Hi there. I got your fish, so can I have that bowstring for Sigli now?") - stage = 20 - return true - } - else if(player?.inventory?.contains(3702,1) == true){ - playerl(FacialExpression.ASKING,"So about this bowstring... was it hard to make or something?") - stage = 25 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"Is this trade item for you?") - stage = 26 - return true - } - if(player?.getAttribute("sigmund-steps", 0) == 7){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find an exotic and extremely odd fish, do you?") - stage = 15 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 6){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a finely balanced custom bowstring, do you?") - stage = 1 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.HAPPY,"Hello again, ${player.getAttribute("fremennikname","ringo")}. Come to see what's for sale?") - stage = 1001 - return true - } - else{ - playerl(FacialExpression.HAPPY,"Hello!") - stage = 100 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.THINKING,"Aye, I have a few in stock. What would an outerlander be wanting with equipment like that?").also { stage++ } - 2 -> playerl(FacialExpression.HAPPY,"It's for Sigli. It needs to be weighted precisely to suit his hunting bow.").also { stage++ } - 3 -> npcl(FacialExpression.HAPPY,"For Sigli eh? Well, I made his bow in the first place, so I'll be able to select the right string for you... just one small problem.").also { stage++ } - 4 -> playerl(FacialExpression.THINKING,"What's that?").also { stage++ } - 5 -> npcl(FacialExpression.THINKING,"This string you'll be wanting... Very special it is. Take a lot of time to recreate. Not sure you have the cash for it.").also { stage++ } - 6 -> playerl(FacialExpression.THINKING,"Then maybe you'll accept something else...?").also { stage++ } - 7 -> npcl(FacialExpression.HAPPY,"Heh. Good thinking outerlander. Well, it's true, there is more to life than just making money. Making weapons is good money, but it's not why I do it. I'll tell you what.").also { stage++ } - 8 -> npcl(FacialExpression.HAPPY,"I heard a rumour that one of the fishermen down by the docks caught some weird looking fish as they were fishing the other day. From what I hear this fish is unique.").also { stage++ } - 9 -> npcl(FacialExpression.HAPPY,"From what I hear this fish is unique. Nobody's ever seen its like before. This intrigues me. I'd like to have it for myself.").also { stage++ } - 10 -> npcl(FacialExpression.HAPPY,"Make a good trophy. You get me that fish, I give you the bowstring. What do you say? We got a deal?").also { stage++ } - 11 -> playerl(FacialExpression.HAPPY,"Sounds good to me.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 15 -> npcl(FacialExpression.EXTREMELY_SHOCKED,"What? There's another one?").also { stage++ } - 16 -> playerl(FacialExpression.ANNOYED,"Er... no, it's the one for you that I'm looking for...").also { stage++ } - 17 -> npcl(FacialExpression.ANNOYED,"Ah. I see. I already told you. Some guy down by the docks was bragging. Best ask there, I reckon.").also { stage = 1000 } - - 20 -> npcl(FacialExpression.HAPPY,"Ohh... That's a nice fish. Very pleased. Here. Take the bowstring. You fulfilled agreement. Only fair I do same. Good work outerlander.").also { - removeItem(player,3703) - addItem(player,3702) - stage++ - } - 21 -> playerl(FacialExpression.HAPPY,"Thanks!").also { stage = 1000 } - - 25 -> npcl(FacialExpression.HAPPY,"Not hard. Just a trick to it. Takes skill to learn, but when learnt, easy. Sigli will be happy. Finest bowstring on continent. Will suit his needs perfectly.").also { stage = 1000 } - - 26 -> npcl(FacialExpression.ANNOYED,"Not for me, I'm afraid.").also { stage = 1000 } - - 100 -> npcl(FacialExpression.HAPPY,"Sorry. I can't sell weapons to outerlanders. Wouldn't be right. Against our beliefs.").also { stage = 1000 } - - 1000 -> end() - 1001 ->{ - end() - npc.openShop(player) - } - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin{ - return SkulgrimenDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1303) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt deleted file mode 100644 index 82e195038..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/SwensenTheNavigator.kt +++ /dev/null @@ -1,153 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.node.entity.player.Player -import core.game.node.entity.player.info.PlayerDetails -import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression - -@Initializable -class SwensenTheNavigator(player: Player? = null) : DialoguePlugin(player){ - val gender = if (player?.isMale == true){"brother"} else "sister" - val fName = player?.getAttribute("fremennikname","doug hug'em") - override fun open(vararg args: Any?): Boolean { - if(player?.inventory?.contains(3705,1) == true){ - playerl(FacialExpression.HAPPY,"I would like your map of fishing spots.") - stage = 120 - return true - } - else if(player?.inventory?.contains(3704,1) == true){ - playerl(FacialExpression.ASKING,"If this map of fishing spots is so valuable, why did you give it away to me so easily?") - stage = 125 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I have a trade item here.") - stage = 130 - return true - } - if(player?.getAttribute("sigmund-steps", 0) == 9){ - npcl(FacialExpression.HAPPY,"Greetings outerlander.") - stage = 115 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 8){ - npcl(FacialExpression.HAPPY,"Greetings outerlander.") - stage = 105 - return true - } - if(player?.getAttribute("fremtrials:maze-complete",false) == true){ - npc("Outerlander! You have finished my maze!","I am genuinely impressed!") - stage = 100 - return true - } else if(player?.getAttribute("fremtrials:swensen-vote",false) == true){ - npc("You have my vote!") - stage = 1000 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Hello!") - stage = 140 - return true - } - else if(player.questRepository.hasStarted("Fremennik Trials")){ - player("Hello!") - stage = 0 - return true - } - else{ - playerl(FacialExpression.HAPPY,"Hello!") - stage = 145 - return true - } - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> {player("I am trying to become a member of the Fremennik","clan! The Chieftan told me that I may be able to gain","your vote at the council of elders?");stage++} - 1 -> {npc("You wish to stop being an outerlander? I can","understand that! I have no reason why I would prevent","you becoming a Fremennik...");stage++} - 2 -> {npc("...but you must first pass a little test for me to prove","you are worthy.");stage++} - 3 -> {player("What kind of test?");stage++} - 4 -> {npc("Well, I serve our clan as a navigator. The seas can be","a fearful place when you know not where you are","heading.");stage++} - 5 -> {npc("Should something happen to me, all members of our","tribe have some basic sense of direction so that they","may always return safely home.");stage++} - 6 -> {npc("If you are able to demonstrate to me that you too have","a good sense of direction then I will recommend you to","the rest of the council of elders immediately.");stage++} - 7 -> {player("Well, how would I go about showing that?");stage++} - 8 -> {npc("Ah, a simple task! Below this building I have constructed","a maze; should you be able to walk from one side to the","other that will be proof to me.");stage++} - 9 -> {npc("You wish to try my challenge?");stage++} - 10 -> {options("Yes","No");stage++} - 11 -> when(buttonId){ - 1 -> {player("A maze? Is that all? Sure, it sounds simple enough.");stage++} - 2 -> {player("No, that sounds too hard.");stage = 1000} - } - - //Yes - 12 -> {npc("I will warn you outerlander, this maze was designed by","myself, and is of the most fiendish complexity!");stage++} - 13 -> {player("Oh really? Watch and learn...");stage = 1000;player?.setAttribute("/save:fremtrials:swensen-accepted",true)} - - //After maze - 100 -> {player("So does that mean I can rely on your vote at the","council of elders to allow me into your village?");stage++} - 101 -> {npc("Of course outerlander! I am nothing if not a man of","my word!");stage++} - 102 -> { - player("Thanks!"); - player?.removeAttribute("fremtrials:maze-complete") - player?.removeAttribute("fremtrials:swensen-accepted") - player?.setAttribute("/save:fremtrials:swensen-vote",true) - player?.setAttribute("/save:fremtrials:votes",player.getAttribute("fremtrials:votes",0) + 1) - stage = 1000 - } - - //Sigmund subquest - 105 -> playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a map of deep sea fishing spots do you?").also { stage++ } - 106 -> npcl(FacialExpression.HAPPY,"Hmmm? Why of course! As the navigator for the Fremennik I keep all of our maps secure right here.").also { stage++ } - 107 -> playerl(FacialExpression.HAPPY,"Great! Can I have it?").also { stage++ } - 108 -> npcl(FacialExpression.ANNOYED,"Have it? Just like that? I think not outerlander. This map shows all of the prime fishing locations nearby. It is very valuable to our clan. I am afraid I can not just give it away.").also { stage++ } - 109 -> playerl(FacialExpression.THINKING,"Perhaps I can trade you something for it?").also { stage++ } - 110 -> npcl(FacialExpression.ANNOYED,"A trade? For a map of the best fishing spots in a hundred leagues? I will trade it for no less than a weather forecast from our Seer.").also { stage++ } - 111 -> npcl(FacialExpression.THINKING,"As a navigator, the weather is extremely important for plotting the best course. Unfortunately the Seer is always too busy to help me with a forecast.").also { stage++ } - 112 -> playerl(FacialExpression.ASKING,"Where could I get a weather forecast from then?").also { stage++ } - 113 -> npcl(FacialExpression.ANNOYED,"I just told you: from the Seer. You will need to persuade him to take the time to make a forecast somehow.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 115 -> playerl(FacialExpression.THINKING,"I don't suppose you have any idea where I could find a weather forecast from the Fremennik Seer do you?").also { stage++ } - 116 -> npcl(FacialExpression.ANNOYED,"Uh... from the Seer perhaps?").also { stage = 1000 } - - 120 -> npcl(FacialExpression.ANNOYED,"I have already told you outerlander; I will not exchange it for anything other than a divination on the weather from our seer himself!").also { stage++ } - 121 -> playerl(FacialExpression.HAPPY,"What, like this one I have here?").also { stage++ } - 122 -> npcl(FacialExpression.AMAZED,"W-what...? I don't believe it! How did you...?").also { stage++ } - 123 -> npcl(FacialExpression.HAPPY,"I suppose it doesn't matter, you have my gratitude outerlander! With this forecast I will be able to plan a safe course for our next raiding expedition!").also { - removeItem(player,3705) - addItem(player,3704) - stage++ - } - 124 -> npcl(FacialExpression.HAPPY,"Here, outerlander; you may take my map of local fishing patterns with my gratitude!").also { stage = 1000 } - - 125 -> npcl(FacialExpression.HAPPY,"Hmmm? Well, firstly it will be of value to our entire clan, so I have lost nothing from giving it to you.").also { stage++ } - 126 -> npcl(FacialExpression.HAPPY,"The other reason is of course that I have already memorised it, so I can make myself another copy whenever I want!").also { stage = 1000 } - - 130 -> npcl(FacialExpression.ANNOYED,"It isn't for me, I'm afraid.").also { stage = 1000 } - - 140 -> npcl(FacialExpression.HAPPY,"Greetings to you $gender $fName. How fare you today?").also { stage++ } - 141 -> playerl(FacialExpression.HAPPY,"I am fine thanks Swensen. How are you doing?").also { stage++ } - 142 -> npcl(FacialExpression.HAPPY,"I am fine too!").also { stage = 1000 } - - 145 -> npcl(FacialExpression.HAPPY,"Hello outerlander. This is my home, I would be grateful if you would leave.").also { stage++ } - 146 -> playerl(FacialExpression.THINKING,"Oh. Okay.").also { stage++ } - 147 -> npcl(FacialExpression.HAPPY,"I am sorry outerlander, I will not offer you hospitality until my Chieftain has vouched for your honesty. This is our way.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return SwensenTheNavigator(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1283) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThoraDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThoraDialogue.kt deleted file mode 100644 index dd1f68177..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThoraDialogue.kt +++ /dev/null @@ -1,129 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.item.Item -import core.game.world.map.Location -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -class ThoraDialogue(player: Player? = null) : DialoguePlugin(player){ - val fName = player?.getAttribute("fremennikname","name jeff") - var curNPC: NPC? = NPC(0, Location(0,0,0)) - override fun open(vararg args: Any?): Boolean { - curNPC = args[0] as? NPC - npc = args[0] as NPC - if(player.inventory.contains(3707,1)){ - playerl(FacialExpression.ASKING,"Thanks for making me this cocktail. Why don't you make them anymore normally?") - stage = 35 - } - else if(player.inventory.contains(3709,1)){ - playerl(FacialExpression.HAPPY,"Hi! Can I please have one of your legendary cocktails now?") - stage = 25 - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I'm trying to remember who I was meant to give this trade item to.") - stage = 30 - } - else if(player?.getAttribute("sigmund-steps", 0) == 13){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a written promise from Askeladden to stay out of the Longhall?") - stage = 20 - } - else if(player?.getAttribute("sigmund-steps", 0) == 12){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find the longhall barkeeps' legendary cocktail, do you?") - stage = 1 - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.HAPPY,"Hello again, $fName. I suppose you want a drink? Or are you going to try another scam with that terrible Askeladden again?") - stage = 50 - } - else{ - playerl(FacialExpression.HAPPY,"Hello there.") - stage = 60 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.AMAZED,"How did you hear about that? I didn't think anybody knew about that.").also { stage++ } - 2 -> npcl(FacialExpression.HAPPY,"Well, it is true that in my younger years as a barkeep, I wandered the lands trying various alcoholic delicacies.").also { stage++ } - 3 -> npcl(FacialExpression.HAPPY,"Do know how many different types of alcohol there are here in Gielinor? Lots!").also { stage++ } - 4 -> npcl(FacialExpression.HAPPY,"Well, anyway, I used a fusion of various drinks from all around the world to create the greatest cocktail ever made!").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY,"Of course, when my wander lust was gone, and I returned to Rellekka to serve as barkeep here, I gave all that up.").also { stage++ } - 6 -> playerl(FacialExpression.ASKING,"But you still remember how to make it, right?").also { stage++ } - 7 -> npcl(FacialExpression.HAPPY,"Of course.").also { stage++ } - 8 -> playerl(FacialExpression.ASKING,"And you have all the ingredients here? I don't need to go chasing round the world for obscure ingredients to make it?").also { stage++ } - 9 -> npcl(FacialExpression.ASKING,"No, I have them all here. Why?").also { stage++ } - 10 -> playerl(FacialExpression.ASKING,"Can you make me your legendary cocktail then?").also { stage++ } - 11 -> npcl(FacialExpression.SAD,"I would rather not; it is a reminder of a life I left behind when I came back.").also { stage++ } - 12 -> playerl(FacialExpression.ASKING,"Any way I could change your mind?").also { stage++ } - 13 -> npcl(FacialExpression.THINKING,"You need this to become a Fremennik, right? Well, you seem okay for an outerlander, it would be a shame to see you fail. You know Askeladden?").also { stage++ } - 14 -> playerl(FacialExpression.THINKING,"That kid outside? Sure.").also { stage++ } - 15 -> npcl(FacialExpression.ANGRY,"He is nothing but a pest. He keeps sneaking in and stealing beer.").also { stage++ } - 16 -> npcl(FacialExpression.ANGRY,"I shudder to think what he will be like when he has passed his trial of manhood, and is allowed in here legitimately.").also { stage++ } - 17 -> npcl(FacialExpression.ANGRY,"If you can get him to sign a contract promising that he will NEVER EVER EVER darken my doorway here again, you get the drink.").also { stage++ } - 18 -> playerl(FacialExpression.ASKING,"Any idea how I can get him to do that?").also { stage++ } - 19 -> npcl(FacialExpression.HAPPY,"Knowing that little horror, he'll probably be willing to in exchange for some cash. You should go ask him yourself though.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 20 -> npcl(FacialExpression.ANNOYED,"Well, as I say, you should talk to him about that. Knowing the little runt as I do though He'll probably do it for the cash.").also {stage++} - - 25 -> npcl(FacialExpression.AMAZED,"What?!?! I can't believe you... Let me look at that... Askeladden would NEVER... Gosh. It looks legitimate.").also { - player?.inventory?.remove(Item(Items.PROMISSORY_NOTE_3709)) - player?.inventory?.add(Item(Items.LEGENDARY_COCKTAIL_3707)) - player?.setAttribute("/save:sigmundreturning",true) - stage++ - } - 26 -> npcl(FacialExpression.HAPPY,"Here you go, on the house! You have made my life SO much easier! Knowing that little monster won't be bugging me in here all the time anymore!").also { stage++ } - 27 -> npcl(FacialExpression.HAPPY,"That little weasel will have to abide by this written promise that Askeladden can never ever enter the Longhall again! He can't get round this one!").also { stage++ } - 28 -> playerl(FacialExpression.SUSPICIOUS,"Uh... yeah... yeah, you probably won't see someone called Askeladden coming in here...").also { stage = 1000 } - - 30 -> npcl(FacialExpression.NEUTRAL,"If it's not the note from Askeladden it isn't me, I'm afraid.").also { stage = 1000 } - - 35 -> npcl(FacialExpression.SAD,"Ah... when I gave up my travels across the world many years back, to return to my expected role as longhall barkeep,").also { stage++ } - 36 -> npcl(FacialExpression.SAD,"as my mother, and her mother, were before me, I gave up a lot of the freedom I had found in the outside world.").also { stage++ } - 37 -> npcl(FacialExpression.SAD,"I know it is our custom to shun outerlanders and their ways, but I didn't find them as bad as the stories say.").also { stage++ } - 38 -> npcl(FacialExpression.SAD,"Sometimes I feel as though we Fremennik live in a prison that we have constructed for ourselves,").also { stage++ } - 39 -> npcl(FacialExpression.SAD,"and that WE are the outerlanders, out here on the edge of the world...").also { stage++ } - 40 -> npcl(FacialExpression.SAD,"I'm sorry, I think it is part of the job of Longhall barkeep to get philosophical about things ocassionally.").also { stage++ } - 41 -> npcl(FacialExpression.HAPPY,"I wish you all the best of luck with your trials, outerlander.").also { stage++ } - 42 -> npcl(FacialExpression.HAPPY,"When you have finished, perhaps you will come back here, and we can share a drink over tales of the outside world?").also { stage++ } - 43 -> playerl(FacialExpression.HAPPY,"Thanks, I'd like that.").also { stage = 1000 } - - 50 -> playerl(FacialExpression.THINKING,"Scam? Oh... You mean his promise to not come in here anymore?").also { stage++ } - 51 -> npcl(FacialExpression.ANNOYED,"Yes. Yes I do. I should have never trusted him not to come in here, even with that written promise. Anyway, do you want a drink or not?").also { stage++ } - 52 -> options("Yes please","No thanks").also { stage++ } - 53 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Yes please").also { - npc.openShop(player) - stage = 1000 - } - 2 -> playerl(FacialExpression.HAPPY,"No thanks.").also { stage++ } - } - 54 -> npcl(FacialExpression.HAPPY,"Okay then.").also { stage = 1000 } - - 60 -> npcl(FacialExpression.HAPPY,"Hello yourself, outerlander. A little out of the way up here, aren't you?").also { stage++ } - 61 -> npcl(FacialExpression.HAPPY,"I would love to stop and chat with you, but unfortunately we have a custom that no Fremennik may speak with the outerlanders without the permission of our chieftain. Don't take it personally.").also { stage++ } - 62 -> npcl(FacialExpression.HAPPY,"The Chieftain is stood just over there, his name is Brundt. I suggest you go and introduce yourself.").also { stage++ } - 63 -> npcl(FacialExpression.ASKING,"You wouldn't want to go making any enemies because you weren't aware of our customs now, would you?").also { stage++ } - 64 -> playerl(FacialExpression.THINKING,"No, I guess not. Thanks anyway.").also { stage++ } - 65 -> npcl(FacialExpression.HAPPY,"Not a problem, outerlander. It's always nice to see a new face in the long hall; it happens so rarely.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ThoraDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1300) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThorvaldDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThorvaldDialogue.kt deleted file mode 100644 index 37ca65c1a..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/ThorvaldDialogue.kt +++ /dev/null @@ -1,216 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.node.entity.impl.Animator -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.info.PlayerDetails -import core.game.node.item.Item -import core.game.system.task.Pulse -import rs09.game.world.GameWorld -import core.game.world.map.Location -import core.game.world.update.flag.context.Animation -import core.plugin.Initializable -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import org.rs09.consts.Items -import org.rs09.consts.NPCs - -@Initializable -class ThorvaldDialogue(player: Player? = null) : DialoguePlugin(player){ - override fun open(vararg args: Any?): Boolean { - if(player?.inventory?.contains(3706,1) == true){ - playerl(FacialExpression.HAPPY,"I would like your contract to offer your services as a bodyguard.") - stage = 215 - return true - } - else if(player?.inventory?.contains(3710,1) == true){ - playerl(FacialExpression.ASKING,"You didn't take much persuading to 'lower' yourself to a bodyguard.") - stage = 220 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"Is this item for you?") - stage = 214 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 11){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find the token to allow your seat at the champions table?") - stage = 211 - return true - } - else if(player?.getAttribute("sigmund-steps", 0) == 10){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a brave and powerful warrior to act as a bodyguard?") - stage = 200 - return true - } - else if (args.size > 1) { - npcl(FacialExpression.FRIENDLY, "Hahaha! Well fought outerlander! Now come down from there, you have passed my trial with flying colours!") - stage = 150 - return true - } - else if (player?.questRepository?.isComplete("Fremennik Trials")!!) { - playerl(FacialExpression.FRIENDLY, "Howdy Thorvald!") - stage = 0 - return true - } - else if(player!!.getAttribute("fremtrials:thorvald-vote", false)!!){ - playerl(FacialExpression.FRIENDLY, "So can I count on your vote at the council of elders now Thorvald?") - stage = 160 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - playerl(FacialExpression.HAPPY,"Howdy Thorvald!") - stage = 250 - return true - } - else if(!player.questRepository.hasStarted("Fremennik Trials")){ - npcl(FacialExpression.ANNOYED, "Leave me be, outerlander. I have nothing to say to the likes of you.") - stage = 1000 - return true - } - else if (!player!!.getAttribute("fremtrials:thorvald-vote", false)!!) { - if (player!!.getAttribute("fremtrials:warrior-accepted", false)!!) { - options("What do I have to do again?", "Who is my opponent?", "Can't I do something else?") - stage = 100 - return true - } else { - playerl(FacialExpression.FRIENDLY, "Hello!") - stage = 60 - return true - } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - //After Fremennik Trials - 0 -> npcl(FacialExpression.FRIENDLY, "And greetings to you too. It is good to see new blood entering the Fremennik; we gain our strength by bringing new warriors into the tribe.").also { stage = 1000 } - - //Warrior Trial - 60 -> npcl(FacialExpression.NEUTRAL, "Hello yourself, outerlander. What brings you to dare speak to a mighty Fremennik warrior such as myself?").also { stage++ } - 61 -> playerl(FacialExpression.HALF_ASKING, "Erm... are you a member of the council?").also { stage++ } - 62 -> npcl(FacialExpression.NEUTRAL, "The Fremennik council of elders? Why, of course I am. I am recognised as one the clans mightiest warriors.").also { stage++ } - 63 -> npcl(FacialExpression.HALF_ASKING, "What is it to you outerlander?").also { stage++ } - 64 -> playerl(FacialExpression.NEUTRAL, "Well... I was wondering if you could vote for me to become a Fremennik.").also { stage++ } - 65 -> npcl(FacialExpression.LAUGH, "An outerlander wishes to become a Fremennik!?!? Ha! That is priceless!").also { stage++ } - 66 -> npcl(FacialExpression.NEUTRAL, "Well, let us say that I am not totally against this concept. As a warrior, I appreciate the value of brave and powerful warriors to our clan, and even though you may be an outerlander,").also { stage++ } - 67 -> npcl(FacialExpression.NEUTRAL, "I will not hold this against you if you can prove yourself to be fierce of heart in a combat situation to me.").also { stage++ } - 68 -> playerl(FacialExpression.NEUTRAL, "So how can I prove that? You want to fight me? Come on then, bring it on! Right here, right now, buddy!").also { stage++ } - 69 -> npcl(FacialExpression.LOUDLY_LAUGHING, "Hahahahaha! You certainly show some spirit for an outerlander!").also { stage++ } - 70 -> npcl(FacialExpression.NEUTRAL, "But spirit does not always make a good warrior. It takes both skill and spirit to be so. I have a test that I give all Fremenniks on their path to be a member of the clan.").also { stage++ } - 71 -> npcl(FacialExpression.NEUTRAL, "My test will challenge both your combat prowess and your bravery equally. Should you pass it you will earn my vote at the council, and more importantly my respect for you as a warrior.").also { stage++ } - 72 -> npcl(FacialExpression.HALF_ASKING, "So what say you, outerlander? Are you prepared for the battle?").also { stage++ } - 73 -> options("Yes", "No").also { stage++ } - 74 -> when(buttonId){ - 1 -> playerl(FacialExpression.EVIL_LAUGH, "Am I prepared? I'll show you what combat's all about, you big sissy barbarian type guy!").also { player.setAttribute("/save:fremtrials:warrior-accepted",true); stage = 80 } - 2 -> playerl(FacialExpression.NEUTRAL, "No thanks, I'm pretty sure that I can find someone else to vote for me.").also { stage = 90 } - } - //Yes - 80 -> npcl(FacialExpression.LAUGH, "Hahahahaha! I'm beginning to like you already, outerlander!").also { stage++ } - 81 -> npcl(FacialExpression.NEUTRAL, "Then allow me to present you with my challenge; This ladder here will take you to a place of combat. I have placed a special warrior down there to challenge you.").also { stage++ } - 82 -> npcl(FacialExpression.NEUTRAL, "Battle him to the death, and you will pass my challenge. If at any point you wish to leave combat, simply climb back up the ladder, to leave that place. If you leave you will of course fail the test.").also { stage++ } - 83 -> npcl(FacialExpression.NEUTRAL, "You may retry my test in the future if you fail, but you must stay down there until the death if you wish for my vote at the council. You must defeat him three times to prove that you are worthy.").also { stage++ } - 84 -> npcl(FacialExpression.NEUTRAL, "The fourth time that you fight him will be to the death, so do not show cowardice.").also { stage++ } - 85 -> playerl(FacialExpression.EVIL_LAUGH, "Is that all? It will be easy!").also { stage++ } - 86 -> npcl(FacialExpression.NEUTRAL, "No, there is one more important rule; You may not enter the battleground with any armour or weaponry of any kind.").also { stage++ } - 87 -> npcl(FacialExpression.NEUTRAL, "If you need to place your equipment into your bank account, I recommend that you speak to the seer, who knows a spell that will do that for you.").also { stage = 1000 } - - //No thanks - 90 -> npcl(FacialExpression.NEUTRAL, "Hmm, not so brave after all, outerlander? Perhaps it is for the best. I doubt you have what it takes to pass my challenge.").also { stage = 1000 } - - //Warrior Trial Accepted Not Completed - 100 -> when(buttonId){ - 1 -> playerl(FacialExpression.HALF_ASKING, "So what do I have to do to earn your vote at the council again?").also { stage = 110 } - 2 -> playerl(FacialExpression.HALF_ASKING, "So, who is my opponent?").also { stage = 120 } - 3 -> playerl(FacialExpression.HALF_ASKING, "I don't really like fighting that much... Isn't there something else I can do to earn your vote at the council of elders?").also { stage = 130 } - } - //What do I have to do again? - 110 -> npcl(FacialExpression.NEUTRAL, "I will not offer my vote to anybody whose bravery in combat I do not trust completely. You must go down that ladder and fight your foe to the death.").also { stage = 1000 } - - //Who is my opponent? - 120 -> npcl(FacialExpression.NEUTRAL, "Ah, a wise question before entering combat. His name is Koschei the deathless. He is something of a mystery, even to us.").also { stage++ } - 121 -> npcl(FacialExpression.NEUTRAL, "On one of our regular raiding parties, our longship discovered a man in the frozen waters far north-east of here. We took him aboard our ship, thinking he must be dead.").also { stage++ } - 122 -> npcl(FacialExpression.NEUTRAL, "To our amazement he was perfectly healthy, even though he must have been in those deadly icey waters for many weeks.").also { stage++ } - 123 -> npcl(FacialExpression.NEUTRAL, "He has no memory of who he is, or how he came to be there, except for his own name: Koschei. We named him 'The Deathless' because he is seemingly unkillable!").also { stage++ } - 124 -> npcl(FacialExpression.NEUTRAL, "Any combat technique used against him, he learns instantly! He also apparently can heal himself from any wound at will!").also { stage++ } - 125 -> npcl(FacialExpression.NEUTRAL, "When he attacks, his weapon moves like a whirlwind! He can hide his combat level from his opponents at will as well!").also { stage++ } - 126 -> npcl(FacialExpression.NEUTRAL, "He is truly a horribly fierce opponent to face! I am only glad that he has chosen to stay here with us!").also { stage++ } - 127 -> npcl(FacialExpression.NEUTRAL, "The daylight makes him feel weak, so we have built him his own battleground beneath this building, where he can train his fiercesome skills without being disturbed.").also { stage++ } - 128 -> playerl(FacialExpression.LAUGH, "But he can't REALLY be unkillable...").also { stage++ } - 129 -> playerl(FacialExpression.SUSPICIOUS, "...can he?").also { stage++ } - 130 -> npcl(FacialExpression.NEUTRAL, "Some say he cannot die, for he has hidden his heart outside of his body to be kept forever safe in a duck egg.").also { stage++ } - 131 -> npcl(FacialExpression.NEUTRAL, "Others say he has been cursed by the gods to wander this land forever, never knowing any peace in his life, but only combat.").also { stage++ } - 132 -> npcl(FacialExpression.NEUTRAL, "Some claim that the sword he carries is the source of all his power, and if he should lose it, then exactly one minute later, he will turn back into his true form; A weakened, lame, old man.").also { stage++ } - 133 -> playerl(FacialExpression.HALF_ASKING, "And what do you believe?").also { stage++ } - 134 -> npcl(FacialExpression.NEUTRAL, "I believe you shouldn't look a gift horse in the mouth. He is a fearfully powerful warrior, but more importantly; He is on OUR side, not against us.").also { stage++ } - 135 -> npcl(FacialExpression.NEUTRAL, "He is content testing the battle skills of anyone taking their Fremennik trials of manhood, and I am content knowing that should an enemy ever invade").also { stage++ } - 136 -> npcl(FacialExpression.NEUTRAL, "our town, while our warriors are out on a raiding party, Koschei will be able to hold off ANY invader long enough for us to make our return.").also { stage = 1000} - - //Can't I do something else? - 140 -> npcl(FacialExpression.FRIENDLY, "Yes of course outerlander! If you bring me five raw sardines then I will vote for you instead!").also { stage++ } - 141 -> playerl(FacialExpression.EXTREMELY_SHOCKED, "REALLY?!?!?").also { stage++ } - 142 -> npcl(FacialExpression.LOUDLY_LAUGHING, "HAHAHAHAHAHA! No, of course not! You are stupid, even by outerlander standards!").also { stage++ } - 143 -> npcl(FacialExpression.NEUTRAL, "If you want my vote, you must pass my trial. It is as simple as that.").also { stage = 1000 } - - //Warrior Trial Completed - after the fight - 150 -> playerl(FacialExpression.NEUTRAL, "But... I don't understand... I did not manage to beat Koschei...").also { stage++ } - 151 -> npcl(FacialExpression.NEUTRAL, "I did not say you had to, outerlander! All I asked was that you fought to the death! And you did! The death was your own!").also { stage++ } - 152 -> npcl(FacialExpression.NEUTRAL, "I was not interested in how strong you are! I was interested in how BRAVE you are!").also { stage++ } - 153 -> npcl(FacialExpression.NEUTRAL, "You fought a superior enemy to your very last breath - THAT is bravery.").also { stage++ } - 154 -> npcl(FacialExpression.NEUTRAL, "I would be honoured to represent you to the council as worthy of being a Fremennik after watching that superb battle!").also { stage = 1000 } - - //Warrior Trial Completed - 160 -> npcl(FacialExpression.NEUTRAL, "Absolutely! I watched the entire battle, and was extremely impressed with your bravery in combat!").also { stage = 1000 } - - //Sigmund stuff - 200 -> npcl(FacialExpression.ANNOYED,"Know you not who I am outerlander? There are none more brave or powerful than me amongst all the Fremennik!").also { stage++ } - 201 -> npcl(FacialExpression.ANGRY,"The role of bodyguard is below me, as a noble warrior. You might as well ask me to babysit the children!").also { stage++ } - 202 -> playerl(FacialExpression.THINKING,"Is there no way you would do this for me?").also { stage++ } - 203 -> npcl(FacialExpression.ANNOYED,"There is but one way outerlander. Since I was steeled in battle, I have dreamt of earning my place at the Champions Table in the Long Hall.").also { stage++ } - 204 -> npcl(FacialExpression.ANNOYED,"It is a tradition amongst us that the bravest and strongest are honoured with a table of champions to drink and feast all that they can in our Long Hall.").also { stage++ } - 205 -> npcl(FacialExpression.ANNOYED,"Unfortunately, there are only a fixed number of places available at the table, and these places were all filled many moons ago by others.").also { stage++ } - 206 -> npcl(FacialExpression.ANNOYED,"Although my worthiness is undeniable, the only way I may take my place is if one of those already there die, or give up their place to me voluntarily.").also { stage++ } - 207 -> playerl(FacialExpression.THINKING,"So you want me to go kill one of them off for you? Make it look like an accident?").also { stage++ } - 208 -> npcl(FacialExpression.EXTREMELY_SHOCKED,"WHAT? No, no, not at all! I am shocked you would suggest such a thing!").also { stage++ } - 209 -> npcl(FacialExpression.THINKING,"If you can persuade one of the Revellers to give up their Champions' Token to you so that I might take their place, you may have my contract as a bodyguard.").also { stage++ } - 210 -> playerl(FacialExpression.HAPPY,"Okay, I'll see what I can do.").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 211 -> npcl(FacialExpression.HAPPY,"You will need to persuade one of the revellers in the Long Hall to give up their token, and their place, in deference to my own worthiness somehow.").also { stage = 1000 } - - 214 -> npcl(FacialExpression.ANNOYED,"I'm afraid not, outerlander.").also { stage = 1000 } - - 215 -> npcl(FacialExpression.ANGRY,"Oh you would, would you outerlander? I have already told you, I will not demean myself with such a baby sitting job until I can sit in the Longhall with pride.").also { stage++ } - 216 -> playerl(FacialExpression.HAPPY,"It's a good thing I have the Champions' Token right here then, isn't it?").also { stage++ } - 217 -> npcl(FacialExpression.HAPPY,"Ah... well this is a different matter. With that token I can claim my rightful place as a champion in the Long hall!").also { stage++ } - 218 -> npcl(FacialExpression.HAPPY,"Here outerlander, I can suffer the indignity of playing babysitter if it means that I can then revel with my warrior equals in the Long Hall afterwards!").also { - removeItem(player,3706) - addItem(player,3710) - stage++ - } - 219 -> npcl(FacialExpression.HAPPY,"Here outerlander, take this contract; I will fulfill it to my utmost.").also { stage = 1000 } - - 220 -> npcl(FacialExpression.HAPPY,"You misunderstand, outerlander. Normally I will only battle for a noble cause, but have never been recognised as a true champion here.").also { stage++ } - 221 -> npcl(FacialExpression.HAPPY,"With this Champion's token, I can stand alongside my warrior brethren in the Long Hall, and revel in the glories of past victories together!").also { stage = 1000 } - - 250 -> npcl(FacialExpression.HAPPY,"And greetings to you too. It is good to see new blood entering the Fremennik; we gain our strength by bringing new warriors into the tribe.").also { stage = 1000 } - - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return ThorvaldDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.THORVALD_THE_WARRIOR_1289) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/YrsaDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/YrsaDialogue.kt deleted file mode 100644 index 1c51b4c48..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/YrsaDialogue.kt +++ /dev/null @@ -1,105 +0,0 @@ -package rs09.game.content.quest.members.thefremenniktrials - -import api.addItem -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable - -@Initializable -class YrsaDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - if(player?.inventory?.contains(3708,1) == true){ - playerl(FacialExpression.HAPPY,"Hello. Can I have those boots now? Here is a written statement from Brundt outlining future tax burdens upon Fremennik merchants and shopkeepers for the year.") - stage = 15 - return true - } - else if(player?.inventory?.contains(3700,1) == true){ - playerl(FacialExpression.ASKING,"Hey, these shoes look pretty comfy. Think you could make me a pair like them?") - stage = 20 - return true - } - else if(player?.getAttribute("sigmundreturning",false) == true){ - playerl(FacialExpression.ASKING,"I have this trade item but I can't remember who it's for.") - stage = 25 - return true - } - if(player?.getAttribute("sigmund-steps",0) == 4){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find a guarantee of a reduction on sales taxes, do you?") - stage = 10 - return true - } - else if(player?.getAttribute("sigmund-steps",0) == 3){ - playerl(FacialExpression.ASKING,"I don't suppose you have any idea where I could find some custom sturdy boots, do you?") - stage = 1 - return true - } - else if(player.questRepository.isComplete("Fremennik Trials")){ - npcl(FacialExpression.HAPPY,"Welcome to my clothes shop. I can change your shoes, or I've got a fine selection of clothes for sale.") - stage = 30 - //Uncomment this out when we got the shoe shop up and running - //npcl(FacialExpression.HAPPY,"Welcome to my clothes shop. I can change your shows, or I've got a fine selection of clothes for sale") - return true - } - else { - playerl(FacialExpression.HAPPY,"Hello!") - stage = 35 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 1 -> npcl(FacialExpression.THINKING,"Well, I don't usually have many shoes in stock here in my little clothes shop... I will be able to make you up a pair if you are really desperate though?").also { stage++ } - 2 -> playerl(FacialExpression.NEUTRAL,"They're not for me... I need them for Olaf.").also { stage++ } - 3 -> npcl(FacialExpression.ANGRY,"Oh, that foolish bard... Why didn't he just ask me to make him some? It is his stupid pride, I believe! I will tell you what I will do outlander.").also { stage++ } - 4 -> npcl(FacialExpression.ASKING,"I know that you must have the ear of the chieftain for him to consider you as worthy of becoming a Fremennik by trial.").also { stage++ } - 5 -> npcl(FacialExpression.HAPPY,"I will make you a pair of sturdy boots for Olaf if you will persuade him to reduce the sales tax placed upon all Fremennik shopkeepers. It does nothing but hurt my business now.").also { stage++ } - 6 -> playerl(FacialExpression.NEUTRAL,"Okay, I will see what I can do").also { - player?.incrementAttribute("sigmund-steps",1) - stage = 1000 - } - 10 -> npcl(FacialExpression.NEUTRAL,"Yes I do outerlander. Only the Chieftain may permit such a thing. Talk to him.").also { stage = 1000 } - - 15 -> npcl(FacialExpression.HAPPY,"Certainly! Let me have a look at what he has written here, just give me a moment...").also { - removeItem(player,3708) - addItem(player,3700) - stage++ - } - 16 -> npcl(FacialExpression.HAPPY,"Yes, that all appears in order. Tell Olaf to come to me next time for shoes!").also { stage = 1000 } - - 20 -> npcl(FacialExpression.HAPPY,"Maybe if you pass your trial and become a full fledged member of the Fremennik...").also { stage = 1000 } - - 25 -> npcl(FacialExpression.ANNOYED,"Not me, I'm afraid.").also { stage = 1000 } - - 30 -> options("I'd like to buy some clothes","Nothing, thanks.").also { stage++ } - 31 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"I'd like to buy some clothes").also { - npc.openShop(player) - stage = 1000 - } - 2 -> playerl(FacialExpression.HAPPY,"Nothing, thanks.").also { stage++ } - } - 32 -> npcl(FacialExpression.HAPPY,"As you wish.").also { stage = 1000 } - - 35 -> npcl(FacialExpression.HAPPY,"I'm sorry outerlander, I cannot sell you any clothes. Our customs forbid it.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return YrsaDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(1301) - } - - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemDialogue.kt deleted file mode 100644 index d5fdce519..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thegolem/TheGolemDialogue.kt +++ /dev/null @@ -1,445 +0,0 @@ -package rs09.game.content.quest.members.thegolem - -import api.* -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.book.Book -import core.game.content.dialogue.book.BookLine -import core.game.content.dialogue.book.Page -import core.game.content.dialogue.book.PageSet -import core.game.node.Node -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.node.entity.player.link.quest.Quest -import core.game.node.entity.skill.Skills -import core.game.node.item.Item -import core.game.world.map.Location -import core.plugin.Initializable -import org.rs09.consts.Items -import org.rs09.consts.NPCs -import rs09.game.content.dialogue.DialogueBuilder -import rs09.game.content.dialogue.DialogueBuilderFile -import rs09.game.content.dialogue.DialogueFile -import rs09.tools.END_DIALOGUE - -@Initializable -public final class ClayGolemDialoguePlugin(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player): DialoguePlugin { - return ClayGolemDialoguePlugin(player) - } - override fun open(vararg objects: Any?): Boolean { - npc = objects[0] as NPC - player.dialogueInterpreter.open(ClayGolemDialogueFile(), npc) - return true - } - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - return false - } - override fun getIds(): IntArray { - return intArrayOf(1907, NPCs.BROKEN_CLAY_GOLEM_1908, NPCs.DAMAGED_CLAY_GOLEM_1909, NPCs.CLAY_GOLEM_1910) - } -} - -class ClayGolemDialogueFile : DialogueBuilderFile() { - override fun create(b: DialogueBuilder) { - val opt1 = b.onQuestStages("The Golem", 0) - .npc("Damage... severe...", "task... incomplete...") - .options() - opt1 - .optionIf("Shall I try to repair you?") { player -> return@optionIf player.questRepository.getQuest("The Golem").hasRequirements(player) } - .playerl("Shall I try to repair you?") - .npcl("Repairs... needed...") - .endWith(){ player -> if (player.questRepository.getStage("The Golem") < 1 ) { setQuestStage(player, "The Golem", 1) } } - opt1 - .option("I'm not going to find a conversation here!") - .playerl("I'm not going to find a conversation here!") - .end() - b.onQuestStages("The Golem", 1) - .npcl("Repairs... needed...") - .end() - b.onQuestStages("The Golem", 2) - .npcl("Damage repaired...") - .npcl("Thank you. My body and mind are fully healed.") - .npcl("Now I must complete my task by defeating the great enemy.") - .playerl("What enemy?") - .npcl("A great demon. It broke through from its dimension to attack the city.") - .npcl("The golem army was created to fight it. Many were destroyed, but we drove the demon back!") - .npcl("The demon is still wounded. You must open the portal so that I can strike the final blow and complete my task.") - .endWith() { player -> setQuestStage(player, "The Golem", 3) } - b.onQuestStages("The Golem", 3) - .npcl("The demon is still wounded. You must open the portal so that I can strike the final blow and complete my task.") - .end() - b.onQuestStages("The Golem", 4) - .npcl("My task is incomplete. You must open the portal so I can defeat the great demon.") - .playerl("It's ok, the demon is dead!") - .npcl("The demon must be defeated...") - .playerl("No, you don't understand. I saw the demon's skeleton. It must have died of its wounds.") - .npcl("Demon must be defeated! Task incomplete.") - .endWith() { player -> setQuestStage(player, "The Golem", 5) } - b.onQuestStages("The Golem", 5) - .npcl("Task incomplete.") - .playerl("Oh, how am I going to convince you?") - .endWith() { player -> setQuestStage(player, "The Golem", 6) } - b.onQuestStages("The Golem", 6, 7) - .npcl("My task is incomplete. You must open the portal so I can defeat the great demon.") - .playerl("I already told you, he's dead!") - .npcl("Task incomplete.") - .playerl("Oh, how am I going to convince you?") - .endWith() { player -> if(player.questRepository.getStage("The Golem") < 7) { setQuestStage(player, "The Golem", 7) } } - } -} - -class ClayGolemProgramDialogueFile : DialogueBuilderFile() { - override fun create(b: DialogueBuilder) { - b.onQuestStages("The Golem", 8) - .npc("New instructions...", "Updating program...") - .npcl("Task complete!") - .npcl("Thank you. Now my mind is at rest.") - .endWith() { player -> finishQuest(player, "The Golem") } - } -} - -class CuratorHaigHalenGolemDialogue : DialogueBuilderFile() { - override fun create(b: DialogueBuilder) { - val opt1 = b.onQuestStages("The Golem", 3) - .npcl("Ah yes, a very impressive artefact. The people of that city were excellent sculptors.") - .npcl("It's in the display case upstairs.") - .playerl("No, I need to take it away with me.") - .npcl("What do you want it for?") - .options() - opt1 - .option("I want to open a portal to the lair of an elder-demon.") - .playerl("I want to open a portal to the lair of an elder-demon.") - .npcl("Good heavens! I'd never let you do such a dangerous thing.") - .end() - opt1 - .option("Well, I, er, just want it.") - .playerl("Well, I, er, just want it.") - .end() - } -} - -val LETTER_LINES = arrayOf( - "", - "", - "Dearest Varmen,", - "I hope this finds you well. Here are the books you asked for", - "There has been an exciting development closer to home --", - "another city from the same period has been discovered east", - "of Varrock, and we are starting a huge excavation project", - "here. I don't know if the museum will be able to finance your", - "expedition as well as this one, so I fear your current trip will be", - "the last.", - "May Saradomin grant you a safe journey home", - "Your loving Elissa.", - ) - -val VARMEN_NOTES = arrayOf( - PageSet( - Page( - BookLine("Septober 19:", 55), - BookLine("The nomads were right:", 56), - BookLine("there is a city here,", 57), - BookLine("probably buried for", 58), - BookLine("millenia and revealed by", 59), - BookLine("the random motions of", 60), - BookLine("the sand. The", 61), - BookLine("architecture is impressive", 62), - BookLine("even in ruin, and must", 63), - BookLine("once have been amazing.", 64), - BookLine("One puzzling factor is the", 65), - ), - Page( - BookLine("pottery -- there are", 66), - BookLine("fragments all over the", 67), - BookLine("ruins, surely too much", 68), - BookLine("for a city even of this", 69), - BookLine("size. We have set up", 70), - BookLine("camp and will do a proper", 71), - BookLine("survey tomorrow.", 72), - ) - ), - PageSet( - Page( - BookLine("Septober 20:", 55), - BookLine("The meaning of the", 56), - BookLine("pottery was explained", 57), - BookLine("today in a most", 58), - BookLine("surprising manner. We", 59), - BookLine("found a mostly-intact clay", 60), - BookLine("statue buried up to its", 61), - BookLine("waist in sand, and as", 62), - BookLine("soon as we dug it out, it", 63), - BookLine("started to walk around! It", 64), - BookLine("is a clay golem, built by", 65), - ), - Page( - BookLine("the city's inhabitants and", 66), - BookLine("dormant all this time. Its", 67), - BookLine("head is badly damaged", 68), - BookLine("and it is", 69), - BookLine("uncommunicative, but its", 70), - BookLine("existence tells us that the", 71), - BookLine("city's inhabitants were", 72), - BookLine("expert magical craftsmen.", 73), - BookLine("The huge kilns in some", 74), - BookLine("of the buildings indicate", 75), - BookLine("that at some point before", 76), - ) - ), - PageSet( - Page( - BookLine("its destruction the whole", 55), - BookLine("city was converted to the", 56), - BookLine("manufacture of these", 57), - BookLine("golems.", 58), - BookLine("", 59), - BookLine("We have also examined", 60), - BookLine("the carvings on the large", 61), - BookLine("building in the centre.", 62), - BookLine("These are symbols", 63), - BookLine("depicting several of the", 64), - BookLine("ancient gods, including", 65), - ), - Page( - BookLine("Saradomin, Zamorak, and", 66), - BookLine("Armadyl, but there is", 67), - BookLine("another prominent symbol", 68), - BookLine("that I cannot identify. As", 69), - BookLine("it seems we will need to", 70), - BookLine("be here for longer than I", 71), - BookLine("had thought, I have sent", 72), - BookLine("to Elissa for books on", 73), - BookLine("golems and religious", 74), - BookLine("symbols.", 75), - ) - ), - PageSet( - Page( - BookLine("Septober 21:", 55), - BookLine("As we examine the ruins", 56), - BookLine("one thing becomes", 57), - BookLine("increasingly clear: most", 58), - BookLine("of the damage was not", 59), - BookLine("due to weathering. The", 60), - BookLine("buildings were destroyed", 61), - BookLine("by force, as if torn down", 62), - BookLine("by giant hands.", 63), - ), - Page( - BookLine("Septober 22:", 66), - BookLine("A breakthrough! We have", 67), - BookLine("found the staircase into", 68), - BookLine("the lower levels of the", 69), - BookLine("temple. This part has", 70), - BookLine("been untouched by the", 71), - BookLine("elements, and the", 72), - BookLine("carvings here are more", 73), - BookLine("intact, especially four", 74), - BookLine("beautiful statuettes in", 75), - BookLine("alcoves framing the large", 76), - ) - ), - PageSet( - Page( - BookLine("door. I have removed one", 55), - BookLine("of them. The door will", 56), - BookLine("not open. I am glad I", 57), - BookLine("sent for a book on", 58), - BookLine("symbols, as the", 59), - BookLine("unidentified symbol is", 60), - BookLine("even more prominent", 61), - BookLine("here, especially on the", 62), - BookLine("door.", 63), - ), - Page( - BookLine("Septober 23:", 66), - BookLine("Our messenger returned", 67), - BookLine("with the books I asked for", 68), - BookLine("and a letter from Elissa.", 69), - BookLine("It is unfortunate that the", 70), - BookLine("museum will not be able", 71), - BookLine("to finance a full-scale", 72), - BookLine("excavation here as well as", 73), - BookLine("the one closer to Varrock,", 74), - BookLine("although I am of course", 75), - BookLine("pleased that the other city", 76), - ) - ), - PageSet( - Page( - BookLine("has been uncovered. But", 55), - BookLine("with the books I am able", 56), - BookLine("to piece together more of", 57), - BookLine("the story of this city.", 58), - BookLine("", 59), - BookLine("The unidentified symbol", 60), - BookLine("in the ruins is that of the", 61), - BookLine("demon Thammaron, who", 62), - BookLine("was Zamorak's chief", 63), - BookLine("lieutenant during the", 64), - BookLine("godwars of the Third", 65), - ), - Page( - BookLine("Age. With that", 66), - BookLine("information I can say", 67), - BookLine("with confidence that these", 68), - BookLine("are the ruins of Uzer, an", 69), - BookLine("advanced human", 70), - BookLine("civilization said to have", 71), - BookLine("been destroyed towards", 72), - BookLine("the end of the Third Age", 73), - BookLine("(roughly 2,500 years", 74), - BookLine("ago). It was allied with", 75), - BookLine("Saradomin and enjoyed", 76), - ) - ), - PageSet( - Page( - BookLine("his protection, as well as", 55), - BookLine("that of its own mages and", 56), - BookLine("warriors. Thammaron was", 57), - BookLine("able to open a portal from", 58), - BookLine("his own domain straight", 59), - BookLine("into the heart of the city,", 60), - BookLine("bypassing its defences.", 61), - BookLine("With Saradomin's help the", 62), - BookLine("army of Uzer was able to", 63), - BookLine("drive Thammaron back,", 64), - BookLine("but the record ends at", 65), - ), - Page( - BookLine("that point and it has", 66), - BookLine("always been assumed that", 67), - BookLine("a later attack, either by", 68), - BookLine("Thammaron or by", 69), - BookLine("Zamorak's other forces,", 70), - BookLine("finished the city off.", 71), - BookLine("", 72), - BookLine("Examining the door", 73), - BookLine("again, I now see that it is", 74), - BookLine("exactly the sort of door", 75), - BookLine("that could be used to seal", 76), - ) - ), - PageSet( - Page( - BookLine("Thammaron's portal. I am", 55), - BookLine("suddently glad I was not", 56), - BookLine("able to open it! I surmise", 57), - BookLine("that the army of golems", 58), - BookLine("was created in order to", 59), - BookLine("fight the demon, since", 60), - BookLine("Uzer's army had been", 61), - BookLine("wiped out and", 62), - BookLine("Saradomin's forces were", 63), - BookLine("increasingly stretched.", 64), - BookLine("However, this approach", 65), - ), - Page( - BookLine("evidently failed, since the", 66), - BookLine("city was eventually", 67), - BookLine("destroyed.", 68), - BookLine("", 69), - BookLine("The art of the", 70), - BookLine("construction of golems", 71), - BookLine("has been lost since the", 72), - BookLine("Third Age, and, although", 73), - BookLine("they are sometimes", 74), - BookLine("discovered lying dormant", 75), - BookLine("in the ground, no", 76), - ) - ), - PageSet( - Page( - BookLine("concerted effort has been", 55), - BookLine("made to regain it, thanks", 56), - BookLine("largely to the modern", 57), - BookLine("Saradomist Church's view", 58), - BookLine("of them as unnatural.", 59), - BookLine("This view is without", 60), - BookLine("foundation, as golems are", 61), - BookLine("neither good nor evil but", 62), - BookLine("follow instructions they", 63), - BookLine("are given to the letter", 64), - BookLine("and without imagination,", 65), - ), - Page( - BookLine("indeed experiencing", 66), - BookLine("extreme discomfort for as", 67), - BookLine("long as a task assigned to", 68), - BookLine("them remains incomplete.", 69), - BookLine("Some golems were", 70), - BookLine("constructed to obey", 71), - BookLine("verbal instructions, but", 72), - BookLine("the main method of", 73), - BookLine("instruction was to place", 74), - BookLine("magical words into the", 75), - BookLine("golem's skull cavity.", 76), - ) - ), - PageSet( - Page( - BookLine("These were written on", 55), - BookLine("papyrus using a naturally", 56), - BookLine("occurring source of ink,", 57), - BookLine("and their magical power", 58), - BookLine("derived from the use of a", 59), - BookLine("phoenix tail feather as a", 60), - BookLine("pen. These would be used", 61), - BookLine("for long-term or", 62), - BookLine("important tasks, and", 63), - BookLine("would override any verbal", 64), - BookLine("instructions.", 65), - ) - ) -) - -@Initializable -class VarmensNotesHandler : Book { - constructor() {} - constructor(player: Player?) : super(player, "The Ruins of Uzer", Items.VARMENS_NOTES_4616, *VARMEN_NOTES) {} - override fun finish() { - player.setAttribute("/save:the-golem:varmen-notes-read", true) - } - - override fun display(set: Array) { - player.interfaceManager.open(getInterface()) - - for (i in 55..76) { - player.packetDispatch.sendString("", getInterface().id, i) - } - player.packetDispatch.sendString("", getInterface().id, 77) - player.packetDispatch.sendString("", getInterface().id, 78) - player.packetDispatch.sendString(getName(), getInterface().id, 6) - for (page in set) { - for (line in page.lines) { - player.packetDispatch.sendString(line.message, getInterface().id, line.child) - } - } - player.packetDispatch.sendInterfaceConfig(getInterface().id, 51, index < 1) - val lastPage = index == sets.size - 1 - player.packetDispatch.sendInterfaceConfig(getInterface().id, 53, lastPage) - if (lastPage) { - finish() - } - } - - override fun newInstance(player: Player): DialoguePlugin { - return VarmensNotesHandler(player) - } - - override fun getIds(): IntArray { - return intArrayOf(Items.VARMENS_NOTES_4616) - } -} - -val DISPLAY_CASE_TEXT = arrayOf("3rd age - yr 3000-4000", - "", - "This statuette was found in an underground", - "temple in the ruined city of Uzer, which was", - "destroyed late in the 3rd Age, suddenly, due to", - "causes unknown. It probably represents one of", - "the clay golems that the craftsmen of the city", - "built as warriors and servants. The statuette", - "was originally part of a mechanism whose", - "purpose is unknown.") diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/ArdougneGuideBook.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/ArdougneGuideBook.kt deleted file mode 100644 index 15331f5d2..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/ArdougneGuideBook.kt +++ /dev/null @@ -1,163 +0,0 @@ -package rs09.game.content.quest.members.tribaltotem - -import core.game.content.dialogue.book.BookLine -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.book.Book -import core.game.content.dialogue.book.Page -import core.game.content.dialogue.book.PageSet -import core.game.node.entity.player.Player -import core.plugin.Initializable - -/** - * This was some code for a post-tutorial RSPS guide book a long ass - * time ago, but it was using the ID for the guide book for Tribal Totem - * and I kind of need that, bro - * - * @author Splinter - * @author Phil - */ -@Initializable -class ArdougneGuideBook : Book { - /** - * Constructs a new `ShieldofArravBook` `Object`. - */ - constructor(player: Player?) : super(player, "Ardougne Guide Book", 1856, *PAGES) {} - - /** - * Constructs a new `ShieldofArravBook` `Object`. - */ - constructor() { - /** - * empty. - */ - } - - override fun finish() {} - override fun display(set: Array) { - player.lock() - player.interfaceManager.open(getInterface()) - player.packetDispatch.sendString("Previous", getInterface().id, 77) - player.packetDispatch.sendString("Next", getInterface().id, 78) - for (i in 55..76) { - player.packetDispatch.sendString("", getInterface().id, i) - } - player.packetDispatch.sendString(getName(), getInterface().id, 6) - for (page in set) { - for (line in page.lines) { - player.packetDispatch.sendString(line.message, getInterface().id, line.child) - } - } - val lastPage = index == sets.size - 1 - if (lastPage) { - finish() - } - player.unlock() - } - - override fun newInstance(player: Player): DialoguePlugin { - return ArdougneGuideBook(player) - } - - override fun getIds(): IntArray { - return intArrayOf(ID) - } - - companion object { - /** - * Represents the book id - */ - var ID = 387454 - - /** - * Represents the array of pages for this book. - */ - private val PAGES = arrayOf( - PageSet( - Page( - BookLine("Introduction", 57), - BookLine("This book is your guide to", 59), - BookLine("the vibrant city of Ardougne.", 60), - BookLine("Ardougne is known as an", 61), - BookLine("exciting modern city located", 62), - BookLine("on the sun drenched southern", 63), - BookLine("coast of Kandarin", 64), - ), - Page( - BookLine("Ardougne: City of Shopping!", 66), - BookLine("Come sample the delights of", 67), - BookLine("the Ardougne market - the", 68), - BookLine("biggest in the known world!", 69), - BookLine("From spices to silk, there", 70), - BookLine("is something here for", 71), - BookLine("everybody! Other popular", 72), - BookLine("shopping destinations in", 73), - BookLine("the area include the Armoury", 74), - BookLine("and the ever popular", 75), - BookLine("Adventurers' supply store.", 76) - ) - ), - PageSet( - Page( - BookLine("Ardougne: City of Fun!", 55), - BookLine("If you're looking for", 56), - BookLine("entertainment in Ardougne,", 57), - BookLine("why not pay a visit to the", 58), - BookLine("Ardougne City zoo? Or relax", 59), - BookLine("with a drink in the ever", 60), - BookLine("popular Flying Horse Inn?", 61), - BookLine("And for the adventurous,", 62), - BookLine("there are always rats to be", 63), - BookLine("slaughtered in the expansive", 64), - BookLine("and vermin-ridden sewers", 65) - ), - Page( - BookLine("There is something truly",66), - BookLine("for everybody here!",67) - ) - ), - PageSet( - Page( - BookLine("Ardougne: City of History!", 55), - BookLine("Ardougne is renowned as an", 56), - BookLine("important city of historical", 57), - BookLine("interest. One historic building", 58), - BookLine("is the magnificent Handelmort", 59), - BookLine("Mansion, currently owned by", 60), - BookLine("Lord Francis Kurt Handelmort.", 61), - BookLine("Also of historical interest is", 62), - BookLine("Ardougne Castle in the east of", 63), - BookLine("the city recently opened to the", 64), - BookLine("public. And of course the Holy", 65) - ), - Page( - BookLine("Order of Paladins still wander",66), - BookLine("the streets of Ardougne, and",67), - BookLine("are often of interest to",68), - BookLine("tourists.",69) - ) - ), - PageSet( - Page( - BookLine("Further Fields", 55), - BookLine("", 56), - BookLine("The area surrounding Ardougne", 57), - BookLine("is also of great interest to", 58), - BookLine("the cultural tourist. If you", 59), - BookLine("want to go further afield, why", 60), - BookLine("not have a look at the ominous", 61), - BookLine("Pillars of Zanash, the", 62), - BookLine("mysterious marble pillars", 63), - BookLine("located just West of the city?", 64), - BookLine("Or perhaps the town of Brimhaven,", 65) - ), - Page( - BookLine("on the exotic island of Karamja?", 66), - BookLine("It's only a short boat trip with", 67), - BookLine("regular transport leaving from", 68), - BookLine("Ardougne harbor at all times", 69), - BookLine("of the day, all year round.", 70) - ) - ) - ) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/CrompertyDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/CrompertyDialogue.kt deleted file mode 100644 index ea928cdc8..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/CrompertyDialogue.kt +++ /dev/null @@ -1,134 +0,0 @@ -package rs09.game.content.quest.members.tribaltotem - -import api.findNPC -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.impl.Projectile -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.game.system.task.Pulse -import core.game.world.map.Location -import core.game.world.update.flag.context.Animation -import core.game.world.update.flag.context.Graphics -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.content.global.travel.EssenceTeleport -import rs09.game.world.GameWorld - -@Initializable -class CrompertyDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - npcl(FacialExpression.HAPPY,"Hello ${player.name}, I'm Cromperty. Sedridor has told me about you. As a wizard and an inventor he has aided me in my great invention!") - stage = 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("Two jobs? that's got to be tough","So what have you invented?","Can you teleport me to the Rune Essence?").also { stage++ } - 1 ->when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Two jobs? That's got to be tough.").also { stage = 5 } - 2 -> playerl(FacialExpression.ASKING,"So, what have you invented?").also { stage = 10 } - 3 -> playerl(FacialExpression.HAPPY,"Can you teleport me to the Rune Essence?").also { - if(player.questRepository.isComplete("Rune Mysteries")){ - EssenceTeleport.teleport(npc,player) - end() - } - else stage = 2 - } - } - 2 -> npcl(FacialExpression.THINKING,"I have no idea what you're talking about.") - 5 -> npcl(FacialExpression.HAPPY,"Not when you combine them it isn't! Invent MAGIC things!").also { stage++ } - 6 -> options("So what have you invented?","Well I shall leave you to your inventing").also { stage++ } - 7 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"So, what have you invented?").also { stage = 10 } - 2 -> playerl(FacialExpression.HAPPY,"Well I shall leave you to your inventing").also { stage++ } - } - 8 -> npcl(FacialExpression.HAPPY,"Thanks for dropping by! Stop again anytime!").also { stage = 1000 } - - 10 -> npcl(FacialExpression.HAPPY,"Ah! My latest invention is my patent pending teleportation block! It emits a low level magical signal,").also { stage++ } - 11 -> npcl(FacialExpression.HAPPY,"that will allow me to locate it anywhere in the world, and teleport anything directly to it! I hope to revolutionize the entire teleportation system!").also { stage++ } - 12 -> npcl(FacialExpression.HAPPY,"Don't you think I'm great? Uh, I mean it's great?").also { stage++ } - 13 -> options("So where is the other block?","Can I be teleported please?").also { stage++ } - 14 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"So where is the other block?").also { stage = 15 } - 2 -> playerl(FacialExpression.ASKING,"Can I be teleported please?").also { stage = 25 } - } - - 15 -> npcl(FacialExpression.THINKING,"Well...Hmm. I would guess somewhere between here and the Wizards' Tower in Misthalin.").also { stage++ } - 16 -> npcl(FacialExpression.HAPPY,"All I know is that it hasn't got there yet as the wizards there would have contacted me.").also { stage++ } - 17 -> npcl(FacialExpression.THINKING,"I'm using the GPDT for delivery. They assured me it would be delivered promptly.").also { stage++ } - 18 -> playerl(FacialExpression.ASKING,"Who are the GPDT?").also { stage++ } - 19 -> npcl(FacialExpression.HAPPY,"The Gielinor Parcel Delivery Team. They come very highly recommended.").also { stage++ } - 20 -> npcl(FacialExpression.HAPPY,"Their motto is: \"We aim to deliver your stuff at some point after you have paid us!\"").also { stage = 1000 } - - 25 -> npcl(FacialExpression.HAPPY,"By all means! I'm afraid I can't give you any specifics as to where you will come out however. Presumably wherever the other block is located.").also { stage++ } - 26 -> options("Yes, that sounds good. Teleport me!","That sounds dangerous. Leave me here.").also { stage++ } - 27 -> when(buttonId){ - 1 -> playerl(FacialExpression.HAPPY,"Yes, that sounds good. Teleport me!").also { stage = 30 } - 2 -> playerl(FacialExpression.THINKING,"That sounds dangerous. Leave me here.").also { stage++ } - } - 28 -> npcl(FacialExpression.HAPPY,"As you wish.").also { stage = 1000 } - - 30 -> npcl(FacialExpression.HAPPY,"Okey dokey! Ready?").also { - stage = if(player.questRepository.hasStarted("Tribal Totem") && player.questRepository.getStage("Tribal Totem") < 50) { - 35 - } - else 31 - } - 31 -> npcl(FacialExpression.THINKING,"Hmmm... that's odd... I can't seem to get a signal...").also { stage++ } - 32 -> playerl(FacialExpression.SAD,"Oh well, never mind.").also { stage = 1000 } - - 35 -> npcl(FacialExpression.HAPPY,"Okay, I got a signal. Get ready!").also { - TribalTotemTeleport(player, npc) - end() - } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return CrompertyDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(844,NPCs.WIZARD_CROMPERTY_2328) - } - - fun TribalTotemTeleport(player : Player, npc: NPC) { - val LOCATIONS = arrayOf(Location.create(2649, 3272, 0),Location.create(2642, 3321, 0)) - npc.animate(Animation(437)) - npc.faceTemporary(player, 1) - npc.graphics(Graphics(108)) - player.lock() - player.audioManager.send(125) - Projectile.create(npc, player, 109).send() - npc.sendChat("Dipsolum sententa sententi!") - GameWorld.Pulser.submit(object : Pulse(1) { - var counter = 0 - var delivered = player.questRepository.getStage("Tribal Totem") >= 25 - override fun pulse(): Boolean { - when(counter++){ - 2 -> { - if(delivered) { - player.questRepository.getQuest("Tribal Totem").setStage(player,30) - player.properties.teleportLocation = LOCATIONS[1] - } - else player.properties.teleportLocation = LOCATIONS[0] - } - 3 ->{ - player.graphics(Graphics(110)) - player.unlock() - return true - } - } - return false - } - }) - } -} - diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/GPDTEmployeeDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/GPDTEmployeeDialogue.kt deleted file mode 100644 index 2ddc3adf2..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/GPDTEmployeeDialogue.kt +++ /dev/null @@ -1,41 +0,0 @@ -package rs09.game.content.quest.members.tribaltotem - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -@Initializable -class GPDTEmployeeDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun open(vararg args: Any?): Boolean { - npcl(FacialExpression.HAPPY,"Welcome to G.P.D.T.!") - stage = if(player.questRepository.getStage("Tribal Totem") == 20){ - 5 - }else 0 - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.HAPPY,"Thank you very much.").also { stage = 1000 } - - 5 -> playerl(FacialExpression.ASKING,"So, when are you going to deliver this crate?").also { stage++ } - 6 -> npcl(FacialExpression.THINKING,"Well... I guess we could do it now...").also { - player.questRepository.getQuest("Tribal Totem").setStage(player,25) - stage = 1000 - } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return GPDTEmployeeDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.RPDT_EMPLOYEE_843) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/HoracioDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/HoracioDialogue.kt deleted file mode 100644 index 7ad08f260..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/HoracioDialogue.kt +++ /dev/null @@ -1,58 +0,0 @@ -package rs09.game.content.quest.members.tribaltotem - -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable - -@Initializable -class HoracioDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - if(player.questRepository.hasStarted("Tribal Totem")){ - npcl(FacialExpression.HAPPY,"It's a fine day to be out in a garden, isn't it? ") - stage = 5 - } - else{ - npcl(FacialExpression.HAPPY,"It's a fine day to be out in a garden, isn't it? ") - stage = 0 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> playerl(FacialExpression.HAPPY,"Yes it's very nice.").also { stage++ } - 1 -> npcl(FacialExpression.HAPPY,"Days like these make me glad to be alive!").also { stage = 1000 } - - 5 -> playerl(FacialExpression.ASKING,"So... who are you?").also { stage++ } - 6 -> npcl(FacialExpression.HAPPY,"My name is Horacio Dobson. I'm a gardener to Lord Handlemort.").also { stage++ } - 7 -> npcl(FacialExpression.HAPPY,"Take a look around this beautiful garden, all of this is my handiwork.").also { stage++ } - 8 -> options("So... do you garden round the back too?","Do you need any help?").also { stage++ } - 9 -> when(buttonId){ - 1 -> playerl(FacialExpression.THINKING,"So... do you garden round the back, too?").also { stage = 10 } - 2 -> playerl(FacialExpression.ASKING,"Do you need any help?").also { stage = 20 } - } - - 10 -> npcl(FacialExpression.HAPPY,"That I do!").also { stage++ } - 11 -> playerl(FacialExpression.ASKING,"Doesn't all of the security around the house get in your way then?").also { stage++ } - 12 -> npcl(FacialExpression.HAPPY,"Ah. I'm used to all that. I have my keys, the guard dogs know me, and I know the combination to the door lock.").also { stage++ } - 13 -> npcl(FacialExpression.HAPPY,"It's rather easy, it's his middle name.").also { stage++ } - 14 -> playerl(FacialExpression.ASKING,"Whose middle name?").also { stage++ } - 15 -> npcl(FacialExpression.ANNOYED,"Hum. I probably shouldn't have said that. Forget I mentioned it.").also { stage = 1000 } - - 20 -> npcl(FacialExpression.ANNOYED,"Trying to muscle in on my job, eh? I'm more than happy to do this all by myself!").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return HoracioDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(845) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/KangaiMauDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/KangaiMauDialogue.kt deleted file mode 100644 index 51e1e2e7b..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/tribaltotem/KangaiMauDialogue.kt +++ /dev/null @@ -1,91 +0,0 @@ -package rs09.game.content.quest.members.tribaltotem - -import api.isQuestComplete -import api.removeItem -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.Items - -@Initializable -class KangaiMauDialogue(player: Player? = null) : DialoguePlugin(player) { - - override fun open(vararg args: Any?): Boolean { - if(!player.questRepository.hasStarted("Tribal Totem")){ - npcl(FacialExpression.HAPPY,"Hello. I'm Kangai Mau of the Rantuki Tribe.") - stage = 0 - } else if(isQuestComplete(player, "Tribal Totem")) { - npcl(FacialExpression.HAPPY, "Many greetings esteemed thief.") - stage = 40 - } - else if(player.inventory.containsAtLeastOneItem(Items.TOTEM_1857)){ - npcl(FacialExpression.ASKING,"Have you got our totem back?") - stage = 35 - } - else if(player.questRepository.hasStarted("Tribal Totem")){ - npcl(FacialExpression.ASKING,"Have you got our totem back?") - stage = 30 - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(stage){ - 0 -> options("And what are you doing here in Brimhaven?","I'm in search of adventure!","Who are the Rantuki tribe?").also { stage++ } - 1 -> when(buttonId){ - 1 -> playerl(FacialExpression.ASKING,"And what are you doing here in Brimhaven?").also { stage = 5 } - 2 -> playerl(FacialExpression.HAPPY,"I'm in search of adventure!").also { stage = 15 } - 3 -> playerl(FacialExpression.ASKING,"Who are the Rantuki Tribe?").also { stage = 10 } - } - - 5 -> npcl(FacialExpression.HAPPY,"I'm looking for someone brave to go on important mission. Someone skilled in thievery and sneaking about.").also { stage++ } - 6 -> npcl(FacialExpression.HAPPY,"I am told I can find such people in Brimhaven.").also { stage++ } - 7 -> playerl(FacialExpression.HAPPY,"Yep. I have heard there are many of that type here.").also { stage++ } - 8 -> npcl(FacialExpression.THINKING,"Let's hope I find them.").also { stage = 1000 } - - 10 -> npcl(FacialExpression.HAPPY,"A proud and noble tribe of Karamja.").also { stage++ } - 11 -> npcl(FacialExpression.ANGRY,"But now we are few, as men come from across, steal our land, and settle on our hunting grounds").also { stage = 1000 } - - 15 -> npcl(FacialExpression.HAPPY,"Adventure is something I may be able to give. I need someone to go on a mission to the city of Ardougne.").also { stage++ } - 16 -> npcl(FacialExpression.HAPPY,"There you will find the house of Lord Handlemort. In his house he has our tribal totem. We need it back.").also { stage++ } - 17 -> playerl(FacialExpression.ASKING,"Why does he have it?").also { stage++ } - 18 -> npcl(FacialExpression.ANGRY,"Lord Handlemort is an Ardougnese explorer which means he think he have the right to come to my tribal home,").also { stage++ } - 19 -> npcl(FacialExpression.ANGRY,"steal our stuff and put in his private museum.").also { stage++ } - 20 -> playerl(FacialExpression.THINKING,"How can I find Handlemoret's house? Ardougne IS a big place...").also { stage++ } - 21 -> npcl(FacialExpression.ANNOYED,"I don't know Ardougne. You tell me.").also { stage++ } - 22 -> playerl(FacialExpression.HAPPY,"Ok, I will get it back.").also { - player.questRepository.getQuest("Tribal Totem").start(player) - player.questRepository.getQuest("Tribal Totem").setStage(player, 10) - stage++ - } - 23 -> npcl(FacialExpression.HAPPY,"Best of luck with that adventurer").also { stage = 1000 } - - 30 -> playerl(FacialExpression.SAD,"Not yet, sorry.").also { stage = 1000 } - - 35 -> playerl(FacialExpression.HAPPY,"Yes I have.").also { stage++ } - 36 -> npcl(FacialExpression.HAPPY,"You have??? Many thanks brave adventurer! Here, have some freshly cooked Karamjan fish, caught specially by my tribe.").also { stage++ } - 37 -> sendDialogue("You hand over the totem").also { - if(!isQuestComplete(player, "Tribal Totem") && removeItem(player, Items.TOTEM_1857)) { - player.questRepository.getQuest("Tribal Totem").finish(player) - stage = 1000 - } else { - stage = 1000 - } - } - - 40 -> player(FacialExpression.NEUTRAL, "Hey.").also { stage = 1000 } - - 1000 -> end() - } - return true - } - - override fun newInstance(player: Player?): DialoguePlugin { - return KangaiMauDialogue(player) - } - - override fun getIds(): IntArray { - return intArrayOf(846) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFinanceAdvisorDialogue.kt b/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFinanceAdvisorDialogue.kt deleted file mode 100644 index 9a8f465b9..000000000 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialFinanceAdvisorDialogue.kt +++ /dev/null @@ -1,59 +0,0 @@ -package rs09.game.content.tutorial - -import api.getAttribute -import api.setAttribute -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs -import rs09.game.world.GameWorld.settings - -/** - * Handles the finance tutor's dialogue - * @author Ceikry - */ -@Initializable -class TutorialFinanceAdvisorDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return TutorialFinanceAdvisorDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when(getAttribute(player, "tutorial:stage", 0)) - { - 58 -> playerl(FacialExpression.FRIENDLY, "Hello, who are you?") - 59 -> npcl(FacialExpression.FRIENDLY, "Move along, now.").also { return false } - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(getAttribute(player, "tutorial:stage", 0)){ - 58 -> when(stage++){ - 0 -> npcl(FacialExpression.FRIENDLY, "I'm the Financial Advisor. I'm here to tell people how to make money.") - 1 -> playerl(FacialExpression.FRIENDLY, "Okay. How can I make money then?") - 2 -> npcl(FacialExpression.HALF_THINKING, "How you can make money? Quite.") - 3 -> npcl(FacialExpression.FRIENDLY, "Well there are three basic ways of making money here: combat, quests, and trading. I will talk you through each of them very quickly.") - 4 -> npcl(FacialExpression.FRIENDLY, "Let's start with combat as it is probably still fresh in your mind. Many enemies, both human and monster will drop items when they die.") - 5 -> npcl(FacialExpression.FRIENDLY, "Now, the next way to earn money quickly is by quests. Many people on " + settings!!.name + " have things they need doing, which they will reward you for.") - 6 -> npcl(FacialExpression.FRIENDLY, "By getting a high level in skills such as Cooking, Mining, Smithing or Fishing, you can create or catch your own items and sell them for pure profit.") - 7 -> npcl(FacialExpression.FRIENDLY, "Lastly, we have jobs you can get from tutors in Lumbridge. These pay very handsomely early on!").also { stage++ } - 8 -> npcl(FacialExpression.FRIENDLY, "Well, that about covers it. Move along now.") - 9 -> { - end() - setAttribute(player, "tutorial:stage", 59) - TutorialStage.load(player, 59) - } - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.FINANCIAL_ADVISOR_947) - } - -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialPrayerDialogue.kt b/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialPrayerDialogue.kt deleted file mode 100644 index 6b8cb53db..000000000 --- a/Server/src/main/kotlin/rs09/game/content/tutorial/TutorialPrayerDialogue.kt +++ /dev/null @@ -1,68 +0,0 @@ -package rs09.game.content.tutorial - -import api.getAttribute -import api.setAttribute -import core.game.content.dialogue.DialoguePlugin -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.npc.NPC -import core.game.node.entity.player.Player -import core.plugin.Initializable -import org.rs09.consts.NPCs - -/** - * Handles the prayer guide's dialogue - * @author Ceikry - */ -@Initializable -class TutorialPrayerDialogue(player: Player? = null) : DialoguePlugin(player) { - override fun newInstance(player: Player?): DialoguePlugin { - return TutorialPrayerDialogue(player) - } - - override fun open(vararg args: Any?): Boolean { - npc = args[0] as NPC - when(getAttribute(player, "tutorial:stage", 0)) - { - 60 -> npcl(FacialExpression.FRIENDLY, "Greetings! I'd just like to briefly go over two topics with you: prayer, and friends.") - 62 -> npcl(FacialExpression.FRIENDLY, "Prayers have all sorts of wonderful benefits! From boosting defence and damage, to protecting you from outside damage, to saving items on death!") - 65 -> npcl(FacialExpression.FRIENDLY, "For your friend and ignore lists, it's quite simple really! Use your friend list to keep track of players who you like, and ignore those you don't!") - } - return true - } - - override fun handle(interfaceId: Int, buttonId: Int): Boolean { - when(getAttribute(player, "tutorial:stage", 0)) - { - 60 -> when(stage++){ - 0 -> playerl(FacialExpression.FRIENDLY, "Alright, sounds fun!") - 1 -> npcl(FacialExpression.FRIENDLY, "Right, so first thing: prayer. Prayer is trained by offering bones to the gods, and can grant you many boons!") - 2 -> { - end() - setAttribute(player, "tutorial:stage", 61) - TutorialStage.load(player, 61) - } - } - - 62 -> when(stage++){ - 0 -> playerl(FacialExpression.AMAZED, "Very cool!") - 1 -> npcl(FacialExpression.FRIENDLY, "Next up, let's talk about friends.") - 2 -> { - end() - setAttribute(player, "tutorial:stage", 63) - TutorialStage.load(player, 63) - } - } - - 65 -> { - end() - setAttribute(player, "tutorial:stage", 66) - TutorialStage.load(player, 66) - } - } - return true - } - - override fun getIds(): IntArray { - return intArrayOf(NPCs.BROTHER_BRACE_954) - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantedGemListener.kt b/Server/src/main/kotlin/rs09/game/interaction/item/EnchantedGemListener.kt deleted file mode 100644 index 667dd6739..000000000 --- a/Server/src/main/kotlin/rs09/game/interaction/item/EnchantedGemListener.kt +++ /dev/null @@ -1,67 +0,0 @@ -package rs09.game.interaction.item - -import api.* -import core.game.content.dialogue.FacialExpression -import core.game.node.entity.skill.slayer.Tasks -import org.rs09.consts.Items -import rs09.game.content.dialogue.DialogueFile -import rs09.game.content.dialogue.IfTopic -import rs09.game.content.dialogue.Topic -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.tools.END_DIALOGUE - -class EnchantedGemListener : InteractionListener { - override fun defineListeners() { - on(Items.ENCHANTED_GEM_4155, IntType.ITEM, "activate") { player, _ -> - openDialogue(player, EnchantedGemDialogue()) - return@on true - } - } -} - -class EnchantedGemDialogue() : DialogueFile() { - var firstRun = true - override fun handle(interfaceId: Int, buttonId: Int) { - npc = getSlayerMaster(player!!) - when(stage) { - 0 -> npcl(FacialExpression.FRIENDLY, "Hello there ${player!!.username}, what can I help you with?").also { stage++ } - 1 -> showTopics( - Topic(FacialExpression.ASKING, "How am I doing so far?", 100), - Topic(FacialExpression.HALF_ASKING, "Who are you?", 200), - Topic(FacialExpression.HALF_ASKING, "Where are you?", 300), - Topic(FacialExpression.FRIENDLY, "Got any tips for me?", 400), - IfTopic(FacialExpression.FRIENDLY, "Nothing really.", END_DIALOGUE, firstRun), - IfTopic(FacialExpression.HAPPY, "That's all thanks.", END_DIALOGUE, !firstRun) - ) - 100 -> { - firstRun = false - if(!hasSlayerTask(player!!)) { - npcl(FacialExpression.HALF_THINKING, "You need something new to hunt. Come and see me when you can and I'll give you a new task.").also { stage = 1 } - } else { - if(getSlayerTask(player!!) == Tasks.JAD) { - npcl(FacialExpression.FRIENDLY, "You're currently assigned to kill TzTok-Jad!") - } else { - npcl(FacialExpression.FRIENDLY, "You're currently assigned to kill ${getSlayerTaskName(player!!)}s; only ${getSlayerTaskKillsRemaining(player!!)} more to go.") - } - setVarbit(player!!, 2502, 0, getSlayerTaskFlags(player!!) shr 4) - stage = 1 - } - } - 200 -> { - firstRun = false - npcl(FacialExpression.HAPPY, "My name's ${getSlayerMaster(player!!).name}, I'm the Slayer Master best able to train you.").also { stage = 1 } - } - 300 -> { - firstRun = false - npcl(FacialExpression.HAPPY, "You'll find me in ${getSlayerMasterLocation(player!!)}, I'll be here when you need a new task.").also { stage = 1 } - } - 400 -> { - firstRun = false - npc(FacialExpression.FRIENDLY, *getSlayerTip(player!!)) - stage++ - } - 401 -> player(FacialExpression.HAPPY, "Great, thanks!").also { stage = 1 } - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitWest.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitWest.kt deleted file mode 100644 index 5d2de79c3..000000000 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/CommonKebbitWest.kt +++ /dev/null @@ -1,4 +0,0 @@ -package rs09.game.node.entity.skill.hunter.tracking - -class CommonKebbitWest { -} \ No newline at end of file diff --git a/Server/src/main/java/proto/management/BlockedUpdate.java b/Server/src/main/proto/management/BlockedUpdate.java similarity index 100% rename from Server/src/main/java/proto/management/BlockedUpdate.java rename to Server/src/main/proto/management/BlockedUpdate.java diff --git a/Server/src/main/java/proto/management/BlockedUpdateOrBuilder.java b/Server/src/main/proto/management/BlockedUpdateOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/BlockedUpdateOrBuilder.java rename to Server/src/main/proto/management/BlockedUpdateOrBuilder.java diff --git a/Server/src/main/java/proto/management/ClanJoinNotification.java b/Server/src/main/proto/management/ClanJoinNotification.java similarity index 100% rename from Server/src/main/java/proto/management/ClanJoinNotification.java rename to Server/src/main/proto/management/ClanJoinNotification.java diff --git a/Server/src/main/java/proto/management/ClanJoinNotificationOrBuilder.java b/Server/src/main/proto/management/ClanJoinNotificationOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/ClanJoinNotificationOrBuilder.java rename to Server/src/main/proto/management/ClanJoinNotificationOrBuilder.java diff --git a/Server/src/main/java/proto/management/ClanLeaveNotification.java b/Server/src/main/proto/management/ClanLeaveNotification.java similarity index 100% rename from Server/src/main/java/proto/management/ClanLeaveNotification.java rename to Server/src/main/proto/management/ClanLeaveNotification.java diff --git a/Server/src/main/java/proto/management/ClanLeaveNotificationOrBuilder.java b/Server/src/main/proto/management/ClanLeaveNotificationOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/ClanLeaveNotificationOrBuilder.java rename to Server/src/main/proto/management/ClanLeaveNotificationOrBuilder.java diff --git a/Server/src/main/java/proto/management/ClanMessage.java b/Server/src/main/proto/management/ClanMessage.java similarity index 100% rename from Server/src/main/java/proto/management/ClanMessage.java rename to Server/src/main/proto/management/ClanMessage.java diff --git a/Server/src/main/java/proto/management/ClanMessageOrBuilder.java b/Server/src/main/proto/management/ClanMessageOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/ClanMessageOrBuilder.java rename to Server/src/main/proto/management/ClanMessageOrBuilder.java diff --git a/Server/src/main/java/proto/management/ClanSettingsUpdateOrBuilder.java b/Server/src/main/proto/management/ClanSettingsUpdateOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/ClanSettingsUpdateOrBuilder.java rename to Server/src/main/proto/management/ClanSettingsUpdateOrBuilder.java diff --git a/Server/src/main/java/proto/management/FriendUpdate.java b/Server/src/main/proto/management/FriendUpdate.java similarity index 100% rename from Server/src/main/java/proto/management/FriendUpdate.java rename to Server/src/main/proto/management/FriendUpdate.java diff --git a/Server/src/main/java/proto/management/FriendUpdateOrBuilder.java b/Server/src/main/proto/management/FriendUpdateOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/FriendUpdateOrBuilder.java rename to Server/src/main/proto/management/FriendUpdateOrBuilder.java diff --git a/Server/src/main/java/proto/management/JoinClanRequest.java b/Server/src/main/proto/management/JoinClanRequest.java similarity index 100% rename from Server/src/main/java/proto/management/JoinClanRequest.java rename to Server/src/main/proto/management/JoinClanRequest.java diff --git a/Server/src/main/java/proto/management/JoinClanRequestOrBuilder.java b/Server/src/main/proto/management/JoinClanRequestOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/JoinClanRequestOrBuilder.java rename to Server/src/main/proto/management/JoinClanRequestOrBuilder.java diff --git a/Server/src/main/java/proto/management/LeaveClanRequest.java b/Server/src/main/proto/management/LeaveClanRequest.java similarity index 100% rename from Server/src/main/java/proto/management/LeaveClanRequest.java rename to Server/src/main/proto/management/LeaveClanRequest.java diff --git a/Server/src/main/java/proto/management/LeaveClanRequestOrBuilder.java b/Server/src/main/proto/management/LeaveClanRequestOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/LeaveClanRequestOrBuilder.java rename to Server/src/main/proto/management/LeaveClanRequestOrBuilder.java diff --git a/Server/src/main/java/proto/management/ManagementProtos.java b/Server/src/main/proto/management/ManagementProtos.java similarity index 100% rename from Server/src/main/java/proto/management/ManagementProtos.java rename to Server/src/main/proto/management/ManagementProtos.java diff --git a/Server/src/main/java/proto/management/PlayerStatusUpdate.java b/Server/src/main/proto/management/PlayerStatusUpdate.java similarity index 100% rename from Server/src/main/java/proto/management/PlayerStatusUpdate.java rename to Server/src/main/proto/management/PlayerStatusUpdate.java diff --git a/Server/src/main/java/proto/management/PlayerStatusUpdateOrBuilder.java b/Server/src/main/proto/management/PlayerStatusUpdateOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/PlayerStatusUpdateOrBuilder.java rename to Server/src/main/proto/management/PlayerStatusUpdateOrBuilder.java diff --git a/Server/src/main/java/proto/management/PrivateMessage.java b/Server/src/main/proto/management/PrivateMessage.java similarity index 100% rename from Server/src/main/java/proto/management/PrivateMessage.java rename to Server/src/main/proto/management/PrivateMessage.java diff --git a/Server/src/main/java/proto/management/PrivateMessageOrBuilder.java b/Server/src/main/proto/management/PrivateMessageOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/PrivateMessageOrBuilder.java rename to Server/src/main/proto/management/PrivateMessageOrBuilder.java diff --git a/Server/src/main/java/proto/management/RequestClanInfo.java b/Server/src/main/proto/management/RequestClanInfo.java similarity index 100% rename from Server/src/main/java/proto/management/RequestClanInfo.java rename to Server/src/main/proto/management/RequestClanInfo.java diff --git a/Server/src/main/java/proto/management/RequestClanInfoOrBuilder.java b/Server/src/main/proto/management/RequestClanInfoOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/RequestClanInfoOrBuilder.java rename to Server/src/main/proto/management/RequestClanInfoOrBuilder.java diff --git a/Server/src/main/java/proto/management/RequestContactInfo.java b/Server/src/main/proto/management/RequestContactInfo.java similarity index 100% rename from Server/src/main/java/proto/management/RequestContactInfo.java rename to Server/src/main/proto/management/RequestContactInfo.java diff --git a/Server/src/main/java/proto/management/RequestContactInfoOrBuilder.java b/Server/src/main/proto/management/RequestContactInfoOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/RequestContactInfoOrBuilder.java rename to Server/src/main/proto/management/RequestContactInfoOrBuilder.java diff --git a/Server/src/main/java/proto/management/SendClanInfo.java b/Server/src/main/proto/management/SendClanInfo.java similarity index 100% rename from Server/src/main/java/proto/management/SendClanInfo.java rename to Server/src/main/proto/management/SendClanInfo.java diff --git a/Server/src/main/java/proto/management/SendClanInfoOrBuilder.java b/Server/src/main/proto/management/SendClanInfoOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/SendClanInfoOrBuilder.java rename to Server/src/main/proto/management/SendClanInfoOrBuilder.java diff --git a/Server/src/main/java/proto/management/SendContactInfo.java b/Server/src/main/proto/management/SendContactInfo.java similarity index 100% rename from Server/src/main/java/proto/management/SendContactInfo.java rename to Server/src/main/proto/management/SendContactInfo.java diff --git a/Server/src/main/java/proto/management/SendContactInfoOrBuilder.java b/Server/src/main/proto/management/SendContactInfoOrBuilder.java similarity index 100% rename from Server/src/main/java/proto/management/SendContactInfoOrBuilder.java rename to Server/src/main/proto/management/SendContactInfoOrBuilder.java diff --git a/Server/src/test/kotlin/APITests.kt b/Server/src/test/kotlin/APITests.kt index c4042d6cf..6080c7f77 100644 --- a/Server/src/test/kotlin/APITests.kt +++ b/Server/src/test/kotlin/APITests.kt @@ -1,13 +1,12 @@ -import api.IfaceSettingsBuilder -import api.splitLines -import core.game.node.entity.skill.slayer.Master -import core.game.node.entity.skill.slayer.Tasks +import core.api.IfaceSettingsBuilder +import core.api.splitLines +import content.global.skill.slayer.Master +import content.global.skill.slayer.SlayerManager +import content.global.skill.slayer.Tasks import org.json.simple.JSONObject import org.json.simple.parser.JSONParser -import org.junit.Assert import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.node.entity.skill.slayer.SlayerManager class APITests { val testPlayer = TestUtils.getMockPlayer("test") diff --git a/Server/src/test/kotlin/ExchangeTests.kt b/Server/src/test/kotlin/ExchangeTests.kt index 1930f4d28..9c5cabfd8 100644 --- a/Server/src/test/kotlin/ExchangeTests.kt +++ b/Server/src/test/kotlin/ExchangeTests.kt @@ -7,13 +7,11 @@ import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.fail -import rs09.game.ge.GEDB -import rs09.game.ge.GrandExchange -import rs09.game.ge.GrandExchangeOffer -import rs09.game.ge.PriceIndex -import rs09.game.system.SystemLogger +import core.game.ge.GEDB +import core.game.ge.GrandExchange +import core.game.ge.GrandExchangeOffer +import core.game.ge.PriceIndex import java.io.File -import kotlin.random.Random @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ExchangeTests { companion object { @@ -107,8 +105,10 @@ import kotlin.random.Random @Test fun concurrentlySubmittedOffersShouldNotThrowExceptions(){ runBlocking { - val a = GlobalScope.launch { for(i in 0 until 5) {PriceIndex.allowItem(i); GrandExchange.addBotOffer(i, 1)} } - val b = GlobalScope.launch { for(i in 0 until 5) {PriceIndex.allowItem(i); GrandExchange.addBotOffer(i, 1)} } + val a = GlobalScope.launch { for(i in 0 until 5) { + PriceIndex.allowItem(i); GrandExchange.addBotOffer(i, 1)} } + val b = GlobalScope.launch { for(i in 0 until 5) { + PriceIndex.allowItem(i); GrandExchange.addBotOffer(i, 1)} } a.join() b.join() Assertions.assertEquals(false, a.isCancelled) diff --git a/Server/src/test/kotlin/HouseManagerTests.kt b/Server/src/test/kotlin/HouseManagerTests.kt index 6f971799d..ab6b24241 100644 --- a/Server/src/test/kotlin/HouseManagerTests.kt +++ b/Server/src/test/kotlin/HouseManagerTests.kt @@ -1,8 +1,8 @@ import core.game.node.entity.player.link.music.MusicEntry -import core.game.node.entity.skill.construction.HouseLocation -import core.game.node.entity.skill.construction.HouseManager -import core.game.node.entity.skill.construction.Servant -import core.game.node.entity.skill.construction.ServantType +import content.global.skill.construction.HouseLocation +import content.global.skill.construction.HouseManager +import content.global.skill.construction.Servant +import content.global.skill.construction.ServantType import core.game.world.map.RegionManager import core.game.world.map.path.Pathfinder import org.junit.jupiter.api.Assertions diff --git a/Server/src/test/kotlin/PriceIndexTests.kt b/Server/src/test/kotlin/PriceIndexTests.kt index 04b3f5e7e..f358e3046 100644 --- a/Server/src/test/kotlin/PriceIndexTests.kt +++ b/Server/src/test/kotlin/PriceIndexTests.kt @@ -1,7 +1,7 @@ import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.ge.GEDB -import rs09.game.ge.PriceIndex +import core.game.ge.GEDB +import core.game.ge.PriceIndex class PriceIndexTests { companion object {init {TestUtils.preTestSetup(); GEDB.init("ge_test.db")}} diff --git a/Server/src/test/kotlin/RegionSpecificationTests.kt b/Server/src/test/kotlin/RegionSpecificationTests.kt index f65ca99c2..52b6d630d 100644 --- a/Server/src/test/kotlin/RegionSpecificationTests.kt +++ b/Server/src/test/kotlin/RegionSpecificationTests.kt @@ -1,14 +1,12 @@ -import api.regionspec.* -import api.regionspec.contracts.FillChunkContract +import core.api.regionspec.* +import core.api.regionspec.contracts.FillChunkContract import core.game.world.map.BuildRegionChunk import core.game.world.map.Region import core.game.world.map.RegionChunk import core.game.world.map.RegionManager import core.game.world.map.build.DynamicRegion -import org.junit.BeforeClass import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.system.SystemLogger class RegionSpecificationTests { companion object { diff --git a/Server/src/test/kotlin/RegionTests.kt b/Server/src/test/kotlin/RegionTests.kt index 44d42e61a..7e48c338a 100644 --- a/Server/src/test/kotlin/RegionTests.kt +++ b/Server/src/test/kotlin/RegionTests.kt @@ -7,8 +7,8 @@ import core.game.world.map.build.LandscapeParser import org.junit.Assert import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.system.config.ServerConfigParser -import rs09.game.system.config.XteaParser +import core.game.system.config.ServerConfigParser +import core.game.system.config.XteaParser class RegionTests { companion object { diff --git a/Server/src/test/kotlin/ShopTests.kt b/Server/src/test/kotlin/ShopTests.kt index 611a1ca9b..218280204 100644 --- a/Server/src/test/kotlin/ShopTests.kt +++ b/Server/src/test/kotlin/ShopTests.kt @@ -4,8 +4,8 @@ import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.rs09.consts.Items -import rs09.game.content.global.shops.Shop -import rs09.game.content.global.shops.Shops +import core.game.shops.Shop +import core.game.shops.Shops import kotlin.math.min import kotlin.math.roundToInt diff --git a/Server/src/test/kotlin/TestUtils.kt b/Server/src/test/kotlin/TestUtils.kt index 53e1454de..23de9d029 100644 --- a/Server/src/test/kotlin/TestUtils.kt +++ b/Server/src/test/kotlin/TestUtils.kt @@ -9,16 +9,15 @@ import core.game.node.item.Item import core.net.IoSession import core.net.packet.IoBuffer import org.rs09.consts.Items -import rs09.ServerConstants -import rs09.game.content.global.shops.Shop -import rs09.game.content.global.shops.ShopItem -import rs09.game.system.SystemLogger -import rs09.game.system.config.ConfigParser -import rs09.game.system.config.ServerConfigParser -import rs09.game.world.GameWorld -import rs09.game.world.repository.Repository -import rs09.game.world.update.UpdateSequence -import java.io.File +import core.ServerConstants +import core.game.shops.Shop +import core.game.shops.ShopItem +import core.tools.SystemLogger +import core.game.system.config.ConfigParser +import core.game.system.config.ServerConfigParser +import core.game.world.GameWorld +import core.game.world.repository.Repository +import core.game.world.update.UpdateSequence import java.net.URI import java.nio.ByteBuffer diff --git a/Server/src/test/kotlin/content/DeathTests.kt b/Server/src/test/kotlin/content/DeathTests.kt index ea7f54dde..5fcca6641 100644 --- a/Server/src/test/kotlin/content/DeathTests.kt +++ b/Server/src/test/kotlin/content/DeathTests.kt @@ -1,23 +1,17 @@ package content import TestUtils -import api.asItem -import core.game.content.global.action.DropItemHandler -import core.game.node.entity.combat.ImpactHandler +import core.api.asItem import core.game.node.entity.player.info.Rights import core.game.node.entity.player.link.IronmanMode import core.game.world.map.Location -import org.junit.Assert -import org.junit.BeforeClass import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import org.junit.jupiter.api.parallel.Execution -import org.junit.jupiter.api.parallel.ExecutionMode import org.rs09.consts.Items -import rs09.game.node.entity.player.graves.GraveType -import rs09.game.node.entity.player.graves.GraveController -import rs09.game.world.GameWorld -import rs09.tools.secondsToTicks +import core.game.node.entity.combat.graves.GraveType +import core.game.node.entity.combat.graves.GraveController +import core.game.world.GameWorld +import core.tools.secondsToTicks class DeathTests { init { //explicitly register the GraveController as a tick listener because tests don't run reflection @@ -307,7 +301,7 @@ class DeathTests { Assertions.assertNotNull(g) Assertions.assertEquals(p.location, g?.location) - val canDrop = DropItemHandler.drop(p, p.inventory[0]) + val canDrop = core.game.global.action.DropItemHandler.drop(p, p.inventory[0]) Assertions.assertEquals(false, canDrop) } } \ No newline at end of file diff --git a/Server/src/test/kotlin/content/EquipTests.kt b/Server/src/test/kotlin/content/EquipTests.kt index 7acdfd364..83a781638 100644 --- a/Server/src/test/kotlin/content/EquipTests.kt +++ b/Server/src/test/kotlin/content/EquipTests.kt @@ -1,16 +1,16 @@ package content import TestUtils -import api.EquipmentSlot +import core.api.EquipmentSlot import core.game.node.entity.skill.Skills import core.game.node.item.Item import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.rs09.consts.Items -import rs09.game.content.global.action.EquipHandler -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.global.action.EquipHandler +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class EquipTests { companion object { diff --git a/Server/src/test/kotlin/content/ListenerTests.kt b/Server/src/test/kotlin/content/ListenerTests.kt index 2aac1002c..e7709522d 100644 --- a/Server/src/test/kotlin/content/ListenerTests.kt +++ b/Server/src/test/kotlin/content/ListenerTests.kt @@ -4,29 +4,29 @@ import TestUtils import core.game.node.item.Item import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners +import core.game.interaction.InteractionListener +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class ListenerTests : InteractionListener { @Test fun doubleDefinedListenerShouldThrowIllegalStateException() { - on(0, IntType.ITEM, "touch") {_,_ -> return@on true} + on(0, IntType.ITEM, "touch") { _, _ -> return@on true} Assertions.assertThrows(IllegalStateException::class.java) { - on(0, IntType.ITEM, "touch") {_,_ -> return@on true} + on(0, IntType.ITEM, "touch") { _, _ -> return@on true} } } @Test fun doubleDefinedUseWithShouldThrowIllegalStateException() { - onUseWith(IntType.SCENERY, 0, 1) {_,_,_ -> return@onUseWith true} + onUseWith(IntType.SCENERY, 0, 1) { _, _, _ -> return@onUseWith true} Assertions.assertThrows(IllegalStateException::class.java) { - onUseWith(IntType.SCENERY, 0, 1) {_,_,_ -> return@onUseWith true} + onUseWith(IntType.SCENERY, 0, 1) { _, _, _ -> return@onUseWith true} } } @Test fun conflictingCatchallShouldThrowIllegalStateException() { - on(IntType.ITEM, "boop"){_,_ -> return@on true} + on(IntType.ITEM, "boop"){ _, _ -> return@on true} Assertions.assertThrows(IllegalStateException::class.java) { - on(IntType.ITEM, "boop") {_,_ -> return@on true} + on(IntType.ITEM, "boop") { _, _ -> return@on true} } } @@ -34,7 +34,7 @@ class ListenerTests : InteractionListener { var specificRan = false var catchAllRan = false on(IntType.ITEM, "zap") { _, _ -> catchAllRan = true; return@on true} - on(1, IntType.ITEM, "zap") {_,_ -> specificRan = true; return@on true} + on(1, IntType.ITEM, "zap") { _, _ -> specificRan = true; return@on true} InteractionListeners.run(1, IntType.ITEM, "zap", TestUtils.getMockPlayer("bilbots"), Item(1)) diff --git a/Server/src/test/kotlin/content/RandomEventManagerTests.kt b/Server/src/test/kotlin/content/RandomEventManagerTests.kt index 2bfe3cd69..a6f1cffde 100644 --- a/Server/src/test/kotlin/content/RandomEventManagerTests.kt +++ b/Server/src/test/kotlin/content/RandomEventManagerTests.kt @@ -5,8 +5,8 @@ import core.game.node.item.Item import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import org.rs09.consts.Items -import rs09.game.content.ame.RandomEventNPC -import rs09.game.world.GameWorld +import content.global.ame.RandomEventNPC +import core.game.world.GameWorld class RandomEventManagerTests { companion object {init { @@ -15,16 +15,16 @@ class RandomEventManagerTests { @Test fun loginShouldEnableManager() { val p = TestUtils.getMockPlayer("Bill") - rs09.game.content.ame.RandomEventManager().login(p) - val manager = rs09.game.content.ame.RandomEventManager.getInstance(p) + content.global.ame.RandomEventManager().login(p) + val manager = content.global.ame.RandomEventManager.getInstance(p) Assertions.assertNotNull(manager) Assertions.assertEquals(true, manager!!.enabled) } @Test fun loginShouldSetNextSpawn() { val p = TestUtils.getMockPlayer("Bill") - rs09.game.content.ame.RandomEventManager().login(p) - val manager = rs09.game.content.ame.RandomEventManager.getInstance(p) + content.global.ame.RandomEventManager().login(p) + val manager = content.global.ame.RandomEventManager.getInstance(p) Assertions.assertNotNull(manager) Assertions.assertEquals(true, manager!!.nextSpawn > GameWorld.ticks) } @@ -32,18 +32,18 @@ class RandomEventManagerTests { @Test fun shouldSpawnRandomEventWithinMAXTICKSGivenNoRestrictions() { val p = TestUtils.getMockPlayer("Bill") p.setAttribute("tutorial:complete", true) //tutorial has to be complete to spawn randoms - rs09.game.content.ame.RandomEventManager().login(p) - TestUtils.advanceTicks(rs09.game.content.ame.RandomEventManager.MAX_DELAY_TICKS + 5) + content.global.ame.RandomEventManager().login(p) + TestUtils.advanceTicks(content.global.ame.RandomEventManager.MAX_DELAY_TICKS + 5) Assertions.assertNotNull(p.getAttribute("re-npc", null)) } @Test fun teleportAndNotePunishmentShouldNotAffectAlreadyNotedItems() { val p = TestUtils.getMockPlayer("Shitforbrains") p.setAttribute("tutorial:complete", true) - rs09.game.content.ame.RandomEventManager().login(p) + content.global.ame.RandomEventManager().login(p) p.inventory.add(Item(Items.RAW_SHARK_384, 1000)) - rs09.game.content.ame.RandomEventManager.getInstance(p)?.fireEvent() + content.global.ame.RandomEventManager.getInstance(p)?.fireEvent() p.getAttribute("re-npc")!!.noteAndTeleport() Assertions.assertEquals(1000, p.inventory.getAmount(Items.RAW_SHARK_384)) @@ -52,10 +52,10 @@ class RandomEventManagerTests { @Test fun teleportAndNotePunishmentShouldNoteNotableUnnotedItems() { val p = TestUtils.getMockPlayer("shitforbrains2") p.setAttribute("tutorial:complete", true) - rs09.game.content.ame.RandomEventManager().login(p) + content.global.ame.RandomEventManager().login(p) p.inventory.add(Item(4151, 5)) - rs09.game.content.ame.RandomEventManager.getInstance(p)?.fireEvent() + content.global.ame.RandomEventManager.getInstance(p)?.fireEvent() p.getAttribute("re-npc")!!.noteAndTeleport() Assertions.assertEquals(5, p.inventory.getAmount(4152)) @@ -65,10 +65,10 @@ class RandomEventManagerTests { @Test fun teleportAndNotePunishmentShouldNotAffectUnnotableItems() { val p = TestUtils.getMockPlayer("shitforbrains3") p.setAttribute("tutorial:complete", true) - rs09.game.content.ame.RandomEventManager().login(p) + content.global.ame.RandomEventManager().login(p) p.inventory.add(Item(Items.AIR_RUNE_556, 30)) - rs09.game.content.ame.RandomEventManager.getInstance(p)?.fireEvent() + content.global.ame.RandomEventManager.getInstance(p)?.fireEvent() p.getAttribute("re-npc")!!.noteAndTeleport() Assertions.assertEquals(30, p.inventory.getAmount(Items.AIR_RUNE_556)) diff --git a/Server/src/test/kotlin/core/PathfinderTests.kt b/Server/src/test/kotlin/core/PathfinderTests.kt index e7f0b35e1..b2da7a30c 100644 --- a/Server/src/test/kotlin/core/PathfinderTests.kt +++ b/Server/src/test/kotlin/core/PathfinderTests.kt @@ -1,15 +1,14 @@ package core import TestUtils +import content.global.skill.gather.GatheringSkillOptionListeners import core.game.node.scenery.Scenery import core.game.world.map.Location import core.game.world.map.RegionManager import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType -import rs09.game.interaction.InteractionListeners -import rs09.game.node.entity.skill.gather.GatheringSkillOptionListeners +import core.game.interaction.IntType +import core.game.interaction.InteractionListeners class PathfinderTests { companion object {init {TestUtils.preTestSetup(); GatheringSkillOptionListeners().defineListeners() }} diff --git a/Server/src/test/kotlin/core/auth/DevelopmentAuthenticatorTests.kt b/Server/src/test/kotlin/core/auth/DevelopmentAuthenticatorTests.kt index f3b9ba5ba..05e8051af 100644 --- a/Server/src/test/kotlin/core/auth/DevelopmentAuthenticatorTests.kt +++ b/Server/src/test/kotlin/core/auth/DevelopmentAuthenticatorTests.kt @@ -2,10 +2,10 @@ package core.auth import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.auth.DevelopmentAuthenticator -import rs09.auth.AuthResponse -import rs09.auth.UserAccountInfo -import rs09.storage.InMemoryStorageProvider +import core.auth.DevelopmentAuthenticator +import core.auth.AuthResponse +import core.auth.UserAccountInfo +import core.storage.InMemoryStorageProvider class DevelopmentAuthenticatorTests { private val authProvider = DevelopmentAuthenticator() diff --git a/Server/src/test/kotlin/core/auth/ProductionAuthenticatorTests.kt b/Server/src/test/kotlin/core/auth/ProductionAuthenticatorTests.kt index c06ef15a7..1355778bb 100644 --- a/Server/src/test/kotlin/core/auth/ProductionAuthenticatorTests.kt +++ b/Server/src/test/kotlin/core/auth/ProductionAuthenticatorTests.kt @@ -4,10 +4,10 @@ import org.junit.Assert import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test -import rs09.auth.AuthResponse -import rs09.auth.ProductionAuthenticator -import rs09.auth.UserAccountInfo -import rs09.storage.InMemoryStorageProvider +import core.auth.AuthResponse +import core.auth.ProductionAuthenticator +import core.auth.UserAccountInfo +import core.storage.InMemoryStorageProvider class ProductionAuthenticatorTests { companion object { diff --git a/Server/src/test/kotlin/core/cache/ItemDefTests.kt b/Server/src/test/kotlin/core/cache/ItemDefTests.kt index b1bf6259a..dc9a5fb43 100644 --- a/Server/src/test/kotlin/core/cache/ItemDefTests.kt +++ b/Server/src/test/kotlin/core/cache/ItemDefTests.kt @@ -1,7 +1,7 @@ package core.cache import TestUtils -import api.itemDefinition +import core.api.itemDefinition import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test import java.io.File diff --git a/Server/src/test/kotlin/core/net/LoginTests.kt b/Server/src/test/kotlin/core/net/LoginTests.kt index 42f8fbd72..602167773 100644 --- a/Server/src/test/kotlin/core/net/LoginTests.kt +++ b/Server/src/test/kotlin/core/net/LoginTests.kt @@ -2,8 +2,8 @@ package core.net import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.auth.AuthResponse -import rs09.net.packet.`in`.Login +import core.auth.AuthResponse +import core.net.packet.`in`.Login import java.nio.ByteBuffer class LoginTests { diff --git a/Server/src/test/kotlin/core/storage/SQLStorageProviderTests.kt b/Server/src/test/kotlin/core/storage/SQLStorageProviderTests.kt index 9a5e6605d..c88745158 100644 --- a/Server/src/test/kotlin/core/storage/SQLStorageProviderTests.kt +++ b/Server/src/test/kotlin/core/storage/SQLStorageProviderTests.kt @@ -1,14 +1,11 @@ package core.storage -import core.auth.ProductionAuthenticatorTests -import org.junit.After import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test -import rs09.ServerConstants -import rs09.auth.UserAccountInfo -import rs09.game.system.SystemLogger -import rs09.storage.SQLStorageProvider +import core.ServerConstants +import core.auth.UserAccountInfo +import core.tools.SystemLogger import java.sql.SQLDataException class SQLStorageProviderTests { diff --git a/Server/worldprops/default.conf b/Server/worldprops/default.conf index d2db5c36f..c32123166 100644 --- a/Server/worldprops/default.conf +++ b/Server/worldprops/default.conf @@ -16,6 +16,7 @@ noauth_default_admin = true #NOTE: If we are not using auth, this determines whe #------------------------------------------------------------------------------------------------------ #The limit on how many different accounts a player can log into per day. daily_accounts_per_ip = 3 +watchdog_enabled = false [database] database_name = "global"