diff --git a/.gitignore b/.gitignore index c41f64e68..3475f63f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,14 @@ -RunUO.exe -RunUO.exe.config -RunUO.pdb -RunUO.vshost.exe -RunUO.vshost.exe.config -/Logs/ -/Scripts/bin/ -/Scripts/obj/ -/Scripts/Output -/Server/bin/ -/Server/obj/ +/Distribution/ModernUO +/Distribution/ModernUO.* +/Distribution/Assemblies +/Distribution/Logs +/Distribution/Backups +/Distribution/Saves +/Projects/Scripts/obj +/Projects/Server/obj *.user -*.suo /.idea -/Backups -/Saves - -/packages /.vs -/roslyn -Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll -Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml .DS_Store diff --git a/Data/Assemblies.cfg b/Data/Assemblies.cfg deleted file mode 100644 index 5af4836c2..000000000 --- a/Data/Assemblies.cfg +++ /dev/null @@ -1,7 +0,0 @@ -System.dll -System.Core.dll -System.Data.dll -System.Drawing.dll -System.Web.dll -System.Windows.Forms.dll -System.Xml.dll \ No newline at end of file diff --git a/Data/Binary/Bounds.bin b/Distribution/Data/Binary/Bounds.bin similarity index 100% rename from Data/Binary/Bounds.bin rename to Distribution/Data/Binary/Bounds.bin diff --git a/Data/Bulk Orders/Blacksmith/armor.cfg b/Distribution/Data/Bulk Orders/Blacksmith/armor.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/armor.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/armor.cfg diff --git a/Data/Bulk Orders/Blacksmith/largeaxes.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largeaxes.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largeaxes.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largeaxes.cfg diff --git a/Data/Bulk Orders/Blacksmith/largechain.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largechain.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largechain.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largechain.cfg diff --git a/Data/Bulk Orders/Blacksmith/largefencing.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largefencing.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largefencing.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largefencing.cfg diff --git a/Data/Bulk Orders/Blacksmith/largemaces.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largemaces.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largemaces.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largemaces.cfg diff --git a/Data/Bulk Orders/Blacksmith/largeplate.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largeplate.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largeplate.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largeplate.cfg diff --git a/Data/Bulk Orders/Blacksmith/largepolearms.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largepolearms.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largepolearms.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largepolearms.cfg diff --git a/Data/Bulk Orders/Blacksmith/largering.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largering.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largering.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largering.cfg diff --git a/Data/Bulk Orders/Blacksmith/largeswords.cfg b/Distribution/Data/Bulk Orders/Blacksmith/largeswords.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/largeswords.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/largeswords.cfg diff --git a/Data/Bulk Orders/Blacksmith/weapons.cfg b/Distribution/Data/Bulk Orders/Blacksmith/weapons.cfg similarity index 100% rename from Data/Bulk Orders/Blacksmith/weapons.cfg rename to Distribution/Data/Bulk Orders/Blacksmith/weapons.cfg diff --git a/Data/Bulk Orders/Tailoring/boneset.cfg b/Distribution/Data/Bulk Orders/Tailoring/boneset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/boneset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/boneset.cfg diff --git a/Data/Bulk Orders/Tailoring/cloth.cfg b/Distribution/Data/Bulk Orders/Tailoring/cloth.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/cloth.cfg rename to Distribution/Data/Bulk Orders/Tailoring/cloth.cfg diff --git a/Data/Bulk Orders/Tailoring/farmer.cfg b/Distribution/Data/Bulk Orders/Tailoring/farmer.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/farmer.cfg rename to Distribution/Data/Bulk Orders/Tailoring/farmer.cfg diff --git a/Data/Bulk Orders/Tailoring/femaleleatherset.cfg b/Distribution/Data/Bulk Orders/Tailoring/femaleleatherset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/femaleleatherset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/femaleleatherset.cfg diff --git a/Data/Bulk Orders/Tailoring/fishergirl.cfg b/Distribution/Data/Bulk Orders/Tailoring/fishergirl.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/fishergirl.cfg rename to Distribution/Data/Bulk Orders/Tailoring/fishergirl.cfg diff --git a/Data/Bulk Orders/Tailoring/gypsy.cfg b/Distribution/Data/Bulk Orders/Tailoring/gypsy.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/gypsy.cfg rename to Distribution/Data/Bulk Orders/Tailoring/gypsy.cfg diff --git a/Data/Bulk Orders/Tailoring/hatset.cfg b/Distribution/Data/Bulk Orders/Tailoring/hatset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/hatset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/hatset.cfg diff --git a/Data/Bulk Orders/Tailoring/jester.cfg b/Distribution/Data/Bulk Orders/Tailoring/jester.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/jester.cfg rename to Distribution/Data/Bulk Orders/Tailoring/jester.cfg diff --git a/Data/Bulk Orders/Tailoring/lady.cfg b/Distribution/Data/Bulk Orders/Tailoring/lady.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/lady.cfg rename to Distribution/Data/Bulk Orders/Tailoring/lady.cfg diff --git a/Data/Bulk Orders/Tailoring/leather.cfg b/Distribution/Data/Bulk Orders/Tailoring/leather.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/leather.cfg rename to Distribution/Data/Bulk Orders/Tailoring/leather.cfg diff --git a/Data/Bulk Orders/Tailoring/maleleatherset.cfg b/Distribution/Data/Bulk Orders/Tailoring/maleleatherset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/maleleatherset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/maleleatherset.cfg diff --git a/Data/Bulk Orders/Tailoring/pirate.cfg b/Distribution/Data/Bulk Orders/Tailoring/pirate.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/pirate.cfg rename to Distribution/Data/Bulk Orders/Tailoring/pirate.cfg diff --git a/Data/Bulk Orders/Tailoring/shoeset.cfg b/Distribution/Data/Bulk Orders/Tailoring/shoeset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/shoeset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/shoeset.cfg diff --git a/Data/Bulk Orders/Tailoring/studdedset.cfg b/Distribution/Data/Bulk Orders/Tailoring/studdedset.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/studdedset.cfg rename to Distribution/Data/Bulk Orders/Tailoring/studdedset.cfg diff --git a/Data/Bulk Orders/Tailoring/towncrier.cfg b/Distribution/Data/Bulk Orders/Tailoring/towncrier.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/towncrier.cfg rename to Distribution/Data/Bulk Orders/Tailoring/towncrier.cfg diff --git a/Data/Bulk Orders/Tailoring/wizard.cfg b/Distribution/Data/Bulk Orders/Tailoring/wizard.cfg similarity index 100% rename from Data/Bulk Orders/Tailoring/wizard.cfg rename to Distribution/Data/Bulk Orders/Tailoring/wizard.cfg diff --git a/Data/Common.map b/Distribution/Data/Common.map similarity index 100% rename from Data/Common.map rename to Distribution/Data/Common.map diff --git a/Data/Components/doors.txt b/Distribution/Data/Components/doors.txt similarity index 100% rename from Data/Components/doors.txt rename to Distribution/Data/Components/doors.txt diff --git a/Data/Components/floors.txt b/Distribution/Data/Components/floors.txt similarity index 100% rename from Data/Components/floors.txt rename to Distribution/Data/Components/floors.txt diff --git a/Data/Components/misc.txt b/Distribution/Data/Components/misc.txt similarity index 100% rename from Data/Components/misc.txt rename to Distribution/Data/Components/misc.txt diff --git a/Data/Components/roof.txt b/Distribution/Data/Components/roof.txt similarity index 100% rename from Data/Components/roof.txt rename to Distribution/Data/Components/roof.txt diff --git a/Data/Components/stairs.txt b/Distribution/Data/Components/stairs.txt similarity index 100% rename from Data/Components/stairs.txt rename to Distribution/Data/Components/stairs.txt diff --git a/Data/Components/suppinfo.txt b/Distribution/Data/Components/suppinfo.txt similarity index 100% rename from Data/Components/suppinfo.txt rename to Distribution/Data/Components/suppinfo.txt diff --git a/Data/Components/teleprts.txt b/Distribution/Data/Components/teleprts.txt similarity index 100% rename from Data/Components/teleprts.txt rename to Distribution/Data/Components/teleprts.txt diff --git a/Data/Components/walls.txt b/Distribution/Data/Components/walls.txt similarity index 100% rename from Data/Components/walls.txt rename to Distribution/Data/Components/walls.txt diff --git a/Data/Decoration/Britannia/_covetous.cfg b/Distribution/Data/Decoration/Britannia/_covetous.cfg similarity index 100% rename from Data/Decoration/Britannia/_covetous.cfg rename to Distribution/Data/Decoration/Britannia/_covetous.cfg diff --git a/Data/Decoration/Britannia/_deceit.cfg b/Distribution/Data/Decoration/Britannia/_deceit.cfg similarity index 100% rename from Data/Decoration/Britannia/_deceit.cfg rename to Distribution/Data/Decoration/Britannia/_deceit.cfg diff --git a/Data/Decoration/Britannia/_despise.cfg b/Distribution/Data/Decoration/Britannia/_despise.cfg similarity index 100% rename from Data/Decoration/Britannia/_despise.cfg rename to Distribution/Data/Decoration/Britannia/_despise.cfg diff --git a/Data/Decoration/Britannia/_destard.cfg b/Distribution/Data/Decoration/Britannia/_destard.cfg similarity index 100% rename from Data/Decoration/Britannia/_destard.cfg rename to Distribution/Data/Decoration/Britannia/_destard.cfg diff --git a/Data/Decoration/Britannia/_fire.cfg b/Distribution/Data/Decoration/Britannia/_fire.cfg similarity index 100% rename from Data/Decoration/Britannia/_fire.cfg rename to Distribution/Data/Decoration/Britannia/_fire.cfg diff --git a/Data/Decoration/Britannia/_hedgemaze.cfg b/Distribution/Data/Decoration/Britannia/_hedgemaze.cfg similarity index 100% rename from Data/Decoration/Britannia/_hedgemaze.cfg rename to Distribution/Data/Decoration/Britannia/_hedgemaze.cfg diff --git a/Data/Decoration/Britannia/_hythloth.cfg b/Distribution/Data/Decoration/Britannia/_hythloth.cfg similarity index 100% rename from Data/Decoration/Britannia/_hythloth.cfg rename to Distribution/Data/Decoration/Britannia/_hythloth.cfg diff --git a/Data/Decoration/Britannia/_ice.cfg b/Distribution/Data/Decoration/Britannia/_ice.cfg similarity index 100% rename from Data/Decoration/Britannia/_ice.cfg rename to Distribution/Data/Decoration/Britannia/_ice.cfg diff --git a/Data/Decoration/Britannia/_orccave.cfg b/Distribution/Data/Decoration/Britannia/_orccave.cfg similarity index 100% rename from Data/Decoration/Britannia/_orccave.cfg rename to Distribution/Data/Decoration/Britannia/_orccave.cfg diff --git a/Data/Decoration/Britannia/_shame.cfg b/Distribution/Data/Decoration/Britannia/_shame.cfg similarity index 100% rename from Data/Decoration/Britannia/_shame.cfg rename to Distribution/Data/Decoration/Britannia/_shame.cfg diff --git a/Data/Decoration/Britannia/_terathankeep.cfg b/Distribution/Data/Decoration/Britannia/_terathankeep.cfg similarity index 100% rename from Data/Decoration/Britannia/_terathankeep.cfg rename to Distribution/Data/Decoration/Britannia/_terathankeep.cfg diff --git a/Data/Decoration/Britannia/_wrong.cfg b/Distribution/Data/Decoration/Britannia/_wrong.cfg similarity index 100% rename from Data/Decoration/Britannia/_wrong.cfg rename to Distribution/Data/Decoration/Britannia/_wrong.cfg diff --git a/Data/Decoration/Britannia/britain.cfg b/Distribution/Data/Decoration/Britannia/britain.cfg similarity index 100% rename from Data/Decoration/Britannia/britain.cfg rename to Distribution/Data/Decoration/Britannia/britain.cfg diff --git a/Data/Decoration/Britannia/bucs.cfg b/Distribution/Data/Decoration/Britannia/bucs.cfg similarity index 100% rename from Data/Decoration/Britannia/bucs.cfg rename to Distribution/Data/Decoration/Britannia/bucs.cfg diff --git a/Data/Decoration/Britannia/bucsportal.cfg b/Distribution/Data/Decoration/Britannia/bucsportal.cfg similarity index 100% rename from Data/Decoration/Britannia/bucsportal.cfg rename to Distribution/Data/Decoration/Britannia/bucsportal.cfg diff --git a/Data/Decoration/Britannia/cove.cfg b/Distribution/Data/Decoration/Britannia/cove.cfg similarity index 100% rename from Data/Decoration/Britannia/cove.cfg rename to Distribution/Data/Decoration/Britannia/cove.cfg diff --git a/Data/Decoration/Britannia/delucia.cfg b/Distribution/Data/Decoration/Britannia/delucia.cfg similarity index 100% rename from Data/Decoration/Britannia/delucia.cfg rename to Distribution/Data/Decoration/Britannia/delucia.cfg diff --git a/Data/Decoration/Britannia/despise.cfg b/Distribution/Data/Decoration/Britannia/despise.cfg similarity index 100% rename from Data/Decoration/Britannia/despise.cfg rename to Distribution/Data/Decoration/Britannia/despise.cfg diff --git a/Data/Decoration/Britannia/destard.cfg b/Distribution/Data/Decoration/Britannia/destard.cfg similarity index 100% rename from Data/Decoration/Britannia/destard.cfg rename to Distribution/Data/Decoration/Britannia/destard.cfg diff --git a/Data/Decoration/Britannia/hythloth.cfg b/Distribution/Data/Decoration/Britannia/hythloth.cfg similarity index 100% rename from Data/Decoration/Britannia/hythloth.cfg rename to Distribution/Data/Decoration/Britannia/hythloth.cfg diff --git a/Data/Decoration/Britannia/jhelom.cfg b/Distribution/Data/Decoration/Britannia/jhelom.cfg similarity index 100% rename from Data/Decoration/Britannia/jhelom.cfg rename to Distribution/Data/Decoration/Britannia/jhelom.cfg diff --git a/Data/Decoration/Britannia/magincia.cfg b/Distribution/Data/Decoration/Britannia/magincia.cfg similarity index 100% rename from Data/Decoration/Britannia/magincia.cfg rename to Distribution/Data/Decoration/Britannia/magincia.cfg diff --git a/Data/Decoration/Britannia/minoc.cfg b/Distribution/Data/Decoration/Britannia/minoc.cfg similarity index 100% rename from Data/Decoration/Britannia/minoc.cfg rename to Distribution/Data/Decoration/Britannia/minoc.cfg diff --git a/Data/Decoration/Britannia/moonglow.cfg b/Distribution/Data/Decoration/Britannia/moonglow.cfg similarity index 100% rename from Data/Decoration/Britannia/moonglow.cfg rename to Distribution/Data/Decoration/Britannia/moonglow.cfg diff --git a/Data/Decoration/Britannia/nujelm.cfg b/Distribution/Data/Decoration/Britannia/nujelm.cfg similarity index 100% rename from Data/Decoration/Britannia/nujelm.cfg rename to Distribution/Data/Decoration/Britannia/nujelm.cfg diff --git a/Data/Decoration/Britannia/papua.cfg b/Distribution/Data/Decoration/Britannia/papua.cfg similarity index 100% rename from Data/Decoration/Britannia/papua.cfg rename to Distribution/Data/Decoration/Britannia/papua.cfg diff --git a/Data/Decoration/Britannia/patches.cfg b/Distribution/Data/Decoration/Britannia/patches.cfg similarity index 100% rename from Data/Decoration/Britannia/patches.cfg rename to Distribution/Data/Decoration/Britannia/patches.cfg diff --git a/Data/Decoration/Britannia/serpent pillars.cfg b/Distribution/Data/Decoration/Britannia/serpent pillars.cfg similarity index 100% rename from Data/Decoration/Britannia/serpent pillars.cfg rename to Distribution/Data/Decoration/Britannia/serpent pillars.cfg diff --git a/Data/Decoration/Britannia/serpentshold.cfg b/Distribution/Data/Decoration/Britannia/serpentshold.cfg similarity index 100% rename from Data/Decoration/Britannia/serpentshold.cfg rename to Distribution/Data/Decoration/Britannia/serpentshold.cfg diff --git a/Data/Decoration/Britannia/shame.cfg b/Distribution/Data/Decoration/Britannia/shame.cfg similarity index 100% rename from Data/Decoration/Britannia/shame.cfg rename to Distribution/Data/Decoration/Britannia/shame.cfg diff --git a/Data/Decoration/Britannia/shrines.cfg b/Distribution/Data/Decoration/Britannia/shrines.cfg similarity index 100% rename from Data/Decoration/Britannia/shrines.cfg rename to Distribution/Data/Decoration/Britannia/shrines.cfg diff --git a/Data/Decoration/Britannia/skara.cfg b/Distribution/Data/Decoration/Britannia/skara.cfg similarity index 100% rename from Data/Decoration/Britannia/skara.cfg rename to Distribution/Data/Decoration/Britannia/skara.cfg diff --git a/Data/Decoration/Britannia/solen matriarch quest.cfg b/Distribution/Data/Decoration/Britannia/solen matriarch quest.cfg similarity index 100% rename from Data/Decoration/Britannia/solen matriarch quest.cfg rename to Distribution/Data/Decoration/Britannia/solen matriarch quest.cfg diff --git a/Data/Decoration/Britannia/study of solen quest.cfg b/Distribution/Data/Decoration/Britannia/study of solen quest.cfg similarity index 100% rename from Data/Decoration/Britannia/study of solen quest.cfg rename to Distribution/Data/Decoration/Britannia/study of solen quest.cfg diff --git a/Data/Decoration/Britannia/trinsic.cfg b/Distribution/Data/Decoration/Britannia/trinsic.cfg similarity index 100% rename from Data/Decoration/Britannia/trinsic.cfg rename to Distribution/Data/Decoration/Britannia/trinsic.cfg diff --git a/Data/Decoration/Britannia/vesper.cfg b/Distribution/Data/Decoration/Britannia/vesper.cfg similarity index 100% rename from Data/Decoration/Britannia/vesper.cfg rename to Distribution/Data/Decoration/Britannia/vesper.cfg diff --git a/Data/Decoration/Britannia/wind.cfg b/Distribution/Data/Decoration/Britannia/wind.cfg similarity index 100% rename from Data/Decoration/Britannia/wind.cfg rename to Distribution/Data/Decoration/Britannia/wind.cfg diff --git a/Data/Decoration/Britannia/witch apprentice quest.cfg b/Distribution/Data/Decoration/Britannia/witch apprentice quest.cfg similarity index 100% rename from Data/Decoration/Britannia/witch apprentice quest.cfg rename to Distribution/Data/Decoration/Britannia/witch apprentice quest.cfg diff --git a/Data/Decoration/Britannia/yew.cfg b/Distribution/Data/Decoration/Britannia/yew.cfg similarity index 100% rename from Data/Decoration/Britannia/yew.cfg rename to Distribution/Data/Decoration/Britannia/yew.cfg diff --git a/Data/Decoration/Felucca/_champion teleporters.cfg b/Distribution/Data/Decoration/Felucca/_champion teleporters.cfg similarity index 100% rename from Data/Decoration/Felucca/_champion teleporters.cfg rename to Distribution/Data/Decoration/Felucca/_champion teleporters.cfg diff --git a/Data/Decoration/Felucca/_star room.cfg b/Distribution/Data/Decoration/Felucca/_star room.cfg similarity index 100% rename from Data/Decoration/Felucca/_star room.cfg rename to Distribution/Data/Decoration/Felucca/_star room.cfg diff --git a/Data/Decoration/Felucca/ambitious solen queen quest.cfg b/Distribution/Data/Decoration/Felucca/ambitious solen queen quest.cfg similarity index 100% rename from Data/Decoration/Felucca/ambitious solen queen quest.cfg rename to Distribution/Data/Decoration/Felucca/ambitious solen queen quest.cfg diff --git a/Data/Decoration/Felucca/khaldun entrance.cfg b/Distribution/Data/Decoration/Felucca/khaldun entrance.cfg similarity index 100% rename from Data/Decoration/Felucca/khaldun entrance.cfg rename to Distribution/Data/Decoration/Felucca/khaldun entrance.cfg diff --git a/Data/Decoration/Felucca/khaldun.cfg b/Distribution/Data/Decoration/Felucca/khaldun.cfg similarity index 100% rename from Data/Decoration/Felucca/khaldun.cfg rename to Distribution/Data/Decoration/Felucca/khaldun.cfg diff --git a/Data/Decoration/Felucca/ocllo.cfg b/Distribution/Data/Decoration/Felucca/ocllo.cfg similarity index 100% rename from Data/Decoration/Felucca/ocllo.cfg rename to Distribution/Data/Decoration/Felucca/ocllo.cfg diff --git a/Data/Decoration/Felucca/solen matriarch quest.cfg b/Distribution/Data/Decoration/Felucca/solen matriarch quest.cfg similarity index 100% rename from Data/Decoration/Felucca/solen matriarch quest.cfg rename to Distribution/Data/Decoration/Felucca/solen matriarch quest.cfg diff --git a/Data/Decoration/Felucca/yew.cfg b/Distribution/Data/Decoration/Felucca/yew.cfg similarity index 100% rename from Data/Decoration/Felucca/yew.cfg rename to Distribution/Data/Decoration/Felucca/yew.cfg diff --git a/Data/Decoration/Ilshenar/_blood.cfg b/Distribution/Data/Decoration/Ilshenar/_blood.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_blood.cfg rename to Distribution/Data/Decoration/Ilshenar/_blood.cfg diff --git a/Data/Decoration/Ilshenar/_central.cfg b/Distribution/Data/Decoration/Ilshenar/_central.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_central.cfg rename to Distribution/Data/Decoration/Ilshenar/_central.cfg diff --git a/Data/Decoration/Ilshenar/_exodus.cfg b/Distribution/Data/Decoration/Ilshenar/_exodus.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_exodus.cfg rename to Distribution/Data/Decoration/Ilshenar/_exodus.cfg diff --git a/Data/Decoration/Ilshenar/_gwenno.cfg b/Distribution/Data/Decoration/Ilshenar/_gwenno.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_gwenno.cfg rename to Distribution/Data/Decoration/Ilshenar/_gwenno.cfg diff --git a/Data/Decoration/Ilshenar/_ratcave.cfg b/Distribution/Data/Decoration/Ilshenar/_ratcave.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_ratcave.cfg rename to Distribution/Data/Decoration/Ilshenar/_ratcave.cfg diff --git a/Data/Decoration/Ilshenar/_regvolom.cfg b/Distribution/Data/Decoration/Ilshenar/_regvolom.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_regvolom.cfg rename to Distribution/Data/Decoration/Ilshenar/_regvolom.cfg diff --git a/Data/Decoration/Ilshenar/_serpentine.cfg b/Distribution/Data/Decoration/Ilshenar/_serpentine.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_serpentine.cfg rename to Distribution/Data/Decoration/Ilshenar/_serpentine.cfg diff --git a/Data/Decoration/Ilshenar/_sheepfarm.cfg b/Distribution/Data/Decoration/Ilshenar/_sheepfarm.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_sheepfarm.cfg rename to Distribution/Data/Decoration/Ilshenar/_sheepfarm.cfg diff --git a/Data/Decoration/Ilshenar/_sorcerers.cfg b/Distribution/Data/Decoration/Ilshenar/_sorcerers.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_sorcerers.cfg rename to Distribution/Data/Decoration/Ilshenar/_sorcerers.cfg diff --git a/Data/Decoration/Ilshenar/_terortskitas.cfg b/Distribution/Data/Decoration/Ilshenar/_terortskitas.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_terortskitas.cfg rename to Distribution/Data/Decoration/Ilshenar/_terortskitas.cfg diff --git a/Data/Decoration/Ilshenar/_twinoaks.cfg b/Distribution/Data/Decoration/Ilshenar/_twinoaks.cfg similarity index 100% rename from Data/Decoration/Ilshenar/_twinoaks.cfg rename to Distribution/Data/Decoration/Ilshenar/_twinoaks.cfg diff --git a/Data/Decoration/Ilshenar/camp.cfg b/Distribution/Data/Decoration/Ilshenar/camp.cfg similarity index 100% rename from Data/Decoration/Ilshenar/camp.cfg rename to Distribution/Data/Decoration/Ilshenar/camp.cfg diff --git a/Data/Decoration/Ilshenar/camp2.cfg b/Distribution/Data/Decoration/Ilshenar/camp2.cfg similarity index 100% rename from Data/Decoration/Ilshenar/camp2.cfg rename to Distribution/Data/Decoration/Ilshenar/camp2.cfg diff --git a/Data/Decoration/Ilshenar/enslavedgargs.cfg b/Distribution/Data/Decoration/Ilshenar/enslavedgargs.cfg similarity index 100% rename from Data/Decoration/Ilshenar/enslavedgargs.cfg rename to Distribution/Data/Decoration/Ilshenar/enslavedgargs.cfg diff --git a/Data/Decoration/Ilshenar/gargoylecity.cfg b/Distribution/Data/Decoration/Ilshenar/gargoylecity.cfg similarity index 100% rename from Data/Decoration/Ilshenar/gargoylecity.cfg rename to Distribution/Data/Decoration/Ilshenar/gargoylecity.cfg diff --git a/Data/Decoration/Ilshenar/golemsandjukas.cfg b/Distribution/Data/Decoration/Ilshenar/golemsandjukas.cfg similarity index 100% rename from Data/Decoration/Ilshenar/golemsandjukas.cfg rename to Distribution/Data/Decoration/Ilshenar/golemsandjukas.cfg diff --git a/Data/Decoration/Ilshenar/lakeshire.cfg b/Distribution/Data/Decoration/Ilshenar/lakeshire.cfg similarity index 100% rename from Data/Decoration/Ilshenar/lakeshire.cfg rename to Distribution/Data/Decoration/Ilshenar/lakeshire.cfg diff --git a/Data/Decoration/Ilshenar/meercatacombs.cfg b/Distribution/Data/Decoration/Ilshenar/meercatacombs.cfg similarity index 100% rename from Data/Decoration/Ilshenar/meercatacombs.cfg rename to Distribution/Data/Decoration/Ilshenar/meercatacombs.cfg diff --git a/Data/Decoration/Ilshenar/misc.cfg b/Distribution/Data/Decoration/Ilshenar/misc.cfg similarity index 100% rename from Data/Decoration/Ilshenar/misc.cfg rename to Distribution/Data/Decoration/Ilshenar/misc.cfg diff --git a/Data/Decoration/Ilshenar/mistas.cfg b/Distribution/Data/Decoration/Ilshenar/mistas.cfg similarity index 100% rename from Data/Decoration/Ilshenar/mistas.cfg rename to Distribution/Data/Decoration/Ilshenar/mistas.cfg diff --git a/Data/Decoration/Ilshenar/patches.cfg b/Distribution/Data/Decoration/Ilshenar/patches.cfg similarity index 100% rename from Data/Decoration/Ilshenar/patches.cfg rename to Distribution/Data/Decoration/Ilshenar/patches.cfg diff --git a/Data/Decoration/Ilshenar/ratfortress.cfg b/Distribution/Data/Decoration/Ilshenar/ratfortress.cfg similarity index 100% rename from Data/Decoration/Ilshenar/ratfortress.cfg rename to Distribution/Data/Decoration/Ilshenar/ratfortress.cfg diff --git a/Data/Decoration/Ilshenar/savagecamp.cfg b/Distribution/Data/Decoration/Ilshenar/savagecamp.cfg similarity index 100% rename from Data/Decoration/Ilshenar/savagecamp.cfg rename to Distribution/Data/Decoration/Ilshenar/savagecamp.cfg diff --git a/Data/Decoration/Ilshenar/shrines.cfg b/Distribution/Data/Decoration/Ilshenar/shrines.cfg similarity index 100% rename from Data/Decoration/Ilshenar/shrines.cfg rename to Distribution/Data/Decoration/Ilshenar/shrines.cfg diff --git a/Data/Decoration/Ilshenar/vinculuminn.cfg b/Distribution/Data/Decoration/Ilshenar/vinculuminn.cfg similarity index 100% rename from Data/Decoration/Ilshenar/vinculuminn.cfg rename to Distribution/Data/Decoration/Ilshenar/vinculuminn.cfg diff --git a/Data/Decoration/Ilshenar/wispdungeon.cfg b/Distribution/Data/Decoration/Ilshenar/wispdungeon.cfg similarity index 100% rename from Data/Decoration/Ilshenar/wispdungeon.cfg rename to Distribution/Data/Decoration/Ilshenar/wispdungeon.cfg diff --git a/Data/Decoration/Malas/_luna.cfg b/Distribution/Data/Decoration/Malas/_luna.cfg similarity index 100% rename from Data/Decoration/Malas/_luna.cfg rename to Distribution/Data/Decoration/Malas/_luna.cfg diff --git a/Data/Decoration/Malas/_umbra.cfg b/Distribution/Data/Decoration/Malas/_umbra.cfg similarity index 100% rename from Data/Decoration/Malas/_umbra.cfg rename to Distribution/Data/Decoration/Malas/_umbra.cfg diff --git a/Data/Decoration/Malas/dark tides quest.cfg b/Distribution/Data/Decoration/Malas/dark tides quest.cfg similarity index 100% rename from Data/Decoration/Malas/dark tides quest.cfg rename to Distribution/Data/Decoration/Malas/dark tides quest.cfg diff --git a/Data/Decoration/Malas/doom.cfg b/Distribution/Data/Decoration/Malas/doom.cfg similarity index 100% rename from Data/Decoration/Malas/doom.cfg rename to Distribution/Data/Decoration/Malas/doom.cfg diff --git a/Data/Decoration/Malas/emino's undertaking quest.cfg b/Distribution/Data/Decoration/Malas/emino's undertaking quest.cfg similarity index 100% rename from Data/Decoration/Malas/emino's undertaking quest.cfg rename to Distribution/Data/Decoration/Malas/emino's undertaking quest.cfg diff --git a/Data/Decoration/Malas/haochi's trials quest.cfg b/Distribution/Data/Decoration/Malas/haochi's trials quest.cfg similarity index 100% rename from Data/Decoration/Malas/haochi's trials quest.cfg rename to Distribution/Data/Decoration/Malas/haochi's trials quest.cfg diff --git a/Data/Decoration/Malas/luna.cfg b/Distribution/Data/Decoration/Malas/luna.cfg similarity index 100% rename from Data/Decoration/Malas/luna.cfg rename to Distribution/Data/Decoration/Malas/luna.cfg diff --git a/Data/Decoration/Malas/markcontainers.cfg b/Distribution/Data/Decoration/Malas/markcontainers.cfg similarity index 100% rename from Data/Decoration/Malas/markcontainers.cfg rename to Distribution/Data/Decoration/Malas/markcontainers.cfg diff --git a/Data/Decoration/Malas/summoning quest.cfg b/Distribution/Data/Decoration/Malas/summoning quest.cfg similarity index 100% rename from Data/Decoration/Malas/summoning quest.cfg rename to Distribution/Data/Decoration/Malas/summoning quest.cfg diff --git a/Data/Decoration/RuinedMaginciaFel/Mag-Fel.cfg b/Distribution/Data/Decoration/RuinedMaginciaFel/Mag-Fel.cfg similarity index 100% rename from Data/Decoration/RuinedMaginciaFel/Mag-Fel.cfg rename to Distribution/Data/Decoration/RuinedMaginciaFel/Mag-Fel.cfg diff --git a/Data/Decoration/RuinedMaginciaTram/Mag-Tram.cfg b/Distribution/Data/Decoration/RuinedMaginciaTram/Mag-Tram.cfg similarity index 100% rename from Data/Decoration/RuinedMaginciaTram/Mag-Tram.cfg rename to Distribution/Data/Decoration/RuinedMaginciaTram/Mag-Tram.cfg diff --git a/Data/Decoration/Tokuno/terrible hatchlings quest.cfg b/Distribution/Data/Decoration/Tokuno/terrible hatchlings quest.cfg similarity index 100% rename from Data/Decoration/Tokuno/terrible hatchlings quest.cfg rename to Distribution/Data/Decoration/Tokuno/terrible hatchlings quest.cfg diff --git a/Data/Decoration/Tokuno/tokuno.cfg b/Distribution/Data/Decoration/Tokuno/tokuno.cfg similarity index 100% rename from Data/Decoration/Tokuno/tokuno.cfg rename to Distribution/Data/Decoration/Tokuno/tokuno.cfg diff --git a/Data/Decoration/Tokuno/treasures of tokuno.cfg b/Distribution/Data/Decoration/Tokuno/treasures of tokuno.cfg similarity index 100% rename from Data/Decoration/Tokuno/treasures of tokuno.cfg rename to Distribution/Data/Decoration/Tokuno/treasures of tokuno.cfg diff --git a/Data/Decoration/Trammel/_haven additions.cfg b/Distribution/Data/Decoration/Trammel/_haven additions.cfg similarity index 100% rename from Data/Decoration/Trammel/_haven additions.cfg rename to Distribution/Data/Decoration/Trammel/_haven additions.cfg diff --git a/Data/Decoration/Trammel/_minoc camp.cfg b/Distribution/Data/Decoration/Trammel/_minoc camp.cfg similarity index 100% rename from Data/Decoration/Trammel/_minoc camp.cfg rename to Distribution/Data/Decoration/Trammel/_minoc camp.cfg diff --git a/Data/Decoration/Trammel/ambitious solen queen quest.cfg b/Distribution/Data/Decoration/Trammel/ambitious solen queen quest.cfg similarity index 100% rename from Data/Decoration/Trammel/ambitious solen queen quest.cfg rename to Distribution/Data/Decoration/Trammel/ambitious solen queen quest.cfg diff --git a/Data/Decoration/Trammel/collector quest.cfg b/Distribution/Data/Decoration/Trammel/collector quest.cfg similarity index 100% rename from Data/Decoration/Trammel/collector quest.cfg rename to Distribution/Data/Decoration/Trammel/collector quest.cfg diff --git a/Data/Decoration/Trammel/haven.cfg b/Distribution/Data/Decoration/Trammel/haven.cfg similarity index 100% rename from Data/Decoration/Trammel/haven.cfg rename to Distribution/Data/Decoration/Trammel/haven.cfg diff --git a/Data/Decoration/Trammel/magincia.cfg b/Distribution/Data/Decoration/Trammel/magincia.cfg similarity index 100% rename from Data/Decoration/Trammel/magincia.cfg rename to Distribution/Data/Decoration/Trammel/magincia.cfg diff --git a/Data/Decoration/Trammel/solen matriarch quest.cfg b/Distribution/Data/Decoration/Trammel/solen matriarch quest.cfg similarity index 100% rename from Data/Decoration/Trammel/solen matriarch quest.cfg rename to Distribution/Data/Decoration/Trammel/solen matriarch quest.cfg diff --git a/Data/Decoration/Trammel/uzeraan turmoil quest.cfg b/Distribution/Data/Decoration/Trammel/uzeraan turmoil quest.cfg similarity index 100% rename from Data/Decoration/Trammel/uzeraan turmoil quest.cfg rename to Distribution/Data/Decoration/Trammel/uzeraan turmoil quest.cfg diff --git a/Data/Decoration/Trammel/yew.cfg b/Distribution/Data/Decoration/Trammel/yew.cfg similarity index 100% rename from Data/Decoration/Trammel/yew.cfg rename to Distribution/Data/Decoration/Trammel/yew.cfg diff --git a/Data/Locations/felucca.xml b/Distribution/Data/Locations/felucca.xml similarity index 100% rename from Data/Locations/felucca.xml rename to Distribution/Data/Locations/felucca.xml diff --git a/Data/Locations/ilshenar.xml b/Distribution/Data/Locations/ilshenar.xml similarity index 100% rename from Data/Locations/ilshenar.xml rename to Distribution/Data/Locations/ilshenar.xml diff --git a/Data/Locations/malas.xml b/Distribution/Data/Locations/malas.xml similarity index 100% rename from Data/Locations/malas.xml rename to Distribution/Data/Locations/malas.xml diff --git a/Data/Locations/tokuno.xml b/Distribution/Data/Locations/tokuno.xml similarity index 100% rename from Data/Locations/tokuno.xml rename to Distribution/Data/Locations/tokuno.xml diff --git a/Data/Locations/trammel.xml b/Distribution/Data/Locations/trammel.xml similarity index 100% rename from Data/Locations/trammel.xml rename to Distribution/Data/Locations/trammel.xml diff --git a/Data/MLQuests.cfg b/Distribution/Data/MLQuests.cfg similarity index 100% rename from Data/MLQuests.cfg rename to Distribution/Data/MLQuests.cfg diff --git a/Data/Regions.xml b/Distribution/Data/Regions.xml similarity index 100% rename from Data/Regions.xml rename to Distribution/Data/Regions.xml diff --git a/Data/SpawnDefinitions.xml b/Distribution/Data/SpawnDefinitions.xml similarity index 100% rename from Data/SpawnDefinitions.xml rename to Distribution/Data/SpawnDefinitions.xml diff --git a/Data/bodyTable.cfg b/Distribution/Data/bodyTable.cfg similarity index 100% rename from Data/bodyTable.cfg rename to Distribution/Data/bodyTable.cfg diff --git a/Data/containers.cfg b/Distribution/Data/containers.cfg similarity index 100% rename from Data/containers.cfg rename to Distribution/Data/containers.cfg diff --git a/Data/items.cfg b/Distribution/Data/items.cfg similarity index 100% rename from Data/items.cfg rename to Distribution/Data/items.cfg diff --git a/Data/mobiles.cfg b/Distribution/Data/mobiles.cfg similarity index 100% rename from Data/mobiles.cfg rename to Distribution/Data/mobiles.cfg diff --git a/Data/models.txt b/Distribution/Data/models.txt similarity index 100% rename from Data/models.txt rename to Distribution/Data/models.txt diff --git a/Data/names.xml b/Distribution/Data/names.xml similarity index 100% rename from Data/names.xml rename to Distribution/Data/names.xml diff --git a/Data/objects.xml b/Distribution/Data/objects.xml similarity index 100% rename from Data/objects.xml rename to Distribution/Data/objects.xml diff --git a/Data/pageresponse.cfg b/Distribution/Data/pageresponse.cfg similarity index 100% rename from Data/pageresponse.cfg rename to Distribution/Data/pageresponse.cfg diff --git a/Data/shrink.cfg b/Distribution/Data/shrink.cfg similarity index 100% rename from Data/shrink.cfg rename to Distribution/Data/shrink.cfg diff --git a/Data/signs.cfg b/Distribution/Data/signs.cfg similarity index 100% rename from Data/signs.cfg rename to Distribution/Data/signs.cfg diff --git a/Data/treasure.cfg b/Distribution/Data/treasure.cfg similarity index 100% rename from Data/treasure.cfg rename to Distribution/Data/treasure.cfg diff --git a/ModernUO.sln b/ModernUO.sln new file mode 100644 index 000000000..deab80f56 --- /dev/null +++ b/ModernUO.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29102.190 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Projects\Server\Server.csproj", "{5E93BB35-3661-4822-9A8A-859726BAD87F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scripts", "Projects\Scripts\Scripts.csproj", "{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|Any CPU.Build.0 = Release|Any CPU + {5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|Any CPU.Build.0 = Release|Any CPU + {83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|Any CPU.Build.0 = Release|Any CPU + {83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8F69EF13-E193-40B9-BA9F-4862A9F0C038} + EndGlobalSection +EndGlobal diff --git a/Scripts/Accounting/AccessRestrictions.cs b/Projects/Scripts/Accounting/AccessRestrictions.cs similarity index 100% rename from Scripts/Accounting/AccessRestrictions.cs rename to Projects/Scripts/Accounting/AccessRestrictions.cs diff --git a/Scripts/Accounting/Account.cs b/Projects/Scripts/Accounting/Account.cs similarity index 94% rename from Scripts/Accounting/Account.cs rename to Projects/Scripts/Accounting/Account.cs index 1f23a2d22..e8e75fa4b 100644 --- a/Scripts/Accounting/Account.cs +++ b/Projects/Scripts/Accounting/Account.cs @@ -807,17 +807,15 @@ namespace Server.Accounting return list; } - /// - /// Checks if a specific NetState is allowed access to this account. - /// - /// NetState instance to check. - /// True if allowed, false if not. - public bool HasAccess( NetState ns ) - { - return ( ns != null && HasAccess( ns.Address ) ); - } + /// + /// Checks if a specific NetState is allowed access to this account. + /// + /// NetState instance to check. + /// True if allowed, false if not. + public bool HasAccess(NetState ns) => ns != null && HasAccess(ns.Address); - public bool HasAccess( IPAddress ipAddress ) { + public bool HasAccess( IPAddress ipAddress ) + { AccessLevel level = AccountHandler.LockdownLevel; if ( level > AccessLevel.Player ) @@ -825,9 +823,7 @@ namespace Server.Accounting bool hasAccess = false; if ( m_AccessLevel >= level ) - { hasAccess = true; - } else { for ( int i = 0; !hasAccess && i < Length; ++i ) @@ -839,11 +835,13 @@ namespace Server.Accounting } } - if ( !hasAccess ) + Console.WriteLine("{0} {1}", hasAccess ? "yes" : "no", m_AccessLevel); + + if ( !hasAccess ) return false; } - bool accessAllowed = ( IPRestrictions.Length == 0 || IPLimiter.IsExempt( ipAddress ) ); + bool accessAllowed = IPRestrictions.Length == 0 || IPLimiter.IsExempt( ipAddress ); for ( int i = 0; !accessAllowed && i < IPRestrictions.Length; ++i ) accessAllowed = Utility.IPMatch( IPRestrictions[i], ipAddress ); @@ -903,9 +901,8 @@ namespace Server.Accounting public bool CheckAccess( IPAddress ipAddress ) { bool hasAccess = HasAccess( ipAddress ); - if ( hasAccess ) { + if ( hasAccess ) LogAccess( ipAddress ); - } return hasAccess; } diff --git a/Scripts/Accounting/AccountAttackLimiter.cs b/Projects/Scripts/Accounting/AccountAttackLimiter.cs similarity index 87% rename from Scripts/Accounting/AccountAttackLimiter.cs rename to Projects/Scripts/Accounting/AccountAttackLimiter.cs index cc516295c..742fe0ad7 100644 --- a/Scripts/Accounting/AccountAttackLimiter.cs +++ b/Projects/Scripts/Accounting/AccountAttackLimiter.cs @@ -22,14 +22,16 @@ namespace Server.Accounting PacketHandlers.RegisterThrottler(0xCF, Throttle_Callback); } - public static bool Throttle_Callback(NetState ns) + public static TimeSpan Throttle_Callback(NetState ns) { InvalidAccountAccessLog accessLog = FindAccessLog(ns); if (accessLog == null) - return true; + return TimeSpan.Zero; - return DateTime.UtcNow >= accessLog.LastAccessTime + ComputeThrottle(accessLog.Counts); + DateTime date = DateTime.UtcNow; + DateTime access = accessLog.LastAccessTime + ComputeThrottle(accessLog.Counts); + return date >= access ? TimeSpan.Zero : date - access; } public static InvalidAccountAccessLog FindAccessLog(NetState ns) @@ -126,4 +128,4 @@ namespace Server.Accounting LastAccessTime = DateTime.UtcNow; } } -} \ No newline at end of file +} diff --git a/Scripts/Accounting/AccountComment.cs b/Projects/Scripts/Accounting/AccountComment.cs similarity index 100% rename from Scripts/Accounting/AccountComment.cs rename to Projects/Scripts/Accounting/AccountComment.cs diff --git a/Scripts/Accounting/AccountHandler.cs b/Projects/Scripts/Accounting/AccountHandler.cs similarity index 95% rename from Scripts/Accounting/AccountHandler.cs rename to Projects/Scripts/Accounting/AccountHandler.cs index d26612fb0..21ed489c1 100644 --- a/Scripts/Accounting/AccountHandler.cs +++ b/Projects/Scripts/Accounting/AccountHandler.cs @@ -315,8 +315,8 @@ namespace Server.Misc if (!(Accounts.GetAccount(un) is Account acct)) { - if (AutoAccountCreation && un.Trim().Length > 0 - ) // To prevent someone from making an account of just '' or a bunch of meaningless spaces + // To prevent someone from making an account of just '' or a bunch of meaningless spaces + if (AutoAccountCreation && un.Trim().Length > 0) { e.State.Account = acct = CreateAccount(e.State, un, pw); e.Accepted = acct?.CheckAccess(e.State) ?? false; diff --git a/Scripts/Accounting/AccountTag.cs b/Projects/Scripts/Accounting/AccountTag.cs similarity index 100% rename from Scripts/Accounting/AccountTag.cs rename to Projects/Scripts/Accounting/AccountTag.cs diff --git a/Scripts/Accounting/Accounts.cs b/Projects/Scripts/Accounting/Accounts.cs similarity index 100% rename from Scripts/Accounting/Accounts.cs rename to Projects/Scripts/Accounting/Accounts.cs diff --git a/Scripts/Accounting/Firewall.cs b/Projects/Scripts/Accounting/Firewall.cs similarity index 100% rename from Scripts/Accounting/Firewall.cs rename to Projects/Scripts/Accounting/Firewall.cs diff --git a/Scripts/Accounting/IPLimiter.cs b/Projects/Scripts/Accounting/IPLimiter.cs similarity index 100% rename from Scripts/Accounting/IPLimiter.cs rename to Projects/Scripts/Accounting/IPLimiter.cs diff --git a/Scripts/Commands/Add.cs b/Projects/Scripts/Commands/Add.cs similarity index 96% rename from Scripts/Commands/Add.cs rename to Projects/Scripts/Commands/Add.cs index 55bc82d0f..fddc3a453 100644 --- a/Scripts/Commands/Add.cs +++ b/Projects/Scripts/Commands/Add.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Reflection; using System.Text; using Server.Items; diff --git a/Scripts/Commands/Attributes.cs b/Projects/Scripts/Commands/Attributes.cs similarity index 100% rename from Scripts/Commands/Attributes.cs rename to Projects/Scripts/Commands/Attributes.cs diff --git a/Scripts/Commands/Batch.cs b/Projects/Scripts/Commands/Batch.cs similarity index 100% rename from Scripts/Commands/Batch.cs rename to Projects/Scripts/Commands/Batch.cs diff --git a/Scripts/Commands/BoundingBoxPicker.cs b/Projects/Scripts/Commands/BoundingBoxPicker.cs similarity index 100% rename from Scripts/Commands/BoundingBoxPicker.cs rename to Projects/Scripts/Commands/BoundingBoxPicker.cs diff --git a/Scripts/Commands/ConvertPlayers.cs b/Projects/Scripts/Commands/ConvertPlayers.cs similarity index 100% rename from Scripts/Commands/ConvertPlayers.cs rename to Projects/Scripts/Commands/ConvertPlayers.cs diff --git a/Scripts/Commands/Decorate.cs b/Projects/Scripts/Commands/Decorate.cs similarity index 100% rename from Scripts/Commands/Decorate.cs rename to Projects/Scripts/Commands/Decorate.cs diff --git a/Scripts/Commands/DecorateMag.cs b/Projects/Scripts/Commands/DecorateMag.cs similarity index 100% rename from Scripts/Commands/DecorateMag.cs rename to Projects/Scripts/Commands/DecorateMag.cs diff --git a/Scripts/Commands/Docs.cs b/Projects/Scripts/Commands/Docs.cs similarity index 97% rename from Scripts/Commands/Docs.cs rename to Projects/Scripts/Commands/Docs.cs index 47e60a2dd..90c37761a 100644 --- a/Scripts/Commands/Docs.cs +++ b/Projects/Scripts/Commands/Docs.cs @@ -28,7 +28,6 @@ namespace Server.Commands World.Broadcast(0x35, true, "Documentation is being generated, please wait."); Console.WriteLine("Documentation is being generated, please wait."); - NetState.FlushAll(); NetState.Pause(); DateTime startTime = DateTime.UtcNow; diff --git a/Scripts/Commands/DragEffects.cs b/Projects/Scripts/Commands/DragEffects.cs similarity index 100% rename from Scripts/Commands/DragEffects.cs rename to Projects/Scripts/Commands/DragEffects.cs diff --git a/Scripts/Commands/Dupe.cs b/Projects/Scripts/Commands/Dupe.cs similarity index 100% rename from Scripts/Commands/Dupe.cs rename to Projects/Scripts/Commands/Dupe.cs diff --git a/Scripts/Commands/ExportWSC.cs b/Projects/Scripts/Commands/ExportWSC.cs similarity index 100% rename from Scripts/Commands/ExportWSC.cs rename to Projects/Scripts/Commands/ExportWSC.cs diff --git a/Scripts/Commands/GenCategorization.cs b/Projects/Scripts/Commands/GenCategorization.cs similarity index 100% rename from Scripts/Commands/GenCategorization.cs rename to Projects/Scripts/Commands/GenCategorization.cs diff --git a/Scripts/Commands/GenTeleporter.cs b/Projects/Scripts/Commands/GenTeleporter.cs similarity index 100% rename from Scripts/Commands/GenTeleporter.cs rename to Projects/Scripts/Commands/GenTeleporter.cs diff --git a/Scripts/Commands/Generic/Commands/BaseCommand.cs b/Projects/Scripts/Commands/Generic/Commands/BaseCommand.cs similarity index 100% rename from Scripts/Commands/Generic/Commands/BaseCommand.cs rename to Projects/Scripts/Commands/Generic/Commands/BaseCommand.cs diff --git a/Scripts/Commands/Generic/Commands/Commands.cs b/Projects/Scripts/Commands/Generic/Commands/Commands.cs similarity index 100% rename from Scripts/Commands/Generic/Commands/Commands.cs rename to Projects/Scripts/Commands/Generic/Commands/Commands.cs diff --git a/Scripts/Commands/Generic/Commands/DesignInsert.cs b/Projects/Scripts/Commands/Generic/Commands/DesignInsert.cs similarity index 100% rename from Scripts/Commands/Generic/Commands/DesignInsert.cs rename to Projects/Scripts/Commands/Generic/Commands/DesignInsert.cs diff --git a/Scripts/Commands/Generic/Commands/Interface.cs b/Projects/Scripts/Commands/Generic/Commands/Interface.cs similarity index 100% rename from Scripts/Commands/Generic/Commands/Interface.cs rename to Projects/Scripts/Commands/Generic/Commands/Interface.cs diff --git a/Scripts/Commands/Generic/Extensions/BaseExtension.cs b/Projects/Scripts/Commands/Generic/Extensions/BaseExtension.cs similarity index 100% rename from Scripts/Commands/Generic/Extensions/BaseExtension.cs rename to Projects/Scripts/Commands/Generic/Extensions/BaseExtension.cs diff --git a/Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs b/Projects/Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs similarity index 94% rename from Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs rename to Projects/Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs index 66d25d7c9..6bc886c89 100644 --- a/Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs +++ b/Projects/Scripts/Commands/Generic/Extensions/Compilers/ConditionalCompiler.cs @@ -160,6 +160,10 @@ namespace Server.Commands.Generic FieldAttributes.Private | FieldAttributes.InitOnly ); +// parseMethod.Invoke(null, +// parseArgs.Length == 2 ? new object[] {toParse, (int) parseArgs[1]} : new object[] {toParse}); + + il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldstr, toParse); diff --git a/Scripts/Commands/Generic/Extensions/Compilers/DistinctCompiler.cs b/Projects/Scripts/Commands/Generic/Extensions/Compilers/DistinctCompiler.cs similarity index 100% rename from Scripts/Commands/Generic/Extensions/Compilers/DistinctCompiler.cs rename to Projects/Scripts/Commands/Generic/Extensions/Compilers/DistinctCompiler.cs diff --git a/Scripts/Commands/Generic/Extensions/Compilers/SortCompiler.cs b/Projects/Scripts/Commands/Generic/Extensions/Compilers/SortCompiler.cs similarity index 100% rename from Scripts/Commands/Generic/Extensions/Compilers/SortCompiler.cs rename to Projects/Scripts/Commands/Generic/Extensions/Compilers/SortCompiler.cs diff --git a/Scripts/Commands/Generic/Extensions/DistinctExtension.cs b/Projects/Scripts/Commands/Generic/Extensions/DistinctExtension.cs similarity index 89% rename from Scripts/Commands/Generic/Extensions/DistinctExtension.cs rename to Projects/Scripts/Commands/Generic/Extensions/DistinctExtension.cs index bc976c286..bc50b0168 100644 --- a/Scripts/Commands/Generic/Extensions/DistinctExtension.cs +++ b/Projects/Scripts/Commands/Generic/Extensions/DistinctExtension.cs @@ -6,7 +6,7 @@ namespace Server.Commands.Generic public sealed class DistinctExtension : BaseExtension { public static ExtensionInfo ExtInfo = - new ExtensionInfo(30, "Distinct", -1, delegate { return new DistinctExtension(); }); + new ExtensionInfo(30, "Distinct", -1, () => new DistinctExtension()); private IComparer m_Comparer; @@ -36,7 +36,7 @@ namespace Server.Commands.Generic } if (assembly == null) - assembly = new AssemblyEmitter("__dynamic", false); + assembly = new AssemblyEmitter("__dynamic"); m_Comparer = DistinctCompiler.Compile(assembly, baseType, m_Properties.ToArray()); } @@ -81,4 +81,4 @@ namespace Server.Commands.Generic } } } -} \ No newline at end of file +} diff --git a/Scripts/Commands/Generic/Extensions/LimitExtension.cs b/Projects/Scripts/Commands/Generic/Extensions/LimitExtension.cs similarity index 100% rename from Scripts/Commands/Generic/Extensions/LimitExtension.cs rename to Projects/Scripts/Commands/Generic/Extensions/LimitExtension.cs diff --git a/Scripts/Commands/Generic/Extensions/SortExtension.cs b/Projects/Scripts/Commands/Generic/Extensions/SortExtension.cs similarity index 93% rename from Scripts/Commands/Generic/Extensions/SortExtension.cs rename to Projects/Scripts/Commands/Generic/Extensions/SortExtension.cs index 4988421cf..fe8613240 100644 --- a/Scripts/Commands/Generic/Extensions/SortExtension.cs +++ b/Projects/Scripts/Commands/Generic/Extensions/SortExtension.cs @@ -35,7 +35,7 @@ namespace Server.Commands.Generic } if (assembly == null) - assembly = new AssemblyEmitter("__dynamic", false); + assembly = new AssemblyEmitter("__dynamic"); m_Comparer = SortCompiler.Compile(assembly, baseType, m_Orders.ToArray()); } @@ -100,4 +100,4 @@ namespace Server.Commands.Generic list.Sort(m_Comparer); } } -} \ No newline at end of file +} diff --git a/Scripts/Commands/Generic/Extensions/WhereExtension.cs b/Projects/Scripts/Commands/Generic/Extensions/WhereExtension.cs similarity index 100% rename from Scripts/Commands/Generic/Extensions/WhereExtension.cs rename to Projects/Scripts/Commands/Generic/Extensions/WhereExtension.cs diff --git a/Scripts/Commands/Generic/Implementors/AreaCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/AreaCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/AreaCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/AreaCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/BaseCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/BaseCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/BaseCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/BaseCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/ContainedCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/ContainedCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/ContainedCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/ContainedCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/FacetCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/FacetCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/FacetCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/FacetCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/GlobalCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/GlobalCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/GlobalCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/GlobalCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/IPAddressCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/IPAddressCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/IPAddressCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/IPAddressCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/MultiCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/MultiCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/MultiCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/MultiCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/ObjectConditional.cs b/Projects/Scripts/Commands/Generic/Implementors/ObjectConditional.cs similarity index 94% rename from Scripts/Commands/Generic/Implementors/ObjectConditional.cs rename to Projects/Scripts/Commands/Generic/Implementors/ObjectConditional.cs index f5fe4be24..502af3c1d 100644 --- a/Scripts/Commands/Generic/Implementors/ObjectConditional.cs +++ b/Projects/Scripts/Commands/Generic/Implementors/ObjectConditional.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using CPA = Server.CommandPropertyAttribute; namespace Server.Commands.Generic { @@ -32,7 +31,7 @@ namespace Server.Commands.Generic public void Compile(ref AssemblyEmitter emitter) { if (emitter == null) - emitter = new AssemblyEmitter("__dynamic", false); + emitter = new AssemblyEmitter("__dynamic"); m_Conditionals = new IConditional[m_Conditions.Length]; @@ -247,4 +246,4 @@ namespace Server.Commands.Generic return new ObjectConditional(objectType, conditions.ToArray()); } } -} \ No newline at end of file +} diff --git a/Scripts/Commands/Generic/Implementors/OnlineCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/OnlineCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/OnlineCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/OnlineCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/RangeCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/RangeCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/RangeCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/RangeCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/RegionCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/RegionCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/RegionCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/RegionCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/ScreenCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/ScreenCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/ScreenCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/ScreenCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/SelfCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/SelfCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/SelfCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/SelfCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/SerialCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/SerialCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/SerialCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/SerialCommandImplementor.cs diff --git a/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs b/Projects/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs similarity index 100% rename from Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs rename to Projects/Scripts/Commands/Generic/Implementors/SingleCommandImplementor.cs diff --git a/Scripts/Commands/Handlers.cs b/Projects/Scripts/Commands/Handlers.cs similarity index 100% rename from Scripts/Commands/Handlers.cs rename to Projects/Scripts/Commands/Handlers.cs diff --git a/Scripts/Commands/HelpInfo.cs b/Projects/Scripts/Commands/HelpInfo.cs similarity index 100% rename from Scripts/Commands/HelpInfo.cs rename to Projects/Scripts/Commands/HelpInfo.cs diff --git a/Scripts/Commands/Logging.cs b/Projects/Scripts/Commands/Logging.cs similarity index 100% rename from Scripts/Commands/Logging.cs rename to Projects/Scripts/Commands/Logging.cs diff --git a/Scripts/Commands/Profiling.cs b/Projects/Scripts/Commands/Profiling.cs similarity index 100% rename from Scripts/Commands/Profiling.cs rename to Projects/Scripts/Commands/Profiling.cs diff --git a/Scripts/Commands/Properties.cs b/Projects/Scripts/Commands/Properties.cs similarity index 100% rename from Scripts/Commands/Properties.cs rename to Projects/Scripts/Commands/Properties.cs diff --git a/Scripts/Commands/ShardTime.cs b/Projects/Scripts/Commands/ShardTime.cs similarity index 100% rename from Scripts/Commands/ShardTime.cs rename to Projects/Scripts/Commands/ShardTime.cs diff --git a/Scripts/Commands/SignParser.cs b/Projects/Scripts/Commands/SignParser.cs similarity index 100% rename from Scripts/Commands/SignParser.cs rename to Projects/Scripts/Commands/SignParser.cs diff --git a/Scripts/Commands/Skills.cs b/Projects/Scripts/Commands/Skills.cs similarity index 100% rename from Scripts/Commands/Skills.cs rename to Projects/Scripts/Commands/Skills.cs diff --git a/Scripts/Commands/SkillsMenu.cs b/Projects/Scripts/Commands/SkillsMenu.cs similarity index 100% rename from Scripts/Commands/SkillsMenu.cs rename to Projects/Scripts/Commands/SkillsMenu.cs diff --git a/Scripts/Commands/Statics.cs b/Projects/Scripts/Commands/Statics.cs similarity index 100% rename from Scripts/Commands/Statics.cs rename to Projects/Scripts/Commands/Statics.cs diff --git a/Scripts/Commands/VisibilityList.cs b/Projects/Scripts/Commands/VisibilityList.cs similarity index 100% rename from Scripts/Commands/VisibilityList.cs rename to Projects/Scripts/Commands/VisibilityList.cs diff --git a/Scripts/Commands/Wipe.cs b/Projects/Scripts/Commands/Wipe.cs similarity index 100% rename from Scripts/Commands/Wipe.cs rename to Projects/Scripts/Commands/Wipe.cs diff --git a/Scripts/Context Menus/AddToParty.cs b/Projects/Scripts/Context Menus/AddToParty.cs similarity index 100% rename from Scripts/Context Menus/AddToParty.cs rename to Projects/Scripts/Context Menus/AddToParty.cs diff --git a/Scripts/Context Menus/AddToSpellbookEntry.cs b/Projects/Scripts/Context Menus/AddToSpellbookEntry.cs similarity index 100% rename from Scripts/Context Menus/AddToSpellbookEntry.cs rename to Projects/Scripts/Context Menus/AddToSpellbookEntry.cs diff --git a/Scripts/Context Menus/EatEntry.cs b/Projects/Scripts/Context Menus/EatEntry.cs similarity index 100% rename from Scripts/Context Menus/EatEntry.cs rename to Projects/Scripts/Context Menus/EatEntry.cs diff --git a/Scripts/Context Menus/EjectPlayer.cs b/Projects/Scripts/Context Menus/EjectPlayer.cs similarity index 100% rename from Scripts/Context Menus/EjectPlayer.cs rename to Projects/Scripts/Context Menus/EjectPlayer.cs diff --git a/Scripts/Context Menus/OpenBankEntry.cs b/Projects/Scripts/Context Menus/OpenBankEntry.cs similarity index 100% rename from Scripts/Context Menus/OpenBankEntry.cs rename to Projects/Scripts/Context Menus/OpenBankEntry.cs diff --git a/Scripts/Context Menus/TeachEntry.cs b/Projects/Scripts/Context Menus/TeachEntry.cs similarity index 100% rename from Scripts/Context Menus/TeachEntry.cs rename to Projects/Scripts/Context Menus/TeachEntry.cs diff --git a/Scripts/Engines/BulkOrders/BODTarget.cs b/Projects/Scripts/Engines/BulkOrders/BODTarget.cs similarity index 100% rename from Scripts/Engines/BulkOrders/BODTarget.cs rename to Projects/Scripts/Engines/BulkOrders/BODTarget.cs diff --git a/Scripts/Engines/BulkOrders/BaseBOD.cs b/Projects/Scripts/Engines/BulkOrders/BaseBOD.cs similarity index 100% rename from Scripts/Engines/BulkOrders/BaseBOD.cs rename to Projects/Scripts/Engines/BulkOrders/BaseBOD.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBFilter.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBFilter.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBFilter.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBFilter.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBFilterGump.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBFilterGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBFilterGump.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBFilterGump.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBGump.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBGump.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBGump.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBLargeEntry.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBLargeEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBLargeEntry.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBLargeEntry.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBLargeSubEntry.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBLargeSubEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBLargeSubEntry.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBLargeSubEntry.cs diff --git a/Scripts/Engines/BulkOrders/Books/BOBSmallEntry.cs b/Projects/Scripts/Engines/BulkOrders/Books/BOBSmallEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BOBSmallEntry.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BOBSmallEntry.cs diff --git a/Scripts/Engines/BulkOrders/Books/BODBuyGump.cs b/Projects/Scripts/Engines/BulkOrders/Books/BODBuyGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BODBuyGump.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BODBuyGump.cs diff --git a/Scripts/Engines/BulkOrders/Books/BODType.cs b/Projects/Scripts/Engines/BulkOrders/Books/BODType.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BODType.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BODType.cs diff --git a/Scripts/Engines/BulkOrders/Books/BulkOrderBook.cs b/Projects/Scripts/Engines/BulkOrders/Books/BulkOrderBook.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/BulkOrderBook.cs rename to Projects/Scripts/Engines/BulkOrders/Books/BulkOrderBook.cs diff --git a/Scripts/Engines/BulkOrders/Books/IBOBEntry.cs b/Projects/Scripts/Engines/BulkOrders/Books/IBOBEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Books/IBOBEntry.cs rename to Projects/Scripts/Engines/BulkOrders/Books/IBOBEntry.cs diff --git a/Scripts/Engines/BulkOrders/BulkMaterialType.cs b/Projects/Scripts/Engines/BulkOrders/BulkMaterialType.cs similarity index 100% rename from Scripts/Engines/BulkOrders/BulkMaterialType.cs rename to Projects/Scripts/Engines/BulkOrders/BulkMaterialType.cs diff --git a/Scripts/Engines/BulkOrders/LargeBOD.cs b/Projects/Scripts/Engines/BulkOrders/LargeBOD.cs similarity index 100% rename from Scripts/Engines/BulkOrders/LargeBOD.cs rename to Projects/Scripts/Engines/BulkOrders/LargeBOD.cs diff --git a/Scripts/Engines/BulkOrders/LargeBODAcceptGump.cs b/Projects/Scripts/Engines/BulkOrders/LargeBODAcceptGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/LargeBODAcceptGump.cs rename to Projects/Scripts/Engines/BulkOrders/LargeBODAcceptGump.cs diff --git a/Scripts/Engines/BulkOrders/LargeBODGump.cs b/Projects/Scripts/Engines/BulkOrders/LargeBODGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/LargeBODGump.cs rename to Projects/Scripts/Engines/BulkOrders/LargeBODGump.cs diff --git a/Scripts/Engines/BulkOrders/LargeBulkEntry.cs b/Projects/Scripts/Engines/BulkOrders/LargeBulkEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/LargeBulkEntry.cs rename to Projects/Scripts/Engines/BulkOrders/LargeBulkEntry.cs diff --git a/Scripts/Engines/BulkOrders/LargeSmithBOD.cs b/Projects/Scripts/Engines/BulkOrders/LargeSmithBOD.cs similarity index 94% rename from Scripts/Engines/BulkOrders/LargeSmithBOD.cs rename to Projects/Scripts/Engines/BulkOrders/LargeSmithBOD.cs index 667947547..5a1ab25da 100644 --- a/Scripts/Engines/BulkOrders/LargeSmithBOD.cs +++ b/Projects/Scripts/Engines/BulkOrders/LargeSmithBOD.cs @@ -1,5 +1,3 @@ -using Mat = Server.Engines.BulkOrders.BulkMaterialType; - namespace Server.Engines.BulkOrders { public class LargeSmithBOD : LargeBOD diff --git a/Scripts/Engines/BulkOrders/LargeTailorBOD.cs b/Projects/Scripts/Engines/BulkOrders/LargeTailorBOD.cs similarity index 95% rename from Scripts/Engines/BulkOrders/LargeTailorBOD.cs rename to Projects/Scripts/Engines/BulkOrders/LargeTailorBOD.cs index 192b2c8df..bb78b8ad4 100644 --- a/Scripts/Engines/BulkOrders/LargeTailorBOD.cs +++ b/Projects/Scripts/Engines/BulkOrders/LargeTailorBOD.cs @@ -1,5 +1,3 @@ -using Mat = Server.Engines.BulkOrders.BulkMaterialType; - namespace Server.Engines.BulkOrders { public class LargeTailorBOD : LargeBOD diff --git a/Scripts/Engines/BulkOrders/Rewards.cs b/Projects/Scripts/Engines/BulkOrders/Rewards.cs similarity index 100% rename from Scripts/Engines/BulkOrders/Rewards.cs rename to Projects/Scripts/Engines/BulkOrders/Rewards.cs diff --git a/Scripts/Engines/BulkOrders/SmallBOD.cs b/Projects/Scripts/Engines/BulkOrders/SmallBOD.cs similarity index 100% rename from Scripts/Engines/BulkOrders/SmallBOD.cs rename to Projects/Scripts/Engines/BulkOrders/SmallBOD.cs diff --git a/Scripts/Engines/BulkOrders/SmallBODAcceptGump.cs b/Projects/Scripts/Engines/BulkOrders/SmallBODAcceptGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/SmallBODAcceptGump.cs rename to Projects/Scripts/Engines/BulkOrders/SmallBODAcceptGump.cs diff --git a/Scripts/Engines/BulkOrders/SmallBODGump.cs b/Projects/Scripts/Engines/BulkOrders/SmallBODGump.cs similarity index 100% rename from Scripts/Engines/BulkOrders/SmallBODGump.cs rename to Projects/Scripts/Engines/BulkOrders/SmallBODGump.cs diff --git a/Scripts/Engines/BulkOrders/SmallBulkEntry.cs b/Projects/Scripts/Engines/BulkOrders/SmallBulkEntry.cs similarity index 100% rename from Scripts/Engines/BulkOrders/SmallBulkEntry.cs rename to Projects/Scripts/Engines/BulkOrders/SmallBulkEntry.cs diff --git a/Scripts/Engines/BulkOrders/SmallSmithBOD.cs b/Projects/Scripts/Engines/BulkOrders/SmallSmithBOD.cs similarity index 95% rename from Scripts/Engines/BulkOrders/SmallSmithBOD.cs rename to Projects/Scripts/Engines/BulkOrders/SmallSmithBOD.cs index 35faf24b9..b44b841b5 100644 --- a/Scripts/Engines/BulkOrders/SmallSmithBOD.cs +++ b/Projects/Scripts/Engines/BulkOrders/SmallSmithBOD.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using Server.Engines.Craft; -using Mat = Server.Engines.BulkOrders.BulkMaterialType; namespace Server.Engines.BulkOrders { diff --git a/Scripts/Engines/BulkOrders/SmallTailorBOD.cs b/Projects/Scripts/Engines/BulkOrders/SmallTailorBOD.cs similarity index 100% rename from Scripts/Engines/BulkOrders/SmallTailorBOD.cs rename to Projects/Scripts/Engines/BulkOrders/SmallTailorBOD.cs diff --git a/Scripts/Engines/CannedEvil/ChampionAltar.cs b/Projects/Scripts/Engines/CannedEvil/ChampionAltar.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionAltar.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionAltar.cs diff --git a/Scripts/Engines/CannedEvil/ChampionPlatform.cs b/Projects/Scripts/Engines/CannedEvil/ChampionPlatform.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionPlatform.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionPlatform.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSkull.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSkull.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSkull.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSkull.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSkullBrazier.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSkullBrazier.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSkullBrazier.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSkullBrazier.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSkullPlatform.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSkullPlatform.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSkullPlatform.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSkullPlatform.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSkullType.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSkullType.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSkullType.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSkullType.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSpawn.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSpawn.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSpawn.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSpawn.cs diff --git a/Scripts/Engines/CannedEvil/ChampionSpawnType.cs b/Projects/Scripts/Engines/CannedEvil/ChampionSpawnType.cs similarity index 100% rename from Scripts/Engines/CannedEvil/ChampionSpawnType.cs rename to Projects/Scripts/Engines/CannedEvil/ChampionSpawnType.cs diff --git a/Scripts/Engines/CannedEvil/HarrowerGate.cs b/Projects/Scripts/Engines/CannedEvil/HarrowerGate.cs similarity index 100% rename from Scripts/Engines/CannedEvil/HarrowerGate.cs rename to Projects/Scripts/Engines/CannedEvil/HarrowerGate.cs diff --git a/Scripts/Engines/CannedEvil/RestartTimer.cs b/Projects/Scripts/Engines/CannedEvil/RestartTimer.cs similarity index 100% rename from Scripts/Engines/CannedEvil/RestartTimer.cs rename to Projects/Scripts/Engines/CannedEvil/RestartTimer.cs diff --git a/Scripts/Engines/CannedEvil/SliceTimer.cs b/Projects/Scripts/Engines/CannedEvil/SliceTimer.cs similarity index 100% rename from Scripts/Engines/CannedEvil/SliceTimer.cs rename to Projects/Scripts/Engines/CannedEvil/SliceTimer.cs diff --git a/Scripts/Engines/CannedEvil/StarRoomGate.cs b/Projects/Scripts/Engines/CannedEvil/StarRoomGate.cs similarity index 100% rename from Scripts/Engines/CannedEvil/StarRoomGate.cs rename to Projects/Scripts/Engines/CannedEvil/StarRoomGate.cs diff --git a/Scripts/Engines/Chat/Channel.cs b/Projects/Scripts/Engines/Chat/Channel.cs similarity index 100% rename from Scripts/Engines/Chat/Channel.cs rename to Projects/Scripts/Engines/Chat/Channel.cs diff --git a/Scripts/Engines/Chat/Chat.cs b/Projects/Scripts/Engines/Chat/Chat.cs similarity index 100% rename from Scripts/Engines/Chat/Chat.cs rename to Projects/Scripts/Engines/Chat/Chat.cs diff --git a/Scripts/Engines/Chat/ChatActionHandler.cs b/Projects/Scripts/Engines/Chat/ChatActionHandler.cs similarity index 100% rename from Scripts/Engines/Chat/ChatActionHandler.cs rename to Projects/Scripts/Engines/Chat/ChatActionHandler.cs diff --git a/Scripts/Engines/Chat/ChatActionHandlers.cs b/Projects/Scripts/Engines/Chat/ChatActionHandlers.cs similarity index 100% rename from Scripts/Engines/Chat/ChatActionHandlers.cs rename to Projects/Scripts/Engines/Chat/ChatActionHandlers.cs diff --git a/Scripts/Engines/Chat/ChatCommand.cs b/Projects/Scripts/Engines/Chat/ChatCommand.cs similarity index 100% rename from Scripts/Engines/Chat/ChatCommand.cs rename to Projects/Scripts/Engines/Chat/ChatCommand.cs diff --git a/Scripts/Engines/Chat/ChatUser.cs b/Projects/Scripts/Engines/Chat/ChatUser.cs similarity index 100% rename from Scripts/Engines/Chat/ChatUser.cs rename to Projects/Scripts/Engines/Chat/ChatUser.cs diff --git a/Scripts/Engines/Chat/Chatold.cs b/Projects/Scripts/Engines/Chat/Chatold.cs similarity index 100% rename from Scripts/Engines/Chat/Chatold.cs rename to Projects/Scripts/Engines/Chat/Chatold.cs diff --git a/Scripts/Engines/Chat/Packets.cs b/Projects/Scripts/Engines/Chat/Packets.cs similarity index 100% rename from Scripts/Engines/Chat/Packets.cs rename to Projects/Scripts/Engines/Chat/Packets.cs diff --git a/Scripts/Engines/ConPVP/AcceptDuelGump.cs b/Projects/Scripts/Engines/ConPVP/AcceptDuelGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/AcceptDuelGump.cs rename to Projects/Scripts/Engines/ConPVP/AcceptDuelGump.cs diff --git a/Scripts/Engines/ConPVP/Arena.cs b/Projects/Scripts/Engines/ConPVP/Arena.cs similarity index 100% rename from Scripts/Engines/ConPVP/Arena.cs rename to Projects/Scripts/Engines/ConPVP/Arena.cs diff --git a/Scripts/Engines/ConPVP/DuelContext.cs b/Projects/Scripts/Engines/ConPVP/DuelContext.cs similarity index 100% rename from Scripts/Engines/ConPVP/DuelContext.cs rename to Projects/Scripts/Engines/ConPVP/DuelContext.cs diff --git a/Scripts/Engines/ConPVP/DuelTeleporterAddon.cs b/Projects/Scripts/Engines/ConPVP/DuelTeleporterAddon.cs similarity index 100% rename from Scripts/Engines/ConPVP/DuelTeleporterAddon.cs rename to Projects/Scripts/Engines/ConPVP/DuelTeleporterAddon.cs diff --git a/Scripts/Engines/ConPVP/Games/BombingRun.cs b/Projects/Scripts/Engines/ConPVP/Games/BombingRun.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/BombingRun.cs rename to Projects/Scripts/Engines/ConPVP/Games/BombingRun.cs diff --git a/Scripts/Engines/ConPVP/Games/CTF.cs b/Projects/Scripts/Engines/ConPVP/Games/CTF.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/CTF.cs rename to Projects/Scripts/Engines/ConPVP/Games/CTF.cs diff --git a/Scripts/Engines/ConPVP/Games/DoubleDom.cs b/Projects/Scripts/Engines/ConPVP/Games/DoubleDom.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/DoubleDom.cs rename to Projects/Scripts/Engines/ConPVP/Games/DoubleDom.cs diff --git a/Scripts/Engines/ConPVP/Games/EventGame.cs b/Projects/Scripts/Engines/ConPVP/Games/EventGame.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/EventGame.cs rename to Projects/Scripts/Engines/ConPVP/Games/EventGame.cs diff --git a/Scripts/Engines/ConPVP/Games/KingOfTheHill.cs b/Projects/Scripts/Engines/ConPVP/Games/KingOfTheHill.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/KingOfTheHill.cs rename to Projects/Scripts/Engines/ConPVP/Games/KingOfTheHill.cs diff --git a/Scripts/Engines/ConPVP/Games/TourneyMatch.cs b/Projects/Scripts/Engines/ConPVP/Games/TourneyMatch.cs similarity index 100% rename from Scripts/Engines/ConPVP/Games/TourneyMatch.cs rename to Projects/Scripts/Engines/ConPVP/Games/TourneyMatch.cs diff --git a/Scripts/Engines/ConPVP/Gumps/AcceptTeamGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/AcceptTeamGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/AcceptTeamGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/AcceptTeamGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/ArenaGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/ArenaGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/ArenaGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/ArenaGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/BeginGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/BeginGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/BeginGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/BeginGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/ConfirmSignupGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/ConfirmSignupGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/ConfirmSignupGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/ConfirmSignupGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/DuelContextGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/DuelContextGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/DuelContextGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/DuelContextGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/LadderGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/LadderGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/LadderGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/LadderGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/ParticipantGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/ParticipantGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/ParticipantGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/ParticipantGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/PickRulesetGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/PickRulesetGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/PickRulesetGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/PickRulesetGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/ReadyGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/ReadyGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/ReadyGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/ReadyGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/ReadyUpGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/ReadyUpGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/ReadyUpGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/ReadyUpGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/RulesetGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/RulesetGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/RulesetGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/RulesetGump.cs diff --git a/Scripts/Engines/ConPVP/Gumps/TournamentBracketGump.cs b/Projects/Scripts/Engines/ConPVP/Gumps/TournamentBracketGump.cs similarity index 100% rename from Scripts/Engines/ConPVP/Gumps/TournamentBracketGump.cs rename to Projects/Scripts/Engines/ConPVP/Gumps/TournamentBracketGump.cs diff --git a/Scripts/Engines/ConPVP/Ladder.cs b/Projects/Scripts/Engines/ConPVP/Ladder.cs similarity index 100% rename from Scripts/Engines/ConPVP/Ladder.cs rename to Projects/Scripts/Engines/ConPVP/Ladder.cs diff --git a/Scripts/Engines/ConPVP/Participant.cs b/Projects/Scripts/Engines/ConPVP/Participant.cs similarity index 100% rename from Scripts/Engines/ConPVP/Participant.cs rename to Projects/Scripts/Engines/ConPVP/Participant.cs diff --git a/Scripts/Engines/ConPVP/Preferences.cs b/Projects/Scripts/Engines/ConPVP/Preferences.cs similarity index 100% rename from Scripts/Engines/ConPVP/Preferences.cs rename to Projects/Scripts/Engines/ConPVP/Preferences.cs diff --git a/Scripts/Engines/ConPVP/Ruleset.cs b/Projects/Scripts/Engines/ConPVP/Ruleset.cs similarity index 100% rename from Scripts/Engines/ConPVP/Ruleset.cs rename to Projects/Scripts/Engines/ConPVP/Ruleset.cs diff --git a/Scripts/Engines/ConPVP/RulesetLayout.cs b/Projects/Scripts/Engines/ConPVP/RulesetLayout.cs similarity index 100% rename from Scripts/Engines/ConPVP/RulesetLayout.cs rename to Projects/Scripts/Engines/ConPVP/RulesetLayout.cs diff --git a/Scripts/Engines/ConPVP/SafeZone.cs b/Projects/Scripts/Engines/ConPVP/SafeZone.cs similarity index 100% rename from Scripts/Engines/ConPVP/SafeZone.cs rename to Projects/Scripts/Engines/ConPVP/SafeZone.cs diff --git a/Scripts/Engines/ConPVP/Tournament.cs b/Projects/Scripts/Engines/ConPVP/Tournament.cs similarity index 100% rename from Scripts/Engines/ConPVP/Tournament.cs rename to Projects/Scripts/Engines/ConPVP/Tournament.cs diff --git a/Scripts/Engines/ConPVP/TournamentBracketItem.cs b/Projects/Scripts/Engines/ConPVP/TournamentBracketItem.cs similarity index 100% rename from Scripts/Engines/ConPVP/TournamentBracketItem.cs rename to Projects/Scripts/Engines/ConPVP/TournamentBracketItem.cs diff --git a/Scripts/Engines/ConPVP/TournamentController.cs b/Projects/Scripts/Engines/ConPVP/TournamentController.cs similarity index 100% rename from Scripts/Engines/ConPVP/TournamentController.cs rename to Projects/Scripts/Engines/ConPVP/TournamentController.cs diff --git a/Scripts/Engines/ConPVP/TournamentPyramid.cs b/Projects/Scripts/Engines/ConPVP/TournamentPyramid.cs similarity index 100% rename from Scripts/Engines/ConPVP/TournamentPyramid.cs rename to Projects/Scripts/Engines/ConPVP/TournamentPyramid.cs diff --git a/Scripts/Engines/ConPVP/TournamentRegistrar.cs b/Projects/Scripts/Engines/ConPVP/TournamentRegistrar.cs similarity index 100% rename from Scripts/Engines/ConPVP/TournamentRegistrar.cs rename to Projects/Scripts/Engines/ConPVP/TournamentRegistrar.cs diff --git a/Scripts/Engines/ConPVP/TournamentSignupItem.cs b/Projects/Scripts/Engines/ConPVP/TournamentSignupItem.cs similarity index 100% rename from Scripts/Engines/ConPVP/TournamentSignupItem.cs rename to Projects/Scripts/Engines/ConPVP/TournamentSignupItem.cs diff --git a/Scripts/Engines/ConPVP/TourneyParticipant.cs b/Projects/Scripts/Engines/ConPVP/TourneyParticipant.cs similarity index 100% rename from Scripts/Engines/ConPVP/TourneyParticipant.cs rename to Projects/Scripts/Engines/ConPVP/TourneyParticipant.cs diff --git a/Scripts/Engines/ConPVP/Trophy.cs b/Projects/Scripts/Engines/ConPVP/Trophy.cs similarity index 100% rename from Scripts/Engines/ConPVP/Trophy.cs rename to Projects/Scripts/Engines/ConPVP/Trophy.cs diff --git a/Scripts/Engines/Craft/Core/CraftContext.cs b/Projects/Scripts/Engines/Craft/Core/CraftContext.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftContext.cs rename to Projects/Scripts/Engines/Craft/Core/CraftContext.cs diff --git a/Scripts/Engines/Craft/Core/CraftGroup.cs b/Projects/Scripts/Engines/Craft/Core/CraftGroup.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftGroup.cs rename to Projects/Scripts/Engines/Craft/Core/CraftGroup.cs diff --git a/Scripts/Engines/Craft/Core/CraftGroupCol.cs b/Projects/Scripts/Engines/Craft/Core/CraftGroupCol.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftGroupCol.cs rename to Projects/Scripts/Engines/Craft/Core/CraftGroupCol.cs diff --git a/Scripts/Engines/Craft/Core/CraftGump.cs b/Projects/Scripts/Engines/Craft/Core/CraftGump.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftGump.cs rename to Projects/Scripts/Engines/Craft/Core/CraftGump.cs diff --git a/Scripts/Engines/Craft/Core/CraftGumpItem.cs b/Projects/Scripts/Engines/Craft/Core/CraftGumpItem.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftGumpItem.cs rename to Projects/Scripts/Engines/Craft/Core/CraftGumpItem.cs diff --git a/Scripts/Engines/Craft/Core/CraftItem.cs b/Projects/Scripts/Engines/Craft/Core/CraftItem.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftItem.cs rename to Projects/Scripts/Engines/Craft/Core/CraftItem.cs diff --git a/Scripts/Engines/Craft/Core/CraftItemCol.cs b/Projects/Scripts/Engines/Craft/Core/CraftItemCol.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftItemCol.cs rename to Projects/Scripts/Engines/Craft/Core/CraftItemCol.cs diff --git a/Scripts/Engines/Craft/Core/CraftItemIDAttribute.cs b/Projects/Scripts/Engines/Craft/Core/CraftItemIDAttribute.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftItemIDAttribute.cs rename to Projects/Scripts/Engines/Craft/Core/CraftItemIDAttribute.cs diff --git a/Scripts/Engines/Craft/Core/CraftRes.cs b/Projects/Scripts/Engines/Craft/Core/CraftRes.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftRes.cs rename to Projects/Scripts/Engines/Craft/Core/CraftRes.cs diff --git a/Scripts/Engines/Craft/Core/CraftResCol.cs b/Projects/Scripts/Engines/Craft/Core/CraftResCol.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftResCol.cs rename to Projects/Scripts/Engines/Craft/Core/CraftResCol.cs diff --git a/Scripts/Engines/Craft/Core/CraftSkill.cs b/Projects/Scripts/Engines/Craft/Core/CraftSkill.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftSkill.cs rename to Projects/Scripts/Engines/Craft/Core/CraftSkill.cs diff --git a/Scripts/Engines/Craft/Core/CraftSkillCol.cs b/Projects/Scripts/Engines/Craft/Core/CraftSkillCol.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftSkillCol.cs rename to Projects/Scripts/Engines/Craft/Core/CraftSkillCol.cs diff --git a/Scripts/Engines/Craft/Core/CraftSubRes.cs b/Projects/Scripts/Engines/Craft/Core/CraftSubRes.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftSubRes.cs rename to Projects/Scripts/Engines/Craft/Core/CraftSubRes.cs diff --git a/Scripts/Engines/Craft/Core/CraftSubResCol.cs b/Projects/Scripts/Engines/Craft/Core/CraftSubResCol.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftSubResCol.cs rename to Projects/Scripts/Engines/Craft/Core/CraftSubResCol.cs diff --git a/Scripts/Engines/Craft/Core/CraftSystem.cs b/Projects/Scripts/Engines/Craft/Core/CraftSystem.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CraftSystem.cs rename to Projects/Scripts/Engines/Craft/Core/CraftSystem.cs diff --git a/Scripts/Engines/Craft/Core/CustomCraft.cs b/Projects/Scripts/Engines/Craft/Core/CustomCraft.cs similarity index 100% rename from Scripts/Engines/Craft/Core/CustomCraft.cs rename to Projects/Scripts/Engines/Craft/Core/CustomCraft.cs diff --git a/Scripts/Engines/Craft/Core/Enhance.cs b/Projects/Scripts/Engines/Craft/Core/Enhance.cs similarity index 100% rename from Scripts/Engines/Craft/Core/Enhance.cs rename to Projects/Scripts/Engines/Craft/Core/Enhance.cs diff --git a/Scripts/Engines/Craft/Core/QueryMakersMarkGump.cs b/Projects/Scripts/Engines/Craft/Core/QueryMakersMarkGump.cs similarity index 100% rename from Scripts/Engines/Craft/Core/QueryMakersMarkGump.cs rename to Projects/Scripts/Engines/Craft/Core/QueryMakersMarkGump.cs diff --git a/Scripts/Engines/Craft/Core/Recipes.cs b/Projects/Scripts/Engines/Craft/Core/Recipes.cs similarity index 100% rename from Scripts/Engines/Craft/Core/Recipes.cs rename to Projects/Scripts/Engines/Craft/Core/Recipes.cs diff --git a/Scripts/Engines/Craft/Core/Repair.cs b/Projects/Scripts/Engines/Craft/Core/Repair.cs similarity index 100% rename from Scripts/Engines/Craft/Core/Repair.cs rename to Projects/Scripts/Engines/Craft/Core/Repair.cs diff --git a/Scripts/Engines/Craft/Core/Resmelt.cs b/Projects/Scripts/Engines/Craft/Core/Resmelt.cs similarity index 100% rename from Scripts/Engines/Craft/Core/Resmelt.cs rename to Projects/Scripts/Engines/Craft/Core/Resmelt.cs diff --git a/Scripts/Engines/Craft/DefAlchemy.cs b/Projects/Scripts/Engines/Craft/DefAlchemy.cs similarity index 100% rename from Scripts/Engines/Craft/DefAlchemy.cs rename to Projects/Scripts/Engines/Craft/DefAlchemy.cs diff --git a/Scripts/Engines/Craft/DefBlacksmithy.cs b/Projects/Scripts/Engines/Craft/DefBlacksmithy.cs similarity index 100% rename from Scripts/Engines/Craft/DefBlacksmithy.cs rename to Projects/Scripts/Engines/Craft/DefBlacksmithy.cs diff --git a/Scripts/Engines/Craft/DefBowFletching.cs b/Projects/Scripts/Engines/Craft/DefBowFletching.cs similarity index 100% rename from Scripts/Engines/Craft/DefBowFletching.cs rename to Projects/Scripts/Engines/Craft/DefBowFletching.cs diff --git a/Scripts/Engines/Craft/DefCarpentry.cs b/Projects/Scripts/Engines/Craft/DefCarpentry.cs similarity index 100% rename from Scripts/Engines/Craft/DefCarpentry.cs rename to Projects/Scripts/Engines/Craft/DefCarpentry.cs diff --git a/Scripts/Engines/Craft/DefCartography.cs b/Projects/Scripts/Engines/Craft/DefCartography.cs similarity index 100% rename from Scripts/Engines/Craft/DefCartography.cs rename to Projects/Scripts/Engines/Craft/DefCartography.cs diff --git a/Scripts/Engines/Craft/DefCooking.cs b/Projects/Scripts/Engines/Craft/DefCooking.cs similarity index 100% rename from Scripts/Engines/Craft/DefCooking.cs rename to Projects/Scripts/Engines/Craft/DefCooking.cs diff --git a/Scripts/Engines/Craft/DefGlassblowing.cs b/Projects/Scripts/Engines/Craft/DefGlassblowing.cs similarity index 100% rename from Scripts/Engines/Craft/DefGlassblowing.cs rename to Projects/Scripts/Engines/Craft/DefGlassblowing.cs diff --git a/Scripts/Engines/Craft/DefInscription.cs b/Projects/Scripts/Engines/Craft/DefInscription.cs similarity index 100% rename from Scripts/Engines/Craft/DefInscription.cs rename to Projects/Scripts/Engines/Craft/DefInscription.cs diff --git a/Scripts/Engines/Craft/DefMasonry.cs b/Projects/Scripts/Engines/Craft/DefMasonry.cs similarity index 100% rename from Scripts/Engines/Craft/DefMasonry.cs rename to Projects/Scripts/Engines/Craft/DefMasonry.cs diff --git a/Scripts/Engines/Craft/DefTailoring.cs b/Projects/Scripts/Engines/Craft/DefTailoring.cs similarity index 100% rename from Scripts/Engines/Craft/DefTailoring.cs rename to Projects/Scripts/Engines/Craft/DefTailoring.cs diff --git a/Scripts/Engines/Craft/DefTinkering.cs b/Projects/Scripts/Engines/Craft/DefTinkering.cs similarity index 100% rename from Scripts/Engines/Craft/DefTinkering.cs rename to Projects/Scripts/Engines/Craft/DefTinkering.cs diff --git a/Scripts/Engines/Doom/GauntletSpawner.cs b/Projects/Scripts/Engines/Doom/GauntletSpawner.cs similarity index 100% rename from Scripts/Engines/Doom/GauntletSpawner.cs rename to Projects/Scripts/Engines/Doom/GauntletSpawner.cs diff --git a/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleController.cs b/Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleController.cs similarity index 100% rename from Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleController.cs rename to Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleController.cs diff --git a/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleItems.cs b/Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleItems.cs similarity index 100% rename from Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleItems.cs rename to Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleItems.cs diff --git a/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleRegions.cs b/Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleRegions.cs similarity index 100% rename from Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleRegions.cs rename to Projects/Scripts/Engines/Doom/LeverPuzzle/LeverPuzzleRegions.cs diff --git a/Scripts/Engines/Ethics/Core/Ethic.cs b/Projects/Scripts/Engines/Ethics/Core/Ethic.cs similarity index 100% rename from Scripts/Engines/Ethics/Core/Ethic.cs rename to Projects/Scripts/Engines/Ethics/Core/Ethic.cs diff --git a/Scripts/Engines/Ethics/Core/Persistance.cs b/Projects/Scripts/Engines/Ethics/Core/Persistance.cs similarity index 100% rename from Scripts/Engines/Ethics/Core/Persistance.cs rename to Projects/Scripts/Engines/Ethics/Core/Persistance.cs diff --git a/Scripts/Engines/Ethics/Core/Player.cs b/Projects/Scripts/Engines/Ethics/Core/Player.cs similarity index 100% rename from Scripts/Engines/Ethics/Core/Player.cs rename to Projects/Scripts/Engines/Ethics/Core/Player.cs diff --git a/Scripts/Engines/Ethics/Core/Power.cs b/Projects/Scripts/Engines/Ethics/Core/Power.cs similarity index 100% rename from Scripts/Engines/Ethics/Core/Power.cs rename to Projects/Scripts/Engines/Ethics/Core/Power.cs diff --git a/Scripts/Engines/Ethics/Definitions/EthicDefinition.cs b/Projects/Scripts/Engines/Ethics/Definitions/EthicDefinition.cs similarity index 100% rename from Scripts/Engines/Ethics/Definitions/EthicDefinition.cs rename to Projects/Scripts/Engines/Ethics/Definitions/EthicDefinition.cs diff --git a/Scripts/Engines/Ethics/Definitions/PowerDefinition.cs b/Projects/Scripts/Engines/Ethics/Definitions/PowerDefinition.cs similarity index 100% rename from Scripts/Engines/Ethics/Definitions/PowerDefinition.cs rename to Projects/Scripts/Engines/Ethics/Definitions/PowerDefinition.cs diff --git a/Scripts/Engines/Ethics/Evil/Ethic.cs b/Projects/Scripts/Engines/Ethics/Evil/Ethic.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Ethic.cs rename to Projects/Scripts/Engines/Ethics/Evil/Ethic.cs diff --git a/Scripts/Engines/Ethics/Evil/Mobiles/UnholyFamiliar.cs b/Projects/Scripts/Engines/Ethics/Evil/Mobiles/UnholyFamiliar.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Mobiles/UnholyFamiliar.cs rename to Projects/Scripts/Engines/Ethics/Evil/Mobiles/UnholyFamiliar.cs diff --git a/Scripts/Engines/Ethics/Evil/Mobiles/UnholySteed.cs b/Projects/Scripts/Engines/Ethics/Evil/Mobiles/UnholySteed.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Mobiles/UnholySteed.cs rename to Projects/Scripts/Engines/Ethics/Evil/Mobiles/UnholySteed.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/Blight.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/Blight.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/Blight.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/Blight.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/SummonFamiliar.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/SummonFamiliar.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/SummonFamiliar.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/SummonFamiliar.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/UnholyItem.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyItem.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/UnholyItem.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyItem.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/UnholySense.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/UnholySense.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/UnholySense.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/UnholySense.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/UnholyShield.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyShield.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/UnholyShield.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyShield.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/UnholySteed.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/UnholySteed.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/UnholySteed.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/UnholySteed.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/UnholyWord.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyWord.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/UnholyWord.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/UnholyWord.cs diff --git a/Scripts/Engines/Ethics/Evil/Powers/VileBlade.cs b/Projects/Scripts/Engines/Ethics/Evil/Powers/VileBlade.cs similarity index 100% rename from Scripts/Engines/Ethics/Evil/Powers/VileBlade.cs rename to Projects/Scripts/Engines/Ethics/Evil/Powers/VileBlade.cs diff --git a/Scripts/Engines/Ethics/Hero/Ethic.cs b/Projects/Scripts/Engines/Ethics/Hero/Ethic.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Ethic.cs rename to Projects/Scripts/Engines/Ethics/Hero/Ethic.cs diff --git a/Scripts/Engines/Ethics/Hero/Mobiles/HolyFamiliar.cs b/Projects/Scripts/Engines/Ethics/Hero/Mobiles/HolyFamiliar.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Mobiles/HolyFamiliar.cs rename to Projects/Scripts/Engines/Ethics/Hero/Mobiles/HolyFamiliar.cs diff --git a/Scripts/Engines/Ethics/Hero/Mobiles/HolySteed.cs b/Projects/Scripts/Engines/Ethics/Hero/Mobiles/HolySteed.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Mobiles/HolySteed.cs rename to Projects/Scripts/Engines/Ethics/Hero/Mobiles/HolySteed.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/Bless.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/Bless.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/Bless.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/Bless.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolyBlade.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolyBlade.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolyBlade.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolyBlade.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolyItem.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolyItem.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolyItem.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolyItem.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolySense.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolySense.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolySense.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolySense.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolyShield.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolyShield.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolyShield.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolyShield.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolySteed.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolySteed.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolySteed.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolySteed.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/HolyWord.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/HolyWord.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/HolyWord.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/HolyWord.cs diff --git a/Scripts/Engines/Ethics/Hero/Powers/SummonFamiliar.cs b/Projects/Scripts/Engines/Ethics/Hero/Powers/SummonFamiliar.cs similarity index 100% rename from Scripts/Engines/Ethics/Hero/Powers/SummonFamiliar.cs rename to Projects/Scripts/Engines/Ethics/Hero/Powers/SummonFamiliar.cs diff --git a/Scripts/Engines/Factions/Core/Election.cs b/Projects/Scripts/Engines/Factions/Core/Election.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Election.cs rename to Projects/Scripts/Engines/Factions/Core/Election.cs diff --git a/Scripts/Engines/Factions/Core/Faction.cs b/Projects/Scripts/Engines/Factions/Core/Faction.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Faction.cs rename to Projects/Scripts/Engines/Factions/Core/Faction.cs diff --git a/Scripts/Engines/Factions/Core/FactionItem.cs b/Projects/Scripts/Engines/Factions/Core/FactionItem.cs similarity index 100% rename from Scripts/Engines/Factions/Core/FactionItem.cs rename to Projects/Scripts/Engines/Factions/Core/FactionItem.cs diff --git a/Scripts/Engines/Factions/Core/FactionState.cs b/Projects/Scripts/Engines/Factions/Core/FactionState.cs similarity index 100% rename from Scripts/Engines/Factions/Core/FactionState.cs rename to Projects/Scripts/Engines/Factions/Core/FactionState.cs diff --git a/Scripts/Engines/Factions/Core/Generator.cs b/Projects/Scripts/Engines/Factions/Core/Generator.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Generator.cs rename to Projects/Scripts/Engines/Factions/Core/Generator.cs diff --git a/Scripts/Engines/Factions/Core/GuardList.cs b/Projects/Scripts/Engines/Factions/Core/GuardList.cs similarity index 100% rename from Scripts/Engines/Factions/Core/GuardList.cs rename to Projects/Scripts/Engines/Factions/Core/GuardList.cs diff --git a/Scripts/Engines/Factions/Core/Keywords.cs b/Projects/Scripts/Engines/Factions/Core/Keywords.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Keywords.cs rename to Projects/Scripts/Engines/Factions/Core/Keywords.cs diff --git a/Scripts/Engines/Factions/Core/MerchantTitles.cs b/Projects/Scripts/Engines/Factions/Core/MerchantTitles.cs similarity index 100% rename from Scripts/Engines/Factions/Core/MerchantTitles.cs rename to Projects/Scripts/Engines/Factions/Core/MerchantTitles.cs diff --git a/Scripts/Engines/Factions/Core/Persistance.cs b/Projects/Scripts/Engines/Factions/Core/Persistance.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Persistance.cs rename to Projects/Scripts/Engines/Factions/Core/Persistance.cs diff --git a/Scripts/Engines/Factions/Core/PlayerState.cs b/Projects/Scripts/Engines/Factions/Core/PlayerState.cs similarity index 93% rename from Scripts/Engines/Factions/Core/PlayerState.cs rename to Projects/Scripts/Engines/Factions/Core/PlayerState.cs index 67e8fb963..e9d0e11b8 100644 --- a/Scripts/Engines/Factions/Core/PlayerState.cs +++ b/Projects/Scripts/Engines/Factions/Core/PlayerState.cs @@ -271,11 +271,7 @@ namespace Server.Factions public void Invalidate() { - if (Mobile is PlayerMobile pm) - { - pm.InvalidateProperties(); - pm.InvalidateMyRunUO(); - } + (Mobile as PlayerMobile)?.InvalidateProperties(); } public void Attach() diff --git a/Scripts/Engines/Factions/Core/Reflector.cs b/Projects/Scripts/Engines/Factions/Core/Reflector.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Reflector.cs rename to Projects/Scripts/Engines/Factions/Core/Reflector.cs diff --git a/Scripts/Engines/Factions/Core/SilverGivenEntry.cs b/Projects/Scripts/Engines/Factions/Core/SilverGivenEntry.cs similarity index 100% rename from Scripts/Engines/Factions/Core/SilverGivenEntry.cs rename to Projects/Scripts/Engines/Factions/Core/SilverGivenEntry.cs diff --git a/Scripts/Engines/Factions/Core/StrongholdRegion.cs b/Projects/Scripts/Engines/Factions/Core/StrongholdRegion.cs similarity index 100% rename from Scripts/Engines/Factions/Core/StrongholdRegion.cs rename to Projects/Scripts/Engines/Factions/Core/StrongholdRegion.cs diff --git a/Scripts/Engines/Factions/Core/Town.cs b/Projects/Scripts/Engines/Factions/Core/Town.cs similarity index 100% rename from Scripts/Engines/Factions/Core/Town.cs rename to Projects/Scripts/Engines/Factions/Core/Town.cs diff --git a/Scripts/Engines/Factions/Core/TownState.cs b/Projects/Scripts/Engines/Factions/Core/TownState.cs similarity index 100% rename from Scripts/Engines/Factions/Core/TownState.cs rename to Projects/Scripts/Engines/Factions/Core/TownState.cs diff --git a/Scripts/Engines/Factions/Core/VendorList.cs b/Projects/Scripts/Engines/Factions/Core/VendorList.cs similarity index 100% rename from Scripts/Engines/Factions/Core/VendorList.cs rename to Projects/Scripts/Engines/Factions/Core/VendorList.cs diff --git a/Scripts/Engines/Factions/Definitions/FactionDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/FactionDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/FactionDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/FactionDefinition.cs diff --git a/Scripts/Engines/Factions/Definitions/FactionItemDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/FactionItemDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/FactionItemDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/FactionItemDefinition.cs diff --git a/Scripts/Engines/Factions/Definitions/GuardDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/GuardDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/GuardDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/GuardDefinition.cs diff --git a/Scripts/Engines/Factions/Definitions/RankDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/RankDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/RankDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/RankDefinition.cs diff --git a/Scripts/Engines/Factions/Definitions/StrongholdDefintion.cs b/Projects/Scripts/Engines/Factions/Definitions/StrongholdDefintion.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/StrongholdDefintion.cs rename to Projects/Scripts/Engines/Factions/Definitions/StrongholdDefintion.cs diff --git a/Scripts/Engines/Factions/Definitions/TownDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/TownDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/TownDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/TownDefinition.cs diff --git a/Scripts/Engines/Factions/Definitions/VendorDefinition.cs b/Projects/Scripts/Engines/Factions/Definitions/VendorDefinition.cs similarity index 100% rename from Scripts/Engines/Factions/Definitions/VendorDefinition.cs rename to Projects/Scripts/Engines/Factions/Definitions/VendorDefinition.cs diff --git a/Scripts/Engines/Factions/Gumps/ElectionGump.cs b/Projects/Scripts/Engines/Factions/Gumps/ElectionGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/ElectionGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/ElectionGump.cs diff --git a/Scripts/Engines/Factions/Gumps/ElectionManagementGump.cs b/Projects/Scripts/Engines/Factions/Gumps/ElectionManagementGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/ElectionManagementGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/ElectionManagementGump.cs diff --git a/Scripts/Engines/Factions/Gumps/FactionGump.cs b/Projects/Scripts/Engines/Factions/Gumps/FactionGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/FactionGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/FactionGump.cs diff --git a/Scripts/Engines/Factions/Gumps/FactionImbueGump.cs b/Projects/Scripts/Engines/Factions/Gumps/FactionImbueGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/FactionImbueGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/FactionImbueGump.cs diff --git a/Scripts/Engines/Factions/Gumps/FactionStoneGump.cs b/Projects/Scripts/Engines/Factions/Gumps/FactionStoneGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/FactionStoneGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/FactionStoneGump.cs diff --git a/Scripts/Engines/Factions/Gumps/FinanceGump.cs b/Projects/Scripts/Engines/Factions/Gumps/FinanceGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/FinanceGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/FinanceGump.cs diff --git a/Scripts/Engines/Factions/Gumps/HorseBreederGump.cs b/Projects/Scripts/Engines/Factions/Gumps/HorseBreederGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/HorseBreederGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/HorseBreederGump.cs diff --git a/Scripts/Engines/Factions/Gumps/JoinStoneGump.cs b/Projects/Scripts/Engines/Factions/Gumps/JoinStoneGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/JoinStoneGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/JoinStoneGump.cs diff --git a/Scripts/Engines/Factions/Gumps/LeaveFactionGump.cs b/Projects/Scripts/Engines/Factions/Gumps/LeaveFactionGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/LeaveFactionGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/LeaveFactionGump.cs diff --git a/Scripts/Engines/Factions/Gumps/SheriffGump.cs b/Projects/Scripts/Engines/Factions/Gumps/SheriffGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/SheriffGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/SheriffGump.cs diff --git a/Scripts/Engines/Factions/Gumps/TownStoneGump.cs b/Projects/Scripts/Engines/Factions/Gumps/TownStoneGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/TownStoneGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/TownStoneGump.cs diff --git a/Scripts/Engines/Factions/Gumps/VoteGump.cs b/Projects/Scripts/Engines/Factions/Gumps/VoteGump.cs similarity index 100% rename from Scripts/Engines/Factions/Gumps/VoteGump.cs rename to Projects/Scripts/Engines/Factions/Gumps/VoteGump.cs diff --git a/Scripts/Engines/Factions/Instances/Factions/CouncilOfMages.cs b/Projects/Scripts/Engines/Factions/Instances/Factions/CouncilOfMages.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Factions/CouncilOfMages.cs rename to Projects/Scripts/Engines/Factions/Instances/Factions/CouncilOfMages.cs diff --git a/Scripts/Engines/Factions/Instances/Factions/Minax.cs b/Projects/Scripts/Engines/Factions/Instances/Factions/Minax.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Factions/Minax.cs rename to Projects/Scripts/Engines/Factions/Instances/Factions/Minax.cs diff --git a/Scripts/Engines/Factions/Instances/Factions/Shadowlords.cs b/Projects/Scripts/Engines/Factions/Instances/Factions/Shadowlords.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Factions/Shadowlords.cs rename to Projects/Scripts/Engines/Factions/Instances/Factions/Shadowlords.cs diff --git a/Scripts/Engines/Factions/Instances/Factions/TrueBritannians.cs b/Projects/Scripts/Engines/Factions/Instances/Factions/TrueBritannians.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Factions/TrueBritannians.cs rename to Projects/Scripts/Engines/Factions/Instances/Factions/TrueBritannians.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Britain.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Britain.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Britain.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Britain.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Magincia.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Magincia.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Magincia.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Magincia.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Minoc.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Minoc.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Minoc.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Minoc.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Moonglow.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Moonglow.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Moonglow.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Moonglow.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/SkaraBrae.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/SkaraBrae.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/SkaraBrae.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/SkaraBrae.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Trinsic.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Trinsic.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Trinsic.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Trinsic.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Vesper.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Vesper.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Vesper.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Vesper.cs diff --git a/Scripts/Engines/Factions/Instances/Towns/Yew.cs b/Projects/Scripts/Engines/Factions/Instances/Towns/Yew.cs similarity index 100% rename from Scripts/Engines/Factions/Instances/Towns/Yew.cs rename to Projects/Scripts/Engines/Factions/Instances/Towns/Yew.cs diff --git a/Scripts/Engines/Factions/Items/BaseMonolith.cs b/Projects/Scripts/Engines/Factions/Items/BaseMonolith.cs similarity index 100% rename from Scripts/Engines/Factions/Items/BaseMonolith.cs rename to Projects/Scripts/Engines/Factions/Items/BaseMonolith.cs diff --git a/Scripts/Engines/Factions/Items/BaseSystemController.cs b/Projects/Scripts/Engines/Factions/Items/BaseSystemController.cs similarity index 100% rename from Scripts/Engines/Factions/Items/BaseSystemController.cs rename to Projects/Scripts/Engines/Factions/Items/BaseSystemController.cs diff --git a/Scripts/Engines/Factions/Items/FactionStone.cs b/Projects/Scripts/Engines/Factions/Items/FactionStone.cs similarity index 100% rename from Scripts/Engines/Factions/Items/FactionStone.cs rename to Projects/Scripts/Engines/Factions/Items/FactionStone.cs diff --git a/Scripts/Engines/Factions/Items/JoinStone.cs b/Projects/Scripts/Engines/Factions/Items/JoinStone.cs similarity index 100% rename from Scripts/Engines/Factions/Items/JoinStone.cs rename to Projects/Scripts/Engines/Factions/Items/JoinStone.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/BloodRose.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/BloodRose.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/BloodRose.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/BloodRose.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/ClarityPotion.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/ClarityPotion.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/ClarityPotion.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/ClarityPotion.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/GemOfEmpowerment.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/GemOfEmpowerment.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/GemOfEmpowerment.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/GemOfEmpowerment.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/PowerFactionItem.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/PowerFactionItem.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/PowerFactionItem.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/PowerFactionItem.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/StormsEye.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/StormsEye.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/StormsEye.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/StormsEye.cs diff --git a/Scripts/Engines/Factions/Items/Power Faction Items/UrnOfAscension.cs b/Projects/Scripts/Engines/Factions/Items/Power Faction Items/UrnOfAscension.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Power Faction Items/UrnOfAscension.cs rename to Projects/Scripts/Engines/Factions/Items/Power Faction Items/UrnOfAscension.cs diff --git a/Scripts/Engines/Factions/Items/Sigil.cs b/Projects/Scripts/Engines/Factions/Items/Sigil.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Sigil.cs rename to Projects/Scripts/Engines/Factions/Items/Sigil.cs diff --git a/Scripts/Engines/Factions/Items/Silver.cs b/Projects/Scripts/Engines/Factions/Items/Silver.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Silver.cs rename to Projects/Scripts/Engines/Factions/Items/Silver.cs diff --git a/Scripts/Engines/Factions/Items/StrongholdMonolith.cs b/Projects/Scripts/Engines/Factions/Items/StrongholdMonolith.cs similarity index 100% rename from Scripts/Engines/Factions/Items/StrongholdMonolith.cs rename to Projects/Scripts/Engines/Factions/Items/StrongholdMonolith.cs diff --git a/Scripts/Engines/Factions/Items/TownMonolith.cs b/Projects/Scripts/Engines/Factions/Items/TownMonolith.cs similarity index 100% rename from Scripts/Engines/Factions/Items/TownMonolith.cs rename to Projects/Scripts/Engines/Factions/Items/TownMonolith.cs diff --git a/Scripts/Engines/Factions/Items/TownStone.cs b/Projects/Scripts/Engines/Factions/Items/TownStone.cs similarity index 100% rename from Scripts/Engines/Factions/Items/TownStone.cs rename to Projects/Scripts/Engines/Factions/Items/TownStone.cs diff --git a/Scripts/Engines/Factions/Items/Traps/BaseFactionTrap.cs b/Projects/Scripts/Engines/Factions/Items/Traps/BaseFactionTrap.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/BaseFactionTrap.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/BaseFactionTrap.cs diff --git a/Scripts/Engines/Factions/Items/Traps/BaseFactionTrapDeed.cs b/Projects/Scripts/Engines/Factions/Items/Traps/BaseFactionTrapDeed.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/BaseFactionTrapDeed.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/BaseFactionTrapDeed.cs diff --git a/Scripts/Engines/Factions/Items/Traps/FactionExplosionTrap.cs b/Projects/Scripts/Engines/Factions/Items/Traps/FactionExplosionTrap.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/FactionExplosionTrap.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/FactionExplosionTrap.cs diff --git a/Scripts/Engines/Factions/Items/Traps/FactionGasTrap.cs b/Projects/Scripts/Engines/Factions/Items/Traps/FactionGasTrap.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/FactionGasTrap.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/FactionGasTrap.cs diff --git a/Scripts/Engines/Factions/Items/Traps/FactionSawTrap.cs b/Projects/Scripts/Engines/Factions/Items/Traps/FactionSawTrap.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/FactionSawTrap.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/FactionSawTrap.cs diff --git a/Scripts/Engines/Factions/Items/Traps/FactionSpikeTrap.cs b/Projects/Scripts/Engines/Factions/Items/Traps/FactionSpikeTrap.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/FactionSpikeTrap.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/FactionSpikeTrap.cs diff --git a/Scripts/Engines/Factions/Items/Traps/FactionTrapRemovalKit.cs b/Projects/Scripts/Engines/Factions/Items/Traps/FactionTrapRemovalKit.cs similarity index 100% rename from Scripts/Engines/Factions/Items/Traps/FactionTrapRemovalKit.cs rename to Projects/Scripts/Engines/Factions/Items/Traps/FactionTrapRemovalKit.cs diff --git a/Scripts/Engines/Factions/Mobiles/FactionWarHorse.cs b/Projects/Scripts/Engines/Factions/Mobiles/FactionWarHorse.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/FactionWarHorse.cs rename to Projects/Scripts/Engines/Factions/Mobiles/FactionWarHorse.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/BaseFactionGuard.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/GuardAI.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/GuardAI.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/GuardAI.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/GuardAI.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Orders.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Orders.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Orders.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Orders.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionBerserker.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionBerserker.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionBerserker.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionBerserker.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDeathKnight.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDeathKnight.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDeathKnight.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDeathKnight.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDragoon.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDragoon.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDragoon.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionDragoon.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionHenchman.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionHenchman.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionHenchman.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionHenchman.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionKnight.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionKnight.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionKnight.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionKnight.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionMercenary.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionMercenary.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionMercenary.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionMercenary.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionNecromancer.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionNecromancer.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionNecromancer.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionNecromancer.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionPaladin.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionPaladin.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionPaladin.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionPaladin.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionSorceress.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionSorceress.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionSorceress.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionSorceress.cs diff --git a/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionWizard.cs b/Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionWizard.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Guards/Types/FactionWizard.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Guards/Types/FactionWizard.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/BaseFactionVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/BaseFactionVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/BaseFactionVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/BaseFactionVendor.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/FactionBoardVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionBoardVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/FactionBoardVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionBoardVendor.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/FactionBottleVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionBottleVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/FactionBottleVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionBottleVendor.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/FactionHorseVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionHorseVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/FactionHorseVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionHorseVendor.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/FactionOreVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionOreVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/FactionOreVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionOreVendor.cs diff --git a/Scripts/Engines/Factions/Mobiles/Vendors/FactionReagentVendor.cs b/Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionReagentVendor.cs similarity index 100% rename from Scripts/Engines/Factions/Mobiles/Vendors/FactionReagentVendor.cs rename to Projects/Scripts/Engines/Factions/Mobiles/Vendors/FactionReagentVendor.cs diff --git a/Scripts/Engines/Harvest/Core/BonusHarvestResource.cs b/Projects/Scripts/Engines/Harvest/Core/BonusHarvestResource.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/BonusHarvestResource.cs rename to Projects/Scripts/Engines/Harvest/Core/BonusHarvestResource.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestBank.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestBank.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestBank.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestBank.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestDefinition.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestDefinition.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestDefinition.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestDefinition.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestResource.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestResource.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestResource.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestResource.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestSoundTimer.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestSoundTimer.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestSoundTimer.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestSoundTimer.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestSystem.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestSystem.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestSystem.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestSystem.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestTarget.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestTarget.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestTarget.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestTarget.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestTimer.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestTimer.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestTimer.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestTimer.cs diff --git a/Scripts/Engines/Harvest/Core/HarvestVein.cs b/Projects/Scripts/Engines/Harvest/Core/HarvestVein.cs similarity index 100% rename from Scripts/Engines/Harvest/Core/HarvestVein.cs rename to Projects/Scripts/Engines/Harvest/Core/HarvestVein.cs diff --git a/Scripts/Engines/Harvest/Fishing.cs b/Projects/Scripts/Engines/Harvest/Fishing.cs similarity index 100% rename from Scripts/Engines/Harvest/Fishing.cs rename to Projects/Scripts/Engines/Harvest/Fishing.cs diff --git a/Scripts/Engines/Harvest/Lumberjacking.cs b/Projects/Scripts/Engines/Harvest/Lumberjacking.cs similarity index 100% rename from Scripts/Engines/Harvest/Lumberjacking.cs rename to Projects/Scripts/Engines/Harvest/Lumberjacking.cs diff --git a/Scripts/Engines/Harvest/Mining.cs b/Projects/Scripts/Engines/Harvest/Mining.cs similarity index 100% rename from Scripts/Engines/Harvest/Mining.cs rename to Projects/Scripts/Engines/Harvest/Mining.cs diff --git a/Scripts/Engines/Help/HelpGump.cs b/Projects/Scripts/Engines/Help/HelpGump.cs similarity index 97% rename from Scripts/Engines/Help/HelpGump.cs rename to Projects/Scripts/Engines/Help/HelpGump.cs index 7833dbb0e..f4634a8a5 100644 --- a/Scripts/Engines/Help/HelpGump.cs +++ b/Projects/Scripts/Engines/Help/HelpGump.cs @@ -39,7 +39,7 @@ namespace Server.Engines.Help if (entry != null && entry.Handler == null) { m_From.SendLocalizedMessage(1005307, "", 0x35); // Removed help request. - entry.AddResponse(entry.Sender, "[Canceled]"); + // entry.AddResponse(entry.Sender, "[Canceled]"); PageQueue.Remove(entry); } else diff --git a/Scripts/Engines/Help/PagePrompt.cs b/Projects/Scripts/Engines/Help/PagePrompt.cs similarity index 100% rename from Scripts/Engines/Help/PagePrompt.cs rename to Projects/Scripts/Engines/Help/PagePrompt.cs diff --git a/Scripts/Engines/Help/PagePromptGump.cs b/Projects/Scripts/Engines/Help/PagePromptGump.cs similarity index 100% rename from Scripts/Engines/Help/PagePromptGump.cs rename to Projects/Scripts/Engines/Help/PagePromptGump.cs diff --git a/Scripts/Engines/Help/PageQueue.cs b/Projects/Scripts/Engines/Help/PageQueue.cs similarity index 89% rename from Scripts/Engines/Help/PageQueue.cs rename to Projects/Scripts/Engines/Help/PageQueue.cs index 522d4aa8d..5dbeae26f 100644 --- a/Scripts/Engines/Help/PageQueue.cs +++ b/Projects/Scripts/Engines/Help/PageQueue.cs @@ -4,7 +4,6 @@ using System.IO; using System.Net.Mail; using Server.Accounting; using Server.Commands; -using Server.Engines.Reports; using Server.Misc; using Server.Mobiles; using Server.Network; @@ -49,19 +48,8 @@ namespace Server.Engines.Help m_Timer = new InternalTimer(this); m_Timer.Start(); - - StaffHistory history = Reports.Reports.StaffHistory; - - if (history != null) - { - PageInfo = new PageInfo(this); - - history.AddPage(PageInfo); - } } - public PageInfo PageInfo{ get; } - public Mobile Sender{ get; } public Mobile Handler @@ -93,20 +81,6 @@ namespace Server.Engines.Help m_Timer = null; } - public void AddResponse(Mobile mob, string text) - { - if (PageInfo != null) - { - lock (PageInfo) - { - PageInfo.Responses.Add(PageInfo.GetAccount(mob), text); - } - - if (PageInfo.ResFromResp(text) != PageResolution.None) - PageInfo.UpdateResolver(); - } - } - private class InternalTimer : Timer { private static TimeSpan StatusDelay = TimeSpan.FromMinutes(2.0); @@ -135,7 +109,7 @@ namespace Server.Engines.Help else { if (index != -1) - m_Entry.AddResponse(m_Entry.Sender, "[Logout]"); + // m_Entry.AddResponse(m_Entry.Sender, "[Logout]"); PageQueue.Remove(m_Entry); } diff --git a/Scripts/Engines/Help/PageQueueGump.cs b/Projects/Scripts/Engines/Help/PageQueueGump.cs similarity index 93% rename from Scripts/Engines/Help/PageQueueGump.cs rename to Projects/Scripts/Engines/Help/PageQueueGump.cs index 876d981d3..5351e83ac 100644 --- a/Scripts/Engines/Help/PageQueueGump.cs +++ b/Projects/Scripts/Engines/Help/PageQueueGump.cs @@ -62,7 +62,7 @@ namespace Server.Engines.Help if (e.Sender.Deleted || e.Sender.NetState == null) { - e.AddResponse(e.Sender, "[Logout]"); + // e.AddResponse(e.Sender, "[Logout]"); PageQueue.Remove(e); } else @@ -601,7 +601,7 @@ namespace Server.Engines.Help } else { - m_Entry.AddResponse(state.Mobile, "[Go Sender]"); + // m_Entry.AddResponse(state.Mobile, "[Go Sender]"); m.MoveToWorld(m_Entry.Sender.Location, m_Entry.Sender.Map); m.SendMessage("You have been teleported to that page's sender."); @@ -628,7 +628,7 @@ namespace Server.Engines.Help } else { - m_Entry.AddResponse(state.Mobile, "[Go Handler]"); + // m_Entry.AddResponse(state.Mobile, "[Go Handler]"); m.MoveToWorld(h.Location, h.Map); m.SendMessage("You have been teleported to that page's handler."); @@ -653,7 +653,7 @@ namespace Server.Engines.Help } else { - m_Entry.AddResponse(state.Mobile, "[Go PageLoc]"); + // m_Entry.AddResponse(state.Mobile, "[Go PageLoc]"); m.MoveToWorld(m_Entry.PageLocation, m_Entry.PageMap); state.Mobile.SendMessage("You have been teleported to the original page location."); @@ -667,7 +667,7 @@ namespace Server.Engines.Help { if (m_Entry.Handler == null) { - m_Entry.AddResponse(state.Mobile, "[Handling]"); + // m_Entry.AddResponse(state.Mobile, "[Handling]"); m_Entry.Handler = state.Mobile; state.Mobile.SendMessage("You are now handling the page."); @@ -685,7 +685,7 @@ namespace Server.Engines.Help { if (m_Entry.Handler == null) { - m_Entry.AddResponse(state.Mobile, "[Deleting]"); + // m_Entry.AddResponse(state.Mobile, "[Deleting]"); PageQueue.Remove(m_Entry); state.Mobile.SendMessage("You delete the page."); @@ -707,7 +707,7 @@ namespace Server.Engines.Help { if (m_Entry.Handler == state.Mobile) { - m_Entry.AddResponse(state.Mobile, "[Abandoning]"); + // m_Entry.AddResponse(state.Mobile, "[Abandoning]"); state.Mobile.SendMessage("You abandon the page."); m_Entry.Handler = null; @@ -725,7 +725,7 @@ namespace Server.Engines.Help { if (m_Entry.Handler == state.Mobile) { - m_Entry.AddResponse(state.Mobile, "[Handled]"); + // m_Entry.AddResponse(state.Mobile, "[Handled]"); PageQueue.Remove(m_Entry); m_Entry.Handler = null; @@ -751,7 +751,7 @@ namespace Server.Engines.Help if (text != null) { - m_Entry.AddResponse(state.Mobile, "[Response] " + text.Text); + // m_Entry.AddResponse(state.Mobile, "[Response] " + text.Text); m_Entry.Sender.SendGump(new MessageSentGump(m_Entry.Sender, state.Mobile.Name, text.Text)); //m_Entry.Sender.SendMessage( 0x482, "{0} tells you:", state.Mobile.Name ); //m_Entry.Sender.SendMessage( 0x482, text.Text ); @@ -786,7 +786,7 @@ namespace Server.Engines.Help if (index >= 0 && index < preresp.Count) { - m_Entry.AddResponse(state.Mobile, "[PreDef] " + preresp[index].Title); + // m_Entry.AddResponse(state.Mobile, "[PreDef] " + preresp[index].Title); m_Entry.Sender.SendGump(new MessageSentGump(m_Entry.Sender, state.Mobile.Name, preresp[index].Message)); } diff --git a/Scripts/Engines/Help/PageResponseGump.cs b/Projects/Scripts/Engines/Help/PageResponseGump.cs similarity index 100% rename from Scripts/Engines/Help/PageResponseGump.cs rename to Projects/Scripts/Engines/Help/PageResponseGump.cs diff --git a/Scripts/Engines/Help/SpeechLog.cs b/Projects/Scripts/Engines/Help/SpeechLog.cs similarity index 100% rename from Scripts/Engines/Help/SpeechLog.cs rename to Projects/Scripts/Engines/Help/SpeechLog.cs diff --git a/Scripts/Engines/Help/SpeechLogGump.cs b/Projects/Scripts/Engines/Help/SpeechLogGump.cs similarity index 100% rename from Scripts/Engines/Help/SpeechLogGump.cs rename to Projects/Scripts/Engines/Help/SpeechLogGump.cs diff --git a/Scripts/Engines/Help/StuckMenu.cs b/Projects/Scripts/Engines/Help/StuckMenu.cs similarity index 100% rename from Scripts/Engines/Help/StuckMenu.cs rename to Projects/Scripts/Engines/Help/StuckMenu.cs diff --git a/Scripts/Engines/Khaldun/Books/GrimmochJournal.cs b/Projects/Scripts/Engines/Khaldun/Books/GrimmochJournal.cs similarity index 100% rename from Scripts/Engines/Khaldun/Books/GrimmochJournal.cs rename to Projects/Scripts/Engines/Khaldun/Books/GrimmochJournal.cs diff --git a/Scripts/Engines/Khaldun/Books/LysanderNotebook.cs b/Projects/Scripts/Engines/Khaldun/Books/LysanderNotebook.cs similarity index 100% rename from Scripts/Engines/Khaldun/Books/LysanderNotebook.cs rename to Projects/Scripts/Engines/Khaldun/Books/LysanderNotebook.cs diff --git a/Scripts/Engines/Khaldun/Books/TavarasJournal.cs b/Projects/Scripts/Engines/Khaldun/Books/TavarasJournal.cs similarity index 100% rename from Scripts/Engines/Khaldun/Books/TavarasJournal.cs rename to Projects/Scripts/Engines/Khaldun/Books/TavarasJournal.cs diff --git a/Scripts/Engines/Khaldun/KhaldunGen.cs b/Projects/Scripts/Engines/Khaldun/KhaldunGen.cs similarity index 100% rename from Scripts/Engines/Khaldun/KhaldunGen.cs rename to Projects/Scripts/Engines/Khaldun/KhaldunGen.cs diff --git a/Scripts/Engines/Khaldun/KhaldunPitTeleporter.cs b/Projects/Scripts/Engines/Khaldun/KhaldunPitTeleporter.cs similarity index 100% rename from Scripts/Engines/Khaldun/KhaldunPitTeleporter.cs rename to Projects/Scripts/Engines/Khaldun/KhaldunPitTeleporter.cs diff --git a/Scripts/Engines/Khaldun/Mobiles/GrimmochDrummel.cs b/Projects/Scripts/Engines/Khaldun/Mobiles/GrimmochDrummel.cs similarity index 100% rename from Scripts/Engines/Khaldun/Mobiles/GrimmochDrummel.cs rename to Projects/Scripts/Engines/Khaldun/Mobiles/GrimmochDrummel.cs diff --git a/Scripts/Engines/Khaldun/Mobiles/LysanderGathenwale.cs b/Projects/Scripts/Engines/Khaldun/Mobiles/LysanderGathenwale.cs similarity index 100% rename from Scripts/Engines/Khaldun/Mobiles/LysanderGathenwale.cs rename to Projects/Scripts/Engines/Khaldun/Mobiles/LysanderGathenwale.cs diff --git a/Scripts/Engines/Khaldun/Mobiles/MorgBergen.cs b/Projects/Scripts/Engines/Khaldun/Mobiles/MorgBergen.cs similarity index 100% rename from Scripts/Engines/Khaldun/Mobiles/MorgBergen.cs rename to Projects/Scripts/Engines/Khaldun/Mobiles/MorgBergen.cs diff --git a/Scripts/Engines/Khaldun/Mobiles/TavaraSewel.cs b/Projects/Scripts/Engines/Khaldun/Mobiles/TavaraSewel.cs similarity index 100% rename from Scripts/Engines/Khaldun/Mobiles/TavaraSewel.cs rename to Projects/Scripts/Engines/Khaldun/Mobiles/TavaraSewel.cs diff --git a/Scripts/Engines/Khaldun/PuzzleChest.cs b/Projects/Scripts/Engines/Khaldun/PuzzleChest.cs similarity index 100% rename from Scripts/Engines/Khaldun/PuzzleChest.cs rename to Projects/Scripts/Engines/Khaldun/PuzzleChest.cs diff --git a/Scripts/Engines/Khaldun/RaisableItem.cs b/Projects/Scripts/Engines/Khaldun/RaisableItem.cs similarity index 100% rename from Scripts/Engines/Khaldun/RaisableItem.cs rename to Projects/Scripts/Engines/Khaldun/RaisableItem.cs diff --git a/Scripts/Engines/Khaldun/RaiseSwitch.cs b/Projects/Scripts/Engines/Khaldun/RaiseSwitch.cs similarity index 100% rename from Scripts/Engines/Khaldun/RaiseSwitch.cs rename to Projects/Scripts/Engines/Khaldun/RaiseSwitch.cs diff --git a/Scripts/Engines/MLQuests/Definitions/AGhostOfCovetous.cs b/Projects/Scripts/Engines/MLQuests/Definitions/AGhostOfCovetous.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/AGhostOfCovetous.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/AGhostOfCovetous.cs diff --git a/Scripts/Engines/MLQuests/Definitions/BaseEscort.cs b/Projects/Scripts/Engines/MLQuests/Definitions/BaseEscort.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/BaseEscort.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/BaseEscort.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Bedlam.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Bedlam.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Bedlam.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Bedlam.cs diff --git a/Scripts/Engines/MLQuests/Definitions/BlightedGrove.cs b/Projects/Scripts/Engines/MLQuests/Definitions/BlightedGrove.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/BlightedGrove.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/BlightedGrove.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Britannia.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Britannia.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Britannia.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Britannia.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Heartwood.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Heartwood.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Heartwood.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Heartwood.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Heritage.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Heritage.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Heritage.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Heritage.cs diff --git a/Scripts/Engines/MLQuests/Definitions/HonestBeggar.cs b/Projects/Scripts/Engines/MLQuests/Definitions/HonestBeggar.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/HonestBeggar.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/HonestBeggar.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Ilshenar.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Ilshenar.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Ilshenar.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Ilshenar.cs diff --git a/Scripts/Engines/MLQuests/Definitions/LostItems.cs b/Projects/Scripts/Engines/MLQuests/Definitions/LostItems.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/LostItems.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/LostItems.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Malas.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Malas.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Malas.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Malas.cs diff --git a/Scripts/Engines/MLQuests/Definitions/MistakenIdentity.cs b/Projects/Scripts/Engines/MLQuests/Definitions/MistakenIdentity.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/MistakenIdentity.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/MistakenIdentity.cs diff --git a/Scripts/Engines/MLQuests/Definitions/NewHaven.cs b/Projects/Scripts/Engines/MLQuests/Definitions/NewHaven.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/NewHaven.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/NewHaven.cs diff --git a/Scripts/Engines/MLQuests/Definitions/NewHavenSkillTraining.cs b/Projects/Scripts/Engines/MLQuests/Definitions/NewHavenSkillTraining.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/NewHavenSkillTraining.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/NewHavenSkillTraining.cs diff --git a/Scripts/Engines/MLQuests/Definitions/NewHavenTraining.cs b/Projects/Scripts/Engines/MLQuests/Definitions/NewHavenTraining.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/NewHavenTraining.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/NewHavenTraining.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Sanctuary.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Sanctuary.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Sanctuary.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Sanctuary.cs diff --git a/Scripts/Engines/MLQuests/Definitions/Spellweaving.cs b/Projects/Scripts/Engines/MLQuests/Definitions/Spellweaving.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/Spellweaving.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/Spellweaving.cs diff --git a/Scripts/Engines/MLQuests/Definitions/TheAncientWorld.cs b/Projects/Scripts/Engines/MLQuests/Definitions/TheAncientWorld.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/TheAncientWorld.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/TheAncientWorld.cs diff --git a/Scripts/Engines/MLQuests/Definitions/TownEscorts.cs b/Projects/Scripts/Engines/MLQuests/Definitions/TownEscorts.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/TownEscorts.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/TownEscorts.cs diff --git a/Scripts/Engines/MLQuests/Definitions/UnfadingMemories.cs b/Projects/Scripts/Engines/MLQuests/Definitions/UnfadingMemories.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/UnfadingMemories.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/UnfadingMemories.cs diff --git a/Scripts/Engines/MLQuests/Definitions/WarriorsOfTheGemKeeper.cs b/Projects/Scripts/Engines/MLQuests/Definitions/WarriorsOfTheGemKeeper.cs similarity index 100% rename from Scripts/Engines/MLQuests/Definitions/WarriorsOfTheGemKeeper.cs rename to Projects/Scripts/Engines/MLQuests/Definitions/WarriorsOfTheGemKeeper.cs diff --git a/Scripts/Engines/MLQuests/Gumps/BaseQuestGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/BaseQuestGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/BaseQuestGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/BaseQuestGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/InfoNPCGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/InfoNPCGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/InfoNPCGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/InfoNPCGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestCancelConfirmGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestCancelConfirmGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestCancelConfirmGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestCancelConfirmGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestConversationGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestConversationGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestConversationGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestConversationGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestLogDetailedGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestLogDetailedGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestLogDetailedGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestLogDetailedGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestLogGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestLogGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestLogGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestLogGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestOfferGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestOfferGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestOfferGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestOfferGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestReportBackGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestReportBackGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestReportBackGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestReportBackGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/QuestRewardGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/QuestRewardGump.cs similarity index 100% rename from Scripts/Engines/MLQuests/Gumps/QuestRewardGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/QuestRewardGump.cs diff --git a/Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs b/Projects/Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs similarity index 95% rename from Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs rename to Projects/Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs index 11ae33826..a1719cbea 100644 --- a/Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs +++ b/Projects/Scripts/Engines/MLQuests/Gumps/RaceChangeGump.cs @@ -177,7 +177,7 @@ namespace Server.Engines.MLQuests.Gumps IRaceChanger owner = raceChangeState.m_Owner; Race targetRace = raceChangeState.m_TargetRace; - if (pvSrc.Size == 5) + if (pvSrc.Length == 5) { owner?.OnCancel(pm); diff --git a/Scripts/Engines/MLQuests/IQuestGiver.cs b/Projects/Scripts/Engines/MLQuests/IQuestGiver.cs similarity index 100% rename from Scripts/Engines/MLQuests/IQuestGiver.cs rename to Projects/Scripts/Engines/MLQuests/IQuestGiver.cs diff --git a/Scripts/Engines/MLQuests/Items/ABauble.cs b/Projects/Scripts/Engines/MLQuests/Items/ABauble.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/ABauble.cs rename to Projects/Scripts/Engines/MLQuests/Items/ABauble.cs diff --git a/Scripts/Engines/MLQuests/Items/APersonalLetterAddressedToAhie.cs b/Projects/Scripts/Engines/MLQuests/Items/APersonalLetterAddressedToAhie.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/APersonalLetterAddressedToAhie.cs rename to Projects/Scripts/Engines/MLQuests/Items/APersonalLetterAddressedToAhie.cs diff --git a/Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs b/Projects/Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs rename to Projects/Scripts/Engines/MLQuests/Items/AlchemistsBandage.cs diff --git a/Scripts/Engines/MLQuests/Items/AnOldNecklace.cs b/Projects/Scripts/Engines/MLQuests/Items/AnOldNecklace.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AnOldNecklace.cs rename to Projects/Scripts/Engines/MLQuests/Items/AnOldNecklace.cs diff --git a/Scripts/Engines/MLQuests/Items/AnOldRing.cs b/Projects/Scripts/Engines/MLQuests/Items/AnOldRing.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AnOldRing.cs rename to Projects/Scripts/Engines/MLQuests/Items/AnOldRing.cs diff --git a/Scripts/Engines/MLQuests/Items/AndricSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/AndricSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AndricSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/AndricSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/AndrosGratitude.cs b/Projects/Scripts/Engines/MLQuests/Items/AndrosGratitude.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AndrosGratitude.cs rename to Projects/Scripts/Engines/MLQuests/Items/AndrosGratitude.cs diff --git a/Scripts/Engines/MLQuests/Items/AsandosSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/AsandosSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/AsandosSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/AsandosSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/BasinOfCrystalClearWater.cs b/Projects/Scripts/Engines/MLQuests/Items/BasinOfCrystalClearWater.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/BasinOfCrystalClearWater.cs rename to Projects/Scripts/Engines/MLQuests/Items/BasinOfCrystalClearWater.cs diff --git a/Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs b/Projects/Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs rename to Projects/Scripts/Engines/MLQuests/Items/BedlamTeleporter.cs diff --git a/Scripts/Engines/MLQuests/Items/Bleach.cs b/Projects/Scripts/Engines/MLQuests/Items/Bleach.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/Bleach.cs rename to Projects/Scripts/Engines/MLQuests/Items/Bleach.cs diff --git a/Scripts/Engines/MLQuests/Items/BridesLetter.cs b/Projects/Scripts/Engines/MLQuests/Items/BridesLetter.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/BridesLetter.cs rename to Projects/Scripts/Engines/MLQuests/Items/BridesLetter.cs diff --git a/Scripts/Engines/MLQuests/Items/CompletedTuitionReimbursementForm.cs b/Projects/Scripts/Engines/MLQuests/Items/CompletedTuitionReimbursementForm.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/CompletedTuitionReimbursementForm.cs rename to Projects/Scripts/Engines/MLQuests/Items/CompletedTuitionReimbursementForm.cs diff --git a/Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/CraftmansSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/CrateForSledge.cs b/Projects/Scripts/Engines/MLQuests/Items/CrateForSledge.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/CrateForSledge.cs rename to Projects/Scripts/Engines/MLQuests/Items/CrateForSledge.cs diff --git a/Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs b/Projects/Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs rename to Projects/Scripts/Engines/MLQuests/Items/DreadSpiderSilk.cs diff --git a/Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs b/Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs rename to Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMap.cs diff --git a/Scripts/Engines/MLQuests/Items/FragmentOfAMapDelivery.cs b/Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMapDelivery.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/FragmentOfAMapDelivery.cs rename to Projects/Scripts/Engines/MLQuests/Items/FragmentOfAMapDelivery.cs diff --git a/Scripts/Engines/MLQuests/Items/FriendOfTheLibraryToken.cs b/Projects/Scripts/Engines/MLQuests/Items/FriendOfTheLibraryToken.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/FriendOfTheLibraryToken.cs rename to Projects/Scripts/Engines/MLQuests/Items/FriendOfTheLibraryToken.cs diff --git a/Scripts/Engines/MLQuests/Items/FriendsOfTheLibraryApplication.cs b/Projects/Scripts/Engines/MLQuests/Items/FriendsOfTheLibraryApplication.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/FriendsOfTheLibraryApplication.cs rename to Projects/Scripts/Engines/MLQuests/Items/FriendsOfTheLibraryApplication.cs diff --git a/Scripts/Engines/MLQuests/Items/GamanHorns.cs b/Projects/Scripts/Engines/MLQuests/Items/GamanHorns.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/GamanHorns.cs rename to Projects/Scripts/Engines/MLQuests/Items/GamanHorns.cs diff --git a/Scripts/Engines/MLQuests/Items/GervisSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/GervisSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/GervisSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/GervisSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/GiftForArielle.cs b/Projects/Scripts/Engines/MLQuests/Items/GiftForArielle.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/GiftForArielle.cs rename to Projects/Scripts/Engines/MLQuests/Items/GiftForArielle.cs diff --git a/Scripts/Engines/MLQuests/Items/HargroveSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/HargroveSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/HargroveSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/HargroveSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/KirinBrains.cs b/Projects/Scripts/Engines/MLQuests/Items/KirinBrains.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/KirinBrains.cs rename to Projects/Scripts/Engines/MLQuests/Items/KirinBrains.cs diff --git a/Scripts/Engines/MLQuests/Items/LowelSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/LowelSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/LowelSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/LowelSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs b/Projects/Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs rename to Projects/Scripts/Engines/MLQuests/Items/MiniatureMushroom.cs diff --git a/Scripts/Engines/MLQuests/Items/MirrorOfPurification.cs b/Projects/Scripts/Engines/MLQuests/Items/MirrorOfPurification.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/MirrorOfPurification.cs rename to Projects/Scripts/Engines/MLQuests/Items/MirrorOfPurification.cs diff --git a/Scripts/Engines/MLQuests/Items/MuggSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/MuggSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/MuggSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/MuggSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/NibbetSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/NibbetSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/NibbetSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/NibbetSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/NotarizedApplication.cs b/Projects/Scripts/Engines/MLQuests/Items/NotarizedApplication.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/NotarizedApplication.cs rename to Projects/Scripts/Engines/MLQuests/Items/NotarizedApplication.cs diff --git a/Scripts/Engines/MLQuests/Items/OfficialSealingWax.cs b/Projects/Scripts/Engines/MLQuests/Items/OfficialSealingWax.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/OfficialSealingWax.cs rename to Projects/Scripts/Engines/MLQuests/Items/OfficialSealingWax.cs diff --git a/Scripts/Engines/MLQuests/Items/PeppercornFishsteak.cs b/Projects/Scripts/Engines/MLQuests/Items/PeppercornFishsteak.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/PeppercornFishsteak.cs rename to Projects/Scripts/Engines/MLQuests/Items/PeppercornFishsteak.cs diff --git a/Scripts/Engines/MLQuests/Items/PixieLeg.cs b/Projects/Scripts/Engines/MLQuests/Items/PixieLeg.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/PixieLeg.cs rename to Projects/Scripts/Engines/MLQuests/Items/PixieLeg.cs diff --git a/Scripts/Engines/MLQuests/Items/PortraitOfTheBride.cs b/Projects/Scripts/Engines/MLQuests/Items/PortraitOfTheBride.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/PortraitOfTheBride.cs rename to Projects/Scripts/Engines/MLQuests/Items/PortraitOfTheBride.cs diff --git a/Scripts/Engines/MLQuests/Items/PrismaticAmber.cs b/Projects/Scripts/Engines/MLQuests/Items/PrismaticAmber.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/PrismaticAmber.cs rename to Projects/Scripts/Engines/MLQuests/Items/PrismaticAmber.cs diff --git a/Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs b/Projects/Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs rename to Projects/Scripts/Engines/MLQuests/Items/PrismaticCrystal.cs diff --git a/Scripts/Engines/MLQuests/Items/QuestGiverItem.cs b/Projects/Scripts/Engines/MLQuests/Items/QuestGiverItem.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/QuestGiverItem.cs rename to Projects/Scripts/Engines/MLQuests/Items/QuestGiverItem.cs diff --git a/Scripts/Engines/MLQuests/Items/RedLeatherBook.cs b/Projects/Scripts/Engines/MLQuests/Items/RedLeatherBook.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/RedLeatherBook.cs rename to Projects/Scripts/Engines/MLQuests/Items/RedLeatherBook.cs diff --git a/Scripts/Engines/MLQuests/Items/ReginasLetter.cs b/Projects/Scripts/Engines/MLQuests/Items/ReginasLetter.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/ReginasLetter.cs rename to Projects/Scripts/Engines/MLQuests/Items/ReginasLetter.cs diff --git a/Scripts/Engines/MLQuests/Items/ReginasRing.cs b/Projects/Scripts/Engines/MLQuests/Items/ReginasRing.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/ReginasRing.cs rename to Projects/Scripts/Engines/MLQuests/Items/ReginasRing.cs diff --git a/Scripts/Engines/MLQuests/Items/RewardBags.cs b/Projects/Scripts/Engines/MLQuests/Items/RewardBags.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/RewardBags.cs rename to Projects/Scripts/Engines/MLQuests/Items/RewardBags.cs diff --git a/Scripts/Engines/MLQuests/Items/SadrahSatchel.cs b/Projects/Scripts/Engines/MLQuests/Items/SadrahSatchel.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SadrahSatchel.cs rename to Projects/Scripts/Engines/MLQuests/Items/SadrahSatchel.cs diff --git a/Scripts/Engines/MLQuests/Items/SapOfSosaria.cs b/Projects/Scripts/Engines/MLQuests/Items/SapOfSosaria.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SapOfSosaria.cs rename to Projects/Scripts/Engines/MLQuests/Items/SapOfSosaria.cs diff --git a/Scripts/Engines/MLQuests/Items/SealedNotesForJamal.cs b/Projects/Scripts/Engines/MLQuests/Items/SealedNotesForJamal.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SealedNotesForJamal.cs rename to Projects/Scripts/Engines/MLQuests/Items/SealedNotesForJamal.cs diff --git a/Scripts/Engines/MLQuests/Items/SealingWaxOrderAddressedToPetrus.cs b/Projects/Scripts/Engines/MLQuests/Items/SealingWaxOrderAddressedToPetrus.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SealingWaxOrderAddressedToPetrus.cs rename to Projects/Scripts/Engines/MLQuests/Items/SealingWaxOrderAddressedToPetrus.cs diff --git a/Scripts/Engines/MLQuests/Items/SeveredElfEars.cs b/Projects/Scripts/Engines/MLQuests/Items/SeveredElfEars.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SeveredElfEars.cs rename to Projects/Scripts/Engines/MLQuests/Items/SeveredElfEars.cs diff --git a/Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs b/Projects/Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs rename to Projects/Scripts/Engines/MLQuests/Items/SeveredHumanEars.cs diff --git a/Scripts/Engines/MLQuests/Items/SignedTuitionReimbursementForm.cs b/Projects/Scripts/Engines/MLQuests/Items/SignedTuitionReimbursementForm.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SignedTuitionReimbursementForm.cs rename to Projects/Scripts/Engines/MLQuests/Items/SignedTuitionReimbursementForm.cs diff --git a/Scripts/Engines/MLQuests/Items/SpecialTreatForDrithen.cs b/Projects/Scripts/Engines/MLQuests/Items/SpecialTreatForDrithen.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SpecialTreatForDrithen.cs rename to Projects/Scripts/Engines/MLQuests/Items/SpecialTreatForDrithen.cs diff --git a/Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs b/Projects/Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs rename to Projects/Scripts/Engines/MLQuests/Items/SpeckledPoisonSac.cs diff --git a/Scripts/Engines/MLQuests/Items/SpiritBottle.cs b/Projects/Scripts/Engines/MLQuests/Items/SpiritBottle.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/SpiritBottle.cs rename to Projects/Scripts/Engines/MLQuests/Items/SpiritBottle.cs diff --git a/Scripts/Engines/MLQuests/Items/StoutWhip.cs b/Projects/Scripts/Engines/MLQuests/Items/StoutWhip.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/StoutWhip.cs rename to Projects/Scripts/Engines/MLQuests/Items/StoutWhip.cs diff --git a/Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs b/Projects/Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs rename to Projects/Scripts/Engines/MLQuests/Items/TaintedTreeSample.cs diff --git a/Scripts/Engines/MLQuests/Items/Teleporters.cs b/Projects/Scripts/Engines/MLQuests/Items/Teleporters.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/Teleporters.cs rename to Projects/Scripts/Engines/MLQuests/Items/Teleporters.cs diff --git a/Scripts/Engines/MLQuests/Items/TransparentHeart.cs b/Projects/Scripts/Engines/MLQuests/Items/TransparentHeart.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/TransparentHeart.cs rename to Projects/Scripts/Engines/MLQuests/Items/TransparentHeart.cs diff --git a/Scripts/Engines/MLQuests/Items/TuitionReimbursementForm.cs b/Projects/Scripts/Engines/MLQuests/Items/TuitionReimbursementForm.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/TuitionReimbursementForm.cs rename to Projects/Scripts/Engines/MLQuests/Items/TuitionReimbursementForm.cs diff --git a/Scripts/Engines/MLQuests/Items/UnicornRibs.cs b/Projects/Scripts/Engines/MLQuests/Items/UnicornRibs.cs similarity index 100% rename from Scripts/Engines/MLQuests/Items/UnicornRibs.cs rename to Projects/Scripts/Engines/MLQuests/Items/UnicornRibs.cs diff --git a/Scripts/Engines/MLQuests/MLQuest.cs b/Projects/Scripts/Engines/MLQuests/MLQuest.cs similarity index 100% rename from Scripts/Engines/MLQuests/MLQuest.cs rename to Projects/Scripts/Engines/MLQuests/MLQuest.cs diff --git a/Scripts/Engines/MLQuests/MLQuestContext.cs b/Projects/Scripts/Engines/MLQuests/MLQuestContext.cs similarity index 100% rename from Scripts/Engines/MLQuests/MLQuestContext.cs rename to Projects/Scripts/Engines/MLQuests/MLQuestContext.cs diff --git a/Scripts/Engines/MLQuests/MLQuestEntry.cs b/Projects/Scripts/Engines/MLQuests/MLQuestEntry.cs similarity index 100% rename from Scripts/Engines/MLQuests/MLQuestEntry.cs rename to Projects/Scripts/Engines/MLQuests/MLQuestEntry.cs diff --git a/Scripts/Engines/MLQuests/MLQuestPersistence.cs b/Projects/Scripts/Engines/MLQuests/MLQuestPersistence.cs similarity index 100% rename from Scripts/Engines/MLQuests/MLQuestPersistence.cs rename to Projects/Scripts/Engines/MLQuests/MLQuestPersistence.cs diff --git a/Scripts/Engines/MLQuests/MLQuestSystem.cs b/Projects/Scripts/Engines/MLQuests/MLQuestSystem.cs similarity index 100% rename from Scripts/Engines/MLQuests/MLQuestSystem.cs rename to Projects/Scripts/Engines/MLQuests/MLQuestSystem.cs diff --git a/Scripts/Engines/MLQuests/Mobiles/BoonCollector.cs b/Projects/Scripts/Engines/MLQuests/Mobiles/BoonCollector.cs similarity index 100% rename from Scripts/Engines/MLQuests/Mobiles/BoonCollector.cs rename to Projects/Scripts/Engines/MLQuests/Mobiles/BoonCollector.cs diff --git a/Scripts/Engines/MLQuests/Mobiles/SirHelper.cs b/Projects/Scripts/Engines/MLQuests/Mobiles/SirHelper.cs similarity index 100% rename from Scripts/Engines/MLQuests/Mobiles/SirHelper.cs rename to Projects/Scripts/Engines/MLQuests/Mobiles/SirHelper.cs diff --git a/Scripts/Engines/MLQuests/Objectives/BaseObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/BaseObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/BaseObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/BaseObjective.cs diff --git a/Scripts/Engines/MLQuests/Objectives/CollectObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/CollectObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/CollectObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/CollectObjective.cs diff --git a/Scripts/Engines/MLQuests/Objectives/DeliverObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/DeliverObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/DeliverObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/DeliverObjective.cs diff --git a/Scripts/Engines/MLQuests/Objectives/EscortObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/EscortObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/EscortObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/EscortObjective.cs diff --git a/Scripts/Engines/MLQuests/Objectives/GainSkillObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/GainSkillObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/GainSkillObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/GainSkillObjective.cs diff --git a/Scripts/Engines/MLQuests/Objectives/KillObjective.cs b/Projects/Scripts/Engines/MLQuests/Objectives/KillObjective.cs similarity index 100% rename from Scripts/Engines/MLQuests/Objectives/KillObjective.cs rename to Projects/Scripts/Engines/MLQuests/Objectives/KillObjective.cs diff --git a/Scripts/Engines/MLQuests/QuestArea.cs b/Projects/Scripts/Engines/MLQuests/QuestArea.cs similarity index 100% rename from Scripts/Engines/MLQuests/QuestArea.cs rename to Projects/Scripts/Engines/MLQuests/QuestArea.cs diff --git a/Scripts/Engines/MLQuests/QuesterNameAttribute.cs b/Projects/Scripts/Engines/MLQuests/QuesterNameAttribute.cs similarity index 100% rename from Scripts/Engines/MLQuests/QuesterNameAttribute.cs rename to Projects/Scripts/Engines/MLQuests/QuesterNameAttribute.cs diff --git a/Scripts/Engines/MLQuests/Rewards/BaseReward.cs b/Projects/Scripts/Engines/MLQuests/Rewards/BaseReward.cs similarity index 100% rename from Scripts/Engines/MLQuests/Rewards/BaseReward.cs rename to Projects/Scripts/Engines/MLQuests/Rewards/BaseReward.cs diff --git a/Scripts/Engines/MLQuests/Rewards/DummyReward.cs b/Projects/Scripts/Engines/MLQuests/Rewards/DummyReward.cs similarity index 100% rename from Scripts/Engines/MLQuests/Rewards/DummyReward.cs rename to Projects/Scripts/Engines/MLQuests/Rewards/DummyReward.cs diff --git a/Scripts/Engines/MLQuests/Rewards/ItemReward.cs b/Projects/Scripts/Engines/MLQuests/Rewards/ItemReward.cs similarity index 100% rename from Scripts/Engines/MLQuests/Rewards/ItemReward.cs rename to Projects/Scripts/Engines/MLQuests/Rewards/ItemReward.cs diff --git a/Scripts/Engines/MyRunUO/Config.cs b/Projects/Scripts/Engines/MyRunUO/Config.cs similarity index 100% rename from Scripts/Engines/MyRunUO/Config.cs rename to Projects/Scripts/Engines/MyRunUO/Config.cs diff --git a/Scripts/Engines/MyRunUO/LayerComparer.cs b/Projects/Scripts/Engines/MyRunUO/LayerComparer.cs similarity index 100% rename from Scripts/Engines/MyRunUO/LayerComparer.cs rename to Projects/Scripts/Engines/MyRunUO/LayerComparer.cs diff --git a/Scripts/Engines/Party/AddPartyTarget.cs b/Projects/Scripts/Engines/Party/AddPartyTarget.cs similarity index 100% rename from Scripts/Engines/Party/AddPartyTarget.cs rename to Projects/Scripts/Engines/Party/AddPartyTarget.cs diff --git a/Scripts/Engines/Party/DeclineTimer.cs b/Projects/Scripts/Engines/Party/DeclineTimer.cs similarity index 100% rename from Scripts/Engines/Party/DeclineTimer.cs rename to Projects/Scripts/Engines/Party/DeclineTimer.cs diff --git a/Scripts/Engines/Party/Packets.cs b/Projects/Scripts/Engines/Party/Packets.cs similarity index 100% rename from Scripts/Engines/Party/Packets.cs rename to Projects/Scripts/Engines/Party/Packets.cs diff --git a/Scripts/Engines/Party/Party.cs b/Projects/Scripts/Engines/Party/Party.cs similarity index 100% rename from Scripts/Engines/Party/Party.cs rename to Projects/Scripts/Engines/Party/Party.cs diff --git a/Scripts/Engines/Party/PartyCommands.cs b/Projects/Scripts/Engines/Party/PartyCommands.cs similarity index 100% rename from Scripts/Engines/Party/PartyCommands.cs rename to Projects/Scripts/Engines/Party/PartyCommands.cs diff --git a/Scripts/Engines/Party/PartyMemberInfo.cs b/Projects/Scripts/Engines/Party/PartyMemberInfo.cs similarity index 100% rename from Scripts/Engines/Party/PartyMemberInfo.cs rename to Projects/Scripts/Engines/Party/PartyMemberInfo.cs diff --git a/Scripts/Engines/Party/RemoveFromParty.cs b/Projects/Scripts/Engines/Party/RemoveFromParty.cs similarity index 100% rename from Scripts/Engines/Party/RemoveFromParty.cs rename to Projects/Scripts/Engines/Party/RemoveFromParty.cs diff --git a/Scripts/Engines/Party/RemovePartyTarget.cs b/Projects/Scripts/Engines/Party/RemovePartyTarget.cs similarity index 100% rename from Scripts/Engines/Party/RemovePartyTarget.cs rename to Projects/Scripts/Engines/Party/RemovePartyTarget.cs diff --git a/Scripts/Engines/Pathing/FastAStarAlgorithm.cs b/Projects/Scripts/Engines/Pathing/FastAStarAlgorithm.cs similarity index 100% rename from Scripts/Engines/Pathing/FastAStarAlgorithm.cs rename to Projects/Scripts/Engines/Pathing/FastAStarAlgorithm.cs diff --git a/Scripts/Engines/Pathing/FastMovement.cs b/Projects/Scripts/Engines/Pathing/FastMovement.cs similarity index 100% rename from Scripts/Engines/Pathing/FastMovement.cs rename to Projects/Scripts/Engines/Pathing/FastMovement.cs diff --git a/Scripts/Engines/Pathing/MoveResult.cs b/Projects/Scripts/Engines/Pathing/MoveResult.cs similarity index 100% rename from Scripts/Engines/Pathing/MoveResult.cs rename to Projects/Scripts/Engines/Pathing/MoveResult.cs diff --git a/Scripts/Engines/Pathing/Movement.cs b/Projects/Scripts/Engines/Pathing/Movement.cs similarity index 100% rename from Scripts/Engines/Pathing/Movement.cs rename to Projects/Scripts/Engines/Pathing/Movement.cs diff --git a/Scripts/Engines/Pathing/MovementPath.cs b/Projects/Scripts/Engines/Pathing/MovementPath.cs similarity index 100% rename from Scripts/Engines/Pathing/MovementPath.cs rename to Projects/Scripts/Engines/Pathing/MovementPath.cs diff --git a/Scripts/Engines/Pathing/PathAlgorithm.cs b/Projects/Scripts/Engines/Pathing/PathAlgorithm.cs similarity index 100% rename from Scripts/Engines/Pathing/PathAlgorithm.cs rename to Projects/Scripts/Engines/Pathing/PathAlgorithm.cs diff --git a/Scripts/Engines/Pathing/PathFollower.cs b/Projects/Scripts/Engines/Pathing/PathFollower.cs similarity index 100% rename from Scripts/Engines/Pathing/PathFollower.cs rename to Projects/Scripts/Engines/Pathing/PathFollower.cs diff --git a/Scripts/Engines/Pathing/SlowAStarAlgorithm.cs b/Projects/Scripts/Engines/Pathing/SlowAStarAlgorithm.cs similarity index 100% rename from Scripts/Engines/Pathing/SlowAStarAlgorithm.cs rename to Projects/Scripts/Engines/Pathing/SlowAStarAlgorithm.cs diff --git a/Scripts/Engines/Plants/EmptyTheBowlGump.cs b/Projects/Scripts/Engines/Plants/EmptyTheBowlGump.cs similarity index 100% rename from Scripts/Engines/Plants/EmptyTheBowlGump.cs rename to Projects/Scripts/Engines/Plants/EmptyTheBowlGump.cs diff --git a/Scripts/Engines/Plants/MainPlantGump.cs b/Projects/Scripts/Engines/Plants/MainPlantGump.cs similarity index 100% rename from Scripts/Engines/Plants/MainPlantGump.cs rename to Projects/Scripts/Engines/Plants/MainPlantGump.cs diff --git a/Scripts/Engines/Plants/MiscItems/FertileDirt.cs b/Projects/Scripts/Engines/Plants/MiscItems/FertileDirt.cs similarity index 100% rename from Scripts/Engines/Plants/MiscItems/FertileDirt.cs rename to Projects/Scripts/Engines/Plants/MiscItems/FertileDirt.cs diff --git a/Scripts/Engines/Plants/MiscItems/GreenThorns.cs b/Projects/Scripts/Engines/Plants/MiscItems/GreenThorns.cs similarity index 100% rename from Scripts/Engines/Plants/MiscItems/GreenThorns.cs rename to Projects/Scripts/Engines/Plants/MiscItems/GreenThorns.cs diff --git a/Scripts/Engines/Plants/MiscItems/OrangePetals.cs b/Projects/Scripts/Engines/Plants/MiscItems/OrangePetals.cs similarity index 100% rename from Scripts/Engines/Plants/MiscItems/OrangePetals.cs rename to Projects/Scripts/Engines/Plants/MiscItems/OrangePetals.cs diff --git a/Scripts/Engines/Plants/MiscItems/RedLeaves.cs b/Projects/Scripts/Engines/Plants/MiscItems/RedLeaves.cs similarity index 100% rename from Scripts/Engines/Plants/MiscItems/RedLeaves.cs rename to Projects/Scripts/Engines/Plants/MiscItems/RedLeaves.cs diff --git a/Scripts/Engines/Plants/MiscMobiles/GiantIceWorm.cs b/Projects/Scripts/Engines/Plants/MiscMobiles/GiantIceWorm.cs similarity index 100% rename from Scripts/Engines/Plants/MiscMobiles/GiantIceWorm.cs rename to Projects/Scripts/Engines/Plants/MiscMobiles/GiantIceWorm.cs diff --git a/Scripts/Engines/Plants/Network/DisplayHelpTopic.cs b/Projects/Scripts/Engines/Plants/Network/DisplayHelpTopic.cs similarity index 100% rename from Scripts/Engines/Plants/Network/DisplayHelpTopic.cs rename to Projects/Scripts/Engines/Plants/Network/DisplayHelpTopic.cs diff --git a/Scripts/Engines/Plants/PlantBowl.cs b/Projects/Scripts/Engines/Plants/PlantBowl.cs similarity index 100% rename from Scripts/Engines/Plants/PlantBowl.cs rename to Projects/Scripts/Engines/Plants/PlantBowl.cs diff --git a/Scripts/Engines/Plants/PlantHue.cs b/Projects/Scripts/Engines/Plants/PlantHue.cs similarity index 100% rename from Scripts/Engines/Plants/PlantHue.cs rename to Projects/Scripts/Engines/Plants/PlantHue.cs diff --git a/Scripts/Engines/Plants/PlantItem.cs b/Projects/Scripts/Engines/Plants/PlantItem.cs similarity index 100% rename from Scripts/Engines/Plants/PlantItem.cs rename to Projects/Scripts/Engines/Plants/PlantItem.cs diff --git a/Scripts/Engines/Plants/PlantPourTarget.cs b/Projects/Scripts/Engines/Plants/PlantPourTarget.cs similarity index 100% rename from Scripts/Engines/Plants/PlantPourTarget.cs rename to Projects/Scripts/Engines/Plants/PlantPourTarget.cs diff --git a/Scripts/Engines/Plants/PlantResources.cs b/Projects/Scripts/Engines/Plants/PlantResources.cs similarity index 100% rename from Scripts/Engines/Plants/PlantResources.cs rename to Projects/Scripts/Engines/Plants/PlantResources.cs diff --git a/Scripts/Engines/Plants/PlantSystem.cs b/Projects/Scripts/Engines/Plants/PlantSystem.cs similarity index 100% rename from Scripts/Engines/Plants/PlantSystem.cs rename to Projects/Scripts/Engines/Plants/PlantSystem.cs diff --git a/Scripts/Engines/Plants/PlantType.cs b/Projects/Scripts/Engines/Plants/PlantType.cs similarity index 100% rename from Scripts/Engines/Plants/PlantType.cs rename to Projects/Scripts/Engines/Plants/PlantType.cs diff --git a/Scripts/Engines/Plants/PollinateTarget.cs b/Projects/Scripts/Engines/Plants/PollinateTarget.cs similarity index 100% rename from Scripts/Engines/Plants/PollinateTarget.cs rename to Projects/Scripts/Engines/Plants/PollinateTarget.cs diff --git a/Scripts/Engines/Plants/ReproductionGump.cs b/Projects/Scripts/Engines/Plants/ReproductionGump.cs similarity index 100% rename from Scripts/Engines/Plants/ReproductionGump.cs rename to Projects/Scripts/Engines/Plants/ReproductionGump.cs diff --git a/Scripts/Engines/Plants/Seed.cs b/Projects/Scripts/Engines/Plants/Seed.cs similarity index 100% rename from Scripts/Engines/Plants/Seed.cs rename to Projects/Scripts/Engines/Plants/Seed.cs diff --git a/Scripts/Engines/Plants/SetToDecorativeGump.cs b/Projects/Scripts/Engines/Plants/SetToDecorativeGump.cs similarity index 100% rename from Scripts/Engines/Plants/SetToDecorativeGump.cs rename to Projects/Scripts/Engines/Plants/SetToDecorativeGump.cs diff --git a/Scripts/Engines/Quests/Ambitious Solen Queen/AmbitiousQueenQuest.cs b/Projects/Scripts/Engines/Quests/Ambitious Solen Queen/AmbitiousQueenQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Ambitious Solen Queen/AmbitiousQueenQuest.cs rename to Projects/Scripts/Engines/Quests/Ambitious Solen Queen/AmbitiousQueenQuest.cs diff --git a/Scripts/Engines/Quests/Ambitious Solen Queen/Conversations.cs b/Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Ambitious Solen Queen/Conversations.cs rename to Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Conversations.cs diff --git a/Scripts/Engines/Quests/Ambitious Solen Queen/Mobiles/AmbitiousSolenQueen.cs b/Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Mobiles/AmbitiousSolenQueen.cs similarity index 100% rename from Scripts/Engines/Quests/Ambitious Solen Queen/Mobiles/AmbitiousSolenQueen.cs rename to Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Mobiles/AmbitiousSolenQueen.cs diff --git a/Scripts/Engines/Quests/Ambitious Solen Queen/Objectives.cs b/Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Ambitious Solen Queen/Objectives.cs rename to Projects/Scripts/Engines/Quests/Ambitious Solen Queen/Objectives.cs diff --git a/Scripts/Engines/Quests/Collector/CollectorQuest.cs b/Projects/Scripts/Engines/Quests/Collector/CollectorQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/CollectorQuest.cs rename to Projects/Scripts/Engines/Quests/Collector/CollectorQuest.cs diff --git a/Scripts/Engines/Quests/Collector/Conversations.cs b/Projects/Scripts/Engines/Quests/Collector/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Conversations.cs rename to Projects/Scripts/Engines/Quests/Collector/Conversations.cs diff --git a/Scripts/Engines/Quests/Collector/Items/EnchantedPaints.cs b/Projects/Scripts/Engines/Quests/Collector/Items/EnchantedPaints.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Items/EnchantedPaints.cs rename to Projects/Scripts/Engines/Quests/Collector/Items/EnchantedPaints.cs diff --git a/Scripts/Engines/Quests/Collector/Items/ImageTypeInfo.cs b/Projects/Scripts/Engines/Quests/Collector/Items/ImageTypeInfo.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Items/ImageTypeInfo.cs rename to Projects/Scripts/Engines/Quests/Collector/Items/ImageTypeInfo.cs diff --git a/Scripts/Engines/Quests/Collector/Items/Obsidian.cs b/Projects/Scripts/Engines/Quests/Collector/Items/Obsidian.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Items/Obsidian.cs rename to Projects/Scripts/Engines/Quests/Collector/Items/Obsidian.cs diff --git a/Scripts/Engines/Quests/Collector/Items/PaintedImage.cs b/Projects/Scripts/Engines/Quests/Collector/Items/PaintedImage.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Items/PaintedImage.cs rename to Projects/Scripts/Engines/Quests/Collector/Items/PaintedImage.cs diff --git a/Scripts/Engines/Quests/Collector/Mobiles/AlbertaGiacco.cs b/Projects/Scripts/Engines/Quests/Collector/Mobiles/AlbertaGiacco.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Mobiles/AlbertaGiacco.cs rename to Projects/Scripts/Engines/Quests/Collector/Mobiles/AlbertaGiacco.cs diff --git a/Scripts/Engines/Quests/Collector/Mobiles/ElwoodMcCarrin.cs b/Projects/Scripts/Engines/Quests/Collector/Mobiles/ElwoodMcCarrin.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Mobiles/ElwoodMcCarrin.cs rename to Projects/Scripts/Engines/Quests/Collector/Mobiles/ElwoodMcCarrin.cs diff --git a/Scripts/Engines/Quests/Collector/Mobiles/GabrielPiete.cs b/Projects/Scripts/Engines/Quests/Collector/Mobiles/GabrielPiete.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Mobiles/GabrielPiete.cs rename to Projects/Scripts/Engines/Quests/Collector/Mobiles/GabrielPiete.cs diff --git a/Scripts/Engines/Quests/Collector/Mobiles/Impresario.cs b/Projects/Scripts/Engines/Quests/Collector/Mobiles/Impresario.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Mobiles/Impresario.cs rename to Projects/Scripts/Engines/Quests/Collector/Mobiles/Impresario.cs diff --git a/Scripts/Engines/Quests/Collector/Mobiles/TomasONeerlan.cs b/Projects/Scripts/Engines/Quests/Collector/Mobiles/TomasONeerlan.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Mobiles/TomasONeerlan.cs rename to Projects/Scripts/Engines/Quests/Collector/Mobiles/TomasONeerlan.cs diff --git a/Scripts/Engines/Quests/Collector/Objectives.cs b/Projects/Scripts/Engines/Quests/Collector/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Collector/Objectives.cs rename to Projects/Scripts/Engines/Quests/Collector/Objectives.cs diff --git a/Scripts/Engines/Quests/Core/BaseQuester.cs b/Projects/Scripts/Engines/Quests/Core/BaseQuester.cs similarity index 100% rename from Scripts/Engines/Quests/Core/BaseQuester.cs rename to Projects/Scripts/Engines/Quests/Core/BaseQuester.cs diff --git a/Scripts/Engines/Quests/Core/Items/DynamicTeleporter.cs b/Projects/Scripts/Engines/Quests/Core/Items/DynamicTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Items/DynamicTeleporter.cs rename to Projects/Scripts/Engines/Quests/Core/Items/DynamicTeleporter.cs diff --git a/Scripts/Engines/Quests/Core/Items/EnchantedSextant.cs b/Projects/Scripts/Engines/Quests/Core/Items/EnchantedSextant.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Items/EnchantedSextant.cs rename to Projects/Scripts/Engines/Quests/Core/Items/EnchantedSextant.cs diff --git a/Scripts/Engines/Quests/Core/Items/HornOfRetreat.cs b/Projects/Scripts/Engines/Quests/Core/Items/HornOfRetreat.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Items/HornOfRetreat.cs rename to Projects/Scripts/Engines/Quests/Core/Items/HornOfRetreat.cs diff --git a/Scripts/Engines/Quests/Core/Items/QuestItem.cs b/Projects/Scripts/Engines/Quests/Core/Items/QuestItem.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Items/QuestItem.cs rename to Projects/Scripts/Engines/Quests/Core/Items/QuestItem.cs diff --git a/Scripts/Engines/Quests/Core/QuestCallbackEntry.cs b/Projects/Scripts/Engines/Quests/Core/QuestCallbackEntry.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestCallbackEntry.cs rename to Projects/Scripts/Engines/Quests/Core/QuestCallbackEntry.cs diff --git a/Scripts/Engines/Quests/Core/QuestConversation.cs b/Projects/Scripts/Engines/Quests/Core/QuestConversation.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestConversation.cs rename to Projects/Scripts/Engines/Quests/Core/QuestConversation.cs diff --git a/Scripts/Engines/Quests/Core/QuestItemInfo.cs b/Projects/Scripts/Engines/Quests/Core/QuestItemInfo.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestItemInfo.cs rename to Projects/Scripts/Engines/Quests/Core/QuestItemInfo.cs diff --git a/Scripts/Engines/Quests/Core/QuestObjective.cs b/Projects/Scripts/Engines/Quests/Core/QuestObjective.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestObjective.cs rename to Projects/Scripts/Engines/Quests/Core/QuestObjective.cs diff --git a/Scripts/Engines/Quests/Core/QuestRestartInfo.cs b/Projects/Scripts/Engines/Quests/Core/QuestRestartInfo.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestRestartInfo.cs rename to Projects/Scripts/Engines/Quests/Core/QuestRestartInfo.cs diff --git a/Scripts/Engines/Quests/Core/QuestSerializer.cs b/Projects/Scripts/Engines/Quests/Core/QuestSerializer.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestSerializer.cs rename to Projects/Scripts/Engines/Quests/Core/QuestSerializer.cs diff --git a/Scripts/Engines/Quests/Core/QuestSystem.cs b/Projects/Scripts/Engines/Quests/Core/QuestSystem.cs similarity index 100% rename from Scripts/Engines/Quests/Core/QuestSystem.cs rename to Projects/Scripts/Engines/Quests/Core/QuestSystem.cs diff --git a/Scripts/Engines/Quests/Core/Regions/CancelQuestRegion.cs b/Projects/Scripts/Engines/Quests/Core/Regions/CancelQuestRegion.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Regions/CancelQuestRegion.cs rename to Projects/Scripts/Engines/Quests/Core/Regions/CancelQuestRegion.cs diff --git a/Scripts/Engines/Quests/Core/Regions/QuestCompleteObjectiveRegion.cs b/Projects/Scripts/Engines/Quests/Core/Regions/QuestCompleteObjectiveRegion.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Regions/QuestCompleteObjectiveRegion.cs rename to Projects/Scripts/Engines/Quests/Core/Regions/QuestCompleteObjectiveRegion.cs diff --git a/Scripts/Engines/Quests/Core/Regions/QuestNoEntryRegion.cs b/Projects/Scripts/Engines/Quests/Core/Regions/QuestNoEntryRegion.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Regions/QuestNoEntryRegion.cs rename to Projects/Scripts/Engines/Quests/Core/Regions/QuestNoEntryRegion.cs diff --git a/Scripts/Engines/Quests/Core/Regions/QuestOfferRegion.cs b/Projects/Scripts/Engines/Quests/Core/Regions/QuestOfferRegion.cs similarity index 100% rename from Scripts/Engines/Quests/Core/Regions/QuestOfferRegion.cs rename to Projects/Scripts/Engines/Quests/Core/Regions/QuestOfferRegion.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Conversations.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Conversations.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Conversations.cs diff --git a/Scripts/Engines/Quests/Dark Tides/DarkTidesQuest.cs b/Projects/Scripts/Engines/Quests/Dark Tides/DarkTidesQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/DarkTidesQuest.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/DarkTidesQuest.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/CrystalCaveBarrier.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesHorn.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesHorn.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/DarkTidesHorn.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesHorn.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesTeleporter.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/DarkTidesTeleporter.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/DarkTidesTeleporter.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/KronusScroll.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/KronusScroll.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/KronusScroll.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/KronusScroll.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/KronusScrollBox.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/KronusScrollBox.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/KronusScrollBox.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/KronusScrollBox.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/MaabusCoffin.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/MaabusCoffin.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/MaabusCoffin.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/MaabusCoffin.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/ScrollOfAbraxus.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/ScrollOfAbraxus.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/ScrollOfAbraxus.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/ScrollOfAbraxus.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Items/VaultOfSecretsBarrier.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Items/VaultOfSecretsBarrier.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Items/VaultOfSecretsBarrier.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Items/VaultOfSecretsBarrier.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Mobiles/Horus.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Horus.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Mobiles/Horus.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Horus.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Mobiles/Maabus.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Maabus.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Mobiles/Maabus.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Maabus.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Mobiles/Mardoth.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Mardoth.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Mobiles/Mardoth.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/Mardoth.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Mobiles/SummonedPaladin.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/SummonedPaladin.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Mobiles/SummonedPaladin.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Mobiles/SummonedPaladin.cs diff --git a/Scripts/Engines/Quests/Dark Tides/Objectives.cs b/Projects/Scripts/Engines/Quests/Dark Tides/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Dark Tides/Objectives.cs rename to Projects/Scripts/Engines/Quests/Dark Tides/Objectives.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Conversations.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Conversations.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Conversations.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/EminosUndertakingQuest.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/EminosUndertakingQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/EminosUndertakingQuest.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/EminosUndertakingQuest.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/BlueNinjaQuestTeleporter.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/BlueNinjaQuestTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/BlueNinjaQuestTeleporter.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/BlueNinjaQuestTeleporter.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatana.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatana.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatana.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatana.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/EminosKatanaChest.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/GreenNinjaQuestTeleporter.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/GreenNinjaQuestTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/GreenNinjaQuestTeleporter.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/GreenNinjaQuestTeleporter.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/GuardianBarrier.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/GuardianBarrier.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/GuardianBarrier.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/GuardianBarrier.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/NoteForZoel.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/NoteForZoel.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/NoteForZoel.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/NoteForZoel.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Items/WhiteNinjaQuestTeleporter.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/WhiteNinjaQuestTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Items/WhiteNinjaQuestTeleporter.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Items/WhiteNinjaQuestTeleporter.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Emino.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Emino.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Emino.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Emino.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/EnshroudedFigure.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/EnshroudedFigure.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/EnshroudedFigure.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/EnshroudedFigure.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Henchman.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Henchman.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Henchman.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Henchman.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/HiddenFigure.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/HiddenFigure.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/HiddenFigure.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/HiddenFigure.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/JedahEntille.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/JedahEntille.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/JedahEntille.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/JedahEntille.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Zoel.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Zoel.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Zoel.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Mobiles/Zoel.cs diff --git a/Scripts/Engines/Quests/Emino's Undertaking/Objectives.cs b/Projects/Scripts/Engines/Quests/Emino's Undertaking/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Emino's Undertaking/Objectives.cs rename to Projects/Scripts/Engines/Quests/Emino's Undertaking/Objectives.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Conversations.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Conversations.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Conversations.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/HaochisTrialsQuest.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/HaochisTrialsQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/HaochisTrialsQuest.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/HaochisTrialsQuest.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatana.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatana.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatana.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatana.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatanaGenerator.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatanaGenerator.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatanaGenerator.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisKatanaGenerator.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HaochisTreasureChest.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Items/HonorCandle.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HonorCandle.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Items/HonorCandle.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Items/HonorCandle.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/CursedSoul.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DeadlyImp.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DeadlyImp.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/DeadlyImp.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DeadlyImp.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DiseasedCat.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DiseasedCat.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/DiseasedCat.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/DiseasedCat.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/FierceDragon.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/FierceDragon.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/FierceDragon.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/FierceDragon.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Haochi.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Haochi.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/Haochi.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Haochi.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/HaochisGuardsman.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/InjuredWolf.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/InjuredWolf.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/InjuredWolf.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/InjuredWolf.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Relnia.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Relnia.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/Relnia.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/Relnia.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungNinja.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Mobiles/YoungRonin.cs diff --git a/Scripts/Engines/Quests/Haochi's Trials/Objectives.cs b/Projects/Scripts/Engines/Quests/Haochi's Trials/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Haochi's Trials/Objectives.cs rename to Projects/Scripts/Engines/Quests/Haochi's Trials/Objectives.cs diff --git a/Scripts/Engines/Quests/Solen Matriarch/Conversations.cs b/Projects/Scripts/Engines/Quests/Solen Matriarch/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Solen Matriarch/Conversations.cs rename to Projects/Scripts/Engines/Quests/Solen Matriarch/Conversations.cs diff --git a/Scripts/Engines/Quests/Solen Matriarch/Mobiles/SolenMatriarch.cs b/Projects/Scripts/Engines/Quests/Solen Matriarch/Mobiles/SolenMatriarch.cs similarity index 100% rename from Scripts/Engines/Quests/Solen Matriarch/Mobiles/SolenMatriarch.cs rename to Projects/Scripts/Engines/Quests/Solen Matriarch/Mobiles/SolenMatriarch.cs diff --git a/Scripts/Engines/Quests/Solen Matriarch/Objectives.cs b/Projects/Scripts/Engines/Quests/Solen Matriarch/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Solen Matriarch/Objectives.cs rename to Projects/Scripts/Engines/Quests/Solen Matriarch/Objectives.cs diff --git a/Scripts/Engines/Quests/Solen Matriarch/SolenMatriarchQuest.cs b/Projects/Scripts/Engines/Quests/Solen Matriarch/SolenMatriarchQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Solen Matriarch/SolenMatriarchQuest.cs rename to Projects/Scripts/Engines/Quests/Solen Matriarch/SolenMatriarchQuest.cs diff --git a/Scripts/Engines/Quests/Study of the Solen Hive/Conversations.cs b/Projects/Scripts/Engines/Quests/Study of the Solen Hive/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Study of the Solen Hive/Conversations.cs rename to Projects/Scripts/Engines/Quests/Study of the Solen Hive/Conversations.cs diff --git a/Scripts/Engines/Quests/Study of the Solen Hive/Mobiles/Naturalist.cs b/Projects/Scripts/Engines/Quests/Study of the Solen Hive/Mobiles/Naturalist.cs similarity index 100% rename from Scripts/Engines/Quests/Study of the Solen Hive/Mobiles/Naturalist.cs rename to Projects/Scripts/Engines/Quests/Study of the Solen Hive/Mobiles/Naturalist.cs diff --git a/Scripts/Engines/Quests/Study of the Solen Hive/NestArea.cs b/Projects/Scripts/Engines/Quests/Study of the Solen Hive/NestArea.cs similarity index 100% rename from Scripts/Engines/Quests/Study of the Solen Hive/NestArea.cs rename to Projects/Scripts/Engines/Quests/Study of the Solen Hive/NestArea.cs diff --git a/Scripts/Engines/Quests/Study of the Solen Hive/Objectives.cs b/Projects/Scripts/Engines/Quests/Study of the Solen Hive/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Study of the Solen Hive/Objectives.cs rename to Projects/Scripts/Engines/Quests/Study of the Solen Hive/Objectives.cs diff --git a/Scripts/Engines/Quests/Study of the Solen Hive/StudyOfSolenQuest.cs b/Projects/Scripts/Engines/Quests/Study of the Solen Hive/StudyOfSolenQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Study of the Solen Hive/StudyOfSolenQuest.cs rename to Projects/Scripts/Engines/Quests/Study of the Solen Hive/StudyOfSolenQuest.cs diff --git a/Scripts/Engines/Quests/Terrible Hatchlings/Conversations.cs b/Projects/Scripts/Engines/Quests/Terrible Hatchlings/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Terrible Hatchlings/Conversations.cs rename to Projects/Scripts/Engines/Quests/Terrible Hatchlings/Conversations.cs diff --git a/Scripts/Engines/Quests/Terrible Hatchlings/Mobiles/AnsellaGryen.cs b/Projects/Scripts/Engines/Quests/Terrible Hatchlings/Mobiles/AnsellaGryen.cs similarity index 100% rename from Scripts/Engines/Quests/Terrible Hatchlings/Mobiles/AnsellaGryen.cs rename to Projects/Scripts/Engines/Quests/Terrible Hatchlings/Mobiles/AnsellaGryen.cs diff --git a/Scripts/Engines/Quests/Terrible Hatchlings/Objectives.cs b/Projects/Scripts/Engines/Quests/Terrible Hatchlings/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Terrible Hatchlings/Objectives.cs rename to Projects/Scripts/Engines/Quests/Terrible Hatchlings/Objectives.cs diff --git a/Scripts/Engines/Quests/Terrible Hatchlings/TerribleHatchlingsQuest.cs b/Projects/Scripts/Engines/Quests/Terrible Hatchlings/TerribleHatchlingsQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Terrible Hatchlings/TerribleHatchlingsQuest.cs rename to Projects/Scripts/Engines/Quests/Terrible Hatchlings/TerribleHatchlingsQuest.cs diff --git a/Scripts/Engines/Quests/The Summoning/Conversations.cs b/Projects/Scripts/Engines/Quests/The Summoning/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Conversations.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Conversations.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/BellOfTheDead.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/BellOfTheDead.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/BellOfTheDead.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/BellOfTheDead.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/ChylothShroud.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/ChylothShroud.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/ChylothShroud.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/ChylothShroud.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/ChylothStaff.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/ChylothStaff.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/ChylothStaff.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/ChylothStaff.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/GoldenSkull.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/GoldenSkull.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/GoldenSkull.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/GoldenSkull.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/GrandGrimoire.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/GrandGrimoire.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/GrandGrimoire.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/GrandGrimoire.cs diff --git a/Scripts/Engines/Quests/The Summoning/Items/SummoningAltar.cs b/Projects/Scripts/Engines/Quests/The Summoning/Items/SummoningAltar.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Items/SummoningAltar.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Items/SummoningAltar.cs diff --git a/Scripts/Engines/Quests/The Summoning/Mobiles/Chyloth.cs b/Projects/Scripts/Engines/Quests/The Summoning/Mobiles/Chyloth.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Mobiles/Chyloth.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Mobiles/Chyloth.cs diff --git a/Scripts/Engines/Quests/The Summoning/Mobiles/Victoria.cs b/Projects/Scripts/Engines/Quests/The Summoning/Mobiles/Victoria.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Mobiles/Victoria.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Mobiles/Victoria.cs diff --git a/Scripts/Engines/Quests/The Summoning/Objectives.cs b/Projects/Scripts/Engines/Quests/The Summoning/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/Objectives.cs rename to Projects/Scripts/Engines/Quests/The Summoning/Objectives.cs diff --git a/Scripts/Engines/Quests/The Summoning/TheSummoningQuest.cs b/Projects/Scripts/Engines/Quests/The Summoning/TheSummoningQuest.cs similarity index 100% rename from Scripts/Engines/Quests/The Summoning/TheSummoningQuest.cs rename to Projects/Scripts/Engines/Quests/The Summoning/TheSummoningQuest.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Conversations.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Conversations.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Conversations.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/Cannon.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/Cannon.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/Cannon.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/Cannon.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/DaemonBloodChest.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/DaemonBloodChest.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/DaemonBloodChest.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/DaemonBloodChest.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBlood.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBlood.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBlood.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBlood.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBone.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBone.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBone.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestDaemonBone.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestFertileDirt.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestFertileDirt.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestFertileDirt.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/QuestFertileDirt.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickApprenticeCorpse.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickApprenticeCorpse.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickApprenticeCorpse.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickApprenticeCorpse.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickScrollOfPower.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickScrollOfPower.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickScrollOfPower.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/SchmendrickScrollOfPower.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilHorn.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilHorn.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilHorn.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilHorn.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilTeleporter.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilTeleporter.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilTeleporter.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Items/UzeraanTurmoilTeleporter.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Dryad.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Dryad.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Dryad.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Dryad.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MansionGuard.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MansionGuard.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MansionGuard.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MansionGuard.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaCanoneer.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaCanoneer.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaCanoneer.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaCanoneer.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaFighter.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaFighter.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaFighter.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/MilitiaFighter.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Schmendrick.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Schmendrick.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Schmendrick.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Schmendrick.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Uzeraan.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Uzeraan.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Uzeraan.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Mobiles/Uzeraan.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/Objectives.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/Objectives.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/Objectives.cs diff --git a/Scripts/Engines/Quests/Uzeraan Turmoil/UzeraanTurmoilQuest.cs b/Projects/Scripts/Engines/Quests/Uzeraan Turmoil/UzeraanTurmoilQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Uzeraan Turmoil/UzeraanTurmoilQuest.cs rename to Projects/Scripts/Engines/Quests/Uzeraan Turmoil/UzeraanTurmoilQuest.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Conversations.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Conversations.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Conversations.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Conversations.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Ingredient.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Ingredient.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Ingredient.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Ingredient.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/Cauldron.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/Cauldron.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/Cauldron.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/Cauldron.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/HagApprenticeCorpse.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagApprenticeCorpse.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/HagApprenticeCorpse.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagApprenticeCorpse.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/HagCauldron.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagCauldron.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/HagCauldron.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagCauldron.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/HagStew.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagStew.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/HagStew.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HagStew.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/HangoverCure.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HangoverCure.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/HangoverCure.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/HangoverCure.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/MagicFlute.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/MagicFlute.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/MagicFlute.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/MagicFlute.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Items/MoonfireBrew.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Items/MoonfireBrew.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Items/MoonfireBrew.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Items/MoonfireBrew.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Blackheart.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Blackheart.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Mobiles/Blackheart.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Blackheart.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Grizelda.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Grizelda.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Mobiles/Grizelda.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Grizelda.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Zeefzorpul.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Zeefzorpul.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Mobiles/Zeefzorpul.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Mobiles/Zeefzorpul.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/Objectives.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/Objectives.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/Objectives.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/Objectives.cs diff --git a/Scripts/Engines/Quests/Witch Apprentice/WitchApprenticeQuest.cs b/Projects/Scripts/Engines/Quests/Witch Apprentice/WitchApprenticeQuest.cs similarity index 100% rename from Scripts/Engines/Quests/Witch Apprentice/WitchApprenticeQuest.cs rename to Projects/Scripts/Engines/Quests/Witch Apprentice/WitchApprenticeQuest.cs diff --git a/Scripts/Engines/RemoteAdmin/Network.cs b/Projects/Scripts/Engines/RemoteAdmin/Network.cs similarity index 100% rename from Scripts/Engines/RemoteAdmin/Network.cs rename to Projects/Scripts/Engines/RemoteAdmin/Network.cs diff --git a/Scripts/Engines/RemoteAdmin/PacketHandlers.cs b/Projects/Scripts/Engines/RemoteAdmin/PacketHandlers.cs similarity index 100% rename from Scripts/Engines/RemoteAdmin/PacketHandlers.cs rename to Projects/Scripts/Engines/RemoteAdmin/PacketHandlers.cs diff --git a/Scripts/Engines/RemoteAdmin/Packets.cs b/Projects/Scripts/Engines/RemoteAdmin/Packets.cs similarity index 100% rename from Scripts/Engines/RemoteAdmin/Packets.cs rename to Projects/Scripts/Engines/RemoteAdmin/Packets.cs diff --git a/Scripts/Engines/RemoteAdmin/RemoteAdminLogging.cs b/Projects/Scripts/Engines/RemoteAdmin/RemoteAdminLogging.cs similarity index 100% rename from Scripts/Engines/RemoteAdmin/RemoteAdminLogging.cs rename to Projects/Scripts/Engines/RemoteAdmin/RemoteAdminLogging.cs diff --git a/Scripts/Engines/Spawner/ProximitySpawner.cs b/Projects/Scripts/Engines/Spawner/ProximitySpawner.cs similarity index 100% rename from Scripts/Engines/Spawner/ProximitySpawner.cs rename to Projects/Scripts/Engines/Spawner/ProximitySpawner.cs diff --git a/Scripts/Engines/Spawner/Spawner.cs b/Projects/Scripts/Engines/Spawner/Spawner.cs similarity index 100% rename from Scripts/Engines/Spawner/Spawner.cs rename to Projects/Scripts/Engines/Spawner/Spawner.cs diff --git a/Scripts/Engines/Spawner/SpawnerGump.cs b/Projects/Scripts/Engines/Spawner/SpawnerGump.cs similarity index 100% rename from Scripts/Engines/Spawner/SpawnerGump.cs rename to Projects/Scripts/Engines/Spawner/SpawnerGump.cs diff --git a/Scripts/Engines/Spawner/SpawnerType.cs b/Projects/Scripts/Engines/Spawner/SpawnerType.cs similarity index 100% rename from Scripts/Engines/Spawner/SpawnerType.cs rename to Projects/Scripts/Engines/Spawner/SpawnerType.cs diff --git a/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs b/Projects/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs similarity index 100% rename from Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs rename to Projects/Scripts/Engines/Treasures of Tokuno/BasePigmentsOfTokuno.cs diff --git a/Scripts/Engines/Treasures of Tokuno/GreaterArtifacts.cs b/Projects/Scripts/Engines/Treasures of Tokuno/GreaterArtifacts.cs similarity index 100% rename from Scripts/Engines/Treasures of Tokuno/GreaterArtifacts.cs rename to Projects/Scripts/Engines/Treasures of Tokuno/GreaterArtifacts.cs diff --git a/Scripts/Engines/Treasures of Tokuno/LesserArtifacts.cs b/Projects/Scripts/Engines/Treasures of Tokuno/LesserArtifacts.cs similarity index 100% rename from Scripts/Engines/Treasures of Tokuno/LesserArtifacts.cs rename to Projects/Scripts/Engines/Treasures of Tokuno/LesserArtifacts.cs diff --git a/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokuno.cs b/Projects/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokuno.cs similarity index 100% rename from Scripts/Engines/Treasures of Tokuno/TreasuresOfTokuno.cs rename to Projects/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokuno.cs diff --git a/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokunoPersistance.cs b/Projects/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokunoPersistance.cs similarity index 100% rename from Scripts/Engines/Treasures of Tokuno/TreasuresOfTokunoPersistance.cs rename to Projects/Scripts/Engines/Treasures of Tokuno/TreasuresOfTokunoPersistance.cs diff --git a/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatue.cs b/Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatue.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatue.cs rename to Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatue.cs diff --git a/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatueMaker.cs b/Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatueMaker.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatueMaker.cs rename to Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatueMaker.cs diff --git a/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatuePlinth.cs b/Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatuePlinth.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatuePlinth.cs rename to Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/CharacterStatuePlinth.cs diff --git a/Scripts/Engines/VeteranRewards/Character Statue Maker/Gumps/CharacterStatueGump.cs b/Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/Gumps/CharacterStatueGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/Character Statue Maker/Gumps/CharacterStatueGump.cs rename to Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/Gumps/CharacterStatueGump.cs diff --git a/Scripts/Engines/VeteranRewards/Character Statue Maker/Packets.cs b/Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/Packets.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/Character Statue Maker/Packets.cs rename to Projects/Scripts/Engines/VeteranRewards/Character Statue Maker/Packets.cs diff --git a/Scripts/Engines/VeteranRewards/RewardCategory.cs b/Projects/Scripts/Engines/VeteranRewards/RewardCategory.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardCategory.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardCategory.cs diff --git a/Scripts/Engines/VeteranRewards/RewardChoiceGump.cs b/Projects/Scripts/Engines/VeteranRewards/RewardChoiceGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardChoiceGump.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardChoiceGump.cs diff --git a/Scripts/Engines/VeteranRewards/RewardConfirmGump.cs b/Projects/Scripts/Engines/VeteranRewards/RewardConfirmGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardConfirmGump.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardConfirmGump.cs diff --git a/Scripts/Engines/VeteranRewards/RewardDemolitionGump.cs b/Projects/Scripts/Engines/VeteranRewards/RewardDemolitionGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardDemolitionGump.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardDemolitionGump.cs diff --git a/Scripts/Engines/VeteranRewards/RewardEntry.cs b/Projects/Scripts/Engines/VeteranRewards/RewardEntry.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardEntry.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardEntry.cs diff --git a/Scripts/Engines/VeteranRewards/RewardList.cs b/Projects/Scripts/Engines/VeteranRewards/RewardList.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardList.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardList.cs diff --git a/Scripts/Engines/VeteranRewards/RewardNoticeGump.cs b/Projects/Scripts/Engines/VeteranRewards/RewardNoticeGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardNoticeGump.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardNoticeGump.cs diff --git a/Scripts/Engines/VeteranRewards/RewardOptionGump.cs b/Projects/Scripts/Engines/VeteranRewards/RewardOptionGump.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardOptionGump.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardOptionGump.cs diff --git a/Scripts/Engines/VeteranRewards/RewardSystem.cs b/Projects/Scripts/Engines/VeteranRewards/RewardSystem.cs similarity index 100% rename from Scripts/Engines/VeteranRewards/RewardSystem.cs rename to Projects/Scripts/Engines/VeteranRewards/RewardSystem.cs diff --git a/Scripts/Engines/Virtues/Compassion.cs b/Projects/Scripts/Engines/Virtues/Compassion.cs similarity index 100% rename from Scripts/Engines/Virtues/Compassion.cs rename to Projects/Scripts/Engines/Virtues/Compassion.cs diff --git a/Scripts/Engines/Virtues/Honor.cs b/Projects/Scripts/Engines/Virtues/Honor.cs similarity index 100% rename from Scripts/Engines/Virtues/Honor.cs rename to Projects/Scripts/Engines/Virtues/Honor.cs diff --git a/Scripts/Engines/Virtues/Justice.cs b/Projects/Scripts/Engines/Virtues/Justice.cs similarity index 100% rename from Scripts/Engines/Virtues/Justice.cs rename to Projects/Scripts/Engines/Virtues/Justice.cs diff --git a/Scripts/Engines/Virtues/Sacrifice.cs b/Projects/Scripts/Engines/Virtues/Sacrifice.cs similarity index 100% rename from Scripts/Engines/Virtues/Sacrifice.cs rename to Projects/Scripts/Engines/Virtues/Sacrifice.cs diff --git a/Scripts/Engines/Virtues/Valor.cs b/Projects/Scripts/Engines/Virtues/Valor.cs similarity index 100% rename from Scripts/Engines/Virtues/Valor.cs rename to Projects/Scripts/Engines/Virtues/Valor.cs diff --git a/Scripts/Engines/Virtues/VirtueGump.cs b/Projects/Scripts/Engines/Virtues/VirtueGump.cs similarity index 100% rename from Scripts/Engines/Virtues/VirtueGump.cs rename to Projects/Scripts/Engines/Virtues/VirtueGump.cs diff --git a/Scripts/Engines/Virtues/VirtueHelper.cs b/Projects/Scripts/Engines/Virtues/VirtueHelper.cs similarity index 100% rename from Scripts/Engines/Virtues/VirtueHelper.cs rename to Projects/Scripts/Engines/Virtues/VirtueHelper.cs diff --git a/Scripts/Engines/Virtues/VirtueInfoGump.cs b/Projects/Scripts/Engines/Virtues/VirtueInfoGump.cs similarity index 100% rename from Scripts/Engines/Virtues/VirtueInfoGump.cs rename to Projects/Scripts/Engines/Virtues/VirtueInfoGump.cs diff --git a/Scripts/Engines/Virtues/VirtueStatusGump.cs b/Projects/Scripts/Engines/Virtues/VirtueStatusGump.cs similarity index 100% rename from Scripts/Engines/Virtues/VirtueStatusGump.cs rename to Projects/Scripts/Engines/Virtues/VirtueStatusGump.cs diff --git a/Scripts/Gumps/AddDoorGump.cs b/Projects/Scripts/Gumps/AddDoorGump.cs similarity index 100% rename from Scripts/Gumps/AddDoorGump.cs rename to Projects/Scripts/Gumps/AddDoorGump.cs diff --git a/Scripts/Gumps/AddGump.cs b/Projects/Scripts/Gumps/AddGump.cs similarity index 100% rename from Scripts/Gumps/AddGump.cs rename to Projects/Scripts/Gumps/AddGump.cs diff --git a/Scripts/Gumps/AdminGump.cs b/Projects/Scripts/Gumps/AdminGump.cs similarity index 96% rename from Scripts/Gumps/AdminGump.cs rename to Projects/Scripts/Gumps/AdminGump.cs index a7ad3b44f..01f1f25b6 100644 --- a/Scripts/Gumps/AdminGump.cs +++ b/Projects/Scripts/Gumps/AdminGump.cs @@ -209,38 +209,6 @@ namespace Server.Gumps sb.Append((maxIOCP - curIOCP) * 100 / maxIOCP); sb.Append("%"); - List pools = BufferPool.Pools; - - lock (pools) - { - for (int i = 0; i < pools.Count; ++i) - { - BufferPool pool = pools[i]; - pool.GetInfo(out string name, out int freeCount, out _, - out int currentCapacity, out int bufferSize, out int misses); - - if (sb.Length > 0) - sb.Append("

"); - - sb.Append(name); - sb.Append("
Size: "); - sb.Append(FormatByteAmount(bufferSize)); - sb.Append("
Capacity: "); - sb.Append(currentCapacity); - sb.Append(" ("); - sb.Append(misses); - sb.Append(" misses)
Available: "); - sb.Append(freeCount); - sb.Append("
Usage: "); - sb.Append((currentCapacity - freeCount) * 100 / currentCapacity); - sb.Append("% : "); - sb.Append(FormatByteAmount((currentCapacity - freeCount) * bufferSize)); - sb.Append(" of "); - sb.Append(FormatByteAmount(currentCapacity * bufferSize)); - } - } - - AddLabel(20, 200, LabelHue, "Pooling:"); AddHtml(20, 220, 380, 150, sb.ToString(), true, true); diff --git a/Scripts/Gumps/BanDurationGump.cs b/Projects/Scripts/Gumps/BanDurationGump.cs similarity index 100% rename from Scripts/Gumps/BanDurationGump.cs rename to Projects/Scripts/Gumps/BanDurationGump.cs diff --git a/Scripts/Gumps/BaseConfirmGump.cs b/Projects/Scripts/Gumps/BaseConfirmGump.cs similarity index 100% rename from Scripts/Gumps/BaseConfirmGump.cs rename to Projects/Scripts/Gumps/BaseConfirmGump.cs diff --git a/Scripts/Gumps/BaseGridGump.cs b/Projects/Scripts/Gumps/BaseGridGump.cs similarity index 100% rename from Scripts/Gumps/BaseGridGump.cs rename to Projects/Scripts/Gumps/BaseGridGump.cs diff --git a/Scripts/Gumps/BaseImageTileButtonsGump.cs b/Projects/Scripts/Gumps/BaseImageTileButtonsGump.cs similarity index 100% rename from Scripts/Gumps/BaseImageTileButtonsGump.cs rename to Projects/Scripts/Gumps/BaseImageTileButtonsGump.cs diff --git a/Scripts/Gumps/CategorizedAddGump.cs b/Projects/Scripts/Gumps/CategorizedAddGump.cs similarity index 100% rename from Scripts/Gumps/CategorizedAddGump.cs rename to Projects/Scripts/Gumps/CategorizedAddGump.cs diff --git a/Scripts/Gumps/ClientGump.cs b/Projects/Scripts/Gumps/ClientGump.cs similarity index 100% rename from Scripts/Gumps/ClientGump.cs rename to Projects/Scripts/Gumps/ClientGump.cs diff --git a/Scripts/Gumps/CommentsGump.cs b/Projects/Scripts/Gumps/CommentsGump.cs similarity index 100% rename from Scripts/Gumps/CommentsGump.cs rename to Projects/Scripts/Gumps/CommentsGump.cs diff --git a/Scripts/Gumps/ConfirmBreakCrystalGump.cs b/Projects/Scripts/Gumps/ConfirmBreakCrystalGump.cs similarity index 100% rename from Scripts/Gumps/ConfirmBreakCrystalGump.cs rename to Projects/Scripts/Gumps/ConfirmBreakCrystalGump.cs diff --git a/Scripts/Gumps/ConfirmHeritageGump.cs b/Projects/Scripts/Gumps/ConfirmHeritageGump.cs similarity index 100% rename from Scripts/Gumps/ConfirmHeritageGump.cs rename to Projects/Scripts/Gumps/ConfirmHeritageGump.cs diff --git a/Scripts/Gumps/ConfirmHouseResize.cs b/Projects/Scripts/Gumps/ConfirmHouseResize.cs similarity index 100% rename from Scripts/Gumps/ConfirmHouseResize.cs rename to Projects/Scripts/Gumps/ConfirmHouseResize.cs diff --git a/Scripts/Gumps/ConfirmReleaseGump.cs b/Projects/Scripts/Gumps/ConfirmReleaseGump.cs similarity index 100% rename from Scripts/Gumps/ConfirmReleaseGump.cs rename to Projects/Scripts/Gumps/ConfirmReleaseGump.cs diff --git a/Scripts/Gumps/DawnsMusicBoxGump.cs b/Projects/Scripts/Gumps/DawnsMusicBoxGump.cs similarity index 100% rename from Scripts/Gumps/DawnsMusicBoxGump.cs rename to Projects/Scripts/Gumps/DawnsMusicBoxGump.cs diff --git a/Scripts/Gumps/Go/ChildNode.cs b/Projects/Scripts/Gumps/Go/ChildNode.cs similarity index 100% rename from Scripts/Gumps/Go/ChildNode.cs rename to Projects/Scripts/Gumps/Go/ChildNode.cs diff --git a/Scripts/Gumps/Go/GoGump.cs b/Projects/Scripts/Gumps/Go/GoGump.cs similarity index 100% rename from Scripts/Gumps/Go/GoGump.cs rename to Projects/Scripts/Gumps/Go/GoGump.cs diff --git a/Scripts/Gumps/Go/LocationTree.cs b/Projects/Scripts/Gumps/Go/LocationTree.cs similarity index 100% rename from Scripts/Gumps/Go/LocationTree.cs rename to Projects/Scripts/Gumps/Go/LocationTree.cs diff --git a/Scripts/Gumps/Go/ParentNode.cs b/Projects/Scripts/Gumps/Go/ParentNode.cs similarity index 100% rename from Scripts/Gumps/Go/ParentNode.cs rename to Projects/Scripts/Gumps/Go/ParentNode.cs diff --git a/Scripts/Gumps/Guilds/DeclareFealtyGump.cs b/Projects/Scripts/Gumps/Guilds/DeclareFealtyGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/DeclareFealtyGump.cs rename to Projects/Scripts/Gumps/Guilds/DeclareFealtyGump.cs diff --git a/Scripts/Gumps/Guilds/GrantGuildTitleGump.cs b/Projects/Scripts/Gumps/Guilds/GrantGuildTitleGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GrantGuildTitleGump.cs rename to Projects/Scripts/Gumps/Guilds/GrantGuildTitleGump.cs diff --git a/Scripts/Gumps/Guilds/GuildAbbrvPrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildAbbrvPrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildAbbrvPrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildAbbrvPrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildAcceptWarGump.cs b/Projects/Scripts/Gumps/Guilds/GuildAcceptWarGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildAcceptWarGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildAcceptWarGump.cs diff --git a/Scripts/Gumps/Guilds/GuildAdminCandidatesGump.cs b/Projects/Scripts/Gumps/Guilds/GuildAdminCandidatesGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildAdminCandidatesGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildAdminCandidatesGump.cs diff --git a/Scripts/Gumps/Guilds/GuildCandidatesGump.cs b/Projects/Scripts/Gumps/Guilds/GuildCandidatesGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildCandidatesGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildCandidatesGump.cs diff --git a/Scripts/Gumps/Guilds/GuildChangeTypeGump.cs b/Projects/Scripts/Gumps/Guilds/GuildChangeTypeGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildChangeTypeGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildChangeTypeGump.cs diff --git a/Scripts/Gumps/Guilds/GuildCharterGump.cs b/Projects/Scripts/Gumps/Guilds/GuildCharterGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildCharterGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildCharterGump.cs diff --git a/Scripts/Gumps/Guilds/GuildCharterPrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildCharterPrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildCharterPrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildCharterPrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildDeclarePeaceGump.cs b/Projects/Scripts/Gumps/Guilds/GuildDeclarePeaceGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildDeclarePeaceGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildDeclarePeaceGump.cs diff --git a/Scripts/Gumps/Guilds/GuildDeclareWarGump.cs b/Projects/Scripts/Gumps/Guilds/GuildDeclareWarGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildDeclareWarGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildDeclareWarGump.cs diff --git a/Scripts/Gumps/Guilds/GuildDeclareWarPrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildDeclareWarPrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildDeclareWarPrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildDeclareWarPrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildDismissGump.cs b/Projects/Scripts/Gumps/Guilds/GuildDismissGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildDismissGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildDismissGump.cs diff --git a/Scripts/Gumps/Guilds/GuildGump.cs b/Projects/Scripts/Gumps/Guilds/GuildGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildGump.cs diff --git a/Scripts/Gumps/Guilds/GuildListGump.cs b/Projects/Scripts/Gumps/Guilds/GuildListGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildListGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildListGump.cs diff --git a/Scripts/Gumps/Guilds/GuildMobileListGump.cs b/Projects/Scripts/Gumps/Guilds/GuildMobileListGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildMobileListGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildMobileListGump.cs diff --git a/Scripts/Gumps/Guilds/GuildNamePrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildNamePrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildNamePrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildNamePrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildRejectWarGump.cs b/Projects/Scripts/Gumps/Guilds/GuildRejectWarGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildRejectWarGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildRejectWarGump.cs diff --git a/Scripts/Gumps/Guilds/GuildRescindDeclarationGump.cs b/Projects/Scripts/Gumps/Guilds/GuildRescindDeclarationGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildRescindDeclarationGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildRescindDeclarationGump.cs diff --git a/Scripts/Gumps/Guilds/GuildRosterGump.cs b/Projects/Scripts/Gumps/Guilds/GuildRosterGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildRosterGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildRosterGump.cs diff --git a/Scripts/Gumps/Guilds/GuildTitlePrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildTitlePrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildTitlePrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildTitlePrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildWarAdminGump.cs b/Projects/Scripts/Gumps/Guilds/GuildWarAdminGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildWarAdminGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildWarAdminGump.cs diff --git a/Scripts/Gumps/Guilds/GuildWarGump.cs b/Projects/Scripts/Gumps/Guilds/GuildWarGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildWarGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildWarGump.cs diff --git a/Scripts/Gumps/Guilds/GuildWebsitePrompt.cs b/Projects/Scripts/Gumps/Guilds/GuildWebsitePrompt.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildWebsitePrompt.cs rename to Projects/Scripts/Gumps/Guilds/GuildWebsitePrompt.cs diff --git a/Scripts/Gumps/Guilds/GuildmasterGump.cs b/Projects/Scripts/Gumps/Guilds/GuildmasterGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/GuildmasterGump.cs rename to Projects/Scripts/Gumps/Guilds/GuildmasterGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/AdvancedSearch.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/AdvancedSearch.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/AdvancedSearch.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/AdvancedSearch.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/BaseGuildGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/BaseGuildGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/BaseGuildGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/BaseGuildGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/BaseGuildListGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/BaseGuildListGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/BaseGuildListGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/BaseGuildListGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/Create Guild Gump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/Create Guild Gump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/Create Guild Gump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/Create Guild Gump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/DiplomacyGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/DiplomacyGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/DiplomacyGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/DiplomacyGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/GuildInfoGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/GuildInfoGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/GuildInfoGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/GuildInfoGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/GuildInvitationRequest.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/GuildInvitationRequest.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/GuildInvitationRequest.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/GuildInvitationRequest.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/GuildMemberInfoGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/GuildMemberInfoGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/GuildMemberInfoGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/GuildMemberInfoGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/GuildRosterGump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/GuildRosterGump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/GuildRosterGump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/GuildRosterGump.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/OtherGuildInfo.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/OtherGuildInfo.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/OtherGuildInfo.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/OtherGuildInfo.cs diff --git a/Scripts/Gumps/Guilds/New Guild System/War Declaration gump.cs b/Projects/Scripts/Gumps/Guilds/New Guild System/War Declaration gump.cs similarity index 100% rename from Scripts/Gumps/Guilds/New Guild System/War Declaration gump.cs rename to Projects/Scripts/Gumps/Guilds/New Guild System/War Declaration gump.cs diff --git a/Scripts/Gumps/Guilds/RecruitTarget.cs b/Projects/Scripts/Gumps/Guilds/RecruitTarget.cs similarity index 100% rename from Scripts/Gumps/Guilds/RecruitTarget.cs rename to Projects/Scripts/Gumps/Guilds/RecruitTarget.cs diff --git a/Scripts/Gumps/HeritageTokenGump.cs b/Projects/Scripts/Gumps/HeritageTokenGump.cs similarity index 100% rename from Scripts/Gumps/HeritageTokenGump.cs rename to Projects/Scripts/Gumps/HeritageTokenGump.cs diff --git a/Scripts/Gumps/HonorSelf.cs b/Projects/Scripts/Gumps/HonorSelf.cs similarity index 100% rename from Scripts/Gumps/HonorSelf.cs rename to Projects/Scripts/Gumps/HonorSelf.cs diff --git a/Scripts/Gumps/HouseDemolishGump.cs b/Projects/Scripts/Gumps/HouseDemolishGump.cs similarity index 100% rename from Scripts/Gumps/HouseDemolishGump.cs rename to Projects/Scripts/Gumps/HouseDemolishGump.cs diff --git a/Scripts/Gumps/HouseGump.cs b/Projects/Scripts/Gumps/HouseGump.cs similarity index 100% rename from Scripts/Gumps/HouseGump.cs rename to Projects/Scripts/Gumps/HouseGump.cs diff --git a/Scripts/Gumps/HouseGumpAOS.cs b/Projects/Scripts/Gumps/HouseGumpAOS.cs similarity index 100% rename from Scripts/Gumps/HouseGumpAOS.cs rename to Projects/Scripts/Gumps/HouseGumpAOS.cs diff --git a/Scripts/Gumps/HouseTransferGump.cs b/Projects/Scripts/Gumps/HouseTransferGump.cs similarity index 100% rename from Scripts/Gumps/HouseTransferGump.cs rename to Projects/Scripts/Gumps/HouseTransferGump.cs diff --git a/Scripts/Gumps/NoticeGump.cs b/Projects/Scripts/Gumps/NoticeGump.cs similarity index 100% rename from Scripts/Gumps/NoticeGump.cs rename to Projects/Scripts/Gumps/NoticeGump.cs diff --git a/Scripts/Gumps/PetResurrectGump.cs b/Projects/Scripts/Gumps/PetResurrectGump.cs similarity index 100% rename from Scripts/Gumps/PetResurrectGump.cs rename to Projects/Scripts/Gumps/PetResurrectGump.cs diff --git a/Scripts/Gumps/PlayerVendorGumps.cs b/Projects/Scripts/Gumps/PlayerVendorGumps.cs similarity index 100% rename from Scripts/Gumps/PlayerVendorGumps.cs rename to Projects/Scripts/Gumps/PlayerVendorGumps.cs diff --git a/Scripts/Gumps/PolymorphGump.cs b/Projects/Scripts/Gumps/PolymorphGump.cs similarity index 100% rename from Scripts/Gumps/PolymorphGump.cs rename to Projects/Scripts/Gumps/PolymorphGump.cs diff --git a/Scripts/Gumps/Props/PropsConfig.cs b/Projects/Scripts/Gumps/Props/PropsConfig.cs similarity index 100% rename from Scripts/Gumps/Props/PropsConfig.cs rename to Projects/Scripts/Gumps/Props/PropsConfig.cs diff --git a/Scripts/Gumps/Props/PropsGump.cs b/Projects/Scripts/Gumps/Props/PropsGump.cs similarity index 100% rename from Scripts/Gumps/Props/PropsGump.cs rename to Projects/Scripts/Gumps/Props/PropsGump.cs diff --git a/Scripts/Gumps/Props/SetBodyGump.cs b/Projects/Scripts/Gumps/Props/SetBodyGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetBodyGump.cs rename to Projects/Scripts/Gumps/Props/SetBodyGump.cs diff --git a/Scripts/Gumps/Props/SetCustomEnumGump.cs b/Projects/Scripts/Gumps/Props/SetCustomEnumGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetCustomEnumGump.cs rename to Projects/Scripts/Gumps/Props/SetCustomEnumGump.cs diff --git a/Scripts/Gumps/Props/SetGump.cs b/Projects/Scripts/Gumps/Props/SetGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetGump.cs rename to Projects/Scripts/Gumps/Props/SetGump.cs diff --git a/Scripts/Gumps/Props/SetListOptionGump.cs b/Projects/Scripts/Gumps/Props/SetListOptionGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetListOptionGump.cs rename to Projects/Scripts/Gumps/Props/SetListOptionGump.cs diff --git a/Scripts/Gumps/Props/SetObjectGump.cs b/Projects/Scripts/Gumps/Props/SetObjectGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetObjectGump.cs rename to Projects/Scripts/Gumps/Props/SetObjectGump.cs diff --git a/Scripts/Gumps/Props/SetObjectTarget.cs b/Projects/Scripts/Gumps/Props/SetObjectTarget.cs similarity index 100% rename from Scripts/Gumps/Props/SetObjectTarget.cs rename to Projects/Scripts/Gumps/Props/SetObjectTarget.cs diff --git a/Scripts/Gumps/Props/SetPoint2DGump.cs b/Projects/Scripts/Gumps/Props/SetPoint2DGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetPoint2DGump.cs rename to Projects/Scripts/Gumps/Props/SetPoint2DGump.cs diff --git a/Scripts/Gumps/Props/SetPoint3DGump.cs b/Projects/Scripts/Gumps/Props/SetPoint3DGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetPoint3DGump.cs rename to Projects/Scripts/Gumps/Props/SetPoint3DGump.cs diff --git a/Scripts/Gumps/Props/SetTimeSpanGump.cs b/Projects/Scripts/Gumps/Props/SetTimeSpanGump.cs similarity index 100% rename from Scripts/Gumps/Props/SetTimeSpanGump.cs rename to Projects/Scripts/Gumps/Props/SetTimeSpanGump.cs diff --git a/Scripts/Gumps/ReclaimVendorGump.cs b/Projects/Scripts/Gumps/ReclaimVendorGump.cs similarity index 100% rename from Scripts/Gumps/ReclaimVendorGump.cs rename to Projects/Scripts/Gumps/ReclaimVendorGump.cs diff --git a/Scripts/Gumps/ReportMurderer.cs b/Projects/Scripts/Gumps/ReportMurderer.cs similarity index 100% rename from Scripts/Gumps/ReportMurderer.cs rename to Projects/Scripts/Gumps/ReportMurderer.cs diff --git a/Scripts/Gumps/ResurrectGump.cs b/Projects/Scripts/Gumps/ResurrectGump.cs similarity index 100% rename from Scripts/Gumps/ResurrectGump.cs rename to Projects/Scripts/Gumps/ResurrectGump.cs diff --git a/Scripts/Gumps/RewardGump.cs b/Projects/Scripts/Gumps/RewardGump.cs similarity index 100% rename from Scripts/Gumps/RewardGump.cs rename to Projects/Scripts/Gumps/RewardGump.cs diff --git a/Scripts/Gumps/RunebookGump.cs b/Projects/Scripts/Gumps/RunebookGump.cs similarity index 100% rename from Scripts/Gumps/RunebookGump.cs rename to Projects/Scripts/Gumps/RunebookGump.cs diff --git a/Scripts/Gumps/SetSecureLevelGump.cs b/Projects/Scripts/Gumps/SetSecureLevelGump.cs similarity index 100% rename from Scripts/Gumps/SetSecureLevelGump.cs rename to Projects/Scripts/Gumps/SetSecureLevelGump.cs diff --git a/Scripts/Gumps/SkillsGump.cs b/Projects/Scripts/Gumps/SkillsGump.cs similarity index 100% rename from Scripts/Gumps/SkillsGump.cs rename to Projects/Scripts/Gumps/SkillsGump.cs diff --git a/Scripts/Gumps/TithingGump.cs b/Projects/Scripts/Gumps/TithingGump.cs similarity index 100% rename from Scripts/Gumps/TithingGump.cs rename to Projects/Scripts/Gumps/TithingGump.cs diff --git a/Scripts/Gumps/ToTAdminGump.cs b/Projects/Scripts/Gumps/ToTAdminGump.cs similarity index 100% rename from Scripts/Gumps/ToTAdminGump.cs rename to Projects/Scripts/Gumps/ToTAdminGump.cs diff --git a/Scripts/Gumps/VendorInventoryGump.cs b/Projects/Scripts/Gumps/VendorInventoryGump.cs similarity index 100% rename from Scripts/Gumps/VendorInventoryGump.cs rename to Projects/Scripts/Gumps/VendorInventoryGump.cs diff --git a/Scripts/Gumps/VendorRentalGumps.cs b/Projects/Scripts/Gumps/VendorRentalGumps.cs similarity index 100% rename from Scripts/Gumps/VendorRentalGumps.cs rename to Projects/Scripts/Gumps/VendorRentalGumps.cs diff --git a/Scripts/Gumps/ViewHousesGump.cs b/Projects/Scripts/Gumps/ViewHousesGump.cs similarity index 100% rename from Scripts/Gumps/ViewHousesGump.cs rename to Projects/Scripts/Gumps/ViewHousesGump.cs diff --git a/Scripts/Gumps/WarningGump.cs b/Projects/Scripts/Gumps/WarningGump.cs similarity index 100% rename from Scripts/Gumps/WarningGump.cs rename to Projects/Scripts/Gumps/WarningGump.cs diff --git a/Scripts/Gumps/WhoGump.cs b/Projects/Scripts/Gumps/WhoGump.cs similarity index 100% rename from Scripts/Gumps/WhoGump.cs rename to Projects/Scripts/Gumps/WhoGump.cs diff --git a/Scripts/Gumps/YoungGumps.cs b/Projects/Scripts/Gumps/YoungGumps.cs similarity index 100% rename from Scripts/Gumps/YoungGumps.cs rename to Projects/Scripts/Gumps/YoungGumps.cs diff --git a/Scripts/Holiday Stuff/Christmas/2010/Addons/FireFliesDeed.cs b/Projects/Scripts/Holiday Stuff/Christmas/2010/Addons/FireFliesDeed.cs similarity index 100% rename from Scripts/Holiday Stuff/Christmas/2010/Addons/FireFliesDeed.cs rename to Projects/Scripts/Holiday Stuff/Christmas/2010/Addons/FireFliesDeed.cs diff --git a/Scripts/Holiday Stuff/Christmas/2010/Items/AngelDecoration.cs b/Projects/Scripts/Holiday Stuff/Christmas/2010/Items/AngelDecoration.cs similarity index 100% rename from Scripts/Holiday Stuff/Christmas/2010/Items/AngelDecoration.cs rename to Projects/Scripts/Holiday Stuff/Christmas/2010/Items/AngelDecoration.cs diff --git a/Scripts/Holiday Stuff/Christmas/2010/Items/RockingHorse.cs b/Projects/Scripts/Holiday Stuff/Christmas/2010/Items/RockingHorse.cs similarity index 100% rename from Scripts/Holiday Stuff/Christmas/2010/Items/RockingHorse.cs rename to Projects/Scripts/Holiday Stuff/Christmas/2010/Items/RockingHorse.cs diff --git a/Scripts/Holiday Stuff/Easter/2011/Items/DragonEasterEgg.cs b/Projects/Scripts/Holiday Stuff/Easter/2011/Items/DragonEasterEgg.cs similarity index 100% rename from Scripts/Holiday Stuff/Easter/2011/Items/DragonEasterEgg.cs rename to Projects/Scripts/Holiday Stuff/Easter/2011/Items/DragonEasterEgg.cs diff --git a/Scripts/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs b/Projects/Scripts/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2006/Engines/TrickOrTreat.cs diff --git a/Scripts/Holiday Stuff/Halloween/2006/Items/HalloweenPumpkin.cs b/Projects/Scripts/Holiday Stuff/Halloween/2006/Items/HalloweenPumpkin.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2006/Items/HalloweenPumpkin.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2006/Items/HalloweenPumpkin.cs diff --git a/Scripts/Holiday Stuff/Halloween/2006/Items/PumpkinScarecrow.cs b/Projects/Scripts/Holiday Stuff/Halloween/2006/Items/PumpkinScarecrow.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2006/Items/PumpkinScarecrow.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2006/Items/PumpkinScarecrow.cs diff --git a/Scripts/Holiday Stuff/Halloween/2006/Items/RuinedTapestry.cs b/Projects/Scripts/Holiday Stuff/Halloween/2006/Items/RuinedTapestry.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2006/Items/RuinedTapestry.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2006/Items/RuinedTapestry.cs diff --git a/Scripts/Holiday Stuff/Halloween/2006/Items/TwilightLantern.cs b/Projects/Scripts/Holiday Stuff/Halloween/2006/Items/TwilightLantern.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2006/Items/TwilightLantern.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2006/Items/TwilightLantern.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Engines/PumpkinPatch.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Engines/PumpkinPatch.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Engines/PumpkinPatch.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Engines/PumpkinPatch.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Foods/CreepyCake.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/CreepyCake.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Foods/CreepyCake.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/CreepyCake.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Foods/HarvestWine.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/HarvestWine.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Foods/HarvestWine.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/HarvestWine.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Foods/MrPlainsCookies.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/MrPlainsCookies.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Foods/MrPlainsCookies.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/MrPlainsCookies.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Foods/MurkyMilk.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/MurkyMilk.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Foods/MurkyMilk.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/MurkyMilk.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Foods/PumpkinPizza.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/PumpkinPizza.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Foods/PumpkinPizza.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Foods/PumpkinPizza.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Items/GrimWarning.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Items/GrimWarning.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Items/GrimWarning.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Items/GrimWarning.cs diff --git a/Scripts/Holiday Stuff/Halloween/2009/Items/SkullsOnPike.cs b/Projects/Scripts/Holiday Stuff/Halloween/2009/Items/SkullsOnPike.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2009/Items/SkullsOnPike.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2009/Items/SkullsOnPike.cs diff --git a/Scripts/Holiday Stuff/Halloween/2010/Items/ChairInAGhostCostume.cs b/Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ChairInAGhostCostume.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2010/Items/ChairInAGhostCostume.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ChairInAGhostCostume.cs diff --git a/Scripts/Holiday Stuff/Halloween/2010/Items/ColoredSmallWebs.cs b/Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ColoredSmallWebs.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2010/Items/ColoredSmallWebs.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ColoredSmallWebs.cs diff --git a/Scripts/Holiday Stuff/Halloween/2010/Items/ExcellentIronMaiden.cs b/Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ExcellentIronMaiden.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2010/Items/ExcellentIronMaiden.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2010/Items/ExcellentIronMaiden.cs diff --git a/Scripts/Holiday Stuff/Halloween/2010/Items/HalloweenGuillotine.cs b/Projects/Scripts/Holiday Stuff/Halloween/2010/Items/HalloweenGuillotine.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2010/Items/HalloweenGuillotine.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2010/Items/HalloweenGuillotine.cs diff --git a/Scripts/Holiday Stuff/Halloween/2011/Items/BasePaintedMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2011/Items/BasePaintedMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2011/Items/BasePaintedMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2011/Items/BasePaintedMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/2011/Items/ClownMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2011/Items/ClownMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2011/Items/ClownMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2011/Items/ClownMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/2011/Items/DaemonMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2011/Items/DaemonMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2011/Items/DaemonMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2011/Items/DaemonMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/2011/Items/PlagueMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2011/Items/PlagueMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2011/Items/PlagueMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2011/Items/PlagueMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/2011/Mobiles/PumpkinHead.cs b/Projects/Scripts/Holiday Stuff/Halloween/2011/Mobiles/PumpkinHead.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2011/Mobiles/PumpkinHead.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2011/Mobiles/PumpkinHead.cs diff --git a/Scripts/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs b/Projects/Scripts/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2012/Engines/PlayerZombies.cs diff --git a/Scripts/Holiday Stuff/Halloween/2012/Items/EvilJesterMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2012/Items/EvilJesterMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2012/Items/EvilJesterMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2012/Items/EvilJesterMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/2012/Items/PorcelainMask.cs b/Projects/Scripts/Holiday Stuff/Halloween/2012/Items/PorcelainMask.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/2012/Items/PorcelainMask.cs rename to Projects/Scripts/Holiday Stuff/Halloween/2012/Items/PorcelainMask.cs diff --git a/Scripts/Holiday Stuff/Halloween/HolidaySettings.cs b/Projects/Scripts/Holiday Stuff/Halloween/HolidaySettings.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/HolidaySettings.cs rename to Projects/Scripts/Holiday Stuff/Halloween/HolidaySettings.cs diff --git a/Scripts/Holiday Stuff/Halloween/Treats/Jellybeans.cs b/Projects/Scripts/Holiday Stuff/Halloween/Treats/Jellybeans.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/Treats/Jellybeans.cs rename to Projects/Scripts/Holiday Stuff/Halloween/Treats/Jellybeans.cs diff --git a/Scripts/Holiday Stuff/Halloween/Treats/Lollipops.cs b/Projects/Scripts/Holiday Stuff/Halloween/Treats/Lollipops.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/Treats/Lollipops.cs rename to Projects/Scripts/Holiday Stuff/Halloween/Treats/Lollipops.cs diff --git a/Scripts/Holiday Stuff/Halloween/Treats/NougatSwirl.cs b/Projects/Scripts/Holiday Stuff/Halloween/Treats/NougatSwirl.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/Treats/NougatSwirl.cs rename to Projects/Scripts/Holiday Stuff/Halloween/Treats/NougatSwirl.cs diff --git a/Scripts/Holiday Stuff/Halloween/Treats/Taffy.cs b/Projects/Scripts/Holiday Stuff/Halloween/Treats/Taffy.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/Treats/Taffy.cs rename to Projects/Scripts/Holiday Stuff/Halloween/Treats/Taffy.cs diff --git a/Scripts/Holiday Stuff/Halloween/Treats/WrappedCandy.cs b/Projects/Scripts/Holiday Stuff/Halloween/Treats/WrappedCandy.cs similarity index 100% rename from Scripts/Holiday Stuff/Halloween/Treats/WrappedCandy.cs rename to Projects/Scripts/Holiday Stuff/Halloween/Treats/WrappedCandy.cs diff --git a/Scripts/Holiday Stuff/Valentine/2010/Items/AnimatedHeartShapedBox.cs b/Projects/Scripts/Holiday Stuff/Valentine/2010/Items/AnimatedHeartShapedBox.cs similarity index 100% rename from Scripts/Holiday Stuff/Valentine/2010/Items/AnimatedHeartShapedBox.cs rename to Projects/Scripts/Holiday Stuff/Valentine/2010/Items/AnimatedHeartShapedBox.cs diff --git a/Scripts/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs b/Projects/Scripts/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs similarity index 100% rename from Scripts/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs rename to Projects/Scripts/Holiday Stuff/Valentine/2011/Items/StValentinesBears.cs diff --git a/Scripts/Holiday Stuff/Valentine/2012/Items/CupidStatue.cs b/Projects/Scripts/Holiday Stuff/Valentine/2012/Items/CupidStatue.cs similarity index 100% rename from Scripts/Holiday Stuff/Valentine/2012/Items/CupidStatue.cs rename to Projects/Scripts/Holiday Stuff/Valentine/2012/Items/CupidStatue.cs diff --git a/Scripts/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs b/Projects/Scripts/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs similarity index 100% rename from Scripts/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs rename to Projects/Scripts/Holiday Stuff/Valentine/2012/Items/CupidsArrow.cs diff --git a/Scripts/Holiday Stuff/Valentine/2012/Items/HeartShapedBox.cs b/Projects/Scripts/Holiday Stuff/Valentine/2012/Items/HeartShapedBox.cs similarity index 100% rename from Scripts/Holiday Stuff/Valentine/2012/Items/HeartShapedBox.cs rename to Projects/Scripts/Holiday Stuff/Valentine/2012/Items/HeartShapedBox.cs diff --git a/Scripts/Items/Addons/AbbatoirAddon.cs b/Projects/Scripts/Items/Addons/AbbatoirAddon.cs similarity index 100% rename from Scripts/Items/Addons/AbbatoirAddon.cs rename to Projects/Scripts/Items/Addons/AbbatoirAddon.cs diff --git a/Scripts/Items/Addons/AddonComponent.cs b/Projects/Scripts/Items/Addons/AddonComponent.cs similarity index 100% rename from Scripts/Items/Addons/AddonComponent.cs rename to Projects/Scripts/Items/Addons/AddonComponent.cs diff --git a/Scripts/Items/Addons/AddonContainerComponent.cs b/Projects/Scripts/Items/Addons/AddonContainerComponent.cs similarity index 100% rename from Scripts/Items/Addons/AddonContainerComponent.cs rename to Projects/Scripts/Items/Addons/AddonContainerComponent.cs diff --git a/Scripts/Items/Addons/AlchemistTableEastAddon.cs b/Projects/Scripts/Items/Addons/AlchemistTableEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/AlchemistTableEastAddon.cs rename to Projects/Scripts/Items/Addons/AlchemistTableEastAddon.cs diff --git a/Scripts/Items/Addons/AlchemistTableSouthAddon.cs b/Projects/Scripts/Items/Addons/AlchemistTableSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/AlchemistTableSouthAddon.cs rename to Projects/Scripts/Items/Addons/AlchemistTableSouthAddon.cs diff --git a/Scripts/Items/Addons/AnvilEastAddon.cs b/Projects/Scripts/Items/Addons/AnvilEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/AnvilEastAddon.cs rename to Projects/Scripts/Items/Addons/AnvilEastAddon.cs diff --git a/Scripts/Items/Addons/AnvilSouthAddon.cs b/Projects/Scripts/Items/Addons/AnvilSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/AnvilSouthAddon.cs rename to Projects/Scripts/Items/Addons/AnvilSouthAddon.cs diff --git a/Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs b/Projects/Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs rename to Projects/Scripts/Items/Addons/ArcaneBookshelfEastAddon.cs diff --git a/Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs b/Projects/Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs rename to Projects/Scripts/Items/Addons/ArcaneBookshelfSouthAddon.cs diff --git a/Scripts/Items/Addons/ArcaneCircleAddon.cs b/Projects/Scripts/Items/Addons/ArcaneCircleAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcaneCircleAddon.cs rename to Projects/Scripts/Items/Addons/ArcaneCircleAddon.cs diff --git a/Scripts/Items/Addons/ArcanistStatueEastAddon.cs b/Projects/Scripts/Items/Addons/ArcanistStatueEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcanistStatueEastAddon.cs rename to Projects/Scripts/Items/Addons/ArcanistStatueEastAddon.cs diff --git a/Scripts/Items/Addons/ArcanistStatueSouthAddon.cs b/Projects/Scripts/Items/Addons/ArcanistStatueSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcanistStatueSouthAddon.cs rename to Projects/Scripts/Items/Addons/ArcanistStatueSouthAddon.cs diff --git a/Scripts/Items/Addons/ArcheryButteAddon.cs b/Projects/Scripts/Items/Addons/ArcheryButteAddon.cs similarity index 100% rename from Scripts/Items/Addons/ArcheryButteAddon.cs rename to Projects/Scripts/Items/Addons/ArcheryButteAddon.cs diff --git a/Scripts/Items/Addons/BallotBox.cs b/Projects/Scripts/Items/Addons/BallotBox.cs similarity index 100% rename from Scripts/Items/Addons/BallotBox.cs rename to Projects/Scripts/Items/Addons/BallotBox.cs diff --git a/Scripts/Items/Addons/BaseAddon.cs b/Projects/Scripts/Items/Addons/BaseAddon.cs similarity index 100% rename from Scripts/Items/Addons/BaseAddon.cs rename to Projects/Scripts/Items/Addons/BaseAddon.cs diff --git a/Scripts/Items/Addons/BaseAddonContainer.cs b/Projects/Scripts/Items/Addons/BaseAddonContainer.cs similarity index 100% rename from Scripts/Items/Addons/BaseAddonContainer.cs rename to Projects/Scripts/Items/Addons/BaseAddonContainer.cs diff --git a/Scripts/Items/Addons/BaseAddonContainerDeed.cs b/Projects/Scripts/Items/Addons/BaseAddonContainerDeed.cs similarity index 100% rename from Scripts/Items/Addons/BaseAddonContainerDeed.cs rename to Projects/Scripts/Items/Addons/BaseAddonContainerDeed.cs diff --git a/Scripts/Items/Addons/BaseAddonDeed.cs b/Projects/Scripts/Items/Addons/BaseAddonDeed.cs similarity index 100% rename from Scripts/Items/Addons/BaseAddonDeed.cs rename to Projects/Scripts/Items/Addons/BaseAddonDeed.cs diff --git a/Scripts/Items/Addons/BearRugs.cs b/Projects/Scripts/Items/Addons/BearRugs.cs similarity index 100% rename from Scripts/Items/Addons/BearRugs.cs rename to Projects/Scripts/Items/Addons/BearRugs.cs diff --git a/Scripts/Items/Addons/BloodPentagram.cs b/Projects/Scripts/Items/Addons/BloodPentagram.cs similarity index 100% rename from Scripts/Items/Addons/BloodPentagram.cs rename to Projects/Scripts/Items/Addons/BloodPentagram.cs diff --git a/Scripts/Items/Addons/DartBoard.cs b/Projects/Scripts/Items/Addons/DartBoard.cs similarity index 100% rename from Scripts/Items/Addons/DartBoard.cs rename to Projects/Scripts/Items/Addons/DartBoard.cs diff --git a/Scripts/Items/Addons/ElvenBedEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenBedEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenBedEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenBedEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenBedSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenBedSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenBedSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenBedSouthAddon.cs diff --git a/Scripts/Items/Addons/ElvenDresserEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenDresserEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenDresserEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenDresserEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenDresserSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenDresserSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenDresserSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenDresserSouthAddon.cs diff --git a/Scripts/Items/Addons/ElvenForgeAddon.cs b/Projects/Scripts/Items/Addons/ElvenForgeAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenForgeAddon.cs rename to Projects/Scripts/Items/Addons/ElvenForgeAddon.cs diff --git a/Scripts/Items/Addons/ElvenLoveseatEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenLoveseatEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenLoveseatEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenLoveseatEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenLoveseatSouthAddon.cs diff --git a/Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenSpinningwheelEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenSpinningwheelSouthAddon.cs diff --git a/Scripts/Items/Addons/ElvenStoveEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenStoveEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenStoveEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenStoveEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenStoveSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenStoveSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenStoveSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenStoveSouthAddon.cs diff --git a/Scripts/Items/Addons/ElvenWashbasinEastAddon.cs b/Projects/Scripts/Items/Addons/ElvenWashbasinEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenWashbasinEastAddon.cs rename to Projects/Scripts/Items/Addons/ElvenWashbasinEastAddon.cs diff --git a/Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs b/Projects/Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs rename to Projects/Scripts/Items/Addons/ElvenWashbasinSouthAddon.cs diff --git a/Scripts/Items/Addons/FancyElvenTableEastAddon.cs b/Projects/Scripts/Items/Addons/FancyElvenTableEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/FancyElvenTableEastAddon.cs rename to Projects/Scripts/Items/Addons/FancyElvenTableEastAddon.cs diff --git a/Scripts/Items/Addons/FancyElvenTableSouthAddon.cs b/Projects/Scripts/Items/Addons/FancyElvenTableSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/FancyElvenTableSouthAddon.cs rename to Projects/Scripts/Items/Addons/FancyElvenTableSouthAddon.cs diff --git a/Scripts/Items/Addons/FireColumnAddon.cs b/Projects/Scripts/Items/Addons/FireColumnAddon.cs similarity index 100% rename from Scripts/Items/Addons/FireColumnAddon.cs rename to Projects/Scripts/Items/Addons/FireColumnAddon.cs diff --git a/Scripts/Items/Addons/FlourMillEastAddon.cs b/Projects/Scripts/Items/Addons/FlourMillEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/FlourMillEastAddon.cs rename to Projects/Scripts/Items/Addons/FlourMillEastAddon.cs diff --git a/Scripts/Items/Addons/FlourMillSouthAddon.cs b/Projects/Scripts/Items/Addons/FlourMillSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/FlourMillSouthAddon.cs rename to Projects/Scripts/Items/Addons/FlourMillSouthAddon.cs diff --git a/Scripts/Items/Addons/FlowerTapestries.cs b/Projects/Scripts/Items/Addons/FlowerTapestries.cs similarity index 100% rename from Scripts/Items/Addons/FlowerTapestries.cs rename to Projects/Scripts/Items/Addons/FlowerTapestries.cs diff --git a/Scripts/Items/Addons/GiantWebs.cs b/Projects/Scripts/Items/Addons/GiantWebs.cs similarity index 100% rename from Scripts/Items/Addons/GiantWebs.cs rename to Projects/Scripts/Items/Addons/GiantWebs.cs diff --git a/Scripts/Items/Addons/GozaMats.cs b/Projects/Scripts/Items/Addons/GozaMats.cs similarity index 100% rename from Scripts/Items/Addons/GozaMats.cs rename to Projects/Scripts/Items/Addons/GozaMats.cs diff --git a/Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs b/Projects/Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs rename to Projects/Scripts/Items/Addons/GrayBrickFireplaceEastAddon.cs diff --git a/Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs b/Projects/Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs rename to Projects/Scripts/Items/Addons/GrayBrickFireplaceSouthAddon.cs diff --git a/Scripts/Items/Addons/JackOLantern.cs b/Projects/Scripts/Items/Addons/JackOLantern.cs similarity index 100% rename from Scripts/Items/Addons/JackOLantern.cs rename to Projects/Scripts/Items/Addons/JackOLantern.cs diff --git a/Scripts/Items/Addons/LargeBedEastAddon.cs b/Projects/Scripts/Items/Addons/LargeBedEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeBedEastAddon.cs rename to Projects/Scripts/Items/Addons/LargeBedEastAddon.cs diff --git a/Scripts/Items/Addons/LargeBedSouthAddon.cs b/Projects/Scripts/Items/Addons/LargeBedSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeBedSouthAddon.cs rename to Projects/Scripts/Items/Addons/LargeBedSouthAddon.cs diff --git a/Scripts/Items/Addons/LargeForgeEastAddon.cs b/Projects/Scripts/Items/Addons/LargeForgeEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeForgeEastAddon.cs rename to Projects/Scripts/Items/Addons/LargeForgeEastAddon.cs diff --git a/Scripts/Items/Addons/LargeForgeSouthAddon.cs b/Projects/Scripts/Items/Addons/LargeForgeSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeForgeSouthAddon.cs rename to Projects/Scripts/Items/Addons/LargeForgeSouthAddon.cs diff --git a/Scripts/Items/Addons/LargeStoneTableEastAddon.cs b/Projects/Scripts/Items/Addons/LargeStoneTableEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeStoneTableEastAddon.cs rename to Projects/Scripts/Items/Addons/LargeStoneTableEastAddon.cs diff --git a/Scripts/Items/Addons/LargeStoneTableSouthAddon.cs b/Projects/Scripts/Items/Addons/LargeStoneTableSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/LargeStoneTableSouthAddon.cs rename to Projects/Scripts/Items/Addons/LargeStoneTableSouthAddon.cs diff --git a/Scripts/Items/Addons/LoomEastAddon.cs b/Projects/Scripts/Items/Addons/LoomEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/LoomEastAddon.cs rename to Projects/Scripts/Items/Addons/LoomEastAddon.cs diff --git a/Scripts/Items/Addons/LoomSouthAddon.cs b/Projects/Scripts/Items/Addons/LoomSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/LoomSouthAddon.cs rename to Projects/Scripts/Items/Addons/LoomSouthAddon.cs diff --git a/Scripts/Items/Addons/MediumStoneTableEastAddon.cs b/Projects/Scripts/Items/Addons/MediumStoneTableEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/MediumStoneTableEastAddon.cs rename to Projects/Scripts/Items/Addons/MediumStoneTableEastAddon.cs diff --git a/Scripts/Items/Addons/MediumStoneTableSouthAddon.cs b/Projects/Scripts/Items/Addons/MediumStoneTableSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/MediumStoneTableSouthAddon.cs rename to Projects/Scripts/Items/Addons/MediumStoneTableSouthAddon.cs diff --git a/Scripts/Items/Addons/OrnateElvenTableEastAddon.cs b/Projects/Scripts/Items/Addons/OrnateElvenTableEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/OrnateElvenTableEastAddon.cs rename to Projects/Scripts/Items/Addons/OrnateElvenTableEastAddon.cs diff --git a/Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs b/Projects/Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs rename to Projects/Scripts/Items/Addons/OrnateElvenTableSouthAddon.cs diff --git a/Scripts/Items/Addons/ParrotPerchAddon.cs b/Projects/Scripts/Items/Addons/ParrotPerchAddon.cs similarity index 100% rename from Scripts/Items/Addons/ParrotPerchAddon.cs rename to Projects/Scripts/Items/Addons/ParrotPerchAddon.cs diff --git a/Scripts/Items/Addons/PentagramAddon.cs b/Projects/Scripts/Items/Addons/PentagramAddon.cs similarity index 100% rename from Scripts/Items/Addons/PentagramAddon.cs rename to Projects/Scripts/Items/Addons/PentagramAddon.cs diff --git a/Scripts/Items/Addons/PickpocketDips.cs b/Projects/Scripts/Items/Addons/PickpocketDips.cs similarity index 100% rename from Scripts/Items/Addons/PickpocketDips.cs rename to Projects/Scripts/Items/Addons/PickpocketDips.cs diff --git a/Scripts/Items/Addons/PyramidAddon.cs b/Projects/Scripts/Items/Addons/PyramidAddon.cs similarity index 100% rename from Scripts/Items/Addons/PyramidAddon.cs rename to Projects/Scripts/Items/Addons/PyramidAddon.cs diff --git a/Scripts/Items/Addons/RejuvinationAnkhs.cs b/Projects/Scripts/Items/Addons/RejuvinationAnkhs.cs similarity index 100% rename from Scripts/Items/Addons/RejuvinationAnkhs.cs rename to Projects/Scripts/Items/Addons/RejuvinationAnkhs.cs diff --git a/Scripts/Items/Addons/SHTeleporter.cs b/Projects/Scripts/Items/Addons/SHTeleporter.cs similarity index 100% rename from Scripts/Items/Addons/SHTeleporter.cs rename to Projects/Scripts/Items/Addons/SHTeleporter.cs diff --git a/Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs b/Projects/Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs rename to Projects/Scripts/Items/Addons/SandstoneFireplaceEastAddon.cs diff --git a/Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs b/Projects/Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs rename to Projects/Scripts/Items/Addons/SandstoneFireplaceSouthAddon.cs diff --git a/Scripts/Items/Addons/SandstoneFountainAddon.cs b/Projects/Scripts/Items/Addons/SandstoneFountainAddon.cs similarity index 100% rename from Scripts/Items/Addons/SandstoneFountainAddon.cs rename to Projects/Scripts/Items/Addons/SandstoneFountainAddon.cs diff --git a/Scripts/Items/Addons/SerpentPillarAddon.cs b/Projects/Scripts/Items/Addons/SerpentPillarAddon.cs similarity index 100% rename from Scripts/Items/Addons/SerpentPillarAddon.cs rename to Projects/Scripts/Items/Addons/SerpentPillarAddon.cs diff --git a/Scripts/Items/Addons/ShrineOfWisdomAddon.cs b/Projects/Scripts/Items/Addons/ShrineOfWisdomAddon.cs similarity index 100% rename from Scripts/Items/Addons/ShrineOfWisdomAddon.cs rename to Projects/Scripts/Items/Addons/ShrineOfWisdomAddon.cs diff --git a/Scripts/Items/Addons/SkullPileAddon.cs b/Projects/Scripts/Items/Addons/SkullPileAddon.cs similarity index 100% rename from Scripts/Items/Addons/SkullPileAddon.cs rename to Projects/Scripts/Items/Addons/SkullPileAddon.cs diff --git a/Scripts/Items/Addons/SmallBedEastAddon.cs b/Projects/Scripts/Items/Addons/SmallBedEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/SmallBedEastAddon.cs rename to Projects/Scripts/Items/Addons/SmallBedEastAddon.cs diff --git a/Scripts/Items/Addons/SmallBedSouthAddon.cs b/Projects/Scripts/Items/Addons/SmallBedSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/SmallBedSouthAddon.cs rename to Projects/Scripts/Items/Addons/SmallBedSouthAddon.cs diff --git a/Scripts/Items/Addons/SmallForgeAddon.cs b/Projects/Scripts/Items/Addons/SmallForgeAddon.cs similarity index 100% rename from Scripts/Items/Addons/SmallForgeAddon.cs rename to Projects/Scripts/Items/Addons/SmallForgeAddon.cs diff --git a/Scripts/Items/Addons/SolenAntHole.cs b/Projects/Scripts/Items/Addons/SolenAntHole.cs similarity index 100% rename from Scripts/Items/Addons/SolenAntHole.cs rename to Projects/Scripts/Items/Addons/SolenAntHole.cs diff --git a/Scripts/Items/Addons/SpinningwheelEastAddon.cs b/Projects/Scripts/Items/Addons/SpinningwheelEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/SpinningwheelEastAddon.cs rename to Projects/Scripts/Items/Addons/SpinningwheelEastAddon.cs diff --git a/Scripts/Items/Addons/SpinningwheelSouthAddon.cs b/Projects/Scripts/Items/Addons/SpinningwheelSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/SpinningwheelSouthAddon.cs rename to Projects/Scripts/Items/Addons/SpinningwheelSouthAddon.cs diff --git a/Scripts/Items/Addons/SquirrelStatueEastAddon.cs b/Projects/Scripts/Items/Addons/SquirrelStatueEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/SquirrelStatueEastAddon.cs rename to Projects/Scripts/Items/Addons/SquirrelStatueEastAddon.cs diff --git a/Scripts/Items/Addons/SquirrelStatueSouthAddon.cs b/Projects/Scripts/Items/Addons/SquirrelStatueSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/SquirrelStatueSouthAddon.cs rename to Projects/Scripts/Items/Addons/SquirrelStatueSouthAddon.cs diff --git a/Scripts/Items/Addons/StoneFireplaceEastAddon.cs b/Projects/Scripts/Items/Addons/StoneFireplaceEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/StoneFireplaceEastAddon.cs rename to Projects/Scripts/Items/Addons/StoneFireplaceEastAddon.cs diff --git a/Scripts/Items/Addons/StoneFireplaceSouthAddon.cs b/Projects/Scripts/Items/Addons/StoneFireplaceSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/StoneFireplaceSouthAddon.cs rename to Projects/Scripts/Items/Addons/StoneFireplaceSouthAddon.cs diff --git a/Scripts/Items/Addons/StoneFountainAddon.cs b/Projects/Scripts/Items/Addons/StoneFountainAddon.cs similarity index 100% rename from Scripts/Items/Addons/StoneFountainAddon.cs rename to Projects/Scripts/Items/Addons/StoneFountainAddon.cs diff --git a/Scripts/Items/Addons/StoneOvenEastAddon.cs b/Projects/Scripts/Items/Addons/StoneOvenEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/StoneOvenEastAddon.cs rename to Projects/Scripts/Items/Addons/StoneOvenEastAddon.cs diff --git a/Scripts/Items/Addons/StoneOvenSouthAddon.cs b/Projects/Scripts/Items/Addons/StoneOvenSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/StoneOvenSouthAddon.cs rename to Projects/Scripts/Items/Addons/StoneOvenSouthAddon.cs diff --git a/Scripts/Items/Addons/StretchedHides.cs b/Projects/Scripts/Items/Addons/StretchedHides.cs similarity index 100% rename from Scripts/Items/Addons/StretchedHides.cs rename to Projects/Scripts/Items/Addons/StretchedHides.cs diff --git a/Scripts/Items/Addons/TallElvenBedEastAddon.cs b/Projects/Scripts/Items/Addons/TallElvenBedEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/TallElvenBedEastAddon.cs rename to Projects/Scripts/Items/Addons/TallElvenBedEastAddon.cs diff --git a/Scripts/Items/Addons/TallElvenBedSouthAddon.cs b/Projects/Scripts/Items/Addons/TallElvenBedSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/TallElvenBedSouthAddon.cs rename to Projects/Scripts/Items/Addons/TallElvenBedSouthAddon.cs diff --git a/Scripts/Items/Addons/Telescope.cs b/Projects/Scripts/Items/Addons/Telescope.cs similarity index 100% rename from Scripts/Items/Addons/Telescope.cs rename to Projects/Scripts/Items/Addons/Telescope.cs diff --git a/Scripts/Items/Addons/TrainingDummies.cs b/Projects/Scripts/Items/Addons/TrainingDummies.cs similarity index 100% rename from Scripts/Items/Addons/TrainingDummies.cs rename to Projects/Scripts/Items/Addons/TrainingDummies.cs diff --git a/Scripts/Items/Addons/WarriorStatueEastAddon.cs b/Projects/Scripts/Items/Addons/WarriorStatueEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/WarriorStatueEastAddon.cs rename to Projects/Scripts/Items/Addons/WarriorStatueEastAddon.cs diff --git a/Scripts/Items/Addons/WarriorStatueSouthAddon.cs b/Projects/Scripts/Items/Addons/WarriorStatueSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/WarriorStatueSouthAddon.cs rename to Projects/Scripts/Items/Addons/WarriorStatueSouthAddon.cs diff --git a/Scripts/Items/Addons/WaterTroughEastAddon.cs b/Projects/Scripts/Items/Addons/WaterTroughEastAddon.cs similarity index 100% rename from Scripts/Items/Addons/WaterTroughEastAddon.cs rename to Projects/Scripts/Items/Addons/WaterTroughEastAddon.cs diff --git a/Scripts/Items/Addons/WaterTroughSouthAddon.cs b/Projects/Scripts/Items/Addons/WaterTroughSouthAddon.cs similarity index 100% rename from Scripts/Items/Addons/WaterTroughSouthAddon.cs rename to Projects/Scripts/Items/Addons/WaterTroughSouthAddon.cs diff --git a/Scripts/Items/Addons/WaterVat.cs b/Projects/Scripts/Items/Addons/WaterVat.cs similarity index 100% rename from Scripts/Items/Addons/WaterVat.cs rename to Projects/Scripts/Items/Addons/WaterVat.cs diff --git a/Scripts/Items/Aquarium/Aquarium.cs b/Projects/Scripts/Items/Aquarium/Aquarium.cs similarity index 100% rename from Scripts/Items/Aquarium/Aquarium.cs rename to Projects/Scripts/Items/Aquarium/Aquarium.cs diff --git a/Scripts/Items/Aquarium/AquariumFishingNet.cs b/Projects/Scripts/Items/Aquarium/AquariumFishingNet.cs similarity index 100% rename from Scripts/Items/Aquarium/AquariumFishingNet.cs rename to Projects/Scripts/Items/Aquarium/AquariumFishingNet.cs diff --git a/Scripts/Items/Aquarium/AquariumFood.cs b/Projects/Scripts/Items/Aquarium/AquariumFood.cs similarity index 100% rename from Scripts/Items/Aquarium/AquariumFood.cs rename to Projects/Scripts/Items/Aquarium/AquariumFood.cs diff --git a/Scripts/Items/Aquarium/AquariumGump.cs b/Projects/Scripts/Items/Aquarium/AquariumGump.cs similarity index 100% rename from Scripts/Items/Aquarium/AquariumGump.cs rename to Projects/Scripts/Items/Aquarium/AquariumGump.cs diff --git a/Scripts/Items/Aquarium/AquariumState.cs b/Projects/Scripts/Items/Aquarium/AquariumState.cs similarity index 100% rename from Scripts/Items/Aquarium/AquariumState.cs rename to Projects/Scripts/Items/Aquarium/AquariumState.cs diff --git a/Scripts/Items/Aquarium/BaseFish.cs b/Projects/Scripts/Items/Aquarium/BaseFish.cs similarity index 100% rename from Scripts/Items/Aquarium/BaseFish.cs rename to Projects/Scripts/Items/Aquarium/BaseFish.cs diff --git a/Scripts/Items/Aquarium/Fish/AlbinoCourtesanFish.cs b/Projects/Scripts/Items/Aquarium/Fish/AlbinoCourtesanFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/AlbinoCourtesanFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/AlbinoCourtesanFish.cs diff --git a/Scripts/Items/Aquarium/Fish/AlbinoFrog.cs b/Projects/Scripts/Items/Aquarium/Fish/AlbinoFrog.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/AlbinoFrog.cs rename to Projects/Scripts/Items/Aquarium/Fish/AlbinoFrog.cs diff --git a/Scripts/Items/Aquarium/Fish/BritainCrownFish.cs b/Projects/Scripts/Items/Aquarium/Fish/BritainCrownFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/BritainCrownFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/BritainCrownFish.cs diff --git a/Scripts/Items/Aquarium/Fish/FandancerFish.cs b/Projects/Scripts/Items/Aquarium/Fish/FandancerFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/FandancerFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/FandancerFish.cs diff --git a/Scripts/Items/Aquarium/Fish/GoldenBroadtail.cs b/Projects/Scripts/Items/Aquarium/Fish/GoldenBroadtail.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/GoldenBroadtail.cs rename to Projects/Scripts/Items/Aquarium/Fish/GoldenBroadtail.cs diff --git a/Scripts/Items/Aquarium/Fish/Jellyfish.cs b/Projects/Scripts/Items/Aquarium/Fish/Jellyfish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/Jellyfish.cs rename to Projects/Scripts/Items/Aquarium/Fish/Jellyfish.cs diff --git a/Scripts/Items/Aquarium/Fish/KillerFrog.cs b/Projects/Scripts/Items/Aquarium/Fish/KillerFrog.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/KillerFrog.cs rename to Projects/Scripts/Items/Aquarium/Fish/KillerFrog.cs diff --git a/Scripts/Items/Aquarium/Fish/LongClawCrab.cs b/Projects/Scripts/Items/Aquarium/Fish/LongClawCrab.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/LongClawCrab.cs rename to Projects/Scripts/Items/Aquarium/Fish/LongClawCrab.cs diff --git a/Scripts/Items/Aquarium/Fish/MakotoCourtesanFish.cs b/Projects/Scripts/Items/Aquarium/Fish/MakotoCourtesanFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/MakotoCourtesanFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/MakotoCourtesanFish.cs diff --git a/Scripts/Items/Aquarium/Fish/MinocBlueFish.cs b/Projects/Scripts/Items/Aquarium/Fish/MinocBlueFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/MinocBlueFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/MinocBlueFish.cs diff --git a/Scripts/Items/Aquarium/Fish/NujelmHoneyFish.cs b/Projects/Scripts/Items/Aquarium/Fish/NujelmHoneyFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/NujelmHoneyFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/NujelmHoneyFish.cs diff --git a/Scripts/Items/Aquarium/Fish/PurpleFrog.cs b/Projects/Scripts/Items/Aquarium/Fish/PurpleFrog.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/PurpleFrog.cs rename to Projects/Scripts/Items/Aquarium/Fish/PurpleFrog.cs diff --git a/Scripts/Items/Aquarium/Fish/RedDartFish.cs b/Projects/Scripts/Items/Aquarium/Fish/RedDartFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/RedDartFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/RedDartFish.cs diff --git a/Scripts/Items/Aquarium/Fish/Shrimp.cs b/Projects/Scripts/Items/Aquarium/Fish/Shrimp.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/Shrimp.cs rename to Projects/Scripts/Items/Aquarium/Fish/Shrimp.cs diff --git a/Scripts/Items/Aquarium/Fish/SmallMouthSuckerFin.cs b/Projects/Scripts/Items/Aquarium/Fish/SmallMouthSuckerFin.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/SmallMouthSuckerFin.cs rename to Projects/Scripts/Items/Aquarium/Fish/SmallMouthSuckerFin.cs diff --git a/Scripts/Items/Aquarium/Fish/SpeckledCrab.cs b/Projects/Scripts/Items/Aquarium/Fish/SpeckledCrab.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/SpeckledCrab.cs rename to Projects/Scripts/Items/Aquarium/Fish/SpeckledCrab.cs diff --git a/Scripts/Items/Aquarium/Fish/SpinedScratcherFish.cs b/Projects/Scripts/Items/Aquarium/Fish/SpinedScratcherFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/SpinedScratcherFish.cs rename to Projects/Scripts/Items/Aquarium/Fish/SpinedScratcherFish.cs diff --git a/Scripts/Items/Aquarium/Fish/SpottedBuccaneer.cs b/Projects/Scripts/Items/Aquarium/Fish/SpottedBuccaneer.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/SpottedBuccaneer.cs rename to Projects/Scripts/Items/Aquarium/Fish/SpottedBuccaneer.cs diff --git a/Scripts/Items/Aquarium/Fish/VesperReefTiger.cs b/Projects/Scripts/Items/Aquarium/Fish/VesperReefTiger.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/VesperReefTiger.cs rename to Projects/Scripts/Items/Aquarium/Fish/VesperReefTiger.cs diff --git a/Scripts/Items/Aquarium/Fish/YellowFinBluebelly.cs b/Projects/Scripts/Items/Aquarium/Fish/YellowFinBluebelly.cs similarity index 100% rename from Scripts/Items/Aquarium/Fish/YellowFinBluebelly.cs rename to Projects/Scripts/Items/Aquarium/Fish/YellowFinBluebelly.cs diff --git a/Scripts/Items/Aquarium/FishBowl.cs b/Projects/Scripts/Items/Aquarium/FishBowl.cs similarity index 100% rename from Scripts/Items/Aquarium/FishBowl.cs rename to Projects/Scripts/Items/Aquarium/FishBowl.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/BrineShrimp.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/BrineShrimp.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/BrineShrimp.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/BrineShrimp.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/Coral.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/Coral.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/Coral.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/Coral.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/FullMoonFish.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/FullMoonFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/FullMoonFish.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/FullMoonFish.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/SeaHorse.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/SeaHorse.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/SeaHorse.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/SeaHorse.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/StrippedFlakeFish.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/StrippedFlakeFish.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/StrippedFlakeFish.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/StrippedFlakeFish.cs diff --git a/Scripts/Items/Aquarium/Reward Fish/StrippedSosarianSwill.cs b/Projects/Scripts/Items/Aquarium/Reward Fish/StrippedSosarianSwill.cs similarity index 100% rename from Scripts/Items/Aquarium/Reward Fish/StrippedSosarianSwill.cs rename to Projects/Scripts/Items/Aquarium/Reward Fish/StrippedSosarianSwill.cs diff --git a/Scripts/Items/Aquarium/Rewards/AquariumMessage.cs b/Projects/Scripts/Items/Aquarium/Rewards/AquariumMessage.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/AquariumMessage.cs rename to Projects/Scripts/Items/Aquarium/Rewards/AquariumMessage.cs diff --git a/Scripts/Items/Aquarium/Rewards/CaptainBlackheartsFishingPole.cs b/Projects/Scripts/Items/Aquarium/Rewards/CaptainBlackheartsFishingPole.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/CaptainBlackheartsFishingPole.cs rename to Projects/Scripts/Items/Aquarium/Rewards/CaptainBlackheartsFishingPole.cs diff --git a/Scripts/Items/Aquarium/Rewards/CraftysFishingHat.cs b/Projects/Scripts/Items/Aquarium/Rewards/CraftysFishingHat.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/CraftysFishingHat.cs rename to Projects/Scripts/Items/Aquarium/Rewards/CraftysFishingHat.cs diff --git a/Scripts/Items/Aquarium/Rewards/FishBones.cs b/Projects/Scripts/Items/Aquarium/Rewards/FishBones.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/FishBones.cs rename to Projects/Scripts/Items/Aquarium/Rewards/FishBones.cs diff --git a/Scripts/Items/Aquarium/Rewards/IslandStatue.cs b/Projects/Scripts/Items/Aquarium/Rewards/IslandStatue.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/IslandStatue.cs rename to Projects/Scripts/Items/Aquarium/Rewards/IslandStatue.cs diff --git a/Scripts/Items/Aquarium/Rewards/Shell.cs b/Projects/Scripts/Items/Aquarium/Rewards/Shell.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/Shell.cs rename to Projects/Scripts/Items/Aquarium/Rewards/Shell.cs diff --git a/Scripts/Items/Aquarium/Rewards/ToyBoat.cs b/Projects/Scripts/Items/Aquarium/Rewards/ToyBoat.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/ToyBoat.cs rename to Projects/Scripts/Items/Aquarium/Rewards/ToyBoat.cs diff --git a/Scripts/Items/Aquarium/Rewards/WaterloggedBoots.cs b/Projects/Scripts/Items/Aquarium/Rewards/WaterloggedBoots.cs similarity index 100% rename from Scripts/Items/Aquarium/Rewards/WaterloggedBoots.cs rename to Projects/Scripts/Items/Aquarium/Rewards/WaterloggedBoots.cs diff --git a/Scripts/Items/Aquarium/VacationWafer.cs b/Projects/Scripts/Items/Aquarium/VacationWafer.cs similarity index 100% rename from Scripts/Items/Aquarium/VacationWafer.cs rename to Projects/Scripts/Items/Aquarium/VacationWafer.cs diff --git a/Scripts/Items/Armor/ArmorEnums.cs b/Projects/Scripts/Items/Armor/ArmorEnums.cs similarity index 100% rename from Scripts/Items/Armor/ArmorEnums.cs rename to Projects/Scripts/Items/Armor/ArmorEnums.cs diff --git a/Scripts/Items/Armor/Artifacts/ArmorOfFortune.cs b/Projects/Scripts/Items/Armor/Artifacts/ArmorOfFortune.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/ArmorOfFortune.cs rename to Projects/Scripts/Items/Armor/Artifacts/ArmorOfFortune.cs diff --git a/Scripts/Items/Armor/Artifacts/Craftable/BrambleCoat.cs b/Projects/Scripts/Items/Armor/Artifacts/Craftable/BrambleCoat.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/Craftable/BrambleCoat.cs rename to Projects/Scripts/Items/Armor/Artifacts/Craftable/BrambleCoat.cs diff --git a/Scripts/Items/Armor/Artifacts/Craftable/IronwoodCrown.cs b/Projects/Scripts/Items/Armor/Artifacts/Craftable/IronwoodCrown.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/Craftable/IronwoodCrown.cs rename to Projects/Scripts/Items/Armor/Artifacts/Craftable/IronwoodCrown.cs diff --git a/Scripts/Items/Armor/Artifacts/Craftable/SongWovenMantle.cs b/Projects/Scripts/Items/Armor/Artifacts/Craftable/SongWovenMantle.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/Craftable/SongWovenMantle.cs rename to Projects/Scripts/Items/Armor/Artifacts/Craftable/SongWovenMantle.cs diff --git a/Scripts/Items/Armor/Artifacts/Craftable/SpellWovenBritches.cs b/Projects/Scripts/Items/Armor/Artifacts/Craftable/SpellWovenBritches.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/Craftable/SpellWovenBritches.cs rename to Projects/Scripts/Items/Armor/Artifacts/Craftable/SpellWovenBritches.cs diff --git a/Scripts/Items/Armor/Artifacts/Craftable/StitchersMittens.cs b/Projects/Scripts/Items/Armor/Artifacts/Craftable/StitchersMittens.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/Craftable/StitchersMittens.cs rename to Projects/Scripts/Items/Armor/Artifacts/Craftable/StitchersMittens.cs diff --git a/Scripts/Items/Armor/Artifacts/GauntletsOfNobility.cs b/Projects/Scripts/Items/Armor/Artifacts/GauntletsOfNobility.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/GauntletsOfNobility.cs rename to Projects/Scripts/Items/Armor/Artifacts/GauntletsOfNobility.cs diff --git a/Scripts/Items/Armor/Artifacts/HelmOfInsight.cs b/Projects/Scripts/Items/Armor/Artifacts/HelmOfInsight.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/HelmOfInsight.cs rename to Projects/Scripts/Items/Armor/Artifacts/HelmOfInsight.cs diff --git a/Scripts/Items/Armor/Artifacts/HolyKnightsBreastplate.cs b/Projects/Scripts/Items/Armor/Artifacts/HolyKnightsBreastplate.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/HolyKnightsBreastplate.cs rename to Projects/Scripts/Items/Armor/Artifacts/HolyKnightsBreastplate.cs diff --git a/Scripts/Items/Armor/Artifacts/InquisitorsResolution.cs b/Projects/Scripts/Items/Armor/Artifacts/InquisitorsResolution.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/InquisitorsResolution.cs rename to Projects/Scripts/Items/Armor/Artifacts/InquisitorsResolution.cs diff --git a/Scripts/Items/Armor/Artifacts/JackalsCollar.cs b/Projects/Scripts/Items/Armor/Artifacts/JackalsCollar.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/JackalsCollar.cs rename to Projects/Scripts/Items/Armor/Artifacts/JackalsCollar.cs diff --git a/Scripts/Items/Armor/Artifacts/LeggingsOfBane.cs b/Projects/Scripts/Items/Armor/Artifacts/LeggingsOfBane.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/LeggingsOfBane.cs rename to Projects/Scripts/Items/Armor/Artifacts/LeggingsOfBane.cs diff --git a/Scripts/Items/Armor/Artifacts/MidnightBracers.cs b/Projects/Scripts/Items/Armor/Artifacts/MidnightBracers.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/MidnightBracers.cs rename to Projects/Scripts/Items/Armor/Artifacts/MidnightBracers.cs diff --git a/Scripts/Items/Armor/Artifacts/OrnateCrownOfTheHarrower.cs b/Projects/Scripts/Items/Armor/Artifacts/OrnateCrownOfTheHarrower.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/OrnateCrownOfTheHarrower.cs rename to Projects/Scripts/Items/Armor/Artifacts/OrnateCrownOfTheHarrower.cs diff --git a/Scripts/Items/Armor/Artifacts/ShadowDancerLeggings.cs b/Projects/Scripts/Items/Armor/Artifacts/ShadowDancerLeggings.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/ShadowDancerLeggings.cs rename to Projects/Scripts/Items/Armor/Artifacts/ShadowDancerLeggings.cs diff --git a/Scripts/Items/Armor/Artifacts/TunicOfFire.cs b/Projects/Scripts/Items/Armor/Artifacts/TunicOfFire.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/TunicOfFire.cs rename to Projects/Scripts/Items/Armor/Artifacts/TunicOfFire.cs diff --git a/Scripts/Items/Armor/Artifacts/VoiceOfTheFallenKing.cs b/Projects/Scripts/Items/Armor/Artifacts/VoiceOfTheFallenKing.cs similarity index 100% rename from Scripts/Items/Armor/Artifacts/VoiceOfTheFallenKing.cs rename to Projects/Scripts/Items/Armor/Artifacts/VoiceOfTheFallenKing.cs diff --git a/Scripts/Items/Armor/BaseArmor.cs b/Projects/Scripts/Items/Armor/BaseArmor.cs similarity index 96% rename from Scripts/Items/Armor/BaseArmor.cs rename to Projects/Scripts/Items/Armor/BaseArmor.cs index c46c0c399..7ff3bdfdf 100644 --- a/Scripts/Items/Armor/BaseArmor.cs +++ b/Projects/Scripts/Items/Armor/BaseArmor.cs @@ -6,7 +6,6 @@ using Server.Factions; using Server.Network; using AMA = Server.Items.ArmorMeditationAllowance; using AMT = Server.Items.ArmorMaterialType; -using ABT = Server.Items.ArmorBodyType; namespace Server.Items { diff --git a/Scripts/Items/Armor/Bone/BoneArms.cs b/Projects/Scripts/Items/Armor/Bone/BoneArms.cs similarity index 100% rename from Scripts/Items/Armor/Bone/BoneArms.cs rename to Projects/Scripts/Items/Armor/Bone/BoneArms.cs diff --git a/Scripts/Items/Armor/Bone/BoneChest.cs b/Projects/Scripts/Items/Armor/Bone/BoneChest.cs similarity index 100% rename from Scripts/Items/Armor/Bone/BoneChest.cs rename to Projects/Scripts/Items/Armor/Bone/BoneChest.cs diff --git a/Scripts/Items/Armor/Bone/BoneGloves.cs b/Projects/Scripts/Items/Armor/Bone/BoneGloves.cs similarity index 100% rename from Scripts/Items/Armor/Bone/BoneGloves.cs rename to Projects/Scripts/Items/Armor/Bone/BoneGloves.cs diff --git a/Scripts/Items/Armor/Bone/BoneLegs.cs b/Projects/Scripts/Items/Armor/Bone/BoneLegs.cs similarity index 100% rename from Scripts/Items/Armor/Bone/BoneLegs.cs rename to Projects/Scripts/Items/Armor/Bone/BoneLegs.cs diff --git a/Scripts/Items/Armor/Chain/ChainChest.cs b/Projects/Scripts/Items/Armor/Chain/ChainChest.cs similarity index 100% rename from Scripts/Items/Armor/Chain/ChainChest.cs rename to Projects/Scripts/Items/Armor/Chain/ChainChest.cs diff --git a/Scripts/Items/Armor/Chain/ChainHatsuburi.cs b/Projects/Scripts/Items/Armor/Chain/ChainHatsuburi.cs similarity index 100% rename from Scripts/Items/Armor/Chain/ChainHatsuburi.cs rename to Projects/Scripts/Items/Armor/Chain/ChainHatsuburi.cs diff --git a/Scripts/Items/Armor/Chain/ChainLegs.cs b/Projects/Scripts/Items/Armor/Chain/ChainLegs.cs similarity index 100% rename from Scripts/Items/Armor/Chain/ChainLegs.cs rename to Projects/Scripts/Items/Armor/Chain/ChainLegs.cs diff --git a/Scripts/Items/Armor/DaemonBone/DaemonArms.cs b/Projects/Scripts/Items/Armor/DaemonBone/DaemonArms.cs similarity index 100% rename from Scripts/Items/Armor/DaemonBone/DaemonArms.cs rename to Projects/Scripts/Items/Armor/DaemonBone/DaemonArms.cs diff --git a/Scripts/Items/Armor/DaemonBone/DaemonChest.cs b/Projects/Scripts/Items/Armor/DaemonBone/DaemonChest.cs similarity index 100% rename from Scripts/Items/Armor/DaemonBone/DaemonChest.cs rename to Projects/Scripts/Items/Armor/DaemonBone/DaemonChest.cs diff --git a/Scripts/Items/Armor/DaemonBone/DaemonGloves.cs b/Projects/Scripts/Items/Armor/DaemonBone/DaemonGloves.cs similarity index 100% rename from Scripts/Items/Armor/DaemonBone/DaemonGloves.cs rename to Projects/Scripts/Items/Armor/DaemonBone/DaemonGloves.cs diff --git a/Scripts/Items/Armor/DaemonBone/DaemonLegs.cs b/Projects/Scripts/Items/Armor/DaemonBone/DaemonLegs.cs similarity index 100% rename from Scripts/Items/Armor/DaemonBone/DaemonLegs.cs rename to Projects/Scripts/Items/Armor/DaemonBone/DaemonLegs.cs diff --git a/Scripts/Items/Armor/Dragon/DragonArms.cs b/Projects/Scripts/Items/Armor/Dragon/DragonArms.cs similarity index 100% rename from Scripts/Items/Armor/Dragon/DragonArms.cs rename to Projects/Scripts/Items/Armor/Dragon/DragonArms.cs diff --git a/Scripts/Items/Armor/Dragon/DragonChest.cs b/Projects/Scripts/Items/Armor/Dragon/DragonChest.cs similarity index 100% rename from Scripts/Items/Armor/Dragon/DragonChest.cs rename to Projects/Scripts/Items/Armor/Dragon/DragonChest.cs diff --git a/Scripts/Items/Armor/Dragon/DragonGloves.cs b/Projects/Scripts/Items/Armor/Dragon/DragonGloves.cs similarity index 100% rename from Scripts/Items/Armor/Dragon/DragonGloves.cs rename to Projects/Scripts/Items/Armor/Dragon/DragonGloves.cs diff --git a/Scripts/Items/Armor/Dragon/DragonHelm.cs b/Projects/Scripts/Items/Armor/Dragon/DragonHelm.cs similarity index 100% rename from Scripts/Items/Armor/Dragon/DragonHelm.cs rename to Projects/Scripts/Items/Armor/Dragon/DragonHelm.cs diff --git a/Scripts/Items/Armor/Dragon/DragonLegs.cs b/Projects/Scripts/Items/Armor/Dragon/DragonLegs.cs similarity index 100% rename from Scripts/Items/Armor/Dragon/DragonLegs.cs rename to Projects/Scripts/Items/Armor/Dragon/DragonLegs.cs diff --git a/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/AnthropomorphistGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/ArtsGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/ArtsGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/ArtsGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/ArtsGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/ElvenGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/ElvenGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/ElvenGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/ElvenGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/FoldedSteelGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/LightOfWayGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/LyricalGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/LyricalGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/LyricalGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/LyricalGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/MaceShieldGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/MaritimeGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/MaritimeGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/NecromanticGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/NecromanticGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/PoisonedGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/PoisonedGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/TradeGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/TradeGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/TradeGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/TradeGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/TreasureTrinketGlasses.cs diff --git a/Scripts/Items/Armor/Glasses/WizardsGlasses.cs b/Projects/Scripts/Items/Armor/Glasses/WizardsGlasses.cs similarity index 100% rename from Scripts/Items/Armor/Glasses/WizardsGlasses.cs rename to Projects/Scripts/Items/Armor/Glasses/WizardsGlasses.cs diff --git a/Scripts/Items/Armor/Helmets/Bascinet.cs b/Projects/Scripts/Items/Armor/Helmets/Bascinet.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/Bascinet.cs rename to Projects/Scripts/Items/Armor/Helmets/Bascinet.cs diff --git a/Scripts/Items/Armor/Helmets/BoneHelm.cs b/Projects/Scripts/Items/Armor/Helmets/BoneHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/BoneHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/BoneHelm.cs diff --git a/Scripts/Items/Armor/Helmets/ChainCoif.cs b/Projects/Scripts/Items/Armor/Helmets/ChainCoif.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/ChainCoif.cs rename to Projects/Scripts/Items/Armor/Helmets/ChainCoif.cs diff --git a/Scripts/Items/Armor/Helmets/Circlet.cs b/Projects/Scripts/Items/Armor/Helmets/Circlet.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/Circlet.cs rename to Projects/Scripts/Items/Armor/Helmets/Circlet.cs diff --git a/Scripts/Items/Armor/Helmets/CloseHelm.cs b/Projects/Scripts/Items/Armor/Helmets/CloseHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/CloseHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/CloseHelm.cs diff --git a/Scripts/Items/Armor/Helmets/DaemonHelm.cs b/Projects/Scripts/Items/Armor/Helmets/DaemonHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/DaemonHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/DaemonHelm.cs diff --git a/Scripts/Items/Armor/Helmets/GemmedCirclet.cs b/Projects/Scripts/Items/Armor/Helmets/GemmedCirclet.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/GemmedCirclet.cs rename to Projects/Scripts/Items/Armor/Helmets/GemmedCirclet.cs diff --git a/Scripts/Items/Armor/Helmets/Helmet.cs b/Projects/Scripts/Items/Armor/Helmets/Helmet.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/Helmet.cs rename to Projects/Scripts/Items/Armor/Helmets/Helmet.cs diff --git a/Scripts/Items/Armor/Helmets/LeatherCap.cs b/Projects/Scripts/Items/Armor/Helmets/LeatherCap.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/LeatherCap.cs rename to Projects/Scripts/Items/Armor/Helmets/LeatherCap.cs diff --git a/Scripts/Items/Armor/Helmets/NorseHelm.cs b/Projects/Scripts/Items/Armor/Helmets/NorseHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/NorseHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/NorseHelm.cs diff --git a/Scripts/Items/Armor/Helmets/OrcHelm.cs b/Projects/Scripts/Items/Armor/Helmets/OrcHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/OrcHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/OrcHelm.cs diff --git a/Scripts/Items/Armor/Helmets/PlateHelm.cs b/Projects/Scripts/Items/Armor/Helmets/PlateHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/PlateHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/PlateHelm.cs diff --git a/Scripts/Items/Armor/Helmets/RavenHelm.cs b/Projects/Scripts/Items/Armor/Helmets/RavenHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/RavenHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/RavenHelm.cs diff --git a/Scripts/Items/Armor/Helmets/RoyalCirclet.cs b/Projects/Scripts/Items/Armor/Helmets/RoyalCirclet.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/RoyalCirclet.cs rename to Projects/Scripts/Items/Armor/Helmets/RoyalCirclet.cs diff --git a/Scripts/Items/Armor/Helmets/VultureHelm.cs b/Projects/Scripts/Items/Armor/Helmets/VultureHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/VultureHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/VultureHelm.cs diff --git a/Scripts/Items/Armor/Helmets/WingedHelm.cs b/Projects/Scripts/Items/Armor/Helmets/WingedHelm.cs similarity index 100% rename from Scripts/Items/Armor/Helmets/WingedHelm.cs rename to Projects/Scripts/Items/Armor/Helmets/WingedHelm.cs diff --git a/Scripts/Items/Armor/Leather/FemaleLeafChest.cs b/Projects/Scripts/Items/Armor/Leather/FemaleLeafChest.cs similarity index 100% rename from Scripts/Items/Armor/Leather/FemaleLeafChest.cs rename to Projects/Scripts/Items/Armor/Leather/FemaleLeafChest.cs diff --git a/Scripts/Items/Armor/Leather/FemaleLeatherChest.cs b/Projects/Scripts/Items/Armor/Leather/FemaleLeatherChest.cs similarity index 100% rename from Scripts/Items/Armor/Leather/FemaleLeatherChest.cs rename to Projects/Scripts/Items/Armor/Leather/FemaleLeatherChest.cs diff --git a/Scripts/Items/Armor/Leather/LeafArms.cs b/Projects/Scripts/Items/Armor/Leather/LeafArms.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafArms.cs rename to Projects/Scripts/Items/Armor/Leather/LeafArms.cs diff --git a/Scripts/Items/Armor/Leather/LeafChest.cs b/Projects/Scripts/Items/Armor/Leather/LeafChest.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafChest.cs rename to Projects/Scripts/Items/Armor/Leather/LeafChest.cs diff --git a/Scripts/Items/Armor/Leather/LeafGloves.cs b/Projects/Scripts/Items/Armor/Leather/LeafGloves.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafGloves.cs rename to Projects/Scripts/Items/Armor/Leather/LeafGloves.cs diff --git a/Scripts/Items/Armor/Leather/LeafGorget.cs b/Projects/Scripts/Items/Armor/Leather/LeafGorget.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafGorget.cs rename to Projects/Scripts/Items/Armor/Leather/LeafGorget.cs diff --git a/Scripts/Items/Armor/Leather/LeafLegs.cs b/Projects/Scripts/Items/Armor/Leather/LeafLegs.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafLegs.cs rename to Projects/Scripts/Items/Armor/Leather/LeafLegs.cs diff --git a/Scripts/Items/Armor/Leather/LeafTonlet.cs b/Projects/Scripts/Items/Armor/Leather/LeafTonlet.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeafTonlet.cs rename to Projects/Scripts/Items/Armor/Leather/LeafTonlet.cs diff --git a/Scripts/Items/Armor/Leather/LeatherArms.cs b/Projects/Scripts/Items/Armor/Leather/LeatherArms.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherArms.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherArms.cs diff --git a/Scripts/Items/Armor/Leather/LeatherBustierArms.cs b/Projects/Scripts/Items/Armor/Leather/LeatherBustierArms.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherBustierArms.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherBustierArms.cs diff --git a/Scripts/Items/Armor/Leather/LeatherChest.cs b/Projects/Scripts/Items/Armor/Leather/LeatherChest.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherChest.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherChest.cs diff --git a/Scripts/Items/Armor/Leather/LeatherDo.cs b/Projects/Scripts/Items/Armor/Leather/LeatherDo.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherDo.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherDo.cs diff --git a/Scripts/Items/Armor/Leather/LeatherGloves.cs b/Projects/Scripts/Items/Armor/Leather/LeatherGloves.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherGloves.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherGloves.cs diff --git a/Scripts/Items/Armor/Leather/LeatherGorget.cs b/Projects/Scripts/Items/Armor/Leather/LeatherGorget.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherGorget.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherGorget.cs diff --git a/Scripts/Items/Armor/Leather/LeatherHaidate.cs b/Projects/Scripts/Items/Armor/Leather/LeatherHaidate.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherHaidate.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherHaidate.cs diff --git a/Scripts/Items/Armor/Leather/LeatherHiroSode.cs b/Projects/Scripts/Items/Armor/Leather/LeatherHiroSode.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherHiroSode.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherHiroSode.cs diff --git a/Scripts/Items/Armor/Leather/LeatherJingasa.cs b/Projects/Scripts/Items/Armor/Leather/LeatherJingasa.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherJingasa.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherJingasa.cs diff --git a/Scripts/Items/Armor/Leather/LeatherLegs.cs b/Projects/Scripts/Items/Armor/Leather/LeatherLegs.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherLegs.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherLegs.cs diff --git a/Scripts/Items/Armor/Leather/LeatherMempo.cs b/Projects/Scripts/Items/Armor/Leather/LeatherMempo.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherMempo.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherMempo.cs diff --git a/Scripts/Items/Armor/Leather/LeatherNinjaHood.cs b/Projects/Scripts/Items/Armor/Leather/LeatherNinjaHood.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherNinjaHood.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherNinjaHood.cs diff --git a/Scripts/Items/Armor/Leather/LeatherNinjaJacket.cs b/Projects/Scripts/Items/Armor/Leather/LeatherNinjaJacket.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherNinjaJacket.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherNinjaJacket.cs diff --git a/Scripts/Items/Armor/Leather/LeatherNinjaMitts.cs b/Projects/Scripts/Items/Armor/Leather/LeatherNinjaMitts.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherNinjaMitts.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherNinjaMitts.cs diff --git a/Scripts/Items/Armor/Leather/LeatherNinjaPants.cs b/Projects/Scripts/Items/Armor/Leather/LeatherNinjaPants.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherNinjaPants.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherNinjaPants.cs diff --git a/Scripts/Items/Armor/Leather/LeatherShorts.cs b/Projects/Scripts/Items/Armor/Leather/LeatherShorts.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherShorts.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherShorts.cs diff --git a/Scripts/Items/Armor/Leather/LeatherSkirt.cs b/Projects/Scripts/Items/Armor/Leather/LeatherSkirt.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherSkirt.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherSkirt.cs diff --git a/Scripts/Items/Armor/Leather/LeatherSuneate.cs b/Projects/Scripts/Items/Armor/Leather/LeatherSuneate.cs similarity index 100% rename from Scripts/Items/Armor/Leather/LeatherSuneate.cs rename to Projects/Scripts/Items/Armor/Leather/LeatherSuneate.cs diff --git a/Scripts/Items/Armor/Plate/DecorativePlateKabuto.cs b/Projects/Scripts/Items/Armor/Plate/DecorativePlateKabuto.cs similarity index 100% rename from Scripts/Items/Armor/Plate/DecorativePlateKabuto.cs rename to Projects/Scripts/Items/Armor/Plate/DecorativePlateKabuto.cs diff --git a/Scripts/Items/Armor/Plate/FemalePlateChest.cs b/Projects/Scripts/Items/Armor/Plate/FemalePlateChest.cs similarity index 100% rename from Scripts/Items/Armor/Plate/FemalePlateChest.cs rename to Projects/Scripts/Items/Armor/Plate/FemalePlateChest.cs diff --git a/Scripts/Items/Armor/Plate/FemaleWoodlandChest.cs b/Projects/Scripts/Items/Armor/Plate/FemaleWoodlandChest.cs similarity index 100% rename from Scripts/Items/Armor/Plate/FemaleWoodlandChest.cs rename to Projects/Scripts/Items/Armor/Plate/FemaleWoodlandChest.cs diff --git a/Scripts/Items/Armor/Plate/HeavyPlateJingasa.cs b/Projects/Scripts/Items/Armor/Plate/HeavyPlateJingasa.cs similarity index 100% rename from Scripts/Items/Armor/Plate/HeavyPlateJingasa.cs rename to Projects/Scripts/Items/Armor/Plate/HeavyPlateJingasa.cs diff --git a/Scripts/Items/Armor/Plate/LightPlateJingasa.cs b/Projects/Scripts/Items/Armor/Plate/LightPlateJingasa.cs similarity index 100% rename from Scripts/Items/Armor/Plate/LightPlateJingasa.cs rename to Projects/Scripts/Items/Armor/Plate/LightPlateJingasa.cs diff --git a/Scripts/Items/Armor/Plate/PlateArms.cs b/Projects/Scripts/Items/Armor/Plate/PlateArms.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateArms.cs rename to Projects/Scripts/Items/Armor/Plate/PlateArms.cs diff --git a/Scripts/Items/Armor/Plate/PlateBattleKabuto.cs b/Projects/Scripts/Items/Armor/Plate/PlateBattleKabuto.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateBattleKabuto.cs rename to Projects/Scripts/Items/Armor/Plate/PlateBattleKabuto.cs diff --git a/Scripts/Items/Armor/Plate/PlateChest.cs b/Projects/Scripts/Items/Armor/Plate/PlateChest.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateChest.cs rename to Projects/Scripts/Items/Armor/Plate/PlateChest.cs diff --git a/Scripts/Items/Armor/Plate/PlateDo.cs b/Projects/Scripts/Items/Armor/Plate/PlateDo.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateDo.cs rename to Projects/Scripts/Items/Armor/Plate/PlateDo.cs diff --git a/Scripts/Items/Armor/Plate/PlateGloves.cs b/Projects/Scripts/Items/Armor/Plate/PlateGloves.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateGloves.cs rename to Projects/Scripts/Items/Armor/Plate/PlateGloves.cs diff --git a/Scripts/Items/Armor/Plate/PlateGorget.cs b/Projects/Scripts/Items/Armor/Plate/PlateGorget.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateGorget.cs rename to Projects/Scripts/Items/Armor/Plate/PlateGorget.cs diff --git a/Scripts/Items/Armor/Plate/PlateHaidate.cs b/Projects/Scripts/Items/Armor/Plate/PlateHaidate.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateHaidate.cs rename to Projects/Scripts/Items/Armor/Plate/PlateHaidate.cs diff --git a/Scripts/Items/Armor/Plate/PlateHatsuburi.cs b/Projects/Scripts/Items/Armor/Plate/PlateHatsuburi.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateHatsuburi.cs rename to Projects/Scripts/Items/Armor/Plate/PlateHatsuburi.cs diff --git a/Scripts/Items/Armor/Plate/PlateHiroSode.cs b/Projects/Scripts/Items/Armor/Plate/PlateHiroSode.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateHiroSode.cs rename to Projects/Scripts/Items/Armor/Plate/PlateHiroSode.cs diff --git a/Scripts/Items/Armor/Plate/PlateLegs.cs b/Projects/Scripts/Items/Armor/Plate/PlateLegs.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateLegs.cs rename to Projects/Scripts/Items/Armor/Plate/PlateLegs.cs diff --git a/Scripts/Items/Armor/Plate/PlateMempo.cs b/Projects/Scripts/Items/Armor/Plate/PlateMempo.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateMempo.cs rename to Projects/Scripts/Items/Armor/Plate/PlateMempo.cs diff --git a/Scripts/Items/Armor/Plate/PlateSuneate.cs b/Projects/Scripts/Items/Armor/Plate/PlateSuneate.cs similarity index 100% rename from Scripts/Items/Armor/Plate/PlateSuneate.cs rename to Projects/Scripts/Items/Armor/Plate/PlateSuneate.cs diff --git a/Scripts/Items/Armor/Plate/SmallPlateJingasa.cs b/Projects/Scripts/Items/Armor/Plate/SmallPlateJingasa.cs similarity index 100% rename from Scripts/Items/Armor/Plate/SmallPlateJingasa.cs rename to Projects/Scripts/Items/Armor/Plate/SmallPlateJingasa.cs diff --git a/Scripts/Items/Armor/Plate/StandardPlateKabuto.cs b/Projects/Scripts/Items/Armor/Plate/StandardPlateKabuto.cs similarity index 100% rename from Scripts/Items/Armor/Plate/StandardPlateKabuto.cs rename to Projects/Scripts/Items/Armor/Plate/StandardPlateKabuto.cs diff --git a/Scripts/Items/Armor/Plate/WoodlandArms.cs b/Projects/Scripts/Items/Armor/Plate/WoodlandArms.cs similarity index 100% rename from Scripts/Items/Armor/Plate/WoodlandArms.cs rename to Projects/Scripts/Items/Armor/Plate/WoodlandArms.cs diff --git a/Scripts/Items/Armor/Plate/WoodlandChest.cs b/Projects/Scripts/Items/Armor/Plate/WoodlandChest.cs similarity index 100% rename from Scripts/Items/Armor/Plate/WoodlandChest.cs rename to Projects/Scripts/Items/Armor/Plate/WoodlandChest.cs diff --git a/Scripts/Items/Armor/Plate/WoodlandGloves.cs b/Projects/Scripts/Items/Armor/Plate/WoodlandGloves.cs similarity index 100% rename from Scripts/Items/Armor/Plate/WoodlandGloves.cs rename to Projects/Scripts/Items/Armor/Plate/WoodlandGloves.cs diff --git a/Scripts/Items/Armor/Plate/WoodlandGorget.cs b/Projects/Scripts/Items/Armor/Plate/WoodlandGorget.cs similarity index 100% rename from Scripts/Items/Armor/Plate/WoodlandGorget.cs rename to Projects/Scripts/Items/Armor/Plate/WoodlandGorget.cs diff --git a/Scripts/Items/Armor/Plate/WoodlandLegs.cs b/Projects/Scripts/Items/Armor/Plate/WoodlandLegs.cs similarity index 100% rename from Scripts/Items/Armor/Plate/WoodlandLegs.cs rename to Projects/Scripts/Items/Armor/Plate/WoodlandLegs.cs diff --git a/Scripts/Items/Armor/Ranger/RangerArms.cs b/Projects/Scripts/Items/Armor/Ranger/RangerArms.cs similarity index 100% rename from Scripts/Items/Armor/Ranger/RangerArms.cs rename to Projects/Scripts/Items/Armor/Ranger/RangerArms.cs diff --git a/Scripts/Items/Armor/Ranger/RangerChest.cs b/Projects/Scripts/Items/Armor/Ranger/RangerChest.cs similarity index 100% rename from Scripts/Items/Armor/Ranger/RangerChest.cs rename to Projects/Scripts/Items/Armor/Ranger/RangerChest.cs diff --git a/Scripts/Items/Armor/Ranger/RangerGloves.cs b/Projects/Scripts/Items/Armor/Ranger/RangerGloves.cs similarity index 100% rename from Scripts/Items/Armor/Ranger/RangerGloves.cs rename to Projects/Scripts/Items/Armor/Ranger/RangerGloves.cs diff --git a/Scripts/Items/Armor/Ranger/RangerGorget.cs b/Projects/Scripts/Items/Armor/Ranger/RangerGorget.cs similarity index 100% rename from Scripts/Items/Armor/Ranger/RangerGorget.cs rename to Projects/Scripts/Items/Armor/Ranger/RangerGorget.cs diff --git a/Scripts/Items/Armor/Ranger/RangerLegs.cs b/Projects/Scripts/Items/Armor/Ranger/RangerLegs.cs similarity index 100% rename from Scripts/Items/Armor/Ranger/RangerLegs.cs rename to Projects/Scripts/Items/Armor/Ranger/RangerLegs.cs diff --git a/Scripts/Items/Armor/Ring/RingmailArms.cs b/Projects/Scripts/Items/Armor/Ring/RingmailArms.cs similarity index 100% rename from Scripts/Items/Armor/Ring/RingmailArms.cs rename to Projects/Scripts/Items/Armor/Ring/RingmailArms.cs diff --git a/Scripts/Items/Armor/Ring/RingmailChest.cs b/Projects/Scripts/Items/Armor/Ring/RingmailChest.cs similarity index 100% rename from Scripts/Items/Armor/Ring/RingmailChest.cs rename to Projects/Scripts/Items/Armor/Ring/RingmailChest.cs diff --git a/Scripts/Items/Armor/Ring/RingmailGloves.cs b/Projects/Scripts/Items/Armor/Ring/RingmailGloves.cs similarity index 100% rename from Scripts/Items/Armor/Ring/RingmailGloves.cs rename to Projects/Scripts/Items/Armor/Ring/RingmailGloves.cs diff --git a/Scripts/Items/Armor/Ring/RingmailLegs.cs b/Projects/Scripts/Items/Armor/Ring/RingmailLegs.cs similarity index 100% rename from Scripts/Items/Armor/Ring/RingmailLegs.cs rename to Projects/Scripts/Items/Armor/Ring/RingmailLegs.cs diff --git a/Scripts/Items/Armor/Studded/FemaleStuddedChest.cs b/Projects/Scripts/Items/Armor/Studded/FemaleStuddedChest.cs similarity index 100% rename from Scripts/Items/Armor/Studded/FemaleStuddedChest.cs rename to Projects/Scripts/Items/Armor/Studded/FemaleStuddedChest.cs diff --git a/Scripts/Items/Armor/Studded/HideChest.cs b/Projects/Scripts/Items/Armor/Studded/HideChest.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HideChest.cs rename to Projects/Scripts/Items/Armor/Studded/HideChest.cs diff --git a/Scripts/Items/Armor/Studded/HideFemaleChest.cs b/Projects/Scripts/Items/Armor/Studded/HideFemaleChest.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HideFemaleChest.cs rename to Projects/Scripts/Items/Armor/Studded/HideFemaleChest.cs diff --git a/Scripts/Items/Armor/Studded/HideGloves.cs b/Projects/Scripts/Items/Armor/Studded/HideGloves.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HideGloves.cs rename to Projects/Scripts/Items/Armor/Studded/HideGloves.cs diff --git a/Scripts/Items/Armor/Studded/HideGorget.cs b/Projects/Scripts/Items/Armor/Studded/HideGorget.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HideGorget.cs rename to Projects/Scripts/Items/Armor/Studded/HideGorget.cs diff --git a/Scripts/Items/Armor/Studded/HidePants.cs b/Projects/Scripts/Items/Armor/Studded/HidePants.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HidePants.cs rename to Projects/Scripts/Items/Armor/Studded/HidePants.cs diff --git a/Scripts/Items/Armor/Studded/HidePauldrons.cs b/Projects/Scripts/Items/Armor/Studded/HidePauldrons.cs similarity index 100% rename from Scripts/Items/Armor/Studded/HidePauldrons.cs rename to Projects/Scripts/Items/Armor/Studded/HidePauldrons.cs diff --git a/Scripts/Items/Armor/Studded/StuddedArms.cs b/Projects/Scripts/Items/Armor/Studded/StuddedArms.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedArms.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedArms.cs diff --git a/Scripts/Items/Armor/Studded/StuddedBustierArms.cs b/Projects/Scripts/Items/Armor/Studded/StuddedBustierArms.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedBustierArms.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedBustierArms.cs diff --git a/Scripts/Items/Armor/Studded/StuddedChest.cs b/Projects/Scripts/Items/Armor/Studded/StuddedChest.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedChest.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedChest.cs diff --git a/Scripts/Items/Armor/Studded/StuddedDo.cs b/Projects/Scripts/Items/Armor/Studded/StuddedDo.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedDo.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedDo.cs diff --git a/Scripts/Items/Armor/Studded/StuddedGloves.cs b/Projects/Scripts/Items/Armor/Studded/StuddedGloves.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedGloves.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedGloves.cs diff --git a/Scripts/Items/Armor/Studded/StuddedGorget.cs b/Projects/Scripts/Items/Armor/Studded/StuddedGorget.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedGorget.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedGorget.cs diff --git a/Scripts/Items/Armor/Studded/StuddedHaidate.cs b/Projects/Scripts/Items/Armor/Studded/StuddedHaidate.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedHaidate.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedHaidate.cs diff --git a/Scripts/Items/Armor/Studded/StuddedHiroSode.cs b/Projects/Scripts/Items/Armor/Studded/StuddedHiroSode.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedHiroSode.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedHiroSode.cs diff --git a/Scripts/Items/Armor/Studded/StuddedLegs.cs b/Projects/Scripts/Items/Armor/Studded/StuddedLegs.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedLegs.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedLegs.cs diff --git a/Scripts/Items/Armor/Studded/StuddedMempo.cs b/Projects/Scripts/Items/Armor/Studded/StuddedMempo.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedMempo.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedMempo.cs diff --git a/Scripts/Items/Armor/Studded/StuddedSuneate.cs b/Projects/Scripts/Items/Armor/Studded/StuddedSuneate.cs similarity index 100% rename from Scripts/Items/Armor/Studded/StuddedSuneate.cs rename to Projects/Scripts/Items/Armor/Studded/StuddedSuneate.cs diff --git a/Scripts/Items/Body Parts/BonePile.cs b/Projects/Scripts/Items/Body Parts/BonePile.cs similarity index 100% rename from Scripts/Items/Body Parts/BonePile.cs rename to Projects/Scripts/Items/Body Parts/BonePile.cs diff --git a/Scripts/Items/Body Parts/Head.cs b/Projects/Scripts/Items/Body Parts/Head.cs similarity index 100% rename from Scripts/Items/Body Parts/Head.cs rename to Projects/Scripts/Items/Body Parts/Head.cs diff --git a/Scripts/Items/Body Parts/LeftArm.cs b/Projects/Scripts/Items/Body Parts/LeftArm.cs similarity index 100% rename from Scripts/Items/Body Parts/LeftArm.cs rename to Projects/Scripts/Items/Body Parts/LeftArm.cs diff --git a/Scripts/Items/Body Parts/LeftLeg.cs b/Projects/Scripts/Items/Body Parts/LeftLeg.cs similarity index 100% rename from Scripts/Items/Body Parts/LeftLeg.cs rename to Projects/Scripts/Items/Body Parts/LeftLeg.cs diff --git a/Scripts/Items/Body Parts/RibCage.cs b/Projects/Scripts/Items/Body Parts/RibCage.cs similarity index 100% rename from Scripts/Items/Body Parts/RibCage.cs rename to Projects/Scripts/Items/Body Parts/RibCage.cs diff --git a/Scripts/Items/Body Parts/RightArm.cs b/Projects/Scripts/Items/Body Parts/RightArm.cs similarity index 100% rename from Scripts/Items/Body Parts/RightArm.cs rename to Projects/Scripts/Items/Body Parts/RightArm.cs diff --git a/Scripts/Items/Body Parts/RightLeg.cs b/Projects/Scripts/Items/Body Parts/RightLeg.cs similarity index 100% rename from Scripts/Items/Body Parts/RightLeg.cs rename to Projects/Scripts/Items/Body Parts/RightLeg.cs diff --git a/Scripts/Items/Body Parts/Torso.cs b/Projects/Scripts/Items/Body Parts/Torso.cs similarity index 100% rename from Scripts/Items/Body Parts/Torso.cs rename to Projects/Scripts/Items/Body Parts/Torso.cs diff --git a/Scripts/Items/Books/BaseBook.cs b/Projects/Scripts/Items/Books/BaseBook.cs similarity index 100% rename from Scripts/Items/Books/BaseBook.cs rename to Projects/Scripts/Items/Books/BaseBook.cs diff --git a/Scripts/Items/Books/BlueBook.cs b/Projects/Scripts/Items/Books/BlueBook.cs similarity index 100% rename from Scripts/Items/Books/BlueBook.cs rename to Projects/Scripts/Items/Books/BlueBook.cs diff --git a/Scripts/Items/Books/BrownBook.cs b/Projects/Scripts/Items/Books/BrownBook.cs similarity index 100% rename from Scripts/Items/Books/BrownBook.cs rename to Projects/Scripts/Items/Books/BrownBook.cs diff --git a/Scripts/Items/Books/Defined/BlackthornWelcomeBook.cs b/Projects/Scripts/Items/Books/Defined/BlackthornWelcomeBook.cs similarity index 100% rename from Scripts/Items/Books/Defined/BlackthornWelcomeBook.cs rename to Projects/Scripts/Items/Books/Defined/BlackthornWelcomeBook.cs diff --git a/Scripts/Items/Books/Defined/BookContent.cs b/Projects/Scripts/Items/Books/Defined/BookContent.cs similarity index 100% rename from Scripts/Items/Books/Defined/BookContent.cs rename to Projects/Scripts/Items/Books/Defined/BookContent.cs diff --git a/Scripts/Items/Books/Defined/DrakovsJournal.cs b/Projects/Scripts/Items/Books/Defined/DrakovsJournal.cs similarity index 100% rename from Scripts/Items/Books/Defined/DrakovsJournal.cs rename to Projects/Scripts/Items/Books/Defined/DrakovsJournal.cs diff --git a/Scripts/Items/Books/Defined/FropozJournal.cs b/Projects/Scripts/Items/Books/Defined/FropozJournal.cs similarity index 100% rename from Scripts/Items/Books/Defined/FropozJournal.cs rename to Projects/Scripts/Items/Books/Defined/FropozJournal.cs diff --git a/Scripts/Items/Books/Defined/KaburJournal.cs b/Projects/Scripts/Items/Books/Defined/KaburJournal.cs similarity index 100% rename from Scripts/Items/Books/Defined/KaburJournal.cs rename to Projects/Scripts/Items/Books/Defined/KaburJournal.cs diff --git a/Scripts/Items/Books/Defined/LibraryBooks.cs b/Projects/Scripts/Items/Books/Defined/LibraryBooks.cs similarity index 100% rename from Scripts/Items/Books/Defined/LibraryBooks.cs rename to Projects/Scripts/Items/Books/Defined/LibraryBooks.cs diff --git a/Scripts/Items/Books/Defined/NewAquariumBook.cs b/Projects/Scripts/Items/Books/Defined/NewAquariumBook.cs similarity index 100% rename from Scripts/Items/Books/Defined/NewAquariumBook.cs rename to Projects/Scripts/Items/Books/Defined/NewAquariumBook.cs diff --git a/Scripts/Items/Books/Defined/TranslatedGargoyleJournal.cs b/Projects/Scripts/Items/Books/Defined/TranslatedGargoyleJournal.cs similarity index 100% rename from Scripts/Items/Books/Defined/TranslatedGargoyleJournal.cs rename to Projects/Scripts/Items/Books/Defined/TranslatedGargoyleJournal.cs diff --git a/Scripts/Items/Books/RedBook.cs b/Projects/Scripts/Items/Books/RedBook.cs similarity index 100% rename from Scripts/Items/Books/RedBook.cs rename to Projects/Scripts/Items/Books/RedBook.cs diff --git a/Scripts/Items/Books/TanBook.cs b/Projects/Scripts/Items/Books/TanBook.cs similarity index 100% rename from Scripts/Items/Books/TanBook.cs rename to Projects/Scripts/Items/Books/TanBook.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/ArtifactLargeVase.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/ArtifactLargeVase.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/ArtifactLargeVase.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/ArtifactLargeVase.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/ArtifactVase.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/ArtifactVase.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/ArtifactVase.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/ArtifactVase.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/DemonSkull.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/DemonSkull.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/DemonSkull.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/DemonSkull.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/DirtPatch.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/DirtPatch.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/DirtPatch.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/DirtPatch.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/EvilIdolSkull.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/EvilIdolSkull.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/EvilIdolSkull.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/EvilIdolSkull.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/Futon.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/Futon.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/Futon.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/Futon.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/LavaTile.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/LavaTile.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/LavaTile.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/LavaTile.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/Pier.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/Pier.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/Pier.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/Pier.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/SkullPole.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/SkullPole.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/SkullPole.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/SkullPole.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/SwampTile.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/SwampTile.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/SwampTile.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/SwampTile.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/TatteredAncientMummyWrapping.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/TatteredAncientMummyWrapping.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/TatteredAncientMummyWrapping.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/TatteredAncientMummyWrapping.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/WallBlood.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/WallBlood.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/WallBlood.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/WallBlood.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/WaterTile.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/WaterTile.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/WaterTile.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/WaterTile.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/Web.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/Web.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/Web.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/Web.cs diff --git a/Scripts/Items/Champion Artifacts/Decorative/WindSpirit.cs b/Projects/Scripts/Items/Champion Artifacts/Decorative/WindSpirit.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Decorative/WindSpirit.cs rename to Projects/Scripts/Items/Champion Artifacts/Decorative/WindSpirit.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/ANecromancerShroud.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/ANecromancerShroud.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/ANecromancerShroud.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/ANecromancerShroud.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/BraveKnightOfTheBritannia.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/BraveKnightOfTheBritannia.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/BraveKnightOfTheBritannia.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/BraveKnightOfTheBritannia.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/CaptainJohnsHat.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/CaptainJohnsHat.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/CaptainJohnsHat.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/CaptainJohnsHat.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/DetectiveBoots.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/DetectiveBoots.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/DetectiveBoots.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/DetectiveBoots.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/DjinnisRing.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/DjinnisRing.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/DjinnisRing.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/DjinnisRing.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/EmbroideredOakLeafCloak.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/EmbroideredOakLeafCloak.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/EmbroideredOakLeafCloak.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/EmbroideredOakLeafCloak.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/GauntletsOfAnger.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/GauntletsOfAnger.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/GauntletsOfAnger.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/GauntletsOfAnger.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/LieutenantOfTheBritannianRoyalGuard.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/LieutenantOfTheBritannianRoyalGuard.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/LieutenantOfTheBritannianRoyalGuard.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/LieutenantOfTheBritannianRoyalGuard.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/OblivionsNeedle.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/OblivionsNeedle.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/OblivionsNeedle.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/OblivionsNeedle.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/RoyalGuardSurvivalKnife.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/RoyalGuardSurvivalKnife.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/RoyalGuardSurvivalKnife.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/RoyalGuardSurvivalKnife.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/SamaritanRobe.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/SamaritanRobe.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/SamaritanRobe.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/SamaritanRobe.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/TheMostKnowledgePerson.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/TheMostKnowledgePerson.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/TheMostKnowledgePerson.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/TheMostKnowledgePerson.cs diff --git a/Scripts/Items/Champion Artifacts/Shared/TheRobeOfBritanniaAri.cs b/Projects/Scripts/Items/Champion Artifacts/Shared/TheRobeOfBritanniaAri.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Shared/TheRobeOfBritanniaAri.cs rename to Projects/Scripts/Items/Champion Artifacts/Shared/TheRobeOfBritanniaAri.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/AcidProofRobe.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/AcidProofRobe.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/AcidProofRobe.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/AcidProofRobe.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/Calm.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/Calm.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/Calm.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/Calm.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/CrownOfTalKeesh.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/CrownOfTalKeesh.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/CrownOfTalKeesh.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/CrownOfTalKeesh.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/FangOfRactus.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/FangOfRactus.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/FangOfRactus.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/FangOfRactus.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/GladiatorsCollar.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/GladiatorsCollar.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/GladiatorsCollar.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/GladiatorsCollar.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/OrcChieftainHelm.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/OrcChieftainHelm.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/OrcChieftainHelm.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/OrcChieftainHelm.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/Pacify.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/Pacify.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/Pacify.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/Pacify.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/Quell.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/Quell.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/Quell.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/Quell.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/ShroudOfDeceit.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/ShroudOfDeceit.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/ShroudOfDeceit.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/ShroudOfDeceit.cs diff --git a/Scripts/Items/Champion Artifacts/Unique/Subdue.cs b/Projects/Scripts/Items/Champion Artifacts/Unique/Subdue.cs similarity index 100% rename from Scripts/Items/Champion Artifacts/Unique/Subdue.cs rename to Projects/Scripts/Items/Champion Artifacts/Unique/Subdue.cs diff --git a/Scripts/Items/Clothing/Artifacts/CrimsonCincture.cs b/Projects/Scripts/Items/Clothing/Artifacts/CrimsonCincture.cs similarity index 100% rename from Scripts/Items/Clothing/Artifacts/CrimsonCincture.cs rename to Projects/Scripts/Items/Clothing/Artifacts/CrimsonCincture.cs diff --git a/Scripts/Items/Clothing/Artifacts/DivineCountenance.cs b/Projects/Scripts/Items/Clothing/Artifacts/DivineCountenance.cs similarity index 100% rename from Scripts/Items/Clothing/Artifacts/DivineCountenance.cs rename to Projects/Scripts/Items/Clothing/Artifacts/DivineCountenance.cs diff --git a/Scripts/Items/Clothing/Artifacts/HatOfTheMagi.cs b/Projects/Scripts/Items/Clothing/Artifacts/HatOfTheMagi.cs similarity index 100% rename from Scripts/Items/Clothing/Artifacts/HatOfTheMagi.cs rename to Projects/Scripts/Items/Clothing/Artifacts/HatOfTheMagi.cs diff --git a/Scripts/Items/Clothing/Artifacts/HuntersHeaddress.cs b/Projects/Scripts/Items/Clothing/Artifacts/HuntersHeaddress.cs similarity index 100% rename from Scripts/Items/Clothing/Artifacts/HuntersHeaddress.cs rename to Projects/Scripts/Items/Clothing/Artifacts/HuntersHeaddress.cs diff --git a/Scripts/Items/Clothing/Artifacts/SpiritOfTheTotem.cs b/Projects/Scripts/Items/Clothing/Artifacts/SpiritOfTheTotem.cs similarity index 100% rename from Scripts/Items/Clothing/Artifacts/SpiritOfTheTotem.cs rename to Projects/Scripts/Items/Clothing/Artifacts/SpiritOfTheTotem.cs diff --git a/Scripts/Items/Clothing/BaseClothing.cs b/Projects/Scripts/Items/Clothing/BaseClothing.cs similarity index 100% rename from Scripts/Items/Clothing/BaseClothing.cs rename to Projects/Scripts/Items/Clothing/BaseClothing.cs diff --git a/Scripts/Items/Clothing/Cloaks.cs b/Projects/Scripts/Items/Clothing/Cloaks.cs similarity index 100% rename from Scripts/Items/Clothing/Cloaks.cs rename to Projects/Scripts/Items/Clothing/Cloaks.cs diff --git a/Scripts/Items/Clothing/Hats.cs b/Projects/Scripts/Items/Clothing/Hats.cs similarity index 100% rename from Scripts/Items/Clothing/Hats.cs rename to Projects/Scripts/Items/Clothing/Hats.cs diff --git a/Scripts/Items/Clothing/MiddleTorso.cs b/Projects/Scripts/Items/Clothing/MiddleTorso.cs similarity index 100% rename from Scripts/Items/Clothing/MiddleTorso.cs rename to Projects/Scripts/Items/Clothing/MiddleTorso.cs diff --git a/Scripts/Items/Clothing/OuterLegs.cs b/Projects/Scripts/Items/Clothing/OuterLegs.cs similarity index 100% rename from Scripts/Items/Clothing/OuterLegs.cs rename to Projects/Scripts/Items/Clothing/OuterLegs.cs diff --git a/Scripts/Items/Clothing/OuterTorso.cs b/Projects/Scripts/Items/Clothing/OuterTorso.cs similarity index 100% rename from Scripts/Items/Clothing/OuterTorso.cs rename to Projects/Scripts/Items/Clothing/OuterTorso.cs diff --git a/Scripts/Items/Clothing/Pants.cs b/Projects/Scripts/Items/Clothing/Pants.cs similarity index 100% rename from Scripts/Items/Clothing/Pants.cs rename to Projects/Scripts/Items/Clothing/Pants.cs diff --git a/Scripts/Items/Clothing/Shirts.cs b/Projects/Scripts/Items/Clothing/Shirts.cs similarity index 100% rename from Scripts/Items/Clothing/Shirts.cs rename to Projects/Scripts/Items/Clothing/Shirts.cs diff --git a/Scripts/Items/Clothing/Shoes.cs b/Projects/Scripts/Items/Clothing/Shoes.cs similarity index 100% rename from Scripts/Items/Clothing/Shoes.cs rename to Projects/Scripts/Items/Clothing/Shoes.cs diff --git a/Scripts/Items/Clothing/Waist.cs b/Projects/Scripts/Items/Clothing/Waist.cs similarity index 100% rename from Scripts/Items/Clothing/Waist.cs rename to Projects/Scripts/Items/Clothing/Waist.cs diff --git a/Scripts/Items/Construction/Ankhs.cs b/Projects/Scripts/Items/Construction/Ankhs.cs similarity index 100% rename from Scripts/Items/Construction/Ankhs.cs rename to Projects/Scripts/Items/Construction/Ankhs.cs diff --git a/Scripts/Items/Construction/Chairs/Benchs.cs b/Projects/Scripts/Items/Construction/Chairs/Benchs.cs similarity index 100% rename from Scripts/Items/Construction/Chairs/Benchs.cs rename to Projects/Scripts/Items/Construction/Chairs/Benchs.cs diff --git a/Scripts/Items/Construction/Chairs/Chairs.cs b/Projects/Scripts/Items/Construction/Chairs/Chairs.cs similarity index 100% rename from Scripts/Items/Construction/Chairs/Chairs.cs rename to Projects/Scripts/Items/Construction/Chairs/Chairs.cs diff --git a/Scripts/Items/Construction/Chairs/Stools.cs b/Projects/Scripts/Items/Construction/Chairs/Stools.cs similarity index 100% rename from Scripts/Items/Construction/Chairs/Stools.cs rename to Projects/Scripts/Items/Construction/Chairs/Stools.cs diff --git a/Scripts/Items/Construction/Chairs/Thrones.cs b/Projects/Scripts/Items/Construction/Chairs/Thrones.cs similarity index 100% rename from Scripts/Items/Construction/Chairs/Thrones.cs rename to Projects/Scripts/Items/Construction/Chairs/Thrones.cs diff --git a/Scripts/Items/Construction/Decorative/DecorativeShield.cs b/Projects/Scripts/Items/Construction/Decorative/DecorativeShield.cs similarity index 100% rename from Scripts/Items/Construction/Decorative/DecorativeShield.cs rename to Projects/Scripts/Items/Construction/Decorative/DecorativeShield.cs diff --git a/Scripts/Items/Construction/Decorative/DecorativeWeapon.cs b/Projects/Scripts/Items/Construction/Decorative/DecorativeWeapon.cs similarity index 100% rename from Scripts/Items/Construction/Decorative/DecorativeWeapon.cs rename to Projects/Scripts/Items/Construction/Decorative/DecorativeWeapon.cs diff --git a/Scripts/Items/Construction/Decorative/PaintingPortraits.cs b/Projects/Scripts/Items/Construction/Decorative/PaintingPortraits.cs similarity index 100% rename from Scripts/Items/Construction/Decorative/PaintingPortraits.cs rename to Projects/Scripts/Items/Construction/Decorative/PaintingPortraits.cs diff --git a/Scripts/Items/Construction/Decorative/Tapestry.cs b/Projects/Scripts/Items/Construction/Decorative/Tapestry.cs similarity index 100% rename from Scripts/Items/Construction/Decorative/Tapestry.cs rename to Projects/Scripts/Items/Construction/Decorative/Tapestry.cs diff --git a/Scripts/Items/Construction/Doors/BaseDoor.cs b/Projects/Scripts/Items/Construction/Doors/BaseDoor.cs similarity index 100% rename from Scripts/Items/Construction/Doors/BaseDoor.cs rename to Projects/Scripts/Items/Construction/Doors/BaseDoor.cs diff --git a/Scripts/Items/Construction/Doors/Doors.cs b/Projects/Scripts/Items/Construction/Doors/Doors.cs similarity index 100% rename from Scripts/Items/Construction/Doors/Doors.cs rename to Projects/Scripts/Items/Construction/Doors/Doors.cs diff --git a/Scripts/Items/Construction/Doors/HouseDoors.cs b/Projects/Scripts/Items/Construction/Doors/HouseDoors.cs similarity index 100% rename from Scripts/Items/Construction/Doors/HouseDoors.cs rename to Projects/Scripts/Items/Construction/Doors/HouseDoors.cs diff --git a/Scripts/Items/Construction/Doors/Portcullis.cs b/Projects/Scripts/Items/Construction/Doors/Portcullis.cs similarity index 100% rename from Scripts/Items/Construction/Doors/Portcullis.cs rename to Projects/Scripts/Items/Construction/Doors/Portcullis.cs diff --git a/Scripts/Items/Construction/Doors/SecretDoors.cs b/Projects/Scripts/Items/Construction/Doors/SecretDoors.cs similarity index 100% rename from Scripts/Items/Construction/Doors/SecretDoors.cs rename to Projects/Scripts/Items/Construction/Doors/SecretDoors.cs diff --git a/Scripts/Items/Construction/Floors/Floors.cs b/Projects/Scripts/Items/Construction/Floors/Floors.cs similarity index 100% rename from Scripts/Items/Construction/Floors/Floors.cs rename to Projects/Scripts/Items/Construction/Floors/Floors.cs diff --git a/Scripts/Items/Construction/Misc/BarrelParts.cs b/Projects/Scripts/Items/Construction/Misc/BarrelParts.cs similarity index 100% rename from Scripts/Items/Construction/Misc/BarrelParts.cs rename to Projects/Scripts/Items/Construction/Misc/BarrelParts.cs diff --git a/Scripts/Items/Construction/Misc/Easle.cs b/Projects/Scripts/Items/Construction/Misc/Easle.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Easle.cs rename to Projects/Scripts/Items/Construction/Misc/Easle.cs diff --git a/Scripts/Items/Construction/Misc/MeltedWax.cs b/Projects/Scripts/Items/Construction/Misc/MeltedWax.cs similarity index 100% rename from Scripts/Items/Construction/Misc/MeltedWax.cs rename to Projects/Scripts/Items/Construction/Misc/MeltedWax.cs diff --git a/Scripts/Items/Construction/Misc/MusicStand.cs b/Projects/Scripts/Items/Construction/Misc/MusicStand.cs similarity index 100% rename from Scripts/Items/Construction/Misc/MusicStand.cs rename to Projects/Scripts/Items/Construction/Misc/MusicStand.cs diff --git a/Scripts/Items/Construction/Misc/Obelisk.cs b/Projects/Scripts/Items/Construction/Misc/Obelisk.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Obelisk.cs rename to Projects/Scripts/Items/Construction/Misc/Obelisk.cs diff --git a/Scripts/Items/Construction/Misc/Screens.cs b/Projects/Scripts/Items/Construction/Misc/Screens.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Screens.cs rename to Projects/Scripts/Items/Construction/Misc/Screens.cs diff --git a/Scripts/Items/Construction/Misc/Statues.cs b/Projects/Scripts/Items/Construction/Misc/Statues.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Statues.cs rename to Projects/Scripts/Items/Construction/Misc/Statues.cs diff --git a/Scripts/Items/Construction/Misc/Vase.cs b/Projects/Scripts/Items/Construction/Misc/Vase.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Vase.cs rename to Projects/Scripts/Items/Construction/Misc/Vase.cs diff --git a/Scripts/Items/Construction/Misc/Vines.cs b/Projects/Scripts/Items/Construction/Misc/Vines.cs similarity index 100% rename from Scripts/Items/Construction/Misc/Vines.cs rename to Projects/Scripts/Items/Construction/Misc/Vines.cs diff --git a/Scripts/Items/Construction/Ruined/RuinedItemSingle.cs b/Projects/Scripts/Items/Construction/Ruined/RuinedItemSingle.cs similarity index 100% rename from Scripts/Items/Construction/Ruined/RuinedItemSingle.cs rename to Projects/Scripts/Items/Construction/Ruined/RuinedItemSingle.cs diff --git a/Scripts/Items/Construction/Signs/BaseSign.cs b/Projects/Scripts/Items/Construction/Signs/BaseSign.cs similarity index 100% rename from Scripts/Items/Construction/Signs/BaseSign.cs rename to Projects/Scripts/Items/Construction/Signs/BaseSign.cs diff --git a/Scripts/Items/Construction/Signs/LocalizedSign.cs b/Projects/Scripts/Items/Construction/Signs/LocalizedSign.cs similarity index 100% rename from Scripts/Items/Construction/Signs/LocalizedSign.cs rename to Projects/Scripts/Items/Construction/Signs/LocalizedSign.cs diff --git a/Scripts/Items/Construction/Signs/Sign.cs b/Projects/Scripts/Items/Construction/Signs/Sign.cs similarity index 100% rename from Scripts/Items/Construction/Signs/Sign.cs rename to Projects/Scripts/Items/Construction/Signs/Sign.cs diff --git a/Scripts/Items/Construction/Signs/SubtextSign.cs b/Projects/Scripts/Items/Construction/Signs/SubtextSign.cs similarity index 100% rename from Scripts/Items/Construction/Signs/SubtextSign.cs rename to Projects/Scripts/Items/Construction/Signs/SubtextSign.cs diff --git a/Scripts/Items/Construction/Tables/Tables.cs b/Projects/Scripts/Items/Construction/Tables/Tables.cs similarity index 100% rename from Scripts/Items/Construction/Tables/Tables.cs rename to Projects/Scripts/Items/Construction/Tables/Tables.cs diff --git a/Scripts/Items/Construction/Tables/WritingTable.cs b/Projects/Scripts/Items/Construction/Tables/WritingTable.cs similarity index 100% rename from Scripts/Items/Construction/Tables/WritingTable.cs rename to Projects/Scripts/Items/Construction/Tables/WritingTable.cs diff --git a/Scripts/Items/Construction/Walls/BaseWall.cs b/Projects/Scripts/Items/Construction/Walls/BaseWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/BaseWall.cs rename to Projects/Scripts/Items/Construction/Walls/BaseWall.cs diff --git a/Scripts/Items/Construction/Walls/DarkWoodWall.cs b/Projects/Scripts/Items/Construction/Walls/DarkWoodWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/DarkWoodWall.cs rename to Projects/Scripts/Items/Construction/Walls/DarkWoodWall.cs diff --git a/Scripts/Items/Construction/Walls/ThickGrayStoneWall.cs b/Projects/Scripts/Items/Construction/Walls/ThickGrayStoneWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/ThickGrayStoneWall.cs rename to Projects/Scripts/Items/Construction/Walls/ThickGrayStoneWall.cs diff --git a/Scripts/Items/Construction/Walls/ThinBrickWall.cs b/Projects/Scripts/Items/Construction/Walls/ThinBrickWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/ThinBrickWall.cs rename to Projects/Scripts/Items/Construction/Walls/ThinBrickWall.cs diff --git a/Scripts/Items/Construction/Walls/ThinStoneWall.cs b/Projects/Scripts/Items/Construction/Walls/ThinStoneWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/ThinStoneWall.cs rename to Projects/Scripts/Items/Construction/Walls/ThinStoneWall.cs diff --git a/Scripts/Items/Construction/Walls/WhiteStoneWall.cs b/Projects/Scripts/Items/Construction/Walls/WhiteStoneWall.cs similarity index 100% rename from Scripts/Items/Construction/Walls/WhiteStoneWall.cs rename to Projects/Scripts/Items/Construction/Walls/WhiteStoneWall.cs diff --git a/Scripts/Items/Containers/BaseTreasureChest.cs b/Projects/Scripts/Items/Containers/BaseTreasureChest.cs similarity index 100% rename from Scripts/Items/Containers/BaseTreasureChest.cs rename to Projects/Scripts/Items/Containers/BaseTreasureChest.cs diff --git a/Scripts/Items/Containers/Container.cs b/Projects/Scripts/Items/Containers/Container.cs similarity index 100% rename from Scripts/Items/Containers/Container.cs rename to Projects/Scripts/Items/Containers/Container.cs diff --git a/Scripts/Items/Containers/FillableContainers.cs b/Projects/Scripts/Items/Containers/FillableContainers.cs similarity index 100% rename from Scripts/Items/Containers/FillableContainers.cs rename to Projects/Scripts/Items/Containers/FillableContainers.cs diff --git a/Scripts/Items/Containers/FurnitureContainer.cs b/Projects/Scripts/Items/Containers/FurnitureContainer.cs similarity index 100% rename from Scripts/Items/Containers/FurnitureContainer.cs rename to Projects/Scripts/Items/Containers/FurnitureContainer.cs diff --git a/Scripts/Items/Containers/LockableContainer.cs b/Projects/Scripts/Items/Containers/LockableContainer.cs similarity index 100% rename from Scripts/Items/Containers/LockableContainer.cs rename to Projects/Scripts/Items/Containers/LockableContainer.cs diff --git a/Scripts/Items/Containers/MarkContainer.cs b/Projects/Scripts/Items/Containers/MarkContainer.cs similarity index 100% rename from Scripts/Items/Containers/MarkContainer.cs rename to Projects/Scripts/Items/Containers/MarkContainer.cs diff --git a/Scripts/Items/Containers/ParagonChest.cs b/Projects/Scripts/Items/Containers/ParagonChest.cs similarity index 100% rename from Scripts/Items/Containers/ParagonChest.cs rename to Projects/Scripts/Items/Containers/ParagonChest.cs diff --git a/Scripts/Items/Containers/SalvageBag.cs b/Projects/Scripts/Items/Containers/SalvageBag.cs similarity index 100% rename from Scripts/Items/Containers/SalvageBag.cs rename to Projects/Scripts/Items/Containers/SalvageBag.cs diff --git a/Scripts/Items/Containers/Strongbox.cs b/Projects/Scripts/Items/Containers/Strongbox.cs similarity index 100% rename from Scripts/Items/Containers/Strongbox.cs rename to Projects/Scripts/Items/Containers/Strongbox.cs diff --git a/Scripts/Items/Containers/TrappableContainer.cs b/Projects/Scripts/Items/Containers/TrappableContainer.cs similarity index 100% rename from Scripts/Items/Containers/TrappableContainer.cs rename to Projects/Scripts/Items/Containers/TrappableContainer.cs diff --git a/Scripts/Items/Containers/TreasureChest.cs b/Projects/Scripts/Items/Containers/TreasureChest.cs similarity index 100% rename from Scripts/Items/Containers/TreasureChest.cs rename to Projects/Scripts/Items/Containers/TreasureChest.cs diff --git a/Scripts/Items/Containers/TreasureMapChest.cs b/Projects/Scripts/Items/Containers/TreasureMapChest.cs similarity index 100% rename from Scripts/Items/Containers/TreasureMapChest.cs rename to Projects/Scripts/Items/Containers/TreasureMapChest.cs diff --git a/Scripts/Items/Decoration Artifacts/BaseDecorationArtifact.cs b/Projects/Scripts/Items/Decoration Artifacts/BaseDecorationArtifact.cs similarity index 100% rename from Scripts/Items/Decoration Artifacts/BaseDecorationArtifact.cs rename to Projects/Scripts/Items/Decoration Artifacts/BaseDecorationArtifact.cs diff --git a/Scripts/Items/Decoration Artifacts/DoomDecorationArtifacts.cs b/Projects/Scripts/Items/Decoration Artifacts/DoomDecorationArtifacts.cs similarity index 100% rename from Scripts/Items/Decoration Artifacts/DoomDecorationArtifacts.cs rename to Projects/Scripts/Items/Decoration Artifacts/DoomDecorationArtifacts.cs diff --git a/Scripts/Items/Decoration Artifacts/SEDecorationArtifacts.cs b/Projects/Scripts/Items/Decoration Artifacts/SEDecorationArtifacts.cs similarity index 100% rename from Scripts/Items/Decoration Artifacts/SEDecorationArtifacts.cs rename to Projects/Scripts/Items/Decoration Artifacts/SEDecorationArtifacts.cs diff --git a/Scripts/Items/Decoration Artifacts/StealableArtifactsSpawner.cs b/Projects/Scripts/Items/Decoration Artifacts/StealableArtifactsSpawner.cs similarity index 100% rename from Scripts/Items/Decoration Artifacts/StealableArtifactsSpawner.cs rename to Projects/Scripts/Items/Decoration Artifacts/StealableArtifactsSpawner.cs diff --git a/Scripts/Items/Deeds/BarkeepContract.cs b/Projects/Scripts/Items/Deeds/BarkeepContract.cs similarity index 100% rename from Scripts/Items/Deeds/BarkeepContract.cs rename to Projects/Scripts/Items/Deeds/BarkeepContract.cs diff --git a/Scripts/Items/Deeds/ClothingBlessDeed.cs b/Projects/Scripts/Items/Deeds/ClothingBlessDeed.cs similarity index 100% rename from Scripts/Items/Deeds/ClothingBlessDeed.cs rename to Projects/Scripts/Items/Deeds/ClothingBlessDeed.cs diff --git a/Scripts/Items/Deeds/CommodityDeed.cs b/Projects/Scripts/Items/Deeds/CommodityDeed.cs similarity index 100% rename from Scripts/Items/Deeds/CommodityDeed.cs rename to Projects/Scripts/Items/Deeds/CommodityDeed.cs diff --git a/Scripts/Items/Deeds/DragonBardingDeed.cs b/Projects/Scripts/Items/Deeds/DragonBardingDeed.cs similarity index 100% rename from Scripts/Items/Deeds/DragonBardingDeed.cs rename to Projects/Scripts/Items/Deeds/DragonBardingDeed.cs diff --git a/Scripts/Items/Deeds/HairRestylingDeed.cs b/Projects/Scripts/Items/Deeds/HairRestylingDeed.cs similarity index 100% rename from Scripts/Items/Deeds/HairRestylingDeed.cs rename to Projects/Scripts/Items/Deeds/HairRestylingDeed.cs diff --git a/Scripts/Items/Deeds/HolidayTreeDeed.cs b/Projects/Scripts/Items/Deeds/HolidayTreeDeed.cs similarity index 100% rename from Scripts/Items/Deeds/HolidayTreeDeed.cs rename to Projects/Scripts/Items/Deeds/HolidayTreeDeed.cs diff --git a/Scripts/Items/Deeds/NameChangeDeed.cs b/Projects/Scripts/Items/Deeds/NameChangeDeed.cs similarity index 100% rename from Scripts/Items/Deeds/NameChangeDeed.cs rename to Projects/Scripts/Items/Deeds/NameChangeDeed.cs diff --git a/Scripts/Items/Deeds/NewPlayerTicket.cs b/Projects/Scripts/Items/Deeds/NewPlayerTicket.cs similarity index 100% rename from Scripts/Items/Deeds/NewPlayerTicket.cs rename to Projects/Scripts/Items/Deeds/NewPlayerTicket.cs diff --git a/Scripts/Items/Deeds/VendorRentalContract.cs b/Projects/Scripts/Items/Deeds/VendorRentalContract.cs similarity index 100% rename from Scripts/Items/Deeds/VendorRentalContract.cs rename to Projects/Scripts/Items/Deeds/VendorRentalContract.cs diff --git a/Scripts/Items/Facial/Beard.cs b/Projects/Scripts/Items/Facial/Beard.cs similarity index 100% rename from Scripts/Items/Facial/Beard.cs rename to Projects/Scripts/Items/Facial/Beard.cs diff --git a/Scripts/Items/Facial/Hair.cs b/Projects/Scripts/Items/Facial/Hair.cs similarity index 100% rename from Scripts/Items/Facial/Hair.cs rename to Projects/Scripts/Items/Facial/Hair.cs diff --git a/Scripts/Items/Farming/FarmableCabbage.cs b/Projects/Scripts/Items/Farming/FarmableCabbage.cs similarity index 100% rename from Scripts/Items/Farming/FarmableCabbage.cs rename to Projects/Scripts/Items/Farming/FarmableCabbage.cs diff --git a/Scripts/Items/Farming/FarmableCarrot.cs b/Projects/Scripts/Items/Farming/FarmableCarrot.cs similarity index 100% rename from Scripts/Items/Farming/FarmableCarrot.cs rename to Projects/Scripts/Items/Farming/FarmableCarrot.cs diff --git a/Scripts/Items/Farming/FarmableCotton.cs b/Projects/Scripts/Items/Farming/FarmableCotton.cs similarity index 100% rename from Scripts/Items/Farming/FarmableCotton.cs rename to Projects/Scripts/Items/Farming/FarmableCotton.cs diff --git a/Scripts/Items/Farming/FarmableCrop.cs b/Projects/Scripts/Items/Farming/FarmableCrop.cs similarity index 100% rename from Scripts/Items/Farming/FarmableCrop.cs rename to Projects/Scripts/Items/Farming/FarmableCrop.cs diff --git a/Scripts/Items/Farming/FarmableFlax.cs b/Projects/Scripts/Items/Farming/FarmableFlax.cs similarity index 100% rename from Scripts/Items/Farming/FarmableFlax.cs rename to Projects/Scripts/Items/Farming/FarmableFlax.cs diff --git a/Scripts/Items/Farming/FarmableLettuce.cs b/Projects/Scripts/Items/Farming/FarmableLettuce.cs similarity index 100% rename from Scripts/Items/Farming/FarmableLettuce.cs rename to Projects/Scripts/Items/Farming/FarmableLettuce.cs diff --git a/Scripts/Items/Farming/FarmableOnion.cs b/Projects/Scripts/Items/Farming/FarmableOnion.cs similarity index 100% rename from Scripts/Items/Farming/FarmableOnion.cs rename to Projects/Scripts/Items/Farming/FarmableOnion.cs diff --git a/Scripts/Items/Farming/FarmablePumpkin.cs b/Projects/Scripts/Items/Farming/FarmablePumpkin.cs similarity index 100% rename from Scripts/Items/Farming/FarmablePumpkin.cs rename to Projects/Scripts/Items/Farming/FarmablePumpkin.cs diff --git a/Scripts/Items/Farming/FarmableTurnip.cs b/Projects/Scripts/Items/Farming/FarmableTurnip.cs similarity index 100% rename from Scripts/Items/Farming/FarmableTurnip.cs rename to Projects/Scripts/Items/Farming/FarmableTurnip.cs diff --git a/Scripts/Items/Farming/FarmableWheat.cs b/Projects/Scripts/Items/Farming/FarmableWheat.cs similarity index 100% rename from Scripts/Items/Farming/FarmableWheat.cs rename to Projects/Scripts/Items/Farming/FarmableWheat.cs diff --git a/Scripts/Items/Food/Asian.cs b/Projects/Scripts/Items/Food/Asian.cs similarity index 100% rename from Scripts/Items/Food/Asian.cs rename to Projects/Scripts/Items/Food/Asian.cs diff --git a/Scripts/Items/Food/Beverage.cs b/Projects/Scripts/Items/Food/Beverage.cs similarity index 100% rename from Scripts/Items/Food/Beverage.cs rename to Projects/Scripts/Items/Food/Beverage.cs diff --git a/Scripts/Items/Food/BeverageEmpty.cs b/Projects/Scripts/Items/Food/BeverageEmpty.cs similarity index 100% rename from Scripts/Items/Food/BeverageEmpty.cs rename to Projects/Scripts/Items/Food/BeverageEmpty.cs diff --git a/Scripts/Items/Food/Bowls.cs b/Projects/Scripts/Items/Food/Bowls.cs similarity index 100% rename from Scripts/Items/Food/Bowls.cs rename to Projects/Scripts/Items/Food/Bowls.cs diff --git a/Scripts/Items/Food/Chocolatiering.cs b/Projects/Scripts/Items/Food/Chocolatiering.cs similarity index 100% rename from Scripts/Items/Food/Chocolatiering.cs rename to Projects/Scripts/Items/Food/Chocolatiering.cs diff --git a/Scripts/Items/Food/CookableFood.cs b/Projects/Scripts/Items/Food/CookableFood.cs similarity index 100% rename from Scripts/Items/Food/CookableFood.cs rename to Projects/Scripts/Items/Food/CookableFood.cs diff --git a/Scripts/Items/Food/Cooking.cs b/Projects/Scripts/Items/Food/Cooking.cs similarity index 100% rename from Scripts/Items/Food/Cooking.cs rename to Projects/Scripts/Items/Food/Cooking.cs diff --git a/Scripts/Items/Food/Food.cs b/Projects/Scripts/Items/Food/Food.cs similarity index 100% rename from Scripts/Items/Food/Food.cs rename to Projects/Scripts/Items/Food/Food.cs diff --git a/Scripts/Items/Food/Fruits.cs b/Projects/Scripts/Items/Food/Fruits.cs similarity index 100% rename from Scripts/Items/Food/Fruits.cs rename to Projects/Scripts/Items/Food/Fruits.cs diff --git a/Scripts/Items/Food/Vegetables.cs b/Projects/Scripts/Items/Food/Vegetables.cs similarity index 100% rename from Scripts/Items/Food/Vegetables.cs rename to Projects/Scripts/Items/Food/Vegetables.cs diff --git a/Scripts/Items/Games/Backgammon.cs b/Projects/Scripts/Items/Games/Backgammon.cs similarity index 100% rename from Scripts/Items/Games/Backgammon.cs rename to Projects/Scripts/Items/Games/Backgammon.cs diff --git a/Scripts/Items/Games/BaseBoard.cs b/Projects/Scripts/Items/Games/BaseBoard.cs similarity index 100% rename from Scripts/Items/Games/BaseBoard.cs rename to Projects/Scripts/Items/Games/BaseBoard.cs diff --git a/Scripts/Items/Games/BasePiece.cs b/Projects/Scripts/Items/Games/BasePiece.cs similarity index 100% rename from Scripts/Items/Games/BasePiece.cs rename to Projects/Scripts/Items/Games/BasePiece.cs diff --git a/Scripts/Items/Games/CheckerBoard.cs b/Projects/Scripts/Items/Games/CheckerBoard.cs similarity index 100% rename from Scripts/Items/Games/CheckerBoard.cs rename to Projects/Scripts/Items/Games/CheckerBoard.cs diff --git a/Scripts/Items/Games/CheckersPieces.cs b/Projects/Scripts/Items/Games/CheckersPieces.cs similarity index 100% rename from Scripts/Items/Games/CheckersPieces.cs rename to Projects/Scripts/Items/Games/CheckersPieces.cs diff --git a/Scripts/Items/Games/ChessPieces.cs b/Projects/Scripts/Items/Games/ChessPieces.cs similarity index 100% rename from Scripts/Items/Games/ChessPieces.cs rename to Projects/Scripts/Items/Games/ChessPieces.cs diff --git a/Scripts/Items/Games/Chessboard.cs b/Projects/Scripts/Items/Games/Chessboard.cs similarity index 100% rename from Scripts/Items/Games/Chessboard.cs rename to Projects/Scripts/Items/Games/Chessboard.cs diff --git a/Scripts/Items/Games/Dices.cs b/Projects/Scripts/Items/Games/Dices.cs similarity index 100% rename from Scripts/Items/Games/Dices.cs rename to Projects/Scripts/Items/Games/Dices.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongDealerIndicator.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongDices.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongDices.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongDices.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongDices.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongEnums.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongEnums.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongEnums.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongEnums.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongGame.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongGame.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongGame.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongGame.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongPacketHandlers.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongPacketHandlers.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongPacketHandlers.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongPacketHandlers.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongPieceDim.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongPieceDim.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongPieceDim.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongPieceDim.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongPlayers.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongPlayers.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongPlayers.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongPlayers.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongTile.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongTile.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongTile.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongTile.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongTileTypeGenerator.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongTileTypeGenerator.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongTileTypeGenerator.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongTileTypeGenerator.cs diff --git a/Scripts/Items/Games/Mahjong/MahjongWallBreakIndicator.cs b/Projects/Scripts/Items/Games/Mahjong/MahjongWallBreakIndicator.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/MahjongWallBreakIndicator.cs rename to Projects/Scripts/Items/Games/Mahjong/MahjongWallBreakIndicator.cs diff --git a/Scripts/Items/Games/Mahjong/Packets.cs b/Projects/Scripts/Items/Games/Mahjong/Packets.cs similarity index 100% rename from Scripts/Items/Games/Mahjong/Packets.cs rename to Projects/Scripts/Items/Games/Mahjong/Packets.cs diff --git a/Scripts/Items/Gems/Amber.cs b/Projects/Scripts/Items/Gems/Amber.cs similarity index 100% rename from Scripts/Items/Gems/Amber.cs rename to Projects/Scripts/Items/Gems/Amber.cs diff --git a/Scripts/Items/Gems/Amethyst.cs b/Projects/Scripts/Items/Gems/Amethyst.cs similarity index 100% rename from Scripts/Items/Gems/Amethyst.cs rename to Projects/Scripts/Items/Gems/Amethyst.cs diff --git a/Scripts/Items/Gems/Citrine.cs b/Projects/Scripts/Items/Gems/Citrine.cs similarity index 100% rename from Scripts/Items/Gems/Citrine.cs rename to Projects/Scripts/Items/Gems/Citrine.cs diff --git a/Scripts/Items/Gems/Diamond.cs b/Projects/Scripts/Items/Gems/Diamond.cs similarity index 100% rename from Scripts/Items/Gems/Diamond.cs rename to Projects/Scripts/Items/Gems/Diamond.cs diff --git a/Scripts/Items/Gems/Emerald.cs b/Projects/Scripts/Items/Gems/Emerald.cs similarity index 100% rename from Scripts/Items/Gems/Emerald.cs rename to Projects/Scripts/Items/Gems/Emerald.cs diff --git a/Scripts/Items/Gems/Ruby.cs b/Projects/Scripts/Items/Gems/Ruby.cs similarity index 100% rename from Scripts/Items/Gems/Ruby.cs rename to Projects/Scripts/Items/Gems/Ruby.cs diff --git a/Scripts/Items/Gems/Sapphire.cs b/Projects/Scripts/Items/Gems/Sapphire.cs similarity index 100% rename from Scripts/Items/Gems/Sapphire.cs rename to Projects/Scripts/Items/Gems/Sapphire.cs diff --git a/Scripts/Items/Gems/StarSapphire.cs b/Projects/Scripts/Items/Gems/StarSapphire.cs similarity index 100% rename from Scripts/Items/Gems/StarSapphire.cs rename to Projects/Scripts/Items/Gems/StarSapphire.cs diff --git a/Scripts/Items/Gems/Tourmaline.cs b/Projects/Scripts/Items/Gems/Tourmaline.cs similarity index 100% rename from Scripts/Items/Gems/Tourmaline.cs rename to Projects/Scripts/Items/Gems/Tourmaline.cs diff --git a/Scripts/Items/Guilds/GuildDeed.cs b/Projects/Scripts/Items/Guilds/GuildDeed.cs similarity index 100% rename from Scripts/Items/Guilds/GuildDeed.cs rename to Projects/Scripts/Items/Guilds/GuildDeed.cs diff --git a/Scripts/Items/Guilds/GuildTeleporter.cs b/Projects/Scripts/Items/Guilds/GuildTeleporter.cs similarity index 100% rename from Scripts/Items/Guilds/GuildTeleporter.cs rename to Projects/Scripts/Items/Guilds/GuildTeleporter.cs diff --git a/Scripts/Items/Guilds/Guildstone.cs b/Projects/Scripts/Items/Guilds/Guildstone.cs similarity index 100% rename from Scripts/Items/Guilds/Guildstone.cs rename to Projects/Scripts/Items/Guilds/Guildstone.cs diff --git a/Scripts/Items/Jewels/Artifacts/BraceletOfHealth.cs b/Projects/Scripts/Items/Jewels/Artifacts/BraceletOfHealth.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/BraceletOfHealth.cs rename to Projects/Scripts/Items/Jewels/Artifacts/BraceletOfHealth.cs diff --git a/Scripts/Items/Jewels/Artifacts/Craftable/EssenceOfBattle.cs b/Projects/Scripts/Items/Jewels/Artifacts/Craftable/EssenceOfBattle.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/Craftable/EssenceOfBattle.cs rename to Projects/Scripts/Items/Jewels/Artifacts/Craftable/EssenceOfBattle.cs diff --git a/Scripts/Items/Jewels/Artifacts/Craftable/PendantOfTheMagi.cs b/Projects/Scripts/Items/Jewels/Artifacts/Craftable/PendantOfTheMagi.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/Craftable/PendantOfTheMagi.cs rename to Projects/Scripts/Items/Jewels/Artifacts/Craftable/PendantOfTheMagi.cs diff --git a/Scripts/Items/Jewels/Artifacts/Craftable/ResillientBracer.cs b/Projects/Scripts/Items/Jewels/Artifacts/Craftable/ResillientBracer.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/Craftable/ResillientBracer.cs rename to Projects/Scripts/Items/Jewels/Artifacts/Craftable/ResillientBracer.cs diff --git a/Scripts/Items/Jewels/Artifacts/OrnamentOfTheMagician.cs b/Projects/Scripts/Items/Jewels/Artifacts/OrnamentOfTheMagician.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/OrnamentOfTheMagician.cs rename to Projects/Scripts/Items/Jewels/Artifacts/OrnamentOfTheMagician.cs diff --git a/Scripts/Items/Jewels/Artifacts/RingOfTheElements.cs b/Projects/Scripts/Items/Jewels/Artifacts/RingOfTheElements.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/RingOfTheElements.cs rename to Projects/Scripts/Items/Jewels/Artifacts/RingOfTheElements.cs diff --git a/Scripts/Items/Jewels/Artifacts/RingOfTheVile.cs b/Projects/Scripts/Items/Jewels/Artifacts/RingOfTheVile.cs similarity index 100% rename from Scripts/Items/Jewels/Artifacts/RingOfTheVile.cs rename to Projects/Scripts/Items/Jewels/Artifacts/RingOfTheVile.cs diff --git a/Scripts/Items/Jewels/BaseJewel.cs b/Projects/Scripts/Items/Jewels/BaseJewel.cs similarity index 100% rename from Scripts/Items/Jewels/BaseJewel.cs rename to Projects/Scripts/Items/Jewels/BaseJewel.cs diff --git a/Scripts/Items/Jewels/Beads.cs b/Projects/Scripts/Items/Jewels/Beads.cs similarity index 100% rename from Scripts/Items/Jewels/Beads.cs rename to Projects/Scripts/Items/Jewels/Beads.cs diff --git a/Scripts/Items/Jewels/Bracelet.cs b/Projects/Scripts/Items/Jewels/Bracelet.cs similarity index 100% rename from Scripts/Items/Jewels/Bracelet.cs rename to Projects/Scripts/Items/Jewels/Bracelet.cs diff --git a/Scripts/Items/Jewels/Earrings.cs b/Projects/Scripts/Items/Jewels/Earrings.cs similarity index 100% rename from Scripts/Items/Jewels/Earrings.cs rename to Projects/Scripts/Items/Jewels/Earrings.cs diff --git a/Scripts/Items/Jewels/Necklace.cs b/Projects/Scripts/Items/Jewels/Necklace.cs similarity index 100% rename from Scripts/Items/Jewels/Necklace.cs rename to Projects/Scripts/Items/Jewels/Necklace.cs diff --git a/Scripts/Items/Jewels/Ring.cs b/Projects/Scripts/Items/Jewels/Ring.cs similarity index 100% rename from Scripts/Items/Jewels/Ring.cs rename to Projects/Scripts/Items/Jewels/Ring.cs diff --git a/Scripts/Items/Lights/BaseEquippableLight.cs b/Projects/Scripts/Items/Lights/BaseEquippableLight.cs similarity index 100% rename from Scripts/Items/Lights/BaseEquippableLight.cs rename to Projects/Scripts/Items/Lights/BaseEquippableLight.cs diff --git a/Scripts/Items/Lights/BaseLight.cs b/Projects/Scripts/Items/Lights/BaseLight.cs similarity index 100% rename from Scripts/Items/Lights/BaseLight.cs rename to Projects/Scripts/Items/Lights/BaseLight.cs diff --git a/Scripts/Items/Lights/Brazier.cs b/Projects/Scripts/Items/Lights/Brazier.cs similarity index 100% rename from Scripts/Items/Lights/Brazier.cs rename to Projects/Scripts/Items/Lights/Brazier.cs diff --git a/Scripts/Items/Lights/BrazierTall.cs b/Projects/Scripts/Items/Lights/BrazierTall.cs similarity index 100% rename from Scripts/Items/Lights/BrazierTall.cs rename to Projects/Scripts/Items/Lights/BrazierTall.cs diff --git a/Scripts/Items/Lights/Candelabra.cs b/Projects/Scripts/Items/Lights/Candelabra.cs similarity index 100% rename from Scripts/Items/Lights/Candelabra.cs rename to Projects/Scripts/Items/Lights/Candelabra.cs diff --git a/Scripts/Items/Lights/CandelabraStand.cs b/Projects/Scripts/Items/Lights/CandelabraStand.cs similarity index 100% rename from Scripts/Items/Lights/CandelabraStand.cs rename to Projects/Scripts/Items/Lights/CandelabraStand.cs diff --git a/Scripts/Items/Lights/Candle.cs b/Projects/Scripts/Items/Lights/Candle.cs similarity index 100% rename from Scripts/Items/Lights/Candle.cs rename to Projects/Scripts/Items/Lights/Candle.cs diff --git a/Scripts/Items/Lights/CandleLarge.cs b/Projects/Scripts/Items/Lights/CandleLarge.cs similarity index 100% rename from Scripts/Items/Lights/CandleLarge.cs rename to Projects/Scripts/Items/Lights/CandleLarge.cs diff --git a/Scripts/Items/Lights/CandleLong.cs b/Projects/Scripts/Items/Lights/CandleLong.cs similarity index 100% rename from Scripts/Items/Lights/CandleLong.cs rename to Projects/Scripts/Items/Lights/CandleLong.cs diff --git a/Scripts/Items/Lights/CandleShort.cs b/Projects/Scripts/Items/Lights/CandleShort.cs similarity index 100% rename from Scripts/Items/Lights/CandleShort.cs rename to Projects/Scripts/Items/Lights/CandleShort.cs diff --git a/Scripts/Items/Lights/CandleSkull.cs b/Projects/Scripts/Items/Lights/CandleSkull.cs similarity index 100% rename from Scripts/Items/Lights/CandleSkull.cs rename to Projects/Scripts/Items/Lights/CandleSkull.cs diff --git a/Scripts/Items/Lights/DarkSource.cs b/Projects/Scripts/Items/Lights/DarkSource.cs similarity index 100% rename from Scripts/Items/Lights/DarkSource.cs rename to Projects/Scripts/Items/Lights/DarkSource.cs diff --git a/Scripts/Items/Lights/HangingLantern.cs b/Projects/Scripts/Items/Lights/HangingLantern.cs similarity index 100% rename from Scripts/Items/Lights/HangingLantern.cs rename to Projects/Scripts/Items/Lights/HangingLantern.cs diff --git a/Scripts/Items/Lights/HeatingStand.cs b/Projects/Scripts/Items/Lights/HeatingStand.cs similarity index 100% rename from Scripts/Items/Lights/HeatingStand.cs rename to Projects/Scripts/Items/Lights/HeatingStand.cs diff --git a/Scripts/Items/Lights/LampPost1.cs b/Projects/Scripts/Items/Lights/LampPost1.cs similarity index 100% rename from Scripts/Items/Lights/LampPost1.cs rename to Projects/Scripts/Items/Lights/LampPost1.cs diff --git a/Scripts/Items/Lights/LampPost2.cs b/Projects/Scripts/Items/Lights/LampPost2.cs similarity index 100% rename from Scripts/Items/Lights/LampPost2.cs rename to Projects/Scripts/Items/Lights/LampPost2.cs diff --git a/Scripts/Items/Lights/LampPost3.cs b/Projects/Scripts/Items/Lights/LampPost3.cs similarity index 100% rename from Scripts/Items/Lights/LampPost3.cs rename to Projects/Scripts/Items/Lights/LampPost3.cs diff --git a/Scripts/Items/Lights/Lantern.cs b/Projects/Scripts/Items/Lights/Lantern.cs similarity index 100% rename from Scripts/Items/Lights/Lantern.cs rename to Projects/Scripts/Items/Lights/Lantern.cs diff --git a/Scripts/Items/Lights/LightSource.cs b/Projects/Scripts/Items/Lights/LightSource.cs similarity index 100% rename from Scripts/Items/Lights/LightSource.cs rename to Projects/Scripts/Items/Lights/LightSource.cs diff --git a/Scripts/Items/Lights/PaperLantern.cs b/Projects/Scripts/Items/Lights/PaperLantern.cs similarity index 100% rename from Scripts/Items/Lights/PaperLantern.cs rename to Projects/Scripts/Items/Lights/PaperLantern.cs diff --git a/Scripts/Items/Lights/RedHangingLantern.cs b/Projects/Scripts/Items/Lights/RedHangingLantern.cs similarity index 100% rename from Scripts/Items/Lights/RedHangingLantern.cs rename to Projects/Scripts/Items/Lights/RedHangingLantern.cs diff --git a/Scripts/Items/Lights/RoundPaperLantern.cs b/Projects/Scripts/Items/Lights/RoundPaperLantern.cs similarity index 100% rename from Scripts/Items/Lights/RoundPaperLantern.cs rename to Projects/Scripts/Items/Lights/RoundPaperLantern.cs diff --git a/Scripts/Items/Lights/ShojiLantern.cs b/Projects/Scripts/Items/Lights/ShojiLantern.cs similarity index 100% rename from Scripts/Items/Lights/ShojiLantern.cs rename to Projects/Scripts/Items/Lights/ShojiLantern.cs diff --git a/Scripts/Items/Lights/Torch.cs b/Projects/Scripts/Items/Lights/Torch.cs similarity index 100% rename from Scripts/Items/Lights/Torch.cs rename to Projects/Scripts/Items/Lights/Torch.cs diff --git a/Scripts/Items/Lights/WallSconce.cs b/Projects/Scripts/Items/Lights/WallSconce.cs similarity index 100% rename from Scripts/Items/Lights/WallSconce.cs rename to Projects/Scripts/Items/Lights/WallSconce.cs diff --git a/Scripts/Items/Lights/WallTorch.cs b/Projects/Scripts/Items/Lights/WallTorch.cs similarity index 100% rename from Scripts/Items/Lights/WallTorch.cs rename to Projects/Scripts/Items/Lights/WallTorch.cs diff --git a/Scripts/Items/Lights/WhiteHangingLantern.cs b/Projects/Scripts/Items/Lights/WhiteHangingLantern.cs similarity index 100% rename from Scripts/Items/Lights/WhiteHangingLantern.cs rename to Projects/Scripts/Items/Lights/WhiteHangingLantern.cs diff --git a/Scripts/Items/Maps/BlankMap.cs b/Projects/Scripts/Items/Maps/BlankMap.cs similarity index 100% rename from Scripts/Items/Maps/BlankMap.cs rename to Projects/Scripts/Items/Maps/BlankMap.cs diff --git a/Scripts/Items/Maps/CityMap.cs b/Projects/Scripts/Items/Maps/CityMap.cs similarity index 100% rename from Scripts/Items/Maps/CityMap.cs rename to Projects/Scripts/Items/Maps/CityMap.cs diff --git a/Scripts/Items/Maps/IndecipherableMap.cs b/Projects/Scripts/Items/Maps/IndecipherableMap.cs similarity index 100% rename from Scripts/Items/Maps/IndecipherableMap.cs rename to Projects/Scripts/Items/Maps/IndecipherableMap.cs diff --git a/Scripts/Items/Maps/LocalMap.cs b/Projects/Scripts/Items/Maps/LocalMap.cs similarity index 100% rename from Scripts/Items/Maps/LocalMap.cs rename to Projects/Scripts/Items/Maps/LocalMap.cs diff --git a/Scripts/Items/Maps/MapItem.cs b/Projects/Scripts/Items/Maps/MapItem.cs similarity index 100% rename from Scripts/Items/Maps/MapItem.cs rename to Projects/Scripts/Items/Maps/MapItem.cs diff --git a/Scripts/Items/Maps/PresetMap.cs b/Projects/Scripts/Items/Maps/PresetMap.cs similarity index 100% rename from Scripts/Items/Maps/PresetMap.cs rename to Projects/Scripts/Items/Maps/PresetMap.cs diff --git a/Scripts/Items/Maps/SeaChart.cs b/Projects/Scripts/Items/Maps/SeaChart.cs similarity index 100% rename from Scripts/Items/Maps/SeaChart.cs rename to Projects/Scripts/Items/Maps/SeaChart.cs diff --git a/Scripts/Items/Maps/TreasureMap.cs b/Projects/Scripts/Items/Maps/TreasureMap.cs similarity index 100% rename from Scripts/Items/Maps/TreasureMap.cs rename to Projects/Scripts/Items/Maps/TreasureMap.cs diff --git a/Scripts/Items/Maps/WorldMap.cs b/Projects/Scripts/Items/Maps/WorldMap.cs similarity index 100% rename from Scripts/Items/Maps/WorldMap.cs rename to Projects/Scripts/Items/Maps/WorldMap.cs diff --git a/Scripts/Items/Minor Artifacts/AdmiralsHeartyRum.cs b/Projects/Scripts/Items/Minor Artifacts/AdmiralsHeartyRum.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/AdmiralsHeartyRum.cs rename to Projects/Scripts/Items/Minor Artifacts/AdmiralsHeartyRum.cs diff --git a/Scripts/Items/Minor Artifacts/AlchemistsBauble.cs b/Projects/Scripts/Items/Minor Artifacts/AlchemistsBauble.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/AlchemistsBauble.cs rename to Projects/Scripts/Items/Minor Artifacts/AlchemistsBauble.cs diff --git a/Scripts/Items/Minor Artifacts/ArcticDeathDealer.cs b/Projects/Scripts/Items/Minor Artifacts/ArcticDeathDealer.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ArcticDeathDealer.cs rename to Projects/Scripts/Items/Minor Artifacts/ArcticDeathDealer.cs diff --git a/Scripts/Items/Minor Artifacts/BlazeOfDeath.cs b/Projects/Scripts/Items/Minor Artifacts/BlazeOfDeath.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/BlazeOfDeath.cs rename to Projects/Scripts/Items/Minor Artifacts/BlazeOfDeath.cs diff --git a/Scripts/Items/Minor Artifacts/BowOfTheJukaKing.cs b/Projects/Scripts/Items/Minor Artifacts/BowOfTheJukaKing.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/BowOfTheJukaKing.cs rename to Projects/Scripts/Items/Minor Artifacts/BowOfTheJukaKing.cs diff --git a/Scripts/Items/Minor Artifacts/BurglarsBandana.cs b/Projects/Scripts/Items/Minor Artifacts/BurglarsBandana.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/BurglarsBandana.cs rename to Projects/Scripts/Items/Minor Artifacts/BurglarsBandana.cs diff --git a/Scripts/Items/Minor Artifacts/CandelabraOfSouls.cs b/Projects/Scripts/Items/Minor Artifacts/CandelabraOfSouls.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/CandelabraOfSouls.cs rename to Projects/Scripts/Items/Minor Artifacts/CandelabraOfSouls.cs diff --git a/Scripts/Items/Minor Artifacts/CaptainQuacklebushsCutlass.cs b/Projects/Scripts/Items/Minor Artifacts/CaptainQuacklebushsCutlass.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/CaptainQuacklebushsCutlass.cs rename to Projects/Scripts/Items/Minor Artifacts/CaptainQuacklebushsCutlass.cs diff --git a/Scripts/Items/Minor Artifacts/CavortingClub.cs b/Projects/Scripts/Items/Minor Artifacts/CavortingClub.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/CavortingClub.cs rename to Projects/Scripts/Items/Minor Artifacts/CavortingClub.cs diff --git a/Scripts/Items/Minor Artifacts/ColdBlood.cs b/Projects/Scripts/Items/Minor Artifacts/ColdBlood.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ColdBlood.cs rename to Projects/Scripts/Items/Minor Artifacts/ColdBlood.cs diff --git a/Scripts/Items/Minor Artifacts/DreadPirateHat.cs b/Projects/Scripts/Items/Minor Artifacts/DreadPirateHat.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/DreadPirateHat.cs rename to Projects/Scripts/Items/Minor Artifacts/DreadPirateHat.cs diff --git a/Scripts/Items/Minor Artifacts/EnchantedTitanLegBone.cs b/Projects/Scripts/Items/Minor Artifacts/EnchantedTitanLegBone.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/EnchantedTitanLegBone.cs rename to Projects/Scripts/Items/Minor Artifacts/EnchantedTitanLegBone.cs diff --git a/Scripts/Items/Minor Artifacts/GhostShipAnchor.cs b/Projects/Scripts/Items/Minor Artifacts/GhostShipAnchor.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/GhostShipAnchor.cs rename to Projects/Scripts/Items/Minor Artifacts/GhostShipAnchor.cs diff --git a/Scripts/Items/Minor Artifacts/GlovesOfThePugilist.cs b/Projects/Scripts/Items/Minor Artifacts/GlovesOfThePugilist.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/GlovesOfThePugilist.cs rename to Projects/Scripts/Items/Minor Artifacts/GlovesOfThePugilist.cs diff --git a/Scripts/Items/Minor Artifacts/GoldBricks.cs b/Projects/Scripts/Items/Minor Artifacts/GoldBricks.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/GoldBricks.cs rename to Projects/Scripts/Items/Minor Artifacts/GoldBricks.cs diff --git a/Scripts/Items/Minor Artifacts/GwennosHarp.cs b/Projects/Scripts/Items/Minor Artifacts/GwennosHarp.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/GwennosHarp.cs rename to Projects/Scripts/Items/Minor Artifacts/GwennosHarp.cs diff --git a/Scripts/Items/Minor Artifacts/HeartOfTheLion.cs b/Projects/Scripts/Items/Minor Artifacts/HeartOfTheLion.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/HeartOfTheLion.cs rename to Projects/Scripts/Items/Minor Artifacts/HeartOfTheLion.cs diff --git a/Scripts/Items/Minor Artifacts/IolosLute.cs b/Projects/Scripts/Items/Minor Artifacts/IolosLute.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/IolosLute.cs rename to Projects/Scripts/Items/Minor Artifacts/IolosLute.cs diff --git a/Scripts/Items/Minor Artifacts/LunaLance.cs b/Projects/Scripts/Items/Minor Artifacts/LunaLance.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/LunaLance.cs rename to Projects/Scripts/Items/Minor Artifacts/LunaLance.cs diff --git a/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs b/Projects/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/AegisOfGrace.cs diff --git a/Scripts/Items/Minor Artifacts/ML/BladeDance.cs b/Projects/Scripts/Items/Minor Artifacts/ML/BladeDance.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/BladeDance.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/BladeDance.cs diff --git a/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs b/Projects/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/BloodwoodSpirit.cs diff --git a/Scripts/Items/Minor Artifacts/ML/Bonesmasher.cs b/Projects/Scripts/Items/Minor Artifacts/ML/Bonesmasher.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/Bonesmasher.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/Bonesmasher.cs diff --git a/Scripts/Items/Minor Artifacts/ML/Boomstick.cs b/Projects/Scripts/Items/Minor Artifacts/ML/Boomstick.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/Boomstick.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/Boomstick.cs diff --git a/Scripts/Items/Minor Artifacts/ML/BrightsightLenses.cs b/Projects/Scripts/Items/Minor Artifacts/ML/BrightsightLenses.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/BrightsightLenses.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/BrightsightLenses.cs diff --git a/Scripts/Items/Minor Artifacts/ML/FeyLeggings.cs b/Projects/Scripts/Items/Minor Artifacts/ML/FeyLeggings.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/FeyLeggings.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/FeyLeggings.cs diff --git a/Scripts/Items/Minor Artifacts/ML/FleshRipper.cs b/Projects/Scripts/Items/Minor Artifacts/ML/FleshRipper.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/FleshRipper.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/FleshRipper.cs diff --git a/Scripts/Items/Minor Artifacts/ML/HelmOfSwiftness.cs b/Projects/Scripts/Items/Minor Artifacts/ML/HelmOfSwiftness.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/HelmOfSwiftness.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/HelmOfSwiftness.cs diff --git a/Scripts/Items/Minor Artifacts/ML/MelisandesCorrodedHatchet.cs b/Projects/Scripts/Items/Minor Artifacts/ML/MelisandesCorrodedHatchet.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/MelisandesCorrodedHatchet.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/MelisandesCorrodedHatchet.cs diff --git a/Scripts/Items/Minor Artifacts/ML/PadsOfTheCuSidhe.cs b/Projects/Scripts/Items/Minor Artifacts/ML/PadsOfTheCuSidhe.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/PadsOfTheCuSidhe.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/PadsOfTheCuSidhe.cs diff --git a/Scripts/Items/Minor Artifacts/ML/QuiverOfElements.cs b/Projects/Scripts/Items/Minor Artifacts/ML/QuiverOfElements.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/QuiverOfElements.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/QuiverOfElements.cs diff --git a/Scripts/Items/Minor Artifacts/ML/QuiverOfRage.cs b/Projects/Scripts/Items/Minor Artifacts/ML/QuiverOfRage.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/QuiverOfRage.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/QuiverOfRage.cs diff --git a/Scripts/Items/Minor Artifacts/ML/RaedsGlory.cs b/Projects/Scripts/Items/Minor Artifacts/ML/RaedsGlory.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/RaedsGlory.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/RaedsGlory.cs diff --git a/Scripts/Items/Minor Artifacts/ML/RighteousAnger.cs b/Projects/Scripts/Items/Minor Artifacts/ML/RighteousAnger.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/RighteousAnger.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/RighteousAnger.cs diff --git a/Scripts/Items/Minor Artifacts/ML/RobeOfTheEclipse.cs b/Projects/Scripts/Items/Minor Artifacts/ML/RobeOfTheEclipse.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/RobeOfTheEclipse.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/RobeOfTheEclipse.cs diff --git a/Scripts/Items/Minor Artifacts/ML/RobeOfTheEquinox.cs b/Projects/Scripts/Items/Minor Artifacts/ML/RobeOfTheEquinox.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/RobeOfTheEquinox.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/RobeOfTheEquinox.cs diff --git a/Scripts/Items/Minor Artifacts/ML/SoulSeeker.cs b/Projects/Scripts/Items/Minor Artifacts/ML/SoulSeeker.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/SoulSeeker.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/SoulSeeker.cs diff --git a/Scripts/Items/Minor Artifacts/ML/TalonBite.cs b/Projects/Scripts/Items/Minor Artifacts/ML/TalonBite.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/TalonBite.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/TalonBite.cs diff --git a/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs b/Projects/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/TotemOfVoid.cs diff --git a/Scripts/Items/Minor Artifacts/ML/WildfireBow.cs b/Projects/Scripts/Items/Minor Artifacts/ML/WildfireBow.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/WildfireBow.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/WildfireBow.cs diff --git a/Scripts/Items/Minor Artifacts/ML/Windsong.cs b/Projects/Scripts/Items/Minor Artifacts/ML/Windsong.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ML/Windsong.cs rename to Projects/Scripts/Items/Minor Artifacts/ML/Windsong.cs diff --git a/Scripts/Items/Minor Artifacts/NightsKiss.cs b/Projects/Scripts/Items/Minor Artifacts/NightsKiss.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/NightsKiss.cs rename to Projects/Scripts/Items/Minor Artifacts/NightsKiss.cs diff --git a/Scripts/Items/Minor Artifacts/NoxRangersHeavyCrossbow.cs b/Projects/Scripts/Items/Minor Artifacts/NoxRangersHeavyCrossbow.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/NoxRangersHeavyCrossbow.cs rename to Projects/Scripts/Items/Minor Artifacts/NoxRangersHeavyCrossbow.cs diff --git a/Scripts/Items/Minor Artifacts/OrcishVisage.cs b/Projects/Scripts/Items/Minor Artifacts/OrcishVisage.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/OrcishVisage.cs rename to Projects/Scripts/Items/Minor Artifacts/OrcishVisage.cs diff --git a/Scripts/Items/Minor Artifacts/PhillipsWoodenSteed.cs b/Projects/Scripts/Items/Minor Artifacts/PhillipsWoodenSteed.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/PhillipsWoodenSteed.cs rename to Projects/Scripts/Items/Minor Artifacts/PhillipsWoodenSteed.cs diff --git a/Scripts/Items/Minor Artifacts/PixieSwatter.cs b/Projects/Scripts/Items/Minor Artifacts/PixieSwatter.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/PixieSwatter.cs rename to Projects/Scripts/Items/Minor Artifacts/PixieSwatter.cs diff --git a/Scripts/Items/Minor Artifacts/PolarBearMask.cs b/Projects/Scripts/Items/Minor Artifacts/PolarBearMask.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/PolarBearMask.cs rename to Projects/Scripts/Items/Minor Artifacts/PolarBearMask.cs diff --git a/Scripts/Items/Minor Artifacts/SeahorseStatuette.cs b/Projects/Scripts/Items/Minor Artifacts/SeahorseStatuette.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/SeahorseStatuette.cs rename to Projects/Scripts/Items/Minor Artifacts/SeahorseStatuette.cs diff --git a/Scripts/Items/Minor Artifacts/ShieldOfInvulnerability.cs b/Projects/Scripts/Items/Minor Artifacts/ShieldOfInvulnerability.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ShieldOfInvulnerability.cs rename to Projects/Scripts/Items/Minor Artifacts/ShieldOfInvulnerability.cs diff --git a/Scripts/Items/Minor Artifacts/ShipModelOfTheHMSCape.cs b/Projects/Scripts/Items/Minor Artifacts/ShipModelOfTheHMSCape.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/ShipModelOfTheHMSCape.cs rename to Projects/Scripts/Items/Minor Artifacts/ShipModelOfTheHMSCape.cs diff --git a/Scripts/Items/Minor Artifacts/StaffOfPower.cs b/Projects/Scripts/Items/Minor Artifacts/StaffOfPower.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/StaffOfPower.cs rename to Projects/Scripts/Items/Minor Artifacts/StaffOfPower.cs diff --git a/Scripts/Items/Minor Artifacts/VioletCourage.cs b/Projects/Scripts/Items/Minor Artifacts/VioletCourage.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/VioletCourage.cs rename to Projects/Scripts/Items/Minor Artifacts/VioletCourage.cs diff --git a/Scripts/Items/Minor Artifacts/WrathOfTheDryad.cs b/Projects/Scripts/Items/Minor Artifacts/WrathOfTheDryad.cs similarity index 100% rename from Scripts/Items/Minor Artifacts/WrathOfTheDryad.cs rename to Projects/Scripts/Items/Minor Artifacts/WrathOfTheDryad.cs diff --git a/Scripts/Items/Misc/AcidSlime.cs b/Projects/Scripts/Items/Misc/AcidSlime.cs similarity index 100% rename from Scripts/Items/Misc/AcidSlime.cs rename to Projects/Scripts/Items/Misc/AcidSlime.cs diff --git a/Scripts/Items/Misc/ArcaneGem.cs b/Projects/Scripts/Items/Misc/ArcaneGem.cs similarity index 100% rename from Scripts/Items/Misc/ArcaneGem.cs rename to Projects/Scripts/Items/Misc/ArcaneGem.cs diff --git a/Scripts/Items/Misc/BankCheck.cs b/Projects/Scripts/Items/Misc/BankCheck.cs similarity index 100% rename from Scripts/Items/Misc/BankCheck.cs rename to Projects/Scripts/Items/Misc/BankCheck.cs diff --git a/Scripts/Items/Misc/Bedlam/GlobOfMonstreousInterredGrizzle.cs b/Projects/Scripts/Items/Misc/Bedlam/GlobOfMonstreousInterredGrizzle.cs similarity index 100% rename from Scripts/Items/Misc/Bedlam/GlobOfMonstreousInterredGrizzle.cs rename to Projects/Scripts/Items/Misc/Bedlam/GlobOfMonstreousInterredGrizzle.cs diff --git a/Scripts/Items/Misc/Bedlam/GrizzledSkullCollection.cs b/Projects/Scripts/Items/Misc/Bedlam/GrizzledSkullCollection.cs similarity index 100% rename from Scripts/Items/Misc/Bedlam/GrizzledSkullCollection.cs rename to Projects/Scripts/Items/Misc/Bedlam/GrizzledSkullCollection.cs diff --git a/Scripts/Items/Misc/Bedlam/MonsterousInterredGrizzleMaggots.cs b/Projects/Scripts/Items/Misc/Bedlam/MonsterousInterredGrizzleMaggots.cs similarity index 100% rename from Scripts/Items/Misc/Bedlam/MonsterousInterredGrizzleMaggots.cs rename to Projects/Scripts/Items/Misc/Bedlam/MonsterousInterredGrizzleMaggots.cs diff --git a/Scripts/Items/Misc/Bedlam/ResolvesBridle.cs b/Projects/Scripts/Items/Misc/Bedlam/ResolvesBridle.cs similarity index 100% rename from Scripts/Items/Misc/Bedlam/ResolvesBridle.cs rename to Projects/Scripts/Items/Misc/Bedlam/ResolvesBridle.cs diff --git a/Scripts/Items/Misc/Bedlam/TombstoneOfTheDamned.cs b/Projects/Scripts/Items/Misc/Bedlam/TombstoneOfTheDamned.cs similarity index 100% rename from Scripts/Items/Misc/Bedlam/TombstoneOfTheDamned.cs rename to Projects/Scripts/Items/Misc/Bedlam/TombstoneOfTheDamned.cs diff --git a/Scripts/Items/Misc/Beeswax.cs b/Projects/Scripts/Items/Misc/Beeswax.cs similarity index 100% rename from Scripts/Items/Misc/Beeswax.cs rename to Projects/Scripts/Items/Misc/Beeswax.cs diff --git a/Scripts/Items/Misc/Blighted Grove/AbscessTail.cs b/Projects/Scripts/Items/Misc/Blighted Grove/AbscessTail.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/AbscessTail.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/AbscessTail.cs diff --git a/Scripts/Items/Misc/Blighted Grove/CoilsFang.cs b/Projects/Scripts/Items/Misc/Blighted Grove/CoilsFang.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/CoilsFang.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/CoilsFang.cs diff --git a/Scripts/Items/Misc/Blighted Grove/EternallyCorruptTree.cs b/Projects/Scripts/Items/Misc/Blighted Grove/EternallyCorruptTree.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/EternallyCorruptTree.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/EternallyCorruptTree.cs diff --git a/Scripts/Items/Misc/Blighted Grove/HydraScale.cs b/Projects/Scripts/Items/Misc/Blighted Grove/HydraScale.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/HydraScale.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/HydraScale.cs diff --git a/Scripts/Items/Misc/Blighted Grove/MelisandesFermentedWine.cs b/Projects/Scripts/Items/Misc/Blighted Grove/MelisandesFermentedWine.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/MelisandesFermentedWine.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/MelisandesFermentedWine.cs diff --git a/Scripts/Items/Misc/Blighted Grove/MelisandesHairDye.cs b/Projects/Scripts/Items/Misc/Blighted Grove/MelisandesHairDye.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/MelisandesHairDye.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/MelisandesHairDye.cs diff --git a/Scripts/Items/Misc/Blighted Grove/SalivasFeather.cs b/Projects/Scripts/Items/Misc/Blighted Grove/SalivasFeather.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/SalivasFeather.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/SalivasFeather.cs diff --git a/Scripts/Items/Misc/Blighted Grove/SamplesOfCorruptedWater.cs b/Projects/Scripts/Items/Misc/Blighted Grove/SamplesOfCorruptedWater.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/SamplesOfCorruptedWater.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/SamplesOfCorruptedWater.cs diff --git a/Scripts/Items/Misc/Blighted Grove/TaintedSeeds.cs b/Projects/Scripts/Items/Misc/Blighted Grove/TaintedSeeds.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/TaintedSeeds.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/TaintedSeeds.cs diff --git a/Scripts/Items/Misc/Blighted Grove/ThorvaldsMedallion.cs b/Projects/Scripts/Items/Misc/Blighted Grove/ThorvaldsMedallion.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/ThorvaldsMedallion.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/ThorvaldsMedallion.cs diff --git a/Scripts/Items/Misc/Blighted Grove/ThrashersTail.cs b/Projects/Scripts/Items/Misc/Blighted Grove/ThrashersTail.cs similarity index 100% rename from Scripts/Items/Misc/Blighted Grove/ThrashersTail.cs rename to Projects/Scripts/Items/Misc/Blighted Grove/ThrashersTail.cs diff --git a/Scripts/Items/Misc/Blocker.cs b/Projects/Scripts/Items/Misc/Blocker.cs similarity index 100% rename from Scripts/Items/Misc/Blocker.cs rename to Projects/Scripts/Items/Misc/Blocker.cs diff --git a/Scripts/Items/Misc/Blood.cs b/Projects/Scripts/Items/Misc/Blood.cs similarity index 100% rename from Scripts/Items/Misc/Blood.cs rename to Projects/Scripts/Items/Misc/Blood.cs diff --git a/Scripts/Items/Misc/Bola.cs b/Projects/Scripts/Items/Misc/Bola.cs similarity index 100% rename from Scripts/Items/Misc/Bola.cs rename to Projects/Scripts/Items/Misc/Bola.cs diff --git a/Scripts/Items/Misc/BolaBall.cs b/Projects/Scripts/Items/Misc/BolaBall.cs similarity index 100% rename from Scripts/Items/Misc/BolaBall.cs rename to Projects/Scripts/Items/Misc/BolaBall.cs diff --git a/Scripts/Items/Misc/BulletinBoards.cs b/Projects/Scripts/Items/Misc/BulletinBoards.cs similarity index 100% rename from Scripts/Items/Misc/BulletinBoards.cs rename to Projects/Scripts/Items/Misc/BulletinBoards.cs diff --git a/Scripts/Items/Misc/ClockworkAssembly.cs b/Projects/Scripts/Items/Misc/ClockworkAssembly.cs similarity index 100% rename from Scripts/Items/Misc/ClockworkAssembly.cs rename to Projects/Scripts/Items/Misc/ClockworkAssembly.cs diff --git a/Scripts/Items/Misc/CommunicationCrystals.cs b/Projects/Scripts/Items/Misc/CommunicationCrystals.cs similarity index 100% rename from Scripts/Items/Misc/CommunicationCrystals.cs rename to Projects/Scripts/Items/Misc/CommunicationCrystals.cs diff --git a/Scripts/Items/Misc/Corpses/Corpse.cs b/Projects/Scripts/Items/Misc/Corpses/Corpse.cs similarity index 100% rename from Scripts/Items/Misc/Corpses/Corpse.cs rename to Projects/Scripts/Items/Misc/Corpses/Corpse.cs diff --git a/Scripts/Items/Misc/Corpses/CorpseNameAttribute.cs b/Projects/Scripts/Items/Misc/Corpses/CorpseNameAttribute.cs similarity index 100% rename from Scripts/Items/Misc/Corpses/CorpseNameAttribute.cs rename to Projects/Scripts/Items/Misc/Corpses/CorpseNameAttribute.cs diff --git a/Scripts/Items/Misc/Corpses/DecayedCorpse.cs b/Projects/Scripts/Items/Misc/Corpses/DecayedCorpse.cs similarity index 100% rename from Scripts/Items/Misc/Corpses/DecayedCorpse.cs rename to Projects/Scripts/Items/Misc/Corpses/DecayedCorpse.cs diff --git a/Scripts/Items/Misc/Corpses/Packets.cs b/Projects/Scripts/Items/Misc/Corpses/Packets.cs similarity index 100% rename from Scripts/Items/Misc/Corpses/Packets.cs rename to Projects/Scripts/Items/Misc/Corpses/Packets.cs diff --git a/Scripts/Items/Misc/DeceitBrazier.cs b/Projects/Scripts/Items/Misc/DeceitBrazier.cs similarity index 100% rename from Scripts/Items/Misc/DeceitBrazier.cs rename to Projects/Scripts/Items/Misc/DeceitBrazier.cs diff --git a/Scripts/Items/Misc/EffectController.cs b/Projects/Scripts/Items/Misc/EffectController.cs similarity index 100% rename from Scripts/Items/Misc/EffectController.cs rename to Projects/Scripts/Items/Misc/EffectController.cs diff --git a/Scripts/Items/Misc/EffectItem.cs b/Projects/Scripts/Items/Misc/EffectItem.cs similarity index 100% rename from Scripts/Items/Misc/EffectItem.cs rename to Projects/Scripts/Items/Misc/EffectItem.cs diff --git a/Scripts/Items/Misc/ExecutionersCap.cs b/Projects/Scripts/Items/Misc/ExecutionersCap.cs similarity index 100% rename from Scripts/Items/Misc/ExecutionersCap.cs rename to Projects/Scripts/Items/Misc/ExecutionersCap.cs diff --git a/Scripts/Items/Misc/Firebomb.cs b/Projects/Scripts/Items/Misc/Firebomb.cs similarity index 100% rename from Scripts/Items/Misc/Firebomb.cs rename to Projects/Scripts/Items/Misc/Firebomb.cs diff --git a/Scripts/Items/Misc/FlippableAddonAttribute.cs b/Projects/Scripts/Items/Misc/FlippableAddonAttribute.cs similarity index 100% rename from Scripts/Items/Misc/FlippableAddonAttribute.cs rename to Projects/Scripts/Items/Misc/FlippableAddonAttribute.cs diff --git a/Scripts/Items/Misc/FlippableAttribute.cs b/Projects/Scripts/Items/Misc/FlippableAttribute.cs similarity index 100% rename from Scripts/Items/Misc/FlippableAttribute.cs rename to Projects/Scripts/Items/Misc/FlippableAttribute.cs diff --git a/Scripts/Items/Misc/GlassItems.cs b/Projects/Scripts/Items/Misc/GlassItems.cs similarity index 100% rename from Scripts/Items/Misc/GlassItems.cs rename to Projects/Scripts/Items/Misc/GlassItems.cs diff --git a/Scripts/Items/Misc/Gold.cs b/Projects/Scripts/Items/Misc/Gold.cs similarity index 100% rename from Scripts/Items/Misc/Gold.cs rename to Projects/Scripts/Items/Misc/Gold.cs diff --git a/Scripts/Items/Misc/Guillotine.cs b/Projects/Scripts/Items/Misc/Guillotine.cs similarity index 100% rename from Scripts/Items/Misc/Guillotine.cs rename to Projects/Scripts/Items/Misc/Guillotine.cs diff --git a/Scripts/Items/Misc/HairDye.cs b/Projects/Scripts/Items/Misc/HairDye.cs similarity index 100% rename from Scripts/Items/Misc/HairDye.cs rename to Projects/Scripts/Items/Misc/HairDye.cs diff --git a/Scripts/Items/Misc/HoveringWisp.cs b/Projects/Scripts/Items/Misc/HoveringWisp.cs similarity index 100% rename from Scripts/Items/Misc/HoveringWisp.cs rename to Projects/Scripts/Items/Misc/HoveringWisp.cs diff --git a/Scripts/Items/Misc/IDurability.cs b/Projects/Scripts/Items/Misc/IDurability.cs similarity index 100% rename from Scripts/Items/Misc/IDurability.cs rename to Projects/Scripts/Items/Misc/IDurability.cs diff --git a/Scripts/Items/Misc/InteriorDecorator.cs b/Projects/Scripts/Items/Misc/InteriorDecorator.cs similarity index 100% rename from Scripts/Items/Misc/InteriorDecorator.cs rename to Projects/Scripts/Items/Misc/InteriorDecorator.cs diff --git a/Scripts/Items/Misc/Key.cs b/Projects/Scripts/Items/Misc/Key.cs similarity index 100% rename from Scripts/Items/Misc/Key.cs rename to Projects/Scripts/Items/Misc/Key.cs diff --git a/Scripts/Items/Misc/KeyRing.cs b/Projects/Scripts/Items/Misc/KeyRing.cs similarity index 100% rename from Scripts/Items/Misc/KeyRing.cs rename to Projects/Scripts/Items/Misc/KeyRing.cs diff --git a/Scripts/Items/Misc/LOSBlocker.cs b/Projects/Scripts/Items/Misc/LOSBlocker.cs similarity index 100% rename from Scripts/Items/Misc/LOSBlocker.cs rename to Projects/Scripts/Items/Misc/LOSBlocker.cs diff --git a/Scripts/Items/Misc/Labyrinth/MinotaurArtifact.cs b/Projects/Scripts/Items/Misc/Labyrinth/MinotaurArtifact.cs similarity index 100% rename from Scripts/Items/Misc/Labyrinth/MinotaurArtifact.cs rename to Projects/Scripts/Items/Misc/Labyrinth/MinotaurArtifact.cs diff --git a/Scripts/Items/Misc/Moonstone.cs b/Projects/Scripts/Items/Misc/Moonstone.cs similarity index 100% rename from Scripts/Items/Misc/Moonstone.cs rename to Projects/Scripts/Items/Misc/Moonstone.cs diff --git a/Scripts/Items/Misc/MoonstoneGate.cs b/Projects/Scripts/Items/Misc/MoonstoneGate.cs similarity index 100% rename from Scripts/Items/Misc/MoonstoneGate.cs rename to Projects/Scripts/Items/Misc/MoonstoneGate.cs diff --git a/Scripts/Items/Misc/MorphItem.cs b/Projects/Scripts/Items/Misc/MorphItem.cs similarity index 100% rename from Scripts/Items/Misc/MorphItem.cs rename to Projects/Scripts/Items/Misc/MorphItem.cs diff --git a/Scripts/Items/Misc/OilCloth.cs b/Projects/Scripts/Items/Misc/OilCloth.cs similarity index 100% rename from Scripts/Items/Misc/OilCloth.cs rename to Projects/Scripts/Items/Misc/OilCloth.cs diff --git a/Scripts/Items/Misc/Origami.cs b/Projects/Scripts/Items/Misc/Origami.cs similarity index 100% rename from Scripts/Items/Misc/Origami.cs rename to Projects/Scripts/Items/Misc/Origami.cs diff --git a/Scripts/Items/Misc/Painted Caves/GrobusFur.cs b/Projects/Scripts/Items/Misc/Painted Caves/GrobusFur.cs similarity index 100% rename from Scripts/Items/Misc/Painted Caves/GrobusFur.cs rename to Projects/Scripts/Items/Misc/Painted Caves/GrobusFur.cs diff --git a/Scripts/Items/Misc/Painted Caves/PrimitiveFetish.cs b/Projects/Scripts/Items/Misc/Painted Caves/PrimitiveFetish.cs similarity index 100% rename from Scripts/Items/Misc/Painted Caves/PrimitiveFetish.cs rename to Projects/Scripts/Items/Misc/Painted Caves/PrimitiveFetish.cs diff --git a/Scripts/Items/Misc/Palace of Paroxysmus/AcidProofRope.cs b/Projects/Scripts/Items/Misc/Palace of Paroxysmus/AcidProofRope.cs similarity index 100% rename from Scripts/Items/Misc/Palace of Paroxysmus/AcidProofRope.cs rename to Projects/Scripts/Items/Misc/Palace of Paroxysmus/AcidProofRope.cs diff --git a/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusCorrodedStein.cs b/Projects/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusCorrodedStein.cs similarity index 100% rename from Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusCorrodedStein.cs rename to Projects/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusCorrodedStein.cs diff --git a/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusDinner.cs b/Projects/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusDinner.cs similarity index 100% rename from Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusDinner.cs rename to Projects/Scripts/Items/Misc/Palace of Paroxysmus/ParoxysmusDinner.cs diff --git a/Scripts/Items/Misc/Palace of Paroxysmus/StringOfPartsOfParoxysmusVictims.cs b/Projects/Scripts/Items/Misc/Palace of Paroxysmus/StringOfPartsOfParoxysmusVictims.cs similarity index 100% rename from Scripts/Items/Misc/Palace of Paroxysmus/StringOfPartsOfParoxysmusVictims.cs rename to Projects/Scripts/Items/Misc/Palace of Paroxysmus/StringOfPartsOfParoxysmusVictims.cs diff --git a/Scripts/Items/Misc/Palace of Paroxysmus/SweatOfParoxysmus.cs b/Projects/Scripts/Items/Misc/Palace of Paroxysmus/SweatOfParoxysmus.cs similarity index 100% rename from Scripts/Items/Misc/Palace of Paroxysmus/SweatOfParoxysmus.cs rename to Projects/Scripts/Items/Misc/Palace of Paroxysmus/SweatOfParoxysmus.cs diff --git a/Scripts/Items/Misc/PlayerBulletinBoards.cs b/Projects/Scripts/Items/Misc/PlayerBulletinBoards.cs similarity index 100% rename from Scripts/Items/Misc/PlayerBulletinBoards.cs rename to Projects/Scripts/Items/Misc/PlayerBulletinBoards.cs diff --git a/Scripts/Items/Misc/PlayerVendorDeed.cs b/Projects/Scripts/Items/Misc/PlayerVendorDeed.cs similarity index 100% rename from Scripts/Items/Misc/PlayerVendorDeed.cs rename to Projects/Scripts/Items/Misc/PlayerVendorDeed.cs diff --git a/Scripts/Items/Misc/PoolOfAcid.cs b/Projects/Scripts/Items/Misc/PoolOfAcid.cs similarity index 100% rename from Scripts/Items/Misc/PoolOfAcid.cs rename to Projects/Scripts/Items/Misc/PoolOfAcid.cs diff --git a/Scripts/Items/Misc/PowerCrystal.cs b/Projects/Scripts/Items/Misc/PowerCrystal.cs similarity index 100% rename from Scripts/Items/Misc/PowerCrystal.cs rename to Projects/Scripts/Items/Misc/PowerCrystal.cs diff --git a/Scripts/Items/Misc/PowerGenerator.cs b/Projects/Scripts/Items/Misc/PowerGenerator.cs similarity index 100% rename from Scripts/Items/Misc/PowerGenerator.cs rename to Projects/Scripts/Items/Misc/PowerGenerator.cs diff --git a/Scripts/Items/Misc/Prism of Light/CrystallineFragments.cs b/Projects/Scripts/Items/Misc/Prism of Light/CrystallineFragments.cs similarity index 100% rename from Scripts/Items/Misc/Prism of Light/CrystallineFragments.cs rename to Projects/Scripts/Items/Misc/Prism of Light/CrystallineFragments.cs diff --git a/Scripts/Items/Misc/Prism of Light/IcyHeart.cs b/Projects/Scripts/Items/Misc/Prism of Light/IcyHeart.cs similarity index 100% rename from Scripts/Items/Misc/Prism of Light/IcyHeart.cs rename to Projects/Scripts/Items/Misc/Prism of Light/IcyHeart.cs diff --git a/Scripts/Items/Misc/Prism of Light/LuckyDagger.cs b/Projects/Scripts/Items/Misc/Prism of Light/LuckyDagger.cs similarity index 100% rename from Scripts/Items/Misc/Prism of Light/LuckyDagger.cs rename to Projects/Scripts/Items/Misc/Prism of Light/LuckyDagger.cs diff --git a/Scripts/Items/Misc/Prism of Light/ProtectorsEssence.cs b/Projects/Scripts/Items/Misc/Prism of Light/ProtectorsEssence.cs similarity index 100% rename from Scripts/Items/Misc/Prism of Light/ProtectorsEssence.cs rename to Projects/Scripts/Items/Misc/Prism of Light/ProtectorsEssence.cs diff --git a/Scripts/Items/Misc/Prism of Light/ShimmeringCrystal.cs b/Projects/Scripts/Items/Misc/Prism of Light/ShimmeringCrystal.cs similarity index 100% rename from Scripts/Items/Misc/Prism of Light/ShimmeringCrystal.cs rename to Projects/Scripts/Items/Misc/Prism of Light/ShimmeringCrystal.cs diff --git a/Scripts/Items/Misc/PromotionalToken.cs b/Projects/Scripts/Items/Misc/PromotionalToken.cs similarity index 100% rename from Scripts/Items/Misc/PromotionalToken.cs rename to Projects/Scripts/Items/Misc/PromotionalToken.cs diff --git a/Scripts/Items/Misc/PublicMoongate.cs b/Projects/Scripts/Items/Misc/PublicMoongate.cs similarity index 100% rename from Scripts/Items/Misc/PublicMoongate.cs rename to Projects/Scripts/Items/Misc/PublicMoongate.cs diff --git a/Scripts/Items/Misc/Rares.cs b/Projects/Scripts/Items/Misc/Rares.cs similarity index 100% rename from Scripts/Items/Misc/Rares.cs rename to Projects/Scripts/Items/Misc/Rares.cs diff --git a/Scripts/Items/Misc/Scales.cs b/Projects/Scripts/Items/Misc/Scales.cs similarity index 100% rename from Scripts/Items/Misc/Scales.cs rename to Projects/Scripts/Items/Misc/Scales.cs diff --git a/Scripts/Items/Misc/SerpentPillar.cs b/Projects/Scripts/Items/Misc/SerpentPillar.cs similarity index 100% rename from Scripts/Items/Misc/SerpentPillar.cs rename to Projects/Scripts/Items/Misc/SerpentPillar.cs diff --git a/Scripts/Items/Misc/SpecialBeardDye.cs b/Projects/Scripts/Items/Misc/SpecialBeardDye.cs similarity index 100% rename from Scripts/Items/Misc/SpecialBeardDye.cs rename to Projects/Scripts/Items/Misc/SpecialBeardDye.cs diff --git a/Scripts/Items/Misc/SpecialHairDye.cs b/Projects/Scripts/Items/Misc/SpecialHairDye.cs similarity index 100% rename from Scripts/Items/Misc/SpecialHairDye.cs rename to Projects/Scripts/Items/Misc/SpecialHairDye.cs diff --git a/Scripts/Items/Misc/Static.cs b/Projects/Scripts/Items/Misc/Static.cs similarity index 100% rename from Scripts/Items/Misc/Static.cs rename to Projects/Scripts/Items/Misc/Static.cs diff --git a/Scripts/Items/Misc/SwarmOfFlies.cs b/Projects/Scripts/Items/Misc/SwarmOfFlies.cs similarity index 100% rename from Scripts/Items/Misc/SwarmOfFlies.cs rename to Projects/Scripts/Items/Misc/SwarmOfFlies.cs diff --git a/Scripts/Items/Misc/Teleporter.cs b/Projects/Scripts/Items/Misc/Teleporter.cs similarity index 100% rename from Scripts/Items/Misc/Teleporter.cs rename to Projects/Scripts/Items/Misc/Teleporter.cs diff --git a/Scripts/Items/Misc/The Citadel/DragonFlameSectBadge.cs b/Projects/Scripts/Items/Misc/The Citadel/DragonFlameSectBadge.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/DragonFlameSectBadge.cs rename to Projects/Scripts/Items/Misc/The Citadel/DragonFlameSectBadge.cs diff --git a/Scripts/Items/Misc/The Citadel/OrdersFromMinax.cs b/Projects/Scripts/Items/Misc/The Citadel/OrdersFromMinax.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/OrdersFromMinax.cs rename to Projects/Scripts/Items/Misc/The Citadel/OrdersFromMinax.cs diff --git a/Scripts/Items/Misc/The Citadel/SerpentFangSectBadge.cs b/Projects/Scripts/Items/Misc/The Citadel/SerpentFangSectBadge.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/SerpentFangSectBadge.cs rename to Projects/Scripts/Items/Misc/The Citadel/SerpentFangSectBadge.cs diff --git a/Scripts/Items/Misc/The Citadel/TigerClawSectBadge.cs b/Projects/Scripts/Items/Misc/The Citadel/TigerClawSectBadge.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/TigerClawSectBadge.cs rename to Projects/Scripts/Items/Misc/The Citadel/TigerClawSectBadge.cs diff --git a/Scripts/Items/Misc/The Citadel/TravestysCollectionOfShells.cs b/Projects/Scripts/Items/Misc/The Citadel/TravestysCollectionOfShells.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/TravestysCollectionOfShells.cs rename to Projects/Scripts/Items/Misc/The Citadel/TravestysCollectionOfShells.cs diff --git a/Scripts/Items/Misc/The Citadel/TravestysFineTeakwoodTray.cs b/Projects/Scripts/Items/Misc/The Citadel/TravestysFineTeakwoodTray.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/TravestysFineTeakwoodTray.cs rename to Projects/Scripts/Items/Misc/The Citadel/TravestysFineTeakwoodTray.cs diff --git a/Scripts/Items/Misc/The Citadel/TravestysSushiPreparations.cs b/Projects/Scripts/Items/Misc/The Citadel/TravestysSushiPreparations.cs similarity index 100% rename from Scripts/Items/Misc/The Citadel/TravestysSushiPreparations.cs rename to Projects/Scripts/Items/Misc/The Citadel/TravestysSushiPreparations.cs diff --git a/Scripts/Items/Misc/TrashBarrel.cs b/Projects/Scripts/Items/Misc/TrashBarrel.cs similarity index 100% rename from Scripts/Items/Misc/TrashBarrel.cs rename to Projects/Scripts/Items/Misc/TrashBarrel.cs diff --git a/Scripts/Items/Misc/TrashChest.cs b/Projects/Scripts/Items/Misc/TrashChest.cs similarity index 100% rename from Scripts/Items/Misc/TrashChest.cs rename to Projects/Scripts/Items/Misc/TrashChest.cs diff --git a/Scripts/Items/Misc/TribalBerry.cs b/Projects/Scripts/Items/Misc/TribalBerry.cs similarity index 100% rename from Scripts/Items/Misc/TribalBerry.cs rename to Projects/Scripts/Items/Misc/TribalBerry.cs diff --git a/Scripts/Items/Misc/TribalPaint.cs b/Projects/Scripts/Items/Misc/TribalPaint.cs similarity index 100% rename from Scripts/Items/Misc/TribalPaint.cs rename to Projects/Scripts/Items/Misc/TribalPaint.cs diff --git a/Scripts/Items/Misc/Twisted Weald/HornOfTheDreadhorn.cs b/Projects/Scripts/Items/Misc/Twisted Weald/HornOfTheDreadhorn.cs similarity index 100% rename from Scripts/Items/Misc/Twisted Weald/HornOfTheDreadhorn.cs rename to Projects/Scripts/Items/Misc/Twisted Weald/HornOfTheDreadhorn.cs diff --git a/Scripts/Items/Misc/Twisted Weald/MangledHeadOfDreadhorn.cs b/Projects/Scripts/Items/Misc/Twisted Weald/MangledHeadOfDreadhorn.cs similarity index 100% rename from Scripts/Items/Misc/Twisted Weald/MangledHeadOfDreadhorn.cs rename to Projects/Scripts/Items/Misc/Twisted Weald/MangledHeadOfDreadhorn.cs diff --git a/Scripts/Items/Misc/Twisted Weald/TaintedMushroom.cs b/Projects/Scripts/Items/Misc/Twisted Weald/TaintedMushroom.cs similarity index 100% rename from Scripts/Items/Misc/Twisted Weald/TaintedMushroom.cs rename to Projects/Scripts/Items/Misc/Twisted Weald/TaintedMushroom.cs diff --git a/Scripts/Items/Misc/UnholyBone.cs b/Projects/Scripts/Items/Misc/UnholyBone.cs similarity index 100% rename from Scripts/Items/Misc/UnholyBone.cs rename to Projects/Scripts/Items/Misc/UnholyBone.cs diff --git a/Scripts/Items/Misc/WarningItem.cs b/Projects/Scripts/Items/Misc/WarningItem.cs similarity index 100% rename from Scripts/Items/Misc/WarningItem.cs rename to Projects/Scripts/Items/Misc/WarningItem.cs diff --git a/Scripts/Items/Misc/Waypoint.cs b/Projects/Scripts/Items/Misc/Waypoint.cs similarity index 100% rename from Scripts/Items/Misc/Waypoint.cs rename to Projects/Scripts/Items/Misc/Waypoint.cs diff --git a/Scripts/Items/Misc/WindChimes.cs b/Projects/Scripts/Items/Misc/WindChimes.cs similarity index 100% rename from Scripts/Items/Misc/WindChimes.cs rename to Projects/Scripts/Items/Misc/WindChimes.cs diff --git a/Scripts/Items/New Haven Quest Rewards/AmeliasToolbox.cs b/Projects/Scripts/Items/New Haven Quest Rewards/AmeliasToolbox.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/AmeliasToolbox.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/AmeliasToolbox.cs diff --git a/Scripts/Items/New Haven Quest Rewards/ArmsOfArmstrong.cs b/Projects/Scripts/Items/New Haven Quest Rewards/ArmsOfArmstrong.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/ArmsOfArmstrong.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/ArmsOfArmstrong.cs diff --git a/Scripts/Items/New Haven Quest Rewards/BagOfNecromancerReagents.cs b/Projects/Scripts/Items/New Haven Quest Rewards/BagOfNecromancerReagents.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/BagOfNecromancerReagents.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/BagOfNecromancerReagents.cs diff --git a/Scripts/Items/New Haven Quest Rewards/BagOfSmokeBombs.cs b/Projects/Scripts/Items/New Haven Quest Rewards/BagOfSmokeBombs.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/BagOfSmokeBombs.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/BagOfSmokeBombs.cs diff --git a/Scripts/Items/New Haven Quest Rewards/BraceletOfResilience.cs b/Projects/Scripts/Items/New Haven Quest Rewards/BraceletOfResilience.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/BraceletOfResilience.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/BraceletOfResilience.cs diff --git a/Scripts/Items/New Haven Quest Rewards/BulwarkLeggings.cs b/Projects/Scripts/Items/New Haven Quest Rewards/BulwarkLeggings.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/BulwarkLeggings.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/BulwarkLeggings.cs diff --git a/Scripts/Items/New Haven Quest Rewards/ChurchillsWarMace.cs b/Projects/Scripts/Items/New Haven Quest Rewards/ChurchillsWarMace.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/ChurchillsWarMace.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/ChurchillsWarMace.cs diff --git a/Scripts/Items/New Haven Quest Rewards/ClaspOfConcentration.cs b/Projects/Scripts/Items/New Haven Quest Rewards/ClaspOfConcentration.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/ClaspOfConcentration.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/ClaspOfConcentration.cs diff --git a/Scripts/Items/New Haven Quest Rewards/EmberStaff.cs b/Projects/Scripts/Items/New Haven Quest Rewards/EmberStaff.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/EmberStaff.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/EmberStaff.cs diff --git a/Scripts/Items/New Haven Quest Rewards/EscutcheonDeAriadne.cs b/Projects/Scripts/Items/New Haven Quest Rewards/EscutcheonDeAriadne.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/EscutcheonDeAriadne.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/EscutcheonDeAriadne.cs diff --git a/Scripts/Items/New Haven Quest Rewards/GlovesOfSafeguarding.cs b/Projects/Scripts/Items/New Haven Quest Rewards/GlovesOfSafeguarding.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/GlovesOfSafeguarding.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/GlovesOfSafeguarding.cs diff --git a/Scripts/Items/New Haven Quest Rewards/HallowedSpellbook.cs b/Projects/Scripts/Items/New Haven Quest Rewards/HallowedSpellbook.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/HallowedSpellbook.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/HallowedSpellbook.cs diff --git a/Scripts/Items/New Haven Quest Rewards/HammerOfHephaestus.cs b/Projects/Scripts/Items/New Haven Quest Rewards/HammerOfHephaestus.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/HammerOfHephaestus.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/HammerOfHephaestus.cs diff --git a/Scripts/Items/New Haven Quest Rewards/HealersTouch.cs b/Projects/Scripts/Items/New Haven Quest Rewards/HealersTouch.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/HealersTouch.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/HealersTouch.cs diff --git a/Scripts/Items/New Haven Quest Rewards/Heartseeker.cs b/Projects/Scripts/Items/New Haven Quest Rewards/Heartseeker.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/Heartseeker.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/Heartseeker.cs diff --git a/Scripts/Items/New Haven Quest Rewards/JacobsPickaxe.cs b/Projects/Scripts/Items/New Haven Quest Rewards/JacobsPickaxe.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/JacobsPickaxe.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/JacobsPickaxe.cs diff --git a/Scripts/Items/New Haven Quest Rewards/JocklesQuicksword.cs b/Projects/Scripts/Items/New Haven Quest Rewards/JocklesQuicksword.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/JocklesQuicksword.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/JocklesQuicksword.cs diff --git a/Scripts/Items/New Haven Quest Rewards/PhilosophersHat.cs b/Projects/Scripts/Items/New Haven Quest Rewards/PhilosophersHat.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/PhilosophersHat.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/PhilosophersHat.cs diff --git a/Scripts/Items/New Haven Quest Rewards/RecarosRiposte.cs b/Projects/Scripts/Items/New Haven Quest Rewards/RecarosRiposte.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/RecarosRiposte.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/RecarosRiposte.cs diff --git a/Scripts/Items/New Haven Quest Rewards/RingOfTheSavant.cs b/Projects/Scripts/Items/New Haven Quest Rewards/RingOfTheSavant.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/RingOfTheSavant.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/RingOfTheSavant.cs diff --git a/Scripts/Items/New Haven Quest Rewards/SilverSerpentBlade.cs b/Projects/Scripts/Items/New Haven Quest Rewards/SilverSerpentBlade.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/SilverSerpentBlade.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/SilverSerpentBlade.cs diff --git a/Scripts/Items/New Haven Quest Rewards/TheDragonsTail.cs b/Projects/Scripts/Items/New Haven Quest Rewards/TheDragonsTail.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/TheDragonsTail.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/TheDragonsTail.cs diff --git a/Scripts/Items/New Haven Quest Rewards/TunicOfGuarding.cs b/Projects/Scripts/Items/New Haven Quest Rewards/TunicOfGuarding.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/TunicOfGuarding.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/TunicOfGuarding.cs diff --git a/Scripts/Items/New Haven Quest Rewards/TwilightJacket.cs b/Projects/Scripts/Items/New Haven Quest Rewards/TwilightJacket.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/TwilightJacket.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/TwilightJacket.cs diff --git a/Scripts/Items/New Haven Quest Rewards/WalkersLeggings.cs b/Projects/Scripts/Items/New Haven Quest Rewards/WalkersLeggings.cs similarity index 100% rename from Scripts/Items/New Haven Quest Rewards/WalkersLeggings.cs rename to Projects/Scripts/Items/New Haven Quest Rewards/WalkersLeggings.cs diff --git a/Scripts/Items/PlantsFlowers/Potted/EmptyPots.cs b/Projects/Scripts/Items/PlantsFlowers/Potted/EmptyPots.cs similarity index 100% rename from Scripts/Items/PlantsFlowers/Potted/EmptyPots.cs rename to Projects/Scripts/Items/PlantsFlowers/Potted/EmptyPots.cs diff --git a/Scripts/Items/PlantsFlowers/Potted/PottedCactus.cs b/Projects/Scripts/Items/PlantsFlowers/Potted/PottedCactus.cs similarity index 100% rename from Scripts/Items/PlantsFlowers/Potted/PottedCactus.cs rename to Projects/Scripts/Items/PlantsFlowers/Potted/PottedCactus.cs diff --git a/Scripts/Items/PlantsFlowers/Potted/PottedPlants.cs b/Projects/Scripts/Items/PlantsFlowers/Potted/PottedPlants.cs similarity index 100% rename from Scripts/Items/PlantsFlowers/Potted/PottedPlants.cs rename to Projects/Scripts/Items/PlantsFlowers/Potted/PottedPlants.cs diff --git a/Scripts/Items/PlantsFlowers/Potted/PottedTrees.cs b/Projects/Scripts/Items/PlantsFlowers/Potted/PottedTrees.cs similarity index 100% rename from Scripts/Items/PlantsFlowers/Potted/PottedTrees.cs rename to Projects/Scripts/Items/PlantsFlowers/Potted/PottedTrees.cs diff --git a/Scripts/Items/Quivers/BaseQuiver.cs b/Projects/Scripts/Items/Quivers/BaseQuiver.cs similarity index 100% rename from Scripts/Items/Quivers/BaseQuiver.cs rename to Projects/Scripts/Items/Quivers/BaseQuiver.cs diff --git a/Scripts/Items/Quivers/ElvenQuiver.cs b/Projects/Scripts/Items/Quivers/ElvenQuiver.cs similarity index 100% rename from Scripts/Items/Quivers/ElvenQuiver.cs rename to Projects/Scripts/Items/Quivers/ElvenQuiver.cs diff --git a/Scripts/Items/Quivers/QuiverOfBlight.cs b/Projects/Scripts/Items/Quivers/QuiverOfBlight.cs similarity index 100% rename from Scripts/Items/Quivers/QuiverOfBlight.cs rename to Projects/Scripts/Items/Quivers/QuiverOfBlight.cs diff --git a/Scripts/Items/Quivers/QuiverOfFire.cs b/Projects/Scripts/Items/Quivers/QuiverOfFire.cs similarity index 100% rename from Scripts/Items/Quivers/QuiverOfFire.cs rename to Projects/Scripts/Items/Quivers/QuiverOfFire.cs diff --git a/Scripts/Items/Quivers/QuiverOfIce.cs b/Projects/Scripts/Items/Quivers/QuiverOfIce.cs similarity index 100% rename from Scripts/Items/Quivers/QuiverOfIce.cs rename to Projects/Scripts/Items/Quivers/QuiverOfIce.cs diff --git a/Scripts/Items/Quivers/QuiverOfLightning.cs b/Projects/Scripts/Items/Quivers/QuiverOfLightning.cs similarity index 100% rename from Scripts/Items/Quivers/QuiverOfLightning.cs rename to Projects/Scripts/Items/Quivers/QuiverOfLightning.cs diff --git a/Scripts/Items/Resources/Arrows/Arrow.cs b/Projects/Scripts/Items/Resources/Arrows/Arrow.cs similarity index 100% rename from Scripts/Items/Resources/Arrows/Arrow.cs rename to Projects/Scripts/Items/Resources/Arrows/Arrow.cs diff --git a/Scripts/Items/Resources/Arrows/Bolt.cs b/Projects/Scripts/Items/Resources/Arrows/Bolt.cs similarity index 100% rename from Scripts/Items/Resources/Arrows/Bolt.cs rename to Projects/Scripts/Items/Resources/Arrows/Bolt.cs diff --git a/Scripts/Items/Resources/Arrows/Feather.cs b/Projects/Scripts/Items/Resources/Arrows/Feather.cs similarity index 100% rename from Scripts/Items/Resources/Arrows/Feather.cs rename to Projects/Scripts/Items/Resources/Arrows/Feather.cs diff --git a/Scripts/Items/Resources/Arrows/Shaft.cs b/Projects/Scripts/Items/Resources/Arrows/Shaft.cs similarity index 100% rename from Scripts/Items/Resources/Arrows/Shaft.cs rename to Projects/Scripts/Items/Resources/Arrows/Shaft.cs diff --git a/Scripts/Items/Resources/Blacksmithing/Ingots.cs b/Projects/Scripts/Items/Resources/Blacksmithing/Ingots.cs similarity index 100% rename from Scripts/Items/Resources/Blacksmithing/Ingots.cs rename to Projects/Scripts/Items/Resources/Blacksmithing/Ingots.cs diff --git a/Scripts/Items/Resources/Blacksmithing/Ore.cs b/Projects/Scripts/Items/Resources/Blacksmithing/Ore.cs similarity index 100% rename from Scripts/Items/Resources/Blacksmithing/Ore.cs rename to Projects/Scripts/Items/Resources/Blacksmithing/Ore.cs diff --git a/Scripts/Items/Resources/Blacksmithing/Scales.cs b/Projects/Scripts/Items/Resources/Blacksmithing/Scales.cs similarity index 100% rename from Scripts/Items/Resources/Blacksmithing/Scales.cs rename to Projects/Scripts/Items/Resources/Blacksmithing/Scales.cs diff --git a/Scripts/Items/Resources/Fishing/BigFish.cs b/Projects/Scripts/Items/Resources/Fishing/BigFish.cs similarity index 100% rename from Scripts/Items/Resources/Fishing/BigFish.cs rename to Projects/Scripts/Items/Resources/Fishing/BigFish.cs diff --git a/Scripts/Items/Resources/Fishing/Fish.cs b/Projects/Scripts/Items/Resources/Fishing/Fish.cs similarity index 100% rename from Scripts/Items/Resources/Fishing/Fish.cs rename to Projects/Scripts/Items/Resources/Fishing/Fish.cs diff --git a/Scripts/Items/Resources/Fishing/MagicFish.cs b/Projects/Scripts/Items/Resources/Fishing/MagicFish.cs similarity index 100% rename from Scripts/Items/Resources/Fishing/MagicFish.cs rename to Projects/Scripts/Items/Resources/Fishing/MagicFish.cs diff --git a/Scripts/Items/Resources/Masonry/Granite.cs b/Projects/Scripts/Items/Resources/Masonry/Granite.cs similarity index 100% rename from Scripts/Items/Resources/Masonry/Granite.cs rename to Projects/Scripts/Items/Resources/Masonry/Granite.cs diff --git a/Scripts/Items/Resources/MiscMLResources.cs b/Projects/Scripts/Items/Resources/MiscMLResources.cs similarity index 100% rename from Scripts/Items/Resources/MiscMLResources.cs rename to Projects/Scripts/Items/Resources/MiscMLResources.cs diff --git a/Scripts/Items/Resources/Reagents/BagOfAllReagents.cs b/Projects/Scripts/Items/Resources/Reagents/BagOfAllReagents.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BagOfAllReagents.cs rename to Projects/Scripts/Items/Resources/Reagents/BagOfAllReagents.cs diff --git a/Scripts/Items/Resources/Reagents/BagOfNecroReagents.cs b/Projects/Scripts/Items/Resources/Reagents/BagOfNecroReagents.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BagOfNecroReagents.cs rename to Projects/Scripts/Items/Resources/Reagents/BagOfNecroReagents.cs diff --git a/Scripts/Items/Resources/Reagents/BagOfReagents.cs b/Projects/Scripts/Items/Resources/Reagents/BagOfReagents.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BagOfReagents.cs rename to Projects/Scripts/Items/Resources/Reagents/BagOfReagents.cs diff --git a/Scripts/Items/Resources/Reagents/BaseReagent.cs b/Projects/Scripts/Items/Resources/Reagents/BaseReagent.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BaseReagent.cs rename to Projects/Scripts/Items/Resources/Reagents/BaseReagent.cs diff --git a/Scripts/Items/Resources/Reagents/BatWing.cs b/Projects/Scripts/Items/Resources/Reagents/BatWing.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BatWing.cs rename to Projects/Scripts/Items/Resources/Reagents/BatWing.cs diff --git a/Scripts/Items/Resources/Reagents/BlackPearl.cs b/Projects/Scripts/Items/Resources/Reagents/BlackPearl.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/BlackPearl.cs rename to Projects/Scripts/Items/Resources/Reagents/BlackPearl.cs diff --git a/Scripts/Items/Resources/Reagents/Bloodmoss.cs b/Projects/Scripts/Items/Resources/Reagents/Bloodmoss.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/Bloodmoss.cs rename to Projects/Scripts/Items/Resources/Reagents/Bloodmoss.cs diff --git a/Scripts/Items/Resources/Reagents/DaemonBlood.cs b/Projects/Scripts/Items/Resources/Reagents/DaemonBlood.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/DaemonBlood.cs rename to Projects/Scripts/Items/Resources/Reagents/DaemonBlood.cs diff --git a/Scripts/Items/Resources/Reagents/DaemonBone.cs b/Projects/Scripts/Items/Resources/Reagents/DaemonBone.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/DaemonBone.cs rename to Projects/Scripts/Items/Resources/Reagents/DaemonBone.cs diff --git a/Scripts/Items/Resources/Reagents/DeadWood.cs b/Projects/Scripts/Items/Resources/Reagents/DeadWood.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/DeadWood.cs rename to Projects/Scripts/Items/Resources/Reagents/DeadWood.cs diff --git a/Scripts/Items/Resources/Reagents/DragonsBlood.cs b/Projects/Scripts/Items/Resources/Reagents/DragonsBlood.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/DragonsBlood.cs rename to Projects/Scripts/Items/Resources/Reagents/DragonsBlood.cs diff --git a/Scripts/Items/Resources/Reagents/Garlic.cs b/Projects/Scripts/Items/Resources/Reagents/Garlic.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/Garlic.cs rename to Projects/Scripts/Items/Resources/Reagents/Garlic.cs diff --git a/Scripts/Items/Resources/Reagents/Ginseng.cs b/Projects/Scripts/Items/Resources/Reagents/Ginseng.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/Ginseng.cs rename to Projects/Scripts/Items/Resources/Reagents/Ginseng.cs diff --git a/Scripts/Items/Resources/Reagents/GraveDust.cs b/Projects/Scripts/Items/Resources/Reagents/GraveDust.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/GraveDust.cs rename to Projects/Scripts/Items/Resources/Reagents/GraveDust.cs diff --git a/Scripts/Items/Resources/Reagents/MandrakeRoot.cs b/Projects/Scripts/Items/Resources/Reagents/MandrakeRoot.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/MandrakeRoot.cs rename to Projects/Scripts/Items/Resources/Reagents/MandrakeRoot.cs diff --git a/Scripts/Items/Resources/Reagents/Nightshade.cs b/Projects/Scripts/Items/Resources/Reagents/Nightshade.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/Nightshade.cs rename to Projects/Scripts/Items/Resources/Reagents/Nightshade.cs diff --git a/Scripts/Items/Resources/Reagents/NoxCrystal.cs b/Projects/Scripts/Items/Resources/Reagents/NoxCrystal.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/NoxCrystal.cs rename to Projects/Scripts/Items/Resources/Reagents/NoxCrystal.cs diff --git a/Scripts/Items/Resources/Reagents/PigIron.cs b/Projects/Scripts/Items/Resources/Reagents/PigIron.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/PigIron.cs rename to Projects/Scripts/Items/Resources/Reagents/PigIron.cs diff --git a/Scripts/Items/Resources/Reagents/SpidersSilk.cs b/Projects/Scripts/Items/Resources/Reagents/SpidersSilk.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/SpidersSilk.cs rename to Projects/Scripts/Items/Resources/Reagents/SpidersSilk.cs diff --git a/Scripts/Items/Resources/Reagents/SulfurousAsh.cs b/Projects/Scripts/Items/Resources/Reagents/SulfurousAsh.cs similarity index 100% rename from Scripts/Items/Resources/Reagents/SulfurousAsh.cs rename to Projects/Scripts/Items/Resources/Reagents/SulfurousAsh.cs diff --git a/Scripts/Items/Resources/Tailor/BoltOfCloth.cs b/Projects/Scripts/Items/Resources/Tailor/BoltOfCloth.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/BoltOfCloth.cs rename to Projects/Scripts/Items/Resources/Tailor/BoltOfCloth.cs diff --git a/Scripts/Items/Resources/Tailor/Bone.cs b/Projects/Scripts/Items/Resources/Tailor/Bone.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Bone.cs rename to Projects/Scripts/Items/Resources/Tailor/Bone.cs diff --git a/Scripts/Items/Resources/Tailor/Cloth.cs b/Projects/Scripts/Items/Resources/Tailor/Cloth.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Cloth.cs rename to Projects/Scripts/Items/Resources/Tailor/Cloth.cs diff --git a/Scripts/Items/Resources/Tailor/Cotton.cs b/Projects/Scripts/Items/Resources/Tailor/Cotton.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Cotton.cs rename to Projects/Scripts/Items/Resources/Tailor/Cotton.cs diff --git a/Scripts/Items/Resources/Tailor/Flax.cs b/Projects/Scripts/Items/Resources/Tailor/Flax.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Flax.cs rename to Projects/Scripts/Items/Resources/Tailor/Flax.cs diff --git a/Scripts/Items/Resources/Tailor/Hides.cs b/Projects/Scripts/Items/Resources/Tailor/Hides.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Hides.cs rename to Projects/Scripts/Items/Resources/Tailor/Hides.cs diff --git a/Scripts/Items/Resources/Tailor/Leathers.cs b/Projects/Scripts/Items/Resources/Tailor/Leathers.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Leathers.cs rename to Projects/Scripts/Items/Resources/Tailor/Leathers.cs diff --git a/Scripts/Items/Resources/Tailor/UncutCloth.cs b/Projects/Scripts/Items/Resources/Tailor/UncutCloth.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/UncutCloth.cs rename to Projects/Scripts/Items/Resources/Tailor/UncutCloth.cs diff --git a/Scripts/Items/Resources/Tailor/Wool.cs b/Projects/Scripts/Items/Resources/Tailor/Wool.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/Wool.cs rename to Projects/Scripts/Items/Resources/Tailor/Wool.cs diff --git a/Scripts/Items/Resources/Tailor/YarnsAndThreads.cs b/Projects/Scripts/Items/Resources/Tailor/YarnsAndThreads.cs similarity index 100% rename from Scripts/Items/Resources/Tailor/YarnsAndThreads.cs rename to Projects/Scripts/Items/Resources/Tailor/YarnsAndThreads.cs diff --git a/Scripts/Items/Shields/Artifacts/Aegis.cs b/Projects/Scripts/Items/Shields/Artifacts/Aegis.cs similarity index 100% rename from Scripts/Items/Shields/Artifacts/Aegis.cs rename to Projects/Scripts/Items/Shields/Artifacts/Aegis.cs diff --git a/Scripts/Items/Shields/Artifacts/ArcaneShield.cs b/Projects/Scripts/Items/Shields/Artifacts/ArcaneShield.cs similarity index 100% rename from Scripts/Items/Shields/Artifacts/ArcaneShield.cs rename to Projects/Scripts/Items/Shields/Artifacts/ArcaneShield.cs diff --git a/Scripts/Items/Shields/BaseShield.cs b/Projects/Scripts/Items/Shields/BaseShield.cs similarity index 100% rename from Scripts/Items/Shields/BaseShield.cs rename to Projects/Scripts/Items/Shields/BaseShield.cs diff --git a/Scripts/Items/Shields/BronzeShield.cs b/Projects/Scripts/Items/Shields/BronzeShield.cs similarity index 100% rename from Scripts/Items/Shields/BronzeShield.cs rename to Projects/Scripts/Items/Shields/BronzeShield.cs diff --git a/Scripts/Items/Shields/Buckler.cs b/Projects/Scripts/Items/Shields/Buckler.cs similarity index 100% rename from Scripts/Items/Shields/Buckler.cs rename to Projects/Scripts/Items/Shields/Buckler.cs diff --git a/Scripts/Items/Shields/ChaosShield.cs b/Projects/Scripts/Items/Shields/ChaosShield.cs similarity index 100% rename from Scripts/Items/Shields/ChaosShield.cs rename to Projects/Scripts/Items/Shields/ChaosShield.cs diff --git a/Scripts/Items/Shields/HeaterShield.cs b/Projects/Scripts/Items/Shields/HeaterShield.cs similarity index 100% rename from Scripts/Items/Shields/HeaterShield.cs rename to Projects/Scripts/Items/Shields/HeaterShield.cs diff --git a/Scripts/Items/Shields/MetalKiteShield.cs b/Projects/Scripts/Items/Shields/MetalKiteShield.cs similarity index 100% rename from Scripts/Items/Shields/MetalKiteShield.cs rename to Projects/Scripts/Items/Shields/MetalKiteShield.cs diff --git a/Scripts/Items/Shields/MetalShield.cs b/Projects/Scripts/Items/Shields/MetalShield.cs similarity index 100% rename from Scripts/Items/Shields/MetalShield.cs rename to Projects/Scripts/Items/Shields/MetalShield.cs diff --git a/Scripts/Items/Shields/OrderShield.cs b/Projects/Scripts/Items/Shields/OrderShield.cs similarity index 100% rename from Scripts/Items/Shields/OrderShield.cs rename to Projects/Scripts/Items/Shields/OrderShield.cs diff --git a/Scripts/Items/Shields/WoodenKiteShield.cs b/Projects/Scripts/Items/Shields/WoodenKiteShield.cs similarity index 100% rename from Scripts/Items/Shields/WoodenKiteShield.cs rename to Projects/Scripts/Items/Shields/WoodenKiteShield.cs diff --git a/Scripts/Items/Shields/WoodenShield.cs b/Projects/Scripts/Items/Shields/WoodenShield.cs similarity index 100% rename from Scripts/Items/Shields/WoodenShield.cs rename to Projects/Scripts/Items/Shields/WoodenShield.cs diff --git a/Scripts/Items/Skill Items/Blacksmith Items/Misc/AnvilForge.cs b/Projects/Scripts/Items/Skill Items/Blacksmith Items/Misc/AnvilForge.cs similarity index 100% rename from Scripts/Items/Skill Items/Blacksmith Items/Misc/AnvilForge.cs rename to Projects/Scripts/Items/Skill Items/Blacksmith Items/Misc/AnvilForge.cs diff --git a/Scripts/Items/Skill Items/Blacksmith Items/Misc/LargeForge.cs b/Projects/Scripts/Items/Skill Items/Blacksmith Items/Misc/LargeForge.cs similarity index 100% rename from Scripts/Items/Skill Items/Blacksmith Items/Misc/LargeForge.cs rename to Projects/Scripts/Items/Skill Items/Blacksmith Items/Misc/LargeForge.cs diff --git a/Scripts/Items/Skill Items/Camping/Bedroll.cs b/Projects/Scripts/Items/Skill Items/Camping/Bedroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Camping/Bedroll.cs rename to Projects/Scripts/Items/Skill Items/Camping/Bedroll.cs diff --git a/Scripts/Items/Skill Items/Camping/Campfire.cs b/Projects/Scripts/Items/Skill Items/Camping/Campfire.cs similarity index 100% rename from Scripts/Items/Skill Items/Camping/Campfire.cs rename to Projects/Scripts/Items/Skill Items/Camping/Campfire.cs diff --git a/Scripts/Items/Skill Items/Camping/Kindling.cs b/Projects/Scripts/Items/Skill Items/Camping/Kindling.cs similarity index 100% rename from Scripts/Items/Skill Items/Camping/Kindling.cs rename to Projects/Scripts/Items/Skill Items/Camping/Kindling.cs diff --git a/Scripts/Items/Skill Items/Carpenter Items/Board.cs b/Projects/Scripts/Items/Skill Items/Carpenter Items/Board.cs similarity index 100% rename from Scripts/Items/Skill Items/Carpenter Items/Board.cs rename to Projects/Scripts/Items/Skill Items/Carpenter Items/Board.cs diff --git a/Scripts/Items/Skill Items/Carpenter Items/TaxidermyKit.cs b/Projects/Scripts/Items/Skill Items/Carpenter Items/TaxidermyKit.cs similarity index 100% rename from Scripts/Items/Skill Items/Carpenter Items/TaxidermyKit.cs rename to Projects/Scripts/Items/Skill Items/Carpenter Items/TaxidermyKit.cs diff --git a/Scripts/Items/Skill Items/Fishing/FishingPole.cs b/Projects/Scripts/Items/Skill Items/Fishing/FishingPole.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/FishingPole.cs rename to Projects/Scripts/Items/Skill Items/Fishing/FishingPole.cs diff --git a/Scripts/Items/Skill Items/Fishing/Misc/MessageInABottle.cs b/Projects/Scripts/Items/Skill Items/Fishing/Misc/MessageInABottle.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/Misc/MessageInABottle.cs rename to Projects/Scripts/Items/Skill Items/Fishing/Misc/MessageInABottle.cs diff --git a/Scripts/Items/Skill Items/Fishing/Misc/SOS.cs b/Projects/Scripts/Items/Skill Items/Fishing/Misc/SOS.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/Misc/SOS.cs rename to Projects/Scripts/Items/Skill Items/Fishing/Misc/SOS.cs diff --git a/Scripts/Items/Skill Items/Fishing/Misc/Sextant.cs b/Projects/Scripts/Items/Skill Items/Fishing/Misc/Sextant.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/Misc/Sextant.cs rename to Projects/Scripts/Items/Skill Items/Fishing/Misc/Sextant.cs diff --git a/Scripts/Items/Skill Items/Fishing/Misc/ShipwreckedItem.cs b/Projects/Scripts/Items/Skill Items/Fishing/Misc/ShipwreckedItem.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/Misc/ShipwreckedItem.cs rename to Projects/Scripts/Items/Skill Items/Fishing/Misc/ShipwreckedItem.cs diff --git a/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs b/Projects/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs similarity index 100% rename from Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs rename to Projects/Scripts/Items/Skill Items/Fishing/Misc/SpecialFishingNet.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/BaseHarvestTool.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/BaseHarvestTool.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/BaseHarvestTool.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/BaseHarvestTool.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/GargoylesPickaxe.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/GargoylesPickaxe.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/GargoylesPickaxe.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/GargoylesPickaxe.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/ProspectorsTool.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/ProspectorsTool.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/ProspectorsTool.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/ProspectorsTool.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/Shovel.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/Shovel.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/Shovel.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/Shovel.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/SturdyPickaxe.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/SturdyPickaxe.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/SturdyPickaxe.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/SturdyPickaxe.cs diff --git a/Scripts/Items/Skill Items/Harvest Tools/SturdyShovel.cs b/Projects/Scripts/Items/Skill Items/Harvest Tools/SturdyShovel.cs similarity index 100% rename from Scripts/Items/Skill Items/Harvest Tools/SturdyShovel.cs rename to Projects/Scripts/Items/Skill Items/Harvest Tools/SturdyShovel.cs diff --git a/Scripts/Items/Skill Items/Lumberjack/Log.cs b/Projects/Scripts/Items/Skill Items/Lumberjack/Log.cs similarity index 100% rename from Scripts/Items/Skill Items/Lumberjack/Log.cs rename to Projects/Scripts/Items/Skill Items/Lumberjack/Log.cs diff --git a/Scripts/Items/Skill Items/Magical/BookOfBushido.cs b/Projects/Scripts/Items/Skill Items/Magical/BookOfBushido.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/BookOfBushido.cs rename to Projects/Scripts/Items/Skill Items/Magical/BookOfBushido.cs diff --git a/Scripts/Items/Skill Items/Magical/BookOfChivalry.cs b/Projects/Scripts/Items/Skill Items/Magical/BookOfChivalry.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/BookOfChivalry.cs rename to Projects/Scripts/Items/Skill Items/Magical/BookOfChivalry.cs diff --git a/Scripts/Items/Skill Items/Magical/BookOfNinjitsu.cs b/Projects/Scripts/Items/Skill Items/Magical/BookOfNinjitsu.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/BookOfNinjitsu.cs rename to Projects/Scripts/Items/Skill Items/Magical/BookOfNinjitsu.cs diff --git a/Scripts/Items/Skill Items/Magical/Misc/BlankScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Misc/BlankScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Misc/BlankScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Misc/BlankScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Misc/Bottle.cs b/Projects/Scripts/Items/Skill Items/Magical/Misc/Bottle.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Misc/Bottle.cs rename to Projects/Scripts/Items/Skill Items/Magical/Misc/Bottle.cs diff --git a/Scripts/Items/Skill Items/Magical/Misc/Moongate.cs b/Projects/Scripts/Items/Skill Items/Magical/Misc/Moongate.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Misc/Moongate.cs rename to Projects/Scripts/Items/Skill Items/Magical/Misc/Moongate.cs diff --git a/Scripts/Items/Skill Items/Magical/Misc/PotionKeg.cs b/Projects/Scripts/Items/Skill Items/Magical/Misc/PotionKeg.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Misc/PotionKeg.cs rename to Projects/Scripts/Items/Skill Items/Magical/Misc/PotionKeg.cs diff --git a/Scripts/Items/Skill Items/Magical/Misc/RecallRune.cs b/Projects/Scripts/Items/Skill Items/Magical/Misc/RecallRune.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Misc/RecallRune.cs rename to Projects/Scripts/Items/Skill Items/Magical/Misc/RecallRune.cs diff --git a/Scripts/Items/Skill Items/Magical/MysticSpellbook.cs b/Projects/Scripts/Items/Skill Items/Magical/MysticSpellbook.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/MysticSpellbook.cs rename to Projects/Scripts/Items/Skill Items/Magical/MysticSpellbook.cs diff --git a/Scripts/Items/Skill Items/Magical/NecromancerSpellbook.cs b/Projects/Scripts/Items/Skill Items/Magical/NecromancerSpellbook.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/NecromancerSpellbook.cs rename to Projects/Scripts/Items/Skill Items/Magical/NecromancerSpellbook.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/AgilityPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/AgilityPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Agility Potions/AgilityPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/AgilityPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/BaseAgilityPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/BaseAgilityPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Agility Potions/BaseAgilityPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/BaseAgilityPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/GreaterAgilityPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/GreaterAgilityPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Agility Potions/GreaterAgilityPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Agility Potions/GreaterAgilityPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/BasePotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/BasePotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/BasePotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/BasePotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/BaseConflagrationPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/BaseConflagrationPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/BaseConflagrationPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/BaseConflagrationPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/ConflagrationPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/ConflagrationPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/ConflagrationPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/ConflagrationPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/GreaterConflagrationPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/GreaterConflagrationPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/GreaterConflagrationPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Conflagration Potions/GreaterConflagrationPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/BaseConfusionBlastPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/BaseConfusionBlastPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/BaseConfusionBlastPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/BaseConfusionBlastPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/ConfusionBlastPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/ConfusionBlastPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/ConfusionBlastPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/ConfusionBlastPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/GreaterConfusionBlastPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/GreaterConfusionBlastPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/GreaterConfusionBlastPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Confusion Blast Potions/GreaterConfusionBlastPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/BaseCurePotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/BaseCurePotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Cure Potions/BaseCurePotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/BaseCurePotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/CurePotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/CurePotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Cure Potions/CurePotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/CurePotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/GreaterCurePotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/GreaterCurePotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Cure Potions/GreaterCurePotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/GreaterCurePotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/LesserCurePotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/LesserCurePotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Cure Potions/LesserCurePotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Cure Potions/LesserCurePotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/DarkglowPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/DarkglowPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/DarkglowPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/DarkglowPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/BaseExplosionPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/BaseExplosionPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/BaseExplosionPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/BaseExplosionPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/ExplosionPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/ExplosionPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/ExplosionPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/ExplosionPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/GreaterExplosionPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/GreaterExplosionPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/GreaterExplosionPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/GreaterExplosionPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/LesserExplosionPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/LesserExplosionPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/LesserExplosionPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Explosion Potions/LesserExplosionPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/BaseHealPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/BaseHealPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Heal Potions/BaseHealPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/BaseHealPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/GreaterHealPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/GreaterHealPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Heal Potions/GreaterHealPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/GreaterHealPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/HealPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/HealPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Heal Potions/HealPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/HealPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/LesserHealPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/LesserHealPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Heal Potions/LesserHealPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Heal Potions/LesserHealPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/InvisibilityPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/InvisibilityPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/InvisibilityPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/InvisibilityPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/NightSight.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/NightSight.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/NightSight.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/NightSight.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/ParasiticPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/ParasiticPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/ParasiticPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/ParasiticPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/BasePoisonPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/BasePoisonPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Poison Potions/BasePoisonPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/BasePoisonPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/DeadlyPoisonPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/DeadlyPoisonPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Poison Potions/DeadlyPoisonPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/DeadlyPoisonPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/GreaterPoisonPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/GreaterPoisonPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Poison Potions/GreaterPoisonPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/GreaterPoisonPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/LesserPoisonPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/LesserPoisonPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Poison Potions/LesserPoisonPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/LesserPoisonPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/PoisonPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/PoisonPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Poison Potions/PoisonPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Poison Potions/PoisonPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/BaseRefreshPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/BaseRefreshPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/BaseRefreshPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/BaseRefreshPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/RefreshPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/RefreshPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/RefreshPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/RefreshPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/TotalRefreshPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/TotalRefreshPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/TotalRefreshPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Refresh Potions/TotalRefreshPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/BaseStrengthPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/BaseStrengthPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Strength Potions/BaseStrengthPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/BaseStrengthPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/GreaterStrengthPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/GreaterStrengthPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Strength Potions/GreaterStrengthPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/GreaterStrengthPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/StrengthPotion.cs b/Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/StrengthPotion.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Potions/Strength Potions/StrengthPotion.cs rename to Projects/Scripts/Items/Skill Items/Magical/Potions/Strength Potions/StrengthPotion.cs diff --git a/Scripts/Items/Skill Items/Magical/Runebook.cs b/Projects/Scripts/Items/Skill Items/Magical/Runebook.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Runebook.cs rename to Projects/Scripts/Items/Skill Items/Magical/Runebook.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EarthquakeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EarthquakeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EarthquakeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EarthquakeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EnergyVortexScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EnergyVortexScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EnergyVortexScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/EnergyVortexScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/ResurrectionScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/ResurrectionScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/ResurrectionScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/ResurrectionScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonAirElementalScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonAirElementalScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonAirElementalScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonAirElementalScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonDaemonScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonDaemonScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonDaemonScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonDaemonScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonEarthElementalScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonEarthElementalScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonEarthElementalScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonEarthElementalScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonFireElementalScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonFireElementalScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonFireElementalScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonFireElementalScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonWaterElementalScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonWaterElementalScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonWaterElementalScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Eighth Circle/SummonWaterElementalScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/BladeSpiritsScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/BladeSpiritsScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/BladeSpiritsScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/BladeSpiritsScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/DispelFieldScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/DispelFieldScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/DispelFieldScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/DispelFieldScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/IncognitoScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/IncognitoScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/IncognitoScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/IncognitoScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MagicReflectScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MagicReflectScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MagicReflectScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MagicReflectScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MindBlastScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MindBlastScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MindBlastScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/MindBlastScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/ParalyzeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/ParalyzeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/ParalyzeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/ParalyzeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/PoisonFieldScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/PoisonFieldScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/PoisonFieldScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/PoisonFieldScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/SummonCreatureScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/SummonCreatureScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/SummonCreatureScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fifth Circle/SummonCreatureScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ClumsyScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ClumsyScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ClumsyScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ClumsyScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/CreateFoodScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/CreateFoodScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/CreateFoodScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/CreateFoodScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/FeeblemindScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/FeeblemindScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/FeeblemindScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/FeeblemindScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/HealScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/HealScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/HealScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/HealScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/MagicArrowScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/MagicArrowScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/MagicArrowScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/MagicArrowScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/NightSightScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/NightSightScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/NightSightScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/NightSightScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ReactiveArmorScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ReactiveArmorScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ReactiveArmorScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/ReactiveArmorScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/WeakenScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/WeakenScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/First Circle/WeakenScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/First Circle/WeakenScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchProtectionScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchProtectionScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchProtectionScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchProtectionScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchcureScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchcureScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchcureScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ArchcureScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/CurseScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/CurseScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/CurseScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/CurseScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/FireFieldScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/FireFieldScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/FireFieldScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/FireFieldScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/GreaterHealScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/GreaterHealScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/GreaterHealScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/GreaterHealScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/LightningScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/LightningScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/LightningScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/LightningScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ManaDrainScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ManaDrainScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ManaDrainScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/ManaDrainScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/RecallScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/RecallScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/RecallScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Fourth Circle/RecallScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/AnimatedWeaponScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/AnimatedWeaponScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/AnimatedWeaponScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/AnimatedWeaponScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/BombardScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/BombardScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/BombardScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/BombardScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/CleansingWindsScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/CleansingWindsScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/CleansingWindsScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/CleansingWindsScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EagleStrikeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EagleStrikeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EagleStrikeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EagleStrikeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EnchantScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EnchantScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EnchantScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/EnchantScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HailStormScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HailStormScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HailStormScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HailStormScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HealingStoneScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HealingStoneScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HealingStoneScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/HealingStoneScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/MassSleepScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/MassSleepScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/MassSleepScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/MassSleepScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherBoltScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherBoltScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherBoltScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherBoltScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherCycloneScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherCycloneScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherCycloneScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/NetherCycloneScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/PurgeMagicScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/PurgeMagicScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/PurgeMagicScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/PurgeMagicScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/RisingColossusScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/RisingColossusScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/RisingColossusScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/RisingColossusScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SleepScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SleepScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SleepScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SleepScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellPlagueScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellPlagueScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellPlagueScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellPlagueScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellTriggerScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellTriggerScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellTriggerScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/SpellTriggerScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/StoneFormScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/StoneFormScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/StoneFormScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Mysticism/StoneFormScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/AnimateDeadScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/AnimateDeadScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/AnimateDeadScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/AnimateDeadScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/BloodOathScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/BloodOathScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/BloodOathScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/BloodOathScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CorpseSkinScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CorpseSkinScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CorpseSkinScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CorpseSkinScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CurseWeaponScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CurseWeaponScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CurseWeaponScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/CurseWeaponScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/EvilOmenScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/EvilOmenScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/EvilOmenScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/EvilOmenScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/ExorcismScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/ExorcismScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/ExorcismScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/ExorcismScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/HorrificBeastScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/HorrificBeastScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/HorrificBeastScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/HorrificBeastScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/LichFormScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/LichFormScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/LichFormScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/LichFormScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/MindRotScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/MindRotScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/MindRotScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/MindRotScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PainSpikeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PainSpikeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PainSpikeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PainSpikeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PoisonStrikeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PoisonStrikeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PoisonStrikeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/PoisonStrikeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/StrangleScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/StrangleScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/StrangleScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/StrangleScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/SummonFamiliarScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/SummonFamiliarScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/SummonFamiliarScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/SummonFamiliarScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VampiricEmbraceScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VampiricEmbraceScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VampiricEmbraceScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VampiricEmbraceScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VengefulSpiritScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VengefulSpiritScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VengefulSpiritScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/VengefulSpiritScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WitherScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WitherScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WitherScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WitherScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WraithFormScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WraithFormScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WraithFormScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Necromancy/WraithFormScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/AgilityScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/AgilityScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/AgilityScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/AgilityScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CunningScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CunningScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CunningScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CunningScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CureScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CureScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CureScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/CureScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/HarmScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/HarmScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/HarmScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/HarmScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicTrapScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicTrapScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicTrapScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicTrapScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicUnTrapScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicUnTrapScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicUnTrapScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/MagicUnTrapScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/ProtectionScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/ProtectionScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/ProtectionScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/ProtectionScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/StrengthScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/StrengthScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/StrengthScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Second Circle/StrengthScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ChainLightningScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ChainLightningScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ChainLightningScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ChainLightningScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/EnergyFieldScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/EnergyFieldScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/EnergyFieldScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/EnergyFieldScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/FlamestrikeScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/FlamestrikeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/FlamestrikeScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/FlamestrikeScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/GateTravelScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/GateTravelScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/GateTravelScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/GateTravelScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ManaVampireScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ManaVampireScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ManaVampireScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/ManaVampireScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MassDispelScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MassDispelScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MassDispelScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MassDispelScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MeteorStormScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MeteorStormScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MeteorStormScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/MeteorStormScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/PolymorphScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/PolymorphScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/PolymorphScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Seventh Circle/PolymorphScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/DispelScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/DispelScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/DispelScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/DispelScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/EnergyBoltScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/EnergyBoltScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/EnergyBoltScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/EnergyBoltScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ExplosionScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ExplosionScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ExplosionScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ExplosionScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/InvisibilityScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/InvisibilityScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/InvisibilityScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/InvisibilityScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MarkScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MarkScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MarkScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MarkScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MassCurseScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MassCurseScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MassCurseScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/MassCurseScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ParalyzeFieldSpell.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ParalyzeFieldSpell.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ParalyzeFieldSpell.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/ParalyzeFieldSpell.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/RevealScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/RevealScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/RevealScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Sixth Circle/RevealScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/SpellScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/SpellweavingScrolls.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/SpellweavingScrolls.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/SpellweavingScrolls.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/SpellweavingScrolls.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/BlessScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/BlessScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/BlessScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/BlessScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/FireballScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/FireballScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/FireballScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/FireballScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/MagicLockScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/MagicLockScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/MagicLockScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/MagicLockScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/PoisonScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/PoisonScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/PoisonScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/PoisonScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TelekinisisScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TelekinisisScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TelekinisisScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TelekinisisScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TeleportScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TeleportScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TeleportScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/TeleportScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/UnlockScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/UnlockScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/UnlockScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/UnlockScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/WallOfStoneScroll.cs b/Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/WallOfStoneScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/WallOfStoneScroll.cs rename to Projects/Scripts/Items/Skill Items/Magical/Scrolls/Third Circle/WallOfStoneScroll.cs diff --git a/Scripts/Items/Skill Items/Magical/Spellbook.cs b/Projects/Scripts/Items/Skill Items/Magical/Spellbook.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/Spellbook.cs rename to Projects/Scripts/Items/Skill Items/Magical/Spellbook.cs diff --git a/Scripts/Items/Skill Items/Magical/SpellweavingBook.cs b/Projects/Scripts/Items/Skill Items/Magical/SpellweavingBook.cs similarity index 100% rename from Scripts/Items/Skill Items/Magical/SpellweavingBook.cs rename to Projects/Scripts/Items/Skill Items/Magical/SpellweavingBook.cs diff --git a/Scripts/Items/Skill Items/Misc/Bandage.cs b/Projects/Scripts/Items/Skill Items/Misc/Bandage.cs similarity index 100% rename from Scripts/Items/Skill Items/Misc/Bandage.cs rename to Projects/Scripts/Items/Skill Items/Misc/Bandage.cs diff --git a/Scripts/Items/Skill Items/Misc/FireHorn.cs b/Projects/Scripts/Items/Skill Items/Misc/FireHorn.cs similarity index 100% rename from Scripts/Items/Skill Items/Misc/FireHorn.cs rename to Projects/Scripts/Items/Skill Items/Misc/FireHorn.cs diff --git a/Scripts/Items/Skill Items/Misc/RecipeScroll.cs b/Projects/Scripts/Items/Skill Items/Misc/RecipeScroll.cs similarity index 100% rename from Scripts/Items/Skill Items/Misc/RecipeScroll.cs rename to Projects/Scripts/Items/Skill Items/Misc/RecipeScroll.cs diff --git a/Scripts/Items/Skill Items/Misc/RepairDeed.cs b/Projects/Scripts/Items/Skill Items/Misc/RepairDeed.cs similarity index 100% rename from Scripts/Items/Skill Items/Misc/RepairDeed.cs rename to Projects/Scripts/Items/Skill Items/Misc/RepairDeed.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/BambooFlute.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/BambooFlute.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/BambooFlute.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/BambooFlute.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/BaseInstrument.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/BaseInstrument.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/BaseInstrument.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/BaseInstrument.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/Drums.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/Drums.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/Drums.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/Drums.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/Harp.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/Harp.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/Harp.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/Harp.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/LapHarp.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/LapHarp.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/LapHarp.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/LapHarp.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/Lute.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/Lute.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/Lute.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/Lute.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/Tambourine.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/Tambourine.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/Tambourine.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/Tambourine.cs diff --git a/Scripts/Items/Skill Items/Musical Instruments/TambourineTassel.cs b/Projects/Scripts/Items/Skill Items/Musical Instruments/TambourineTassel.cs similarity index 100% rename from Scripts/Items/Skill Items/Musical Instruments/TambourineTassel.cs rename to Projects/Scripts/Items/Skill Items/Musical Instruments/TambourineTassel.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/EggBomb.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/EggBomb.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/EggBomb.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/EggBomb.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/Fukiya.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/Fukiya.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/Fukiya.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/Fukiya.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/FukiyaDarts.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/FukiyaDarts.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/FukiyaDarts.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/FukiyaDarts.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/LeatherNinjaBelt.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/LeatherNinjaBelt.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/LeatherNinjaBelt.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/LeatherNinjaBelt.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/NinjaWeapons.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/NinjaWeapons.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/NinjaWeapons.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/NinjaWeapons.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/Shuriken.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/Shuriken.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/Shuriken.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/Shuriken.cs diff --git a/Scripts/Items/Skill Items/Ninjitsu/SmokeBomb.cs b/Projects/Scripts/Items/Skill Items/Ninjitsu/SmokeBomb.cs similarity index 100% rename from Scripts/Items/Skill Items/Ninjitsu/SmokeBomb.cs rename to Projects/Scripts/Items/Skill Items/Ninjitsu/SmokeBomb.cs diff --git a/Scripts/Items/Skill Items/Specialized/GlassblowingBook.cs b/Projects/Scripts/Items/Skill Items/Specialized/GlassblowingBook.cs similarity index 100% rename from Scripts/Items/Skill Items/Specialized/GlassblowingBook.cs rename to Projects/Scripts/Items/Skill Items/Specialized/GlassblowingBook.cs diff --git a/Scripts/Items/Skill Items/Specialized/MasonryBook.cs b/Projects/Scripts/Items/Skill Items/Specialized/MasonryBook.cs similarity index 100% rename from Scripts/Items/Skill Items/Specialized/MasonryBook.cs rename to Projects/Scripts/Items/Skill Items/Specialized/MasonryBook.cs diff --git a/Scripts/Items/Skill Items/Specialized/Sand.cs b/Projects/Scripts/Items/Skill Items/Specialized/Sand.cs similarity index 100% rename from Scripts/Items/Skill Items/Specialized/Sand.cs rename to Projects/Scripts/Items/Skill Items/Specialized/Sand.cs diff --git a/Scripts/Items/Skill Items/Specialized/SandMiningBook.cs b/Projects/Scripts/Items/Skill Items/Specialized/SandMiningBook.cs similarity index 100% rename from Scripts/Items/Skill Items/Specialized/SandMiningBook.cs rename to Projects/Scripts/Items/Skill Items/Specialized/SandMiningBook.cs diff --git a/Scripts/Items/Skill Items/Specialized/StoneMiningBook.cs b/Projects/Scripts/Items/Skill Items/Specialized/StoneMiningBook.cs similarity index 100% rename from Scripts/Items/Skill Items/Specialized/StoneMiningBook.cs rename to Projects/Scripts/Items/Skill Items/Specialized/StoneMiningBook.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlackDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlackDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlackDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlackDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlazeDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlazeDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlazeDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/BlazeDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/CustomHuePicker.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/CustomHuePicker.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/CustomHuePicker.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/CustomHuePicker.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/DyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/FurnitureDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/LeatherDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicClothDyetub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicClothDyetub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicClothDyetub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicClothDyetub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicHuePicker.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicHuePicker.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicHuePicker.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicHuePicker.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicLeatherDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicLeatherDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicLeatherDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/MetallicLeatherDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RewardBlackDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/RunebookDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/SpecialDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/StatuetteDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteClothDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteClothDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteClothDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteClothDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteLeatherDyeTub.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteLeatherDyeTub.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteLeatherDyeTub.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Dyetubs/WhiteLeatherDyeTub.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Misc/Dressform.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Dressform.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Misc/Dressform.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Dressform.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Misc/Dyes.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Dyes.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Misc/Dyes.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Dyes.cs diff --git a/Scripts/Items/Skill Items/Tailor Items/Misc/Scissors.cs b/Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Scissors.cs similarity index 100% rename from Scripts/Items/Skill Items/Tailor Items/Misc/Scissors.cs rename to Projects/Scripts/Items/Skill Items/Tailor Items/Misc/Scissors.cs diff --git a/Scripts/Items/Skill Items/Thief/DisguiseKit.cs b/Projects/Scripts/Items/Skill Items/Thief/DisguiseKit.cs similarity index 100% rename from Scripts/Items/Skill Items/Thief/DisguiseKit.cs rename to Projects/Scripts/Items/Skill Items/Thief/DisguiseKit.cs diff --git a/Scripts/Items/Skill Items/Thief/DisguisePersistance.cs b/Projects/Scripts/Items/Skill Items/Thief/DisguisePersistance.cs similarity index 100% rename from Scripts/Items/Skill Items/Thief/DisguisePersistance.cs rename to Projects/Scripts/Items/Skill Items/Thief/DisguisePersistance.cs diff --git a/Scripts/Items/Skill Items/Thief/LockPick.cs b/Projects/Scripts/Items/Skill Items/Thief/LockPick.cs similarity index 100% rename from Scripts/Items/Skill Items/Thief/LockPick.cs rename to Projects/Scripts/Items/Skill Items/Thief/LockPick.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Axle.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Axle.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Axle.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Axle.cs diff --git a/Scripts/Items/Skill Items/Tinkering/AxleGears.cs b/Projects/Scripts/Items/Skill Items/Tinkering/AxleGears.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/AxleGears.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/AxleGears.cs diff --git a/Scripts/Items/Skill Items/Tinkering/ClockFrame.cs b/Projects/Scripts/Items/Skill Items/Tinkering/ClockFrame.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/ClockFrame.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/ClockFrame.cs diff --git a/Scripts/Items/Skill Items/Tinkering/ClockParts.cs b/Projects/Scripts/Items/Skill Items/Tinkering/ClockParts.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/ClockParts.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/ClockParts.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Clocks.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Clocks.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Clocks.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Clocks.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Gears.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Gears.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Gears.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Gears.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Globe.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Globe.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Globe.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Globe.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Hinge.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Hinge.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Hinge.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Hinge.cs diff --git a/Scripts/Items/Skill Items/Tinkering/SextantParts.cs b/Projects/Scripts/Items/Skill Items/Tinkering/SextantParts.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/SextantParts.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/SextantParts.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Springs.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Springs.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Springs.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Springs.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Spyglass.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Spyglass.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Spyglass.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Spyglass.cs diff --git a/Scripts/Items/Skill Items/Tinkering/Utensils.cs b/Projects/Scripts/Items/Skill Items/Tinkering/Utensils.cs similarity index 100% rename from Scripts/Items/Skill Items/Tinkering/Utensils.cs rename to Projects/Scripts/Items/Skill Items/Tinkering/Utensils.cs diff --git a/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs b/Projects/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/BaseRunicTool.cs rename to Projects/Scripts/Items/Skill Items/Tools/BaseRunicTool.cs diff --git a/Scripts/Items/Skill Items/Tools/BaseTool.cs b/Projects/Scripts/Items/Skill Items/Tools/BaseTool.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/BaseTool.cs rename to Projects/Scripts/Items/Skill Items/Tools/BaseTool.cs diff --git a/Scripts/Items/Skill Items/Tools/Blowpipe.cs b/Projects/Scripts/Items/Skill Items/Tools/Blowpipe.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Blowpipe.cs rename to Projects/Scripts/Items/Skill Items/Tools/Blowpipe.cs diff --git a/Scripts/Items/Skill Items/Tools/DovetailSaw.cs b/Projects/Scripts/Items/Skill Items/Tools/DovetailSaw.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/DovetailSaw.cs rename to Projects/Scripts/Items/Skill Items/Tools/DovetailSaw.cs diff --git a/Scripts/Items/Skill Items/Tools/DrawKnife.cs b/Projects/Scripts/Items/Skill Items/Tools/DrawKnife.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/DrawKnife.cs rename to Projects/Scripts/Items/Skill Items/Tools/DrawKnife.cs diff --git a/Scripts/Items/Skill Items/Tools/FletcherTools.cs b/Projects/Scripts/Items/Skill Items/Tools/FletcherTools.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/FletcherTools.cs rename to Projects/Scripts/Items/Skill Items/Tools/FletcherTools.cs diff --git a/Scripts/Items/Skill Items/Tools/FlourSifter.cs b/Projects/Scripts/Items/Skill Items/Tools/FlourSifter.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/FlourSifter.cs rename to Projects/Scripts/Items/Skill Items/Tools/FlourSifter.cs diff --git a/Scripts/Items/Skill Items/Tools/Froe.cs b/Projects/Scripts/Items/Skill Items/Tools/Froe.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Froe.cs rename to Projects/Scripts/Items/Skill Items/Tools/Froe.cs diff --git a/Scripts/Items/Skill Items/Tools/Hammer.cs b/Projects/Scripts/Items/Skill Items/Tools/Hammer.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Hammer.cs rename to Projects/Scripts/Items/Skill Items/Tools/Hammer.cs diff --git a/Scripts/Items/Skill Items/Tools/Inshave.cs b/Projects/Scripts/Items/Skill Items/Tools/Inshave.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Inshave.cs rename to Projects/Scripts/Items/Skill Items/Tools/Inshave.cs diff --git a/Scripts/Items/Skill Items/Tools/JointingPlane.cs b/Projects/Scripts/Items/Skill Items/Tools/JointingPlane.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/JointingPlane.cs rename to Projects/Scripts/Items/Skill Items/Tools/JointingPlane.cs diff --git a/Scripts/Items/Skill Items/Tools/MalletAndChisel.cs b/Projects/Scripts/Items/Skill Items/Tools/MalletAndChisel.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/MalletAndChisel.cs rename to Projects/Scripts/Items/Skill Items/Tools/MalletAndChisel.cs diff --git a/Scripts/Items/Skill Items/Tools/MapmakersPen.cs b/Projects/Scripts/Items/Skill Items/Tools/MapmakersPen.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/MapmakersPen.cs rename to Projects/Scripts/Items/Skill Items/Tools/MapmakersPen.cs diff --git a/Scripts/Items/Skill Items/Tools/MortarPestle.cs b/Projects/Scripts/Items/Skill Items/Tools/MortarPestle.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/MortarPestle.cs rename to Projects/Scripts/Items/Skill Items/Tools/MortarPestle.cs diff --git a/Scripts/Items/Skill Items/Tools/MouldingPlane.cs b/Projects/Scripts/Items/Skill Items/Tools/MouldingPlane.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/MouldingPlane.cs rename to Projects/Scripts/Items/Skill Items/Tools/MouldingPlane.cs diff --git a/Scripts/Items/Skill Items/Tools/Nails.cs b/Projects/Scripts/Items/Skill Items/Tools/Nails.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Nails.cs rename to Projects/Scripts/Items/Skill Items/Tools/Nails.cs diff --git a/Scripts/Items/Skill Items/Tools/RollingPin.cs b/Projects/Scripts/Items/Skill Items/Tools/RollingPin.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/RollingPin.cs rename to Projects/Scripts/Items/Skill Items/Tools/RollingPin.cs diff --git a/Scripts/Items/Skill Items/Tools/RunicDovetailSaw.cs b/Projects/Scripts/Items/Skill Items/Tools/RunicDovetailSaw.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/RunicDovetailSaw.cs rename to Projects/Scripts/Items/Skill Items/Tools/RunicDovetailSaw.cs diff --git a/Scripts/Items/Skill Items/Tools/RunicFletcherTool.cs b/Projects/Scripts/Items/Skill Items/Tools/RunicFletcherTool.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/RunicFletcherTool.cs rename to Projects/Scripts/Items/Skill Items/Tools/RunicFletcherTool.cs diff --git a/Scripts/Items/Skill Items/Tools/RunicHammer.cs b/Projects/Scripts/Items/Skill Items/Tools/RunicHammer.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/RunicHammer.cs rename to Projects/Scripts/Items/Skill Items/Tools/RunicHammer.cs diff --git a/Scripts/Items/Skill Items/Tools/RunicSewingKit.cs b/Projects/Scripts/Items/Skill Items/Tools/RunicSewingKit.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/RunicSewingKit.cs rename to Projects/Scripts/Items/Skill Items/Tools/RunicSewingKit.cs diff --git a/Scripts/Items/Skill Items/Tools/Saw.cs b/Projects/Scripts/Items/Skill Items/Tools/Saw.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Saw.cs rename to Projects/Scripts/Items/Skill Items/Tools/Saw.cs diff --git a/Scripts/Items/Skill Items/Tools/Scorp.cs b/Projects/Scripts/Items/Skill Items/Tools/Scorp.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Scorp.cs rename to Projects/Scripts/Items/Skill Items/Tools/Scorp.cs diff --git a/Scripts/Items/Skill Items/Tools/ScribesPen.cs b/Projects/Scripts/Items/Skill Items/Tools/ScribesPen.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/ScribesPen.cs rename to Projects/Scripts/Items/Skill Items/Tools/ScribesPen.cs diff --git a/Scripts/Items/Skill Items/Tools/SewingKit.cs b/Projects/Scripts/Items/Skill Items/Tools/SewingKit.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/SewingKit.cs rename to Projects/Scripts/Items/Skill Items/Tools/SewingKit.cs diff --git a/Scripts/Items/Skill Items/Tools/Skillet.cs b/Projects/Scripts/Items/Skill Items/Tools/Skillet.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Skillet.cs rename to Projects/Scripts/Items/Skill Items/Tools/Skillet.cs diff --git a/Scripts/Items/Skill Items/Tools/SledgeHammer.cs b/Projects/Scripts/Items/Skill Items/Tools/SledgeHammer.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/SledgeHammer.cs rename to Projects/Scripts/Items/Skill Items/Tools/SledgeHammer.cs diff --git a/Scripts/Items/Skill Items/Tools/SmithHammer.cs b/Projects/Scripts/Items/Skill Items/Tools/SmithHammer.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/SmithHammer.cs rename to Projects/Scripts/Items/Skill Items/Tools/SmithHammer.cs diff --git a/Scripts/Items/Skill Items/Tools/SmoothingPlane.cs b/Projects/Scripts/Items/Skill Items/Tools/SmoothingPlane.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/SmoothingPlane.cs rename to Projects/Scripts/Items/Skill Items/Tools/SmoothingPlane.cs diff --git a/Scripts/Items/Skill Items/Tools/TinkerTools.cs b/Projects/Scripts/Items/Skill Items/Tools/TinkerTools.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/TinkerTools.cs rename to Projects/Scripts/Items/Skill Items/Tools/TinkerTools.cs diff --git a/Scripts/Items/Skill Items/Tools/Tongs.cs b/Projects/Scripts/Items/Skill Items/Tools/Tongs.cs similarity index 100% rename from Scripts/Items/Skill Items/Tools/Tongs.cs rename to Projects/Scripts/Items/Skill Items/Tools/Tongs.cs diff --git a/Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs b/Projects/Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs similarity index 100% rename from Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs rename to Projects/Scripts/Items/Special/11th Year promo/EarringsOfProtection.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicBox.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicBox.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicBox.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicBox.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicGear.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicGear.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicGear.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicGear.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicInfo.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicInfo.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicInfo.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/Dawn's Music Box/DawnsMusicInfo.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/DupresShield.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/DupresShield.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/DupresShield.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/DupresShield.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/FountainOfLife.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/OssianGrimoire.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/OssianGrimoire.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/OssianGrimoire.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/OssianGrimoire.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/QuiverOfInfinity.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/QuiverOfInfinity.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/QuiverOfInfinity.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/QuiverOfInfinity.cs diff --git a/Scripts/Items/Special/8th Anniversary Items/Talismans.cs b/Projects/Scripts/Items/Special/8th Anniversary Items/Talismans.cs similarity index 100% rename from Scripts/Items/Special/8th Anniversary Items/Talismans.cs rename to Projects/Scripts/Items/Special/8th Anniversary Items/Talismans.cs diff --git a/Scripts/Items/Special/AoS Promotional/HoodedShroudOfShadows.cs b/Projects/Scripts/Items/Special/AoS Promotional/HoodedShroudOfShadows.cs similarity index 100% rename from Scripts/Items/Special/AoS Promotional/HoodedShroudOfShadows.cs rename to Projects/Scripts/Items/Special/AoS Promotional/HoodedShroudOfShadows.cs diff --git a/Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs b/Projects/Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs similarity index 100% rename from Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs rename to Projects/Scripts/Items/Special/AoS Promotional/LuckyNecklace.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenArmoire.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenArmoire.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenArmoire.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenArmoire.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenBed.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenBookcase.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenBookcase.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenBookcase.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenBookcase.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenChestOfDrawers.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenChestOfDrawers.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenChestOfDrawers.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenChestOfDrawers.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenCoveredChair.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenCoveredChair.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenCoveredChair.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenCoveredChair.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenFallenChair.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenFallenChair.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenFallenChair.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenFallenChair.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/BrokenVanity.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenVanity.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/BrokenVanity.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/BrokenVanity.cs diff --git a/Scripts/Items/Special/Broken Furniture Collection/StandingBrokenChair.cs b/Projects/Scripts/Items/Special/Broken Furniture Collection/StandingBrokenChair.cs similarity index 100% rename from Scripts/Items/Special/Broken Furniture Collection/StandingBrokenChair.cs rename to Projects/Scripts/Items/Special/Broken Furniture Collection/StandingBrokenChair.cs diff --git a/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/AncientSmithyHammer.cs b/Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/AncientSmithyHammer.cs similarity index 100% rename from Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/AncientSmithyHammer.cs rename to Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/AncientSmithyHammer.cs diff --git a/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/ColoredAnvil.cs b/Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/ColoredAnvil.cs similarity index 100% rename from Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/ColoredAnvil.cs rename to Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/ColoredAnvil.cs diff --git a/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/GlovesOfMining.cs b/Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/GlovesOfMining.cs similarity index 100% rename from Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/GlovesOfMining.cs rename to Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/GlovesOfMining.cs diff --git a/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/PowderOfTemperament.cs b/Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/PowderOfTemperament.cs similarity index 100% rename from Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/PowderOfTemperament.cs rename to Projects/Scripts/Items/Special/Bulk Order Rewards/Blacksmithy/PowderOfTemperament.cs diff --git a/Scripts/Items/Special/Community Collection/JesterHatofChuckles.cs b/Projects/Scripts/Items/Special/Community Collection/JesterHatofChuckles.cs similarity index 100% rename from Scripts/Items/Special/Community Collection/JesterHatofChuckles.cs rename to Projects/Scripts/Items/Special/Community Collection/JesterHatofChuckles.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/AwesomeDisturbingPortrait.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/AwesomeDisturbingPortrait.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/AwesomeDisturbingPortrait.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/AwesomeDisturbingPortrait.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/BedOfNails.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneCouch.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/BoneTable.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneTable.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/BoneTable.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneTable.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/BoneThrone.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/CreepyPortrait.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/CreepyPortrait.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/CreepyPortrait.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/CreepyPortrait.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/DisturbingPortrait.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/DisturbingPortrait.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/DisturbingPortrait.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/DisturbingPortrait.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/HauntedMirror.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/HauntedMirror.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/HauntedMirror.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/HauntedMirror.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieBlue.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieBlue.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/MountedPixieBlue.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieBlue.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieGreen.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieGreen.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/MountedPixieGreen.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieGreen.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieLime.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieLime.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/MountedPixieLime.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieLime.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieOrange.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieOrange.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/MountedPixieOrange.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieOrange.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieWhite.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieWhite.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/MountedPixieWhite.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/MountedPixieWhite.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/SacrificialAltar.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/SacrificialAltar.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/SacrificialAltar.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/SacrificialAltar.cs diff --git a/Scripts/Items/Special/Evil Home Decor Collection/UnsettlingPortrait.cs b/Projects/Scripts/Items/Special/Evil Home Decor Collection/UnsettlingPortrait.cs similarity index 100% rename from Scripts/Items/Special/Evil Home Decor Collection/UnsettlingPortrait.cs rename to Projects/Scripts/Items/Special/Evil Home Decor Collection/UnsettlingPortrait.cs diff --git a/Scripts/Items/Special/Gifts/HearthOfHomeFire.cs b/Projects/Scripts/Items/Special/Gifts/HearthOfHomeFire.cs similarity index 100% rename from Scripts/Items/Special/Gifts/HearthOfHomeFire.cs rename to Projects/Scripts/Items/Special/Gifts/HearthOfHomeFire.cs diff --git a/Scripts/Items/Special/Gifts/HolySword.cs b/Projects/Scripts/Items/Special/Gifts/HolySword.cs similarity index 100% rename from Scripts/Items/Special/Gifts/HolySword.cs rename to Projects/Scripts/Items/Special/Gifts/HolySword.cs diff --git a/Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs b/Projects/Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs similarity index 100% rename from Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs rename to Projects/Scripts/Items/Special/Gifts/LeggingsOfEmbers.cs diff --git a/Scripts/Items/Special/Gifts/RoseOfTrinsic.cs b/Projects/Scripts/Items/Special/Gifts/RoseOfTrinsic.cs similarity index 100% rename from Scripts/Items/Special/Gifts/RoseOfTrinsic.cs rename to Projects/Scripts/Items/Special/Gifts/RoseOfTrinsic.cs diff --git a/Scripts/Items/Special/Gifts/SamuraiHelm.cs b/Projects/Scripts/Items/Special/Gifts/SamuraiHelm.cs similarity index 100% rename from Scripts/Items/Special/Gifts/SamuraiHelm.cs rename to Projects/Scripts/Items/Special/Gifts/SamuraiHelm.cs diff --git a/Scripts/Items/Special/Gifts/ShaminoCrossbow.cs b/Projects/Scripts/Items/Special/Gifts/ShaminoCrossbow.cs similarity index 100% rename from Scripts/Items/Special/Gifts/ShaminoCrossbow.cs rename to Projects/Scripts/Items/Special/Gifts/ShaminoCrossbow.cs diff --git a/Scripts/Items/Special/Gifts/TapestryOfSosaria.cs b/Projects/Scripts/Items/Special/Gifts/TapestryOfSosaria.cs similarity index 100% rename from Scripts/Items/Special/Gifts/TapestryOfSosaria.cs rename to Projects/Scripts/Items/Special/Gifts/TapestryOfSosaria.cs diff --git a/Scripts/Items/Special/Heritage Items/AppleTrunk.cs b/Projects/Scripts/Items/Special/Heritage Items/AppleTrunk.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/AppleTrunk.cs rename to Projects/Scripts/Items/Special/Heritage Items/AppleTrunk.cs diff --git a/Scripts/Items/Special/Heritage Items/BlueDecorativeRug.cs b/Projects/Scripts/Items/Special/Heritage Items/BlueDecorativeRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/BlueDecorativeRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/BlueDecorativeRug.cs diff --git a/Scripts/Items/Special/Heritage Items/BlueFancyRug.cs b/Projects/Scripts/Items/Special/Heritage Items/BlueFancyRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/BlueFancyRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/BlueFancyRug.cs diff --git a/Scripts/Items/Special/Heritage Items/BluePlainRug.cs b/Projects/Scripts/Items/Special/Heritage Items/BluePlainRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/BluePlainRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/BluePlainRug.cs diff --git a/Scripts/Items/Special/Heritage Items/BoilingCauldron.cs b/Projects/Scripts/Items/Special/Heritage Items/BoilingCauldron.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/BoilingCauldron.cs rename to Projects/Scripts/Items/Special/Heritage Items/BoilingCauldron.cs diff --git a/Scripts/Items/Special/Heritage Items/CherryBlossomTree.cs b/Projects/Scripts/Items/Special/Heritage Items/CherryBlossomTree.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/CherryBlossomTree.cs rename to Projects/Scripts/Items/Special/Heritage Items/CherryBlossomTree.cs diff --git a/Scripts/Items/Special/Heritage Items/CherryBlossomTrunk.cs b/Projects/Scripts/Items/Special/Heritage Items/CherryBlossomTrunk.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/CherryBlossomTrunk.cs rename to Projects/Scripts/Items/Special/Heritage Items/CherryBlossomTrunk.cs diff --git a/Scripts/Items/Special/Heritage Items/CinnamonFancyRug.cs b/Projects/Scripts/Items/Special/Heritage Items/CinnamonFancyRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/CinnamonFancyRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/CinnamonFancyRug.cs diff --git a/Scripts/Items/Special/Heritage Items/Curtains.cs b/Projects/Scripts/Items/Special/Heritage Items/Curtains.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Curtains.cs rename to Projects/Scripts/Items/Special/Heritage Items/Curtains.cs diff --git a/Scripts/Items/Special/Heritage Items/Fountain.cs b/Projects/Scripts/Items/Special/Heritage Items/Fountain.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Fountain.cs rename to Projects/Scripts/Items/Special/Heritage Items/Fountain.cs diff --git a/Scripts/Items/Special/Heritage Items/FruitTrees.cs b/Projects/Scripts/Items/Special/Heritage Items/FruitTrees.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/FruitTrees.cs rename to Projects/Scripts/Items/Special/Heritage Items/FruitTrees.cs diff --git a/Scripts/Items/Special/Heritage Items/GoldenDecorativeRug.cs b/Projects/Scripts/Items/Special/Heritage Items/GoldenDecorativeRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/GoldenDecorativeRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/GoldenDecorativeRug.cs diff --git a/Scripts/Items/Special/Heritage Items/Guillotine.cs b/Projects/Scripts/Items/Special/Heritage Items/Guillotine.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Guillotine.cs rename to Projects/Scripts/Items/Special/Heritage Items/Guillotine.cs diff --git a/Scripts/Items/Special/Heritage Items/HangingAxes.cs b/Projects/Scripts/Items/Special/Heritage Items/HangingAxes.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/HangingAxes.cs rename to Projects/Scripts/Items/Special/Heritage Items/HangingAxes.cs diff --git a/Scripts/Items/Special/Heritage Items/HangingSwords.cs b/Projects/Scripts/Items/Special/Heritage Items/HangingSwords.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/HangingSwords.cs rename to Projects/Scripts/Items/Special/Heritage Items/HangingSwords.cs diff --git a/Scripts/Items/Special/Heritage Items/HouseLadder.cs b/Projects/Scripts/Items/Special/Heritage Items/HouseLadder.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/HouseLadder.cs rename to Projects/Scripts/Items/Special/Heritage Items/HouseLadder.cs diff --git a/Scripts/Items/Special/Heritage Items/IronMaiden.cs b/Projects/Scripts/Items/Special/Heritage Items/IronMaiden.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/IronMaiden.cs rename to Projects/Scripts/Items/Special/Heritage Items/IronMaiden.cs diff --git a/Scripts/Items/Special/Heritage Items/LargeFishingNet.cs b/Projects/Scripts/Items/Special/Heritage Items/LargeFishingNet.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/LargeFishingNet.cs rename to Projects/Scripts/Items/Special/Heritage Items/LargeFishingNet.cs diff --git a/Scripts/Items/Special/Heritage Items/PeachTrunk.cs b/Projects/Scripts/Items/Special/Heritage Items/PeachTrunk.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/PeachTrunk.cs rename to Projects/Scripts/Items/Special/Heritage Items/PeachTrunk.cs diff --git a/Scripts/Items/Special/Heritage Items/PinkFancyRug.cs b/Projects/Scripts/Items/Special/Heritage Items/PinkFancyRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/PinkFancyRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/PinkFancyRug.cs diff --git a/Scripts/Items/Special/Heritage Items/RedPlainRug.cs b/Projects/Scripts/Items/Special/Heritage Items/RedPlainRug.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/RedPlainRug.cs rename to Projects/Scripts/Items/Special/Heritage Items/RedPlainRug.cs diff --git a/Scripts/Items/Special/Heritage Items/Scarecrow.cs b/Projects/Scripts/Items/Special/Heritage Items/Scarecrow.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Scarecrow.cs rename to Projects/Scripts/Items/Special/Heritage Items/Scarecrow.cs diff --git a/Scripts/Items/Special/Heritage Items/SmallFishingNet.cs b/Projects/Scripts/Items/Special/Heritage Items/SmallFishingNet.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/SmallFishingNet.cs rename to Projects/Scripts/Items/Special/Heritage Items/SmallFishingNet.cs diff --git a/Scripts/Items/Special/Heritage Items/Statue.cs b/Projects/Scripts/Items/Special/Heritage Items/Statue.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Statue.cs rename to Projects/Scripts/Items/Special/Heritage Items/Statue.cs diff --git a/Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs b/Projects/Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs rename to Projects/Scripts/Items/Special/Heritage Items/SuitOfGoldArmor.cs diff --git a/Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs b/Projects/Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs rename to Projects/Scripts/Items/Special/Heritage Items/SuitOfSilverArmor.cs diff --git a/Scripts/Items/Special/Heritage Items/TableWithBlueCloth.cs b/Projects/Scripts/Items/Special/Heritage Items/TableWithBlueCloth.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/TableWithBlueCloth.cs rename to Projects/Scripts/Items/Special/Heritage Items/TableWithBlueCloth.cs diff --git a/Scripts/Items/Special/Heritage Items/TableWithOrangeCloth.cs b/Projects/Scripts/Items/Special/Heritage Items/TableWithOrangeCloth.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/TableWithOrangeCloth.cs rename to Projects/Scripts/Items/Special/Heritage Items/TableWithOrangeCloth.cs diff --git a/Scripts/Items/Special/Heritage Items/TableWithPurpleCloth.cs b/Projects/Scripts/Items/Special/Heritage Items/TableWithPurpleCloth.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/TableWithPurpleCloth.cs rename to Projects/Scripts/Items/Special/Heritage Items/TableWithPurpleCloth.cs diff --git a/Scripts/Items/Special/Heritage Items/TableWithRedCloth.cs b/Projects/Scripts/Items/Special/Heritage Items/TableWithRedCloth.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/TableWithRedCloth.cs rename to Projects/Scripts/Items/Special/Heritage Items/TableWithRedCloth.cs diff --git a/Scripts/Items/Special/Heritage Items/UnmadeBed.cs b/Projects/Scripts/Items/Special/Heritage Items/UnmadeBed.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/UnmadeBed.cs rename to Projects/Scripts/Items/Special/Heritage Items/UnmadeBed.cs diff --git a/Scripts/Items/Special/Heritage Items/Vanity.cs b/Projects/Scripts/Items/Special/Heritage Items/Vanity.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/Vanity.cs rename to Projects/Scripts/Items/Special/Heritage Items/Vanity.cs diff --git a/Scripts/Items/Special/Heritage Items/WallTorch.cs b/Projects/Scripts/Items/Special/Heritage Items/WallTorch.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/WallTorch.cs rename to Projects/Scripts/Items/Special/Heritage Items/WallTorch.cs diff --git a/Scripts/Items/Special/Heritage Items/WoodenCoffin.cs b/Projects/Scripts/Items/Special/Heritage Items/WoodenCoffin.cs similarity index 100% rename from Scripts/Items/Special/Heritage Items/WoodenCoffin.cs rename to Projects/Scripts/Items/Special/Heritage Items/WoodenCoffin.cs diff --git a/Scripts/Items/Special/HeritageToken.cs b/Projects/Scripts/Items/Special/HeritageToken.cs similarity index 100% rename from Scripts/Items/Special/HeritageToken.cs rename to Projects/Scripts/Items/Special/HeritageToken.cs diff --git a/Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs b/Projects/Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs rename to Projects/Scripts/Items/Special/Holiday/Christmas/HolidayTree.cs diff --git a/Scripts/Items/Special/Holiday/GiftBox.cs b/Projects/Scripts/Items/Special/Holiday/GiftBox.cs similarity index 100% rename from Scripts/Items/Special/Holiday/GiftBox.cs rename to Projects/Scripts/Items/Special/Holiday/GiftBox.cs diff --git a/Scripts/Items/Special/Holiday/GingerBreadHouseDeed.cs b/Projects/Scripts/Items/Special/Holiday/GingerBreadHouseDeed.cs similarity index 100% rename from Scripts/Items/Special/Holiday/GingerBreadHouseDeed.cs rename to Projects/Scripts/Items/Special/Holiday/GingerBreadHouseDeed.cs diff --git a/Scripts/Items/Special/Holiday/HolidayBell.cs b/Projects/Scripts/Items/Special/Holiday/HolidayBell.cs similarity index 100% rename from Scripts/Items/Special/Holiday/HolidayBell.cs rename to Projects/Scripts/Items/Special/Holiday/HolidayBell.cs diff --git a/Scripts/Items/Special/Holiday/HolidayFoods.cs b/Projects/Scripts/Items/Special/Holiday/HolidayFoods.cs similarity index 100% rename from Scripts/Items/Special/Holiday/HolidayFoods.cs rename to Projects/Scripts/Items/Special/Holiday/HolidayFoods.cs diff --git a/Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs b/Projects/Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs similarity index 100% rename from Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs rename to Projects/Scripts/Items/Special/Holiday/HolidayGiftBoxes.cs diff --git a/Scripts/Items/Special/Holiday/HolidayPottedPlant.cs b/Projects/Scripts/Items/Special/Holiday/HolidayPottedPlant.cs similarity index 100% rename from Scripts/Items/Special/Holiday/HolidayPottedPlant.cs rename to Projects/Scripts/Items/Special/Holiday/HolidayPottedPlant.cs diff --git a/Scripts/Items/Special/Holiday/HolidayTimepiece.cs b/Projects/Scripts/Items/Special/Holiday/HolidayTimepiece.cs similarity index 100% rename from Scripts/Items/Special/Holiday/HolidayTimepiece.cs rename to Projects/Scripts/Items/Special/Holiday/HolidayTimepiece.cs diff --git a/Scripts/Items/Special/Holiday/Icecicles.cs b/Projects/Scripts/Items/Special/Holiday/Icecicles.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Icecicles.cs rename to Projects/Scripts/Items/Special/Holiday/Icecicles.cs diff --git a/Scripts/Items/Special/Holiday/IcyPatch.cs b/Projects/Scripts/Items/Special/Holiday/IcyPatch.cs similarity index 100% rename from Scripts/Items/Special/Holiday/IcyPatch.cs rename to Projects/Scripts/Items/Special/Holiday/IcyPatch.cs diff --git a/Scripts/Items/Special/Holiday/PKHolidayStuff.cs b/Projects/Scripts/Items/Special/Holiday/PKHolidayStuff.cs similarity index 100% rename from Scripts/Items/Special/Holiday/PKHolidayStuff.cs rename to Projects/Scripts/Items/Special/Holiday/PKHolidayStuff.cs diff --git a/Scripts/Items/Special/Holiday/Poinsettias.cs b/Projects/Scripts/Items/Special/Holiday/Poinsettias.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Poinsettias.cs rename to Projects/Scripts/Items/Special/Holiday/Poinsettias.cs diff --git a/Scripts/Items/Special/Holiday/SnowGlobes.cs b/Projects/Scripts/Items/Special/Holiday/SnowGlobes.cs similarity index 100% rename from Scripts/Items/Special/Holiday/SnowGlobes.cs rename to Projects/Scripts/Items/Special/Holiday/SnowGlobes.cs diff --git a/Scripts/Items/Special/Holiday/SnowPiles.cs b/Projects/Scripts/Items/Special/Holiday/SnowPiles.cs similarity index 100% rename from Scripts/Items/Special/Holiday/SnowPiles.cs rename to Projects/Scripts/Items/Special/Holiday/SnowPiles.cs diff --git a/Scripts/Items/Special/Holiday/SnowStatue.cs b/Projects/Scripts/Items/Special/Holiday/SnowStatue.cs similarity index 100% rename from Scripts/Items/Special/Holiday/SnowStatue.cs rename to Projects/Scripts/Items/Special/Holiday/SnowStatue.cs diff --git a/Scripts/Items/Special/Holiday/Snowflakes.cs b/Projects/Scripts/Items/Special/Holiday/Snowflakes.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Snowflakes.cs rename to Projects/Scripts/Items/Special/Holiday/Snowflakes.cs diff --git a/Scripts/Items/Special/Holiday/Snowman.cs b/Projects/Scripts/Items/Special/Holiday/Snowman.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Snowman.cs rename to Projects/Scripts/Items/Special/Holiday/Snowman.cs diff --git a/Scripts/Items/Special/Holiday/Stockings.cs b/Projects/Scripts/Items/Special/Holiday/Stockings.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Stockings.cs rename to Projects/Scripts/Items/Special/Holiday/Stockings.cs diff --git a/Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs b/Projects/Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs similarity index 100% rename from Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs rename to Projects/Scripts/Items/Special/Holiday/WinterGiftPackage2003.cs diff --git a/Scripts/Items/Special/Holiday/Wreath.cs b/Projects/Scripts/Items/Special/Holiday/Wreath.cs similarity index 100% rename from Scripts/Items/Special/Holiday/Wreath.cs rename to Projects/Scripts/Items/Special/Holiday/Wreath.cs diff --git a/Scripts/Items/Special/Holiday/WristWatch.cs b/Projects/Scripts/Items/Special/Holiday/WristWatch.cs similarity index 100% rename from Scripts/Items/Special/Holiday/WristWatch.cs rename to Projects/Scripts/Items/Special/Holiday/WristWatch.cs diff --git a/Scripts/Items/Special/House Raffle/HouseRaffleDeed.cs b/Projects/Scripts/Items/Special/House Raffle/HouseRaffleDeed.cs similarity index 100% rename from Scripts/Items/Special/House Raffle/HouseRaffleDeed.cs rename to Projects/Scripts/Items/Special/House Raffle/HouseRaffleDeed.cs diff --git a/Scripts/Items/Special/House Raffle/HouseRaffleManagementGump.cs b/Projects/Scripts/Items/Special/House Raffle/HouseRaffleManagementGump.cs similarity index 100% rename from Scripts/Items/Special/House Raffle/HouseRaffleManagementGump.cs rename to Projects/Scripts/Items/Special/House Raffle/HouseRaffleManagementGump.cs diff --git a/Scripts/Items/Special/House Raffle/HouseRaffleRegion.cs b/Projects/Scripts/Items/Special/House Raffle/HouseRaffleRegion.cs similarity index 100% rename from Scripts/Items/Special/House Raffle/HouseRaffleRegion.cs rename to Projects/Scripts/Items/Special/House Raffle/HouseRaffleRegion.cs diff --git a/Scripts/Items/Special/House Raffle/HouseRaffleStone.cs b/Projects/Scripts/Items/Special/House Raffle/HouseRaffleStone.cs similarity index 100% rename from Scripts/Items/Special/House Raffle/HouseRaffleStone.cs rename to Projects/Scripts/Items/Special/House Raffle/HouseRaffleStone.cs diff --git a/Scripts/Items/Special/ML/BaseImprisonedMobile.cs b/Projects/Scripts/Items/Special/ML/BaseImprisonedMobile.cs similarity index 100% rename from Scripts/Items/Special/ML/BaseImprisonedMobile.cs rename to Projects/Scripts/Items/Special/ML/BaseImprisonedMobile.cs diff --git a/Scripts/Items/Special/ML/GrizzledMareStatuette.cs b/Projects/Scripts/Items/Special/ML/GrizzledMareStatuette.cs similarity index 100% rename from Scripts/Items/Special/ML/GrizzledMareStatuette.cs rename to Projects/Scripts/Items/Special/ML/GrizzledMareStatuette.cs diff --git a/Scripts/Items/Special/ML/MinotaurHedge.cs b/Projects/Scripts/Items/Special/ML/MinotaurHedge.cs similarity index 100% rename from Scripts/Items/Special/ML/MinotaurHedge.cs rename to Projects/Scripts/Items/Special/ML/MinotaurHedge.cs diff --git a/Scripts/Items/Special/ML/TormentedChains.cs b/Projects/Scripts/Items/Special/ML/TormentedChains.cs similarity index 100% rename from Scripts/Items/Special/ML/TormentedChains.cs rename to Projects/Scripts/Items/Special/ML/TormentedChains.cs diff --git a/Scripts/Items/Special/MiniHouses.cs b/Projects/Scripts/Items/Special/MiniHouses.cs similarity index 100% rename from Scripts/Items/Special/MiniHouses.cs rename to Projects/Scripts/Items/Special/MiniHouses.cs diff --git a/Scripts/Items/Special/MonsterStatuette.cs b/Projects/Scripts/Items/Special/MonsterStatuette.cs similarity index 100% rename from Scripts/Items/Special/MonsterStatuette.cs rename to Projects/Scripts/Items/Special/MonsterStatuette.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastBackpack.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastBackpack.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastBackpack.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastBackpack.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastBlood.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastBlood.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastBlood.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastBlood.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastGland.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastGland.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastGland.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastGland.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastHeart.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastHeart.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastHeart.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastHeart.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastInnard.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastInnard.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastInnard.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastInnard.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastMutationCore.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastMutationCore.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastMutationCore.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastMutationCore.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastOrgans.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastOrgans.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastOrgans.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastOrgans.cs diff --git a/Scripts/Items/Special/Mutation Core/PlagueBeastVein.cs b/Projects/Scripts/Items/Special/Mutation Core/PlagueBeastVein.cs similarity index 100% rename from Scripts/Items/Special/Mutation Core/PlagueBeastVein.cs rename to Projects/Scripts/Items/Special/Mutation Core/PlagueBeastVein.cs diff --git a/Scripts/Items/Special/Rares/Containers/BaseWaterContainer.cs b/Projects/Scripts/Items/Special/Rares/Containers/BaseWaterContainer.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/BaseWaterContainer.cs rename to Projects/Scripts/Items/Special/Rares/Containers/BaseWaterContainer.cs diff --git a/Scripts/Items/Special/Rares/Containers/Bucket.cs b/Projects/Scripts/Items/Special/Rares/Containers/Bucket.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/Bucket.cs rename to Projects/Scripts/Items/Special/Rares/Containers/Bucket.cs diff --git a/Scripts/Items/Special/Rares/Containers/ClosedBarrel.cs b/Projects/Scripts/Items/Special/Rares/Containers/ClosedBarrel.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/ClosedBarrel.cs rename to Projects/Scripts/Items/Special/Rares/Containers/ClosedBarrel.cs diff --git a/Scripts/Items/Special/Rares/Containers/UnfinishedBarrel.cs b/Projects/Scripts/Items/Special/Rares/Containers/UnfinishedBarrel.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/UnfinishedBarrel.cs rename to Projects/Scripts/Items/Special/Rares/Containers/UnfinishedBarrel.cs diff --git a/Scripts/Items/Special/Rares/Containers/WaterBarrel.cs b/Projects/Scripts/Items/Special/Rares/Containers/WaterBarrel.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/WaterBarrel.cs rename to Projects/Scripts/Items/Special/Rares/Containers/WaterBarrel.cs diff --git a/Scripts/Items/Special/Rares/Containers/WaterTub.cs b/Projects/Scripts/Items/Special/Rares/Containers/WaterTub.cs similarity index 100% rename from Scripts/Items/Special/Rares/Containers/WaterTub.cs rename to Projects/Scripts/Items/Special/Rares/Containers/WaterTub.cs diff --git a/Scripts/Items/Special/Rares/Daily/DecoRock.cs b/Projects/Scripts/Items/Special/Rares/Daily/DecoRock.cs similarity index 100% rename from Scripts/Items/Special/Rares/Daily/DecoRock.cs rename to Projects/Scripts/Items/Special/Rares/Daily/DecoRock.cs diff --git a/Scripts/Items/Special/Rares/Daily/DecoRock2.cs b/Projects/Scripts/Items/Special/Rares/Daily/DecoRock2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Daily/DecoRock2.cs rename to Projects/Scripts/Items/Special/Rares/Daily/DecoRock2.cs diff --git a/Scripts/Items/Special/Rares/Daily/DecoRocks.cs b/Projects/Scripts/Items/Special/Rares/Daily/DecoRocks.cs similarity index 100% rename from Scripts/Items/Special/Rares/Daily/DecoRocks.cs rename to Projects/Scripts/Items/Special/Rares/Daily/DecoRocks.cs diff --git a/Scripts/Items/Special/Rares/Daily/DecoRocks2.cs b/Projects/Scripts/Items/Special/Rares/Daily/DecoRocks2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Daily/DecoRocks2.cs rename to Projects/Scripts/Items/Special/Rares/Daily/DecoRocks2.cs diff --git a/Scripts/Items/Special/Rares/Flowers/DecoFlower.cs b/Projects/Scripts/Items/Special/Rares/Flowers/DecoFlower.cs similarity index 100% rename from Scripts/Items/Special/Rares/Flowers/DecoFlower.cs rename to Projects/Scripts/Items/Special/Rares/Flowers/DecoFlower.cs diff --git a/Scripts/Items/Special/Rares/Flowers/DecoFlower2.cs b/Projects/Scripts/Items/Special/Rares/Flowers/DecoFlower2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Flowers/DecoFlower2.cs rename to Projects/Scripts/Items/Special/Rares/Flowers/DecoFlower2.cs diff --git a/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic.cs b/Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic.cs similarity index 100% rename from Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic.cs rename to Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic.cs diff --git a/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic2.cs b/Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic2.cs rename to Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic2.cs diff --git a/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic3.cs b/Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic3.cs similarity index 100% rename from Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic3.cs rename to Projects/Scripts/Items/Special/Rares/Flowers/DecoRoseOfTrinsic3.cs diff --git a/Scripts/Items/Special/Rares/Food/BottlesOfLiquor.cs b/Projects/Scripts/Items/Special/Rares/Food/BottlesOfLiquor.cs similarity index 100% rename from Scripts/Items/Special/Rares/Food/BottlesOfLiquor.cs rename to Projects/Scripts/Items/Special/Rares/Food/BottlesOfLiquor.cs diff --git a/Scripts/Items/Special/Rares/Food/Tray2.cs b/Projects/Scripts/Items/Special/Rares/Food/Tray2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Food/Tray2.cs rename to Projects/Scripts/Items/Special/Rares/Food/Tray2.cs diff --git a/Scripts/Items/Special/Rares/Food/Trays.cs b/Projects/Scripts/Items/Special/Rares/Food/Trays.cs similarity index 100% rename from Scripts/Items/Special/Rares/Food/Trays.cs rename to Projects/Scripts/Items/Special/Rares/Food/Trays.cs diff --git a/Scripts/Items/Special/Rares/Furniture/BrokenChair.cs b/Projects/Scripts/Items/Special/Rares/Furniture/BrokenChair.cs similarity index 100% rename from Scripts/Items/Special/Rares/Furniture/BrokenChair.cs rename to Projects/Scripts/Items/Special/Rares/Furniture/BrokenChair.cs diff --git a/Scripts/Items/Special/Rares/GamePieces/Checkers.cs b/Projects/Scripts/Items/Special/Rares/GamePieces/Checkers.cs similarity index 100% rename from Scripts/Items/Special/Rares/GamePieces/Checkers.cs rename to Projects/Scripts/Items/Special/Rares/GamePieces/Checkers.cs diff --git a/Scripts/Items/Special/Rares/GamePieces/Checkers2.cs b/Projects/Scripts/Items/Special/Rares/GamePieces/Checkers2.cs similarity index 100% rename from Scripts/Items/Special/Rares/GamePieces/Checkers2.cs rename to Projects/Scripts/Items/Special/Rares/GamePieces/Checkers2.cs diff --git a/Scripts/Items/Special/Rares/GamePieces/Chessmen.cs b/Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen.cs similarity index 100% rename from Scripts/Items/Special/Rares/GamePieces/Chessmen.cs rename to Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen.cs diff --git a/Scripts/Items/Special/Rares/GamePieces/Chessmen2.cs b/Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen2.cs similarity index 100% rename from Scripts/Items/Special/Rares/GamePieces/Chessmen2.cs rename to Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen2.cs diff --git a/Scripts/Items/Special/Rares/GamePieces/Chessmen3.cs b/Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen3.cs similarity index 100% rename from Scripts/Items/Special/Rares/GamePieces/Chessmen3.cs rename to Projects/Scripts/Items/Special/Rares/GamePieces/Chessmen3.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngot.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngot2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngot2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngots.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngots2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots3.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots3.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngots3.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots3.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots4.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots4.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoGoldIngots4.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoGoldIngots4.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngot.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngot.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngot.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngot.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngot2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngot2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngot2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots3.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots3.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots3.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots3.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots4.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots4.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots4.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots4.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots5.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots5.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots5.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots5.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoIronIngots6.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots6.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoIronIngots6.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoIronIngots6.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngot.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngot2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngot2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngots.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots2.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngots2.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots2.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots3.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots3.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngots3.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots3.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots4.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots4.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngots4.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots4.cs diff --git a/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots5.cs b/Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots5.cs similarity index 100% rename from Scripts/Items/Special/Rares/Ingots/DecoSilverIngots5.cs rename to Projects/Scripts/Items/Special/Rares/Ingots/DecoSilverIngots5.cs diff --git a/Scripts/Items/Special/Rares/Jars/EmptyJars.cs b/Projects/Scripts/Items/Special/Rares/Jars/EmptyJars.cs similarity index 100% rename from Scripts/Items/Special/Rares/Jars/EmptyJars.cs rename to Projects/Scripts/Items/Special/Rares/Jars/EmptyJars.cs diff --git a/Scripts/Items/Special/Rares/Jars/FullJars.cs b/Projects/Scripts/Items/Special/Rares/Jars/FullJars.cs similarity index 100% rename from Scripts/Items/Special/Rares/Jars/FullJars.cs rename to Projects/Scripts/Items/Special/Rares/Jars/FullJars.cs diff --git a/Scripts/Items/Special/Rares/Jars/HalfEmptyJars.cs b/Projects/Scripts/Items/Special/Rares/Jars/HalfEmptyJars.cs similarity index 100% rename from Scripts/Items/Special/Rares/Jars/HalfEmptyJars.cs rename to Projects/Scripts/Items/Special/Rares/Jars/HalfEmptyJars.cs diff --git a/Scripts/Items/Special/Rares/Magic/DecoCrystalBall.cs b/Projects/Scripts/Items/Special/Rares/Magic/DecoCrystalBall.cs similarity index 100% rename from Scripts/Items/Special/Rares/Magic/DecoCrystalBall.cs rename to Projects/Scripts/Items/Special/Rares/Magic/DecoCrystalBall.cs diff --git a/Scripts/Items/Special/Rares/Magic/DecoMagicalCrystal.cs b/Projects/Scripts/Items/Special/Rares/Magic/DecoMagicalCrystal.cs similarity index 100% rename from Scripts/Items/Special/Rares/Magic/DecoMagicalCrystal.cs rename to Projects/Scripts/Items/Special/Rares/Magic/DecoMagicalCrystal.cs diff --git a/Scripts/Items/Special/Rares/Misc/DecoSpittoon.cs b/Projects/Scripts/Items/Special/Rares/Misc/DecoSpittoon.cs similarity index 100% rename from Scripts/Items/Special/Rares/Misc/DecoSpittoon.cs rename to Projects/Scripts/Items/Special/Rares/Misc/DecoSpittoon.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoBlackmoor.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBlackmoor.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoBlackmoor.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBlackmoor.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoBloodspawn.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBloodspawn.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoBloodspawn.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBloodspawn.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoBrimstone.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBrimstone.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoBrimstone.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoBrimstone.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoDragonsBlood2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoEyeOfNewt.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoEyeOfNewt.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoEyeOfNewt.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoEyeOfNewt.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGarlic.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGarlic2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlic2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGarlicBulb2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGinseng.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGinseng2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinseng2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoGinsengRoot2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoMandrake.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoMandrake2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake3.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake3.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoMandrake3.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrake3.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoMandrakeRoot2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoNightshade.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade2.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoNightshade2.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade2.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade3.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade3.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoNightshade3.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoNightshade3.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoObsidian.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoObsidian.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoObsidian.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoObsidian.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoPumice.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoPumice.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoPumice.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoPumice.cs diff --git a/Scripts/Items/Special/Rares/PaganReagents/DecoWyrmsHeart.cs b/Projects/Scripts/Items/Special/Rares/PaganReagents/DecoWyrmsHeart.cs similarity index 100% rename from Scripts/Items/Special/Rares/PaganReagents/DecoWyrmsHeart.cs rename to Projects/Scripts/Items/Special/Rares/PaganReagents/DecoWyrmsHeart.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/Cards.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/Cards.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/Cards.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/Cards.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/Cards2.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/Cards2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/Cards2.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/Cards2.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/Cards3.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/Cards3.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/Cards3.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/Cards3.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/Cards4.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/Cards4.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/Cards4.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/Cards4.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/Cards5.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/Cards5.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/Cards5.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/Cards5.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/PlayingCards.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/PlayingCards.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/PlayingCards.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/PlayingCards.cs diff --git a/Scripts/Items/Special/Rares/PlayingCards/PlayingCards2.cs b/Projects/Scripts/Items/Special/Rares/PlayingCards/PlayingCards2.cs similarity index 100% rename from Scripts/Items/Special/Rares/PlayingCards/PlayingCards2.cs rename to Projects/Scripts/Items/Special/Rares/PlayingCards/PlayingCards2.cs diff --git a/Scripts/Items/Special/Rares/Stables/Bridle.cs b/Projects/Scripts/Items/Special/Rares/Stables/Bridle.cs similarity index 100% rename from Scripts/Items/Special/Rares/Stables/Bridle.cs rename to Projects/Scripts/Items/Special/Rares/Stables/Bridle.cs diff --git a/Scripts/Items/Special/Rares/Stables/Bridle2.cs b/Projects/Scripts/Items/Special/Rares/Stables/Bridle2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Stables/Bridle2.cs rename to Projects/Scripts/Items/Special/Rares/Stables/Bridle2.cs diff --git a/Scripts/Items/Special/Rares/Stables/DecoHay.cs b/Projects/Scripts/Items/Special/Rares/Stables/DecoHay.cs similarity index 100% rename from Scripts/Items/Special/Rares/Stables/DecoHay.cs rename to Projects/Scripts/Items/Special/Rares/Stables/DecoHay.cs diff --git a/Scripts/Items/Special/Rares/Stables/DecoHay2.cs b/Projects/Scripts/Items/Special/Rares/Stables/DecoHay2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Stables/DecoHay2.cs rename to Projects/Scripts/Items/Special/Rares/Stables/DecoHay2.cs diff --git a/Scripts/Items/Special/Rares/Stables/DecoHorseDung.cs b/Projects/Scripts/Items/Special/Rares/Stables/DecoHorseDung.cs similarity index 100% rename from Scripts/Items/Special/Rares/Stables/DecoHorseDung.cs rename to Projects/Scripts/Items/Special/Rares/Stables/DecoHorseDung.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot2.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot2.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoDeckOfTarot2.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot2.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot2.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot2.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot2.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot3.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot3.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot3.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot3.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot4.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot4.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot4.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot4.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot5.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot5.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot5.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot5.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot6.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot6.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot6.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot6.cs diff --git a/Scripts/Items/Special/Rares/TarotCards/DecoTarot7.cs b/Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot7.cs similarity index 100% rename from Scripts/Items/Special/Rares/TarotCards/DecoTarot7.cs rename to Projects/Scripts/Items/Special/Rares/TarotCards/DecoTarot7.cs diff --git a/Scripts/Items/Special/Rares/Tinker/ArrowShafts.cs b/Projects/Scripts/Items/Special/Rares/Tinker/ArrowShafts.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/ArrowShafts.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/ArrowShafts.cs diff --git a/Scripts/Items/Special/Rares/Tinker/CrossbowBolts.cs b/Projects/Scripts/Items/Special/Rares/Tinker/CrossbowBolts.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/CrossbowBolts.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/CrossbowBolts.cs diff --git a/Scripts/Items/Special/Rares/Tinker/EmptyToolKit.cs b/Projects/Scripts/Items/Special/Rares/Tinker/EmptyToolKit.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/EmptyToolKit.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/EmptyToolKit.cs diff --git a/Scripts/Items/Special/Rares/Tinker/EmptyToolKit2.cs b/Projects/Scripts/Items/Special/Rares/Tinker/EmptyToolKit2.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/EmptyToolKit2.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/EmptyToolKit2.cs diff --git a/Scripts/Items/Special/Rares/Tinker/Lockpicks.cs b/Projects/Scripts/Items/Special/Rares/Tinker/Lockpicks.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/Lockpicks.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/Lockpicks.cs diff --git a/Scripts/Items/Special/Rares/Tinker/ToolKit.cs b/Projects/Scripts/Items/Special/Rares/Tinker/ToolKit.cs similarity index 100% rename from Scripts/Items/Special/Rares/Tinker/ToolKit.cs rename to Projects/Scripts/Items/Special/Rares/Tinker/ToolKit.cs diff --git a/Scripts/Items/Special/RewardCake.cs b/Projects/Scripts/Items/Special/RewardCake.cs similarity index 100% rename from Scripts/Items/Special/RewardCake.cs rename to Projects/Scripts/Items/Special/RewardCake.cs diff --git a/Scripts/Items/Special/Solen Items/BagOfSending.cs b/Projects/Scripts/Items/Special/Solen Items/BagOfSending.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/BagOfSending.cs rename to Projects/Scripts/Items/Special/Solen Items/BagOfSending.cs diff --git a/Scripts/Items/Special/Solen Items/BallOfSummoning.cs b/Projects/Scripts/Items/Special/Solen Items/BallOfSummoning.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/BallOfSummoning.cs rename to Projects/Scripts/Items/Special/Solen Items/BallOfSummoning.cs diff --git a/Scripts/Items/Special/Solen Items/BraceletOfBinding.cs b/Projects/Scripts/Items/Special/Solen Items/BraceletOfBinding.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/BraceletOfBinding.cs rename to Projects/Scripts/Items/Special/Solen Items/BraceletOfBinding.cs diff --git a/Scripts/Items/Special/Solen Items/MessageHelper.cs b/Projects/Scripts/Items/Special/Solen Items/MessageHelper.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/MessageHelper.cs rename to Projects/Scripts/Items/Special/Solen Items/MessageHelper.cs diff --git a/Scripts/Items/Special/Solen Items/PowderOfTranslocation.cs b/Projects/Scripts/Items/Special/Solen Items/PowderOfTranslocation.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/PowderOfTranslocation.cs rename to Projects/Scripts/Items/Special/Solen Items/PowderOfTranslocation.cs diff --git a/Scripts/Items/Special/Solen Items/ZoogiFungus.cs b/Projects/Scripts/Items/Special/Solen Items/ZoogiFungus.cs similarity index 100% rename from Scripts/Items/Special/Solen Items/ZoogiFungus.cs rename to Projects/Scripts/Items/Special/Solen Items/ZoogiFungus.cs diff --git a/Scripts/Items/Special/SoulStone.cs b/Projects/Scripts/Items/Special/SoulStone.cs similarity index 100% rename from Scripts/Items/Special/SoulStone.cs rename to Projects/Scripts/Items/Special/SoulStone.cs diff --git a/Scripts/Items/Special/Special Scrolls/PowerScroll.cs b/Projects/Scripts/Items/Special/Special Scrolls/PowerScroll.cs similarity index 100% rename from Scripts/Items/Special/Special Scrolls/PowerScroll.cs rename to Projects/Scripts/Items/Special/Special Scrolls/PowerScroll.cs diff --git a/Scripts/Items/Special/Special Scrolls/ScrollofAlacrity.cs b/Projects/Scripts/Items/Special/Special Scrolls/ScrollofAlacrity.cs similarity index 100% rename from Scripts/Items/Special/Special Scrolls/ScrollofAlacrity.cs rename to Projects/Scripts/Items/Special/Special Scrolls/ScrollofAlacrity.cs diff --git a/Scripts/Items/Special/Special Scrolls/ScrollofTranscendence.cs b/Projects/Scripts/Items/Special/Special Scrolls/ScrollofTranscendence.cs similarity index 100% rename from Scripts/Items/Special/Special Scrolls/ScrollofTranscendence.cs rename to Projects/Scripts/Items/Special/Special Scrolls/ScrollofTranscendence.cs diff --git a/Scripts/Items/Special/Special Scrolls/SpecialScroll.cs b/Projects/Scripts/Items/Special/Special Scrolls/SpecialScroll.cs similarity index 100% rename from Scripts/Items/Special/Special Scrolls/SpecialScroll.cs rename to Projects/Scripts/Items/Special/Special Scrolls/SpecialScroll.cs diff --git a/Scripts/Items/Special/Special Scrolls/StatScroll.cs b/Projects/Scripts/Items/Special/Special Scrolls/StatScroll.cs similarity index 100% rename from Scripts/Items/Special/Special Scrolls/StatScroll.cs rename to Projects/Scripts/Items/Special/Special Scrolls/StatScroll.cs diff --git a/Scripts/Items/Special/Valentines/2007/RedVelvetGiftBox.cs b/Projects/Scripts/Items/Special/Valentines/2007/RedVelvetGiftBox.cs similarity index 100% rename from Scripts/Items/Special/Valentines/2007/RedVelvetGiftBox.cs rename to Projects/Scripts/Items/Special/Valentines/2007/RedVelvetGiftBox.cs diff --git a/Scripts/Items/Special/Valentines/2007/RoseInAVase.cs b/Projects/Scripts/Items/Special/Valentines/2007/RoseInAVase.cs similarity index 100% rename from Scripts/Items/Special/Valentines/2007/RoseInAVase.cs rename to Projects/Scripts/Items/Special/Valentines/2007/RoseInAVase.cs diff --git a/Scripts/Items/Special/Valentines/2007/ValentinesCard.cs b/Projects/Scripts/Items/Special/Valentines/2007/ValentinesCard.cs similarity index 100% rename from Scripts/Items/Special/Valentines/2007/ValentinesCard.cs rename to Projects/Scripts/Items/Special/Valentines/2007/ValentinesCard.cs diff --git a/Scripts/Items/Special/Veteran Rewards/AnkhOfSacrifice.cs b/Projects/Scripts/Items/Special/Veteran Rewards/AnkhOfSacrifice.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/AnkhOfSacrifice.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/AnkhOfSacrifice.cs diff --git a/Scripts/Items/Special/Veteran Rewards/Banner.cs b/Projects/Scripts/Items/Special/Veteran Rewards/Banner.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/Banner.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/Banner.cs diff --git a/Scripts/Items/Special/Veteran Rewards/BloodyPentagram.cs b/Projects/Scripts/Items/Special/Veteran Rewards/BloodyPentagram.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/BloodyPentagram.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/BloodyPentagram.cs diff --git a/Scripts/Items/Special/Veteran Rewards/Brazier.cs b/Projects/Scripts/Items/Special/Veteran Rewards/Brazier.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/Brazier.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/Brazier.cs diff --git a/Scripts/Items/Special/Veteran Rewards/Cannon.cs b/Projects/Scripts/Items/Special/Veteran Rewards/Cannon.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/Cannon.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/Cannon.cs diff --git a/Scripts/Items/Special/Veteran Rewards/CommodityDeedBox.cs b/Projects/Scripts/Items/Special/Veteran Rewards/CommodityDeedBox.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/CommodityDeedBox.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/CommodityDeedBox.cs diff --git a/Scripts/Items/Special/Veteran Rewards/ContestMiniHouse.cs b/Projects/Scripts/Items/Special/Veteran Rewards/ContestMiniHouse.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/ContestMiniHouse.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/ContestMiniHouse.cs diff --git a/Scripts/Items/Special/Veteran Rewards/DecorativeShield.cs b/Projects/Scripts/Items/Special/Veteran Rewards/DecorativeShield.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/DecorativeShield.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/DecorativeShield.cs diff --git a/Scripts/Items/Special/Veteran Rewards/FlamingHead.cs b/Projects/Scripts/Items/Special/Veteran Rewards/FlamingHead.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/FlamingHead.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/FlamingHead.cs diff --git a/Scripts/Items/Special/Veteran Rewards/HangingSkeleton.cs b/Projects/Scripts/Items/Special/Veteran Rewards/HangingSkeleton.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/HangingSkeleton.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/HangingSkeleton.cs diff --git a/Scripts/Items/Special/Veteran Rewards/MiningCart.cs b/Projects/Scripts/Items/Special/Veteran Rewards/MiningCart.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/MiningCart.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/MiningCart.cs diff --git a/Scripts/Items/Special/Veteran Rewards/MinotaurStatue.cs b/Projects/Scripts/Items/Special/Veteran Rewards/MinotaurStatue.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/MinotaurStatue.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/MinotaurStatue.cs diff --git a/Scripts/Items/Special/Veteran Rewards/PottedCactus.cs b/Projects/Scripts/Items/Special/Veteran Rewards/PottedCactus.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/PottedCactus.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/PottedCactus.cs diff --git a/Scripts/Items/Special/Veteran Rewards/StoneAnkh.cs b/Projects/Scripts/Items/Special/Veteran Rewards/StoneAnkh.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/StoneAnkh.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/StoneAnkh.cs diff --git a/Scripts/Items/Special/Veteran Rewards/TreeStump.cs b/Projects/Scripts/Items/Special/Veteran Rewards/TreeStump.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/TreeStump.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/TreeStump.cs diff --git a/Scripts/Items/Special/Veteran Rewards/WallBanner.cs b/Projects/Scripts/Items/Special/Veteran Rewards/WallBanner.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/WallBanner.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/WallBanner.cs diff --git a/Scripts/Items/Special/Veteran Rewards/WeaponEngravingTool.cs b/Projects/Scripts/Items/Special/Veteran Rewards/WeaponEngravingTool.cs similarity index 100% rename from Scripts/Items/Special/Veteran Rewards/WeaponEngravingTool.cs rename to Projects/Scripts/Items/Special/Veteran Rewards/WeaponEngravingTool.cs diff --git a/Scripts/Items/Suits/AdminRobe.cs b/Projects/Scripts/Items/Suits/AdminRobe.cs similarity index 100% rename from Scripts/Items/Suits/AdminRobe.cs rename to Projects/Scripts/Items/Suits/AdminRobe.cs diff --git a/Scripts/Items/Suits/BaseSuit.cs b/Projects/Scripts/Items/Suits/BaseSuit.cs similarity index 100% rename from Scripts/Items/Suits/BaseSuit.cs rename to Projects/Scripts/Items/Suits/BaseSuit.cs diff --git a/Scripts/Items/Suits/CounselorRobe.cs b/Projects/Scripts/Items/Suits/CounselorRobe.cs similarity index 100% rename from Scripts/Items/Suits/CounselorRobe.cs rename to Projects/Scripts/Items/Suits/CounselorRobe.cs diff --git a/Scripts/Items/Suits/DeathShroud.cs b/Projects/Scripts/Items/Suits/DeathShroud.cs similarity index 100% rename from Scripts/Items/Suits/DeathShroud.cs rename to Projects/Scripts/Items/Suits/DeathShroud.cs diff --git a/Scripts/Items/Suits/DupreSuit.cs b/Projects/Scripts/Items/Suits/DupreSuit.cs similarity index 100% rename from Scripts/Items/Suits/DupreSuit.cs rename to Projects/Scripts/Items/Suits/DupreSuit.cs diff --git a/Scripts/Items/Suits/GMRobe.cs b/Projects/Scripts/Items/Suits/GMRobe.cs similarity index 100% rename from Scripts/Items/Suits/GMRobe.cs rename to Projects/Scripts/Items/Suits/GMRobe.cs diff --git a/Scripts/Items/Suits/LordBlackthorneSuit.cs b/Projects/Scripts/Items/Suits/LordBlackthorneSuit.cs similarity index 100% rename from Scripts/Items/Suits/LordBlackthorneSuit.cs rename to Projects/Scripts/Items/Suits/LordBlackthorneSuit.cs diff --git a/Scripts/Items/Suits/LordBritishSuit.cs b/Projects/Scripts/Items/Suits/LordBritishSuit.cs similarity index 100% rename from Scripts/Items/Suits/LordBritishSuit.cs rename to Projects/Scripts/Items/Suits/LordBritishSuit.cs diff --git a/Scripts/Items/Suits/SeerRobe.cs b/Projects/Scripts/Items/Suits/SeerRobe.cs similarity index 100% rename from Scripts/Items/Suits/SeerRobe.cs rename to Projects/Scripts/Items/Suits/SeerRobe.cs diff --git a/Scripts/Items/Talismans/BaseTalisman.cs b/Projects/Scripts/Items/Talismans/BaseTalisman.cs similarity index 100% rename from Scripts/Items/Talismans/BaseTalisman.cs rename to Projects/Scripts/Items/Talismans/BaseTalisman.cs diff --git a/Scripts/Items/Talismans/Items/EnchantedSwitch.cs b/Projects/Scripts/Items/Talismans/Items/EnchantedSwitch.cs similarity index 100% rename from Scripts/Items/Talismans/Items/EnchantedSwitch.cs rename to Projects/Scripts/Items/Talismans/Items/EnchantedSwitch.cs diff --git a/Scripts/Items/Talismans/Items/HollowPrism.cs b/Projects/Scripts/Items/Talismans/Items/HollowPrism.cs similarity index 100% rename from Scripts/Items/Talismans/Items/HollowPrism.cs rename to Projects/Scripts/Items/Talismans/Items/HollowPrism.cs diff --git a/Scripts/Items/Talismans/Items/JeweledFiligree.cs b/Projects/Scripts/Items/Talismans/Items/JeweledFiligree.cs similarity index 100% rename from Scripts/Items/Talismans/Items/JeweledFiligree.cs rename to Projects/Scripts/Items/Talismans/Items/JeweledFiligree.cs diff --git a/Scripts/Items/Talismans/Items/RunedPrism.cs b/Projects/Scripts/Items/Talismans/Items/RunedPrism.cs similarity index 100% rename from Scripts/Items/Talismans/Items/RunedPrism.cs rename to Projects/Scripts/Items/Talismans/Items/RunedPrism.cs diff --git a/Scripts/Items/Talismans/Items/RunedSwitch.cs b/Projects/Scripts/Items/Talismans/Items/RunedSwitch.cs similarity index 100% rename from Scripts/Items/Talismans/Items/RunedSwitch.cs rename to Projects/Scripts/Items/Talismans/Items/RunedSwitch.cs diff --git a/Scripts/Items/Talismans/RandomTalisman.cs b/Projects/Scripts/Items/Talismans/RandomTalisman.cs similarity index 100% rename from Scripts/Items/Talismans/RandomTalisman.cs rename to Projects/Scripts/Items/Talismans/RandomTalisman.cs diff --git a/Scripts/Items/Talismans/TalismanAttribute.cs b/Projects/Scripts/Items/Talismans/TalismanAttribute.cs similarity index 100% rename from Scripts/Items/Talismans/TalismanAttribute.cs rename to Projects/Scripts/Items/Talismans/TalismanAttribute.cs diff --git a/Scripts/Items/Talismans/TalismanSlayer.cs b/Projects/Scripts/Items/Talismans/TalismanSlayer.cs similarity index 100% rename from Scripts/Items/Talismans/TalismanSlayer.cs rename to Projects/Scripts/Items/Talismans/TalismanSlayer.cs diff --git a/Scripts/Items/Talismans/TalismanSummons.cs b/Projects/Scripts/Items/Talismans/TalismanSummons.cs similarity index 100% rename from Scripts/Items/Talismans/TalismanSummons.cs rename to Projects/Scripts/Items/Talismans/TalismanSummons.cs diff --git a/Scripts/Items/Traps/BaseTrap.cs b/Projects/Scripts/Items/Traps/BaseTrap.cs similarity index 100% rename from Scripts/Items/Traps/BaseTrap.cs rename to Projects/Scripts/Items/Traps/BaseTrap.cs diff --git a/Scripts/Items/Traps/FireColumnTrap.cs b/Projects/Scripts/Items/Traps/FireColumnTrap.cs similarity index 100% rename from Scripts/Items/Traps/FireColumnTrap.cs rename to Projects/Scripts/Items/Traps/FireColumnTrap.cs diff --git a/Scripts/Items/Traps/FlameSpurtTrap.cs b/Projects/Scripts/Items/Traps/FlameSpurtTrap.cs similarity index 100% rename from Scripts/Items/Traps/FlameSpurtTrap.cs rename to Projects/Scripts/Items/Traps/FlameSpurtTrap.cs diff --git a/Scripts/Items/Traps/GasTrap.cs b/Projects/Scripts/Items/Traps/GasTrap.cs similarity index 100% rename from Scripts/Items/Traps/GasTrap.cs rename to Projects/Scripts/Items/Traps/GasTrap.cs diff --git a/Scripts/Items/Traps/GiantSpikeTrap.cs b/Projects/Scripts/Items/Traps/GiantSpikeTrap.cs similarity index 100% rename from Scripts/Items/Traps/GiantSpikeTrap.cs rename to Projects/Scripts/Items/Traps/GiantSpikeTrap.cs diff --git a/Scripts/Items/Traps/MushroomTrap.cs b/Projects/Scripts/Items/Traps/MushroomTrap.cs similarity index 100% rename from Scripts/Items/Traps/MushroomTrap.cs rename to Projects/Scripts/Items/Traps/MushroomTrap.cs diff --git a/Scripts/Items/Traps/SawTrap.cs b/Projects/Scripts/Items/Traps/SawTrap.cs similarity index 100% rename from Scripts/Items/Traps/SawTrap.cs rename to Projects/Scripts/Items/Traps/SawTrap.cs diff --git a/Scripts/Items/Traps/SpikeTrap.cs b/Projects/Scripts/Items/Traps/SpikeTrap.cs similarity index 100% rename from Scripts/Items/Traps/SpikeTrap.cs rename to Projects/Scripts/Items/Traps/SpikeTrap.cs diff --git a/Scripts/Items/Traps/StoneFaceTrap.cs b/Projects/Scripts/Items/Traps/StoneFaceTrap.cs similarity index 100% rename from Scripts/Items/Traps/StoneFaceTrap.cs rename to Projects/Scripts/Items/Traps/StoneFaceTrap.cs diff --git a/Scripts/Items/TreasureChests/TreasureChestLevel1.cs b/Projects/Scripts/Items/TreasureChests/TreasureChestLevel1.cs similarity index 100% rename from Scripts/Items/TreasureChests/TreasureChestLevel1.cs rename to Projects/Scripts/Items/TreasureChests/TreasureChestLevel1.cs diff --git a/Scripts/Items/TreasureChests/TreasureChestLevel2.cs b/Projects/Scripts/Items/TreasureChests/TreasureChestLevel2.cs similarity index 100% rename from Scripts/Items/TreasureChests/TreasureChestLevel2.cs rename to Projects/Scripts/Items/TreasureChests/TreasureChestLevel2.cs diff --git a/Scripts/Items/TreasureChests/TreasureChestLevel3.cs b/Projects/Scripts/Items/TreasureChests/TreasureChestLevel3.cs similarity index 100% rename from Scripts/Items/TreasureChests/TreasureChestLevel3.cs rename to Projects/Scripts/Items/TreasureChests/TreasureChestLevel3.cs diff --git a/Scripts/Items/TreasureChests/TreasureChestLevel4.cs b/Projects/Scripts/Items/TreasureChests/TreasureChestLevel4.cs similarity index 100% rename from Scripts/Items/TreasureChests/TreasureChestLevel4.cs rename to Projects/Scripts/Items/TreasureChests/TreasureChestLevel4.cs diff --git a/Scripts/Items/Wands/BaseWand.cs b/Projects/Scripts/Items/Wands/BaseWand.cs similarity index 100% rename from Scripts/Items/Wands/BaseWand.cs rename to Projects/Scripts/Items/Wands/BaseWand.cs diff --git a/Scripts/Items/Wands/ClumsyWand.cs b/Projects/Scripts/Items/Wands/ClumsyWand.cs similarity index 100% rename from Scripts/Items/Wands/ClumsyWand.cs rename to Projects/Scripts/Items/Wands/ClumsyWand.cs diff --git a/Scripts/Items/Wands/FeebleWand.cs b/Projects/Scripts/Items/Wands/FeebleWand.cs similarity index 100% rename from Scripts/Items/Wands/FeebleWand.cs rename to Projects/Scripts/Items/Wands/FeebleWand.cs diff --git a/Scripts/Items/Wands/FireballWand.cs b/Projects/Scripts/Items/Wands/FireballWand.cs similarity index 100% rename from Scripts/Items/Wands/FireballWand.cs rename to Projects/Scripts/Items/Wands/FireballWand.cs diff --git a/Scripts/Items/Wands/GreaterHealWand.cs b/Projects/Scripts/Items/Wands/GreaterHealWand.cs similarity index 100% rename from Scripts/Items/Wands/GreaterHealWand.cs rename to Projects/Scripts/Items/Wands/GreaterHealWand.cs diff --git a/Scripts/Items/Wands/HarmWand.cs b/Projects/Scripts/Items/Wands/HarmWand.cs similarity index 100% rename from Scripts/Items/Wands/HarmWand.cs rename to Projects/Scripts/Items/Wands/HarmWand.cs diff --git a/Scripts/Items/Wands/HealWand.cs b/Projects/Scripts/Items/Wands/HealWand.cs similarity index 100% rename from Scripts/Items/Wands/HealWand.cs rename to Projects/Scripts/Items/Wands/HealWand.cs diff --git a/Scripts/Items/Wands/IDWand.cs b/Projects/Scripts/Items/Wands/IDWand.cs similarity index 100% rename from Scripts/Items/Wands/IDWand.cs rename to Projects/Scripts/Items/Wands/IDWand.cs diff --git a/Scripts/Items/Wands/LightningWand.cs b/Projects/Scripts/Items/Wands/LightningWand.cs similarity index 100% rename from Scripts/Items/Wands/LightningWand.cs rename to Projects/Scripts/Items/Wands/LightningWand.cs diff --git a/Scripts/Items/Wands/MagicArrowWand.cs b/Projects/Scripts/Items/Wands/MagicArrowWand.cs similarity index 100% rename from Scripts/Items/Wands/MagicArrowWand.cs rename to Projects/Scripts/Items/Wands/MagicArrowWand.cs diff --git a/Scripts/Items/Wands/ManaDrainWand.cs b/Projects/Scripts/Items/Wands/ManaDrainWand.cs similarity index 100% rename from Scripts/Items/Wands/ManaDrainWand.cs rename to Projects/Scripts/Items/Wands/ManaDrainWand.cs diff --git a/Scripts/Items/Wands/RandomWand.cs b/Projects/Scripts/Items/Wands/RandomWand.cs similarity index 100% rename from Scripts/Items/Wands/RandomWand.cs rename to Projects/Scripts/Items/Wands/RandomWand.cs diff --git a/Scripts/Items/Wands/WandTarget.cs b/Projects/Scripts/Items/Wands/WandTarget.cs similarity index 100% rename from Scripts/Items/Wands/WandTarget.cs rename to Projects/Scripts/Items/Wands/WandTarget.cs diff --git a/Scripts/Items/Wands/WeaknessWand.cs b/Projects/Scripts/Items/Wands/WeaknessWand.cs similarity index 100% rename from Scripts/Items/Wands/WeaknessWand.cs rename to Projects/Scripts/Items/Wands/WeaknessWand.cs diff --git a/Scripts/Items/Weapons/Abilities/ArmorIgnore.cs b/Projects/Scripts/Items/Weapons/Abilities/ArmorIgnore.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/ArmorIgnore.cs rename to Projects/Scripts/Items/Weapons/Abilities/ArmorIgnore.cs diff --git a/Scripts/Items/Weapons/Abilities/ArmorPierce.cs b/Projects/Scripts/Items/Weapons/Abilities/ArmorPierce.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/ArmorPierce.cs rename to Projects/Scripts/Items/Weapons/Abilities/ArmorPierce.cs diff --git a/Scripts/Items/Weapons/Abilities/BleedAttack.cs b/Projects/Scripts/Items/Weapons/Abilities/BleedAttack.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/BleedAttack.cs rename to Projects/Scripts/Items/Weapons/Abilities/BleedAttack.cs diff --git a/Scripts/Items/Weapons/Abilities/Block.cs b/Projects/Scripts/Items/Weapons/Abilities/Block.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/Block.cs rename to Projects/Scripts/Items/Weapons/Abilities/Block.cs diff --git a/Scripts/Items/Weapons/Abilities/ConcussionBlow.cs b/Projects/Scripts/Items/Weapons/Abilities/ConcussionBlow.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/ConcussionBlow.cs rename to Projects/Scripts/Items/Weapons/Abilities/ConcussionBlow.cs diff --git a/Scripts/Items/Weapons/Abilities/CrushingBlow.cs b/Projects/Scripts/Items/Weapons/Abilities/CrushingBlow.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/CrushingBlow.cs rename to Projects/Scripts/Items/Weapons/Abilities/CrushingBlow.cs diff --git a/Scripts/Items/Weapons/Abilities/DefenseMastery.cs b/Projects/Scripts/Items/Weapons/Abilities/DefenseMastery.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/DefenseMastery.cs rename to Projects/Scripts/Items/Weapons/Abilities/DefenseMastery.cs diff --git a/Scripts/Items/Weapons/Abilities/Disarm.cs b/Projects/Scripts/Items/Weapons/Abilities/Disarm.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/Disarm.cs rename to Projects/Scripts/Items/Weapons/Abilities/Disarm.cs diff --git a/Scripts/Items/Weapons/Abilities/Dismount.cs b/Projects/Scripts/Items/Weapons/Abilities/Dismount.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/Dismount.cs rename to Projects/Scripts/Items/Weapons/Abilities/Dismount.cs diff --git a/Scripts/Items/Weapons/Abilities/Disrobe.cs b/Projects/Scripts/Items/Weapons/Abilities/Disrobe.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/Disrobe.cs rename to Projects/Scripts/Items/Weapons/Abilities/Disrobe.cs diff --git a/Scripts/Items/Weapons/Abilities/DoubleShot.cs b/Projects/Scripts/Items/Weapons/Abilities/DoubleShot.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/DoubleShot.cs rename to Projects/Scripts/Items/Weapons/Abilities/DoubleShot.cs diff --git a/Scripts/Items/Weapons/Abilities/DoubleStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/DoubleStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/DoubleStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/DoubleStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/DualWield.cs b/Projects/Scripts/Items/Weapons/Abilities/DualWield.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/DualWield.cs rename to Projects/Scripts/Items/Weapons/Abilities/DualWield.cs diff --git a/Scripts/Items/Weapons/Abilities/Feint.cs b/Projects/Scripts/Items/Weapons/Abilities/Feint.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/Feint.cs rename to Projects/Scripts/Items/Weapons/Abilities/Feint.cs diff --git a/Scripts/Items/Weapons/Abilities/FrenziedWhirlwind.cs b/Projects/Scripts/Items/Weapons/Abilities/FrenziedWhirlwind.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/FrenziedWhirlwind.cs rename to Projects/Scripts/Items/Weapons/Abilities/FrenziedWhirlwind.cs diff --git a/Scripts/Items/Weapons/Abilities/InfectiousStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/InfectiousStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/InfectiousStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/InfectiousStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/MortalStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/MortalStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/MortalStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/MortalStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/MovingShot.cs b/Projects/Scripts/Items/Weapons/Abilities/MovingShot.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/MovingShot.cs rename to Projects/Scripts/Items/Weapons/Abilities/MovingShot.cs diff --git a/Scripts/Items/Weapons/Abilities/NerveStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/NerveStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/NerveStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/NerveStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/ParalyzingBlow.cs b/Projects/Scripts/Items/Weapons/Abilities/ParalyzingBlow.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/ParalyzingBlow.cs rename to Projects/Scripts/Items/Weapons/Abilities/ParalyzingBlow.cs diff --git a/Scripts/Items/Weapons/Abilities/RidingSwipe.cs b/Projects/Scripts/Items/Weapons/Abilities/RidingSwipe.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/RidingSwipe.cs rename to Projects/Scripts/Items/Weapons/Abilities/RidingSwipe.cs diff --git a/Scripts/Items/Weapons/Abilities/ShadowStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/ShadowStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/ShadowStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/ShadowStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/TalonStrike.cs b/Projects/Scripts/Items/Weapons/Abilities/TalonStrike.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/TalonStrike.cs rename to Projects/Scripts/Items/Weapons/Abilities/TalonStrike.cs diff --git a/Scripts/Items/Weapons/Abilities/WeaponAbility.cs b/Projects/Scripts/Items/Weapons/Abilities/WeaponAbility.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/WeaponAbility.cs rename to Projects/Scripts/Items/Weapons/Abilities/WeaponAbility.cs diff --git a/Scripts/Items/Weapons/Abilities/WhirlwindAttack.cs b/Projects/Scripts/Items/Weapons/Abilities/WhirlwindAttack.cs similarity index 100% rename from Scripts/Items/Weapons/Abilities/WhirlwindAttack.cs rename to Projects/Scripts/Items/Weapons/Abilities/WhirlwindAttack.cs diff --git a/Scripts/Items/Weapons/Artifacts/AxeOfTheHeavens.cs b/Projects/Scripts/Items/Weapons/Artifacts/AxeOfTheHeavens.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/AxeOfTheHeavens.cs rename to Projects/Scripts/Items/Weapons/Artifacts/AxeOfTheHeavens.cs diff --git a/Scripts/Items/Weapons/Artifacts/BladeOfInsanity.cs b/Projects/Scripts/Items/Weapons/Artifacts/BladeOfInsanity.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/BladeOfInsanity.cs rename to Projects/Scripts/Items/Weapons/Artifacts/BladeOfInsanity.cs diff --git a/Scripts/Items/Weapons/Artifacts/BladeOfTheRighteous.cs b/Projects/Scripts/Items/Weapons/Artifacts/BladeOfTheRighteous.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/BladeOfTheRighteous.cs rename to Projects/Scripts/Items/Weapons/Artifacts/BladeOfTheRighteous.cs diff --git a/Scripts/Items/Weapons/Artifacts/BoneCrusher.cs b/Projects/Scripts/Items/Weapons/Artifacts/BoneCrusher.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/BoneCrusher.cs rename to Projects/Scripts/Items/Weapons/Artifacts/BoneCrusher.cs diff --git a/Scripts/Items/Weapons/Artifacts/BreathOfTheDead.cs b/Projects/Scripts/Items/Weapons/Artifacts/BreathOfTheDead.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/BreathOfTheDead.cs rename to Projects/Scripts/Items/Weapons/Artifacts/BreathOfTheDead.cs diff --git a/Scripts/Items/Weapons/Artifacts/Frostbringer.cs b/Projects/Scripts/Items/Weapons/Artifacts/Frostbringer.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/Frostbringer.cs rename to Projects/Scripts/Items/Weapons/Artifacts/Frostbringer.cs diff --git a/Scripts/Items/Weapons/Artifacts/LegacyOfTheDreadLord.cs b/Projects/Scripts/Items/Weapons/Artifacts/LegacyOfTheDreadLord.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/LegacyOfTheDreadLord.cs rename to Projects/Scripts/Items/Weapons/Artifacts/LegacyOfTheDreadLord.cs diff --git a/Scripts/Items/Weapons/Artifacts/SerpentsFang.cs b/Projects/Scripts/Items/Weapons/Artifacts/SerpentsFang.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/SerpentsFang.cs rename to Projects/Scripts/Items/Weapons/Artifacts/SerpentsFang.cs diff --git a/Scripts/Items/Weapons/Artifacts/StaffOfTheMagi.cs b/Projects/Scripts/Items/Weapons/Artifacts/StaffOfTheMagi.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/StaffOfTheMagi.cs rename to Projects/Scripts/Items/Weapons/Artifacts/StaffOfTheMagi.cs diff --git a/Scripts/Items/Weapons/Artifacts/TheBeserkersMaul.cs b/Projects/Scripts/Items/Weapons/Artifacts/TheBeserkersMaul.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/TheBeserkersMaul.cs rename to Projects/Scripts/Items/Weapons/Artifacts/TheBeserkersMaul.cs diff --git a/Scripts/Items/Weapons/Artifacts/TheDragonSlayer.cs b/Projects/Scripts/Items/Weapons/Artifacts/TheDragonSlayer.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/TheDragonSlayer.cs rename to Projects/Scripts/Items/Weapons/Artifacts/TheDragonSlayer.cs diff --git a/Scripts/Items/Weapons/Artifacts/TheDryadBow.cs b/Projects/Scripts/Items/Weapons/Artifacts/TheDryadBow.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/TheDryadBow.cs rename to Projects/Scripts/Items/Weapons/Artifacts/TheDryadBow.cs diff --git a/Scripts/Items/Weapons/Artifacts/TheTaskmaster.cs b/Projects/Scripts/Items/Weapons/Artifacts/TheTaskmaster.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/TheTaskmaster.cs rename to Projects/Scripts/Items/Weapons/Artifacts/TheTaskmaster.cs diff --git a/Scripts/Items/Weapons/Artifacts/TitansHammer.cs b/Projects/Scripts/Items/Weapons/Artifacts/TitansHammer.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/TitansHammer.cs rename to Projects/Scripts/Items/Weapons/Artifacts/TitansHammer.cs diff --git a/Scripts/Items/Weapons/Artifacts/ZyronicClaw.cs b/Projects/Scripts/Items/Weapons/Artifacts/ZyronicClaw.cs similarity index 100% rename from Scripts/Items/Weapons/Artifacts/ZyronicClaw.cs rename to Projects/Scripts/Items/Weapons/Artifacts/ZyronicClaw.cs diff --git a/Scripts/Items/Weapons/Axes/Axe.cs b/Projects/Scripts/Items/Weapons/Axes/Axe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/Axe.cs rename to Projects/Scripts/Items/Weapons/Axes/Axe.cs diff --git a/Scripts/Items/Weapons/Axes/BaseAxe.cs b/Projects/Scripts/Items/Weapons/Axes/BaseAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/BaseAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/BaseAxe.cs diff --git a/Scripts/Items/Weapons/Axes/BattleAxe.cs b/Projects/Scripts/Items/Weapons/Axes/BattleAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/BattleAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/BattleAxe.cs diff --git a/Scripts/Items/Weapons/Axes/DoubleAxe.cs b/Projects/Scripts/Items/Weapons/Axes/DoubleAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/DoubleAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/DoubleAxe.cs diff --git a/Scripts/Items/Weapons/Axes/ExecutionersAxe.cs b/Projects/Scripts/Items/Weapons/Axes/ExecutionersAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/ExecutionersAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/ExecutionersAxe.cs diff --git a/Scripts/Items/Weapons/Axes/GuardianAxe.cs b/Projects/Scripts/Items/Weapons/Axes/GuardianAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/GuardianAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/GuardianAxe.cs diff --git a/Scripts/Items/Weapons/Axes/Hatchet.cs b/Projects/Scripts/Items/Weapons/Axes/Hatchet.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/Hatchet.cs rename to Projects/Scripts/Items/Weapons/Axes/Hatchet.cs diff --git a/Scripts/Items/Weapons/Axes/HeavyOrnateAxe.cs b/Projects/Scripts/Items/Weapons/Axes/HeavyOrnateAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/HeavyOrnateAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/HeavyOrnateAxe.cs diff --git a/Scripts/Items/Weapons/Axes/LargeBattleAxe.cs b/Projects/Scripts/Items/Weapons/Axes/LargeBattleAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/LargeBattleAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/LargeBattleAxe.cs diff --git a/Scripts/Items/Weapons/Axes/Pickaxe.cs b/Projects/Scripts/Items/Weapons/Axes/Pickaxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/Pickaxe.cs rename to Projects/Scripts/Items/Weapons/Axes/Pickaxe.cs diff --git a/Scripts/Items/Weapons/Axes/SingingAxe.cs b/Projects/Scripts/Items/Weapons/Axes/SingingAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/SingingAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/SingingAxe.cs diff --git a/Scripts/Items/Weapons/Axes/ThunderingAxe.cs b/Projects/Scripts/Items/Weapons/Axes/ThunderingAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/ThunderingAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/ThunderingAxe.cs diff --git a/Scripts/Items/Weapons/Axes/TwoHandedAxe.cs b/Projects/Scripts/Items/Weapons/Axes/TwoHandedAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/TwoHandedAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/TwoHandedAxe.cs diff --git a/Scripts/Items/Weapons/Axes/WarAxe.cs b/Projects/Scripts/Items/Weapons/Axes/WarAxe.cs similarity index 100% rename from Scripts/Items/Weapons/Axes/WarAxe.cs rename to Projects/Scripts/Items/Weapons/Axes/WarAxe.cs diff --git a/Scripts/Items/Weapons/BaseMeleeWeapon.cs b/Projects/Scripts/Items/Weapons/BaseMeleeWeapon.cs similarity index 100% rename from Scripts/Items/Weapons/BaseMeleeWeapon.cs rename to Projects/Scripts/Items/Weapons/BaseMeleeWeapon.cs diff --git a/Scripts/Items/Weapons/BaseWeapon.cs b/Projects/Scripts/Items/Weapons/BaseWeapon.cs similarity index 100% rename from Scripts/Items/Weapons/BaseWeapon.cs rename to Projects/Scripts/Items/Weapons/BaseWeapon.cs diff --git a/Scripts/Items/Weapons/Fists.cs b/Projects/Scripts/Items/Weapons/Fists.cs similarity index 100% rename from Scripts/Items/Weapons/Fists.cs rename to Projects/Scripts/Items/Weapons/Fists.cs diff --git a/Scripts/Items/Weapons/HitLower.cs b/Projects/Scripts/Items/Weapons/HitLower.cs similarity index 100% rename from Scripts/Items/Weapons/HitLower.cs rename to Projects/Scripts/Items/Weapons/HitLower.cs diff --git a/Scripts/Items/Weapons/Knives/BaseKnife.cs b/Projects/Scripts/Items/Weapons/Knives/BaseKnife.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/BaseKnife.cs rename to Projects/Scripts/Items/Weapons/Knives/BaseKnife.cs diff --git a/Scripts/Items/Weapons/Knives/ButcherKnife.cs b/Projects/Scripts/Items/Weapons/Knives/ButcherKnife.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/ButcherKnife.cs rename to Projects/Scripts/Items/Weapons/Knives/ButcherKnife.cs diff --git a/Scripts/Items/Weapons/Knives/Cleaver.cs b/Projects/Scripts/Items/Weapons/Knives/Cleaver.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/Cleaver.cs rename to Projects/Scripts/Items/Weapons/Knives/Cleaver.cs diff --git a/Scripts/Items/Weapons/Knives/Dagger.cs b/Projects/Scripts/Items/Weapons/Knives/Dagger.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/Dagger.cs rename to Projects/Scripts/Items/Weapons/Knives/Dagger.cs diff --git a/Scripts/Items/Weapons/Knives/SkinningKnife.cs b/Projects/Scripts/Items/Weapons/Knives/SkinningKnife.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/SkinningKnife.cs rename to Projects/Scripts/Items/Weapons/Knives/SkinningKnife.cs diff --git a/Scripts/Items/Weapons/Knives/ThrowingDagger.cs b/Projects/Scripts/Items/Weapons/Knives/ThrowingDagger.cs similarity index 100% rename from Scripts/Items/Weapons/Knives/ThrowingDagger.cs rename to Projects/Scripts/Items/Weapons/Knives/ThrowingDagger.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/BlightGrippedLongbow.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/BlightGrippedLongbow.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/BlightGrippedLongbow.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/BlightGrippedLongbow.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/ColdForgedBlade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/ColdForgedBlade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/ColdForgedBlade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/ColdForgedBlade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/LuminousRuneBlade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/LuminousRuneBlade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/LuminousRuneBlade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/LuminousRuneBlade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/OverseerSunderedBlade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/OverseerSunderedBlade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/OverseerSunderedBlade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/OverseerSunderedBlade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/PhantomStaff.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/PhantomStaff.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/PhantomStaff.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/PhantomStaff.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/RuneCarvingKnife.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/RuneCarvingKnife.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/RuneCarvingKnife.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/RuneCarvingKnife.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/ShardTrasher.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/ShardTrasher.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/ShardTrasher.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/ShardTrasher.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/SilvanisFeywoodBow.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/SilvanisFeywoodBow.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/SilvanisFeywoodBow.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/SilvanisFeywoodBow.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Artifacts/TheNightReaper.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/TheNightReaper.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Artifacts/TheNightReaper.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Artifacts/TheNightReaper.cs diff --git a/Scripts/Items/Weapons/ML Weapons/AssassinSpike.cs b/Projects/Scripts/Items/Weapons/ML Weapons/AssassinSpike.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/AssassinSpike.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/AssassinSpike.cs diff --git a/Scripts/Items/Weapons/ML Weapons/ButchersWarCleaver.cs b/Projects/Scripts/Items/Weapons/ML Weapons/ButchersWarCleaver.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/ButchersWarCleaver.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/ButchersWarCleaver.cs diff --git a/Scripts/Items/Weapons/ML Weapons/DiamondMace.cs b/Projects/Scripts/Items/Weapons/ML Weapons/DiamondMace.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/DiamondMace.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/DiamondMace.cs diff --git a/Scripts/Items/Weapons/ML Weapons/ElvenCompositeLongbow.cs b/Projects/Scripts/Items/Weapons/ML Weapons/ElvenCompositeLongbow.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/ElvenCompositeLongbow.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/ElvenCompositeLongbow.cs diff --git a/Scripts/Items/Weapons/ML Weapons/ElvenMachete.cs b/Projects/Scripts/Items/Weapons/ML Weapons/ElvenMachete.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/ElvenMachete.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/ElvenMachete.cs diff --git a/Scripts/Items/Weapons/ML Weapons/ElvenSpellblade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/ElvenSpellblade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/ElvenSpellblade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/ElvenSpellblade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/Leafblade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/Leafblade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/Leafblade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/Leafblade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/MagicalShortbow.cs b/Projects/Scripts/Items/Weapons/ML Weapons/MagicalShortbow.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/MagicalShortbow.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/MagicalShortbow.cs diff --git a/Scripts/Items/Weapons/ML Weapons/OrnateAxe.cs b/Projects/Scripts/Items/Weapons/ML Weapons/OrnateAxe.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/OrnateAxe.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/OrnateAxe.cs diff --git a/Scripts/Items/Weapons/ML Weapons/RadiantScimitar.cs b/Projects/Scripts/Items/Weapons/ML Weapons/RadiantScimitar.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/RadiantScimitar.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/RadiantScimitar.cs diff --git a/Scripts/Items/Weapons/ML Weapons/RuneBlade.cs b/Projects/Scripts/Items/Weapons/ML Weapons/RuneBlade.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/RuneBlade.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/RuneBlade.cs diff --git a/Scripts/Items/Weapons/ML Weapons/WarCleaver.cs b/Projects/Scripts/Items/Weapons/ML Weapons/WarCleaver.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/WarCleaver.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/WarCleaver.cs diff --git a/Scripts/Items/Weapons/ML Weapons/WildStaff.cs b/Projects/Scripts/Items/Weapons/ML Weapons/WildStaff.cs similarity index 100% rename from Scripts/Items/Weapons/ML Weapons/WildStaff.cs rename to Projects/Scripts/Items/Weapons/ML Weapons/WildStaff.cs diff --git a/Scripts/Items/Weapons/Maces/BaseBashing.cs b/Projects/Scripts/Items/Weapons/Maces/BaseBashing.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/BaseBashing.cs rename to Projects/Scripts/Items/Weapons/Maces/BaseBashing.cs diff --git a/Scripts/Items/Weapons/Maces/Club.cs b/Projects/Scripts/Items/Weapons/Maces/Club.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/Club.cs rename to Projects/Scripts/Items/Weapons/Maces/Club.cs diff --git a/Scripts/Items/Weapons/Maces/EmeraldMace.cs b/Projects/Scripts/Items/Weapons/Maces/EmeraldMace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/EmeraldMace.cs rename to Projects/Scripts/Items/Weapons/Maces/EmeraldMace.cs diff --git a/Scripts/Items/Weapons/Maces/FireworksWand.cs b/Projects/Scripts/Items/Weapons/Maces/FireworksWand.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/FireworksWand.cs rename to Projects/Scripts/Items/Weapons/Maces/FireworksWand.cs diff --git a/Scripts/Items/Weapons/Maces/HammerPick.cs b/Projects/Scripts/Items/Weapons/Maces/HammerPick.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/HammerPick.cs rename to Projects/Scripts/Items/Weapons/Maces/HammerPick.cs diff --git a/Scripts/Items/Weapons/Maces/Mace.cs b/Projects/Scripts/Items/Weapons/Maces/Mace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/Mace.cs rename to Projects/Scripts/Items/Weapons/Maces/Mace.cs diff --git a/Scripts/Items/Weapons/Maces/MagicWand.cs b/Projects/Scripts/Items/Weapons/Maces/MagicWand.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/MagicWand.cs rename to Projects/Scripts/Items/Weapons/Maces/MagicWand.cs diff --git a/Scripts/Items/Weapons/Maces/Maul.cs b/Projects/Scripts/Items/Weapons/Maces/Maul.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/Maul.cs rename to Projects/Scripts/Items/Weapons/Maces/Maul.cs diff --git a/Scripts/Items/Weapons/Maces/RubyMace.cs b/Projects/Scripts/Items/Weapons/Maces/RubyMace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/RubyMace.cs rename to Projects/Scripts/Items/Weapons/Maces/RubyMace.cs diff --git a/Scripts/Items/Weapons/Maces/SapphireMace.cs b/Projects/Scripts/Items/Weapons/Maces/SapphireMace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/SapphireMace.cs rename to Projects/Scripts/Items/Weapons/Maces/SapphireMace.cs diff --git a/Scripts/Items/Weapons/Maces/Scepter.cs b/Projects/Scripts/Items/Weapons/Maces/Scepter.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/Scepter.cs rename to Projects/Scripts/Items/Weapons/Maces/Scepter.cs diff --git a/Scripts/Items/Weapons/Maces/SilverEtchedMace.cs b/Projects/Scripts/Items/Weapons/Maces/SilverEtchedMace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/SilverEtchedMace.cs rename to Projects/Scripts/Items/Weapons/Maces/SilverEtchedMace.cs diff --git a/Scripts/Items/Weapons/Maces/WarHammer.cs b/Projects/Scripts/Items/Weapons/Maces/WarHammer.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/WarHammer.cs rename to Projects/Scripts/Items/Weapons/Maces/WarHammer.cs diff --git a/Scripts/Items/Weapons/Maces/WarMace.cs b/Projects/Scripts/Items/Weapons/Maces/WarMace.cs similarity index 100% rename from Scripts/Items/Weapons/Maces/WarMace.cs rename to Projects/Scripts/Items/Weapons/Maces/WarMace.cs diff --git a/Scripts/Items/Weapons/PoleArms/Bardiche.cs b/Projects/Scripts/Items/Weapons/PoleArms/Bardiche.cs similarity index 100% rename from Scripts/Items/Weapons/PoleArms/Bardiche.cs rename to Projects/Scripts/Items/Weapons/PoleArms/Bardiche.cs diff --git a/Scripts/Items/Weapons/PoleArms/BasePoleArm.cs b/Projects/Scripts/Items/Weapons/PoleArms/BasePoleArm.cs similarity index 100% rename from Scripts/Items/Weapons/PoleArms/BasePoleArm.cs rename to Projects/Scripts/Items/Weapons/PoleArms/BasePoleArm.cs diff --git a/Scripts/Items/Weapons/PoleArms/Halberd.cs b/Projects/Scripts/Items/Weapons/PoleArms/Halberd.cs similarity index 100% rename from Scripts/Items/Weapons/PoleArms/Halberd.cs rename to Projects/Scripts/Items/Weapons/PoleArms/Halberd.cs diff --git a/Scripts/Items/Weapons/PoleArms/Scythe.cs b/Projects/Scripts/Items/Weapons/PoleArms/Scythe.cs similarity index 100% rename from Scripts/Items/Weapons/PoleArms/Scythe.cs rename to Projects/Scripts/Items/Weapons/PoleArms/Scythe.cs diff --git a/Scripts/Items/Weapons/Ranged/AssassinsShortbow.cs b/Projects/Scripts/Items/Weapons/Ranged/AssassinsShortbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/AssassinsShortbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/AssassinsShortbow.cs diff --git a/Scripts/Items/Weapons/Ranged/BarbedLongbow.cs b/Projects/Scripts/Items/Weapons/Ranged/BarbedLongbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/BarbedLongbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/BarbedLongbow.cs diff --git a/Scripts/Items/Weapons/Ranged/BaseRanged.cs b/Projects/Scripts/Items/Weapons/Ranged/BaseRanged.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/BaseRanged.cs rename to Projects/Scripts/Items/Weapons/Ranged/BaseRanged.cs diff --git a/Scripts/Items/Weapons/Ranged/Bow.cs b/Projects/Scripts/Items/Weapons/Ranged/Bow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/Bow.cs rename to Projects/Scripts/Items/Weapons/Ranged/Bow.cs diff --git a/Scripts/Items/Weapons/Ranged/CompositeBow.cs b/Projects/Scripts/Items/Weapons/Ranged/CompositeBow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/CompositeBow.cs rename to Projects/Scripts/Items/Weapons/Ranged/CompositeBow.cs diff --git a/Scripts/Items/Weapons/Ranged/Crossbow.cs b/Projects/Scripts/Items/Weapons/Ranged/Crossbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/Crossbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/Crossbow.cs diff --git a/Scripts/Items/Weapons/Ranged/FrozenLongbow.cs b/Projects/Scripts/Items/Weapons/Ranged/FrozenLongbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/FrozenLongbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/FrozenLongbow.cs diff --git a/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs b/Projects/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/HeavyCrossbow.cs diff --git a/Scripts/Items/Weapons/Ranged/JukaBow.cs b/Projects/Scripts/Items/Weapons/Ranged/JukaBow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/JukaBow.cs rename to Projects/Scripts/Items/Weapons/Ranged/JukaBow.cs diff --git a/Scripts/Items/Weapons/Ranged/LightweightShortbow.cs b/Projects/Scripts/Items/Weapons/Ranged/LightweightShortbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/LightweightShortbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/LightweightShortbow.cs diff --git a/Scripts/Items/Weapons/Ranged/LongbowOfMight.cs b/Projects/Scripts/Items/Weapons/Ranged/LongbowOfMight.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/LongbowOfMight.cs rename to Projects/Scripts/Items/Weapons/Ranged/LongbowOfMight.cs diff --git a/Scripts/Items/Weapons/Ranged/MysticalShortbow.cs b/Projects/Scripts/Items/Weapons/Ranged/MysticalShortbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/MysticalShortbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/MysticalShortbow.cs diff --git a/Scripts/Items/Weapons/Ranged/RangersShortbow.cs b/Projects/Scripts/Items/Weapons/Ranged/RangersShortbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/RangersShortbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/RangersShortbow.cs diff --git a/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs b/Projects/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/RepeatingCrossbow.cs diff --git a/Scripts/Items/Weapons/Ranged/SlayerLongbow.cs b/Projects/Scripts/Items/Weapons/Ranged/SlayerLongbow.cs similarity index 100% rename from Scripts/Items/Weapons/Ranged/SlayerLongbow.cs rename to Projects/Scripts/Items/Weapons/Ranged/SlayerLongbow.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Bokuto.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Bokuto.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Bokuto.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Bokuto.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Daisho.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Daisho.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Daisho.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Daisho.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Kama.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Kama.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Kama.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Kama.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Lajatang.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Lajatang.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Lajatang.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Lajatang.cs diff --git a/Scripts/Items/Weapons/SE Weapons/NoDachi.cs b/Projects/Scripts/Items/Weapons/SE Weapons/NoDachi.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/NoDachi.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/NoDachi.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Nunchaku.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Nunchaku.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Nunchaku.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Nunchaku.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Sai.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Sai.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Sai.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Sai.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Tekagi.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Tekagi.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Tekagi.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Tekagi.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Tessen.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Tessen.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Tessen.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Tessen.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Tetsubo.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Tetsubo.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Tetsubo.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Tetsubo.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Wakizashi.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Wakizashi.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Wakizashi.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Wakizashi.cs diff --git a/Scripts/Items/Weapons/SE Weapons/Yumi.cs b/Projects/Scripts/Items/Weapons/SE Weapons/Yumi.cs similarity index 100% rename from Scripts/Items/Weapons/SE Weapons/Yumi.cs rename to Projects/Scripts/Items/Weapons/SE Weapons/Yumi.cs diff --git a/Scripts/Items/Weapons/SlayerEntry.cs b/Projects/Scripts/Items/Weapons/SlayerEntry.cs similarity index 100% rename from Scripts/Items/Weapons/SlayerEntry.cs rename to Projects/Scripts/Items/Weapons/SlayerEntry.cs diff --git a/Scripts/Items/Weapons/SlayerGroup.cs b/Projects/Scripts/Items/Weapons/SlayerGroup.cs similarity index 100% rename from Scripts/Items/Weapons/SlayerGroup.cs rename to Projects/Scripts/Items/Weapons/SlayerGroup.cs diff --git a/Scripts/Items/Weapons/SlayerName.cs b/Projects/Scripts/Items/Weapons/SlayerName.cs similarity index 100% rename from Scripts/Items/Weapons/SlayerName.cs rename to Projects/Scripts/Items/Weapons/SlayerName.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/BaseSpear.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/BaseSpear.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/BaseSpear.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/BaseSpear.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/BladedStaff.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/BladedStaff.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/BladedStaff.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/BladedStaff.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/DoubleBladedStaff.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/DoubleBladedStaff.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/DoubleBladedStaff.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/DoubleBladedStaff.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/Pike.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/Pike.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/Pike.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/Pike.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/Pitchfork.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/Pitchfork.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/Pitchfork.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/Pitchfork.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/ShortSpear.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/ShortSpear.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/ShortSpear.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/ShortSpear.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/Spear.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/Spear.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/Spear.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/Spear.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/TribalSpear.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/TribalSpear.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/TribalSpear.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/TribalSpear.cs diff --git a/Scripts/Items/Weapons/SpearsAndForks/WarFork.cs b/Projects/Scripts/Items/Weapons/SpearsAndForks/WarFork.cs similarity index 100% rename from Scripts/Items/Weapons/SpearsAndForks/WarFork.cs rename to Projects/Scripts/Items/Weapons/SpearsAndForks/WarFork.cs diff --git a/Scripts/Items/Weapons/Staves/BaseStaff.cs b/Projects/Scripts/Items/Weapons/Staves/BaseStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/BaseStaff.cs rename to Projects/Scripts/Items/Weapons/Staves/BaseStaff.cs diff --git a/Scripts/Items/Weapons/Staves/BlackStaff.cs b/Projects/Scripts/Items/Weapons/Staves/BlackStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/BlackStaff.cs rename to Projects/Scripts/Items/Weapons/Staves/BlackStaff.cs diff --git a/Scripts/Items/Weapons/Staves/GlacialStaff.cs b/Projects/Scripts/Items/Weapons/Staves/GlacialStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/GlacialStaff.cs rename to Projects/Scripts/Items/Weapons/Staves/GlacialStaff.cs diff --git a/Scripts/Items/Weapons/Staves/GnarledStaff.cs b/Projects/Scripts/Items/Weapons/Staves/GnarledStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/GnarledStaff.cs rename to Projects/Scripts/Items/Weapons/Staves/GnarledStaff.cs diff --git a/Scripts/Items/Weapons/Staves/QuarterStaff.cs b/Projects/Scripts/Items/Weapons/Staves/QuarterStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/QuarterStaff.cs rename to Projects/Scripts/Items/Weapons/Staves/QuarterStaff.cs diff --git a/Scripts/Items/Weapons/Staves/ShepherdsCrook.cs b/Projects/Scripts/Items/Weapons/Staves/ShepherdsCrook.cs similarity index 100% rename from Scripts/Items/Weapons/Staves/ShepherdsCrook.cs rename to Projects/Scripts/Items/Weapons/Staves/ShepherdsCrook.cs diff --git a/Scripts/Items/Weapons/Swords/AdventurersMachete.cs b/Projects/Scripts/Items/Weapons/Swords/AdventurersMachete.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/AdventurersMachete.cs rename to Projects/Scripts/Items/Weapons/Swords/AdventurersMachete.cs diff --git a/Scripts/Items/Weapons/Swords/BaseSword.cs b/Projects/Scripts/Items/Weapons/Swords/BaseSword.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/BaseSword.cs rename to Projects/Scripts/Items/Weapons/Swords/BaseSword.cs diff --git a/Scripts/Items/Weapons/Swords/BoneHarvester.cs b/Projects/Scripts/Items/Weapons/Swords/BoneHarvester.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/BoneHarvester.cs rename to Projects/Scripts/Items/Weapons/Swords/BoneHarvester.cs diff --git a/Scripts/Items/Weapons/Swords/BoneMachete.cs b/Projects/Scripts/Items/Weapons/Swords/BoneMachete.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/BoneMachete.cs rename to Projects/Scripts/Items/Weapons/Swords/BoneMachete.cs diff --git a/Scripts/Items/Weapons/Swords/Broadsword.cs b/Projects/Scripts/Items/Weapons/Swords/Broadsword.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Broadsword.cs rename to Projects/Scripts/Items/Weapons/Swords/Broadsword.cs diff --git a/Scripts/Items/Weapons/Swords/ChargedAssassinSpike.cs b/Projects/Scripts/Items/Weapons/Swords/ChargedAssassinSpike.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/ChargedAssassinSpike.cs rename to Projects/Scripts/Items/Weapons/Swords/ChargedAssassinSpike.cs diff --git a/Scripts/Items/Weapons/Swords/CorruptedRuneBlade.cs b/Projects/Scripts/Items/Weapons/Swords/CorruptedRuneBlade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/CorruptedRuneBlade.cs rename to Projects/Scripts/Items/Weapons/Swords/CorruptedRuneBlade.cs diff --git a/Scripts/Items/Weapons/Swords/CrescentBlade.cs b/Projects/Scripts/Items/Weapons/Swords/CrescentBlade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/CrescentBlade.cs rename to Projects/Scripts/Items/Weapons/Swords/CrescentBlade.cs diff --git a/Scripts/Items/Weapons/Swords/Cutlass.cs b/Projects/Scripts/Items/Weapons/Swords/Cutlass.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Cutlass.cs rename to Projects/Scripts/Items/Weapons/Swords/Cutlass.cs diff --git a/Scripts/Items/Weapons/Swords/DarkglowScimitar.cs b/Projects/Scripts/Items/Weapons/Swords/DarkglowScimitar.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/DarkglowScimitar.cs rename to Projects/Scripts/Items/Weapons/Swords/DarkglowScimitar.cs diff --git a/Scripts/Items/Weapons/Swords/DiseasedMachete.cs b/Projects/Scripts/Items/Weapons/Swords/DiseasedMachete.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/DiseasedMachete.cs rename to Projects/Scripts/Items/Weapons/Swords/DiseasedMachete.cs diff --git a/Scripts/Items/Weapons/Swords/FierySpellblade.cs b/Projects/Scripts/Items/Weapons/Swords/FierySpellblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/FierySpellblade.cs rename to Projects/Scripts/Items/Weapons/Swords/FierySpellblade.cs diff --git a/Scripts/Items/Weapons/Swords/IcyScimitar.cs b/Projects/Scripts/Items/Weapons/Swords/IcyScimitar.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/IcyScimitar.cs rename to Projects/Scripts/Items/Weapons/Swords/IcyScimitar.cs diff --git a/Scripts/Items/Weapons/Swords/IcySpellblade.cs b/Projects/Scripts/Items/Weapons/Swords/IcySpellblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/IcySpellblade.cs rename to Projects/Scripts/Items/Weapons/Swords/IcySpellblade.cs diff --git a/Scripts/Items/Weapons/Swords/Katana.cs b/Projects/Scripts/Items/Weapons/Swords/Katana.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Katana.cs rename to Projects/Scripts/Items/Weapons/Swords/Katana.cs diff --git a/Scripts/Items/Weapons/Swords/KnightsWarCleaver.cs b/Projects/Scripts/Items/Weapons/Swords/KnightsWarCleaver.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/KnightsWarCleaver.cs rename to Projects/Scripts/Items/Weapons/Swords/KnightsWarCleaver.cs diff --git a/Scripts/Items/Weapons/Swords/Kryss.cs b/Projects/Scripts/Items/Weapons/Swords/Kryss.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Kryss.cs rename to Projects/Scripts/Items/Weapons/Swords/Kryss.cs diff --git a/Scripts/Items/Weapons/Swords/Lance.cs b/Projects/Scripts/Items/Weapons/Swords/Lance.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Lance.cs rename to Projects/Scripts/Items/Weapons/Swords/Lance.cs diff --git a/Scripts/Items/Weapons/Swords/LeafbladeOfEase.cs b/Projects/Scripts/Items/Weapons/Swords/LeafbladeOfEase.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/LeafbladeOfEase.cs rename to Projects/Scripts/Items/Weapons/Swords/LeafbladeOfEase.cs diff --git a/Scripts/Items/Weapons/Swords/Longsword.cs b/Projects/Scripts/Items/Weapons/Swords/Longsword.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Longsword.cs rename to Projects/Scripts/Items/Weapons/Swords/Longsword.cs diff --git a/Scripts/Items/Weapons/Swords/Luckblade.cs b/Projects/Scripts/Items/Weapons/Swords/Luckblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Luckblade.cs rename to Projects/Scripts/Items/Weapons/Swords/Luckblade.cs diff --git a/Scripts/Items/Weapons/Swords/MacheteOfDefense.cs b/Projects/Scripts/Items/Weapons/Swords/MacheteOfDefense.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/MacheteOfDefense.cs rename to Projects/Scripts/Items/Weapons/Swords/MacheteOfDefense.cs diff --git a/Scripts/Items/Weapons/Swords/MagekillerAssassinSpike.cs b/Projects/Scripts/Items/Weapons/Swords/MagekillerAssassinSpike.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/MagekillerAssassinSpike.cs rename to Projects/Scripts/Items/Weapons/Swords/MagekillerAssassinSpike.cs diff --git a/Scripts/Items/Weapons/Swords/MagekillerLeafblade.cs b/Projects/Scripts/Items/Weapons/Swords/MagekillerLeafblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/MagekillerLeafblade.cs rename to Projects/Scripts/Items/Weapons/Swords/MagekillerLeafblade.cs diff --git a/Scripts/Items/Weapons/Swords/MagesRuneBlade.cs b/Projects/Scripts/Items/Weapons/Swords/MagesRuneBlade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/MagesRuneBlade.cs rename to Projects/Scripts/Items/Weapons/Swords/MagesRuneBlade.cs diff --git a/Scripts/Items/Weapons/Swords/OrcishMachete.cs b/Projects/Scripts/Items/Weapons/Swords/OrcishMachete.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/OrcishMachete.cs rename to Projects/Scripts/Items/Weapons/Swords/OrcishMachete.cs diff --git a/Scripts/Items/Weapons/Swords/RuneBladeOfKnowledge.cs b/Projects/Scripts/Items/Weapons/Swords/RuneBladeOfKnowledge.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/RuneBladeOfKnowledge.cs rename to Projects/Scripts/Items/Weapons/Swords/RuneBladeOfKnowledge.cs diff --git a/Scripts/Items/Weapons/Swords/Runesabre.cs b/Projects/Scripts/Items/Weapons/Swords/Runesabre.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Runesabre.cs rename to Projects/Scripts/Items/Weapons/Swords/Runesabre.cs diff --git a/Scripts/Items/Weapons/Swords/Scimitar.cs b/Projects/Scripts/Items/Weapons/Swords/Scimitar.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/Scimitar.cs rename to Projects/Scripts/Items/Weapons/Swords/Scimitar.cs diff --git a/Scripts/Items/Weapons/Swords/SerratedWarCleaver.cs b/Projects/Scripts/Items/Weapons/Swords/SerratedWarCleaver.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/SerratedWarCleaver.cs rename to Projects/Scripts/Items/Weapons/Swords/SerratedWarCleaver.cs diff --git a/Scripts/Items/Weapons/Swords/SpellbladeOfDefense.cs b/Projects/Scripts/Items/Weapons/Swords/SpellbladeOfDefense.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/SpellbladeOfDefense.cs rename to Projects/Scripts/Items/Weapons/Swords/SpellbladeOfDefense.cs diff --git a/Scripts/Items/Weapons/Swords/ThinLongsword.cs b/Projects/Scripts/Items/Weapons/Swords/ThinLongsword.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/ThinLongsword.cs rename to Projects/Scripts/Items/Weapons/Swords/ThinLongsword.cs diff --git a/Scripts/Items/Weapons/Swords/TrueAssassinSpike.cs b/Projects/Scripts/Items/Weapons/Swords/TrueAssassinSpike.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TrueAssassinSpike.cs rename to Projects/Scripts/Items/Weapons/Swords/TrueAssassinSpike.cs diff --git a/Scripts/Items/Weapons/Swords/TrueLeafblade.cs b/Projects/Scripts/Items/Weapons/Swords/TrueLeafblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TrueLeafblade.cs rename to Projects/Scripts/Items/Weapons/Swords/TrueLeafblade.cs diff --git a/Scripts/Items/Weapons/Swords/TrueRadiantScimitar.cs b/Projects/Scripts/Items/Weapons/Swords/TrueRadiantScimitar.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TrueRadiantScimitar.cs rename to Projects/Scripts/Items/Weapons/Swords/TrueRadiantScimitar.cs diff --git a/Scripts/Items/Weapons/Swords/TrueSpellblade.cs b/Projects/Scripts/Items/Weapons/Swords/TrueSpellblade.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TrueSpellblade.cs rename to Projects/Scripts/Items/Weapons/Swords/TrueSpellblade.cs diff --git a/Scripts/Items/Weapons/Swords/TrueWarCleaver.cs b/Projects/Scripts/Items/Weapons/Swords/TrueWarCleaver.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TrueWarCleaver.cs rename to Projects/Scripts/Items/Weapons/Swords/TrueWarCleaver.cs diff --git a/Scripts/Items/Weapons/Swords/TwinklingScimitar.cs b/Projects/Scripts/Items/Weapons/Swords/TwinklingScimitar.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/TwinklingScimitar.cs rename to Projects/Scripts/Items/Weapons/Swords/TwinklingScimitar.cs diff --git a/Scripts/Items/Weapons/Swords/VikingSword.cs b/Projects/Scripts/Items/Weapons/Swords/VikingSword.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/VikingSword.cs rename to Projects/Scripts/Items/Weapons/Swords/VikingSword.cs diff --git a/Scripts/Items/Weapons/Swords/WoundingAssassinSpike.cs b/Projects/Scripts/Items/Weapons/Swords/WoundingAssassinSpike.cs similarity index 100% rename from Scripts/Items/Weapons/Swords/WoundingAssassinSpike.cs rename to Projects/Scripts/Items/Weapons/Swords/WoundingAssassinSpike.cs diff --git a/Scripts/Items/Weapons/WeaponEnums.cs b/Projects/Scripts/Items/Weapons/WeaponEnums.cs similarity index 100% rename from Scripts/Items/Weapons/WeaponEnums.cs rename to Projects/Scripts/Items/Weapons/WeaponEnums.cs diff --git a/Scripts/Items/Weapons/Wooden/AncientWildStaff.cs b/Projects/Scripts/Items/Weapons/Wooden/AncientWildStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Wooden/AncientWildStaff.cs rename to Projects/Scripts/Items/Weapons/Wooden/AncientWildStaff.cs diff --git a/Scripts/Items/Weapons/Wooden/ArcanistsWildStaff.cs b/Projects/Scripts/Items/Weapons/Wooden/ArcanistsWildStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Wooden/ArcanistsWildStaff.cs rename to Projects/Scripts/Items/Weapons/Wooden/ArcanistsWildStaff.cs diff --git a/Scripts/Items/Weapons/Wooden/HardenedWildStaff.cs b/Projects/Scripts/Items/Weapons/Wooden/HardenedWildStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Wooden/HardenedWildStaff.cs rename to Projects/Scripts/Items/Weapons/Wooden/HardenedWildStaff.cs diff --git a/Scripts/Items/Weapons/Wooden/ThornedWildStaff.cs b/Projects/Scripts/Items/Weapons/Wooden/ThornedWildStaff.cs similarity index 100% rename from Scripts/Items/Weapons/Wooden/ThornedWildStaff.cs rename to Projects/Scripts/Items/Weapons/Wooden/ThornedWildStaff.cs diff --git a/Scripts/Misc/AOS.cs b/Projects/Scripts/Misc/AOS.cs similarity index 100% rename from Scripts/Misc/AOS.cs rename to Projects/Scripts/Misc/AOS.cs diff --git a/Scripts/Misc/AccountPrompt.cs b/Projects/Scripts/Misc/AccountPrompt.cs similarity index 100% rename from Scripts/Misc/AccountPrompt.cs rename to Projects/Scripts/Misc/AccountPrompt.cs diff --git a/Scripts/Misc/Animations.cs b/Projects/Scripts/Misc/Animations.cs similarity index 100% rename from Scripts/Misc/Animations.cs rename to Projects/Scripts/Misc/Animations.cs diff --git a/Scripts/Misc/Assistants.cs b/Projects/Scripts/Misc/Assistants.cs similarity index 99% rename from Scripts/Misc/Assistants.cs rename to Projects/Scripts/Misc/Assistants.cs index a6172e18d..b93429e0b 100644 --- a/Scripts/Misc/Assistants.cs +++ b/Projects/Scripts/Misc/Assistants.cs @@ -88,11 +88,11 @@ namespace Server.Misc public static void Initialize() { - if (Settings.Enabled) +/* if (Settings.Enabled) { EventSink.Login += EventSink_Login; ProtocolExtensions.Register(0xFF, true, OnHandshakeResponse); - } + }*/ } private static void EventSink_Login(LoginEventArgs e) diff --git a/Scripts/Misc/AttackMessage.cs b/Projects/Scripts/Misc/AttackMessage.cs similarity index 100% rename from Scripts/Misc/AttackMessage.cs rename to Projects/Scripts/Misc/AttackMessage.cs diff --git a/Scripts/Misc/AutoRestart.cs b/Projects/Scripts/Misc/AutoRestart.cs similarity index 100% rename from Scripts/Misc/AutoRestart.cs rename to Projects/Scripts/Misc/AutoRestart.cs diff --git a/Scripts/Misc/AutoSave.cs b/Projects/Scripts/Misc/AutoSave.cs similarity index 100% rename from Scripts/Misc/AutoSave.cs rename to Projects/Scripts/Misc/AutoSave.cs diff --git a/Scripts/Misc/Broadcasts.cs b/Projects/Scripts/Misc/Broadcasts.cs similarity index 91% rename from Scripts/Misc/Broadcasts.cs rename to Projects/Scripts/Misc/Broadcasts.cs index 59e39472b..65d5f79a3 100644 --- a/Scripts/Misc/Broadcasts.cs +++ b/Projects/Scripts/Misc/Broadcasts.cs @@ -22,14 +22,14 @@ namespace Server.Misc public static void EventSink_Shutdown(ShutdownEventArgs e) { - try +/* try { World.Broadcast(0x35, true, "The server has shut down."); } catch { // ignored - } + }*/ } } -} \ No newline at end of file +} diff --git a/Scripts/Misc/BuffIcons.cs b/Projects/Scripts/Misc/BuffIcons.cs similarity index 100% rename from Scripts/Misc/BuffIcons.cs rename to Projects/Scripts/Misc/BuffIcons.cs diff --git a/Scripts/Misc/CharacterCreation.cs b/Projects/Scripts/Misc/CharacterCreation.cs similarity index 100% rename from Scripts/Misc/CharacterCreation.cs rename to Projects/Scripts/Misc/CharacterCreation.cs diff --git a/Scripts/Misc/Cleanup.cs b/Projects/Scripts/Misc/Cleanup.cs similarity index 100% rename from Scripts/Misc/Cleanup.cs rename to Projects/Scripts/Misc/Cleanup.cs diff --git a/Scripts/Misc/ClientVerification.cs b/Projects/Scripts/Misc/ClientVerification.cs similarity index 100% rename from Scripts/Misc/ClientVerification.cs rename to Projects/Scripts/Misc/ClientVerification.cs diff --git a/Scripts/Misc/CrashGuard.cs b/Projects/Scripts/Misc/CrashGuard.cs similarity index 100% rename from Scripts/Misc/CrashGuard.cs rename to Projects/Scripts/Misc/CrashGuard.cs diff --git a/Scripts/Misc/CurrentExpansion.cs b/Projects/Scripts/Misc/CurrentExpansion.cs similarity index 100% rename from Scripts/Misc/CurrentExpansion.cs rename to Projects/Scripts/Misc/CurrentExpansion.cs diff --git a/Scripts/Misc/DataPath.cs b/Projects/Scripts/Misc/DataPath.cs similarity index 90% rename from Scripts/Misc/DataPath.cs rename to Projects/Scripts/Misc/DataPath.cs index 2914455b7..7830c89f1 100644 --- a/Scripts/Misc/DataPath.cs +++ b/Projects/Scripts/Misc/DataPath.cs @@ -1,6 +1,4 @@ using System; -using System.IO; -using Microsoft.Win32; namespace Server.Misc { @@ -12,7 +10,8 @@ namespace Server.Misc * Example: * private static string CustomPath = @"C:\Program Files\Ultima Online"; */ - private static string CustomPath = null; + private static string CustomPath = @"C:\Ultima Online Classic"; + // private static string CustomPath = @"/Users/kamronbatman/UOC"; /* The following is a list of files which a required for proper execution: * @@ -69,7 +68,8 @@ namespace Server.Misc private static string GetPath(string subName, string keyName) { - try + return null; + /*try { string keyString; @@ -102,7 +102,7 @@ namespace Server.Misc catch { return null; - } + }*/ } } -} \ No newline at end of file +} diff --git a/Scripts/Misc/DispellableAttribute.cs b/Projects/Scripts/Misc/DispellableAttribute.cs similarity index 100% rename from Scripts/Misc/DispellableAttribute.cs rename to Projects/Scripts/Misc/DispellableAttribute.cs diff --git a/Scripts/Misc/DispellableFieldAttribute.cs b/Projects/Scripts/Misc/DispellableFieldAttribute.cs similarity index 100% rename from Scripts/Misc/DispellableFieldAttribute.cs rename to Projects/Scripts/Misc/DispellableFieldAttribute.cs diff --git a/Scripts/Misc/DoorGenerator.cs b/Projects/Scripts/Misc/DoorGenerator.cs similarity index 94% rename from Scripts/Misc/DoorGenerator.cs rename to Projects/Scripts/Misc/DoorGenerator.cs index a0cf69ea4..5ad35ea67 100644 --- a/Scripts/Misc/DoorGenerator.cs +++ b/Projects/Scripts/Misc/DoorGenerator.cs @@ -349,7 +349,6 @@ namespace Server { World.Broadcast(0x35, true, "Generating doors, please wait."); - NetState.FlushAll(); NetState.Pause(); m_Map = Map.Trammel; @@ -555,4 +554,4 @@ namespace Server } } } -} \ No newline at end of file +} diff --git a/Scripts/Misc/Email.cs b/Projects/Scripts/Misc/Email.cs similarity index 100% rename from Scripts/Misc/Email.cs rename to Projects/Scripts/Misc/Email.cs diff --git a/Scripts/Misc/Emitter.cs b/Projects/Scripts/Misc/Emitter.cs similarity index 91% rename from Scripts/Misc/Emitter.cs rename to Projects/Scripts/Misc/Emitter.cs index 67369af61..ceaca1f69 100644 --- a/Scripts/Misc/Emitter.cs +++ b/Projects/Scripts/Misc/Emitter.cs @@ -13,45 +13,24 @@ namespace Server private AssemblyBuilder m_AssemblyBuilder; private ModuleBuilder m_ModuleBuilder; - public AssemblyEmitter( string assemblyName, bool canSave ) + public AssemblyEmitter( string assemblyName ) { m_AssemblyName = assemblyName; m_AppDomain = AppDomain.CurrentDomain; - m_AssemblyBuilder = m_AppDomain.DefineDynamicAssembly( + m_AssemblyBuilder = AssemblyBuilder.DefineDynamicAssembly( new AssemblyName( assemblyName ), - canSave ? AssemblyBuilderAccess.RunAndSave : AssemblyBuilderAccess.Run + AssemblyBuilderAccess.Run ); - if ( canSave ) - { - m_ModuleBuilder = m_AssemblyBuilder.DefineDynamicModule( - assemblyName, - $"{assemblyName.ToLower()}.dll", - false - ); - } - else - { - m_ModuleBuilder = m_AssemblyBuilder.DefineDynamicModule( - assemblyName, - false - ); - } + m_ModuleBuilder = m_AssemblyBuilder.DefineDynamicModule(assemblyName); } public TypeBuilder DefineType( string typeName, TypeAttributes attrs, Type parentType ) { return m_ModuleBuilder.DefineType( typeName, attrs, parentType ); } - - public void Save() - { - m_AssemblyBuilder.Save( - $"{m_AssemblyName.ToLower()}.dll" - ); - } } public class MethodEmitter diff --git a/Scripts/Misc/Fastwalk.cs b/Projects/Scripts/Misc/Fastwalk.cs similarity index 100% rename from Scripts/Misc/Fastwalk.cs rename to Projects/Scripts/Misc/Fastwalk.cs diff --git a/Scripts/Misc/FoodDecay.cs b/Projects/Scripts/Misc/FoodDecay.cs similarity index 100% rename from Scripts/Misc/FoodDecay.cs rename to Projects/Scripts/Misc/FoodDecay.cs diff --git a/Scripts/Misc/Geometry.cs b/Projects/Scripts/Misc/Geometry.cs similarity index 100% rename from Scripts/Misc/Geometry.cs rename to Projects/Scripts/Misc/Geometry.cs diff --git a/Scripts/Misc/Gifts/Winter2004/DecorativeTopiary.cs b/Projects/Scripts/Misc/Gifts/Winter2004/DecorativeTopiary.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/DecorativeTopiary.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/DecorativeTopiary.cs diff --git a/Scripts/Misc/Gifts/Winter2004/FestiveCactus.cs b/Projects/Scripts/Misc/Gifts/Winter2004/FestiveCactus.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/FestiveCactus.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/FestiveCactus.cs diff --git a/Scripts/Misc/Gifts/Winter2004/LightOfTheWinterSolstice.cs b/Projects/Scripts/Misc/Gifts/Winter2004/LightOfTheWinterSolstice.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/LightOfTheWinterSolstice.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/LightOfTheWinterSolstice.cs diff --git a/Scripts/Misc/Gifts/Winter2004/Mistletoe.cs b/Projects/Scripts/Misc/Gifts/Winter2004/Mistletoe.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/Mistletoe.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/Mistletoe.cs diff --git a/Scripts/Misc/Gifts/Winter2004/PileOfGlacialSnow.cs b/Projects/Scripts/Misc/Gifts/Winter2004/PileOfGlacialSnow.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/PileOfGlacialSnow.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/PileOfGlacialSnow.cs diff --git a/Scripts/Misc/Gifts/Winter2004/SnowPile.cs b/Projects/Scripts/Misc/Gifts/Winter2004/SnowPile.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/SnowPile.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/SnowPile.cs diff --git a/Scripts/Misc/Gifts/Winter2004/SnowyTree.cs b/Projects/Scripts/Misc/Gifts/Winter2004/SnowyTree.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/SnowyTree.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/SnowyTree.cs diff --git a/Scripts/Misc/Gifts/Winter2004/Winter2004.cs b/Projects/Scripts/Misc/Gifts/Winter2004/Winter2004.cs similarity index 100% rename from Scripts/Misc/Gifts/Winter2004/Winter2004.cs rename to Projects/Scripts/Misc/Gifts/Winter2004/Winter2004.cs diff --git a/Scripts/Misc/Guild.cs b/Projects/Scripts/Misc/Guild.cs similarity index 100% rename from Scripts/Misc/Guild.cs rename to Projects/Scripts/Misc/Guild.cs diff --git a/Scripts/Misc/HardwareInfo.cs b/Projects/Scripts/Misc/HardwareInfo.cs similarity index 100% rename from Scripts/Misc/HardwareInfo.cs rename to Projects/Scripts/Misc/HardwareInfo.cs diff --git a/Scripts/Misc/InhumanSpeech.cs b/Projects/Scripts/Misc/InhumanSpeech.cs similarity index 100% rename from Scripts/Misc/InhumanSpeech.cs rename to Projects/Scripts/Misc/InhumanSpeech.cs diff --git a/Scripts/Misc/Keywords.cs b/Projects/Scripts/Misc/Keywords.cs similarity index 100% rename from Scripts/Misc/Keywords.cs rename to Projects/Scripts/Misc/Keywords.cs diff --git a/Scripts/Misc/LanguageStatistics.cs b/Projects/Scripts/Misc/LanguageStatistics.cs similarity index 100% rename from Scripts/Misc/LanguageStatistics.cs rename to Projects/Scripts/Misc/LanguageStatistics.cs diff --git a/Scripts/Misc/LightCycle.cs b/Projects/Scripts/Misc/LightCycle.cs similarity index 100% rename from Scripts/Misc/LightCycle.cs rename to Projects/Scripts/Misc/LightCycle.cs diff --git a/Scripts/Misc/LoginStats.cs b/Projects/Scripts/Misc/LoginStats.cs similarity index 100% rename from Scripts/Misc/LoginStats.cs rename to Projects/Scripts/Misc/LoginStats.cs diff --git a/Scripts/Misc/Loot.cs b/Projects/Scripts/Misc/Loot.cs similarity index 100% rename from Scripts/Misc/Loot.cs rename to Projects/Scripts/Misc/Loot.cs diff --git a/Scripts/Misc/LootPack.cs b/Projects/Scripts/Misc/LootPack.cs similarity index 100% rename from Scripts/Misc/LootPack.cs rename to Projects/Scripts/Misc/LootPack.cs diff --git a/Scripts/Misc/MapDefinitions.cs b/Projects/Scripts/Misc/MapDefinitions.cs similarity index 100% rename from Scripts/Misc/MapDefinitions.cs rename to Projects/Scripts/Misc/MapDefinitions.cs diff --git a/Scripts/Misc/MapUO.cs b/Projects/Scripts/Misc/MapUO.cs similarity index 100% rename from Scripts/Misc/MapUO.cs rename to Projects/Scripts/Misc/MapUO.cs diff --git a/Scripts/Misc/MondainsLegacy.cs b/Projects/Scripts/Misc/MondainsLegacy.cs similarity index 100% rename from Scripts/Misc/MondainsLegacy.cs rename to Projects/Scripts/Misc/MondainsLegacy.cs diff --git a/Scripts/Misc/NameList.cs b/Projects/Scripts/Misc/NameList.cs similarity index 100% rename from Scripts/Misc/NameList.cs rename to Projects/Scripts/Misc/NameList.cs diff --git a/Scripts/Misc/NameVerification.cs b/Projects/Scripts/Misc/NameVerification.cs similarity index 100% rename from Scripts/Misc/NameVerification.cs rename to Projects/Scripts/Misc/NameVerification.cs diff --git a/Scripts/Misc/Notoriety.cs b/Projects/Scripts/Misc/Notoriety.cs similarity index 100% rename from Scripts/Misc/Notoriety.cs rename to Projects/Scripts/Misc/Notoriety.cs diff --git a/Scripts/Misc/Paperdoll.cs b/Projects/Scripts/Misc/Paperdoll.cs similarity index 100% rename from Scripts/Misc/Paperdoll.cs rename to Projects/Scripts/Misc/Paperdoll.cs diff --git a/Scripts/Misc/Poison.cs b/Projects/Scripts/Misc/Poison.cs similarity index 100% rename from Scripts/Misc/Poison.cs rename to Projects/Scripts/Misc/Poison.cs diff --git a/Scripts/Misc/ProfanityProtection.cs b/Projects/Scripts/Misc/ProfanityProtection.cs similarity index 93% rename from Scripts/Misc/ProfanityProtection.cs rename to Projects/Scripts/Misc/ProfanityProtection.cs index 57c47db75..08e37dcec 100644 --- a/Scripts/Misc/ProfanityProtection.cs +++ b/Projects/Scripts/Misc/ProfanityProtection.cs @@ -96,9 +96,7 @@ namespace Server.Misc return true; case ProfanityAction.Disconnect: { - NetState ns = from.NetState; - - ns?.Dispose(); + from.NetState?.Dispose(); return false; } diff --git a/Scripts/Misc/Profile.cs b/Projects/Scripts/Misc/Profile.cs similarity index 100% rename from Scripts/Misc/Profile.cs rename to Projects/Scripts/Misc/Profile.cs diff --git a/Scripts/Misc/ProtocolExtensions.cs b/Projects/Scripts/Misc/ProtocolExtensions.cs similarity index 100% rename from Scripts/Misc/ProtocolExtensions.cs rename to Projects/Scripts/Misc/ProtocolExtensions.cs diff --git a/Scripts/Misc/RaceDefinitions.cs b/Projects/Scripts/Misc/RaceDefinitions.cs similarity index 100% rename from Scripts/Misc/RaceDefinitions.cs rename to Projects/Scripts/Misc/RaceDefinitions.cs diff --git a/Scripts/Misc/RegenRates.cs b/Projects/Scripts/Misc/RegenRates.cs similarity index 100% rename from Scripts/Misc/RegenRates.cs rename to Projects/Scripts/Misc/RegenRates.cs diff --git a/Scripts/Misc/RenameRequests.cs b/Projects/Scripts/Misc/RenameRequests.cs similarity index 100% rename from Scripts/Misc/RenameRequests.cs rename to Projects/Scripts/Misc/RenameRequests.cs diff --git a/Scripts/Misc/ResourceInfo.cs b/Projects/Scripts/Misc/ResourceInfo.cs similarity index 100% rename from Scripts/Misc/ResourceInfo.cs rename to Projects/Scripts/Misc/ResourceInfo.cs diff --git a/Scripts/Misc/ServerList.cs b/Projects/Scripts/Misc/ServerList.cs similarity index 95% rename from Scripts/Misc/ServerList.cs rename to Projects/Scripts/Misc/ServerList.cs index be4298ebe..469fc8d84 100644 --- a/Scripts/Misc/ServerList.cs +++ b/Projects/Scripts/Misc/ServerList.cs @@ -80,8 +80,9 @@ namespace Server.Misc e.AddServer(ServerName, new IPEndPoint(localAddress, localPort)); } - catch + catch (Exception er) { + Console.WriteLine(er); e.Rejected = true; } } @@ -206,4 +207,4 @@ namespace Server.Misc } } } -} \ No newline at end of file +} diff --git a/Scripts/Misc/ShardPoller.cs b/Projects/Scripts/Misc/ShardPoller.cs similarity index 100% rename from Scripts/Misc/ShardPoller.cs rename to Projects/Scripts/Misc/ShardPoller.cs diff --git a/Scripts/Misc/ShrinkTable.cs b/Projects/Scripts/Misc/ShrinkTable.cs similarity index 100% rename from Scripts/Misc/ShrinkTable.cs rename to Projects/Scripts/Misc/ShrinkTable.cs diff --git a/Scripts/Misc/SkillCheck.cs b/Projects/Scripts/Misc/SkillCheck.cs similarity index 100% rename from Scripts/Misc/SkillCheck.cs rename to Projects/Scripts/Misc/SkillCheck.cs diff --git a/Scripts/Misc/SocketOptions.cs b/Projects/Scripts/Misc/SocketOptions.cs similarity index 80% rename from Scripts/Misc/SocketOptions.cs rename to Projects/Scripts/Misc/SocketOptions.cs index 8abfebbdb..330962b3d 100644 --- a/Scripts/Misc/SocketOptions.cs +++ b/Projects/Scripts/Misc/SocketOptions.cs @@ -1,3 +1,4 @@ +using System; using System.Net; using System.Net.Sockets; using Server.Network; @@ -7,7 +8,6 @@ namespace Server public class SocketOptions { private const bool NagleEnabled = false; // Should the Nagle algorithm be enabled? This may reduce performance - private const int CoalesceBufferSize = 512; // MSS that the core will use when buffering packets private static IPEndPoint[] m_ListenerEndPoints = { @@ -20,11 +20,13 @@ namespace Server public static void Initialize() { - SendQueue.CoalesceBufferSize = CoalesceBufferSize; - EventSink.SocketConnect += EventSink_SocketConnect; + } - Listener.EndPoints = m_ListenerEndPoints; + public static void RegisterListeners() + { + for (int i = 0; i < m_ListenerEndPoints.Length; i++) + Core.MessagePump.AddListener(m_ListenerEndPoints[i]); } private static void EventSink_SocketConnect(SocketConnectEventArgs e) @@ -36,4 +38,4 @@ namespace Server e.Socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, 1); // RunUO uses its own algorithm } } -} \ No newline at end of file +} diff --git a/Scripts/Misc/TextDefinition.cs b/Projects/Scripts/Misc/TextDefinition.cs similarity index 100% rename from Scripts/Misc/TextDefinition.cs rename to Projects/Scripts/Misc/TextDefinition.cs diff --git a/Scripts/Misc/Titles.cs b/Projects/Scripts/Misc/Titles.cs similarity index 100% rename from Scripts/Misc/Titles.cs rename to Projects/Scripts/Misc/Titles.cs diff --git a/Scripts/Misc/ToggleItem.cs b/Projects/Scripts/Misc/ToggleItem.cs similarity index 100% rename from Scripts/Misc/ToggleItem.cs rename to Projects/Scripts/Misc/ToggleItem.cs diff --git a/Scripts/Misc/TreasureMapProtection.cs b/Projects/Scripts/Misc/TreasureMapProtection.cs similarity index 100% rename from Scripts/Misc/TreasureMapProtection.cs rename to Projects/Scripts/Misc/TreasureMapProtection.cs diff --git a/Scripts/Misc/ValidationQueue.cs b/Projects/Scripts/Misc/ValidationQueue.cs similarity index 100% rename from Scripts/Misc/ValidationQueue.cs rename to Projects/Scripts/Misc/ValidationQueue.cs diff --git a/Scripts/Misc/VendorGenerator.cs b/Projects/Scripts/Misc/VendorGenerator.cs similarity index 100% rename from Scripts/Misc/VendorGenerator.cs rename to Projects/Scripts/Misc/VendorGenerator.cs diff --git a/Scripts/Misc/Weather.cs b/Projects/Scripts/Misc/Weather.cs similarity index 100% rename from Scripts/Misc/Weather.cs rename to Projects/Scripts/Misc/Weather.cs diff --git a/Scripts/Misc/WebStatus.cs b/Projects/Scripts/Misc/WebStatus.cs similarity index 100% rename from Scripts/Misc/WebStatus.cs rename to Projects/Scripts/Misc/WebStatus.cs diff --git a/Scripts/Misc/WeightOverloading.cs b/Projects/Scripts/Misc/WeightOverloading.cs similarity index 100% rename from Scripts/Misc/WeightOverloading.cs rename to Projects/Scripts/Misc/WeightOverloading.cs diff --git a/Scripts/Misc/WelcomeTimer.cs b/Projects/Scripts/Misc/WelcomeTimer.cs similarity index 100% rename from Scripts/Misc/WelcomeTimer.cs rename to Projects/Scripts/Misc/WelcomeTimer.cs diff --git a/Scripts/Misc/uoamVendors.cs b/Projects/Scripts/Misc/uoamVendors.cs similarity index 100% rename from Scripts/Misc/uoamVendors.cs rename to Projects/Scripts/Misc/uoamVendors.cs diff --git a/Scripts/Mobiles/AI/AIControlMobileTarget.cs b/Projects/Scripts/Mobiles/AI/AIControlMobileTarget.cs similarity index 100% rename from Scripts/Mobiles/AI/AIControlMobileTarget.cs rename to Projects/Scripts/Mobiles/AI/AIControlMobileTarget.cs diff --git a/Scripts/Mobiles/AI/AnimalAI.cs b/Projects/Scripts/Mobiles/AI/AnimalAI.cs similarity index 100% rename from Scripts/Mobiles/AI/AnimalAI.cs rename to Projects/Scripts/Mobiles/AI/AnimalAI.cs diff --git a/Scripts/Mobiles/AI/ArcherAI.cs b/Projects/Scripts/Mobiles/AI/ArcherAI.cs similarity index 100% rename from Scripts/Mobiles/AI/ArcherAI.cs rename to Projects/Scripts/Mobiles/AI/ArcherAI.cs diff --git a/Scripts/Mobiles/AI/BaseAI.cs b/Projects/Scripts/Mobiles/AI/BaseAI.cs similarity index 100% rename from Scripts/Mobiles/AI/BaseAI.cs rename to Projects/Scripts/Mobiles/AI/BaseAI.cs diff --git a/Scripts/Mobiles/AI/BerserkAI.cs b/Projects/Scripts/Mobiles/AI/BerserkAI.cs similarity index 100% rename from Scripts/Mobiles/AI/BerserkAI.cs rename to Projects/Scripts/Mobiles/AI/BerserkAI.cs diff --git a/Scripts/Mobiles/AI/HealerAI.cs b/Projects/Scripts/Mobiles/AI/HealerAI.cs similarity index 100% rename from Scripts/Mobiles/AI/HealerAI.cs rename to Projects/Scripts/Mobiles/AI/HealerAI.cs diff --git a/Scripts/Mobiles/AI/MageAI.cs b/Projects/Scripts/Mobiles/AI/MageAI.cs similarity index 100% rename from Scripts/Mobiles/AI/MageAI.cs rename to Projects/Scripts/Mobiles/AI/MageAI.cs diff --git a/Scripts/Mobiles/AI/MeleeAI.cs b/Projects/Scripts/Mobiles/AI/MeleeAI.cs similarity index 100% rename from Scripts/Mobiles/AI/MeleeAI.cs rename to Projects/Scripts/Mobiles/AI/MeleeAI.cs diff --git a/Scripts/Mobiles/AI/OppositionGroup.cs b/Projects/Scripts/Mobiles/AI/OppositionGroup.cs similarity index 100% rename from Scripts/Mobiles/AI/OppositionGroup.cs rename to Projects/Scripts/Mobiles/AI/OppositionGroup.cs diff --git a/Scripts/Mobiles/AI/PredatorAI.cs b/Projects/Scripts/Mobiles/AI/PredatorAI.cs similarity index 100% rename from Scripts/Mobiles/AI/PredatorAI.cs rename to Projects/Scripts/Mobiles/AI/PredatorAI.cs diff --git a/Scripts/Mobiles/AI/SpeedInfo.cs b/Projects/Scripts/Mobiles/AI/SpeedInfo.cs similarity index 100% rename from Scripts/Mobiles/AI/SpeedInfo.cs rename to Projects/Scripts/Mobiles/AI/SpeedInfo.cs diff --git a/Scripts/Mobiles/AI/ThiefAI.cs b/Projects/Scripts/Mobiles/AI/ThiefAI.cs similarity index 100% rename from Scripts/Mobiles/AI/ThiefAI.cs rename to Projects/Scripts/Mobiles/AI/ThiefAI.cs diff --git a/Scripts/Mobiles/AI/VendorAI.cs b/Projects/Scripts/Mobiles/AI/VendorAI.cs similarity index 100% rename from Scripts/Mobiles/AI/VendorAI.cs rename to Projects/Scripts/Mobiles/AI/VendorAI.cs diff --git a/Scripts/Mobiles/Animals/Bears/BlackBear.cs b/Projects/Scripts/Mobiles/Animals/Bears/BlackBear.cs similarity index 100% rename from Scripts/Mobiles/Animals/Bears/BlackBear.cs rename to Projects/Scripts/Mobiles/Animals/Bears/BlackBear.cs diff --git a/Scripts/Mobiles/Animals/Bears/BrownBear.cs b/Projects/Scripts/Mobiles/Animals/Bears/BrownBear.cs similarity index 100% rename from Scripts/Mobiles/Animals/Bears/BrownBear.cs rename to Projects/Scripts/Mobiles/Animals/Bears/BrownBear.cs diff --git a/Scripts/Mobiles/Animals/Bears/GrizzlyBear.cs b/Projects/Scripts/Mobiles/Animals/Bears/GrizzlyBear.cs similarity index 100% rename from Scripts/Mobiles/Animals/Bears/GrizzlyBear.cs rename to Projects/Scripts/Mobiles/Animals/Bears/GrizzlyBear.cs diff --git a/Scripts/Mobiles/Animals/Bears/PolarBear.cs b/Projects/Scripts/Mobiles/Animals/Bears/PolarBear.cs similarity index 100% rename from Scripts/Mobiles/Animals/Bears/PolarBear.cs rename to Projects/Scripts/Mobiles/Animals/Bears/PolarBear.cs diff --git a/Scripts/Mobiles/Animals/Birds/Chicken.cs b/Projects/Scripts/Mobiles/Animals/Birds/Chicken.cs similarity index 100% rename from Scripts/Mobiles/Animals/Birds/Chicken.cs rename to Projects/Scripts/Mobiles/Animals/Birds/Chicken.cs diff --git a/Scripts/Mobiles/Animals/Birds/Crane.cs b/Projects/Scripts/Mobiles/Animals/Birds/Crane.cs similarity index 100% rename from Scripts/Mobiles/Animals/Birds/Crane.cs rename to Projects/Scripts/Mobiles/Animals/Birds/Crane.cs diff --git a/Scripts/Mobiles/Animals/Birds/Eagle.cs b/Projects/Scripts/Mobiles/Animals/Birds/Eagle.cs similarity index 100% rename from Scripts/Mobiles/Animals/Birds/Eagle.cs rename to Projects/Scripts/Mobiles/Animals/Birds/Eagle.cs diff --git a/Scripts/Mobiles/Animals/Birds/Phoenix.cs b/Projects/Scripts/Mobiles/Animals/Birds/Phoenix.cs similarity index 100% rename from Scripts/Mobiles/Animals/Birds/Phoenix.cs rename to Projects/Scripts/Mobiles/Animals/Birds/Phoenix.cs diff --git a/Scripts/Mobiles/Animals/Canines/DireWolf.cs b/Projects/Scripts/Mobiles/Animals/Canines/DireWolf.cs similarity index 100% rename from Scripts/Mobiles/Animals/Canines/DireWolf.cs rename to Projects/Scripts/Mobiles/Animals/Canines/DireWolf.cs diff --git a/Scripts/Mobiles/Animals/Canines/GreyWolf.cs b/Projects/Scripts/Mobiles/Animals/Canines/GreyWolf.cs similarity index 100% rename from Scripts/Mobiles/Animals/Canines/GreyWolf.cs rename to Projects/Scripts/Mobiles/Animals/Canines/GreyWolf.cs diff --git a/Scripts/Mobiles/Animals/Canines/TimberWolf.cs b/Projects/Scripts/Mobiles/Animals/Canines/TimberWolf.cs similarity index 100% rename from Scripts/Mobiles/Animals/Canines/TimberWolf.cs rename to Projects/Scripts/Mobiles/Animals/Canines/TimberWolf.cs diff --git a/Scripts/Mobiles/Animals/Canines/WhiteWolf.cs b/Projects/Scripts/Mobiles/Animals/Canines/WhiteWolf.cs similarity index 100% rename from Scripts/Mobiles/Animals/Canines/WhiteWolf.cs rename to Projects/Scripts/Mobiles/Animals/Canines/WhiteWolf.cs diff --git a/Scripts/Mobiles/Animals/Cows/Bull.cs b/Projects/Scripts/Mobiles/Animals/Cows/Bull.cs similarity index 100% rename from Scripts/Mobiles/Animals/Cows/Bull.cs rename to Projects/Scripts/Mobiles/Animals/Cows/Bull.cs diff --git a/Scripts/Mobiles/Animals/Cows/Cow.cs b/Projects/Scripts/Mobiles/Animals/Cows/Cow.cs similarity index 100% rename from Scripts/Mobiles/Animals/Cows/Cow.cs rename to Projects/Scripts/Mobiles/Animals/Cows/Cow.cs diff --git a/Scripts/Mobiles/Animals/Felines/Cougar.cs b/Projects/Scripts/Mobiles/Animals/Felines/Cougar.cs similarity index 100% rename from Scripts/Mobiles/Animals/Felines/Cougar.cs rename to Projects/Scripts/Mobiles/Animals/Felines/Cougar.cs diff --git a/Scripts/Mobiles/Animals/Felines/HellCat.cs b/Projects/Scripts/Mobiles/Animals/Felines/HellCat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Felines/HellCat.cs rename to Projects/Scripts/Mobiles/Animals/Felines/HellCat.cs diff --git a/Scripts/Mobiles/Animals/Felines/Panther.cs b/Projects/Scripts/Mobiles/Animals/Felines/Panther.cs similarity index 100% rename from Scripts/Mobiles/Animals/Felines/Panther.cs rename to Projects/Scripts/Mobiles/Animals/Felines/Panther.cs diff --git a/Scripts/Mobiles/Animals/Felines/PredatorHellCat.cs b/Projects/Scripts/Mobiles/Animals/Felines/PredatorHellCat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Felines/PredatorHellCat.cs rename to Projects/Scripts/Mobiles/Animals/Felines/PredatorHellCat.cs diff --git a/Scripts/Mobiles/Animals/Felines/SnowLeopard.cs b/Projects/Scripts/Mobiles/Animals/Felines/SnowLeopard.cs similarity index 100% rename from Scripts/Mobiles/Animals/Felines/SnowLeopard.cs rename to Projects/Scripts/Mobiles/Animals/Felines/SnowLeopard.cs diff --git a/Scripts/Mobiles/Animals/Misc/Boar.cs b/Projects/Scripts/Mobiles/Animals/Misc/Boar.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Boar.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Boar.cs diff --git a/Scripts/Mobiles/Animals/Misc/BullFrog.cs b/Projects/Scripts/Mobiles/Animals/Misc/BullFrog.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/BullFrog.cs rename to Projects/Scripts/Mobiles/Animals/Misc/BullFrog.cs diff --git a/Scripts/Mobiles/Animals/Misc/Dolphin.cs b/Projects/Scripts/Mobiles/Animals/Misc/Dolphin.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Dolphin.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Dolphin.cs diff --git a/Scripts/Mobiles/Animals/Misc/Gaman.cs b/Projects/Scripts/Mobiles/Animals/Misc/Gaman.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Gaman.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Gaman.cs diff --git a/Scripts/Mobiles/Animals/Misc/GiantToad.cs b/Projects/Scripts/Mobiles/Animals/Misc/GiantToad.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/GiantToad.cs rename to Projects/Scripts/Mobiles/Animals/Misc/GiantToad.cs diff --git a/Scripts/Mobiles/Animals/Misc/Goat.cs b/Projects/Scripts/Mobiles/Animals/Misc/Goat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Goat.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Goat.cs diff --git a/Scripts/Mobiles/Animals/Misc/Gorilla.cs b/Projects/Scripts/Mobiles/Animals/Misc/Gorilla.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Gorilla.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Gorilla.cs diff --git a/Scripts/Mobiles/Animals/Misc/GreatHart.cs b/Projects/Scripts/Mobiles/Animals/Misc/GreatHart.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/GreatHart.cs rename to Projects/Scripts/Mobiles/Animals/Misc/GreatHart.cs diff --git a/Scripts/Mobiles/Animals/Misc/Hind.cs b/Projects/Scripts/Mobiles/Animals/Misc/Hind.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Hind.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Hind.cs diff --git a/Scripts/Mobiles/Animals/Misc/Llama.cs b/Projects/Scripts/Mobiles/Animals/Misc/Llama.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Llama.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Llama.cs diff --git a/Scripts/Mobiles/Animals/Misc/MountainGoat.cs b/Projects/Scripts/Mobiles/Animals/Misc/MountainGoat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/MountainGoat.cs rename to Projects/Scripts/Mobiles/Animals/Misc/MountainGoat.cs diff --git a/Scripts/Mobiles/Animals/Misc/PackHorse.cs b/Projects/Scripts/Mobiles/Animals/Misc/PackHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/PackHorse.cs rename to Projects/Scripts/Mobiles/Animals/Misc/PackHorse.cs diff --git a/Scripts/Mobiles/Animals/Misc/PackLlama.cs b/Projects/Scripts/Mobiles/Animals/Misc/PackLlama.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/PackLlama.cs rename to Projects/Scripts/Mobiles/Animals/Misc/PackLlama.cs diff --git a/Scripts/Mobiles/Animals/Misc/Pig.cs b/Projects/Scripts/Mobiles/Animals/Misc/Pig.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Pig.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Pig.cs diff --git a/Scripts/Mobiles/Animals/Misc/Sheep.cs b/Projects/Scripts/Mobiles/Animals/Misc/Sheep.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Sheep.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Sheep.cs diff --git a/Scripts/Mobiles/Animals/Misc/Walrus.cs b/Projects/Scripts/Mobiles/Animals/Misc/Walrus.cs similarity index 100% rename from Scripts/Mobiles/Animals/Misc/Walrus.cs rename to Projects/Scripts/Mobiles/Animals/Misc/Walrus.cs diff --git a/Scripts/Mobiles/Animals/Mounts/BaseMount.cs b/Projects/Scripts/Mobiles/Animals/Mounts/BaseMount.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/BaseMount.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/BaseMount.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Beetle.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Beetle.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Beetle.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Beetle.cs diff --git a/Scripts/Mobiles/Animals/Mounts/DesertOstard.cs b/Projects/Scripts/Mobiles/Animals/Mounts/DesertOstard.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/DesertOstard.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/DesertOstard.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Ethereals.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Ethereals.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Ethereals.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Ethereals.cs diff --git a/Scripts/Mobiles/Animals/Mounts/FireSteed.cs b/Projects/Scripts/Mobiles/Animals/Mounts/FireSteed.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/FireSteed.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/FireSteed.cs diff --git a/Scripts/Mobiles/Animals/Mounts/ForestOstard.cs b/Projects/Scripts/Mobiles/Animals/Mounts/ForestOstard.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/ForestOstard.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/ForestOstard.cs diff --git a/Scripts/Mobiles/Animals/Mounts/FrenziedOstard.cs b/Projects/Scripts/Mobiles/Animals/Mounts/FrenziedOstard.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/FrenziedOstard.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/FrenziedOstard.cs diff --git a/Scripts/Mobiles/Animals/Mounts/HellSteed.cs b/Projects/Scripts/Mobiles/Animals/Mounts/HellSteed.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/HellSteed.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/HellSteed.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Hiryu.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Hiryu.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Hiryu.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Hiryu.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Horse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Horse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Horse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Horse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Kirin.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Kirin.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Kirin.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Kirin.cs diff --git a/Scripts/Mobiles/Animals/Mounts/LesserHiryu.cs b/Projects/Scripts/Mobiles/Animals/Mounts/LesserHiryu.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/LesserHiryu.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/LesserHiryu.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Nightmare.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Nightmare.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Nightmare.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Nightmare.cs diff --git a/Scripts/Mobiles/Animals/Mounts/RidableLlama.cs b/Projects/Scripts/Mobiles/Animals/Mounts/RidableLlama.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/RidableLlama.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/RidableLlama.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Ridgeback.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Ridgeback.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Ridgeback.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Ridgeback.cs diff --git a/Scripts/Mobiles/Animals/Mounts/SavageRidgeback.cs b/Projects/Scripts/Mobiles/Animals/Mounts/SavageRidgeback.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/SavageRidgeback.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/SavageRidgeback.cs diff --git a/Scripts/Mobiles/Animals/Mounts/ScaledSwampDragon.cs b/Projects/Scripts/Mobiles/Animals/Mounts/ScaledSwampDragon.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/ScaledSwampDragon.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/ScaledSwampDragon.cs diff --git a/Scripts/Mobiles/Animals/Mounts/SeaHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/SeaHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/SeaHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/SeaHorse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/SilverSteed.cs b/Projects/Scripts/Mobiles/Animals/Mounts/SilverSteed.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/SilverSteed.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/SilverSteed.cs diff --git a/Scripts/Mobiles/Animals/Mounts/SkeletalMount.cs b/Projects/Scripts/Mobiles/Animals/Mounts/SkeletalMount.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/SkeletalMount.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/SkeletalMount.cs diff --git a/Scripts/Mobiles/Animals/Mounts/SwampDragon.cs b/Projects/Scripts/Mobiles/Animals/Mounts/SwampDragon.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/SwampDragon.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/SwampDragon.cs diff --git a/Scripts/Mobiles/Animals/Mounts/Unicorn.cs b/Projects/Scripts/Mobiles/Animals/Mounts/Unicorn.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/Unicorn.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/Unicorn.cs diff --git a/Scripts/Mobiles/Animals/Mounts/War Horses/BaseWarHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/War Horses/BaseWarHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/War Horses/BaseWarHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/War Horses/BaseWarHorse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/War Horses/CoMWarHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/War Horses/CoMWarHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/War Horses/CoMWarHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/War Horses/CoMWarHorse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/War Horses/MinaxWarHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/War Horses/MinaxWarHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/War Horses/MinaxWarHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/War Horses/MinaxWarHorse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/War Horses/SLWarHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/War Horses/SLWarHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/War Horses/SLWarHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/War Horses/SLWarHorse.cs diff --git a/Scripts/Mobiles/Animals/Mounts/War Horses/TBWarHorse.cs b/Projects/Scripts/Mobiles/Animals/Mounts/War Horses/TBWarHorse.cs similarity index 100% rename from Scripts/Mobiles/Animals/Mounts/War Horses/TBWarHorse.cs rename to Projects/Scripts/Mobiles/Animals/Mounts/War Horses/TBWarHorse.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/Alligator.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/Alligator.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/Alligator.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/Alligator.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/GiantSerpent.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/GiantSerpent.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/GiantSerpent.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/GiantSerpent.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/IceSerpent.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/IceSerpent.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/IceSerpent.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/IceSerpent.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/IceSnake.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/IceSnake.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/IceSnake.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/IceSnake.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/LavaLizard.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/LavaLizard.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/LavaLizard.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/LavaLizard.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/LavaSerpent.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/LavaSerpent.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/LavaSerpent.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/LavaSerpent.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/LavaSnake.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/LavaSnake.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/LavaSnake.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/LavaSnake.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/SilverSerpent.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/SilverSerpent.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/SilverSerpent.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/SilverSerpent.cs diff --git a/Scripts/Mobiles/Animals/Reptiles/Snake.cs b/Projects/Scripts/Mobiles/Animals/Reptiles/Snake.cs similarity index 100% rename from Scripts/Mobiles/Animals/Reptiles/Snake.cs rename to Projects/Scripts/Mobiles/Animals/Reptiles/Snake.cs diff --git a/Scripts/Mobiles/Animals/Rodents/GiantRat.cs b/Projects/Scripts/Mobiles/Animals/Rodents/GiantRat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Rodents/GiantRat.cs rename to Projects/Scripts/Mobiles/Animals/Rodents/GiantRat.cs diff --git a/Scripts/Mobiles/Animals/Rodents/JackRabbit.cs b/Projects/Scripts/Mobiles/Animals/Rodents/JackRabbit.cs similarity index 100% rename from Scripts/Mobiles/Animals/Rodents/JackRabbit.cs rename to Projects/Scripts/Mobiles/Animals/Rodents/JackRabbit.cs diff --git a/Scripts/Mobiles/Animals/Rodents/Rabbit.cs b/Projects/Scripts/Mobiles/Animals/Rodents/Rabbit.cs similarity index 100% rename from Scripts/Mobiles/Animals/Rodents/Rabbit.cs rename to Projects/Scripts/Mobiles/Animals/Rodents/Rabbit.cs diff --git a/Scripts/Mobiles/Animals/Rodents/SewerRat.cs b/Projects/Scripts/Mobiles/Animals/Rodents/SewerRat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Rodents/SewerRat.cs rename to Projects/Scripts/Mobiles/Animals/Rodents/SewerRat.cs diff --git a/Scripts/Mobiles/Animals/Slimes/Jwilson.cs b/Projects/Scripts/Mobiles/Animals/Slimes/Jwilson.cs similarity index 100% rename from Scripts/Mobiles/Animals/Slimes/Jwilson.cs rename to Projects/Scripts/Mobiles/Animals/Slimes/Jwilson.cs diff --git a/Scripts/Mobiles/Animals/Town Critters/(UO 3D Only) Parrot.cs b/Projects/Scripts/Mobiles/Animals/Town Critters/(UO 3D Only) Parrot.cs similarity index 100% rename from Scripts/Mobiles/Animals/Town Critters/(UO 3D Only) Parrot.cs rename to Projects/Scripts/Mobiles/Animals/Town Critters/(UO 3D Only) Parrot.cs diff --git a/Scripts/Mobiles/Animals/Town Critters/Bird.cs b/Projects/Scripts/Mobiles/Animals/Town Critters/Bird.cs similarity index 100% rename from Scripts/Mobiles/Animals/Town Critters/Bird.cs rename to Projects/Scripts/Mobiles/Animals/Town Critters/Bird.cs diff --git a/Scripts/Mobiles/Animals/Town Critters/Cat.cs b/Projects/Scripts/Mobiles/Animals/Town Critters/Cat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Town Critters/Cat.cs rename to Projects/Scripts/Mobiles/Animals/Town Critters/Cat.cs diff --git a/Scripts/Mobiles/Animals/Town Critters/Dog.cs b/Projects/Scripts/Mobiles/Animals/Town Critters/Dog.cs similarity index 100% rename from Scripts/Mobiles/Animals/Town Critters/Dog.cs rename to Projects/Scripts/Mobiles/Animals/Town Critters/Dog.cs diff --git a/Scripts/Mobiles/Animals/Town Critters/Rat.cs b/Projects/Scripts/Mobiles/Animals/Town Critters/Rat.cs similarity index 100% rename from Scripts/Mobiles/Animals/Town Critters/Rat.cs rename to Projects/Scripts/Mobiles/Animals/Town Critters/Rat.cs diff --git a/Scripts/Mobiles/BaseCreature.cs b/Projects/Scripts/Mobiles/BaseCreature.cs similarity index 100% rename from Scripts/Mobiles/BaseCreature.cs rename to Projects/Scripts/Mobiles/BaseCreature.cs diff --git a/Scripts/Mobiles/Familiars/BaseFamiliar.cs b/Projects/Scripts/Mobiles/Familiars/BaseFamiliar.cs similarity index 100% rename from Scripts/Mobiles/Familiars/BaseFamiliar.cs rename to Projects/Scripts/Mobiles/Familiars/BaseFamiliar.cs diff --git a/Scripts/Mobiles/Familiars/DarkWolf.cs b/Projects/Scripts/Mobiles/Familiars/DarkWolf.cs similarity index 100% rename from Scripts/Mobiles/Familiars/DarkWolf.cs rename to Projects/Scripts/Mobiles/Familiars/DarkWolf.cs diff --git a/Scripts/Mobiles/Familiars/DeathAdder.cs b/Projects/Scripts/Mobiles/Familiars/DeathAdder.cs similarity index 100% rename from Scripts/Mobiles/Familiars/DeathAdder.cs rename to Projects/Scripts/Mobiles/Familiars/DeathAdder.cs diff --git a/Scripts/Mobiles/Familiars/HordeMinion.cs b/Projects/Scripts/Mobiles/Familiars/HordeMinion.cs similarity index 100% rename from Scripts/Mobiles/Familiars/HordeMinion.cs rename to Projects/Scripts/Mobiles/Familiars/HordeMinion.cs diff --git a/Scripts/Mobiles/Familiars/ShadowWisp.cs b/Projects/Scripts/Mobiles/Familiars/ShadowWisp.cs similarity index 100% rename from Scripts/Mobiles/Familiars/ShadowWisp.cs rename to Projects/Scripts/Mobiles/Familiars/ShadowWisp.cs diff --git a/Scripts/Mobiles/Familiars/VampireBat.cs b/Projects/Scripts/Mobiles/Familiars/VampireBat.cs similarity index 100% rename from Scripts/Mobiles/Familiars/VampireBat.cs rename to Projects/Scripts/Mobiles/Familiars/VampireBat.cs diff --git a/Scripts/Mobiles/Guards/ArcherGuard.cs b/Projects/Scripts/Mobiles/Guards/ArcherGuard.cs similarity index 100% rename from Scripts/Mobiles/Guards/ArcherGuard.cs rename to Projects/Scripts/Mobiles/Guards/ArcherGuard.cs diff --git a/Scripts/Mobiles/Guards/BaseGuard.cs b/Projects/Scripts/Mobiles/Guards/BaseGuard.cs similarity index 100% rename from Scripts/Mobiles/Guards/BaseGuard.cs rename to Projects/Scripts/Mobiles/Guards/BaseGuard.cs diff --git a/Scripts/Mobiles/Guards/WarriorGuard.cs b/Projects/Scripts/Mobiles/Guards/WarriorGuard.cs similarity index 100% rename from Scripts/Mobiles/Guards/WarriorGuard.cs rename to Projects/Scripts/Mobiles/Guards/WarriorGuard.cs diff --git a/Scripts/Mobiles/Healers/BaseHealer.cs b/Projects/Scripts/Mobiles/Healers/BaseHealer.cs similarity index 100% rename from Scripts/Mobiles/Healers/BaseHealer.cs rename to Projects/Scripts/Mobiles/Healers/BaseHealer.cs diff --git a/Scripts/Mobiles/Healers/EvilHealer.cs b/Projects/Scripts/Mobiles/Healers/EvilHealer.cs similarity index 100% rename from Scripts/Mobiles/Healers/EvilHealer.cs rename to Projects/Scripts/Mobiles/Healers/EvilHealer.cs diff --git a/Scripts/Mobiles/Healers/EvilWanderingHealer.cs b/Projects/Scripts/Mobiles/Healers/EvilWanderingHealer.cs similarity index 100% rename from Scripts/Mobiles/Healers/EvilWanderingHealer.cs rename to Projects/Scripts/Mobiles/Healers/EvilWanderingHealer.cs diff --git a/Scripts/Mobiles/Healers/FortuneTeller.cs b/Projects/Scripts/Mobiles/Healers/FortuneTeller.cs similarity index 100% rename from Scripts/Mobiles/Healers/FortuneTeller.cs rename to Projects/Scripts/Mobiles/Healers/FortuneTeller.cs diff --git a/Scripts/Mobiles/Healers/Healer.cs b/Projects/Scripts/Mobiles/Healers/Healer.cs similarity index 100% rename from Scripts/Mobiles/Healers/Healer.cs rename to Projects/Scripts/Mobiles/Healers/Healer.cs diff --git a/Scripts/Mobiles/Healers/PricedHealer.cs b/Projects/Scripts/Mobiles/Healers/PricedHealer.cs similarity index 100% rename from Scripts/Mobiles/Healers/PricedHealer.cs rename to Projects/Scripts/Mobiles/Healers/PricedHealer.cs diff --git a/Scripts/Mobiles/Healers/WanderingHealer.cs b/Projects/Scripts/Mobiles/Healers/WanderingHealer.cs similarity index 100% rename from Scripts/Mobiles/Healers/WanderingHealer.cs rename to Projects/Scripts/Mobiles/Healers/WanderingHealer.cs diff --git a/Scripts/Mobiles/Monsters/AOS/AbysmalHorror.cs b/Projects/Scripts/Mobiles/Monsters/AOS/AbysmalHorror.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/AbysmalHorror.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/AbysmalHorror.cs diff --git a/Scripts/Mobiles/Monsters/AOS/BoneDemon.cs b/Projects/Scripts/Mobiles/Monsters/AOS/BoneDemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/BoneDemon.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/BoneDemon.cs diff --git a/Scripts/Mobiles/Monsters/AOS/CrystalElemental.cs b/Projects/Scripts/Mobiles/Monsters/AOS/CrystalElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/CrystalElemental.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/CrystalElemental.cs diff --git a/Scripts/Mobiles/Monsters/AOS/DarknightCreeper.cs b/Projects/Scripts/Mobiles/Monsters/AOS/DarknightCreeper.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/DarknightCreeper.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/DarknightCreeper.cs diff --git a/Scripts/Mobiles/Monsters/AOS/DemonKnight.cs b/Projects/Scripts/Mobiles/Monsters/AOS/DemonKnight.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/DemonKnight.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/DemonKnight.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Devourer.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Devourer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Devourer.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Devourer.cs diff --git a/Scripts/Mobiles/Monsters/AOS/FleshGolem.cs b/Projects/Scripts/Mobiles/Monsters/AOS/FleshGolem.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/FleshGolem.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/FleshGolem.cs diff --git a/Scripts/Mobiles/Monsters/AOS/FleshRenderer.cs b/Projects/Scripts/Mobiles/Monsters/AOS/FleshRenderer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/FleshRenderer.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/FleshRenderer.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Gibberling.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Gibberling.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Gibberling.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Gibberling.cs diff --git a/Scripts/Mobiles/Monsters/AOS/GoreFiend.cs b/Projects/Scripts/Mobiles/Monsters/AOS/GoreFiend.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/GoreFiend.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/GoreFiend.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Impaler.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Impaler.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Impaler.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Impaler.cs diff --git a/Scripts/Mobiles/Monsters/AOS/MoundOfMaggots.cs b/Projects/Scripts/Mobiles/Monsters/AOS/MoundOfMaggots.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/MoundOfMaggots.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/MoundOfMaggots.cs diff --git a/Scripts/Mobiles/Monsters/AOS/PatchworkSkeleton.cs b/Projects/Scripts/Mobiles/Monsters/AOS/PatchworkSkeleton.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/PatchworkSkeleton.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/PatchworkSkeleton.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Ravager.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Ravager.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Ravager.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Ravager.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Revenant.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Revenant.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Revenant.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Revenant.cs diff --git a/Scripts/Mobiles/Monsters/AOS/ShadowKnight.cs b/Projects/Scripts/Mobiles/Monsters/AOS/ShadowKnight.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/ShadowKnight.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/ShadowKnight.cs diff --git a/Scripts/Mobiles/Monsters/AOS/SkitteringHopper.cs b/Projects/Scripts/Mobiles/Monsters/AOS/SkitteringHopper.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/SkitteringHopper.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/SkitteringHopper.cs diff --git a/Scripts/Mobiles/Monsters/AOS/Treefellow.cs b/Projects/Scripts/Mobiles/Monsters/AOS/Treefellow.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/Treefellow.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/Treefellow.cs diff --git a/Scripts/Mobiles/Monsters/AOS/VampireBat.cs b/Projects/Scripts/Mobiles/Monsters/AOS/VampireBat.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/VampireBat.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/VampireBat.cs diff --git a/Scripts/Mobiles/Monsters/AOS/WailingBanshee.cs b/Projects/Scripts/Mobiles/Monsters/AOS/WailingBanshee.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/WailingBanshee.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/WailingBanshee.cs diff --git a/Scripts/Mobiles/Monsters/AOS/WandererOfTheVoid.cs b/Projects/Scripts/Mobiles/Monsters/AOS/WandererOfTheVoid.cs similarity index 100% rename from Scripts/Mobiles/Monsters/AOS/WandererOfTheVoid.cs rename to Projects/Scripts/Mobiles/Monsters/AOS/WandererOfTheVoid.cs diff --git a/Scripts/Mobiles/Monsters/Ants/AntLion.cs b/Projects/Scripts/Mobiles/Monsters/Ants/AntLion.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/AntLion.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/AntLion.cs diff --git a/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorQueen.cs b/Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorQueen.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorQueen.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorQueen.cs diff --git a/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenInfiltratorWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Ants/BlackSolenQueen.cs b/Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenQueen.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/BlackSolenQueen.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenQueen.cs diff --git a/Scripts/Mobiles/Monsters/Ants/BlackSolenWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/BlackSolenWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Ants/BlackSolenWorker.cs b/Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenWorker.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/BlackSolenWorker.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/BlackSolenWorker.cs diff --git a/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorQueen.cs b/Projects/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorQueen.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorQueen.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorQueen.cs diff --git a/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/RedSolenInfiltratorWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Ants/RedSolenQueen.cs b/Projects/Scripts/Mobiles/Monsters/Ants/RedSolenQueen.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/RedSolenQueen.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/RedSolenQueen.cs diff --git a/Scripts/Mobiles/Monsters/Ants/RedSolenWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Ants/RedSolenWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/RedSolenWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/RedSolenWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Ants/RedSolenWorker.cs b/Projects/Scripts/Mobiles/Monsters/Ants/RedSolenWorker.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/RedSolenWorker.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/RedSolenWorker.cs diff --git a/Scripts/Mobiles/Monsters/Ants/SolenHelper.cs b/Projects/Scripts/Mobiles/Monsters/Ants/SolenHelper.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ants/SolenHelper.cs rename to Projects/Scripts/Mobiles/Monsters/Ants/SolenHelper.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Magic/DreadSpider.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/DreadSpider.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Magic/DreadSpider.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/DreadSpider.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanAvenger.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanAvenger.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanAvenger.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanAvenger.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanMatriarch.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanMatriarch.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanMatriarch.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Magic/TerathanMatriarch.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Melee/FrostSpider.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/FrostSpider.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Melee/FrostSpider.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/FrostSpider.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantBlackWidow.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantBlackWidow.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Melee/GiantBlackWidow.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantBlackWidow.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantSpider.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantSpider.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Melee/GiantSpider.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/GiantSpider.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanDrone.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanDrone.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanDrone.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanDrone.cs diff --git a/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Arachnid/Melee/TerathanWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/AcidElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/AirElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/BloodElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/Efreet.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/FireElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/IceElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/PoisonElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Melee/EarthElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Melee/EarthElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Melee/EarthElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Melee/EarthElemental.cs diff --git a/Scripts/Mobiles/Monsters/Elemental/Melee/SnowElemental.cs b/Projects/Scripts/Mobiles/Monsters/Elemental/Melee/SnowElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Elemental/Melee/SnowElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Elemental/Melee/SnowElemental.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/AncientLich.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/AncientLich.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/AncientLich.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/AncientLich.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/ArcaneDaemon.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/ArcaneDaemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/ArcaneDaemon.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/ArcaneDaemon.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Balron.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Balron.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Balron.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Balron.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Betrayer.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Betrayer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Betrayer.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Betrayer.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Bogle.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Bogle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Bogle.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Bogle.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/BoneMagi.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/BoneMagi.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/BoneMagi.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/BoneMagi.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Daemon.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Daemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Daemon.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Daemon.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/ElderGazer.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/ElderGazer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/ElderGazer.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/ElderGazer.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMage.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMage.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMage.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMageLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMageLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMageLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/EvilMageLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/FireGargoyle.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/FireGargoyle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/FireGargoyle.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/FireGargoyle.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Gargoyle.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Gargoyle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Gargoyle.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Gargoyle.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleDestroyer.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleDestroyer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleDestroyer.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleDestroyer.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleEnforcer.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleEnforcer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleEnforcer.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GargoyleEnforcer.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Gazer.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Gazer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Gazer.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Gazer.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/GolemController.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GolemController.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/GolemController.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/GolemController.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/IceFiend.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/IceFiend.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/IceFiend.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/IceFiend.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Imp.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Imp.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Imp.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Imp.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Lich.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Lich.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Lich.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Lich.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/LichLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/LichLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/LichLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/LichLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/OrcishMage.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/OrcishMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/OrcishMage.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/OrcishMage.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/RatmanMage.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/RatmanMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/RatmanMage.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/RatmanMage.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/SavageShaman.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/SavageShaman.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/SavageShaman.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/SavageShaman.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Shade.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Shade.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Shade.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Shade.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/SkeletalMage.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/SkeletalMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/SkeletalMage.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/SkeletalMage.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Spectre.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Spectre.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Spectre.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Spectre.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Succubus.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Succubus.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Succubus.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Succubus.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Titan.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Magic/Wraith.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Wraith.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Magic/Wraith.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Magic/Wraith.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/ArcticOgreLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ArcticOgreLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/ArcticOgreLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ArcticOgreLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/BoneKnight.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/BoneKnight.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/BoneKnight.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/BoneKnight.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Brigand.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Brigand.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Brigand.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Brigand.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/ChaosDaemon.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ChaosDaemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/ChaosDaemon.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ChaosDaemon.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Cursed.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Cursed.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Cursed.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Cursed.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Cyclops.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Cyclops.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Cyclops.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Cyclops.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Doppleganger.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Doppleganger.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Doppleganger.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Doppleganger.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ElfBrigand.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/EnslavedGargoyle.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/EnslavedGargoyle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/EnslavedGargoyle.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/EnslavedGargoyle.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Ettin.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ettin.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Ettin.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ettin.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Executioner.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Executioner.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Executioner.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Executioner.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/FrostTroll.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/FrostTroll.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/FrostTroll.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/FrostTroll.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/GazerLarva.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/GazerLarva.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/GazerLarva.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/GazerLarva.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Ghoul.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ghoul.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Ghoul.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ghoul.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/GreaterMongbat.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/GreaterMongbat.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/GreaterMongbat.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/GreaterMongbat.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Guardian.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Guardian.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Guardian.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Guardian.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/HeadlessOne.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/HeadlessOne.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/HeadlessOne.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/HeadlessOne.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/HordeMinion.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/HordeMinion.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/HordeMinion.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/HordeMinion.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Juggernaut.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Juggernaut.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Juggernaut.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Juggernaut.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunRevenant.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunRevenant.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunRevenant.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunRevenant.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunSummoner.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunSummoner.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunSummoner.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunSummoner.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunZealot.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunZealot.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunZealot.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/KhaldunZealot.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Moloch.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Moloch.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Moloch.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Moloch.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Mongbat.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Mongbat.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Mongbat.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Mongbat.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Mummy.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Ogre.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ogre.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Ogre.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ogre.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/OgreLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OgreLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/OgreLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OgreLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Orc.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Orc.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Orc.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Orc.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBomber.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBomber.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBomber.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBomber.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBrute.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBrute.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBrute.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcBrute.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcCaptain.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/OrcishLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Ratman.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ratman.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Ratman.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Ratman.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/RatmanArcher.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RatmanArcher.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/RatmanArcher.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RatmanArcher.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/RestlessSoul.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RestlessSoul.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/RestlessSoul.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RestlessSoul.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/RottingCorpse.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RottingCorpse.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/RottingCorpse.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/RottingCorpse.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Savage.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Savage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Savage.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Savage.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/SavageRider.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SavageRider.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/SavageRider.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SavageRider.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/ShadowFiend.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ShadowFiend.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/ShadowFiend.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/ShadowFiend.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/SkeletalKnight.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SkeletalKnight.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/SkeletalKnight.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SkeletalKnight.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Skeleton.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Skeleton.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Skeleton.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Skeleton.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/SpawnedOrcishLord.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SpawnedOrcishLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/SpawnedOrcishLord.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SpawnedOrcishLord.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/SpectralArmour.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/StoneGargoyle.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/StoneGargoyle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/StoneGargoyle.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/StoneGargoyle.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/StrongMongbat.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/StrongMongbat.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/StrongMongbat.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/StrongMongbat.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Troll.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Troll.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Troll.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Troll.cs diff --git a/Scripts/Mobiles/Monsters/Humanoid/Melee/Zombie.cs b/Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Zombie.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Humanoid/Melee/Zombie.cs rename to Projects/Scripts/Mobiles/Monsters/Humanoid/Melee/Zombie.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusMinion.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusMinion.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Exodus/ExodusMinion.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusMinion.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusOverseer.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusOverseer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Exodus/ExodusOverseer.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Exodus/ExodusOverseer.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoon.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Jukas/ChaosDragoonElite.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Jukas/JukaLord.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Jukas/JukaLord.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaLord.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaMage.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Jukas/JukaWarrior.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Jukas/JukaWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Jukas/JukaWarrior.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Meers/EnragedCreatures.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Meers/EnragedCreatures.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Meers/EnragedCreatures.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Meers/EnragedCreatures.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerCaptain.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Meers/MeerEternal.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerEternal.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Meers/MeerEternal.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerEternal.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Meers/MeerMage.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Meers/MeerMage.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerMage.cs diff --git a/Scripts/Mobiles/Monsters/LBR/Meers/MeerWarrior.cs b/Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/LBR/Meers/MeerWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/LBR/Meers/MeerWarrior.cs diff --git a/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs b/Projects/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Animal/CuSidhe.cs diff --git a/Scripts/Mobiles/Monsters/ML/Animal/Ferret.cs b/Projects/Scripts/Mobiles/Monsters/ML/Animal/Ferret.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Animal/Ferret.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Animal/Ferret.cs diff --git a/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs b/Projects/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Animal/RagingGrizzlyBear.cs diff --git a/Scripts/Mobiles/Monsters/ML/Animal/Squirrel.cs b/Projects/Scripts/Mobiles/Monsters/ML/Animal/Squirrel.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Animal/Squirrel.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Animal/Squirrel.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/LadyJennifyr.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/LadyMarai.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterJonath.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterMikael.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/MasterTheophilus.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/RedDeath.cs diff --git a/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs b/Projects/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Bedlam/SirPatrick.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Abscess.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Abscess.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Abscess.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Abscess.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Coil.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Coil.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Coil.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Coil.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/EnslavedSatyr.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/EnslavedSatyr.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/EnslavedSatyr.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/EnslavedSatyr.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Hydra.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Hydra.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Hydra.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Hydra.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/InsaneDryad.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/InsaneDryad.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/InsaneDryad.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/InsaneDryad.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Saliva.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Saliva.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Saliva.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Saliva.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Tangle.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Tangle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Tangle.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Tangle.cs diff --git a/Scripts/Mobiles/Monsters/ML/Blighted Grove/Thrasher.cs b/Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Thrasher.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Blighted Grove/Thrasher.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Blighted Grove/Thrasher.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/FetidEssence.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/InterredGrizzle .cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/MLDryad.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Magic/Satyr.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/CorruptedSoul.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/FerelTreefellow.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Minotaur.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurCaptain.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/MinotaurScout.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/PestilentBandage.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Tormented Minotaur.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Tormented Minotaur.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Tormented Minotaur.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Tormented Minotaur.cs diff --git a/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs b/Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Humanoid/Melee/Troglodyte.cs diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs b/Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Miasma.cs diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs b/Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Pyre.cs diff --git a/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs b/Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Labyrinth/Rend.cs diff --git a/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs b/Projects/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Misc/Magic/GreaterDragon.cs diff --git a/Scripts/Mobiles/Monsters/ML/Misc/Melee/CorrosiveSlime.cs b/Projects/Scripts/Mobiles/Monsters/ML/Misc/Melee/CorrosiveSlime.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Misc/Melee/CorrosiveSlime.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Misc/Melee/CorrosiveSlime.cs diff --git a/Scripts/Mobiles/Monsters/ML/Misc/Melee/Reptalon.cs b/Projects/Scripts/Mobiles/Monsters/ML/Misc/Melee/Reptalon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Misc/Melee/Reptalon.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Misc/Melee/Reptalon.cs diff --git a/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs b/Projects/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Painted Caves/Grobu.cs diff --git a/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs b/Projects/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Painted Caves/Lurg.cs diff --git a/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs b/Projects/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Palace of Paroxysmus/Putrefier.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CorporealBrume.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CorporealBrume.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CorporealBrume.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CorporealBrume.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalDaemon.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalDaemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalDaemon.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalDaemon.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalLatticeSeeker.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalLatticeSeeker.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalLatticeSeeker.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalLatticeSeeker.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalSeaSerpent.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalSeaSerpent.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalSeaSerpent.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalSeaSerpent.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalVortex.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalVortex.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalVortex.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalVortex.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalWisp.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalWisp.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalWisp.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/CrystalWisp.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/MantraEffervescence.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/MantraEffervescence.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/MantraEffervescence.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/MantraEffervescence.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/Protector.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/Protector.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/Protector.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/Protector.cs diff --git a/Scripts/Mobiles/Monsters/ML/Prism of Light/UnfrozenMummy.cs b/Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/UnfrozenMummy.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Prism of Light/UnfrozenMummy.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Prism of Light/UnfrozenMummy.cs diff --git a/Scripts/Mobiles/Monsters/ML/Sanctuary/Chiikkaha.cs b/Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/Chiikkaha.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Sanctuary/Chiikkaha.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/Chiikkaha.cs diff --git a/Scripts/Mobiles/Monsters/ML/Sanctuary/MougGuur.cs b/Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/MougGuur.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Sanctuary/MougGuur.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/MougGuur.cs diff --git a/Scripts/Mobiles/Monsters/ML/Sanctuary/Szavetra.cs b/Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/Szavetra.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Sanctuary/Szavetra.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Sanctuary/Szavetra.cs diff --git a/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs b/Projects/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Special/Ilhenir.cs diff --git a/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs b/Projects/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Special/Meraktus.cs diff --git a/Scripts/Mobiles/Monsters/ML/Special/Twaulo.cs b/Projects/Scripts/Mobiles/Monsters/ML/Special/Twaulo.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Special/Twaulo.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Special/Twaulo.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Changeling.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Changeling.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Changeling.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Changeling.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Gnaw.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Guile.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Irk.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadyLissith.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/LadySabrix.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Malefic.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Silk.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Spite.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Swoop.cs diff --git a/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs b/Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs similarity index 100% rename from Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs rename to Projects/Scripts/Mobiles/Monsters/ML/Twisted Weald/Virulent.cs diff --git a/Scripts/Mobiles/Monsters/Mammal/Melee/HellHound.cs b/Projects/Scripts/Mobiles/Monsters/Mammal/Melee/HellHound.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Mammal/Melee/HellHound.cs rename to Projects/Scripts/Mobiles/Monsters/Mammal/Melee/HellHound.cs diff --git a/Scripts/Mobiles/Monsters/Mammal/Melee/VorpalBunny.cs b/Projects/Scripts/Mobiles/Monsters/Mammal/Melee/VorpalBunny.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Mammal/Melee/VorpalBunny.cs rename to Projects/Scripts/Mobiles/Monsters/Mammal/Melee/VorpalBunny.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/DarkWisp.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Magic/DarkWisp.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Magic/DarkWisp.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Magic/DarkWisp.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/EtherealWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Magic/EtherealWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Magic/EtherealWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Magic/EtherealWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/Pixie.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Magic/Pixie.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Magic/Pixie.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Magic/Pixie.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Magic/ShadowWisp.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Magic/Wisp.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/AnimatedWeapon.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/AnimatedWeapon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/AnimatedWeapon.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/AnimatedWeapon.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/BladeSpirits.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/BladeSpirits.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/BladeSpirits.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/BladeSpirits.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/Centaur.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/Centaur.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/Centaur.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/Centaur.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/EnergyVortex.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/EnergyVortex.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/EnergyVortex.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/EnergyVortex.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/FrostOoze.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/FrostOoze.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/FrostOoze.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/FrostOoze.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/Golem.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/Golem.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/Golem.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/Golem.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeast.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeastLord.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeastLord.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeastLord.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueBeastLord.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/PlagueSpawn.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/SandVortex.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/SandVortex.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/SandVortex.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/SandVortex.cs diff --git a/Scripts/Mobiles/Monsters/Misc/Melee/Slime.cs b/Projects/Scripts/Mobiles/Monsters/Misc/Melee/Slime.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Misc/Melee/Slime.cs rename to Projects/Scripts/Mobiles/Monsters/Misc/Melee/Slime.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/AgapiteElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/AgapiteElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/AgapiteElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/AgapiteElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/BronzeElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/BronzeElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/BronzeElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/BronzeElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/CopperElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/CopperElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/CopperElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/CopperElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/DullCopperElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/DullCopperElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/DullCopperElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/DullCopperElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/GoldenElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/GoldenElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/GoldenElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/GoldenElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/ShadowIronElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/ShadowIronElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/ShadowIronElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/ShadowIronElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/ValoriteElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/ValoriteElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/ValoriteElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/ValoriteElemental.cs diff --git a/Scripts/Mobiles/Monsters/Ore Elementals/VeriteElemental.cs b/Projects/Scripts/Mobiles/Monsters/Ore Elementals/VeriteElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Ore Elementals/VeriteElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Ore Elementals/VeriteElemental.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Magic/Reaper.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Magic/Reaper.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Magic/Reaper.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Magic/Reaper.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/BogThing.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/BogThing.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/BogThing.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/BogThing.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/Bogling.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/Bogling.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/Bogling.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/Bogling.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/Corpser.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/Corpser.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/Corpser.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/Corpser.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/Quagmire.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/Quagmire.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/Quagmire.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/Quagmire.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/SwampTentacle.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/SwampTentacle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/SwampTentacle.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/SwampTentacle.cs diff --git a/Scripts/Mobiles/Monsters/Plant/Melee/WhippingVine.cs b/Projects/Scripts/Mobiles/Monsters/Plant/Melee/WhippingVine.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Plant/Melee/WhippingVine.cs rename to Projects/Scripts/Mobiles/Monsters/Plant/Melee/WhippingVine.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/AncientWyrm.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/DeepSeaSerpent.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/Dragon.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/Leviathan.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianArchmage.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMage.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/OphidianMatriarch.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SeaSerpent.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SerpentineDragon.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/ShadowWyrm.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/SkeletalDragon.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Magic/WhiteWyrm.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Drake.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Drake.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Drake.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Drake.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Harpy.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Harpy.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Harpy.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Harpy.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Kraken.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Kraken.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Kraken.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Kraken.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Lizardman.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Lizardman.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Lizardman.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Lizardman.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianKnight.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianKnight.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/OphidianKnight.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianKnight.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianWarrior.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/OphidianWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/OphidianWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Scorpion.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Scorpion.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Scorpion.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Scorpion.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/StoneHarpy.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/StoneHarpy.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/StoneHarpy.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/StoneHarpy.cs diff --git a/Scripts/Mobiles/Monsters/Reptile/Melee/Wyvern.cs b/Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Wyvern.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Reptile/Melee/Wyvern.cs rename to Projects/Scripts/Mobiles/Monsters/Reptile/Melee/Wyvern.cs diff --git a/Scripts/Mobiles/Monsters/SE/BakeKitsune.cs b/Projects/Scripts/Mobiles/Monsters/SE/BakeKitsune.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/BakeKitsune.cs rename to Projects/Scripts/Mobiles/Monsters/SE/BakeKitsune.cs diff --git a/Scripts/Mobiles/Monsters/SE/DeathWatchBeetle.cs b/Projects/Scripts/Mobiles/Monsters/SE/DeathWatchBeetle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/DeathWatchBeetle.cs rename to Projects/Scripts/Mobiles/Monsters/SE/DeathWatchBeetle.cs diff --git a/Scripts/Mobiles/Monsters/SE/DeathWatchBeetleHatchling.cs b/Projects/Scripts/Mobiles/Monsters/SE/DeathWatchBeetleHatchling.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/DeathWatchBeetleHatchling.cs rename to Projects/Scripts/Mobiles/Monsters/SE/DeathWatchBeetleHatchling.cs diff --git a/Scripts/Mobiles/Monsters/SE/EliteNinja.cs b/Projects/Scripts/Mobiles/Monsters/SE/EliteNinja.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/EliteNinja.cs rename to Projects/Scripts/Mobiles/Monsters/SE/EliteNinja.cs diff --git a/Scripts/Mobiles/Monsters/SE/FanDancer.cs b/Projects/Scripts/Mobiles/Monsters/SE/FanDancer.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/FanDancer.cs rename to Projects/Scripts/Mobiles/Monsters/SE/FanDancer.cs diff --git a/Scripts/Mobiles/Monsters/SE/FireBeetle.cs b/Projects/Scripts/Mobiles/Monsters/SE/FireBeetle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/FireBeetle.cs rename to Projects/Scripts/Mobiles/Monsters/SE/FireBeetle.cs diff --git a/Scripts/Mobiles/Monsters/SE/Kappa.cs b/Projects/Scripts/Mobiles/Monsters/SE/Kappa.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/Kappa.cs rename to Projects/Scripts/Mobiles/Monsters/SE/Kappa.cs diff --git a/Scripts/Mobiles/Monsters/SE/KazeKemono.cs b/Projects/Scripts/Mobiles/Monsters/SE/KazeKemono.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/KazeKemono.cs rename to Projects/Scripts/Mobiles/Monsters/SE/KazeKemono.cs diff --git a/Scripts/Mobiles/Monsters/SE/LadyOfTheSnow.cs b/Projects/Scripts/Mobiles/Monsters/SE/LadyOfTheSnow.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/LadyOfTheSnow.cs rename to Projects/Scripts/Mobiles/Monsters/SE/LadyOfTheSnow.cs diff --git a/Scripts/Mobiles/Monsters/SE/Oni.cs b/Projects/Scripts/Mobiles/Monsters/SE/Oni.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/Oni.cs rename to Projects/Scripts/Mobiles/Monsters/SE/Oni.cs diff --git a/Scripts/Mobiles/Monsters/SE/RaiJu.cs b/Projects/Scripts/Mobiles/Monsters/SE/RaiJu.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/RaiJu.cs rename to Projects/Scripts/Mobiles/Monsters/SE/RaiJu.cs diff --git a/Scripts/Mobiles/Monsters/SE/RevenantLion.cs b/Projects/Scripts/Mobiles/Monsters/SE/RevenantLion.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/RevenantLion.cs rename to Projects/Scripts/Mobiles/Monsters/SE/RevenantLion.cs diff --git a/Scripts/Mobiles/Monsters/SE/Ronin.cs b/Projects/Scripts/Mobiles/Monsters/SE/Ronin.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/Ronin.cs rename to Projects/Scripts/Mobiles/Monsters/SE/Ronin.cs diff --git a/Scripts/Mobiles/Monsters/SE/RuneBeetle.cs b/Projects/Scripts/Mobiles/Monsters/SE/RuneBeetle.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/RuneBeetle.cs rename to Projects/Scripts/Mobiles/Monsters/SE/RuneBeetle.cs diff --git a/Scripts/Mobiles/Monsters/SE/TsukiWolf.cs b/Projects/Scripts/Mobiles/Monsters/SE/TsukiWolf.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/TsukiWolf.cs rename to Projects/Scripts/Mobiles/Monsters/SE/TsukiWolf.cs diff --git a/Scripts/Mobiles/Monsters/SE/Yamandon.cs b/Projects/Scripts/Mobiles/Monsters/SE/Yamandon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/Yamandon.cs rename to Projects/Scripts/Mobiles/Monsters/SE/Yamandon.cs diff --git a/Scripts/Mobiles/Monsters/SE/YomotsuElder.cs b/Projects/Scripts/Mobiles/Monsters/SE/YomotsuElder.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/YomotsuElder.cs rename to Projects/Scripts/Mobiles/Monsters/SE/YomotsuElder.cs diff --git a/Scripts/Mobiles/Monsters/SE/YomotsuPriest.cs b/Projects/Scripts/Mobiles/Monsters/SE/YomotsuPriest.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/YomotsuPriest.cs rename to Projects/Scripts/Mobiles/Monsters/SE/YomotsuPriest.cs diff --git a/Scripts/Mobiles/Monsters/SE/YomotsuWarrior.cs b/Projects/Scripts/Mobiles/Monsters/SE/YomotsuWarrior.cs similarity index 100% rename from Scripts/Mobiles/Monsters/SE/YomotsuWarrior.cs rename to Projects/Scripts/Mobiles/Monsters/SE/YomotsuWarrior.cs diff --git a/Scripts/Mobiles/Monsters/Summons/SummonedAirElemental.cs b/Projects/Scripts/Mobiles/Monsters/Summons/SummonedAirElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Summons/SummonedAirElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Summons/SummonedAirElemental.cs diff --git a/Scripts/Mobiles/Monsters/Summons/SummonedDaemon.cs b/Projects/Scripts/Mobiles/Monsters/Summons/SummonedDaemon.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Summons/SummonedDaemon.cs rename to Projects/Scripts/Mobiles/Monsters/Summons/SummonedDaemon.cs diff --git a/Scripts/Mobiles/Monsters/Summons/SummonedEarthElemental.cs b/Projects/Scripts/Mobiles/Monsters/Summons/SummonedEarthElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Summons/SummonedEarthElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Summons/SummonedEarthElemental.cs diff --git a/Scripts/Mobiles/Monsters/Summons/SummonedFireElemental.cs b/Projects/Scripts/Mobiles/Monsters/Summons/SummonedFireElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Summons/SummonedFireElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Summons/SummonedFireElemental.cs diff --git a/Scripts/Mobiles/Monsters/Summons/SummonedWaterElemental.cs b/Projects/Scripts/Mobiles/Monsters/Summons/SummonedWaterElemental.cs similarity index 100% rename from Scripts/Mobiles/Monsters/Summons/SummonedWaterElemental.cs rename to Projects/Scripts/Mobiles/Monsters/Summons/SummonedWaterElemental.cs diff --git a/Scripts/Mobiles/PlayerMobile.cs b/Projects/Scripts/Mobiles/PlayerMobile.cs similarity index 95% rename from Scripts/Mobiles/PlayerMobile.cs rename to Projects/Scripts/Mobiles/PlayerMobile.cs index f950be625..12a8a58d5 100644 --- a/Scripts/Mobiles/PlayerMobile.cs +++ b/Projects/Scripts/Mobiles/PlayerMobile.cs @@ -10,7 +10,6 @@ using Server.Engines.Craft; using Server.Engines.Help; using Server.Engines.MLQuests; using Server.Engines.MLQuests.Gumps; -using Server.Engines.MyRunUO; using Server.Engines.PartySystem; using Server.Engines.Quests; using Server.Ethics; @@ -155,15 +154,12 @@ namespace Server.Mobiles m_GuildRank = RankDefinition.Lowest; ChampionTitles = new ChampionTitleInfo(); - - InvalidateMyRunUO(); } public PlayerMobile(Serial s) : base(s) { VisibilityList = new List(); m_AntiMacroTable = new Dictionary>(); - InvalidateMyRunUO(); } [CommandProperty(AccessLevel.GameMaster)] @@ -943,9 +939,6 @@ namespace Server.Mobiles if ((flag & MobileDelta.Stat) != 0) ValidateEquipment(); - - if ((flag & (MobileDelta.Name | MobileDelta.Hue)) != 0) - InvalidateMyRunUO(); } private static void OnLogout(LogoutEventArgs e) @@ -1100,8 +1093,6 @@ namespace Server.Mobiles if (NetState != null) CheckLightLevels(false); - - InvalidateMyRunUO(); } public override void OnItemRemoved(Item item) @@ -1117,8 +1108,6 @@ namespace Server.Mobiles if (NetState != null) CheckLightLevels(false); - - InvalidateMyRunUO(); } private void AddArmorRating(ref double rating, Item armor) @@ -3095,11 +3084,7 @@ namespace Server.Mobiles public bool PublicMyRunUO { get => GetFlag(PlayerFlag.PublicMyRunUO); - set - { - SetFlag(PlayerFlag.PublicMyRunUO, value); - InvalidateMyRunUO(); - } + set => SetFlag(PlayerFlag.PublicMyRunUO, value); } [CommandProperty(AccessLevel.GameMaster)] @@ -3868,45 +3853,29 @@ namespace Server.Mobiles public bool ChangedMyRunUO{ get; set; } - public void InvalidateMyRunUO() - { - if (!Deleted && !ChangedMyRunUO) - { - ChangedMyRunUO = true; - MyRunUO.QueueMobileUpdate(this); - } - } - public override void OnKillsChange(int oldValue) { if (Young && Kills > oldValue) ((Account)Account)?.RemoveYoungStatus(0); - - InvalidateMyRunUO(); } public override void OnGenderChanged(bool oldFemale) { - InvalidateMyRunUO(); } public override void OnGuildChange(BaseGuild oldGuild) { - InvalidateMyRunUO(); } public override void OnGuildTitleChange(string oldTitle) { - InvalidateMyRunUO(); } public override void OnKarmaChange(int oldValue) { - InvalidateMyRunUO(); } public override void OnFameChange(int oldValue) { - InvalidateMyRunUO(); } public override void OnSkillChange(SkillName skill, double oldBase) @@ -3918,31 +3887,21 @@ namespace Server.Mobiles if (MLQuestSystem.Enabled) MLQuestSystem.HandleSkillGain(this, skill); - - InvalidateMyRunUO(); } public override void OnAccessLevelChanged(AccessLevel oldLevel) { - if (AccessLevel == AccessLevel.Player) - IgnoreMobiles = false; - else - IgnoreMobiles = true; - - InvalidateMyRunUO(); + IgnoreMobiles = AccessLevel != AccessLevel.Player; } public override void OnRawStatChange(StatType stat, int oldValue) { - InvalidateMyRunUO(); } public override void OnDelete() { ReceivedHonorContext?.Cancel(); SentHonorContext?.Cancel(); - - InvalidateMyRunUO(); } #endregion @@ -3979,17 +3938,17 @@ namespace Server.Mobiles return running ? RunFoot : WalkFoot; } - public static bool MovementThrottle_Callback(NetState ns) + public static TimeSpan MovementThrottle_Callback(NetState ns) { if (!(ns.Mobile is PlayerMobile pm) || !pm.UsesFastwalkPrevention) - return true; + return TimeSpan.Zero; if (!pm.m_HasMoved) { // has not yet moved pm.m_NextMovementTime = Core.TickCount; pm.m_HasMoved = true; - return true; + return TimeSpan.Zero; } long ts = pm.m_NextMovementTime - Core.TickCount; @@ -3998,10 +3957,10 @@ namespace Server.Mobiles { // been a while since we've last moved pm.m_NextMovementTime = Core.TickCount; - return true; + return TimeSpan.Zero; } - return ts < FastwalkThreshold; + return ts < FastwalkThreshold ? TimeSpan.Zero : TimeSpan.FromTicks(ts); } #endregion diff --git a/Scripts/Mobiles/Special/Barracoon.cs b/Projects/Scripts/Mobiles/Special/Barracoon.cs similarity index 100% rename from Scripts/Mobiles/Special/Barracoon.cs rename to Projects/Scripts/Mobiles/Special/Barracoon.cs diff --git a/Scripts/Mobiles/Special/BaseChampion.cs b/Projects/Scripts/Mobiles/Special/BaseChampion.cs similarity index 100% rename from Scripts/Mobiles/Special/BaseChampion.cs rename to Projects/Scripts/Mobiles/Special/BaseChampion.cs diff --git a/Scripts/Mobiles/Special/BaseShieldGuard.cs b/Projects/Scripts/Mobiles/Special/BaseShieldGuard.cs similarity index 100% rename from Scripts/Mobiles/Special/BaseShieldGuard.cs rename to Projects/Scripts/Mobiles/Special/BaseShieldGuard.cs diff --git a/Scripts/Mobiles/Special/CapturedHordeMinion.cs b/Projects/Scripts/Mobiles/Special/CapturedHordeMinion.cs similarity index 100% rename from Scripts/Mobiles/Special/CapturedHordeMinion.cs rename to Projects/Scripts/Mobiles/Special/CapturedHordeMinion.cs diff --git a/Scripts/Mobiles/Special/ChaosGuard.cs b/Projects/Scripts/Mobiles/Special/ChaosGuard.cs similarity index 100% rename from Scripts/Mobiles/Special/ChaosGuard.cs rename to Projects/Scripts/Mobiles/Special/ChaosGuard.cs diff --git a/Scripts/Mobiles/Special/DarkGuardian.cs b/Projects/Scripts/Mobiles/Special/DarkGuardian.cs similarity index 100% rename from Scripts/Mobiles/Special/DarkGuardian.cs rename to Projects/Scripts/Mobiles/Special/DarkGuardian.cs diff --git a/Scripts/Mobiles/Special/Dummy.cs b/Projects/Scripts/Mobiles/Special/Dummy.cs similarity index 100% rename from Scripts/Mobiles/Special/Dummy.cs rename to Projects/Scripts/Mobiles/Special/Dummy.cs diff --git a/Scripts/Mobiles/Special/DummySpecific.cs b/Projects/Scripts/Mobiles/Special/DummySpecific.cs similarity index 100% rename from Scripts/Mobiles/Special/DummySpecific.cs rename to Projects/Scripts/Mobiles/Special/DummySpecific.cs diff --git a/Scripts/Mobiles/Special/Harrower.cs b/Projects/Scripts/Mobiles/Special/Harrower.cs similarity index 100% rename from Scripts/Mobiles/Special/Harrower.cs rename to Projects/Scripts/Mobiles/Special/Harrower.cs diff --git a/Scripts/Mobiles/Special/HarrowerTentacles.cs b/Projects/Scripts/Mobiles/Special/HarrowerTentacles.cs similarity index 100% rename from Scripts/Mobiles/Special/HarrowerTentacles.cs rename to Projects/Scripts/Mobiles/Special/HarrowerTentacles.cs diff --git a/Scripts/Mobiles/Special/LordOaks.cs b/Projects/Scripts/Mobiles/Special/LordOaks.cs similarity index 100% rename from Scripts/Mobiles/Special/LordOaks.cs rename to Projects/Scripts/Mobiles/Special/LordOaks.cs diff --git a/Scripts/Mobiles/Special/Mephitis.cs b/Projects/Scripts/Mobiles/Special/Mephitis.cs similarity index 100% rename from Scripts/Mobiles/Special/Mephitis.cs rename to Projects/Scripts/Mobiles/Special/Mephitis.cs diff --git a/Scripts/Mobiles/Special/Neira.cs b/Projects/Scripts/Mobiles/Special/Neira.cs similarity index 100% rename from Scripts/Mobiles/Special/Neira.cs rename to Projects/Scripts/Mobiles/Special/Neira.cs diff --git a/Scripts/Mobiles/Special/OrderGuard.cs b/Projects/Scripts/Mobiles/Special/OrderGuard.cs similarity index 100% rename from Scripts/Mobiles/Special/OrderGuard.cs rename to Projects/Scripts/Mobiles/Special/OrderGuard.cs diff --git a/Scripts/Mobiles/Special/Paragon.cs b/Projects/Scripts/Mobiles/Special/Paragon.cs similarity index 100% rename from Scripts/Mobiles/Special/Paragon.cs rename to Projects/Scripts/Mobiles/Special/Paragon.cs diff --git a/Scripts/Mobiles/Special/Rikktor.cs b/Projects/Scripts/Mobiles/Special/Rikktor.cs similarity index 100% rename from Scripts/Mobiles/Special/Rikktor.cs rename to Projects/Scripts/Mobiles/Special/Rikktor.cs diff --git a/Scripts/Mobiles/Special/Semidar.cs b/Projects/Scripts/Mobiles/Special/Semidar.cs similarity index 100% rename from Scripts/Mobiles/Special/Semidar.cs rename to Projects/Scripts/Mobiles/Special/Semidar.cs diff --git a/Scripts/Mobiles/Special/Serado.cs b/Projects/Scripts/Mobiles/Special/Serado.cs similarity index 100% rename from Scripts/Mobiles/Special/Serado.cs rename to Projects/Scripts/Mobiles/Special/Serado.cs diff --git a/Scripts/Mobiles/Special/ServantOfSemidar.cs b/Projects/Scripts/Mobiles/Special/ServantOfSemidar.cs similarity index 100% rename from Scripts/Mobiles/Special/ServantOfSemidar.cs rename to Projects/Scripts/Mobiles/Special/ServantOfSemidar.cs diff --git a/Scripts/Mobiles/Special/Silvani.cs b/Projects/Scripts/Mobiles/Special/Silvani.cs similarity index 100% rename from Scripts/Mobiles/Special/Silvani.cs rename to Projects/Scripts/Mobiles/Special/Silvani.cs diff --git a/Scripts/Mobiles/Special/Wanderer.cs b/Projects/Scripts/Mobiles/Special/Wanderer.cs similarity index 100% rename from Scripts/Mobiles/Special/Wanderer.cs rename to Projects/Scripts/Mobiles/Special/Wanderer.cs diff --git a/Scripts/Mobiles/Townfolk/Actor.cs b/Projects/Scripts/Mobiles/Townfolk/Actor.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Actor.cs rename to Projects/Scripts/Mobiles/Townfolk/Actor.cs diff --git a/Scripts/Mobiles/Townfolk/Artist.cs b/Projects/Scripts/Mobiles/Townfolk/Artist.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Artist.cs rename to Projects/Scripts/Mobiles/Townfolk/Artist.cs diff --git a/Scripts/Mobiles/Townfolk/Banker.cs b/Projects/Scripts/Mobiles/Townfolk/Banker.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Banker.cs rename to Projects/Scripts/Mobiles/Townfolk/Banker.cs diff --git a/Scripts/Mobiles/Townfolk/BaseEscortable.cs b/Projects/Scripts/Mobiles/Townfolk/BaseEscortable.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/BaseEscortable.cs rename to Projects/Scripts/Mobiles/Townfolk/BaseEscortable.cs diff --git a/Scripts/Mobiles/Townfolk/BrideGroom.cs b/Projects/Scripts/Mobiles/Townfolk/BrideGroom.cs similarity index 92% rename from Scripts/Mobiles/Townfolk/BrideGroom.cs rename to Projects/Scripts/Mobiles/Townfolk/BrideGroom.cs index 41e6701b4..4fc438c14 100644 --- a/Scripts/Mobiles/Townfolk/BrideGroom.cs +++ b/Projects/Scripts/Mobiles/Townfolk/BrideGroom.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/EscortableMage.cs b/Projects/Scripts/Mobiles/Townfolk/EscortableMage.cs similarity index 93% rename from Scripts/Mobiles/Townfolk/EscortableMage.cs rename to Projects/Scripts/Mobiles/Townfolk/EscortableMage.cs index cec9a7150..77a8254bd 100644 --- a/Scripts/Mobiles/Townfolk/EscortableMage.cs +++ b/Projects/Scripts/Mobiles/Townfolk/EscortableMage.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/Gypsy.cs b/Projects/Scripts/Mobiles/Townfolk/Gypsy.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Gypsy.cs rename to Projects/Scripts/Mobiles/Townfolk/Gypsy.cs diff --git a/Scripts/Mobiles/Townfolk/HarborMaster.cs b/Projects/Scripts/Mobiles/Townfolk/HarborMaster.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/HarborMaster.cs rename to Projects/Scripts/Mobiles/Townfolk/HarborMaster.cs diff --git a/Scripts/Mobiles/Townfolk/Merchant.cs b/Projects/Scripts/Mobiles/Townfolk/Merchant.cs similarity index 92% rename from Scripts/Mobiles/Townfolk/Merchant.cs rename to Projects/Scripts/Mobiles/Townfolk/Merchant.cs index 94ca2fe94..6bd1a8a82 100644 --- a/Scripts/Mobiles/Townfolk/Merchant.cs +++ b/Projects/Scripts/Mobiles/Townfolk/Merchant.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/Messenger.cs b/Projects/Scripts/Mobiles/Townfolk/Messenger.cs similarity index 92% rename from Scripts/Mobiles/Townfolk/Messenger.cs rename to Projects/Scripts/Mobiles/Townfolk/Messenger.cs index 99b8b8108..0adc41431 100644 --- a/Scripts/Mobiles/Townfolk/Messenger.cs +++ b/Projects/Scripts/Mobiles/Townfolk/Messenger.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/Minter.cs b/Projects/Scripts/Mobiles/Townfolk/Minter.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Minter.cs rename to Projects/Scripts/Mobiles/Townfolk/Minter.cs diff --git a/Scripts/Mobiles/Townfolk/Ninja.cs b/Projects/Scripts/Mobiles/Townfolk/Ninja.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Ninja.cs rename to Projects/Scripts/Mobiles/Townfolk/Ninja.cs diff --git a/Scripts/Mobiles/Townfolk/Noble.cs b/Projects/Scripts/Mobiles/Townfolk/Noble.cs similarity index 93% rename from Scripts/Mobiles/Townfolk/Noble.cs rename to Projects/Scripts/Mobiles/Townfolk/Noble.cs index 95a7d8510..63d91038e 100644 --- a/Scripts/Mobiles/Townfolk/Noble.cs +++ b/Projects/Scripts/Mobiles/Townfolk/Noble.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/Peasant.cs b/Projects/Scripts/Mobiles/Townfolk/Peasant.cs similarity index 92% rename from Scripts/Mobiles/Townfolk/Peasant.cs rename to Projects/Scripts/Mobiles/Townfolk/Peasant.cs index 6ab91394e..02aa17a87 100644 --- a/Scripts/Mobiles/Townfolk/Peasant.cs +++ b/Projects/Scripts/Mobiles/Townfolk/Peasant.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/Prisoner.cs b/Projects/Scripts/Mobiles/Townfolk/Prisoner.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Prisoner.cs rename to Projects/Scripts/Mobiles/Townfolk/Prisoner.cs diff --git a/Scripts/Mobiles/Townfolk/Samurai.cs b/Projects/Scripts/Mobiles/Townfolk/Samurai.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Samurai.cs rename to Projects/Scripts/Mobiles/Townfolk/Samurai.cs diff --git a/Scripts/Mobiles/Townfolk/Sculptor.cs b/Projects/Scripts/Mobiles/Townfolk/Sculptor.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/Sculptor.cs rename to Projects/Scripts/Mobiles/Townfolk/Sculptor.cs diff --git a/Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs b/Projects/Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs similarity index 93% rename from Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs rename to Projects/Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs index 3d766024b..31dc9214f 100644 --- a/Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs +++ b/Projects/Scripts/Mobiles/Townfolk/SeekerOfAdventure.cs @@ -1,5 +1,4 @@ using Server.Items; -using EDI = Server.Mobiles.EscortDestinationInfo; namespace Server.Mobiles { diff --git a/Scripts/Mobiles/Townfolk/TownCrier.cs b/Projects/Scripts/Mobiles/Townfolk/TownCrier.cs similarity index 100% rename from Scripts/Mobiles/Townfolk/TownCrier.cs rename to Projects/Scripts/Mobiles/Townfolk/TownCrier.cs diff --git a/Scripts/Mobiles/Vendors/AnimalBuy.cs b/Projects/Scripts/Mobiles/Vendors/AnimalBuy.cs similarity index 100% rename from Scripts/Mobiles/Vendors/AnimalBuy.cs rename to Projects/Scripts/Mobiles/Vendors/AnimalBuy.cs diff --git a/Scripts/Mobiles/Vendors/BaseVendor.cs b/Projects/Scripts/Mobiles/Vendors/BaseVendor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/BaseVendor.cs rename to Projects/Scripts/Mobiles/Vendors/BaseVendor.cs diff --git a/Scripts/Mobiles/Vendors/BeverageBuy.cs b/Projects/Scripts/Mobiles/Vendors/BeverageBuy.cs similarity index 100% rename from Scripts/Mobiles/Vendors/BeverageBuy.cs rename to Projects/Scripts/Mobiles/Vendors/BeverageBuy.cs diff --git a/Scripts/Mobiles/Vendors/GenericBuy.cs b/Projects/Scripts/Mobiles/Vendors/GenericBuy.cs similarity index 100% rename from Scripts/Mobiles/Vendors/GenericBuy.cs rename to Projects/Scripts/Mobiles/Vendors/GenericBuy.cs diff --git a/Scripts/Mobiles/Vendors/GenericSell.cs b/Projects/Scripts/Mobiles/Vendors/GenericSell.cs similarity index 100% rename from Scripts/Mobiles/Vendors/GenericSell.cs rename to Projects/Scripts/Mobiles/Vendors/GenericSell.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Alchemist.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Alchemist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Alchemist.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Alchemist.cs diff --git a/Scripts/Mobiles/Vendors/NPC/AnimalTrainer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/AnimalTrainer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/AnimalTrainer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/AnimalTrainer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Architect.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Architect.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Architect.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Architect.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Armorer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Armorer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Armorer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Armorer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Baker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Baker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Baker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Baker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Bard.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Bard.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Bard.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Bard.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Barkeeper.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Barkeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Barkeeper.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Barkeeper.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Beekeeper.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Beekeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Beekeeper.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Beekeeper.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Blacksmith.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Blacksmith.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Bowyer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Bowyer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Bowyer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Bowyer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Butcher.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Butcher.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Butcher.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Butcher.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Carpenter.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Carpenter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Carpenter.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Carpenter.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Cobbler.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Cobbler.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Cobbler.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Cobbler.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Cook.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Cook.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Cook.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Cook.cs diff --git a/Scripts/Mobiles/Vendors/NPC/CustomHairstylist.cs b/Projects/Scripts/Mobiles/Vendors/NPC/CustomHairstylist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/CustomHairstylist.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/CustomHairstylist.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Farmer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Farmer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Farmer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Farmer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Fisherman.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Fisherman.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Fisherman.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Fisherman.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Furtrader.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Furtrader.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Furtrader.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Furtrader.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Glassblower.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Glassblower.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Glassblower.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Glassblower.cs diff --git a/Scripts/Mobiles/Vendors/NPC/GolemCrafter.cs b/Projects/Scripts/Mobiles/Vendors/NPC/GolemCrafter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/GolemCrafter.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/GolemCrafter.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/BardGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BardGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/BardGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BardGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/BaseGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BaseGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/BaseGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BaseGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/BlacksmithGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BlacksmithGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/BlacksmithGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/BlacksmithGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/FisherGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/FisherGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/FisherGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/FisherGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/HealerGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/HealerGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/HealerGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/HealerGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/MageGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MageGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/MageGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MageGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/MerchantGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MerchantGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/MerchantGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MerchantGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/MinerGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MinerGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/MinerGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/MinerGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/RangerGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/RangerGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/RangerGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/RangerGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/TailorGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/TailorGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/TailorGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/TailorGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/ThiefGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/ThiefGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/ThiefGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/ThiefGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/TinkerGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/TinkerGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/TinkerGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/TinkerGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Guildmasters/WarriorGuildmaster.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/WarriorGuildmaster.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Guildmasters/WarriorGuildmaster.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Guildmasters/WarriorGuildmaster.cs diff --git a/Scripts/Mobiles/Vendors/NPC/GypsyAnimalTrainer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/GypsyAnimalTrainer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/GypsyAnimalTrainer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/GypsyAnimalTrainer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/GypsyBanker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/GypsyBanker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/GypsyBanker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/GypsyBanker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/GypsyMaiden.cs b/Projects/Scripts/Mobiles/Vendors/NPC/GypsyMaiden.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/GypsyMaiden.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/GypsyMaiden.cs diff --git a/Scripts/Mobiles/Vendors/NPC/HairStylist.cs b/Projects/Scripts/Mobiles/Vendors/NPC/HairStylist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/HairStylist.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/HairStylist.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Herbalist.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Herbalist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Herbalist.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Herbalist.cs diff --git a/Scripts/Mobiles/Vendors/NPC/HolyMage.cs b/Projects/Scripts/Mobiles/Vendors/NPC/HolyMage.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/HolyMage.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/HolyMage.cs diff --git a/Scripts/Mobiles/Vendors/NPC/InnKeeper.cs b/Projects/Scripts/Mobiles/Vendors/NPC/InnKeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/InnKeeper.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/InnKeeper.cs diff --git a/Scripts/Mobiles/Vendors/NPC/IronWorker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/IronWorker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/IronWorker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/IronWorker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Jeweler.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Jeweler.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Jeweler.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Jeweler.cs diff --git a/Scripts/Mobiles/Vendors/NPC/KeeperOfChivalry.cs b/Projects/Scripts/Mobiles/Vendors/NPC/KeeperOfChivalry.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/KeeperOfChivalry.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/KeeperOfChivalry.cs diff --git a/Scripts/Mobiles/Vendors/NPC/LeatherWorker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/LeatherWorker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/LeatherWorker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/LeatherWorker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Mage.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Mage.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Mage.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Mage.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Mapmaker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Mapmaker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Mapmaker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Mapmaker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Miller.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Miller.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Miller.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Miller.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Miner.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Miner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Miner.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Miner.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Monk.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Monk.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Monk.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Monk.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Provisioner.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Provisioner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Provisioner.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Provisioner.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Rancher.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Rancher.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Rancher.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Rancher.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Ranger.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Ranger.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Ranger.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Ranger.cs diff --git a/Scripts/Mobiles/Vendors/NPC/RealEstateBroker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/RealEstateBroker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/RealEstateBroker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/RealEstateBroker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Scribe.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Scribe.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Scribe.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Scribe.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Shipwright.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Shipwright.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Shipwright.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Shipwright.cs diff --git a/Scripts/Mobiles/Vendors/NPC/StoneCrafter.cs b/Projects/Scripts/Mobiles/Vendors/NPC/StoneCrafter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/StoneCrafter.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/StoneCrafter.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Tailor.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Tailor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Tailor.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Tailor.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Tanner.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Tanner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Tanner.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Tanner.cs diff --git a/Scripts/Mobiles/Vendors/NPC/TavernKeeper.cs b/Projects/Scripts/Mobiles/Vendors/NPC/TavernKeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/TavernKeeper.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/TavernKeeper.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Thief.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Thief.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Thief.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Thief.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Tinker.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Tinker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Tinker.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Tinker.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Vagabond.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Vagabond.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Vagabond.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Vagabond.cs diff --git a/Scripts/Mobiles/Vendors/NPC/VarietyDealer.cs b/Projects/Scripts/Mobiles/Vendors/NPC/VarietyDealer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/VarietyDealer.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/VarietyDealer.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Veterinarian.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Veterinarian.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Veterinarian.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Veterinarian.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Waiter.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Waiter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Waiter.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Waiter.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Weaponsmith.cs diff --git a/Scripts/Mobiles/Vendors/NPC/Weaver.cs b/Projects/Scripts/Mobiles/Vendors/NPC/Weaver.cs similarity index 100% rename from Scripts/Mobiles/Vendors/NPC/Weaver.cs rename to Projects/Scripts/Mobiles/Vendors/NPC/Weaver.cs diff --git a/Scripts/Mobiles/Vendors/PlayerBarkeeper.cs b/Projects/Scripts/Mobiles/Vendors/PlayerBarkeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/PlayerBarkeeper.cs rename to Projects/Scripts/Mobiles/Vendors/PlayerBarkeeper.cs diff --git a/Scripts/Mobiles/Vendors/PlayerVendor.cs b/Projects/Scripts/Mobiles/Vendors/PlayerVendor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/PlayerVendor.cs rename to Projects/Scripts/Mobiles/Vendors/PlayerVendor.cs diff --git a/Scripts/Mobiles/Vendors/PresetMapBuy.cs b/Projects/Scripts/Mobiles/Vendors/PresetMapBuy.cs similarity index 100% rename from Scripts/Mobiles/Vendors/PresetMapBuy.cs rename to Projects/Scripts/Mobiles/Vendors/PresetMapBuy.cs diff --git a/Scripts/Mobiles/Vendors/RentedVendor.cs b/Projects/Scripts/Mobiles/Vendors/RentedVendor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/RentedVendor.cs rename to Projects/Scripts/Mobiles/Vendors/RentedVendor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBChainmailArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBChainmailArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBChainmailArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBChainmailArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBHelmetArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBHelmetArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBHelmetArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBHelmetArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBLeatherArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBLeatherArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBLeatherArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBLeatherArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBMetalShields.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBMetalShields.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBMetalShields.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBMetalShields.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBPlateArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBPlateArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBPlateArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBPlateArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBRingmailArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBRingmailArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBRingmailArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBRingmailArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBStuddedArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBStuddedArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBStuddedArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBStuddedArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Armors/SBWoodenShields.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBWoodenShields.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Armors/SBWoodenShields.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Armors/SBWoodenShields.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBAlchemist.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBAlchemist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBAlchemist.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBAlchemist.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBAnimalTrainer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBAnimalTrainer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBAnimalTrainer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBAnimalTrainer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBArchitect.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBArchitect.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBArchitect.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBArchitect.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBaker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBaker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBaker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBaker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBanker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBanker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBanker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBanker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBard.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBard.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBard.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBard.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBarkeeper.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBarkeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBarkeeper.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBarkeeper.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBeekeeper.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBeekeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBeekeeper.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBeekeeper.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBlacksmith.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBlacksmith.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBlacksmith.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBlacksmith.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBBowyer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBBowyer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBBowyer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBBowyer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBButcher.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBButcher.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBButcher.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBButcher.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBCarpenter.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBCarpenter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBCarpenter.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBCarpenter.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBCobbler.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBCobbler.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBCobbler.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBCobbler.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBCook.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBCook.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBCook.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBCook.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBFarmer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBFarmer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBFarmer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBFarmer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBFisherman.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBFisherman.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBFisherman.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBFisherman.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBFortuneTeller.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBFortuneTeller.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBFortuneTeller.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBFortuneTeller.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBFurtrader.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBFurtrader.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBFurtrader.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBFurtrader.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBGlassblower.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBGlassblower.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBGlassblower.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBGlassblower.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBHairStylist.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBHairStylist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBHairStylist.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBHairStylist.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBHealer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBHealer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBHealer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBHealer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBHerbalist.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBHerbalist.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBHerbalist.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBHerbalist.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBHolyMage.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBHolyMage.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBHolyMage.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBHolyMage.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBHouseDeed.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBHouseDeed.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBHouseDeed.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBHouseDeed.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBInfo.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBInfo.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBInfo.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBInfo.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBInnKeeper.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBInnKeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBInnKeeper.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBInnKeeper.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBJewel.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBJewel.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBJewel.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBJewel.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBKeeperOfChivalry.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBKeeperOfChivalry.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBKeeperOfChivalry.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBKeeperOfChivalry.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBLeatherWorker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBLeatherWorker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBLeatherWorker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBLeatherWorker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMage.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBMage.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBMage.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBMage.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMapmaker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBMapmaker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBMapmaker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBMapmaker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMiller.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBMiller.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBMiller.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBMiller.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMiner.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBMiner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBMiner.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBMiner.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBMonk.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBNinja.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBNinja.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBNinja.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBNinja.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBPlayerBarkeeper.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBPlayerBarkeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBPlayerBarkeeper.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBPlayerBarkeeper.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBProvisioner.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBProvisioner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBProvisioner.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBProvisioner.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBRancher.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBRancher.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBRancher.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBRancher.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBRanger.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBRanger.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBRanger.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBRanger.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBRealEstateBroker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBRealEstateBroker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBRealEstateBroker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBRealEstateBroker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBSECook.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBSECook.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBSECook.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBSECook.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBSEHats.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBSEHats.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBSEHats.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBSEHats.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBSamurai.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBSamurai.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBSamurai.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBSamurai.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBScribe.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBScribe.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBScribe.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBScribe.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBShipwright.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBShipwright.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBShipwright.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBShipwright.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBSmithTools.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBSmithTools.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBSmithTools.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBSmithTools.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBStoneCrafter.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBStoneCrafter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBStoneCrafter.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBStoneCrafter.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBTailor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBTailor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBTailor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBTailor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBTanner.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBTanner.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBTanner.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBTanner.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBTavernKeeper.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBTavernKeeper.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBTavernKeeper.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBTavernKeeper.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBThief.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBThief.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBThief.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBThief.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBTinker.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBTinker.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBTinker.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBTinker.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBVagabond.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBVagabond.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBVagabond.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBVagabond.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBVarietyDealer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBVarietyDealer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBVarietyDealer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBVarietyDealer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBVeterinarian.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBVeterinarian.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBVeterinarian.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBVeterinarian.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBWaiter.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBWaiter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBWaiter.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBWaiter.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBWeaponSmith.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBWeaponSmith.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBWeaponSmith.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBWeaponSmith.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SBWeaver.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SBWeaver.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SBWeaver.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SBWeaver.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSEArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEBowyer.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEBowyer.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSEBowyer.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEBowyer.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSECarpenter.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSECarpenter.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSECarpenter.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSECarpenter.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEFood.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEFood.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSEFood.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEFood.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSELeatherArmor.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSELeatherArmor.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSELeatherArmor.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSELeatherArmor.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEWeapons.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEWeapons.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/SE/SBSEWeapons.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/SE/SBSEWeapons.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBAxeWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBAxeWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBAxeWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBAxeWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBKnifeWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBKnifeWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBKnifeWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBKnifeWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBMaceWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBMaceWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBMaceWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBMaceWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBPoleArmWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBPoleArmWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBPoleArmWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBPoleArmWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBRangedWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBRangedWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBRangedWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBRangedWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSpearForkWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSpearForkWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSpearForkWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSpearForkWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBStavesWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBStavesWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBStavesWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBStavesWeapon.cs diff --git a/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSwordWeapon.cs b/Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSwordWeapon.cs similarity index 100% rename from Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSwordWeapon.cs rename to Projects/Scripts/Mobiles/Vendors/SBInfo/Weapons/SBSwordWeapon.cs diff --git a/Scripts/Mobiles/Vendors/VendorInventory.cs b/Projects/Scripts/Mobiles/Vendors/VendorInventory.cs similarity index 100% rename from Scripts/Mobiles/Vendors/VendorInventory.cs rename to Projects/Scripts/Mobiles/Vendors/VendorInventory.cs diff --git a/Scripts/Multis/BaseHouse.cs b/Projects/Scripts/Multis/BaseHouse.cs similarity index 100% rename from Scripts/Multis/BaseHouse.cs rename to Projects/Scripts/Multis/BaseHouse.cs diff --git a/Scripts/Multis/Boats/BaseBoat.cs b/Projects/Scripts/Multis/Boats/BaseBoat.cs similarity index 100% rename from Scripts/Multis/Boats/BaseBoat.cs rename to Projects/Scripts/Multis/Boats/BaseBoat.cs diff --git a/Scripts/Multis/Boats/BaseBoatDeed.cs b/Projects/Scripts/Multis/Boats/BaseBoatDeed.cs similarity index 100% rename from Scripts/Multis/Boats/BaseBoatDeed.cs rename to Projects/Scripts/Multis/Boats/BaseBoatDeed.cs diff --git a/Scripts/Multis/Boats/BaseDockedBoat.cs b/Projects/Scripts/Multis/Boats/BaseDockedBoat.cs similarity index 100% rename from Scripts/Multis/Boats/BaseDockedBoat.cs rename to Projects/Scripts/Multis/Boats/BaseDockedBoat.cs diff --git a/Scripts/Multis/Boats/ConfirmDryDockGump.cs b/Projects/Scripts/Multis/Boats/ConfirmDryDockGump.cs similarity index 100% rename from Scripts/Multis/Boats/ConfirmDryDockGump.cs rename to Projects/Scripts/Multis/Boats/ConfirmDryDockGump.cs diff --git a/Scripts/Multis/Boats/Hold.cs b/Projects/Scripts/Multis/Boats/Hold.cs similarity index 100% rename from Scripts/Multis/Boats/Hold.cs rename to Projects/Scripts/Multis/Boats/Hold.cs diff --git a/Scripts/Multis/Boats/LargeBoat.cs b/Projects/Scripts/Multis/Boats/LargeBoat.cs similarity index 100% rename from Scripts/Multis/Boats/LargeBoat.cs rename to Projects/Scripts/Multis/Boats/LargeBoat.cs diff --git a/Scripts/Multis/Boats/LargeDragonBoat.cs b/Projects/Scripts/Multis/Boats/LargeDragonBoat.cs similarity index 100% rename from Scripts/Multis/Boats/LargeDragonBoat.cs rename to Projects/Scripts/Multis/Boats/LargeDragonBoat.cs diff --git a/Scripts/Multis/Boats/MediumBoat.cs b/Projects/Scripts/Multis/Boats/MediumBoat.cs similarity index 100% rename from Scripts/Multis/Boats/MediumBoat.cs rename to Projects/Scripts/Multis/Boats/MediumBoat.cs diff --git a/Scripts/Multis/Boats/MediumDragonBoat.cs b/Projects/Scripts/Multis/Boats/MediumDragonBoat.cs similarity index 100% rename from Scripts/Multis/Boats/MediumDragonBoat.cs rename to Projects/Scripts/Multis/Boats/MediumDragonBoat.cs diff --git a/Scripts/Multis/Boats/Plank.cs b/Projects/Scripts/Multis/Boats/Plank.cs similarity index 100% rename from Scripts/Multis/Boats/Plank.cs rename to Projects/Scripts/Multis/Boats/Plank.cs diff --git a/Scripts/Multis/Boats/RenameBoatPrompt.cs b/Projects/Scripts/Multis/Boats/RenameBoatPrompt.cs similarity index 100% rename from Scripts/Multis/Boats/RenameBoatPrompt.cs rename to Projects/Scripts/Multis/Boats/RenameBoatPrompt.cs diff --git a/Scripts/Multis/Boats/SmallBoat.cs b/Projects/Scripts/Multis/Boats/SmallBoat.cs similarity index 100% rename from Scripts/Multis/Boats/SmallBoat.cs rename to Projects/Scripts/Multis/Boats/SmallBoat.cs diff --git a/Scripts/Multis/Boats/SmallDragonBoat.cs b/Projects/Scripts/Multis/Boats/SmallDragonBoat.cs similarity index 100% rename from Scripts/Multis/Boats/SmallDragonBoat.cs rename to Projects/Scripts/Multis/Boats/SmallDragonBoat.cs diff --git a/Scripts/Multis/Boats/Strandedness.cs b/Projects/Scripts/Multis/Boats/Strandedness.cs similarity index 100% rename from Scripts/Multis/Boats/Strandedness.cs rename to Projects/Scripts/Multis/Boats/Strandedness.cs diff --git a/Scripts/Multis/Boats/TillerMan.cs b/Projects/Scripts/Multis/Boats/TillerMan.cs similarity index 100% rename from Scripts/Multis/Boats/TillerMan.cs rename to Projects/Scripts/Multis/Boats/TillerMan.cs diff --git a/Scripts/Multis/Camps/BankerCamp.cs b/Projects/Scripts/Multis/Camps/BankerCamp.cs similarity index 100% rename from Scripts/Multis/Camps/BankerCamp.cs rename to Projects/Scripts/Multis/Camps/BankerCamp.cs diff --git a/Scripts/Multis/Camps/BaseCamp.cs b/Projects/Scripts/Multis/Camps/BaseCamp.cs similarity index 100% rename from Scripts/Multis/Camps/BaseCamp.cs rename to Projects/Scripts/Multis/Camps/BaseCamp.cs diff --git a/Scripts/Multis/Camps/BrigandCamp.cs b/Projects/Scripts/Multis/Camps/BrigandCamp.cs similarity index 100% rename from Scripts/Multis/Camps/BrigandCamp.cs rename to Projects/Scripts/Multis/Camps/BrigandCamp.cs diff --git a/Scripts/Multis/Camps/HealerCamp.cs b/Projects/Scripts/Multis/Camps/HealerCamp.cs similarity index 100% rename from Scripts/Multis/Camps/HealerCamp.cs rename to Projects/Scripts/Multis/Camps/HealerCamp.cs diff --git a/Scripts/Multis/Camps/LizardmenCamp.cs b/Projects/Scripts/Multis/Camps/LizardmenCamp.cs similarity index 100% rename from Scripts/Multis/Camps/LizardmenCamp.cs rename to Projects/Scripts/Multis/Camps/LizardmenCamp.cs diff --git a/Scripts/Multis/Camps/MageCamp.cs b/Projects/Scripts/Multis/Camps/MageCamp.cs similarity index 100% rename from Scripts/Multis/Camps/MageCamp.cs rename to Projects/Scripts/Multis/Camps/MageCamp.cs diff --git a/Scripts/Multis/Camps/OrcCamp.cs b/Projects/Scripts/Multis/Camps/OrcCamp.cs similarity index 100% rename from Scripts/Multis/Camps/OrcCamp.cs rename to Projects/Scripts/Multis/Camps/OrcCamp.cs diff --git a/Scripts/Multis/Camps/RatCamp.cs b/Projects/Scripts/Multis/Camps/RatCamp.cs similarity index 100% rename from Scripts/Multis/Camps/RatCamp.cs rename to Projects/Scripts/Multis/Camps/RatCamp.cs diff --git a/Scripts/Multis/ComponentVerification.cs b/Projects/Scripts/Multis/ComponentVerification.cs similarity index 100% rename from Scripts/Multis/ComponentVerification.cs rename to Projects/Scripts/Multis/ComponentVerification.cs diff --git a/Scripts/Multis/Deeds.cs b/Projects/Scripts/Multis/Deeds.cs similarity index 100% rename from Scripts/Multis/Deeds.cs rename to Projects/Scripts/Multis/Deeds.cs diff --git a/Scripts/Multis/DynamicDecay.cs b/Projects/Scripts/Multis/DynamicDecay.cs similarity index 100% rename from Scripts/Multis/DynamicDecay.cs rename to Projects/Scripts/Multis/DynamicDecay.cs diff --git a/Scripts/Multis/HouseFoundation.cs b/Projects/Scripts/Multis/HouseFoundation.cs similarity index 93% rename from Scripts/Multis/HouseFoundation.cs rename to Projects/Scripts/Multis/HouseFoundation.cs index 1fc86d488..186b9faed 100644 --- a/Scripts/Multis/HouseFoundation.cs +++ b/Projects/Scripts/Multis/HouseFoundation.cs @@ -1,8 +1,11 @@ using System; +using System.Buffers; using System.Collections; +using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Threading; +using System.Threading.Tasks; using Server.Gumps; using Server.Items; using Server.Mobiles; @@ -2197,14 +2200,8 @@ namespace Server.Multis { public const int MaxItemsPerStairBuffer = 750; - private static BufferPool m_PlaneBufferPool = new BufferPool("Housing Plane Buffers", 9, 0x400); - private static BufferPool m_StairBufferPool = new BufferPool("Housing Stair Buffers", 6, MaxItemsPerStairBuffer * 5); - private static BufferPool m_DeflatedBufferPool = new BufferPool("Housing Deflated Buffers", 1, 0x2000); - - private static Queue m_SendQueue; - private static object m_SendQueueSyncRoot; + private static ConcurrentQueue m_SendQueue; private static AutoResetEvent m_Sync; - private static Thread m_Thread; private byte[][] m_PlaneBuffers; @@ -2214,13 +2211,10 @@ namespace Server.Multis static DesignStateDetailed() { - m_SendQueue = new Queue(); - m_SendQueueSyncRoot = ((ICollection)m_SendQueue).SyncRoot; + m_SendQueue = new ConcurrentQueue(); m_Sync = new AutoResetEvent(false); - m_Thread = new Thread(CompressionThread); - m_Thread.Name = "Housing Compression Thread"; - m_Thread.Start(); + Task.Run(ProcessCompression); } public DesignStateDetailed(uint serial, int revision, int xMin, int yMin, int xMax, int yMax, MultiTileEntry[] tiles) @@ -2243,19 +2237,13 @@ namespace Server.Multis m_PlaneBuffers = new byte[9][]; - lock (m_PlaneBufferPool) - { - for (int i = 0; i < m_PlaneBuffers.Length; ++i) - m_PlaneBuffers[i] = m_PlaneBufferPool.AcquireBuffer(); - } + for (int i = 0; i < m_PlaneBuffers.Length; ++i) + m_PlaneBuffers[i] = ArrayPool.Shared.Rent(0x400); m_StairBuffers = new byte[6][]; - lock (m_StairBufferPool) - { - for (int i = 0; i < m_StairBuffers.Length; ++i) - m_StairBuffers[i] = m_StairBufferPool.AcquireBuffer(); - } + for (int i = 0; i < m_StairBuffers.Length; ++i) + m_StairBuffers[i] = ArrayPool.Shared.Rent(MaxItemsPerStairBuffer * 5); Clear(m_PlaneBuffers[0], width * height * 2); @@ -2357,17 +2345,13 @@ namespace Server.Multis int planeCount = 0; - byte[] m_DeflatedBuffer; - lock (m_DeflatedBufferPool) - { - m_DeflatedBuffer = m_DeflatedBufferPool.AcquireBuffer(); - } + byte[] m_DeflatedBuffer = ArrayPool.Shared.Rent(0x2000); for (int i = 0; i < m_PlaneBuffers.Length; ++i) { if (!m_PlaneUsed[i]) { - m_PlaneBufferPool.ReleaseBuffer(m_PlaneBuffers[i]); + ArrayPool.Shared.Return(m_PlaneBuffers[i]); continue; } @@ -2402,10 +2386,7 @@ namespace Server.Multis Write(m_DeflatedBuffer, 0, deflatedLength); totalLength += 4 + deflatedLength; - lock (m_PlaneBufferPool) - { - m_PlaneBufferPool.ReleaseBuffer(inflatedBuffer); - } + ArrayPool.Shared.Return(inflatedBuffer); } int totalStairBuffersUsed = (totalStairsUsed + (MaxItemsPerStairBuffer - 1)) / MaxItemsPerStairBuffer; @@ -2443,16 +2424,10 @@ namespace Server.Multis totalLength += 4 + deflatedLength; } - lock (m_StairBufferPool) - { - for (int i = 0; i < m_StairBuffers.Length; ++i) - m_StairBufferPool.ReleaseBuffer(m_StairBuffers[i]); - } + for (int i = 0; i < m_StairBuffers.Length; ++i) + ArrayPool.Shared.Return(m_StairBuffers[i]); - lock (m_DeflatedBufferPool) - { - m_DeflatedBufferPool.ReleaseBuffer(m_DeflatedBuffer); - } + ArrayPool.Shared.Return(m_DeflatedBuffer); m_Stream.Seek(15, SeekOrigin.Begin); @@ -2504,28 +2479,16 @@ namespace Server.Multis buffer[i] = 0; } - public static void CompressionThread() + public static void ProcessCompression() { while (!Core.Closing) { m_Sync.WaitOne(); - int count; + int count = m_SendQueue.Count; - lock (m_SendQueueSyncRoot) + while (count > 0 && m_SendQueue.TryDequeue(out SendQueueEntry sqe)) { - count = m_SendQueue.Count; - } - - while (count > 0) - { - SendQueueEntry sqe; - - lock (m_SendQueueSyncRoot) - { - sqe = m_SendQueue.Dequeue(); - } - try { Packet p; @@ -2568,23 +2531,15 @@ namespace Server.Multis } finally { - lock (m_SendQueueSyncRoot) - { - count = m_SendQueue.Count; - } + count = m_SendQueue.Count; } - - //sqe.m_NetState.Send( new DesignStateDetailed( sqe.m_Serial, sqe.m_Revision, sqe.m_xMin, sqe.m_yMin, sqe.m_xMax, sqe.m_yMax, sqe.m_Tiles ) ); } } } public static void SendDetails(NetState ns, HouseFoundation house, DesignState state) { - lock (m_SendQueueSyncRoot) - { - m_SendQueue.Enqueue(new SendQueueEntry(ns, house, state)); - } + m_SendQueue.Enqueue(new SendQueueEntry(ns, house, state)); m_Sync.Set(); } diff --git a/Scripts/Multis/HousePlacement.cs b/Projects/Scripts/Multis/HousePlacement.cs similarity index 100% rename from Scripts/Multis/HousePlacement.cs rename to Projects/Scripts/Multis/HousePlacement.cs diff --git a/Scripts/Multis/HousePlacementTool.cs b/Projects/Scripts/Multis/HousePlacementTool.cs similarity index 100% rename from Scripts/Multis/HousePlacementTool.cs rename to Projects/Scripts/Multis/HousePlacementTool.cs diff --git a/Scripts/Multis/HouseSign.cs b/Projects/Scripts/Multis/HouseSign.cs similarity index 100% rename from Scripts/Multis/HouseSign.cs rename to Projects/Scripts/Multis/HouseSign.cs diff --git a/Scripts/Multis/HouseTeleporter.cs b/Projects/Scripts/Multis/HouseTeleporter.cs similarity index 100% rename from Scripts/Multis/HouseTeleporter.cs rename to Projects/Scripts/Multis/HouseTeleporter.cs diff --git a/Scripts/Multis/Houses.cs b/Projects/Scripts/Multis/Houses.cs similarity index 100% rename from Scripts/Multis/Houses.cs rename to Projects/Scripts/Multis/Houses.cs diff --git a/Scripts/Multis/MovingCrate.cs b/Projects/Scripts/Multis/MovingCrate.cs similarity index 100% rename from Scripts/Multis/MovingCrate.cs rename to Projects/Scripts/Multis/MovingCrate.cs diff --git a/Scripts/Multis/PreviewHouse.cs b/Projects/Scripts/Multis/PreviewHouse.cs similarity index 100% rename from Scripts/Multis/PreviewHouse.cs rename to Projects/Scripts/Multis/PreviewHouse.cs diff --git a/Projects/Scripts/Properties/PublishProfiles/Linux.pubxml b/Projects/Scripts/Properties/PublishProfiles/Linux.pubxml new file mode 100644 index 000000000..a0558d267 --- /dev/null +++ b/Projects/Scripts/Properties/PublishProfiles/Linux.pubxml @@ -0,0 +1,13 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../Assemblies + + diff --git a/Projects/Scripts/Properties/PublishProfiles/Windows.pubxml b/Projects/Scripts/Properties/PublishProfiles/Windows.pubxml new file mode 100644 index 000000000..a0558d267 --- /dev/null +++ b/Projects/Scripts/Properties/PublishProfiles/Windows.pubxml @@ -0,0 +1,13 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../Assemblies + + diff --git a/Scripts/Regions/BaseRegion.cs b/Projects/Scripts/Regions/BaseRegion.cs similarity index 100% rename from Scripts/Regions/BaseRegion.cs rename to Projects/Scripts/Regions/BaseRegion.cs diff --git a/Scripts/Regions/DungeonRegion.cs b/Projects/Scripts/Regions/DungeonRegion.cs similarity index 100% rename from Scripts/Regions/DungeonRegion.cs rename to Projects/Scripts/Regions/DungeonRegion.cs diff --git a/Scripts/Regions/GreenAcres.cs b/Projects/Scripts/Regions/GreenAcres.cs similarity index 100% rename from Scripts/Regions/GreenAcres.cs rename to Projects/Scripts/Regions/GreenAcres.cs diff --git a/Scripts/Regions/GuardedRegion.cs b/Projects/Scripts/Regions/GuardedRegion.cs similarity index 100% rename from Scripts/Regions/GuardedRegion.cs rename to Projects/Scripts/Regions/GuardedRegion.cs diff --git a/Scripts/Regions/HouseRegion.cs b/Projects/Scripts/Regions/HouseRegion.cs similarity index 100% rename from Scripts/Regions/HouseRegion.cs rename to Projects/Scripts/Regions/HouseRegion.cs diff --git a/Scripts/Regions/Jail.cs b/Projects/Scripts/Regions/Jail.cs similarity index 100% rename from Scripts/Regions/Jail.cs rename to Projects/Scripts/Regions/Jail.cs diff --git a/Scripts/Regions/NoHousingRegion.cs b/Projects/Scripts/Regions/NoHousingRegion.cs similarity index 100% rename from Scripts/Regions/NoHousingRegion.cs rename to Projects/Scripts/Regions/NoHousingRegion.cs diff --git a/Scripts/Regions/Spawning/SpawnDefinition.cs b/Projects/Scripts/Regions/Spawning/SpawnDefinition.cs similarity index 100% rename from Scripts/Regions/Spawning/SpawnDefinition.cs rename to Projects/Scripts/Regions/Spawning/SpawnDefinition.cs diff --git a/Scripts/Regions/Spawning/SpawnEntry.cs b/Projects/Scripts/Regions/Spawning/SpawnEntry.cs similarity index 100% rename from Scripts/Regions/Spawning/SpawnEntry.cs rename to Projects/Scripts/Regions/Spawning/SpawnEntry.cs diff --git a/Scripts/Regions/Spawning/SpawnPersistence.cs b/Projects/Scripts/Regions/Spawning/SpawnPersistence.cs similarity index 100% rename from Scripts/Regions/Spawning/SpawnPersistence.cs rename to Projects/Scripts/Regions/Spawning/SpawnPersistence.cs diff --git a/Scripts/Regions/TownRegion.cs b/Projects/Scripts/Regions/TownRegion.cs similarity index 100% rename from Scripts/Regions/TownRegion.cs rename to Projects/Scripts/Regions/TownRegion.cs diff --git a/Projects/Scripts/Scripts.csproj b/Projects/Scripts/Scripts.csproj new file mode 100644 index 000000000..fab983540 --- /dev/null +++ b/Projects/Scripts/Scripts.csproj @@ -0,0 +1,40 @@ + + + + Server + netcoreapp3.0 + + + NETCORE;NETSTANDARD + Scripts.CS + + + true + true + ..\..\Distribution\Assemblies\ + ..\..\Distribution\Assemblies + + true + x64 + ..\..\Distribution\Assemblies + + + TRACE;DEBUG + true + false + ..\..\Distribution\Assemblies\ + ..\..\Distribution\Assemblies + + true + x64 + + + + + + + false + false + + + diff --git a/Scripts/Skills/Anatomy.cs b/Projects/Scripts/Skills/Anatomy.cs similarity index 100% rename from Scripts/Skills/Anatomy.cs rename to Projects/Scripts/Skills/Anatomy.cs diff --git a/Scripts/Skills/AnimalLore.cs b/Projects/Scripts/Skills/AnimalLore.cs similarity index 100% rename from Scripts/Skills/AnimalLore.cs rename to Projects/Scripts/Skills/AnimalLore.cs diff --git a/Scripts/Skills/AnimalTaming.cs b/Projects/Scripts/Skills/AnimalTaming.cs similarity index 100% rename from Scripts/Skills/AnimalTaming.cs rename to Projects/Scripts/Skills/AnimalTaming.cs diff --git a/Scripts/Skills/ArmsLore.cs b/Projects/Scripts/Skills/ArmsLore.cs similarity index 100% rename from Scripts/Skills/ArmsLore.cs rename to Projects/Scripts/Skills/ArmsLore.cs diff --git a/Scripts/Skills/Begging.cs b/Projects/Scripts/Skills/Begging.cs similarity index 100% rename from Scripts/Skills/Begging.cs rename to Projects/Scripts/Skills/Begging.cs diff --git a/Scripts/Skills/DetectHidden.cs b/Projects/Scripts/Skills/DetectHidden.cs similarity index 100% rename from Scripts/Skills/DetectHidden.cs rename to Projects/Scripts/Skills/DetectHidden.cs diff --git a/Scripts/Skills/Discordance.cs b/Projects/Scripts/Skills/Discordance.cs similarity index 100% rename from Scripts/Skills/Discordance.cs rename to Projects/Scripts/Skills/Discordance.cs diff --git a/Scripts/Skills/EvalInt.cs b/Projects/Scripts/Skills/EvalInt.cs similarity index 100% rename from Scripts/Skills/EvalInt.cs rename to Projects/Scripts/Skills/EvalInt.cs diff --git a/Scripts/Skills/ForensicEval.cs b/Projects/Scripts/Skills/ForensicEval.cs similarity index 100% rename from Scripts/Skills/ForensicEval.cs rename to Projects/Scripts/Skills/ForensicEval.cs diff --git a/Scripts/Skills/Hiding.cs b/Projects/Scripts/Skills/Hiding.cs similarity index 100% rename from Scripts/Skills/Hiding.cs rename to Projects/Scripts/Skills/Hiding.cs diff --git a/Scripts/Skills/Inscribe.cs b/Projects/Scripts/Skills/Inscribe.cs similarity index 100% rename from Scripts/Skills/Inscribe.cs rename to Projects/Scripts/Skills/Inscribe.cs diff --git a/Scripts/Skills/ItemIdentification.cs b/Projects/Scripts/Skills/ItemIdentification.cs similarity index 100% rename from Scripts/Skills/ItemIdentification.cs rename to Projects/Scripts/Skills/ItemIdentification.cs diff --git a/Scripts/Skills/Meditation.cs b/Projects/Scripts/Skills/Meditation.cs similarity index 100% rename from Scripts/Skills/Meditation.cs rename to Projects/Scripts/Skills/Meditation.cs diff --git a/Scripts/Skills/Peacemaking.cs b/Projects/Scripts/Skills/Peacemaking.cs similarity index 100% rename from Scripts/Skills/Peacemaking.cs rename to Projects/Scripts/Skills/Peacemaking.cs diff --git a/Scripts/Skills/Poisoning.cs b/Projects/Scripts/Skills/Poisoning.cs similarity index 100% rename from Scripts/Skills/Poisoning.cs rename to Projects/Scripts/Skills/Poisoning.cs diff --git a/Scripts/Skills/Provocation.cs b/Projects/Scripts/Skills/Provocation.cs similarity index 100% rename from Scripts/Skills/Provocation.cs rename to Projects/Scripts/Skills/Provocation.cs diff --git a/Scripts/Skills/RemoveTrap.cs b/Projects/Scripts/Skills/RemoveTrap.cs similarity index 100% rename from Scripts/Skills/RemoveTrap.cs rename to Projects/Scripts/Skills/RemoveTrap.cs diff --git a/Scripts/Skills/Snooping.cs b/Projects/Scripts/Skills/Snooping.cs similarity index 100% rename from Scripts/Skills/Snooping.cs rename to Projects/Scripts/Skills/Snooping.cs diff --git a/Scripts/Skills/SpiritSpeak.cs b/Projects/Scripts/Skills/SpiritSpeak.cs similarity index 100% rename from Scripts/Skills/SpiritSpeak.cs rename to Projects/Scripts/Skills/SpiritSpeak.cs diff --git a/Scripts/Skills/Stealing.cs b/Projects/Scripts/Skills/Stealing.cs similarity index 100% rename from Scripts/Skills/Stealing.cs rename to Projects/Scripts/Skills/Stealing.cs diff --git a/Scripts/Skills/Stealth.cs b/Projects/Scripts/Skills/Stealth.cs similarity index 100% rename from Scripts/Skills/Stealth.cs rename to Projects/Scripts/Skills/Stealth.cs diff --git a/Scripts/Skills/TasteID.cs b/Projects/Scripts/Skills/TasteID.cs similarity index 100% rename from Scripts/Skills/TasteID.cs rename to Projects/Scripts/Skills/TasteID.cs diff --git a/Scripts/Skills/Tracking.cs b/Projects/Scripts/Skills/Tracking.cs similarity index 100% rename from Scripts/Skills/Tracking.cs rename to Projects/Scripts/Skills/Tracking.cs diff --git a/Scripts/SpecialSystems/Engines/GiftGiving.cs b/Projects/Scripts/SpecialSystems/Engines/GiftGiving.cs similarity index 100% rename from Scripts/SpecialSystems/Engines/GiftGiving.cs rename to Projects/Scripts/SpecialSystems/Engines/GiftGiving.cs diff --git a/Scripts/SpecialSystems/Engines/ItemFixes.cs b/Projects/Scripts/SpecialSystems/Engines/ItemFixes.cs similarity index 100% rename from Scripts/SpecialSystems/Engines/ItemFixes.cs rename to Projects/Scripts/SpecialSystems/Engines/ItemFixes.cs diff --git a/Scripts/SpecialSystems/Engines/PreventInaccess.cs b/Projects/Scripts/SpecialSystems/Engines/PreventInaccess.cs similarity index 100% rename from Scripts/SpecialSystems/Engines/PreventInaccess.cs rename to Projects/Scripts/SpecialSystems/Engines/PreventInaccess.cs diff --git a/Scripts/SpecialSystems/Engines/TestCenter.cs b/Projects/Scripts/SpecialSystems/Engines/TestCenter.cs similarity index 100% rename from Scripts/SpecialSystems/Engines/TestCenter.cs rename to Projects/Scripts/SpecialSystems/Engines/TestCenter.cs diff --git a/Scripts/SpecialSystems/Items/Resurrection/ResGate.cs b/Projects/Scripts/SpecialSystems/Items/Resurrection/ResGate.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Resurrection/ResGate.cs rename to Projects/Scripts/SpecialSystems/Items/Resurrection/ResGate.cs diff --git a/Scripts/SpecialSystems/Items/Stones/AlchemyStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/AlchemyStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/AlchemyStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/AlchemyStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/GMStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/GMStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/GMStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/GMStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/GamblingStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/GamblingStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/GamblingStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/GamblingStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/IngotStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/IngotStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/IngotStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/IngotStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/RegStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/RegStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/RegStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/RegStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/ScribeStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/ScribeStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/ScribeStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/ScribeStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/SmithStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/SmithStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/SmithStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/SmithStone.cs diff --git a/Scripts/SpecialSystems/Items/Stones/TailorStone.cs b/Projects/Scripts/SpecialSystems/Items/Stones/TailorStone.cs similarity index 100% rename from Scripts/SpecialSystems/Items/Stones/TailorStone.cs rename to Projects/Scripts/SpecialSystems/Items/Stones/TailorStone.cs diff --git a/Scripts/SpecialSystems/Items/SupplyBags/AlchemyBag.cs b/Projects/Scripts/SpecialSystems/Items/SupplyBags/AlchemyBag.cs similarity index 100% rename from Scripts/SpecialSystems/Items/SupplyBags/AlchemyBag.cs rename to Projects/Scripts/SpecialSystems/Items/SupplyBags/AlchemyBag.cs diff --git a/Scripts/SpecialSystems/Items/SupplyBags/BagOfIngots.cs b/Projects/Scripts/SpecialSystems/Items/SupplyBags/BagOfIngots.cs similarity index 100% rename from Scripts/SpecialSystems/Items/SupplyBags/BagOfIngots.cs rename to Projects/Scripts/SpecialSystems/Items/SupplyBags/BagOfIngots.cs diff --git a/Scripts/SpecialSystems/Items/SupplyBags/ScribeBag.cs b/Projects/Scripts/SpecialSystems/Items/SupplyBags/ScribeBag.cs similarity index 100% rename from Scripts/SpecialSystems/Items/SupplyBags/ScribeBag.cs rename to Projects/Scripts/SpecialSystems/Items/SupplyBags/ScribeBag.cs diff --git a/Scripts/SpecialSystems/Items/SupplyBags/SmithBag.cs b/Projects/Scripts/SpecialSystems/Items/SupplyBags/SmithBag.cs similarity index 100% rename from Scripts/SpecialSystems/Items/SupplyBags/SmithBag.cs rename to Projects/Scripts/SpecialSystems/Items/SupplyBags/SmithBag.cs diff --git a/Scripts/SpecialSystems/Items/SupplyBags/TailorBag.cs b/Projects/Scripts/SpecialSystems/Items/SupplyBags/TailorBag.cs similarity index 100% rename from Scripts/SpecialSystems/Items/SupplyBags/TailorBag.cs rename to Projects/Scripts/SpecialSystems/Items/SupplyBags/TailorBag.cs diff --git a/Scripts/SpecialSystems/README.TXT b/Projects/Scripts/SpecialSystems/README.TXT similarity index 100% rename from Scripts/SpecialSystems/README.TXT rename to Projects/Scripts/SpecialSystems/README.TXT diff --git a/Scripts/Spells/Base/DisturbType.cs b/Projects/Scripts/Spells/Base/DisturbType.cs similarity index 100% rename from Scripts/Spells/Base/DisturbType.cs rename to Projects/Scripts/Spells/Base/DisturbType.cs diff --git a/Scripts/Spells/Base/MagerySpell.cs b/Projects/Scripts/Spells/Base/MagerySpell.cs similarity index 100% rename from Scripts/Spells/Base/MagerySpell.cs rename to Projects/Scripts/Spells/Base/MagerySpell.cs diff --git a/Scripts/Spells/Base/SpecialMove.cs b/Projects/Scripts/Spells/Base/SpecialMove.cs similarity index 100% rename from Scripts/Spells/Base/SpecialMove.cs rename to Projects/Scripts/Spells/Base/SpecialMove.cs diff --git a/Scripts/Spells/Base/Spell.cs b/Projects/Scripts/Spells/Base/Spell.cs similarity index 100% rename from Scripts/Spells/Base/Spell.cs rename to Projects/Scripts/Spells/Base/Spell.cs diff --git a/Scripts/Spells/Base/SpellCircle.cs b/Projects/Scripts/Spells/Base/SpellCircle.cs similarity index 100% rename from Scripts/Spells/Base/SpellCircle.cs rename to Projects/Scripts/Spells/Base/SpellCircle.cs diff --git a/Scripts/Spells/Base/SpellHelper.cs b/Projects/Scripts/Spells/Base/SpellHelper.cs similarity index 100% rename from Scripts/Spells/Base/SpellHelper.cs rename to Projects/Scripts/Spells/Base/SpellHelper.cs diff --git a/Scripts/Spells/Base/SpellInfo.cs b/Projects/Scripts/Spells/Base/SpellInfo.cs similarity index 100% rename from Scripts/Spells/Base/SpellInfo.cs rename to Projects/Scripts/Spells/Base/SpellInfo.cs diff --git a/Scripts/Spells/Base/SpellRegistry.cs b/Projects/Scripts/Spells/Base/SpellRegistry.cs similarity index 100% rename from Scripts/Spells/Base/SpellRegistry.cs rename to Projects/Scripts/Spells/Base/SpellRegistry.cs diff --git a/Scripts/Spells/Base/SpellState.cs b/Projects/Scripts/Spells/Base/SpellState.cs similarity index 100% rename from Scripts/Spells/Base/SpellState.cs rename to Projects/Scripts/Spells/Base/SpellState.cs diff --git a/Scripts/Spells/Bushido/Confidence.cs b/Projects/Scripts/Spells/Bushido/Confidence.cs similarity index 100% rename from Scripts/Spells/Bushido/Confidence.cs rename to Projects/Scripts/Spells/Bushido/Confidence.cs diff --git a/Scripts/Spells/Bushido/CounterAttack.cs b/Projects/Scripts/Spells/Bushido/CounterAttack.cs similarity index 100% rename from Scripts/Spells/Bushido/CounterAttack.cs rename to Projects/Scripts/Spells/Bushido/CounterAttack.cs diff --git a/Scripts/Spells/Bushido/Evasion.cs b/Projects/Scripts/Spells/Bushido/Evasion.cs similarity index 100% rename from Scripts/Spells/Bushido/Evasion.cs rename to Projects/Scripts/Spells/Bushido/Evasion.cs diff --git a/Scripts/Spells/Bushido/HonorableExecution.cs b/Projects/Scripts/Spells/Bushido/HonorableExecution.cs similarity index 100% rename from Scripts/Spells/Bushido/HonorableExecution.cs rename to Projects/Scripts/Spells/Bushido/HonorableExecution.cs diff --git a/Scripts/Spells/Bushido/LightningStrike.cs b/Projects/Scripts/Spells/Bushido/LightningStrike.cs similarity index 100% rename from Scripts/Spells/Bushido/LightningStrike.cs rename to Projects/Scripts/Spells/Bushido/LightningStrike.cs diff --git a/Scripts/Spells/Bushido/MomentumStrike.cs b/Projects/Scripts/Spells/Bushido/MomentumStrike.cs similarity index 100% rename from Scripts/Spells/Bushido/MomentumStrike.cs rename to Projects/Scripts/Spells/Bushido/MomentumStrike.cs diff --git a/Scripts/Spells/Bushido/SamuraiMove.cs b/Projects/Scripts/Spells/Bushido/SamuraiMove.cs similarity index 100% rename from Scripts/Spells/Bushido/SamuraiMove.cs rename to Projects/Scripts/Spells/Bushido/SamuraiMove.cs diff --git a/Scripts/Spells/Bushido/SamuraiSpell.cs b/Projects/Scripts/Spells/Bushido/SamuraiSpell.cs similarity index 100% rename from Scripts/Spells/Bushido/SamuraiSpell.cs rename to Projects/Scripts/Spells/Bushido/SamuraiSpell.cs diff --git a/Scripts/Spells/Chivalry/CleanseByFire.cs b/Projects/Scripts/Spells/Chivalry/CleanseByFire.cs similarity index 100% rename from Scripts/Spells/Chivalry/CleanseByFire.cs rename to Projects/Scripts/Spells/Chivalry/CleanseByFire.cs diff --git a/Scripts/Spells/Chivalry/CloseWounds.cs b/Projects/Scripts/Spells/Chivalry/CloseWounds.cs similarity index 100% rename from Scripts/Spells/Chivalry/CloseWounds.cs rename to Projects/Scripts/Spells/Chivalry/CloseWounds.cs diff --git a/Scripts/Spells/Chivalry/ConsecrateWeapon.cs b/Projects/Scripts/Spells/Chivalry/ConsecrateWeapon.cs similarity index 100% rename from Scripts/Spells/Chivalry/ConsecrateWeapon.cs rename to Projects/Scripts/Spells/Chivalry/ConsecrateWeapon.cs diff --git a/Scripts/Spells/Chivalry/DispelEvil.cs b/Projects/Scripts/Spells/Chivalry/DispelEvil.cs similarity index 100% rename from Scripts/Spells/Chivalry/DispelEvil.cs rename to Projects/Scripts/Spells/Chivalry/DispelEvil.cs diff --git a/Scripts/Spells/Chivalry/DivineFury.cs b/Projects/Scripts/Spells/Chivalry/DivineFury.cs similarity index 100% rename from Scripts/Spells/Chivalry/DivineFury.cs rename to Projects/Scripts/Spells/Chivalry/DivineFury.cs diff --git a/Scripts/Spells/Chivalry/EnemyOfOne.cs b/Projects/Scripts/Spells/Chivalry/EnemyOfOne.cs similarity index 100% rename from Scripts/Spells/Chivalry/EnemyOfOne.cs rename to Projects/Scripts/Spells/Chivalry/EnemyOfOne.cs diff --git a/Scripts/Spells/Chivalry/HolyLight.cs b/Projects/Scripts/Spells/Chivalry/HolyLight.cs similarity index 100% rename from Scripts/Spells/Chivalry/HolyLight.cs rename to Projects/Scripts/Spells/Chivalry/HolyLight.cs diff --git a/Scripts/Spells/Chivalry/NobleSacrifice.cs b/Projects/Scripts/Spells/Chivalry/NobleSacrifice.cs similarity index 100% rename from Scripts/Spells/Chivalry/NobleSacrifice.cs rename to Projects/Scripts/Spells/Chivalry/NobleSacrifice.cs diff --git a/Scripts/Spells/Chivalry/PaladinSpell.cs b/Projects/Scripts/Spells/Chivalry/PaladinSpell.cs similarity index 100% rename from Scripts/Spells/Chivalry/PaladinSpell.cs rename to Projects/Scripts/Spells/Chivalry/PaladinSpell.cs diff --git a/Scripts/Spells/Chivalry/RemoveCurse.cs b/Projects/Scripts/Spells/Chivalry/RemoveCurse.cs similarity index 100% rename from Scripts/Spells/Chivalry/RemoveCurse.cs rename to Projects/Scripts/Spells/Chivalry/RemoveCurse.cs diff --git a/Scripts/Spells/Chivalry/SacredJourney.cs b/Projects/Scripts/Spells/Chivalry/SacredJourney.cs similarity index 100% rename from Scripts/Spells/Chivalry/SacredJourney.cs rename to Projects/Scripts/Spells/Chivalry/SacredJourney.cs diff --git a/Scripts/Spells/Eighth/AirElemental.cs b/Projects/Scripts/Spells/Eighth/AirElemental.cs similarity index 100% rename from Scripts/Spells/Eighth/AirElemental.cs rename to Projects/Scripts/Spells/Eighth/AirElemental.cs diff --git a/Scripts/Spells/Eighth/EarthElemental.cs b/Projects/Scripts/Spells/Eighth/EarthElemental.cs similarity index 100% rename from Scripts/Spells/Eighth/EarthElemental.cs rename to Projects/Scripts/Spells/Eighth/EarthElemental.cs diff --git a/Scripts/Spells/Eighth/Earthquake.cs b/Projects/Scripts/Spells/Eighth/Earthquake.cs similarity index 100% rename from Scripts/Spells/Eighth/Earthquake.cs rename to Projects/Scripts/Spells/Eighth/Earthquake.cs diff --git a/Scripts/Spells/Eighth/EnergyVortex.cs b/Projects/Scripts/Spells/Eighth/EnergyVortex.cs similarity index 100% rename from Scripts/Spells/Eighth/EnergyVortex.cs rename to Projects/Scripts/Spells/Eighth/EnergyVortex.cs diff --git a/Scripts/Spells/Eighth/FireElemental.cs b/Projects/Scripts/Spells/Eighth/FireElemental.cs similarity index 100% rename from Scripts/Spells/Eighth/FireElemental.cs rename to Projects/Scripts/Spells/Eighth/FireElemental.cs diff --git a/Scripts/Spells/Eighth/Resurrection.cs b/Projects/Scripts/Spells/Eighth/Resurrection.cs similarity index 100% rename from Scripts/Spells/Eighth/Resurrection.cs rename to Projects/Scripts/Spells/Eighth/Resurrection.cs diff --git a/Scripts/Spells/Eighth/SummonDaemon.cs b/Projects/Scripts/Spells/Eighth/SummonDaemon.cs similarity index 100% rename from Scripts/Spells/Eighth/SummonDaemon.cs rename to Projects/Scripts/Spells/Eighth/SummonDaemon.cs diff --git a/Scripts/Spells/Eighth/WaterElemental.cs b/Projects/Scripts/Spells/Eighth/WaterElemental.cs similarity index 100% rename from Scripts/Spells/Eighth/WaterElemental.cs rename to Projects/Scripts/Spells/Eighth/WaterElemental.cs diff --git a/Scripts/Spells/Fifth/BladeSpirits.cs b/Projects/Scripts/Spells/Fifth/BladeSpirits.cs similarity index 100% rename from Scripts/Spells/Fifth/BladeSpirits.cs rename to Projects/Scripts/Spells/Fifth/BladeSpirits.cs diff --git a/Scripts/Spells/Fifth/DispelField.cs b/Projects/Scripts/Spells/Fifth/DispelField.cs similarity index 100% rename from Scripts/Spells/Fifth/DispelField.cs rename to Projects/Scripts/Spells/Fifth/DispelField.cs diff --git a/Scripts/Spells/Fifth/Incognito.cs b/Projects/Scripts/Spells/Fifth/Incognito.cs similarity index 100% rename from Scripts/Spells/Fifth/Incognito.cs rename to Projects/Scripts/Spells/Fifth/Incognito.cs diff --git a/Scripts/Spells/Fifth/MagicReflect.cs b/Projects/Scripts/Spells/Fifth/MagicReflect.cs similarity index 100% rename from Scripts/Spells/Fifth/MagicReflect.cs rename to Projects/Scripts/Spells/Fifth/MagicReflect.cs diff --git a/Scripts/Spells/Fifth/MindBlast.cs b/Projects/Scripts/Spells/Fifth/MindBlast.cs similarity index 100% rename from Scripts/Spells/Fifth/MindBlast.cs rename to Projects/Scripts/Spells/Fifth/MindBlast.cs diff --git a/Scripts/Spells/Fifth/Paralyze.cs b/Projects/Scripts/Spells/Fifth/Paralyze.cs similarity index 100% rename from Scripts/Spells/Fifth/Paralyze.cs rename to Projects/Scripts/Spells/Fifth/Paralyze.cs diff --git a/Scripts/Spells/Fifth/PoisonField.cs b/Projects/Scripts/Spells/Fifth/PoisonField.cs similarity index 100% rename from Scripts/Spells/Fifth/PoisonField.cs rename to Projects/Scripts/Spells/Fifth/PoisonField.cs diff --git a/Scripts/Spells/Fifth/SummonCreature.cs b/Projects/Scripts/Spells/Fifth/SummonCreature.cs similarity index 100% rename from Scripts/Spells/Fifth/SummonCreature.cs rename to Projects/Scripts/Spells/Fifth/SummonCreature.cs diff --git a/Scripts/Spells/First/Clumsy.cs b/Projects/Scripts/Spells/First/Clumsy.cs similarity index 100% rename from Scripts/Spells/First/Clumsy.cs rename to Projects/Scripts/Spells/First/Clumsy.cs diff --git a/Scripts/Spells/First/CreateFood.cs b/Projects/Scripts/Spells/First/CreateFood.cs similarity index 100% rename from Scripts/Spells/First/CreateFood.cs rename to Projects/Scripts/Spells/First/CreateFood.cs diff --git a/Scripts/Spells/First/Feeblemind.cs b/Projects/Scripts/Spells/First/Feeblemind.cs similarity index 100% rename from Scripts/Spells/First/Feeblemind.cs rename to Projects/Scripts/Spells/First/Feeblemind.cs diff --git a/Scripts/Spells/First/Heal.cs b/Projects/Scripts/Spells/First/Heal.cs similarity index 100% rename from Scripts/Spells/First/Heal.cs rename to Projects/Scripts/Spells/First/Heal.cs diff --git a/Scripts/Spells/First/MagicArrow.cs b/Projects/Scripts/Spells/First/MagicArrow.cs similarity index 100% rename from Scripts/Spells/First/MagicArrow.cs rename to Projects/Scripts/Spells/First/MagicArrow.cs diff --git a/Scripts/Spells/First/NightSight.cs b/Projects/Scripts/Spells/First/NightSight.cs similarity index 100% rename from Scripts/Spells/First/NightSight.cs rename to Projects/Scripts/Spells/First/NightSight.cs diff --git a/Scripts/Spells/First/ReactiveArmor.cs b/Projects/Scripts/Spells/First/ReactiveArmor.cs similarity index 100% rename from Scripts/Spells/First/ReactiveArmor.cs rename to Projects/Scripts/Spells/First/ReactiveArmor.cs diff --git a/Scripts/Spells/First/Weaken.cs b/Projects/Scripts/Spells/First/Weaken.cs similarity index 100% rename from Scripts/Spells/First/Weaken.cs rename to Projects/Scripts/Spells/First/Weaken.cs diff --git a/Scripts/Spells/Fourth/ArchCure.cs b/Projects/Scripts/Spells/Fourth/ArchCure.cs similarity index 100% rename from Scripts/Spells/Fourth/ArchCure.cs rename to Projects/Scripts/Spells/Fourth/ArchCure.cs diff --git a/Scripts/Spells/Fourth/ArchProtection.cs b/Projects/Scripts/Spells/Fourth/ArchProtection.cs similarity index 100% rename from Scripts/Spells/Fourth/ArchProtection.cs rename to Projects/Scripts/Spells/Fourth/ArchProtection.cs diff --git a/Scripts/Spells/Fourth/Curse.cs b/Projects/Scripts/Spells/Fourth/Curse.cs similarity index 100% rename from Scripts/Spells/Fourth/Curse.cs rename to Projects/Scripts/Spells/Fourth/Curse.cs diff --git a/Scripts/Spells/Fourth/FireField.cs b/Projects/Scripts/Spells/Fourth/FireField.cs similarity index 100% rename from Scripts/Spells/Fourth/FireField.cs rename to Projects/Scripts/Spells/Fourth/FireField.cs diff --git a/Scripts/Spells/Fourth/GreaterHeal.cs b/Projects/Scripts/Spells/Fourth/GreaterHeal.cs similarity index 100% rename from Scripts/Spells/Fourth/GreaterHeal.cs rename to Projects/Scripts/Spells/Fourth/GreaterHeal.cs diff --git a/Scripts/Spells/Fourth/Lightning.cs b/Projects/Scripts/Spells/Fourth/Lightning.cs similarity index 100% rename from Scripts/Spells/Fourth/Lightning.cs rename to Projects/Scripts/Spells/Fourth/Lightning.cs diff --git a/Scripts/Spells/Fourth/ManaDrain.cs b/Projects/Scripts/Spells/Fourth/ManaDrain.cs similarity index 100% rename from Scripts/Spells/Fourth/ManaDrain.cs rename to Projects/Scripts/Spells/Fourth/ManaDrain.cs diff --git a/Scripts/Spells/Fourth/Recall.cs b/Projects/Scripts/Spells/Fourth/Recall.cs similarity index 100% rename from Scripts/Spells/Fourth/Recall.cs rename to Projects/Scripts/Spells/Fourth/Recall.cs diff --git a/Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs b/Projects/Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs similarity index 100% rename from Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs rename to Projects/Scripts/Spells/Gargoyle/SpellDefinitions/FlySpell.cs diff --git a/Scripts/Spells/Initializer.cs b/Projects/Scripts/Spells/Initializer.cs similarity index 100% rename from Scripts/Spells/Initializer.cs rename to Projects/Scripts/Spells/Initializer.cs diff --git a/Scripts/Spells/Mysticism/AnimatedWeaponSpell.cs b/Projects/Scripts/Spells/Mysticism/AnimatedWeaponSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/AnimatedWeaponSpell.cs rename to Projects/Scripts/Spells/Mysticism/AnimatedWeaponSpell.cs diff --git a/Scripts/Spells/Mysticism/EagleStrikeSpell.cs b/Projects/Scripts/Spells/Mysticism/EagleStrikeSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/EagleStrikeSpell.cs rename to Projects/Scripts/Spells/Mysticism/EagleStrikeSpell.cs diff --git a/Scripts/Spells/Mysticism/HailStormSpell.cs b/Projects/Scripts/Spells/Mysticism/HailStormSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/HailStormSpell.cs rename to Projects/Scripts/Spells/Mysticism/HailStormSpell.cs diff --git a/Scripts/Spells/Mysticism/MysticSpell.cs b/Projects/Scripts/Spells/Mysticism/MysticSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/MysticSpell.cs rename to Projects/Scripts/Spells/Mysticism/MysticSpell.cs diff --git a/Scripts/Spells/Mysticism/NetherCycloneSpell.cs b/Projects/Scripts/Spells/Mysticism/NetherCycloneSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/NetherCycloneSpell.cs rename to Projects/Scripts/Spells/Mysticism/NetherCycloneSpell.cs diff --git a/Scripts/Spells/Mysticism/SpellPlagueSpell.cs b/Projects/Scripts/Spells/Mysticism/SpellPlagueSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/SpellPlagueSpell.cs rename to Projects/Scripts/Spells/Mysticism/SpellPlagueSpell.cs diff --git a/Scripts/Spells/Mysticism/StoneFormSpell.cs b/Projects/Scripts/Spells/Mysticism/StoneFormSpell.cs similarity index 100% rename from Scripts/Spells/Mysticism/StoneFormSpell.cs rename to Projects/Scripts/Spells/Mysticism/StoneFormSpell.cs diff --git a/Scripts/Spells/Necromancy/AnimateDeadSpell.cs b/Projects/Scripts/Spells/Necromancy/AnimateDeadSpell.cs similarity index 100% rename from Scripts/Spells/Necromancy/AnimateDeadSpell.cs rename to Projects/Scripts/Spells/Necromancy/AnimateDeadSpell.cs diff --git a/Scripts/Spells/Necromancy/BloodOathSpell.cs b/Projects/Scripts/Spells/Necromancy/BloodOathSpell.cs similarity index 100% rename from Scripts/Spells/Necromancy/BloodOathSpell.cs rename to Projects/Scripts/Spells/Necromancy/BloodOathSpell.cs diff --git a/Scripts/Spells/Necromancy/CorpseSkin.cs b/Projects/Scripts/Spells/Necromancy/CorpseSkin.cs similarity index 100% rename from Scripts/Spells/Necromancy/CorpseSkin.cs rename to Projects/Scripts/Spells/Necromancy/CorpseSkin.cs diff --git a/Scripts/Spells/Necromancy/CurseWeapon.cs b/Projects/Scripts/Spells/Necromancy/CurseWeapon.cs similarity index 100% rename from Scripts/Spells/Necromancy/CurseWeapon.cs rename to Projects/Scripts/Spells/Necromancy/CurseWeapon.cs diff --git a/Scripts/Spells/Necromancy/EvilOmen.cs b/Projects/Scripts/Spells/Necromancy/EvilOmen.cs similarity index 100% rename from Scripts/Spells/Necromancy/EvilOmen.cs rename to Projects/Scripts/Spells/Necromancy/EvilOmen.cs diff --git a/Scripts/Spells/Necromancy/Exorcism.cs b/Projects/Scripts/Spells/Necromancy/Exorcism.cs similarity index 100% rename from Scripts/Spells/Necromancy/Exorcism.cs rename to Projects/Scripts/Spells/Necromancy/Exorcism.cs diff --git a/Scripts/Spells/Necromancy/HorrificBeast.cs b/Projects/Scripts/Spells/Necromancy/HorrificBeast.cs similarity index 100% rename from Scripts/Spells/Necromancy/HorrificBeast.cs rename to Projects/Scripts/Spells/Necromancy/HorrificBeast.cs diff --git a/Scripts/Spells/Necromancy/LichForm.cs b/Projects/Scripts/Spells/Necromancy/LichForm.cs similarity index 100% rename from Scripts/Spells/Necromancy/LichForm.cs rename to Projects/Scripts/Spells/Necromancy/LichForm.cs diff --git a/Scripts/Spells/Necromancy/MindRot.cs b/Projects/Scripts/Spells/Necromancy/MindRot.cs similarity index 100% rename from Scripts/Spells/Necromancy/MindRot.cs rename to Projects/Scripts/Spells/Necromancy/MindRot.cs diff --git a/Scripts/Spells/Necromancy/NecromancerSpell.cs b/Projects/Scripts/Spells/Necromancy/NecromancerSpell.cs similarity index 100% rename from Scripts/Spells/Necromancy/NecromancerSpell.cs rename to Projects/Scripts/Spells/Necromancy/NecromancerSpell.cs diff --git a/Scripts/Spells/Necromancy/PainSpike.cs b/Projects/Scripts/Spells/Necromancy/PainSpike.cs similarity index 100% rename from Scripts/Spells/Necromancy/PainSpike.cs rename to Projects/Scripts/Spells/Necromancy/PainSpike.cs diff --git a/Scripts/Spells/Necromancy/PoisonStrike.cs b/Projects/Scripts/Spells/Necromancy/PoisonStrike.cs similarity index 100% rename from Scripts/Spells/Necromancy/PoisonStrike.cs rename to Projects/Scripts/Spells/Necromancy/PoisonStrike.cs diff --git a/Scripts/Spells/Necromancy/Strangle.cs b/Projects/Scripts/Spells/Necromancy/Strangle.cs similarity index 100% rename from Scripts/Spells/Necromancy/Strangle.cs rename to Projects/Scripts/Spells/Necromancy/Strangle.cs diff --git a/Scripts/Spells/Necromancy/SummonFamiliar.cs b/Projects/Scripts/Spells/Necromancy/SummonFamiliar.cs similarity index 100% rename from Scripts/Spells/Necromancy/SummonFamiliar.cs rename to Projects/Scripts/Spells/Necromancy/SummonFamiliar.cs diff --git a/Scripts/Spells/Necromancy/TransformationSpell.cs b/Projects/Scripts/Spells/Necromancy/TransformationSpell.cs similarity index 100% rename from Scripts/Spells/Necromancy/TransformationSpell.cs rename to Projects/Scripts/Spells/Necromancy/TransformationSpell.cs diff --git a/Scripts/Spells/Necromancy/VampiricEmbrace.cs b/Projects/Scripts/Spells/Necromancy/VampiricEmbrace.cs similarity index 100% rename from Scripts/Spells/Necromancy/VampiricEmbrace.cs rename to Projects/Scripts/Spells/Necromancy/VampiricEmbrace.cs diff --git a/Scripts/Spells/Necromancy/VengefulSpirit.cs b/Projects/Scripts/Spells/Necromancy/VengefulSpirit.cs similarity index 100% rename from Scripts/Spells/Necromancy/VengefulSpirit.cs rename to Projects/Scripts/Spells/Necromancy/VengefulSpirit.cs diff --git a/Scripts/Spells/Necromancy/Wither.cs b/Projects/Scripts/Spells/Necromancy/Wither.cs similarity index 100% rename from Scripts/Spells/Necromancy/Wither.cs rename to Projects/Scripts/Spells/Necromancy/Wither.cs diff --git a/Scripts/Spells/Necromancy/WraithForm.cs b/Projects/Scripts/Spells/Necromancy/WraithForm.cs similarity index 100% rename from Scripts/Spells/Necromancy/WraithForm.cs rename to Projects/Scripts/Spells/Necromancy/WraithForm.cs diff --git a/Scripts/Spells/Ninjitsu/AnimalForm.cs b/Projects/Scripts/Spells/Ninjitsu/AnimalForm.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/AnimalForm.cs rename to Projects/Scripts/Spells/Ninjitsu/AnimalForm.cs diff --git a/Scripts/Spells/Ninjitsu/Backstab.cs b/Projects/Scripts/Spells/Ninjitsu/Backstab.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/Backstab.cs rename to Projects/Scripts/Spells/Ninjitsu/Backstab.cs diff --git a/Scripts/Spells/Ninjitsu/DeathStrike.cs b/Projects/Scripts/Spells/Ninjitsu/DeathStrike.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/DeathStrike.cs rename to Projects/Scripts/Spells/Ninjitsu/DeathStrike.cs diff --git a/Scripts/Spells/Ninjitsu/FocusAttack.cs b/Projects/Scripts/Spells/Ninjitsu/FocusAttack.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/FocusAttack.cs rename to Projects/Scripts/Spells/Ninjitsu/FocusAttack.cs diff --git a/Scripts/Spells/Ninjitsu/KiAttack.cs b/Projects/Scripts/Spells/Ninjitsu/KiAttack.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/KiAttack.cs rename to Projects/Scripts/Spells/Ninjitsu/KiAttack.cs diff --git a/Scripts/Spells/Ninjitsu/MirrorImage.cs b/Projects/Scripts/Spells/Ninjitsu/MirrorImage.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/MirrorImage.cs rename to Projects/Scripts/Spells/Ninjitsu/MirrorImage.cs diff --git a/Scripts/Spells/Ninjitsu/NinjaMove.cs b/Projects/Scripts/Spells/Ninjitsu/NinjaMove.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/NinjaMove.cs rename to Projects/Scripts/Spells/Ninjitsu/NinjaMove.cs diff --git a/Scripts/Spells/Ninjitsu/NinjaSpell.cs b/Projects/Scripts/Spells/Ninjitsu/NinjaSpell.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/NinjaSpell.cs rename to Projects/Scripts/Spells/Ninjitsu/NinjaSpell.cs diff --git a/Scripts/Spells/Ninjitsu/ShadowJump.cs b/Projects/Scripts/Spells/Ninjitsu/ShadowJump.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/ShadowJump.cs rename to Projects/Scripts/Spells/Ninjitsu/ShadowJump.cs diff --git a/Scripts/Spells/Ninjitsu/SurpriseAttack.cs b/Projects/Scripts/Spells/Ninjitsu/SurpriseAttack.cs similarity index 100% rename from Scripts/Spells/Ninjitsu/SurpriseAttack.cs rename to Projects/Scripts/Spells/Ninjitsu/SurpriseAttack.cs diff --git a/Scripts/Spells/Reagent.cs b/Projects/Scripts/Spells/Reagent.cs similarity index 100% rename from Scripts/Spells/Reagent.cs rename to Projects/Scripts/Spells/Reagent.cs diff --git a/Scripts/Spells/Second/Agility.cs b/Projects/Scripts/Spells/Second/Agility.cs similarity index 100% rename from Scripts/Spells/Second/Agility.cs rename to Projects/Scripts/Spells/Second/Agility.cs diff --git a/Scripts/Spells/Second/Cunning.cs b/Projects/Scripts/Spells/Second/Cunning.cs similarity index 100% rename from Scripts/Spells/Second/Cunning.cs rename to Projects/Scripts/Spells/Second/Cunning.cs diff --git a/Scripts/Spells/Second/Cure.cs b/Projects/Scripts/Spells/Second/Cure.cs similarity index 100% rename from Scripts/Spells/Second/Cure.cs rename to Projects/Scripts/Spells/Second/Cure.cs diff --git a/Scripts/Spells/Second/Harm.cs b/Projects/Scripts/Spells/Second/Harm.cs similarity index 100% rename from Scripts/Spells/Second/Harm.cs rename to Projects/Scripts/Spells/Second/Harm.cs diff --git a/Scripts/Spells/Second/MagicTrap.cs b/Projects/Scripts/Spells/Second/MagicTrap.cs similarity index 100% rename from Scripts/Spells/Second/MagicTrap.cs rename to Projects/Scripts/Spells/Second/MagicTrap.cs diff --git a/Scripts/Spells/Second/Protection.cs b/Projects/Scripts/Spells/Second/Protection.cs similarity index 100% rename from Scripts/Spells/Second/Protection.cs rename to Projects/Scripts/Spells/Second/Protection.cs diff --git a/Scripts/Spells/Second/RemoveTrap.cs b/Projects/Scripts/Spells/Second/RemoveTrap.cs similarity index 100% rename from Scripts/Spells/Second/RemoveTrap.cs rename to Projects/Scripts/Spells/Second/RemoveTrap.cs diff --git a/Scripts/Spells/Second/Strength.cs b/Projects/Scripts/Spells/Second/Strength.cs similarity index 100% rename from Scripts/Spells/Second/Strength.cs rename to Projects/Scripts/Spells/Second/Strength.cs diff --git a/Scripts/Spells/Seventh/ChainLightning.cs b/Projects/Scripts/Spells/Seventh/ChainLightning.cs similarity index 100% rename from Scripts/Spells/Seventh/ChainLightning.cs rename to Projects/Scripts/Spells/Seventh/ChainLightning.cs diff --git a/Scripts/Spells/Seventh/EnergyField.cs b/Projects/Scripts/Spells/Seventh/EnergyField.cs similarity index 100% rename from Scripts/Spells/Seventh/EnergyField.cs rename to Projects/Scripts/Spells/Seventh/EnergyField.cs diff --git a/Scripts/Spells/Seventh/FlameStrike.cs b/Projects/Scripts/Spells/Seventh/FlameStrike.cs similarity index 100% rename from Scripts/Spells/Seventh/FlameStrike.cs rename to Projects/Scripts/Spells/Seventh/FlameStrike.cs diff --git a/Scripts/Spells/Seventh/GateTravel.cs b/Projects/Scripts/Spells/Seventh/GateTravel.cs similarity index 100% rename from Scripts/Spells/Seventh/GateTravel.cs rename to Projects/Scripts/Spells/Seventh/GateTravel.cs diff --git a/Scripts/Spells/Seventh/ManaVampire.cs b/Projects/Scripts/Spells/Seventh/ManaVampire.cs similarity index 100% rename from Scripts/Spells/Seventh/ManaVampire.cs rename to Projects/Scripts/Spells/Seventh/ManaVampire.cs diff --git a/Scripts/Spells/Seventh/MassDispel.cs b/Projects/Scripts/Spells/Seventh/MassDispel.cs similarity index 100% rename from Scripts/Spells/Seventh/MassDispel.cs rename to Projects/Scripts/Spells/Seventh/MassDispel.cs diff --git a/Scripts/Spells/Seventh/MeteorSwarm.cs b/Projects/Scripts/Spells/Seventh/MeteorSwarm.cs similarity index 100% rename from Scripts/Spells/Seventh/MeteorSwarm.cs rename to Projects/Scripts/Spells/Seventh/MeteorSwarm.cs diff --git a/Scripts/Spells/Seventh/Polymorph.cs b/Projects/Scripts/Spells/Seventh/Polymorph.cs similarity index 100% rename from Scripts/Spells/Seventh/Polymorph.cs rename to Projects/Scripts/Spells/Seventh/Polymorph.cs diff --git a/Scripts/Spells/Sixth/Dispel.cs b/Projects/Scripts/Spells/Sixth/Dispel.cs similarity index 100% rename from Scripts/Spells/Sixth/Dispel.cs rename to Projects/Scripts/Spells/Sixth/Dispel.cs diff --git a/Scripts/Spells/Sixth/EnergyBolt.cs b/Projects/Scripts/Spells/Sixth/EnergyBolt.cs similarity index 100% rename from Scripts/Spells/Sixth/EnergyBolt.cs rename to Projects/Scripts/Spells/Sixth/EnergyBolt.cs diff --git a/Scripts/Spells/Sixth/Explosion.cs b/Projects/Scripts/Spells/Sixth/Explosion.cs similarity index 100% rename from Scripts/Spells/Sixth/Explosion.cs rename to Projects/Scripts/Spells/Sixth/Explosion.cs diff --git a/Scripts/Spells/Sixth/Invisibility.cs b/Projects/Scripts/Spells/Sixth/Invisibility.cs similarity index 100% rename from Scripts/Spells/Sixth/Invisibility.cs rename to Projects/Scripts/Spells/Sixth/Invisibility.cs diff --git a/Scripts/Spells/Sixth/Mark.cs b/Projects/Scripts/Spells/Sixth/Mark.cs similarity index 100% rename from Scripts/Spells/Sixth/Mark.cs rename to Projects/Scripts/Spells/Sixth/Mark.cs diff --git a/Scripts/Spells/Sixth/MassCurse.cs b/Projects/Scripts/Spells/Sixth/MassCurse.cs similarity index 100% rename from Scripts/Spells/Sixth/MassCurse.cs rename to Projects/Scripts/Spells/Sixth/MassCurse.cs diff --git a/Scripts/Spells/Sixth/ParalyzeField.cs b/Projects/Scripts/Spells/Sixth/ParalyzeField.cs similarity index 100% rename from Scripts/Spells/Sixth/ParalyzeField.cs rename to Projects/Scripts/Spells/Sixth/ParalyzeField.cs diff --git a/Scripts/Spells/Sixth/Reveal.cs b/Projects/Scripts/Spells/Sixth/Reveal.cs similarity index 100% rename from Scripts/Spells/Sixth/Reveal.cs rename to Projects/Scripts/Spells/Sixth/Reveal.cs diff --git a/Scripts/Spells/Spellweaving/ArcaneCircle.cs b/Projects/Scripts/Spells/Spellweaving/ArcaneCircle.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ArcaneCircle.cs rename to Projects/Scripts/Spells/Spellweaving/ArcaneCircle.cs diff --git a/Scripts/Spells/Spellweaving/ArcaneForm.cs b/Projects/Scripts/Spells/Spellweaving/ArcaneForm.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ArcaneForm.cs rename to Projects/Scripts/Spells/Spellweaving/ArcaneForm.cs diff --git a/Scripts/Spells/Spellweaving/ArcaneSummon.cs b/Projects/Scripts/Spells/Spellweaving/ArcaneSummon.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ArcaneSummon.cs rename to Projects/Scripts/Spells/Spellweaving/ArcaneSummon.cs diff --git a/Scripts/Spells/Spellweaving/ArcanistSpell.cs b/Projects/Scripts/Spells/Spellweaving/ArcanistSpell.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ArcanistSpell.cs rename to Projects/Scripts/Spells/Spellweaving/ArcanistSpell.cs diff --git a/Scripts/Spells/Spellweaving/AttuneWeapon.cs b/Projects/Scripts/Spells/Spellweaving/AttuneWeapon.cs similarity index 100% rename from Scripts/Spells/Spellweaving/AttuneWeapon.cs rename to Projects/Scripts/Spells/Spellweaving/AttuneWeapon.cs diff --git a/Scripts/Spells/Spellweaving/EssenceOfWind.cs b/Projects/Scripts/Spells/Spellweaving/EssenceOfWind.cs similarity index 100% rename from Scripts/Spells/Spellweaving/EssenceOfWind.cs rename to Projects/Scripts/Spells/Spellweaving/EssenceOfWind.cs diff --git a/Scripts/Spells/Spellweaving/EtherealVoyage.cs b/Projects/Scripts/Spells/Spellweaving/EtherealVoyage.cs similarity index 100% rename from Scripts/Spells/Spellweaving/EtherealVoyage.cs rename to Projects/Scripts/Spells/Spellweaving/EtherealVoyage.cs diff --git a/Scripts/Spells/Spellweaving/GiftOfLife.cs b/Projects/Scripts/Spells/Spellweaving/GiftOfLife.cs similarity index 100% rename from Scripts/Spells/Spellweaving/GiftOfLife.cs rename to Projects/Scripts/Spells/Spellweaving/GiftOfLife.cs diff --git a/Scripts/Spells/Spellweaving/GiftOfRenewal.cs b/Projects/Scripts/Spells/Spellweaving/GiftOfRenewal.cs similarity index 100% rename from Scripts/Spells/Spellweaving/GiftOfRenewal.cs rename to Projects/Scripts/Spells/Spellweaving/GiftOfRenewal.cs diff --git a/Scripts/Spells/Spellweaving/ImmolatingWeapon.cs b/Projects/Scripts/Spells/Spellweaving/ImmolatingWeapon.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ImmolatingWeapon.cs rename to Projects/Scripts/Spells/Spellweaving/ImmolatingWeapon.cs diff --git a/Scripts/Spells/Spellweaving/Items/ArcaneFocus.cs b/Projects/Scripts/Spells/Spellweaving/Items/ArcaneFocus.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Items/ArcaneFocus.cs rename to Projects/Scripts/Spells/Spellweaving/Items/ArcaneFocus.cs diff --git a/Scripts/Spells/Spellweaving/Items/TransientItem.cs b/Projects/Scripts/Spells/Spellweaving/Items/TransientItem.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Items/TransientItem.cs rename to Projects/Scripts/Spells/Spellweaving/Items/TransientItem.cs diff --git a/Scripts/Spells/Spellweaving/Mobiles/ArcaneFey.cs b/Projects/Scripts/Spells/Spellweaving/Mobiles/ArcaneFey.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Mobiles/ArcaneFey.cs rename to Projects/Scripts/Spells/Spellweaving/Mobiles/ArcaneFey.cs diff --git a/Scripts/Spells/Spellweaving/Mobiles/ArcaneFiend.cs b/Projects/Scripts/Spells/Spellweaving/Mobiles/ArcaneFiend.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Mobiles/ArcaneFiend.cs rename to Projects/Scripts/Spells/Spellweaving/Mobiles/ArcaneFiend.cs diff --git a/Scripts/Spells/Spellweaving/Mobiles/NatureFury.cs b/Projects/Scripts/Spells/Spellweaving/Mobiles/NatureFury.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Mobiles/NatureFury.cs rename to Projects/Scripts/Spells/Spellweaving/Mobiles/NatureFury.cs diff --git a/Scripts/Spells/Spellweaving/NatureFury.cs b/Projects/Scripts/Spells/Spellweaving/NatureFury.cs similarity index 100% rename from Scripts/Spells/Spellweaving/NatureFury.cs rename to Projects/Scripts/Spells/Spellweaving/NatureFury.cs diff --git a/Scripts/Spells/Spellweaving/ReaperForm.cs b/Projects/Scripts/Spells/Spellweaving/ReaperForm.cs similarity index 100% rename from Scripts/Spells/Spellweaving/ReaperForm.cs rename to Projects/Scripts/Spells/Spellweaving/ReaperForm.cs diff --git a/Scripts/Spells/Spellweaving/SummonFey.cs b/Projects/Scripts/Spells/Spellweaving/SummonFey.cs similarity index 100% rename from Scripts/Spells/Spellweaving/SummonFey.cs rename to Projects/Scripts/Spells/Spellweaving/SummonFey.cs diff --git a/Scripts/Spells/Spellweaving/SummonFiend.cs b/Projects/Scripts/Spells/Spellweaving/SummonFiend.cs similarity index 100% rename from Scripts/Spells/Spellweaving/SummonFiend.cs rename to Projects/Scripts/Spells/Spellweaving/SummonFiend.cs diff --git a/Scripts/Spells/Spellweaving/Thunderstorm.cs b/Projects/Scripts/Spells/Spellweaving/Thunderstorm.cs similarity index 100% rename from Scripts/Spells/Spellweaving/Thunderstorm.cs rename to Projects/Scripts/Spells/Spellweaving/Thunderstorm.cs diff --git a/Scripts/Spells/Spellweaving/WordOfDeath.cs b/Projects/Scripts/Spells/Spellweaving/WordOfDeath.cs similarity index 100% rename from Scripts/Spells/Spellweaving/WordOfDeath.cs rename to Projects/Scripts/Spells/Spellweaving/WordOfDeath.cs diff --git a/Scripts/Spells/Targeting/IRecallSpell.cs b/Projects/Scripts/Spells/Targeting/IRecallSpell.cs similarity index 100% rename from Scripts/Spells/Targeting/IRecallSpell.cs rename to Projects/Scripts/Spells/Targeting/IRecallSpell.cs diff --git a/Scripts/Spells/Targeting/ISpellTarget.cs b/Projects/Scripts/Spells/Targeting/ISpellTarget.cs similarity index 100% rename from Scripts/Spells/Targeting/ISpellTarget.cs rename to Projects/Scripts/Spells/Targeting/ISpellTarget.cs diff --git a/Scripts/Spells/Targeting/RecallSpellTarget.cs b/Projects/Scripts/Spells/Targeting/RecallSpellTarget.cs similarity index 100% rename from Scripts/Spells/Targeting/RecallSpellTarget.cs rename to Projects/Scripts/Spells/Targeting/RecallSpellTarget.cs diff --git a/Scripts/Spells/Targeting/SpellTargetItem.cs b/Projects/Scripts/Spells/Targeting/SpellTargetItem.cs similarity index 100% rename from Scripts/Spells/Targeting/SpellTargetItem.cs rename to Projects/Scripts/Spells/Targeting/SpellTargetItem.cs diff --git a/Scripts/Spells/Targeting/SpellTargetMobile.cs b/Projects/Scripts/Spells/Targeting/SpellTargetMobile.cs similarity index 100% rename from Scripts/Spells/Targeting/SpellTargetMobile.cs rename to Projects/Scripts/Spells/Targeting/SpellTargetMobile.cs diff --git a/Scripts/Spells/Targeting/SpellTargetPoint3D.cs b/Projects/Scripts/Spells/Targeting/SpellTargetPoint3D.cs similarity index 100% rename from Scripts/Spells/Targeting/SpellTargetPoint3D.cs rename to Projects/Scripts/Spells/Targeting/SpellTargetPoint3D.cs diff --git a/Scripts/Spells/Third/Bless.cs b/Projects/Scripts/Spells/Third/Bless.cs similarity index 100% rename from Scripts/Spells/Third/Bless.cs rename to Projects/Scripts/Spells/Third/Bless.cs diff --git a/Scripts/Spells/Third/Fireball.cs b/Projects/Scripts/Spells/Third/Fireball.cs similarity index 100% rename from Scripts/Spells/Third/Fireball.cs rename to Projects/Scripts/Spells/Third/Fireball.cs diff --git a/Scripts/Spells/Third/MagicLock.cs b/Projects/Scripts/Spells/Third/MagicLock.cs similarity index 100% rename from Scripts/Spells/Third/MagicLock.cs rename to Projects/Scripts/Spells/Third/MagicLock.cs diff --git a/Scripts/Spells/Third/Poison.cs b/Projects/Scripts/Spells/Third/Poison.cs similarity index 100% rename from Scripts/Spells/Third/Poison.cs rename to Projects/Scripts/Spells/Third/Poison.cs diff --git a/Scripts/Spells/Third/Telekinesis.cs b/Projects/Scripts/Spells/Third/Telekinesis.cs similarity index 100% rename from Scripts/Spells/Third/Telekinesis.cs rename to Projects/Scripts/Spells/Third/Telekinesis.cs diff --git a/Scripts/Spells/Third/Teleport.cs b/Projects/Scripts/Spells/Third/Teleport.cs similarity index 100% rename from Scripts/Spells/Third/Teleport.cs rename to Projects/Scripts/Spells/Third/Teleport.cs diff --git a/Scripts/Spells/Third/Unlock.cs b/Projects/Scripts/Spells/Third/Unlock.cs similarity index 100% rename from Scripts/Spells/Third/Unlock.cs rename to Projects/Scripts/Spells/Third/Unlock.cs diff --git a/Scripts/Spells/Third/WallOfStone.cs b/Projects/Scripts/Spells/Third/WallOfStone.cs similarity index 100% rename from Scripts/Spells/Third/WallOfStone.cs rename to Projects/Scripts/Spells/Third/WallOfStone.cs diff --git a/Scripts/Spells/UnsummonTimer.cs b/Projects/Scripts/Spells/UnsummonTimer.cs similarity index 100% rename from Scripts/Spells/UnsummonTimer.cs rename to Projects/Scripts/Spells/UnsummonTimer.cs diff --git a/Scripts/Targets/BladedItemTarget.cs b/Projects/Scripts/Targets/BladedItemTarget.cs similarity index 100% rename from Scripts/Targets/BladedItemTarget.cs rename to Projects/Scripts/Targets/BladedItemTarget.cs diff --git a/Scripts/Targets/MoveTarget.cs b/Projects/Scripts/Targets/MoveTarget.cs similarity index 100% rename from Scripts/Targets/MoveTarget.cs rename to Projects/Scripts/Targets/MoveTarget.cs diff --git a/Scripts/Targets/PickMoveTarget.cs b/Projects/Scripts/Targets/PickMoveTarget.cs similarity index 100% rename from Scripts/Targets/PickMoveTarget.cs rename to Projects/Scripts/Targets/PickMoveTarget.cs diff --git a/Server/AggressorInfo.cs b/Projects/Server/AggressorInfo.cs similarity index 100% rename from Server/AggressorInfo.cs rename to Projects/Server/AggressorInfo.cs diff --git a/Projects/Server/Assemblies/System.IO.Pipelines.dll b/Projects/Server/Assemblies/System.IO.Pipelines.dll new file mode 100644 index 000000000..a09ab12a8 Binary files /dev/null and b/Projects/Server/Assemblies/System.IO.Pipelines.dll differ diff --git a/rdrand.so b/Projects/Server/Assemblies/rdrand.so similarity index 100% rename from rdrand.so rename to Projects/Server/Assemblies/rdrand.so diff --git a/rdrand32.dll b/Projects/Server/Assemblies/rdrand32.dll similarity index 100% rename from rdrand32.dll rename to Projects/Server/Assemblies/rdrand32.dll diff --git a/rdrand64.dll b/Projects/Server/Assemblies/rdrand64.dll similarity index 100% rename from rdrand64.dll rename to Projects/Server/Assemblies/rdrand64.dll diff --git a/zlib32.dll b/Projects/Server/Assemblies/zlib32.dll similarity index 100% rename from zlib32.dll rename to Projects/Server/Assemblies/zlib32.dll diff --git a/zlib64.dll b/Projects/Server/Assemblies/zlib64.dll similarity index 100% rename from zlib64.dll rename to Projects/Server/Assemblies/zlib64.dll diff --git a/Server/Attributes.cs b/Projects/Server/Attributes.cs similarity index 100% rename from Server/Attributes.cs rename to Projects/Server/Attributes.cs diff --git a/Server/BaseVendor.cs b/Projects/Server/BaseVendor.cs similarity index 100% rename from Server/BaseVendor.cs rename to Projects/Server/BaseVendor.cs diff --git a/Server/Body.cs b/Projects/Server/Body.cs similarity index 100% rename from Server/Body.cs rename to Projects/Server/Body.cs diff --git a/Server/ClientVersion.cs b/Projects/Server/ClientVersion.cs similarity index 100% rename from Server/ClientVersion.cs rename to Projects/Server/ClientVersion.cs diff --git a/Server/Commands.cs b/Projects/Server/Commands.cs similarity index 100% rename from Server/Commands.cs rename to Projects/Server/Commands.cs diff --git a/Server/ContextMenus/ContextMenu.cs b/Projects/Server/ContextMenus/ContextMenu.cs similarity index 100% rename from Server/ContextMenus/ContextMenu.cs rename to Projects/Server/ContextMenus/ContextMenu.cs diff --git a/Server/ContextMenus/ContextMenuEntry.cs b/Projects/Server/ContextMenus/ContextMenuEntry.cs similarity index 100% rename from Server/ContextMenus/ContextMenuEntry.cs rename to Projects/Server/ContextMenus/ContextMenuEntry.cs diff --git a/Server/ContextMenus/OpenBackpackEntry.cs b/Projects/Server/ContextMenus/OpenBackpackEntry.cs similarity index 100% rename from Server/ContextMenus/OpenBackpackEntry.cs rename to Projects/Server/ContextMenus/OpenBackpackEntry.cs diff --git a/Server/ContextMenus/PaperdollEntry.cs b/Projects/Server/ContextMenus/PaperdollEntry.cs similarity index 100% rename from Server/ContextMenus/PaperdollEntry.cs rename to Projects/Server/ContextMenus/PaperdollEntry.cs diff --git a/Server/Diagnostics/BaseProfile.cs b/Projects/Server/Diagnostics/BaseProfile.cs similarity index 100% rename from Server/Diagnostics/BaseProfile.cs rename to Projects/Server/Diagnostics/BaseProfile.cs diff --git a/Server/Diagnostics/GumpProfile.cs b/Projects/Server/Diagnostics/GumpProfile.cs similarity index 100% rename from Server/Diagnostics/GumpProfile.cs rename to Projects/Server/Diagnostics/GumpProfile.cs diff --git a/Server/Diagnostics/PacketProfile.cs b/Projects/Server/Diagnostics/PacketProfile.cs similarity index 93% rename from Server/Diagnostics/PacketProfile.cs rename to Projects/Server/Diagnostics/PacketProfile.cs index e85c7d89d..54f349dcf 100644 --- a/Server/Diagnostics/PacketProfile.cs +++ b/Projects/Server/Diagnostics/PacketProfile.cs @@ -28,8 +28,7 @@ namespace Server.Diagnostics { public abstract class BasePacketProfile : BaseProfile { - protected BasePacketProfile(string name) - : base(name) + protected BasePacketProfile(string name) : base(name) { } @@ -37,7 +36,7 @@ namespace Server.Diagnostics public double AverageLength => (double)TotalLength / Math.Max(1, Count); - public void Finish(int length) + public void Finish(long length) { Finish(); diff --git a/Server/Diagnostics/TargetProfile.cs b/Projects/Server/Diagnostics/TargetProfile.cs similarity index 100% rename from Server/Diagnostics/TargetProfile.cs rename to Projects/Server/Diagnostics/TargetProfile.cs diff --git a/Server/Diagnostics/TimerProfile.cs b/Projects/Server/Diagnostics/TimerProfile.cs similarity index 100% rename from Server/Diagnostics/TimerProfile.cs rename to Projects/Server/Diagnostics/TimerProfile.cs diff --git a/Server/Effects.cs b/Projects/Server/Effects.cs similarity index 100% rename from Server/Effects.cs rename to Projects/Server/Effects.cs diff --git a/Server/EventSink.cs b/Projects/Server/EventSink.cs similarity index 95% rename from Server/EventSink.cs rename to Projects/Server/EventSink.cs index ba31ba159..d447e4228 100644 --- a/Server/EventSink.cs +++ b/Projects/Server/EventSink.cs @@ -608,10 +608,10 @@ namespace Server public void AddServer(string name, IPEndPoint address) { - AddServer(name, 0, TimeZone.CurrentTimeZone, address); + AddServer(name, 0, TimeZoneInfo.Local, address); } - public void AddServer(string name, int fullPercent, TimeZone tz, IPEndPoint address) + public void AddServer(string name, int fullPercent, TimeZoneInfo tz, IPEndPoint address) { Servers.Add(new ServerInfo(name, fullPercent, tz, address)); } @@ -1129,4 +1129,4 @@ namespace Server QuestGumpRequest = null; } } -} \ No newline at end of file +} diff --git a/Server/ExpansionInfo.cs b/Projects/Server/ExpansionInfo.cs similarity index 100% rename from Server/ExpansionInfo.cs rename to Projects/Server/ExpansionInfo.cs diff --git a/Server/Geometry.cs b/Projects/Server/Geometry.cs similarity index 100% rename from Server/Geometry.cs rename to Projects/Server/Geometry.cs diff --git a/Server/Guild.cs b/Projects/Server/Guild.cs similarity index 100% rename from Server/Guild.cs rename to Projects/Server/Guild.cs diff --git a/Server/Gumps/Gump.cs b/Projects/Server/Gumps/Gump.cs similarity index 100% rename from Server/Gumps/Gump.cs rename to Projects/Server/Gumps/Gump.cs diff --git a/Server/Gumps/GumpAlphaRegion.cs b/Projects/Server/Gumps/GumpAlphaRegion.cs similarity index 100% rename from Server/Gumps/GumpAlphaRegion.cs rename to Projects/Server/Gumps/GumpAlphaRegion.cs diff --git a/Server/Gumps/GumpBackground.cs b/Projects/Server/Gumps/GumpBackground.cs similarity index 100% rename from Server/Gumps/GumpBackground.cs rename to Projects/Server/Gumps/GumpBackground.cs diff --git a/Server/Gumps/GumpButton.cs b/Projects/Server/Gumps/GumpButton.cs similarity index 100% rename from Server/Gumps/GumpButton.cs rename to Projects/Server/Gumps/GumpButton.cs diff --git a/Server/Gumps/GumpCheck.cs b/Projects/Server/Gumps/GumpCheck.cs similarity index 100% rename from Server/Gumps/GumpCheck.cs rename to Projects/Server/Gumps/GumpCheck.cs diff --git a/Server/Gumps/GumpEntry.cs b/Projects/Server/Gumps/GumpEntry.cs similarity index 100% rename from Server/Gumps/GumpEntry.cs rename to Projects/Server/Gumps/GumpEntry.cs diff --git a/Server/Gumps/GumpGroup.cs b/Projects/Server/Gumps/GumpGroup.cs similarity index 100% rename from Server/Gumps/GumpGroup.cs rename to Projects/Server/Gumps/GumpGroup.cs diff --git a/Server/Gumps/GumpHtml.cs b/Projects/Server/Gumps/GumpHtml.cs similarity index 100% rename from Server/Gumps/GumpHtml.cs rename to Projects/Server/Gumps/GumpHtml.cs diff --git a/Server/Gumps/GumpHtmlLocalized.cs b/Projects/Server/Gumps/GumpHtmlLocalized.cs similarity index 100% rename from Server/Gumps/GumpHtmlLocalized.cs rename to Projects/Server/Gumps/GumpHtmlLocalized.cs diff --git a/Server/Gumps/GumpImage.cs b/Projects/Server/Gumps/GumpImage.cs similarity index 100% rename from Server/Gumps/GumpImage.cs rename to Projects/Server/Gumps/GumpImage.cs diff --git a/Server/Gumps/GumpImageTileButton.cs b/Projects/Server/Gumps/GumpImageTileButton.cs similarity index 100% rename from Server/Gumps/GumpImageTileButton.cs rename to Projects/Server/Gumps/GumpImageTileButton.cs diff --git a/Server/Gumps/GumpImageTiled.cs b/Projects/Server/Gumps/GumpImageTiled.cs similarity index 100% rename from Server/Gumps/GumpImageTiled.cs rename to Projects/Server/Gumps/GumpImageTiled.cs diff --git a/Server/Gumps/GumpItem.cs b/Projects/Server/Gumps/GumpItem.cs similarity index 100% rename from Server/Gumps/GumpItem.cs rename to Projects/Server/Gumps/GumpItem.cs diff --git a/Server/Gumps/GumpItemProperty.cs b/Projects/Server/Gumps/GumpItemProperty.cs similarity index 100% rename from Server/Gumps/GumpItemProperty.cs rename to Projects/Server/Gumps/GumpItemProperty.cs diff --git a/Server/Gumps/GumpLabel.cs b/Projects/Server/Gumps/GumpLabel.cs similarity index 100% rename from Server/Gumps/GumpLabel.cs rename to Projects/Server/Gumps/GumpLabel.cs diff --git a/Server/Gumps/GumpLabelCropped.cs b/Projects/Server/Gumps/GumpLabelCropped.cs similarity index 100% rename from Server/Gumps/GumpLabelCropped.cs rename to Projects/Server/Gumps/GumpLabelCropped.cs diff --git a/Server/Gumps/GumpPage.cs b/Projects/Server/Gumps/GumpPage.cs similarity index 100% rename from Server/Gumps/GumpPage.cs rename to Projects/Server/Gumps/GumpPage.cs diff --git a/Server/Gumps/GumpRadio.cs b/Projects/Server/Gumps/GumpRadio.cs similarity index 100% rename from Server/Gumps/GumpRadio.cs rename to Projects/Server/Gumps/GumpRadio.cs diff --git a/Server/Gumps/GumpTextEntry.cs b/Projects/Server/Gumps/GumpTextEntry.cs similarity index 100% rename from Server/Gumps/GumpTextEntry.cs rename to Projects/Server/Gumps/GumpTextEntry.cs diff --git a/Server/Gumps/GumpTextEntryLimited.cs b/Projects/Server/Gumps/GumpTextEntryLimited.cs similarity index 100% rename from Server/Gumps/GumpTextEntryLimited.cs rename to Projects/Server/Gumps/GumpTextEntryLimited.cs diff --git a/Server/Gumps/GumpTooltip.cs b/Projects/Server/Gumps/GumpTooltip.cs similarity index 100% rename from Server/Gumps/GumpTooltip.cs rename to Projects/Server/Gumps/GumpTooltip.cs diff --git a/Server/Gumps/RelayInfo.cs b/Projects/Server/Gumps/RelayInfo.cs similarity index 100% rename from Server/Gumps/RelayInfo.cs rename to Projects/Server/Gumps/RelayInfo.cs diff --git a/Server/HuePicker.cs b/Projects/Server/HuePicker.cs similarity index 100% rename from Server/HuePicker.cs rename to Projects/Server/HuePicker.cs diff --git a/Server/IAccount.cs b/Projects/Server/IAccount.cs similarity index 100% rename from Server/IAccount.cs rename to Projects/Server/IAccount.cs diff --git a/Server/IEntity.cs b/Projects/Server/IEntity.cs similarity index 100% rename from Server/IEntity.cs rename to Projects/Server/IEntity.cs diff --git a/Server/Insensitive.cs b/Projects/Server/Insensitive.cs similarity index 100% rename from Server/Insensitive.cs rename to Projects/Server/Insensitive.cs diff --git a/Server/Interfaces.cs b/Projects/Server/Interfaces.cs similarity index 100% rename from Server/Interfaces.cs rename to Projects/Server/Interfaces.cs diff --git a/Server/Item.cs b/Projects/Server/Item.cs similarity index 100% rename from Server/Item.cs rename to Projects/Server/Item.cs diff --git a/Server/ItemBounds.cs b/Projects/Server/ItemBounds.cs similarity index 100% rename from Server/ItemBounds.cs rename to Projects/Server/ItemBounds.cs diff --git a/Server/Items/BaseMulti.cs b/Projects/Server/Items/BaseMulti.cs similarity index 100% rename from Server/Items/BaseMulti.cs rename to Projects/Server/Items/BaseMulti.cs diff --git a/Server/Items/Container.cs b/Projects/Server/Items/Container.cs similarity index 100% rename from Server/Items/Container.cs rename to Projects/Server/Items/Container.cs diff --git a/Server/Items/Containers.cs b/Projects/Server/Items/Containers.cs similarity index 100% rename from Server/Items/Containers.cs rename to Projects/Server/Items/Containers.cs diff --git a/Server/Items/SecureTradeContainer.cs b/Projects/Server/Items/SecureTradeContainer.cs similarity index 100% rename from Server/Items/SecureTradeContainer.cs rename to Projects/Server/Items/SecureTradeContainer.cs diff --git a/Server/Items/VirtualCheck.cs b/Projects/Server/Items/VirtualCheck.cs similarity index 100% rename from Server/Items/VirtualCheck.cs rename to Projects/Server/Items/VirtualCheck.cs diff --git a/Server/Items/VirtualHair.cs b/Projects/Server/Items/VirtualHair.cs similarity index 100% rename from Server/Items/VirtualHair.cs rename to Projects/Server/Items/VirtualHair.cs diff --git a/Server/KeywordList.cs b/Projects/Server/KeywordList.cs similarity index 100% rename from Server/KeywordList.cs rename to Projects/Server/KeywordList.cs diff --git a/Server/Layer.cs b/Projects/Server/Layer.cs similarity index 100% rename from Server/Layer.cs rename to Projects/Server/Layer.cs diff --git a/Server/LightType.cs b/Projects/Server/LightType.cs similarity index 100% rename from Server/LightType.cs rename to Projects/Server/LightType.cs diff --git a/Server/Main.cs b/Projects/Server/Main.cs similarity index 91% rename from Server/Main.cs rename to Projects/Server/Main.cs index e5bf0daaa..798c523a4 100644 --- a/Server/Main.cs +++ b/Projects/Server/Main.cs @@ -112,12 +112,10 @@ namespace Server public static bool Service{ get; private set; } - public static bool Debug{ get; private set; } + public static bool Debug { get; private set; } internal static bool HaltOnWarning{ get; private set; } - internal static bool VBdotNet{ get; private set; } - public static List DataDirectories{ get; } = new List(); public static Assembly Assembly{ get; set; } @@ -199,9 +197,6 @@ namespace Server if (HaltOnWarning) Utility.Separate(sb, "-haltonwarning", " "); - if (VBdotNet) - Utility.Separate(sb, "-vb", " "); - if (_UseHRT) Utility.Separate(sb, "-usehrt", " "); @@ -270,7 +265,8 @@ namespace Server { try { - foreach (Listener l in MessagePump.Listeners) l.Dispose(); + foreach (Listener l in MessagePump.Listeners) + l.Dispose(); } catch { @@ -322,7 +318,7 @@ namespace Server Closing = true; - Console.Write("Exiting..."); + Console.WriteLine("Exiting..."); World.WaitForWriteCompletion(); @@ -355,8 +351,6 @@ namespace Server m_Cache = false; else if (Insensitive.Equals(a, "-haltonwarning")) HaltOnWarning = true; - else if (Insensitive.Equals(a, "-vb")) - VBdotNet = true; else if (Insensitive.Equals(a, "-usehrt")) _UseHRT = true; @@ -398,10 +392,14 @@ namespace Server Version ver = Assembly.GetName().Version; // Added to help future code support on forums, as a 'check' people can ask for to it see if they recompiled core or not - Console.WriteLine("RunUO - [https://github.com/runuo/] Version {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, + Console.WriteLine("ModernUO - [https://github.com/kamronbatman/ModernUO] Version {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision); +#if NETCORE + Console.WriteLine("Core: Running on {0}", RuntimeInformation.FrameworkDescription); +#else Console.WriteLine("Core: Running on .NET Framework Version {0}.{1}.{2}", Environment.Version.Major, Environment.Version.Minor, Environment.Version.Build); +#endif string s = Arguments; @@ -440,18 +438,8 @@ namespace Server Console.WriteLine("RandomImpl: {0} ({1})", RandomImpl.Type.Name, RandomImpl.IsHardwareRNG ? "Hardware" : "Software"); - while (!ScriptCompiler.Compile(Debug, m_Cache)) - { - Console.WriteLine("Scripts: One or more scripts failed to compile or no script files were found."); - - if (Service) - return; - - Console.WriteLine(" - Press return to exit, or R to try again."); - - if (Console.ReadKey(true).Key != ConsoleKey.R) - return; - } + // Load Assembly Scripts.CS.dll + ScriptCompiler.LoadScripts(); ScriptCompiler.Invoke("Configure"); @@ -460,7 +448,10 @@ namespace Server ScriptCompiler.Invoke("Initialize"); - MessagePump messagePump = MessagePump = new MessagePump(); + // Start accepting new connections + MessagePump = new MessagePump(); + + ScriptCompiler.Invoke("RegisterListeners"); timerThread.Start(); @@ -488,16 +479,15 @@ namespace Server Task.Run(() => Mobile.ProcessDeltaQueue()), Task.Run(() => Item.ProcessDeltaQueue()), Task.Run(() => Timer.Slice()), - Task.Run(() => messagePump.Slice()) + Task.Run(() => MessagePump.DoWork()) ); - - NetState.FlushAll(); NetState.ProcessDisposedQueue(); Slice?.Invoke(); - if (sample++ % sampleInterval != 0) continue; + if (sample++ % sampleInterval != 0) + continue; long now = TickCount; m_CyclesPerSecond[m_CycleIndex++ % m_CyclesPerSecond.Length] = ticksPerSecond / (now - last); @@ -596,7 +586,7 @@ namespace Server internal static extern bool SetConsoleCtrlHandler(ConsoleEventHandler callback, bool add); } - #region Expansions +#region Expansions public static Expansion Expansion{ get; set; } @@ -620,7 +610,7 @@ namespace Server public static bool TOL => Expansion >= Expansion.TOL; - #endregion +#endregion } public class FileLogger : TextWriter diff --git a/Server/Map.cs b/Projects/Server/Map.cs similarity index 100% rename from Server/Map.cs rename to Projects/Server/Map.cs diff --git a/Server/Menus/IMenu.cs b/Projects/Server/Menus/IMenu.cs similarity index 100% rename from Server/Menus/IMenu.cs rename to Projects/Server/Menus/IMenu.cs diff --git a/Server/Menus/ItemListMenu.cs b/Projects/Server/Menus/ItemListMenu.cs similarity index 100% rename from Server/Menus/ItemListMenu.cs rename to Projects/Server/Menus/ItemListMenu.cs diff --git a/Server/Menus/QuestionMenu.cs b/Projects/Server/Menus/QuestionMenu.cs similarity index 100% rename from Server/Menus/QuestionMenu.cs rename to Projects/Server/Menus/QuestionMenu.cs diff --git a/Server/Mobile.cs b/Projects/Server/Mobile.cs similarity index 96% rename from Server/Mobile.cs rename to Projects/Server/Mobile.cs index 87aae8bc3..4b06f948b 100644 --- a/Server/Mobile.cs +++ b/Projects/Server/Mobile.cs @@ -1448,13 +1448,7 @@ namespace Server [CommandProperty(AccessLevel.GameMaster, AccessLevel.Owner)] public NetState NetState { - get - { - if (m_NetState != null && m_NetState.Socket == null && !m_NetState.IsDisposing) - NetState = null; - - return m_NetState; - } + get => m_NetState?.Socket != null && !m_NetState.IsDisposing ? m_NetState : null; set { if (m_NetState != value) diff --git a/Server/Movement.cs b/Projects/Server/Movement.cs similarity index 100% rename from Server/Movement.cs rename to Projects/Server/Movement.cs diff --git a/Server/MultiData.cs b/Projects/Server/MultiData.cs similarity index 100% rename from Server/MultiData.cs rename to Projects/Server/MultiData.cs diff --git a/Server/NativeReader.cs b/Projects/Server/NativeReader.cs similarity index 100% rename from Server/NativeReader.cs rename to Projects/Server/NativeReader.cs diff --git a/Server/Network/Compression.cs b/Projects/Server/Network/Compression.cs similarity index 96% rename from Server/Network/Compression.cs rename to Projects/Server/Network/Compression.cs index 5d0803004..8f2ba1ca7 100644 --- a/Server/Network/Compression.cs +++ b/Projects/Server/Network/Compression.cs @@ -47,8 +47,7 @@ namespace Server.Network // If our input exceeds this length, we may potentially overflow the buffer private const int PossibleOverflow = (BufferSize * 8 - TerminalCodeLength) / MaximalCodeLength; - private static int[] _huffmanTable = new int[514] - { + private static int[] _huffmanTable = { 0x2, 0x000, 0x5, 0x01F, 0x6, 0x022, 0x7, 0x034, 0x7, 0x075, 0x6, 0x028, 0x6, 0x03B, 0x7, 0x032, 0x8, 0x0E0, 0x8, 0x062, 0x7, 0x056, 0x8, 0x079, 0x9, 0x19D, 0x8, 0x097, 0x6, 0x02A, 0x7, 0x057, 0x8, 0x071, 0x8, 0x05B, 0x9, 0x1CC, 0x8, 0x0A7, 0x7, 0x025, 0x7, 0x04F, 0x8, 0x066, 0x8, 0x07D, @@ -107,10 +106,10 @@ namespace Server.Network public static unsafe void Compress(byte[] input, int offset, int count, byte[] output, ref int length) { - if (input == null) throw new ArgumentNullException("input"); + if (input == null) throw new ArgumentNullException(nameof(input)); - if (offset < 0 || offset >= input.Length) throw new ArgumentOutOfRangeException("offset"); - if (count < 0 || count > input.Length) throw new ArgumentOutOfRangeException("count"); + if (offset < 0 || offset >= input.Length) throw new ArgumentOutOfRangeException(nameof(offset)); + if (count < 0 || count > input.Length) throw new ArgumentOutOfRangeException(nameof(count)); if (input.Length - offset < count) throw new ArgumentException(); length = 0; diff --git a/Server/Network/EncodedPacketHandler.cs b/Projects/Server/Network/EncodedPacketHandler.cs similarity index 96% rename from Server/Network/EncodedPacketHandler.cs rename to Projects/Server/Network/EncodedPacketHandler.cs index 533cc7643..c400b5bbe 100644 --- a/Server/Network/EncodedPacketHandler.cs +++ b/Projects/Server/Network/EncodedPacketHandler.cs @@ -37,4 +37,4 @@ namespace Server.Network public bool Ingame{ get; } } -} \ No newline at end of file +} diff --git a/Server/Network/EncodedReader.cs b/Projects/Server/Network/EncodedReader.cs similarity index 54% rename from Server/Network/EncodedReader.cs rename to Projects/Server/Network/EncodedReader.cs index 5caf631e5..cbca5ea66 100644 --- a/Server/Network/EncodedReader.cs +++ b/Projects/Server/Network/EncodedReader.cs @@ -20,7 +20,7 @@ namespace Server.Network { - public class EncodedReader + public ref struct EncodedReader { private PacketReader m_Reader; @@ -29,47 +29,20 @@ namespace Server.Network m_Reader = reader; } - public byte[] Buffer => m_Reader.Buffer; - public void Trace(NetState state) { m_Reader.Trace(state); } - public int ReadInt32() - { - if (m_Reader.ReadByte() != 0) - return 0; + public int ReadInt32() => m_Reader.ReadByte() != 0 ? 0 : m_Reader.ReadInt32(); - return m_Reader.ReadInt32(); - } + public Point3D ReadPoint3D() => m_Reader.ReadByte() != 3 ? Point3D.Zero : + new Point3D(m_Reader.ReadInt16(), m_Reader.ReadInt16(), m_Reader.ReadByte()); - public Point3D ReadPoint3D() - { - if (m_Reader.ReadByte() != 3) - return Point3D.Zero; + public string ReadUnicodeStringSafe() => m_Reader.ReadByte() != 2 ? string.Empty : + m_Reader.ReadUnicodeStringSafe(m_Reader.ReadUInt16()); - return new Point3D(m_Reader.ReadInt16(), m_Reader.ReadInt16(), m_Reader.ReadByte()); - } - - public string ReadUnicodeStringSafe() - { - if (m_Reader.ReadByte() != 2) - return ""; - - int length = m_Reader.ReadUInt16(); - - return m_Reader.ReadUnicodeStringSafe(length); - } - - public string ReadUnicodeString() - { - if (m_Reader.ReadByte() != 2) - return ""; - - int length = m_Reader.ReadUInt16(); - - return m_Reader.ReadUnicodeString(length); - } + public string ReadUnicodeString() => m_Reader.ReadByte() != 2 ? string.Empty : + m_Reader.ReadUnicodeString(m_Reader.ReadUInt16()); } -} \ No newline at end of file +} diff --git a/Server/Network/Listener.cs b/Projects/Server/Network/Listener.cs similarity index 53% rename from Server/Network/Listener.cs rename to Projects/Server/Network/Listener.cs index 13a9afef9..93077fca2 100644 --- a/Server/Network/Listener.cs +++ b/Projects/Server/Network/Listener.cs @@ -19,58 +19,35 @@ ***************************************************************************/ using System; -using System.Collections; -using System.Collections.Generic; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Threading; +using System.Threading.Tasks; namespace Server.Network { - public class Listener : IDisposable + public class Listener { - private Socket m_Listener; - - private Queue m_Accepted; - private object m_AcceptedSyncRoot; - - private SocketAsyncEventArgs m_EventArgs; - - private static Socket[] m_EmptySockets = new Socket[0]; - - public static IPEndPoint[] EndPoints{ get; set; } - + private Socket m_Socket; + private IPEndPoint m_EndPoint; public Listener(IPEndPoint ipep) { - m_Accepted = new Queue(); - m_AcceptedSyncRoot = ((ICollection)m_Accepted).SyncRoot; +#pragma warning disable IDE0068 // Use recommended dispose pattern + m_Socket = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp); +#pragma warning restore IDE0068 // Use recommended dispose pattern - m_Listener = Bind(ipep); - - if (m_Listener == null) - return; - - DisplayListener(); - - m_EventArgs = new SocketAsyncEventArgs(); - m_EventArgs.Completed += Accept_Completion; - Accept_Start(); + m_Socket.LingerState.Enabled = false; + m_Socket.ExclusiveAddressUse = false; + m_EndPoint = ipep; } - private Socket Bind(IPEndPoint ipep) + public virtual async Task Start(MessagePump pump) { - Socket s = new Socket(ipep.AddressFamily, SocketType.Stream, ProtocolType.Tcp); - try { - s.LingerState.Enabled = false; - s.ExclusiveAddressUse = false; - - s.Bind(ipep); - s.Listen(8); - - return s; + m_Socket.Bind(m_EndPoint); + m_Socket.Listen(8); } catch (Exception e) { @@ -79,12 +56,12 @@ namespace Server.Network if (se.ErrorCode == 10048) { // WSAEADDRINUSE - Console.WriteLine("Listener Failed: {0}:{1} (In Use)", ipep.Address, ipep.Port); + Console.WriteLine("Listener Failed: {0}:{1} (In Use)", m_EndPoint.Address, m_EndPoint.Port); } else if (se.ErrorCode == 10049) { // WSAEADDRNOTAVAIL - Console.WriteLine("Listener Failed: {0}:{1} (Unavailable)", ipep.Address, ipep.Port); + Console.WriteLine("Listener Failed: {0}:{1} (Unavailable)", m_EndPoint.Address, m_EndPoint.Port); } else { @@ -93,13 +70,35 @@ namespace Server.Network } } - return null; + m_Socket = null; + return; + } + + DisplayListener(); + + while (true) + { + Socket s; + try + { + s = await m_Socket.AcceptAsync().ConfigureAwait(false); + } + catch (SocketException ex) + { + NetState.TraceException(ex); + continue; + } + + if (VerifySocket(s)) + _ = new NetState(s, pump); + else + Release(s); } } private void DisplayListener() { - if (!(m_Listener.LocalEndPoint is IPEndPoint ipep)) + if (!(m_Socket.LocalEndPoint is IPEndPoint ipep)) return; if (ipep.Address.Equals(IPAddress.Any) || ipep.Address.Equals(IPAddress.IPv6Any)) @@ -112,17 +111,6 @@ namespace Server.Network if (ipep.AddressFamily == unicast.Address.AddressFamily) Console.WriteLine("Listening: {0}:{1}", unicast.Address, ipep.Port); } - - /* - try { - Console.WriteLine( "Listening: {0}:{1}", IPAddress.Loopback, ipep.Port ); - IPHostEntry iphe = Dns.GetHostEntry( Dns.GetHostName() ); - IPAddress[] ip = iphe.AddressList; - for ( int i = 0; i < ip.Length; ++i ) - Console.WriteLine( "Listening: {0}:{1}", ip[i], ipep.Port ); - } - catch { } - */ } else { @@ -130,49 +118,6 @@ namespace Server.Network } } - private void Accept_Start() - { - bool result; - - do - { - try - { - result = !m_Listener.AcceptAsync(m_EventArgs); - } - catch (SocketException ex) - { - NetState.TraceException(ex); - break; - } - catch (ObjectDisposedException) - { - break; - } - - if (result) - Accept_Process(m_EventArgs); - } while (result); - } - - private void Accept_Completion(object sender, SocketAsyncEventArgs e) - { - Accept_Process(e); - - Accept_Start(); - } - - private void Accept_Process(SocketAsyncEventArgs e) - { - if (e.SocketError == SocketError.Success && VerifySocket(e.AcceptSocket)) - Enqueue(e.AcceptSocket); - else - Release(e.AcceptSocket); - - e.AcceptSocket = null; - } - - private bool VerifySocket(Socket socket) { try @@ -191,16 +136,6 @@ namespace Server.Network } } - private void Enqueue(Socket socket) - { - lock (m_AcceptedSyncRoot) - { - m_Accepted.Enqueue(socket); - } - - Core.Set(); - } - private void Release(Socket socket) { try @@ -220,37 +155,20 @@ namespace Server.Network { NetState.TraceException(ex); } - } - public Socket[] Slice() - { - Socket[] array; - - lock (m_AcceptedSyncRoot) + try { - if (m_Accepted.Count == 0) - return m_EmptySockets; - - array = m_Accepted.ToArray(); - m_Accepted.Clear(); + socket.Dispose(); } - - return array; - } - - public void Dispose(bool disposing) - { - if (disposing) + catch (SocketException ex) { - Socket socket = Interlocked.Exchange(ref m_Listener, null); - - socket?.Close(); + NetState.TraceException(ex); } } public void Dispose() { - Dispose(true); + Interlocked.Exchange(ref m_Socket, null)?.Close(); GC.SuppressFinalize(this); } } diff --git a/Projects/Server/Network/MessagePump.cs b/Projects/Server/Network/MessagePump.cs new file mode 100644 index 000000000..f9c735fdf --- /dev/null +++ b/Projects/Server/Network/MessagePump.cs @@ -0,0 +1,77 @@ + +/*************************************************************************** + * MessagePump.cs + * ------------------- + * begin : May 1, 2002 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System; +using System.Buffers; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Net; + +namespace Server.Network +{ + public class MessagePump + { + private ConcurrentQueue m_WorkQueue = new ConcurrentQueue(); + public Listener[] Listeners => new Listener[0]; + + public void AddListener(IPEndPoint ipep) + { + Listener[] listeners = new Listener[Listeners.Length + 1]; + Array.Copy(Listeners, listeners, Listeners.Length); + Listener listener = new Listener(ipep); + _ = listener.Start(this); + listeners[Listeners.Length] = listener; + } + + public void QueueWork(NetState ns, in ReadOnlySequence seq, OnPacketReceive onReceive) + { + m_WorkQueue.Enqueue(new Work(ns, seq, onReceive)); + Core.Set(); + } + + public void DoWork() + { + int count = m_WorkQueue.Count; + while (count-- > 0) + { + if (!m_WorkQueue.TryDequeue(out Work work)) + break; + + work.OnReceive(work.State, new PacketReader(work.Sequence)); + } + } + + // TODO: Optimize this with a pool + private class Work + { + public NetState State; + public ReadOnlySequence Sequence; + public OnPacketReceive OnReceive; + + public Work(NetState ns, in ReadOnlySequence seq, OnPacketReceive onReceive) + { + State = ns; + Sequence = seq; + OnReceive = onReceive; + } + } + } +} diff --git a/Projects/Server/Network/NetState.cs b/Projects/Server/Network/NetState.cs new file mode 100644 index 000000000..51f4cbf8f --- /dev/null +++ b/Projects/Server/Network/NetState.cs @@ -0,0 +1,764 @@ +/*************************************************************************** + * NetState.cs + * ------------------- + * begin : May 1, 2002 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System; +using System.Buffers; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.IO; +using System.IO.Pipelines; +using System.Net; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; +using Server.Accounting; +using Server.Diagnostics; +using Server.Gumps; +using Server.HuePickers; +using Server.Items; +using Server.Menus; + +namespace Server.Network +{ + public interface IPacketEncoder + { + void EncodeOutgoingPacket(NetState to, ref Memory seq); + void DecodeIncomingPacket(NetState from, ref Memory seq); + } + + public delegate void NetStateCreatedCallback(NetState ns); + + [Flags] + public enum ProtocolChanges + { + NewSpellbook = 0x00000001, + DamagePacket = 0x00000002, + Unpack = 0x00000004, + BuffIcon = 0x00000008, + NewHaven = 0x00000010, + ContainerGridLines = 0x00000020, + ExtendedSupportedFeatures = 0x00000040, + StygianAbyss = 0x00000080, + HighSeas = 0x00000100, + NewCharacterList = 0x00000200, + NewCharacterCreation = 0x00000400, + ExtendedStatus = 0x00000800, + NewMobileIncoming = 0x00001000, + NewSecureTrading = 0x00002000, + UltimaStore = 0x00004000, + EndlessJourney = 0x00008000, + + Version400a = NewSpellbook, + Version407a = Version400a | DamagePacket, + Version500a = Version407a | Unpack, + Version502b = Version500a | BuffIcon, + Version6000 = Version502b | NewHaven, + Version6017 = Version6000 | ContainerGridLines, + Version60142 = Version6017 | ExtendedSupportedFeatures, + Version7000 = Version60142 | StygianAbyss, + Version7090 = Version7000 | HighSeas, + Version70130 = Version7090 | NewCharacterList, + Version70160 = Version70130 | NewCharacterCreation, + Version70300 = Version70160 | ExtendedStatus, + Version70331 = Version70300 | NewMobileIncoming, + Version704565 = Version70331 | NewSecureTrading, + Version70500 = Version704565 | UltimaStore, + Version70610 = Version70500 | EndlessJourney + } + + public class AsyncState + { + public bool Paused { get; set; } + public AsyncState(bool paused) + { + Paused = paused; + } + } + + public class NetState : IComparable + { + private string m_ToString; + private ClientVersion m_Version; + private SendQueue m_SendQueue = new SendQueue(); + + public DateTime ConnectedOn { get; } + + public TimeSpan ConnectedFor => DateTime.UtcNow - ConnectedOn; + + public DateTime ThrottledUntil { get; set; } + + internal int m_Seed; + internal int m_AuthID; + + public IPAddress Address { get; } + + private static AsyncState m_PauseState = new AsyncState(true); + private static AsyncState m_ResumeState = new AsyncState(false); + + private static AsyncState m_AsyncState = m_ResumeState; + + public IPacketEncoder PacketEncoder { get; set; } + + public static NetStateCreatedCallback CreatedCallback { get; set; } + + public bool SentFirstPacket { get; set; } + + public bool BlockAllPackets { get; set; } + + public ClientFlags Flags { get; set; } + + public ClientVersion Version + { + get => m_Version; + set + { + m_Version = value; + + if (value >= m_Version70610) + ProtocolChanges = ProtocolChanges.Version70610; + if (value >= m_Version70500) + ProtocolChanges = ProtocolChanges.Version70500; + if (value >= m_Version704565) + ProtocolChanges = ProtocolChanges.Version704565; + else if (value >= m_Version70331) + ProtocolChanges = ProtocolChanges.Version70331; + else if (value >= m_Version70300) + ProtocolChanges = ProtocolChanges.Version70300; + else if (value >= m_Version70160) + ProtocolChanges = ProtocolChanges.Version70160; + else if (value >= m_Version70130) + ProtocolChanges = ProtocolChanges.Version70130; + else if (value >= m_Version7090) + ProtocolChanges = ProtocolChanges.Version7090; + else if (value >= m_Version7000) + ProtocolChanges = ProtocolChanges.Version7000; + else if (value >= m_Version60142) + ProtocolChanges = ProtocolChanges.Version60142; + else if (value >= m_Version6017) + ProtocolChanges = ProtocolChanges.Version6017; + else if (value >= m_Version6000) + ProtocolChanges = ProtocolChanges.Version6000; + else if (value >= m_Version502b) + ProtocolChanges = ProtocolChanges.Version502b; + else if (value >= m_Version500a) + ProtocolChanges = ProtocolChanges.Version500a; + else if (value >= m_Version407a) + ProtocolChanges = ProtocolChanges.Version407a; + else if (value >= m_Version400a) ProtocolChanges = ProtocolChanges.Version400a; + } + } + + private static readonly ClientVersion m_Version400a = new ClientVersion("4.0.0a"); + private static readonly ClientVersion m_Version407a = new ClientVersion("4.0.7a"); + private static readonly ClientVersion m_Version500a = new ClientVersion("5.0.0a"); + private static readonly ClientVersion m_Version502b = new ClientVersion("5.0.2b"); + private static readonly ClientVersion m_Version6000 = new ClientVersion("6.0.0.0"); + private static readonly ClientVersion m_Version6017 = new ClientVersion("6.0.1.7"); + private static readonly ClientVersion m_Version60142 = new ClientVersion("6.0.14.2"); + private static readonly ClientVersion m_Version7000 = new ClientVersion("7.0.0.0"); + private static readonly ClientVersion m_Version7090 = new ClientVersion("7.0.9.0"); + private static readonly ClientVersion m_Version70130 = new ClientVersion("7.0.13.0"); + private static readonly ClientVersion m_Version70160 = new ClientVersion("7.0.16.0"); + private static readonly ClientVersion m_Version70300 = new ClientVersion("7.0.30.0"); + private static readonly ClientVersion m_Version70331 = new ClientVersion("7.0.33.1"); + private static readonly ClientVersion m_Version704565 = new ClientVersion("7.0.45.65"); + private static readonly ClientVersion m_Version70500 = new ClientVersion("7.0.50.0"); + private static readonly ClientVersion m_Version70610 = new ClientVersion("7.0.61.0"); + + public bool NewSpellbook => (ProtocolChanges & ProtocolChanges.NewSpellbook) != 0; + public bool DamagePacket => (ProtocolChanges & ProtocolChanges.DamagePacket) != 0; + public bool Unpack => (ProtocolChanges & ProtocolChanges.Unpack) != 0; + public bool BuffIcon => (ProtocolChanges & ProtocolChanges.BuffIcon) != 0; + public bool NewHaven => (ProtocolChanges & ProtocolChanges.NewHaven) != 0; + public bool ContainerGridLines => (ProtocolChanges & ProtocolChanges.ContainerGridLines) != 0; + public bool ExtendedSupportedFeatures => (ProtocolChanges & ProtocolChanges.ExtendedSupportedFeatures) != 0; + public bool StygianAbyss => (ProtocolChanges & ProtocolChanges.StygianAbyss) != 0; + public bool HighSeas => (ProtocolChanges & ProtocolChanges.HighSeas) != 0; + public bool NewCharacterList => (ProtocolChanges & ProtocolChanges.NewCharacterList) != 0; + public bool NewCharacterCreation => (ProtocolChanges & ProtocolChanges.NewCharacterCreation) != 0; + public bool ExtendedStatus => (ProtocolChanges & ProtocolChanges.ExtendedStatus) != 0; + public bool NewMobileIncoming => (ProtocolChanges & ProtocolChanges.NewMobileIncoming) != 0; + public bool NewSecureTrading => (ProtocolChanges & ProtocolChanges.NewSecureTrading) != 0; + + public bool IsUOTDClient => + (Flags & ClientFlags.UOTD) != 0 || m_Version?.Type == ClientType.UOTD; + + public bool IsSAClient => m_Version?.Type == ClientType.SA; + + public List Trades { get; } + + public void ValidateAllTrades() + { + for (int i = Trades.Count - 1; i >= 0; --i) + { + if (i >= Trades.Count) continue; + + SecureTrade trade = Trades[i]; + + if (trade.From.Mobile.Deleted || trade.To.Mobile.Deleted || !trade.From.Mobile.Alive || + !trade.To.Mobile.Alive || !trade.From.Mobile.InRange(trade.To.Mobile, 2) || + trade.From.Mobile.Map != trade.To.Mobile.Map) trade.Cancel(); + } + } + + public void CancelAllTrades() + { + for (int i = Trades.Count - 1; i >= 0; --i) + if (i < Trades.Count) + Trades[i].Cancel(); + } + + public void RemoveTrade(SecureTrade trade) + { + Trades.Remove(trade); + } + + public SecureTrade FindTrade(Mobile m) + { + for (int i = 0; i < Trades.Count; ++i) + { + SecureTrade trade = Trades[i]; + + if (trade.From.Mobile == m || trade.To.Mobile == m) return trade; + } + + return null; + } + + public SecureTradeContainer FindTradeContainer(Mobile m) + { + for (int i = 0; i < Trades.Count; ++i) + { + SecureTrade trade = Trades[i]; + + SecureTradeInfo from = trade.From; + SecureTradeInfo to = trade.To; + + if (from.Mobile == Mobile && to.Mobile == m) return from.Container; + + if (from.Mobile == m && to.Mobile == Mobile) return to.Container; + } + + return null; + } + + public SecureTradeContainer AddTrade(NetState state) + { + SecureTrade newTrade = new SecureTrade(Mobile, state.Mobile); + + Trades.Add(newTrade); + state.Trades.Add(newTrade); + + return newTrade.From.Container; + } + + public bool Running { get; private set; } + + public bool Seeded { get; set; } + + public Socket Socket { get; private set; } + + public bool CompressionEnabled { get; set; } + + public int Sequence { get; set; } + + public List Gumps { get; private set; } + + public List HuePickers { get; private set; } + + public List Menus { get; private set; } + + public static int GumpCap { get; set; } = 512; + + public static int HuePickerCap { get; set; } = 512; + + public static int MenuCap { get; set; } = 512; + + public void WriteConsole(string text) + { + Console.WriteLine("Client: {0}: {1}", this, text); + } + + public void WriteConsole(string format, params object[] args) + { + WriteConsole(string.Format(format, args)); + } + + public void AddMenu(IMenu menu) + { + if (Menus == null) + Menus = new List(); + + if (Menus.Count < MenuCap) + Menus.Add(menu); + else + { + WriteConsole("Exceeded menu cap, disconnecting..."); + Dispose(); + } + } + + public void RemoveMenu(IMenu menu) + { + Menus?.Remove(menu); + } + + public void RemoveMenu(int index) + { + Menus?.RemoveAt(index); + } + + public void ClearMenus() + { + Menus?.Clear(); + } + + public void AddHuePicker(HuePicker huePicker) + { + if (HuePickers == null) + HuePickers = new List(); + + if (HuePickers.Count < HuePickerCap) + HuePickers.Add(huePicker); + else + { + WriteConsole("Exceeded hue picker cap, disconnecting..."); + Dispose(); + } + } + + public void RemoveHuePicker(HuePicker huePicker) + { + HuePickers?.Remove(huePicker); + } + + public void RemoveHuePicker(int index) + { + HuePickers?.RemoveAt(index); + } + + public void ClearHuePickers() + { + HuePickers?.Clear(); + } + + public void AddGump(Gump gump) + { + if (Gumps == null) + Gumps = new List(); + + if (Gumps.Count < GumpCap) + Gumps.Add(gump); + else + { + WriteConsole("Exceeded gump cap, disconnecting..."); + Dispose(); + } + } + + public void RemoveGump(Gump gump) + { + Gumps?.Remove(gump); + } + + public void RemoveGump(int index) + { + Gumps?.RemoveAt(index); + } + + public void ClearGumps() + { + Gumps?.Clear(); + } + + public void LaunchBrowser(string url) + { + Send(new MessageLocalized(Serial.MinusOne, -1, MessageType.Label, 0x35, 3, 501231, "", "")); + Send(new LaunchBrowser(url)); + } + + public CityInfo[] CityInfo { get; set; } + + public Mobile Mobile { get; set; } + + public ServerInfo[] ServerInfo { get; set; } + + public IAccount Account { get; set; } + + public override string ToString() + { + return m_ToString; + } + + public static List Instances { get; } = new List(); + + public NetState(Socket socket, MessagePump pump) + { + Socket = socket; + Seeded = false; + Running = false; + Gumps = new List(); + HuePickers = new List(); + Menus = new List(); + Trades = new List(); + + m_NextCheckActivity = Core.TickCount + 30000; + + Instances.Add(this); + + try + { + Address = Utility.Intern(((IPEndPoint)Socket.RemoteEndPoint).Address); + m_ToString = Address.ToString(); + } + catch (Exception ex) + { + TraceException(ex); + Address = IPAddress.None; + m_ToString = "(error)"; + } + + ConnectedOn = DateTime.UtcNow; + _ = Start(pump); + + CreatedCallback?.Invoke(this); + Console.WriteLine("Client: {0}: Connected. [{1} Online]", this, NetState.Instances.Count); + } + + public static void Pause() + { + m_AsyncState = Interlocked.Exchange(ref m_AsyncState, m_PauseState); + } + + public static void Resume() + { + m_AsyncState = Interlocked.Exchange(ref m_AsyncState, m_ResumeState); + } + + public virtual void Send(Packet p) + { + if (Socket == null || BlockAllPackets) + { + p.OnSend(); + return; + } + + m_SendQueue.Enqueue(p); + } + + public bool CheckEncrypted(int packetID) + { + if (!SentFirstPacket && packetID != 0xF0 && packetID != 0xF1 && packetID != 0xCF && packetID != 0x80 && + packetID != 0x91 && packetID != 0xA4 && packetID != 0xEF) + { + Console.WriteLine("Client: {0}: Encrypted client detected, disconnecting", this); + Dispose(); + return true; + } + + return false; + } + + private Pipe m_RecvdPipe; + + private async Task Start(MessagePump pump) + { + m_RecvdPipe = new Pipe(); + Running = true; + + await Task.WhenAll(ProcessSends(), ProcessRecvs(), HandlePackets(pump)).ConfigureAwait(false); + } + + private async Task ProcessRecvs() + { + PipeWriter w = m_RecvdPipe.Writer; + + while (true) + { + if (m_AsyncState.Paused) + { + await Timer.Pause(50).ConfigureAwait(false); + continue; + } + + try + { + Memory memory = w.GetMemory(); + int bytesRead = await Socket.ReceiveAsync(memory, SocketFlags.None).ConfigureAwait(false); + if (bytesRead == 0) + break; + + Interlocked.Exchange(ref m_NextCheckActivity, Core.TickCount + 90000); + + w.Advance(bytesRead); + + FlushResult result = await w.FlushAsync().ConfigureAwait(false); + if (result.IsCompleted || result.IsCanceled) + break; + } + catch + { + break; + } + } + + w.Complete(); + Dispose(); + } + + private async Task ProcessSends() + { + while (true) + { + try + { + Packet p = await m_SendQueue?.DequeueAsync() ?? null; + if (p == null) + break; + + ReadOnlyMemory buffer = p.Compile(CompressionEnabled, out int length); + + if (buffer.Length <= 0 || length <= 0) + { + p.OnSend(); + return; + } + + buffer = buffer.Slice(0, length); + + PacketSendProfile prof = null; + + if (Core.Profiling) + prof = PacketSendProfile.Acquire(p.GetType()); + + prof?.Start(); + + await Socket.SendAsync(buffer, SocketFlags.None).ConfigureAwait(false); + + p.OnSend(); + + prof?.Finish(length); + } + catch (SocketException ex) + { + Console.WriteLine(ex); + TraceException(ex); + Dispose(); + break; + } + catch (Exception ex) + { + Console.WriteLine(ex); + } + } + } + + private async Task HandlePackets(MessagePump pump) + { + PipeReader pr = m_RecvdPipe.Reader; + + while (true) + { + ReadResult result = await pr.ReadAsync(); + ReadOnlySequence seq = result.Buffer; + if (seq.Length == 0) + break; + + long pos = PacketHandlers.ProcessPacket(pump, this, seq); + + if (pos <= 0) + break; + + pr.AdvanceTo(seq.GetPosition(pos, seq.Start)); + + if (result.IsCompleted || result.IsCanceled) + break; + } + + pr.Complete(); + } + + public PacketHandler GetHandler(int packetID) + { + return ContainerGridLines ? PacketHandlers.Get6017Handler(packetID) : + PacketHandlers.GetHandler(packetID); + } + + private long m_NextCheckActivity; + + public void CheckAlive(long curTicks) + { + if (Socket == null || m_NextCheckActivity - curTicks >= 0) + return; + + Console.WriteLine("Client: {0}: Disconnecting due to inactivity...", this); + Dispose(); + } + + public static void TraceException(Exception ex) + { + if (!Core.Debug) + return; + + try + { + using (StreamWriter op = new StreamWriter("network-errors.log", true)) + { + op.WriteLine("# {0}", DateTime.UtcNow); + + op.WriteLine(ex); + + op.WriteLine(); + op.WriteLine(); + } + } + catch + { + // ignored + } + + Console.WriteLine(ex); + } + + private int m_Disposing; + + public bool IsDisposing { get { return m_Disposing != 0; } private set { m_Disposing = value ? 1 : 0; } } + + public virtual void Dispose() + { + int disposing = Interlocked.Exchange(ref m_Disposing, 1); + if (disposing == 1) + return; + + Task.Run(async () => + { + m_RecvdPipe.Reader.CancelPendingRead(); + m_RecvdPipe.Reader.Complete(); + await m_RecvdPipe.Writer.FlushAsync().ConfigureAwait(false); + m_RecvdPipe.Writer.Complete(); + + try { Socket.Shutdown(SocketShutdown.Both); } catch (Exception ex) { TraceException(ex); } + try { Socket.Close(); } catch (Exception ex) { TraceException(ex); } + + Socket = null; + m_RecvdPipe = null; + m_SendQueue = null; + m_Disposed.Enqueue(this); + }); + } + + public static void Initialize() + { + Timer.DelayCall(TimeSpan.FromMinutes(1.0), TimeSpan.FromMinutes(1.5), CheckAllAlive); + } + + public static void CheckAllAlive() + { + try + { + long curTicks = Core.TickCount; + + if (Instances.Count >= 1024) + Parallel.ForEach(Instances, ns => ns.CheckAlive(curTicks)); + else + for (int i = 0; i < Instances.Count; ++i) + Instances[i].CheckAlive(curTicks); + } + catch (Exception ex) + { + TraceException(ex); + } + } + + private static ConcurrentQueue m_Disposed = new ConcurrentQueue(); + + public static void ProcessDisposedQueue() + { + int breakout = 0; + + while (breakout++ < 200) + { + if (!m_Disposed.TryDequeue(out NetState ns)) + break; + + Mobile m = ns.Mobile; + IAccount a = ns.Account; + + if (m != null) + { + m.NetState = null; + ns.Mobile = null; + } + + ns.Gumps.Clear(); + ns.Menus.Clear(); + ns.HuePickers.Clear(); + ns.Account = null; + ns.ServerInfo = null; + ns.CityInfo = null; + + Instances.Remove(ns); + + if (a != null) + ns.WriteConsole("Disconnected. [{0} Online] [{1}]", Instances.Count, a); + else + ns.WriteConsole("Disconnected. [{0} Online]", Instances.Count); + } + } + + public ExpansionInfo ExpansionInfo + { + get + { + for (int i = ExpansionInfo.Table.Length - 1; i >= 0; i--) + { + ExpansionInfo info = ExpansionInfo.Table[i]; + + if (info.RequiredClient != null && Version >= info.RequiredClient || (Flags & info.ClientFlags) != 0) + return info; + } + + return ExpansionInfo.GetInfo(Expansion.None); + } + } + + public Expansion Expansion => (Expansion)ExpansionInfo.ID; + + public ProtocolChanges ProtocolChanges { get; set; } + + public bool SupportsExpansion(ExpansionInfo info, bool checkCoreExpansion = true) + { + if (info == null || checkCoreExpansion && (int)Core.Expansion < info.ID) + return false; + + return info.RequiredClient != null ? Version >= info.RequiredClient : (Flags & info.ClientFlags) != 0; + } + + public bool SupportsExpansion(Expansion ex, bool checkCoreExpansion = true) + { + return SupportsExpansion(ExpansionInfo.GetInfo(ex), checkCoreExpansion); + } + + public int CompareTo(NetState other) + { + return other == null ? 1 : m_ToString.CompareTo(other.m_ToString); + } + } +} diff --git a/Projects/Server/Network/Packet.cs b/Projects/Server/Network/Packet.cs new file mode 100644 index 000000000..0bfbb39fe --- /dev/null +++ b/Projects/Server/Network/Packet.cs @@ -0,0 +1,273 @@ +/*************************************************************************** + * Packet.cs + * ------------------- + * begin : August 2, 2019 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using Server.Diagnostics; +using System; +using System.Buffers; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace Server.Network +{ + public abstract class Packet + { + private const int CompressorBufferSize = 0x10000; + + private const int BufferSize = 4096; + + private byte[] m_CompiledBuffer; + private int m_CompiledLength; + private int m_Length; + private State m_State; + + protected PacketWriter m_Stream; + + protected Packet(int packetID) + { + PacketID = packetID; + + if (Core.Profiling) + { + PacketSendProfile prof = PacketSendProfile.Acquire(GetType()); + prof.Increment(); + } + } + + protected Packet(int packetID, int length) + { + PacketID = packetID; + m_Length = length; + + m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length ); + m_Stream.Write((byte)packetID); + + if (Core.Profiling) + { + PacketSendProfile prof = PacketSendProfile.Acquire(GetType()); + prof.Increment(); + } + } + + public int PacketID { get; } + + public PacketWriter UnderlyingStream => m_Stream; + + public void EnsureCapacity(int length) + { + m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length ); + m_Stream.Write((byte)PacketID); + m_Stream.Write((short)0); + } + + public static Packet SetStatic(Packet p) + { + p.SetStatic(); + return p; + } + + public static Packet Acquire(Packet p) + { + p.Acquire(); + return p; + } + + public static void Release(ref Packet p) + { + p?.Release(); + p = null; + } + + public static void Release(Packet p) + { + p?.Release(); + } + + public void SetStatic() + { + m_State |= State.Static | State.Acquired; + } + + public void Acquire() + { + m_State |= State.Acquired; + } + + public void OnSend() + { + Core.Set(); // Is this still needed if this is done async? + + if ((m_State & (State.Acquired | State.Static)) == 0) + Free(); + } + + private void Free() + { + if (m_CompiledBuffer == null) + return; + + if ((m_State & State.Buffered) != 0) + ArrayPool.Shared.Return(m_CompiledBuffer); + + m_State &= ~(State.Static | State.Acquired | State.Buffered); + + m_CompiledBuffer = null; + } + + public void Release() + { + if ((m_State & State.Acquired) != 0) + Free(); + } + + public byte[] Compile(bool compress, out int length) + { + lock (this) + { + if (m_CompiledBuffer == null) + { + if ((m_State & State.Accessed) == 0) + { + m_State |= State.Accessed; + } + else + { + if ((m_State & State.Warned) == 0) + { + m_State |= State.Warned; + + try + { + using (StreamWriter op = new StreamWriter("net_opt.log", true)) + { + op.WriteLine("Redundant compile for packet {0}, use Acquire() and Release()", GetType()); + op.WriteLine(new StackTrace()); + } + } + catch + { + // ignored + } + } + + m_CompiledBuffer = new byte[0]; + m_CompiledLength = 0; + + length = m_CompiledLength; + return m_CompiledBuffer; + } + + InternalCompile(compress); + } + + length = m_CompiledLength; + return m_CompiledBuffer; + } + } + + private void InternalCompile(bool compress) + { + if (m_Length == 0) + { + long streamLen = m_Stream.Length; + + m_Stream.Seek(1, SeekOrigin.Begin); + m_Stream.Write((ushort)streamLen); + } + else if (m_Stream.Length != m_Length) + { + int diff = (int)m_Stream.Length - m_Length; + + Console.WriteLine("Packet: 0x{0:X2}: Bad packet length! ({1}{2} bytes)", PacketID, diff >= 0 ? "+" : "", + diff); + } + + MemoryStream ms = m_Stream.UnderlyingStream; + + m_CompiledBuffer = ms.GetBuffer(); + int length = (int)ms.Length; + + if (compress) + { + byte[] buffer = ArrayPool.Shared.Rent(CompressorBufferSize); + + Compression.Compress(m_CompiledBuffer, 0, length, buffer, ref length); + + if (length <= 0) + { + Console.WriteLine("Warning: Compression buffer overflowed on packet 0x{0:X2} ('{1}') (length={2})", + PacketID, GetType().Name, length); + using (StreamWriter op = new StreamWriter("compression_overflow.log", true)) + { + op.WriteLine("{0} Warning: Compression buffer overflowed on packet 0x{1:X2} ('{2}') (length={3})", + DateTime.UtcNow, PacketID, GetType().Name, length); + op.WriteLine(new StackTrace()); + } + } + else + { + m_CompiledLength = length; + + if ((m_State & State.Static) != 0) + { + m_CompiledBuffer = new byte[length]; + Buffer.BlockCopy(buffer, 0, m_CompiledBuffer, 0, length); + ArrayPool.Shared.Return(buffer); + } + else + { + m_CompiledBuffer = buffer; + m_State |= State.Buffered; + } + } + } + else if (length > 0) + { + byte[] old = m_CompiledBuffer; + m_CompiledLength = length; + + if ((m_State & State.Static) != 0) + m_CompiledBuffer = new byte[length]; + else + { + m_CompiledBuffer = ArrayPool.Shared.Rent(length); + m_State |= State.Buffered; + } + + Buffer.BlockCopy(old, 0, m_CompiledBuffer, 0, length); + } + + PacketWriter.ReleaseInstance(m_Stream); + m_Stream = null; + } + + [Flags] + private enum State + { + Inactive = 0x00, + Static = 0x01, + Acquired = 0x02, + Accessed = 0x04, + Buffered = 0x08, + Warned = 0x10 + } + } +} diff --git a/Server/Network/PacketHandler.cs b/Projects/Server/Network/PacketHandler.cs similarity index 83% rename from Server/Network/PacketHandler.cs rename to Projects/Server/Network/PacketHandler.cs index f2268a65e..022405fd5 100644 --- a/Server/Network/PacketHandler.cs +++ b/Projects/Server/Network/PacketHandler.cs @@ -18,15 +18,17 @@ * ***************************************************************************/ +using System; + namespace Server.Network { public delegate void OnPacketReceive(NetState state, PacketReader pvSrc); - public delegate bool ThrottlePacketCallback(NetState state); + public delegate TimeSpan ThrottlePacketCallback(NetState state); public class PacketHandler { - public PacketHandler(int packetID, int length, bool ingame, OnPacketReceive onReceive) + public PacketHandler(int packetID, long length, bool ingame, OnPacketReceive onReceive) { PacketID = packetID; Length = length; @@ -36,7 +38,7 @@ namespace Server.Network public int PacketID{ get; } - public int Length{ get; } + public long Length{ get; } public OnPacketReceive OnReceive{ get; } @@ -44,4 +46,4 @@ namespace Server.Network public bool Ingame{ get; } } -} \ No newline at end of file +} diff --git a/Server/Network/PacketHandlers.cs b/Projects/Server/Network/PacketHandlers.cs similarity index 92% rename from Server/Network/PacketHandlers.cs rename to Projects/Server/Network/PacketHandlers.cs index b0b62e192..b7acefa3e 100644 --- a/Server/Network/PacketHandlers.cs +++ b/Projects/Server/Network/PacketHandlers.cs @@ -19,8 +19,10 @@ ***************************************************************************/ using System; +using System.Buffers; using System.Collections.Generic; using System.IO; +using System.IO.Pipelines; using Server.Accounting; using Server.ContextMenus; using Server.Diagnostics; @@ -304,6 +306,102 @@ namespace Server.Network ph.ThrottleCallback = t; } + public static long ProcessPacket(MessagePump pump, NetState ns, in ReadOnlySequence seq) + { + PacketReader r = new PacketReader(seq); + + if (!r.TryReadByte(out byte packetId)) + { + ns.Dispose(); + return -1; + } + + if (!ns.Seeded) + { + if (packetId == 0xEF) + { + // new packet in client 6.0.5.0 replaces the traditional seed method with a seed packet + // 0xEF = 239 = multicast IP, so this should never appear in a normal seed. So this is backwards compatible with older clients. + ns.Seeded = true; + } + else + { + int seed = (packetId << 24) | (r.ReadByte() << 16) | (r.ReadByte() << 8) | r.ReadByte(); + + if (seed == 0) + { + Console.WriteLine("Login: {0}: Invalid client detected, disconnecting", ns); + ns.Dispose(); + return -1; + } + + ns.m_Seed = seed; + ns.Seeded = true; + + return 4; + } + } + + if (ns.CheckEncrypted(packetId)) + { + ns.Dispose(); + return -1; + } + + // Get Handlers + PacketHandler handler = ns.GetHandler(packetId); + + if (handler == null) + { + r.Trace(ns); + return -1; + } + + long packetLength = handler.Length; + if (handler.Length <= 0 && r.Length >= 3) + { + packetLength = r.ReadUInt16(); + if (packetLength < 3) + { + ns.Dispose(); + return -1; + } + } + + if (r.Length < packetLength) + return 0; + + if (handler.Ingame && ns.Mobile?.Deleted != false) + { + Console.WriteLine( + "Client: {0}: Sent ingame packet (0x{1:X2}) without being attached to a valid mobile.", + ns, + packetId + ); + ns.Dispose(); + return -1; + } + + ThrottlePacketCallback throttler = handler.ThrottleCallback; + TimeSpan throttled = handler.ThrottleCallback?.Invoke(ns) ?? TimeSpan.Zero; + + if (throttled > TimeSpan.Zero) + ns.ThrottledUntil = DateTime.UtcNow + throttled; + + PacketReceiveProfile prof = null; + + if (Core.Profiling) + prof = PacketReceiveProfile.Acquire(packetId); + + prof?.Start(); + + pump.QueueWork(ns, seq.Slice(r.Position), handler.OnReceive); + + prof?.Finish(packetLength); + + return packetLength; + } + private static void UnhandledBF(NetState state, PacketReader pvSrc) { } @@ -450,7 +548,8 @@ namespace Server.Network Mobile vendor = World.FindMobile(pvSrc.ReadUInt32()); byte flag = pvSrc.ReadByte(); - if (vendor == null) return; + if (vendor == null) + return; if (vendor.Deleted || !Utility.RangeCheck(vendor.Location, state.Mobile.Location, 10)) { @@ -499,7 +598,7 @@ namespace Server.Network } int count = pvSrc.ReadUInt16(); - if (count < 100 && pvSrc.Size == 1 + 2 + 4 + 2 + count * 6) + if (count < 100 && pvSrc.Length == 1 + 2 + 4 + 2 + count * 6) { List sellList = new List(count); @@ -888,7 +987,8 @@ namespace Server.Network public static void GodModeRequest(NetState state, PacketReader pvSrc) { - if (VerifyGC(state)) state.Send(new GodModeReply(pvSrc.ReadBoolean())); + if (VerifyGC(state)) + state.Send(new GodModeReply(pvSrc.ReadBoolean())); } public static void AsciiPromptResponse(NetState state, PacketReader pvSrc) @@ -1603,6 +1703,7 @@ namespace Server.Network { int packetID = pvSrc.ReadUInt16(); + Console.WriteLine("Extended Packet: {0:X}", packetID); PacketHandler ph = GetExtendedHandler(packetID); if (ph == null) @@ -1681,12 +1782,12 @@ namespace Server.Network Mobile from = state.Mobile; - int length = pvSrc.Size - 3; + long length = pvSrc.Length - 3; if (length < 0 || length % 4 != 0) return; - int count = length / 4; + long count = length / 4; for (int i = 0; i < count; ++i) { @@ -2010,7 +2111,7 @@ namespace Server.Network pvSrc.Seek(2, SeekOrigin.Current); int flags = pvSrc.ReadInt32(); - if (FeatureProtection.DisabledFeatures != 0 && ThirdPartyAuthCallback != null) +/* if (FeatureProtection.DisabledFeatures != 0 && ThirdPartyAuthCallback != null) { bool authOK = false; @@ -2031,18 +2132,18 @@ namespace Server.Network } ThirdPartyAuthCallback(state, authOK); - } - else - { + }*/ +/* else + {*/ pvSrc.Seek(24, SeekOrigin.Current); - } +/* }*/ - if (ThirdPartyHackedCallback != null) +/* if (ThirdPartyHackedCallback != null) { pvSrc.Seek(-2, SeekOrigin.Current); if (pvSrc.ReadUInt16() == 0xDEAD) ThirdPartyHackedCallback(state, true); - } + }*/ if (!state.Running) return; @@ -2053,9 +2154,7 @@ namespace Server.Network IAccount a = state.Account; if (a == null || charSlot < 0 || charSlot >= a.Length) - { state.Dispose(); - } else { Mobile m = a[charSlot]; @@ -2079,7 +2178,6 @@ namespace Server.Network return; } - m.NetState?.Dispose(); // TODO: Make this wait one tick so we don't have to call it unnecessarily @@ -2206,8 +2304,6 @@ namespace Server.Network int prof = pvSrc.ReadByte(); pvSrc.Seek(15, SeekOrigin.Current); - //bool female = pvSrc.ReadBoolean(); - int genderRace = pvSrc.ReadByte(); int str = pvSrc.ReadByte(); @@ -2645,8 +2741,7 @@ namespace Server.Network if (e.Rejected) { state.Account = null; - state.Send(new AccountLoginRej(ALRReason.BadComm)); - state.Dispose(); + AccountLogin_ReplyRej(state, ALRReason.BadComm); } else { diff --git a/Projects/Server/Network/PacketReader.cs b/Projects/Server/Network/PacketReader.cs new file mode 100644 index 000000000..d5facc4ef --- /dev/null +++ b/Projects/Server/Network/PacketReader.cs @@ -0,0 +1,315 @@ +/*************************************************************************** + * PacketReader.cs + * ------------------- + * begin : May 1, 2002 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System; +using System.Buffers; +using System.IO; +using System.IO.Pipelines; +using System.Text; + +namespace Server.Network +{ + public ref struct PacketReader + { + private SequenceReader m_Reader; + + public SequencePosition Position => m_Reader.Position; + public long Length => m_Reader.Length; + public long Consumed => m_Reader.Consumed; + public long Remaining => m_Reader.Remaining; + + public PacketReader(ReadOnlySequence seq) + { + m_Reader = new SequenceReader(seq); + } + + public byte Peek() => m_Reader.TryPeek(out byte value) ? value : (byte)0; + + public void Trace(NetState state) + { + try + { + using (StreamWriter sw = new StreamWriter("Packets.log", true)) + { + byte[] buffer = m_Reader.Sequence.ToArray(); + + if (buffer.Length > 0) + sw.WriteLine("Client: {0}: Unhandled packet 0x{1:X2}", state, buffer[0]); + + using (MemoryStream ms = new MemoryStream(buffer)) + { + Utility.FormatBuffer(sw, ms, buffer.Length); + } + + sw.WriteLine(); + sw.WriteLine(); + } + } + catch + { + // ignored + } + } + + public SequencePosition Seek(long offset, SeekOrigin origin) + { + switch (origin) + { + case SeekOrigin.Begin: + if (offset < m_Reader.Consumed) + m_Reader.Rewind(m_Reader.Consumed - Math.Max(offset, 0L)); + else + m_Reader.Advance(offset - m_Reader.Consumed); + break; + case SeekOrigin.Current: + if (offset < 0) + m_Reader.Rewind(Math.Min(m_Reader.Consumed, offset * -1)); + else + m_Reader.Advance(Math.Min(m_Reader.Remaining, offset)); + break; + case SeekOrigin.End: + long count = m_Reader.Remaining - offset; + if (count < 0) + m_Reader.Rewind(count * -1); + else if (count > 0) + m_Reader.Advance(count); + break; + } + + return m_Reader.Position; + } + + public bool TryReadByte(out byte value) => m_Reader.TryRead(out value); + + public int ReadInt32() => m_Reader.TryReadBigEndian(out int value) ? value : 0; + + public short ReadInt16() => m_Reader.TryReadBigEndian(out short value) ? value : (short)0; + + public byte ReadByte() => m_Reader.TryRead(out byte value) ? value : (byte)0; + + public uint ReadUInt32() => (uint)ReadInt32(); + + public ushort ReadUInt16() => (ushort)ReadInt16(); + + public sbyte ReadSByte() => (sbyte)ReadByte(); + + public bool ReadBoolean() => ReadByte() > 0; + + public string ReadUnicodeStringLE() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryReadLittleEndian(out short c) && c != 0) + sb.Append((char)c); + + return sb.ToString(); + } + + public string ReadUnicodeStringLE(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryReadLittleEndian(out short c) && c != 0) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength); + + return sb.ToString(); + } + + public string ReadUnicodeStringLESafe(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryReadLittleEndian(out short c) && c != 0) + if (IsSafeChar(c)) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength * 2); + + return sb.ToString(); + } + + public string ReadUnicodeStringLESafe() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryReadLittleEndian(out short c) && c != 0) + if (IsSafeChar(c)) + sb.Append((char)c); + + return sb.ToString(); + } + + public string ReadUnicodeStringSafe() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryReadBigEndian(out short c) && c != 0) + if (IsSafeChar(c)) + sb.Append((char)c); + + return sb.ToString(); + } + + public string ReadUnicodeString() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryReadBigEndian(out short c) && c != 0) + sb.Append((char)c); + + return sb.ToString(); + } + + public bool IsSafeChar(int c) + { + return c >= 0x20 && c < 0xFFFE; + } + + public string ReadUTF8StringSafe(int fixedLength) + { + string s; + + if (m_Reader.TryReadTo(out ReadOnlySpan span, (byte)'\0', true)) + s = Utility.UTF8.GetString(span.Length > fixedLength ? span.Slice(0, fixedLength) : span); + else + { + long size = Math.Min(m_Reader.Remaining, fixedLength); + s = Utility.UTF8.GetString(m_Reader.Sequence.Slice(m_Reader.Position, size).ToArray()); + m_Reader.Advance(size); + } + + StringBuilder sb = new StringBuilder(s.Length); + + for (int i = 0; i < s.Length; ++i) + if (IsSafeChar(s[i])) + sb.Append(s[i]); + + return sb.ToString(); + } + + public string ReadUTF8StringSafe() + { + string s; + + if (m_Reader.TryReadTo(out ReadOnlySpan span, (byte)'\0', true)) + s = Utility.UTF8.GetString(span); + else + { + s = Utility.UTF8.GetString(m_Reader.Sequence.Slice(m_Reader.Position, m_Reader.Remaining).ToArray()); + m_Reader.Advance(m_Reader.Remaining); + } + + StringBuilder sb = new StringBuilder(s.Length); + + for (int i = 0; i < s.Length; ++i) + if (IsSafeChar(s[i])) + sb.Append(s[i]); + + return sb.ToString(); + } + + public string ReadUTF8String() + { + return Utility.UTF8.GetString( + m_Reader.TryReadTo(out ReadOnlySpan span, (byte)'\0', true) ? span : + m_Reader.Sequence.Slice(m_Reader.Position, m_Reader.Remaining).ToArray() + ); + } + + public string ReadString() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryRead(out byte c)) + sb.Append((char)c); + + return sb.ToString(); + } + + public string ReadStringSafe() + { + StringBuilder sb = new StringBuilder(); + + while (m_Reader.TryRead(out byte c)) + if (IsSafeChar(c)) + sb.Append((char)c); + + return sb.ToString(); + } + + public string ReadUnicodeStringSafe(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryReadBigEndian(out short c) && c != 0) + if (IsSafeChar(c)) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength * 2); + + return sb.ToString(); + } + + public string ReadUnicodeString(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryReadBigEndian(out short c) && c != 0) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength * 2); + + return sb.ToString(); + } + + public string ReadStringSafe(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryRead(out byte c) && c != 0) + if (IsSafeChar(c)) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength); + + return sb.ToString(); + } + + public string ReadString(int fixedLength) + { + StringBuilder sb = new StringBuilder(); + + while (fixedLength-- > 0 && m_Reader.TryRead(out byte c) && c != 0) + sb.Append((char)c); + + if (fixedLength > 0) + m_Reader.Advance(fixedLength); + + return sb.ToString(); + } + } +} diff --git a/Server/Network/PacketWriter.cs b/Projects/Server/Network/PacketWriter.cs similarity index 55% rename from Server/Network/PacketWriter.cs rename to Projects/Server/Network/PacketWriter.cs index e45a1e12b..c90b85fb8 100644 --- a/Server/Network/PacketWriter.cs +++ b/Projects/Server/Network/PacketWriter.cs @@ -19,7 +19,7 @@ ***************************************************************************/ using System; -using System.Collections.Generic; +using System.Collections.Concurrent; using System.IO; using System.Text; @@ -30,7 +30,7 @@ namespace Server.Network /// public class PacketWriter { - private static Stack m_Pool = new Stack(); + private static ConcurrentQueue m_Pool = new ConcurrentQueue(); /// /// Internal format buffer. @@ -39,85 +39,50 @@ namespace Server.Network private int m_Capacity; - /// - /// Internal stream which holds the entire packet. - /// - private MemoryStream m_Stream; - /// /// Instantiates a new PacketWriter instance with a given capacity. /// /// Initial capacity for the internal stream. public PacketWriter(int capacity = 32) { - m_Stream = new MemoryStream(capacity); + UnderlyingStream = new MemoryStream(capacity); m_Capacity = capacity; } /// /// Gets the total stream length. /// - public long Length => m_Stream.Length; + public long Length => UnderlyingStream.Length; /// /// Gets or sets the current stream position. /// public long Position { - get => m_Stream.Position; - set => m_Stream.Position = value; + get => UnderlyingStream.Position; + set => UnderlyingStream.Position = value; } /// /// The internal stream used by this PacketWriter instance. /// - public MemoryStream UnderlyingStream => m_Stream; + public MemoryStream UnderlyingStream { get; private set; } - public static PacketWriter CreateInstance() + public static PacketWriter CreateInstance(int capacity = 32) { - return CreateInstance(32); - } - - public static PacketWriter CreateInstance(int capacity) - { - PacketWriter pw = null; - - lock (m_Pool) + if (m_Pool.TryDequeue(out PacketWriter pw)) { - if (m_Pool.Count > 0) - { - pw = m_Pool.Pop(); - - if (pw != null) - { - pw.m_Capacity = capacity; - pw.m_Stream.SetLength(0); - } - } + pw.m_Capacity = capacity; + pw.UnderlyingStream.SetLength(0); + return pw; } - return pw ?? new PacketWriter(capacity); + return new PacketWriter(capacity); } public static void ReleaseInstance(PacketWriter pw) { - lock (m_Pool) - { - if (!m_Pool.Contains(pw)) - m_Pool.Push(pw); - else - try - { - using (StreamWriter op = new StreamWriter("neterr.log")) - { - op.WriteLine("{0}\tInstance pool contains writer", DateTime.UtcNow); - } - } - catch - { - Console.WriteLine("net error"); - } - } + m_Pool.Enqueue(pw); } /// @@ -125,7 +90,7 @@ namespace Server.Network /// public void Write(bool value) { - m_Stream.WriteByte((byte)(value ? 1 : 0)); + UnderlyingStream.WriteByte((byte)(value ? 1 : 0)); } /// @@ -133,7 +98,7 @@ namespace Server.Network /// public void Write(byte value) { - m_Stream.WriteByte(value); + UnderlyingStream.WriteByte(value); } /// @@ -141,7 +106,7 @@ namespace Server.Network /// public void Write(sbyte value) { - m_Stream.WriteByte((byte)value); + UnderlyingStream.WriteByte((byte)value); } /// @@ -152,7 +117,7 @@ namespace Server.Network m_Buffer[0] = (byte)(value >> 8); m_Buffer[1] = (byte)value; - m_Stream.Write(m_Buffer, 0, 2); + UnderlyingStream.Write(m_Buffer, 0, 2); } /// @@ -163,7 +128,7 @@ namespace Server.Network m_Buffer[0] = (byte)(value >> 8); m_Buffer[1] = (byte)value; - m_Stream.Write(m_Buffer, 0, 2); + UnderlyingStream.Write(m_Buffer, 0, 2); } /// @@ -176,7 +141,7 @@ namespace Server.Network m_Buffer[2] = (byte)(value >> 8); m_Buffer[3] = (byte)value; - m_Stream.Write(m_Buffer, 0, 4); + UnderlyingStream.Write(m_Buffer, 0, 4); } /// @@ -189,7 +154,7 @@ namespace Server.Network m_Buffer[2] = (byte)(value >> 8); m_Buffer[3] = (byte)value; - m_Stream.Write(m_Buffer, 0, 4); + UnderlyingStream.Write(m_Buffer, 0, 4); } /// @@ -197,7 +162,7 @@ namespace Server.Network /// public void Write(byte[] buffer, int offset, int size) { - m_Stream.Write(buffer, offset, size); + UnderlyingStream.Write(buffer, offset, size); } /// @@ -214,29 +179,18 @@ namespace Server.Network int length = value.Length; - m_Stream.SetLength(m_Stream.Length + size); + UnderlyingStream.SetLength(UnderlyingStream.Length + size); if (length >= size) { - m_Stream.Position += Encoding.ASCII.GetBytes(value, 0, size, m_Stream.GetBuffer(), (int)m_Stream.Position); + UnderlyingStream.Position += + Encoding.ASCII.GetBytes(value, 0, size, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); } else { - Encoding.ASCII.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += size; + Encoding.ASCII.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += size; } - - /*byte[] buffer = Encoding.ASCII.GetBytes( value ); - - if ( buffer.Length >= size ) - { - m_Stream.Write( buffer, 0, size ); - } - else - { - m_Stream.Write( buffer, 0, buffer.Length ); - Fill( size - buffer.Length ); - }*/ } /// @@ -252,15 +206,10 @@ namespace Server.Network int length = value.Length; - m_Stream.SetLength(m_Stream.Length + length + 1); + UnderlyingStream.SetLength(UnderlyingStream.Length + length + 1); - Encoding.ASCII.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += length + 1; - - /*byte[] buffer = Encoding.ASCII.GetBytes( value ); - - m_Stream.Write( buffer, 0, buffer.Length ); - m_Stream.WriteByte( 0 );*/ + Encoding.ASCII.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += length + 1; } /// @@ -276,18 +225,10 @@ namespace Server.Network int length = value.Length; - m_Stream.SetLength(m_Stream.Length + (length + 1) * 2); + UnderlyingStream.SetLength(UnderlyingStream.Length + (length + 1) * 2); - m_Stream.Position += Encoding.Unicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += 2; - - /*byte[] buffer = Encoding.Unicode.GetBytes( value ); - - m_Stream.Write( buffer, 0, buffer.Length ); - - m_Buffer[0] = 0; - m_Buffer[1] = 0; - m_Stream.Write( m_Buffer, 0, 2 );*/ + UnderlyingStream.Position += Encoding.Unicode.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += 2; } /// @@ -302,36 +243,21 @@ namespace Server.Network value = string.Empty; } + int length = value.Length; size *= 2; - int length = value.Length; - - m_Stream.SetLength(m_Stream.Length + size); + UnderlyingStream.SetLength(UnderlyingStream.Length + size); if (length * 2 >= size) { - m_Stream.Position += - Encoding.Unicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); + UnderlyingStream.Position += + Encoding.Unicode.GetBytes(value, 0, size, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); } else { - Encoding.Unicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += size; + Encoding.Unicode.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += size; } - - /*size *= 2; - - byte[] buffer = Encoding.Unicode.GetBytes( value ); - - if ( buffer.Length >= size ) - { - m_Stream.Write( buffer, 0, size ); - } - else - { - m_Stream.Write( buffer, 0, buffer.Length ); - Fill( size - buffer.Length ); - }*/ } /// @@ -347,19 +273,11 @@ namespace Server.Network int length = value.Length; - m_Stream.SetLength(m_Stream.Length + (length + 1) * 2); + UnderlyingStream.SetLength(UnderlyingStream.Length + (length + 1) * 2); - m_Stream.Position += - Encoding.BigEndianUnicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += 2; - - /*byte[] buffer = Encoding.BigEndianUnicode.GetBytes( value ); - - m_Stream.Write( buffer, 0, buffer.Length ); - - m_Buffer[0] = 0; - m_Buffer[1] = 0; - m_Stream.Write( m_Buffer, 0, 2 );*/ + UnderlyingStream.Position += + Encoding.BigEndianUnicode.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += 2; } /// @@ -374,36 +292,21 @@ namespace Server.Network value = string.Empty; } + int length = value.Length; size *= 2; - int length = value.Length; + UnderlyingStream.SetLength(UnderlyingStream.Length + size); - m_Stream.SetLength(m_Stream.Length + size); - - if (length * 2 >= size) + if (length * 2 >= size ) { - m_Stream.Position += - Encoding.BigEndianUnicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); + UnderlyingStream.Position += + Encoding.BigEndianUnicode.GetBytes(value, 0, size, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); } else { - Encoding.BigEndianUnicode.GetBytes(value, 0, length, m_Stream.GetBuffer(), (int)m_Stream.Position); - m_Stream.Position += size; + Encoding.BigEndianUnicode.GetBytes(value, 0, length, UnderlyingStream.GetBuffer(), (int)UnderlyingStream.Position); + UnderlyingStream.Position += size; } - - /*size *= 2; - - byte[] buffer = Encoding.BigEndianUnicode.GetBytes( value ); - - if ( buffer.Length >= size ) - { - m_Stream.Write( buffer, 0, size ); - } - else - { - m_Stream.Write( buffer, 0, buffer.Length ); - Fill( size - buffer.Length ); - }*/ } /// @@ -411,39 +314,33 @@ namespace Server.Network /// public void Fill() { - Fill((int)(m_Capacity - m_Stream.Length)); + Fill(m_Capacity - UnderlyingStream.Length); } /// /// Writes a number of 0x00 byte values to the underlying stream. /// - public void Fill(int length) + public void Fill(long length) { - if (m_Stream.Position == m_Stream.Length) + if (UnderlyingStream.Position == UnderlyingStream.Length) { - m_Stream.SetLength(m_Stream.Length + length); - m_Stream.Seek(0, SeekOrigin.End); + UnderlyingStream.SetLength(UnderlyingStream.Length + length); + UnderlyingStream.Seek(0, SeekOrigin.End); } else { - m_Stream.Write(new byte[length], 0, length); + UnderlyingStream.Write(new byte[length], 0, (int)length); } } /// /// Offsets the current position from an origin. /// - public long Seek(long offset, SeekOrigin origin) - { - return m_Stream.Seek(offset, origin); - } + public long Seek(long offset, SeekOrigin origin) => UnderlyingStream.Seek(offset, origin); /// /// Gets the entire stream content as a byte array. /// - public byte[] ToArray() - { - return m_Stream.ToArray(); - } + public byte[] ToArray() => UnderlyingStream.ToArray(); } } diff --git a/Server/Network/Packets.cs b/Projects/Server/Network/Packets.cs similarity index 90% rename from Server/Network/Packets.cs rename to Projects/Server/Network/Packets.cs index a08633c70..4dabd698d 100644 --- a/Server/Network/Packets.cs +++ b/Projects/Server/Network/Packets.cs @@ -19,6 +19,7 @@ ***************************************************************************/ using System; +using System.Buffers; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -2336,8 +2337,6 @@ namespace Server.Network public sealed class DisplayGumpPacked : Packet, IGumpWriter { - private const int GumpBufferSize = 0x5000; - private static byte[] m_True = Gump.StringToBuffer(" 1"); private static byte[] m_False = Gump.StringToBuffer(" 0"); @@ -2345,7 +2344,6 @@ namespace Server.Network private static byte[] m_EndTextSeparator = Gump.StringToBuffer("@"); private static byte[] m_Buffer = new byte[48]; - private static BufferPool m_PackBuffers = new BufferPool("Gump", 4, GumpBufferSize); private Gump m_Gump; @@ -2465,30 +2463,17 @@ namespace Server.Network wantLength += 4095; wantLength &= ~4095; - byte[] m_PackBuffer; - lock (m_PackBuffers) - { - m_PackBuffer = m_PackBuffers.AcquireBuffer(); - } + byte[] packBuffer = ArrayPool.Shared.Rent(wantLength); - if (m_PackBuffer.Length < wantLength) - { - Console.WriteLine("Notice: DisplayGumpPacked creating new {0} byte buffer", wantLength); - m_PackBuffer = new byte[wantLength]; - } + int packLength = wantLength; - int packLength = m_PackBuffer.Length; - - Compression.Pack(m_PackBuffer, ref packLength, buffer, length, ZLibQuality.Default); + Compression.Pack(packBuffer, ref packLength, buffer, length, ZLibQuality.Default); m_Stream.Write(4 + packLength); m_Stream.Write(length); - m_Stream.Write(m_PackBuffer, 0, packLength); + m_Stream.Write(packBuffer, 0, packLength); - lock (m_PackBuffers) - { - m_PackBuffers.ReleaseBuffer(m_PackBuffer); - } + ArrayPool.Shared.Return(packBuffer); } } @@ -3954,7 +3939,7 @@ namespace Server.Network public sealed class CharacterList : Packet { - private static MD5CryptoServiceProvider m_MD5Provider; + //private static MD5CryptoServiceProvider m_MD5Provider; public CharacterList(IAccount a, CityInfo[] info) : base(0xA9) { @@ -4013,7 +3998,7 @@ namespace Server.Network m_Stream.Write((short)-1); - ThirdPartyFeature disabled = FeatureProtection.DisabledFeatures; + /*ThirdPartyFeature disabled = FeatureProtection.DisabledFeatures; if (disabled != 0) { @@ -4040,7 +4025,7 @@ namespace Server.Network m_Stream.Seek(95, SeekOrigin.Begin); m_Stream.Write(hashCode, 0, hashCode.Length); - } + }*/ } public static CharacterListFlags AdditionalFlags{ get; set; } @@ -4048,7 +4033,7 @@ namespace Server.Network public sealed class CharacterListOld : Packet { - private static MD5CryptoServiceProvider m_MD5Provider; + // private static MD5CryptoServiceProvider m_MD5Provider; public CharacterListOld(IAccount a, CityInfo[] info) : base(0xA9) { @@ -4099,7 +4084,7 @@ namespace Server.Network m_Stream.Write((int)(flags | CharacterList.AdditionalFlags)); // Additional Flags - ThirdPartyFeature disabled = FeatureProtection.DisabledFeatures; +/* ThirdPartyFeature disabled = FeatureProtection.DisabledFeatures; if (disabled != 0) { @@ -4126,7 +4111,7 @@ namespace Server.Network m_Stream.Seek(95, SeekOrigin.Begin); m_Stream.Write(hashCode, 0, hashCode.Length); - } + }*/ } } @@ -4197,7 +4182,7 @@ namespace Server.Network public sealed class ServerInfo { - public ServerInfo(string name, int fullPercent, TimeZone tz, IPEndPoint address) + public ServerInfo(string name, int fullPercent, TimeZoneInfo tz, IPEndPoint address) { Name = name; FullPercent = fullPercent; @@ -4289,271 +4274,4 @@ namespace Server.Network m_Stream.Write(m_AuthID); } } - - public abstract class Packet - { - private const int CompressorBufferSize = 0x10000; - - private const int BufferSize = 4096; - private static BufferPool m_CompressorBuffers = new BufferPool("Compressor", 4, CompressorBufferSize); - private static BufferPool m_Buffers = new BufferPool("Compressed", 16, BufferSize); - - private byte[] m_CompiledBuffer; - private int m_CompiledLength; - private int m_Length; - private State m_State; - - protected PacketWriter m_Stream; - - protected Packet(int packetID) - { - PacketID = packetID; - - if (Core.Profiling) - { - PacketSendProfile prof = PacketSendProfile.Acquire(GetType()); - prof.Increment(); - } - } - - protected Packet(int packetID, int length) - { - PacketID = packetID; - m_Length = length; - - m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length ); - m_Stream.Write((byte)packetID); - - if (Core.Profiling) - { - PacketSendProfile prof = PacketSendProfile.Acquire(GetType()); - prof.Increment(); - } - } - - public int PacketID{ get; } - - public PacketWriter UnderlyingStream => m_Stream; - - public void EnsureCapacity(int length) - { - m_Stream = PacketWriter.CreateInstance(length); // new PacketWriter( length ); - m_Stream.Write((byte)PacketID); - m_Stream.Write((short)0); - } - - public static Packet SetStatic(Packet p) - { - p.SetStatic(); - return p; - } - - public static Packet Acquire(Packet p) - { - p.Acquire(); - return p; - } - - public static void Release(ref Packet p) - { - p?.Release(); - p = null; - } - - public static void Release(Packet p) - { - p?.Release(); - } - - public void SetStatic() - { - m_State |= State.Static | State.Acquired; - } - - public void Acquire() - { - m_State |= State.Acquired; - } - - public void OnSend() - { - Core.Set(); - - lock (this) - { - if ((m_State & (State.Acquired | State.Static)) == 0) - Free(); - } - } - - private void Free() - { - if (m_CompiledBuffer == null) - return; - - if ((m_State & State.Buffered) != 0) - m_Buffers.ReleaseBuffer(m_CompiledBuffer); - - m_State &= ~(State.Static | State.Acquired | State.Buffered); - - m_CompiledBuffer = null; - } - - public void Release() - { - if ((m_State & State.Acquired) != 0) - Free(); - } - - public byte[] Compile(bool compress, out int length) - { - lock (this) - { - if (m_CompiledBuffer == null) - { - if ((m_State & State.Accessed) == 0) - { - m_State |= State.Accessed; - } - else - { - if ((m_State & State.Warned) == 0) - { - m_State |= State.Warned; - - try - { - using (StreamWriter op = new StreamWriter("net_opt.log", true)) - { - op.WriteLine("Redundant compile for packet {0}, use Acquire() and Release()", GetType()); - op.WriteLine(new StackTrace()); - } - } - catch - { - // ignored - } - } - - m_CompiledBuffer = new byte[0]; - m_CompiledLength = 0; - - length = m_CompiledLength; - return m_CompiledBuffer; - } - - InternalCompile(compress); - } - - length = m_CompiledLength; - return m_CompiledBuffer; - } - } - - private void InternalCompile(bool compress) - { - if (m_Length == 0) - { - long streamLen = m_Stream.Length; - - m_Stream.Seek(1, SeekOrigin.Begin); - m_Stream.Write((ushort)streamLen); - } - else if (m_Stream.Length != m_Length) - { - int diff = (int)m_Stream.Length - m_Length; - - Console.WriteLine("Packet: 0x{0:X2}: Bad packet length! ({1}{2} bytes)", PacketID, diff >= 0 ? "+" : "", - diff); - } - - MemoryStream ms = m_Stream.UnderlyingStream; - - m_CompiledBuffer = ms.GetBuffer(); - int length = (int)ms.Length; - - if (compress) - { - byte[] buffer; - lock (m_CompressorBuffers) - { - buffer = m_CompressorBuffers.AcquireBuffer(); - } - - Compression.Compress(m_CompiledBuffer, 0, length, buffer, ref length); - - if (length <= 0) - { - Console.WriteLine("Warning: Compression buffer overflowed on packet 0x{0:X2} ('{1}') (length={2})", - PacketID, GetType().Name, length); - using (StreamWriter op = new StreamWriter("compression_overflow.log", true)) - { - op.WriteLine("{0} Warning: Compression buffer overflowed on packet 0x{1:X2} ('{2}') (length={3})", - DateTime.UtcNow, PacketID, GetType().Name, length); - op.WriteLine(new StackTrace()); - } - } - else - { - m_CompiledLength = length; - - if (length > BufferSize || (m_State & State.Static) != 0) - { - m_CompiledBuffer = new byte[length]; - } - else - { - lock (m_Buffers) - { - m_CompiledBuffer = m_Buffers.AcquireBuffer(); - } - - m_State |= State.Buffered; - } - - Buffer.BlockCopy(buffer, 0, m_CompiledBuffer, 0, length); - - lock (m_CompressorBuffers) - { - m_CompressorBuffers.ReleaseBuffer(buffer); - } - } - } - else if (length > 0) - { - byte[] old = m_CompiledBuffer; - m_CompiledLength = length; - - if (length > BufferSize || (m_State & State.Static) != 0) - { - m_CompiledBuffer = new byte[length]; - } - else - { - lock (m_Buffers) - { - m_CompiledBuffer = m_Buffers.AcquireBuffer(); - } - - m_State |= State.Buffered; - } - - Buffer.BlockCopy(old, 0, m_CompiledBuffer, 0, length); - } - - PacketWriter.ReleaseInstance(m_Stream); - m_Stream = null; - } - - [Flags] - private enum State - { - Inactive = 0x00, - Static = 0x01, - Acquired = 0x02, - Accessed = 0x04, - Buffered = 0x08, - Warned = 0x10 - } - } } diff --git a/Projects/Server/Network/SendQueue.cs b/Projects/Server/Network/SendQueue.cs new file mode 100644 index 000000000..2b0364e0e --- /dev/null +++ b/Projects/Server/Network/SendQueue.cs @@ -0,0 +1,51 @@ +/*************************************************************************** + * SendQueue.cs + * ------------------- + * begin : May 1, 2002 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System.Collections.Concurrent; +using System.Threading.Tasks; + +namespace Server.Network +{ + public class SendQueue + { + private BlockingCollection m_Queue = new BlockingCollection(new ConcurrentQueue()); + + public SendQueue() + { + } + + public void Enqueue(T t) + { + m_Queue.Add(t); + } + + public Task DequeueAsync() + { + TaskCompletionSource taskCompletion = new TaskCompletionSource(); + Task.Run(() => taskCompletion.SetResult(Dequeue())); + return taskCompletion.Task; + } + + public T Dequeue() + { + return m_Queue.Take(); + } + } +} diff --git a/Projects/Server/Network/SocketExtensions.cs b/Projects/Server/Network/SocketExtensions.cs new file mode 100644 index 000000000..4eaf373d6 --- /dev/null +++ b/Projects/Server/Network/SocketExtensions.cs @@ -0,0 +1,57 @@ +/*************************************************************************** + * SocketExtensions.cs + * ------------------- + * begin : August 2, 2019 + * copyright : (C) The ModernUO Team + * email : hi@modernuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System; +using System.Buffers; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using System.Threading.Tasks; + +namespace Server.Network +{ + public static class SocketExtensions + { + public static Task ReceiveAsync(this Socket socket, Memory memory, SocketFlags socketFlags) + { + return SocketTaskExtensions.ReceiveAsync(socket, GetArray(memory), socketFlags); + } + + public static ArraySegment GetArray(this Memory memory) + { + return ((ReadOnlyMemory)memory).GetArray(); + } + + public static ArraySegment GetArray(this ReadOnlyMemory memory) + { + if (MemoryMarshal.TryGetArray(memory, out var result)) + return result; + + throw new InvalidOperationException("Buffer backed by array was expected"); + } + + public static ArraySegment GetArray(this ReadOnlySequence memory) + { + if (SequenceMarshal.TryGetArray(memory, out var result)) + return result; + + throw new InvalidOperationException("Buffer backed by array was expected"); + } + } +} diff --git a/Server/Network/StaticPacketHandlers.cs b/Projects/Server/Network/StaticPacketHandlers.cs similarity index 78% rename from Server/Network/StaticPacketHandlers.cs rename to Projects/Server/Network/StaticPacketHandlers.cs index ff09ffd50..b2c710581 100644 --- a/Server/Network/StaticPacketHandlers.cs +++ b/Projects/Server/Network/StaticPacketHandlers.cs @@ -1,3 +1,23 @@ +/*************************************************************************** + * StaticPacketHandlers.cs + * ------------------- + * begin : March 15, 2019 + * copyright : (C) The ModernUO Team + * email : hi@modernuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + using System.Collections.Concurrent; namespace Server.Network diff --git a/Server/Notoriety.cs b/Projects/Server/Notoriety.cs similarity index 100% rename from Server/Notoriety.cs rename to Projects/Server/Notoriety.cs diff --git a/Server/ObjectPropertyList.cs b/Projects/Server/ObjectPropertyList.cs similarity index 100% rename from Server/ObjectPropertyList.cs rename to Projects/Server/ObjectPropertyList.cs diff --git a/Server/Party.cs b/Projects/Server/Party.cs similarity index 100% rename from Server/Party.cs rename to Projects/Server/Party.cs diff --git a/Server/Persistence/BinaryMemoryWriter.cs b/Projects/Server/Persistence/BinaryMemoryWriter.cs similarity index 100% rename from Server/Persistence/BinaryMemoryWriter.cs rename to Projects/Server/Persistence/BinaryMemoryWriter.cs diff --git a/Server/Persistence/DualSaveStrategy.cs b/Projects/Server/Persistence/DualSaveStrategy.cs similarity index 84% rename from Server/Persistence/DualSaveStrategy.cs rename to Projects/Server/Persistence/DualSaveStrategy.cs index cd93949f3..8e9ce9785 100644 --- a/Server/Persistence/DualSaveStrategy.cs +++ b/Projects/Server/Persistence/DualSaveStrategy.cs @@ -26,17 +26,17 @@ namespace Server { public override string Name => "Dual"; - public override void Save(SaveMetrics metrics, bool permitBackgroundWrite) + public override void Save(bool permitBackgroundWrite) { PermitBackgroundWrite = permitBackgroundWrite; - Thread saveThread = new Thread(delegate() { SaveItems(metrics); }); + Thread saveThread = new Thread(delegate() { SaveItems(); }); saveThread.Name = "Item Save Subset"; saveThread.Start(); - SaveMobiles(metrics); - SaveGuilds(metrics); + SaveMobiles(); + SaveGuilds(); saveThread.Join(); diff --git a/Server/Persistence/DynamicSaveStrategy.cs b/Projects/Server/Persistence/DynamicSaveStrategy.cs similarity index 90% rename from Server/Persistence/DynamicSaveStrategy.cs rename to Projects/Server/Persistence/DynamicSaveStrategy.cs index 384d6f506..0132c1f52 100644 --- a/Server/Persistence/DynamicSaveStrategy.cs +++ b/Projects/Server/Persistence/DynamicSaveStrategy.cs @@ -37,7 +37,6 @@ namespace Server private BlockingCollection _itemThreadWriters; - private SaveMetrics _metrics; private SequentialFileWriter _mobileData, _mobileIndex; private BlockingCollection _mobileThreadWriters; @@ -51,10 +50,8 @@ namespace Server public override string Name => "Dynamic"; - public override void Save(SaveMetrics metrics, bool permitBackgroundWrite) + public override void Save(bool permitBackgroundWrite) { - _metrics = metrics; - OpenFiles(); Task[] saveTasks = new Task[3]; @@ -130,8 +127,6 @@ namespace Server if (item.Decays && item.Parent == null && item.Map != Map.Internal && DateTime.UtcNow > item.LastMoved + item.DecayTime) _decayBag.Add(item); - _metrics?.OnItemSaved(size); - return writer; }, writer => @@ -165,8 +160,6 @@ namespace Server writer.QueueForIndex(mobile, size); - _metrics?.OnMobileSaved(size); - return writer; }, writer => @@ -201,8 +194,6 @@ namespace Server writer.QueueForIndex(guild, size); - _metrics?.OnGuildSaved(size); - return writer; }, writer => @@ -226,14 +217,14 @@ namespace Server private void OpenFiles() { - _itemData = new SequentialFileWriter(World.ItemDataPath, _metrics); - _itemIndex = new SequentialFileWriter(World.ItemIndexPath, _metrics); + _itemData = new SequentialFileWriter(World.ItemDataPath); + _itemIndex = new SequentialFileWriter(World.ItemIndexPath); - _mobileData = new SequentialFileWriter(World.MobileDataPath, _metrics); - _mobileIndex = new SequentialFileWriter(World.MobileIndexPath, _metrics); + _mobileData = new SequentialFileWriter(World.MobileDataPath); + _mobileIndex = new SequentialFileWriter(World.MobileIndexPath); - _guildData = new SequentialFileWriter(World.GuildDataPath, _metrics); - _guildIndex = new SequentialFileWriter(World.GuildIndexPath, _metrics); + _guildData = new SequentialFileWriter(World.GuildDataPath); + _guildIndex = new SequentialFileWriter(World.GuildIndexPath); WriteCount(_itemIndex, World.Items.Count); WriteCount(_mobileIndex, World.Mobiles.Count); diff --git a/Server/Persistence/FileOperations.cs b/Projects/Server/Persistence/FileOperations.cs similarity index 100% rename from Server/Persistence/FileOperations.cs rename to Projects/Server/Persistence/FileOperations.cs diff --git a/Server/Persistence/FileQueue.cs b/Projects/Server/Persistence/FileQueue.cs similarity index 88% rename from Server/Persistence/FileQueue.cs rename to Projects/Server/Persistence/FileQueue.cs index 21c44eda5..52e670cf4 100644 --- a/Server/Persistence/FileQueue.cs +++ b/Projects/Server/Persistence/FileQueue.cs @@ -19,9 +19,9 @@ ***************************************************************************/ using System; +using System.Buffers; using System.Collections.Generic; using System.Threading; -using Server.Network; namespace Server { @@ -30,7 +30,6 @@ namespace Server public sealed class FileQueue : IDisposable { private static int bufferSize; - private static BufferPool bufferPool; private Chunk[] active; private int activeCount; @@ -47,15 +46,14 @@ namespace Server static FileQueue() { bufferSize = FileOperations.BufferSize; - bufferPool = new BufferPool("File Buffers", 64, bufferSize); } public FileQueue(int concurrentWrites, FileCommitCallback callback) { if (concurrentWrites < 1) throw new ArgumentOutOfRangeException("concurrentWrites"); - if (bufferSize < 1) throw new ArgumentOutOfRangeException("bufferSize"); - if (callback == null) throw new ArgumentNullException("callback"); + if (bufferSize < 1) + throw new ArgumentOutOfRangeException("bufferSize"); syncRoot = new object(); @@ -139,7 +137,7 @@ namespace Server { if (active[slot] != chunk) throw new ArgumentException(); - bufferPool.ReleaseBuffer(chunk.Buffer); + ArrayPool.Shared.Return(chunk.Buffer); if (pending.Count > 0) { @@ -172,7 +170,8 @@ namespace Server while (size > 0) { - if (buffered.buffer == null) buffered.buffer = bufferPool.AcquireBuffer(); + if (buffered.buffer == null) + buffered.buffer = ArrayPool.Shared.Rent(bufferSize); byte[] page = buffered.buffer; // buffer page int pageSpace = page.Length - buffered.length; // available bytes in page @@ -229,4 +228,4 @@ namespace Server public int length; } } -} \ No newline at end of file +} diff --git a/Server/Persistence/ParallelSaveStrategy.cs b/Projects/Server/Persistence/ParallelSaveStrategy.cs similarity index 87% rename from Server/Persistence/ParallelSaveStrategy.cs rename to Projects/Server/Persistence/ParallelSaveStrategy.cs index 02132c602..0e47fd454 100644 --- a/Server/Persistence/ParallelSaveStrategy.cs +++ b/Projects/Server/Persistence/ParallelSaveStrategy.cs @@ -38,7 +38,6 @@ namespace Server private SequentialFileWriter itemData, itemIndex; - private SaveMetrics metrics; private SequentialFileWriter mobileData, mobileIndex; private int processorCount; @@ -57,10 +56,8 @@ namespace Server return processorCount - 1; } - public override void Save(SaveMetrics metrics, bool permitBackgroundWrite) + public override void Save(bool permitBackgroundWrite) { - this.metrics = metrics; - OpenFiles(); consumers = new Consumer[GetThreadCount()]; @@ -121,14 +118,14 @@ namespace Server private void OpenFiles() { - itemData = new SequentialFileWriter(World.ItemDataPath, metrics); - itemIndex = new SequentialFileWriter(World.ItemIndexPath, metrics); + itemData = new SequentialFileWriter(World.ItemDataPath); + itemIndex = new SequentialFileWriter(World.ItemIndexPath); - mobileData = new SequentialFileWriter(World.MobileDataPath, metrics); - mobileIndex = new SequentialFileWriter(World.MobileIndexPath, metrics); + mobileData = new SequentialFileWriter(World.MobileDataPath); + mobileIndex = new SequentialFileWriter(World.MobileIndexPath); - guildData = new SequentialFileWriter(World.GuildDataPath, metrics); - guildIndex = new SequentialFileWriter(World.GuildIndexPath, metrics); + guildData = new SequentialFileWriter(World.GuildDataPath); + guildIndex = new SequentialFileWriter(World.GuildIndexPath); WriteCount(itemIndex, World.Items.Count); WriteCount(mobileIndex, World.Mobiles.Count); @@ -176,9 +173,7 @@ namespace Server private void Save(Item item, BinaryMemoryWriter writer) { - int length = writer.CommitTo(itemData, itemIndex, item.m_TypeRef, item.Serial); - - metrics?.OnItemSaved(length); + writer.CommitTo(itemData, itemIndex, item.m_TypeRef, item.Serial); if (item.Decays && item.Parent == null && item.Map != Map.Internal && DateTime.UtcNow > item.LastMoved + item.DecayTime) _decayQueue.Enqueue(item); @@ -186,16 +181,12 @@ namespace Server private void Save(Mobile mob, BinaryMemoryWriter writer) { - int length = writer.CommitTo(mobileData, mobileIndex, mob.m_TypeRef, mob.Serial); - - metrics?.OnMobileSaved(length); + writer.CommitTo(mobileData, mobileIndex, mob.m_TypeRef, mob.Serial); } private void Save(BaseGuild guild, BinaryMemoryWriter writer) { - int length = writer.CommitTo(guildData, guildIndex, 0, guild.Id); - - metrics?.OnGuildSaved(length); + writer.CommitTo(guildData, guildIndex, 0, guild.Id); } private bool Enqueue(ISerializable value) diff --git a/Server/Persistence/Persistence.cs b/Projects/Server/Persistence/Persistence.cs similarity index 100% rename from Server/Persistence/Persistence.cs rename to Projects/Server/Persistence/Persistence.cs diff --git a/Server/Persistence/QueuedMemoryWriter.cs b/Projects/Server/Persistence/QueuedMemoryWriter.cs similarity index 100% rename from Server/Persistence/QueuedMemoryWriter.cs rename to Projects/Server/Persistence/QueuedMemoryWriter.cs diff --git a/Server/Persistence/SaveStrategy.cs b/Projects/Server/Persistence/SaveStrategy.cs similarity index 91% rename from Server/Persistence/SaveStrategy.cs rename to Projects/Server/Persistence/SaveStrategy.cs index 9da97f2e5..dbf7f6938 100644 --- a/Server/Persistence/SaveStrategy.cs +++ b/Projects/Server/Persistence/SaveStrategy.cs @@ -40,7 +40,7 @@ namespace Server return new StandardSaveStrategy(); } - public abstract void Save(SaveMetrics metrics, bool permitBackgroundWrite); + public abstract void Save(bool permitBackgroundWrite); public abstract void ProcessDecay(); } diff --git a/Server/Persistence/SequentialFileWriter.cs b/Projects/Server/Persistence/SequentialFileWriter.cs similarity index 89% rename from Server/Persistence/SequentialFileWriter.cs rename to Projects/Server/Persistence/SequentialFileWriter.cs index be4b569e9..24af4c618 100644 --- a/Server/Persistence/SequentialFileWriter.cs +++ b/Projects/Server/Persistence/SequentialFileWriter.cs @@ -28,16 +28,12 @@ namespace Server private FileQueue fileQueue; private FileStream fileStream; - private SaveMetrics metrics; - private AsyncCallback writeCallback; - public SequentialFileWriter(string path, SaveMetrics metrics) + public SequentialFileWriter(string path) { if (path == null) throw new ArgumentNullException("path"); - this.metrics = metrics; - fileStream = FileOperations.OpenSequentialStream(path, FileMode.Create, FileAccess.Write, FileShare.None); fileQueue = new FileQueue( @@ -66,8 +62,6 @@ namespace Server { fileStream.Write(chunk.Buffer, chunk.Offset, chunk.Size); - metrics?.OnFileWritten(chunk.Size); - chunk.Commit(); } else @@ -84,8 +78,6 @@ namespace Server fileStream.EndWrite(asyncResult); - metrics?.OnFileWritten(chunk.Size); - chunk.Commit(); } diff --git a/Server/Persistence/StandardSaveStrategy.cs b/Projects/Server/Persistence/StandardSaveStrategy.cs similarity index 87% rename from Server/Persistence/StandardSaveStrategy.cs rename to Projects/Server/Persistence/StandardSaveStrategy.cs index 0894434a7..14df9b994 100644 --- a/Server/Persistence/StandardSaveStrategy.cs +++ b/Projects/Server/Persistence/StandardSaveStrategy.cs @@ -47,20 +47,20 @@ namespace Server protected bool UseSequentialWriters => SaveType == SaveOption.Normal || !PermitBackgroundWrite; - public override void Save(SaveMetrics metrics, bool permitBackgroundWrite) + public override void Save(bool permitBackgroundWrite) { PermitBackgroundWrite = permitBackgroundWrite; - SaveMobiles(metrics); - SaveItems(metrics); - SaveGuilds(metrics); + SaveMobiles(); + SaveItems(); + SaveGuilds(); if (permitBackgroundWrite && UseSequentialWriters ) //If we're permitted to write in the background, but we don't anyways, then notify. World.NotifyDiskWriteComplete(); } - protected void SaveMobiles(SaveMetrics metrics) + protected void SaveMobiles() { Dictionary mobiles = World.Mobiles; @@ -92,8 +92,6 @@ namespace Server m.Serialize(bin); - metrics?.OnMobileSaved((int)(bin.Position - start)); - idx.Write((int)(bin.Position - start)); m.FreeCache(); @@ -109,7 +107,7 @@ namespace Server bin.Close(); } - protected void SaveItems(SaveMetrics metrics) + protected void SaveItems() { Dictionary items = World.Items; @@ -147,8 +145,6 @@ namespace Server item.Serialize(bin); - metrics?.OnItemSaved((int)(bin.Position - start)); - idx.Write((int)(bin.Position - start)); item.FreeCache(); @@ -163,7 +159,7 @@ namespace Server bin.Close(); } - protected void SaveGuilds(SaveMetrics metrics) + protected void SaveGuilds() { GenericWriter idx; GenericWriter bin; @@ -190,8 +186,6 @@ namespace Server guild.Serialize(bin); - metrics?.OnGuildSaved((int)(bin.Position - start)); - idx.Write((int)(bin.Position - start)); } diff --git a/Server/Point3DList.cs b/Projects/Server/Point3DList.cs similarity index 100% rename from Server/Point3DList.cs rename to Projects/Server/Point3DList.cs diff --git a/Server/Poison.cs b/Projects/Server/Poison.cs similarity index 100% rename from Server/Poison.cs rename to Projects/Server/Poison.cs diff --git a/Server/Prompt.cs b/Projects/Server/Prompt.cs similarity index 100% rename from Server/Prompt.cs rename to Projects/Server/Prompt.cs diff --git a/Projects/Server/Properties/PublishProfiles/Linux-SelfContained.pubxml b/Projects/Server/Properties/PublishProfiles/Linux-SelfContained.pubxml new file mode 100644 index 000000000..52201225c --- /dev/null +++ b/Projects/Server/Properties/PublishProfiles/Linux-SelfContained.pubxml @@ -0,0 +1,16 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../ + linux-x64 + true + <_IsPortable>false + + diff --git a/Projects/Server/Properties/PublishProfiles/MacOSX-SelfContained.pubxml b/Projects/Server/Properties/PublishProfiles/MacOSX-SelfContained.pubxml new file mode 100644 index 000000000..dbafc0569 --- /dev/null +++ b/Projects/Server/Properties/PublishProfiles/MacOSX-SelfContained.pubxml @@ -0,0 +1,16 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../ + osx-x64 + true + <_IsPortable>false + + diff --git a/Projects/Server/Properties/PublishProfiles/Unix-Portable.pubxml b/Projects/Server/Properties/PublishProfiles/Unix-Portable.pubxml new file mode 100644 index 000000000..06a48d905 --- /dev/null +++ b/Projects/Server/Properties/PublishProfiles/Unix-Portable.pubxml @@ -0,0 +1,16 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../ + linux-x64 + false + <_IsPortable>true + + diff --git a/Projects/Server/Properties/PublishProfiles/Windows.pubxml b/Projects/Server/Properties/PublishProfiles/Windows.pubxml new file mode 100644 index 000000000..c74181459 --- /dev/null +++ b/Projects/Server/Properties/PublishProfiles/Windows.pubxml @@ -0,0 +1,16 @@ + + + + + FileSystem + Release + Any CPU + netcoreapp3.0 + ../ + win-x64 + false + <_IsPortable>true + + diff --git a/Server/QuestArrow.cs b/Projects/Server/QuestArrow.cs similarity index 100% rename from Server/QuestArrow.cs rename to Projects/Server/QuestArrow.cs diff --git a/Server/Race.cs b/Projects/Server/Race.cs similarity index 100% rename from Server/Race.cs rename to Projects/Server/Race.cs diff --git a/Server/Random.cs b/Projects/Server/Random.cs similarity index 100% rename from Server/Random.cs rename to Projects/Server/Random.cs diff --git a/Server/Region.cs b/Projects/Server/Region.cs similarity index 100% rename from Server/Region.cs rename to Projects/Server/Region.cs diff --git a/Projects/Server/ScriptCompiler.cs b/Projects/Server/ScriptCompiler.cs new file mode 100644 index 000000000..c17ec1822 --- /dev/null +++ b/Projects/Server/ScriptCompiler.cs @@ -0,0 +1,215 @@ +/*************************************************************************** + * ScriptCompiler.cs + * ------------------- + * begin : May 1, 2002 + * copyright : (C) The RunUO Software Team + * email : info@runuo.com + * + * $Id$ + * + ***************************************************************************/ + +/*************************************************************************** + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + ***************************************************************************/ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Linq; +#if NETCORE +using System.Runtime.Loader; +#endif + +namespace Server +{ + public static class ScriptCompiler + { + private static Dictionary m_TypeCaches = new Dictionary(); + private static TypeCache m_NullCache; + public static Assembly[] Assemblies { get; set; } + + public static string ScriptsPath = EnsureDirectory("Assemblies"); + + public static bool LoadScripts(string path = null) + { + string[] files = Directory.GetFiles(path ?? ScriptsPath, "*.dll"); + + List assemblies = new List(); + + AssemblyName[] names = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); + + int loaded = 0; + + for (int i = 0; i < files.Length; i++) + { +#if NETCORE + assemblies.Add(AssemblyLoadContext.Default.LoadFromAssemblyPath(files[i])); + loaded++; +#else + Assemblies[i] = Assembly.LoadFrom(files[i]); +#endif + } + + Assemblies = assemblies.ToArray(); + + return loaded > 0; + } + + public static void Invoke(string method) + { + List invoke = new List(); + + for (int a = 0; a < Assemblies.Length; ++a) + { + Type[] types = Assemblies[a].GetTypes(); + + for (int i = 0; i < types.Length; ++i) + { + MethodInfo m = types[i].GetMethod(method, BindingFlags.Static | BindingFlags.Public); + + if (m != null) + invoke.Add(m); + } + } + + invoke.Sort(new CallPriorityComparer()); + + for (int i = 0; i < invoke.Count; ++i) + invoke[i].Invoke(null, null); + } + + public static TypeCache GetTypeCache(Assembly asm) + { + if (asm == null) + { + return m_NullCache ?? (m_NullCache = new TypeCache(null)); + } + if (!m_TypeCaches.TryGetValue(asm, out TypeCache c)) + m_TypeCaches[asm] = c = new TypeCache(asm); + + return c; + } + + public static Type FindTypeByFullName(string fullName) + { + return FindTypeByFullName(fullName, true); + } + + public static Type FindTypeByFullName(string fullName, bool ignoreCase) + { + Type type = null; + + for (int i = 0; type == null && i < Assemblies.Length; ++i) + type = GetTypeCache(Assemblies[i]).GetTypeByFullName(fullName, ignoreCase); + + return type ?? GetTypeCache(Core.Assembly).GetTypeByFullName(fullName, ignoreCase); + } + + public static Type FindTypeByName(string name) + { + return FindTypeByName(name, true); + } + + public static Type FindTypeByName(string name, bool ignoreCase) + { + Type type = null; + + for (int i = 0; type == null && i < Assemblies.Length; ++i) + type = GetTypeCache(Assemblies[i]).GetTypeByName(name, ignoreCase); + + return type ?? GetTypeCache(Core.Assembly).GetTypeByName(name, ignoreCase); + } + + public static string EnsureDirectory(string dir) + { + string path = Path.Combine(Core.BaseDirectory, dir); + + if (!Directory.Exists(path)) + Directory.CreateDirectory(path); + + return path; + } + } + + public class TypeCache + { + public TypeCache(Assembly asm) + { + Types = asm == null ? Type.EmptyTypes : asm.GetTypes(); + + Names = new TypeTable(Types.Length); + FullNames = new TypeTable(Types.Length); + + Type typeofTypeAliasAttribute = typeof(TypeAliasAttribute); + + for (int i = 0; i < Types.Length; ++i) + { + Type type = Types[i]; + + Names.Add(type.Name, type); + FullNames.Add(type.FullName, type); + + if (type.IsDefined(typeofTypeAliasAttribute, false)) + { + object[] attrs = type.GetCustomAttributes(typeofTypeAliasAttribute, false); + + if (attrs.Length > 0 && attrs[0] is TypeAliasAttribute attr) + for (int j = 0; j < attr.Aliases.Length; ++j) + FullNames.Add(attr.Aliases[j], type); + } + } + } + + public Type[] Types{ get; } + + public TypeTable Names{ get; } + + public TypeTable FullNames{ get; } + + public Type GetTypeByName(string name, bool ignoreCase) + { + return Names.Get(name, ignoreCase); + } + + public Type GetTypeByFullName(string fullName, bool ignoreCase) + { + return FullNames.Get(fullName, ignoreCase); + } + } + + public class TypeTable + { + private Dictionary m_Sensitive, m_Insensitive; + + public TypeTable(int capacity) + { + m_Sensitive = new Dictionary(capacity); + m_Insensitive = new Dictionary(capacity, StringComparer.OrdinalIgnoreCase); + } + + public void Add(string key, Type type) + { + m_Sensitive[key] = type; + m_Insensitive[key] = type; + } + + public Type Get(string key, bool ignoreCase) + { + Type t; + + if (ignoreCase) + m_Insensitive.TryGetValue(key, out t); + else + m_Sensitive.TryGetValue(key, out t); + + return t; + } + } +} diff --git a/Server/Sector.cs b/Projects/Server/Sector.cs similarity index 100% rename from Server/Sector.cs rename to Projects/Server/Sector.cs diff --git a/Server/SecureTrade.cs b/Projects/Server/SecureTrade.cs similarity index 100% rename from Server/SecureTrade.cs rename to Projects/Server/SecureTrade.cs diff --git a/Server/Serial.cs b/Projects/Server/Serial.cs similarity index 100% rename from Server/Serial.cs rename to Projects/Server/Serial.cs diff --git a/Server/Serialization.cs b/Projects/Server/Serialization.cs similarity index 100% rename from Server/Serialization.cs rename to Projects/Server/Serialization.cs diff --git a/Projects/Server/Server.csproj b/Projects/Server/Server.csproj new file mode 100644 index 000000000..108e70ce0 --- /dev/null +++ b/Projects/Server/Server.csproj @@ -0,0 +1,69 @@ + + + + Exe + runuo.ico + + + ModernUO + + 3.0.0 + Kamron Batman + ModernUO + ModernUO + 2019 + netcoreapp3.0 + true + + + NETCORE;NETSTANDARD + + + TRACE;DEBUG + true + false + ..\..\Distribution\ + ..\..\Distribution + + true + x64 + + + true + ..\..\Distribution\ + ..\..\Distribution + + true + x64 + ..\..\Distribution + + + + + %(Filename)%(Extension) + PreserveNewest + + + %(Filename)%(Extension) + PreserveNewest + + + %(Filename)%(Extension) + PreserveNewest + + + %(Filename)%(Extension) + PreserveNewest + + + %(Filename)%(Extension) + PreserveNewest + + + + + Assemblies\System.IO.Pipelines.dll + false + + + diff --git a/Server/Skills.cs b/Projects/Server/Skills.cs similarity index 100% rename from Server/Skills.cs rename to Projects/Server/Skills.cs diff --git a/Server/Targeting/LandTarget.cs b/Projects/Server/Targeting/LandTarget.cs similarity index 100% rename from Server/Targeting/LandTarget.cs rename to Projects/Server/Targeting/LandTarget.cs diff --git a/Server/Targeting/MultiTarget.cs b/Projects/Server/Targeting/MultiTarget.cs similarity index 100% rename from Server/Targeting/MultiTarget.cs rename to Projects/Server/Targeting/MultiTarget.cs diff --git a/Server/Targeting/StaticTarget.cs b/Projects/Server/Targeting/StaticTarget.cs similarity index 100% rename from Server/Targeting/StaticTarget.cs rename to Projects/Server/Targeting/StaticTarget.cs diff --git a/Server/Targeting/Target.cs b/Projects/Server/Targeting/Target.cs similarity index 100% rename from Server/Targeting/Target.cs rename to Projects/Server/Targeting/Target.cs diff --git a/Server/Targeting/TargetCancelType.cs b/Projects/Server/Targeting/TargetCancelType.cs similarity index 100% rename from Server/Targeting/TargetCancelType.cs rename to Projects/Server/Targeting/TargetCancelType.cs diff --git a/Server/Targeting/TargetFlags.cs b/Projects/Server/Targeting/TargetFlags.cs similarity index 100% rename from Server/Targeting/TargetFlags.cs rename to Projects/Server/Targeting/TargetFlags.cs diff --git a/Server/TileData.cs b/Projects/Server/TileData.cs similarity index 100% rename from Server/TileData.cs rename to Projects/Server/TileData.cs diff --git a/Server/TileList.cs b/Projects/Server/TileList.cs similarity index 100% rename from Server/TileList.cs rename to Projects/Server/TileList.cs diff --git a/Server/TileMatrix.cs b/Projects/Server/TileMatrix.cs similarity index 100% rename from Server/TileMatrix.cs rename to Projects/Server/TileMatrix.cs diff --git a/Server/TileMatrixPatch.cs b/Projects/Server/TileMatrixPatch.cs similarity index 100% rename from Server/TileMatrixPatch.cs rename to Projects/Server/TileMatrixPatch.cs diff --git a/Server/Timer.cs b/Projects/Server/Timer.cs similarity index 91% rename from Server/Timer.cs rename to Projects/Server/Timer.cs index 4c65848b9..510d2200c 100644 --- a/Server/Timer.cs +++ b/Projects/Server/Timer.cs @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Threading; +using System.Threading.Tasks; using Server.Diagnostics; namespace Server @@ -587,5 +588,31 @@ namespace Server } #endregion + + private class DelayTaskTimer : Timer + { + private TaskCompletionSource m_TaskCompleter; + + public Task Task { get { return m_TaskCompleter.Task; } } + + public DelayTaskTimer(TimeSpan delay) : base(delay) + { + m_TaskCompleter = new TaskCompletionSource(); + } + + protected override void OnTick() + { + m_TaskCompleter.SetResult(this); + } + } + + public static Task Pause(int ms) => Pause(TimeSpan.FromMilliseconds(ms)); + + public static Task Pause(TimeSpan ms) + { + DelayTaskTimer t = new DelayTaskTimer(ms); + t.Start(); + return t.Task; + } } } diff --git a/Server/Utility.cs b/Projects/Server/Utility.cs similarity index 95% rename from Server/Utility.cs rename to Projects/Server/Utility.cs index dd8420927..7e1abf6bf 100644 --- a/Server/Utility.cs +++ b/Projects/Server/Utility.cs @@ -968,16 +968,12 @@ namespace Server public static int GetAddressValue(IPAddress address) { -#pragma warning disable 618 - return (int)address.Address; -#pragma warning restore 618 + return BitConverter.ToInt32(address.GetAddressBytes(), 0); } public static long GetLongAddressValue(IPAddress address) { -#pragma warning disable 618 - return address.Address; -#pragma warning restore 618 + return BitConverter.ToInt64(address.GetAddressBytes(), 0); } #endregion diff --git a/Server/VirtueInfo.cs b/Projects/Server/VirtueInfo.cs similarity index 100% rename from Server/VirtueInfo.cs rename to Projects/Server/VirtueInfo.cs diff --git a/Server/World.cs b/Projects/Server/World.cs similarity index 95% rename from Server/World.cs rename to Projects/Server/World.cs index 7dff0cfdd..dafd0cbe6 100644 --- a/Server/World.cs +++ b/Projects/Server/World.cs @@ -107,8 +107,6 @@ namespace Server list[i].Send(p); p.Release(); - - NetState.FlushAll(); } public static void Broadcast(int hue, bool ascii, string format, params object[] args) @@ -622,7 +620,6 @@ namespace Server ++m_Saves; - NetState.FlushAll(); NetState.Pause(); WaitForWriteCompletion(); //Blocks Save until current disk flush is done. @@ -649,9 +646,7 @@ namespace Server Directory.CreateDirectory("Saves/Guilds/"); - /*using ( SaveMetrics metrics = new SaveMetrics() ) {*/ - strategy.Save(null, permitBackgroundWrite); - /*}*/ + strategy.Save(permitBackgroundWrite); try { @@ -818,4 +813,4 @@ namespace Server public int Length{ get; } } } -} \ No newline at end of file +} diff --git a/Server/app.config b/Projects/Server/app.config similarity index 100% rename from Server/app.config rename to Projects/Server/app.config diff --git a/Projects/Server/packages.config b/Projects/Server/packages.config new file mode 100644 index 000000000..3299dfcf0 --- /dev/null +++ b/Projects/Server/packages.config @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Server/runuo.ico b/Projects/Server/runuo.ico similarity index 100% rename from Server/runuo.ico rename to Projects/Server/runuo.ico diff --git a/README.md b/README.md index ec71f975e..103635f38 100644 --- a/README.md +++ b/README.md @@ -8,26 +8,30 @@ ModernUO - See [Goals](./GOALS.md) ### Requirements -- .NET Framework 4.7 or Mono 5.10+ +- .NET Core 3.0 (Preview 7) or newer - zlib (Linux only) -- [DotNetCompilerPlatform](https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform) v2.0+ (Windows Only) -### Building using Visual Studio (Recommended) -- Build `Server` project - - Building with Visual Studio for Windows will install `DotNetCompilerPlatform` automatically. +### Building with Visual Studio 2019 +- Publish `Server` project +- Build `Scripts` project -### Building for Windows (Without Visual Studio) -`C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc /optimize /unsafe /t:exe /out:RunUO.exe /win32icon:Server\runuo.ico /d:NEWTIMERS /recurse:Server\\*.cs` -- DotNetCompilerPlatform must be installed with the `csc.exe` file in the `roslyn` folder at the root of the repository. +### Building with .NET Core 3.0 SDK +`dotnet publish /p:PublishProfiles=` +- Windows x64: `Windows` +- Linux/MacOSX x64 w/ .NET Core 3 installed: `Unix-Portable` +- Linux x64 w/ .NET Core 3: `Linux-SelfContained` +- MacOSX x64 /wo .NET Core 3: `MacOSX-SelfContained` -### Building for Mac/Linux (Without Visual Studio) -`mcs -optimize+ -unsafe -t:exe -out:RunUO.exe -win32icon:Server/runuo.ico -nowarn:219,414 -d:NEWTIMERS -d:MONO -recurse:"Server/*".cs` +#### Running on Windows +- Follow the build instructions +- Run `Distribution\ModernUO.exe` or `dotnet ModernUO.dll` -### Running on Mac/Linux (MONO) -`mono RunUO.exe` +#### Running on MacOSX or Linux +- Follow the build instructions +- Run `Distribution\ModernUO` or `dotnet ModernUO.dll` + +#### Running on Linux +- Follow the build instructions +- Run `Distribution\ModernUO` or `dotnet ModernUO.dll` ### Troubleshooting / FAQ - -#### Scripts fail to compile on Windows -This is usually caused nuget packages not being installed. Install the required packages and rebuild the Server project. -Note: The required nuget packages can be set to automatically restore on build with this [setting](https://docs.microsoft.com/en-us/nuget/consume-packages/media/restore-01-autorestoreoptions.png) diff --git a/RunUO.sln b/RunUO.sln deleted file mode 100644 index 036ea1603..000000000 --- a/RunUO.sln +++ /dev/null @@ -1,257 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{0B33CEEB-88E1-49A6-8D7D-AF6A5A357087}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scripts", "Scripts\Scripts.csproj", "{DAE872E6-6899-427C-A75D-AD52526EBCDA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{1B394627-C6BF-447D-8CBD-4A3B5262C5B4}" - ProjectSection(SolutionItems) = preProject - Data\Assemblies.cfg = Data\Assemblies.cfg - Data\bodyTable.cfg = Data\bodyTable.cfg - Data\Common.map = Data\Common.map - Data\containers.cfg = Data\containers.cfg - Data\items.cfg = Data\items.cfg - Data\MLQuests.cfg = Data\MLQuests.cfg - Data\mobiles.cfg = Data\mobiles.cfg - Data\models.txt = Data\models.txt - Data\names.xml = Data\names.xml - Data\objects.xml = Data\objects.xml - Data\pageresponse.cfg = Data\pageresponse.cfg - Data\Regions.xml = Data\Regions.xml - Data\shrink.cfg = Data\shrink.cfg - Data\signs.cfg = Data\signs.cfg - Data\SpawnDefinitions.xml = Data\SpawnDefinitions.xml - Data\treasure.cfg = Data\treasure.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Binary", "Binary", "{0BC3F1F5-95F7-4048-8BA1-71F2430104D8}" - ProjectSection(SolutionItems) = preProject - Data\Binary\Bounds.bin = Data\Binary\Bounds.bin - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bulk Orders", "Bulk Orders", "{3CA15B59-8702-42FE-9980-54F8335CE149}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Blacksmith", "Blacksmith", "{D990829A-479F-4377-B0C2-FD7C795C4D28}" - ProjectSection(SolutionItems) = preProject - Data\Bulk Orders\Blacksmith\armor.cfg = Data\Bulk Orders\Blacksmith\armor.cfg - Data\Bulk Orders\Blacksmith\largeaxes.cfg = Data\Bulk Orders\Blacksmith\largeaxes.cfg - Data\Bulk Orders\Blacksmith\largechain.cfg = Data\Bulk Orders\Blacksmith\largechain.cfg - Data\Bulk Orders\Blacksmith\largefencing.cfg = Data\Bulk Orders\Blacksmith\largefencing.cfg - Data\Bulk Orders\Blacksmith\largemaces.cfg = Data\Bulk Orders\Blacksmith\largemaces.cfg - Data\Bulk Orders\Blacksmith\largeplate.cfg = Data\Bulk Orders\Blacksmith\largeplate.cfg - Data\Bulk Orders\Blacksmith\largepolearms.cfg = Data\Bulk Orders\Blacksmith\largepolearms.cfg - Data\Bulk Orders\Blacksmith\largering.cfg = Data\Bulk Orders\Blacksmith\largering.cfg - Data\Bulk Orders\Blacksmith\largeswords.cfg = Data\Bulk Orders\Blacksmith\largeswords.cfg - Data\Bulk Orders\Blacksmith\weapons.cfg = Data\Bulk Orders\Blacksmith\weapons.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tailoring", "Tailoring", "{2C58085D-5E30-4FB4-A71C-FD0328C60558}" - ProjectSection(SolutionItems) = preProject - Data\Bulk Orders\Tailoring\boneset.cfg = Data\Bulk Orders\Tailoring\boneset.cfg - Data\Bulk Orders\Tailoring\cloth.cfg = Data\Bulk Orders\Tailoring\cloth.cfg - Data\Bulk Orders\Tailoring\farmer.cfg = Data\Bulk Orders\Tailoring\farmer.cfg - Data\Bulk Orders\Tailoring\femaleleatherset.cfg = Data\Bulk Orders\Tailoring\femaleleatherset.cfg - Data\Bulk Orders\Tailoring\fishergirl.cfg = Data\Bulk Orders\Tailoring\fishergirl.cfg - Data\Bulk Orders\Tailoring\gypsy.cfg = Data\Bulk Orders\Tailoring\gypsy.cfg - Data\Bulk Orders\Tailoring\hatset.cfg = Data\Bulk Orders\Tailoring\hatset.cfg - Data\Bulk Orders\Tailoring\jester.cfg = Data\Bulk Orders\Tailoring\jester.cfg - Data\Bulk Orders\Tailoring\lady.cfg = Data\Bulk Orders\Tailoring\lady.cfg - Data\Bulk Orders\Tailoring\leather.cfg = Data\Bulk Orders\Tailoring\leather.cfg - Data\Bulk Orders\Tailoring\maleleatherset.cfg = Data\Bulk Orders\Tailoring\maleleatherset.cfg - Data\Bulk Orders\Tailoring\pirate.cfg = Data\Bulk Orders\Tailoring\pirate.cfg - Data\Bulk Orders\Tailoring\shoeset.cfg = Data\Bulk Orders\Tailoring\shoeset.cfg - Data\Bulk Orders\Tailoring\studdedset.cfg = Data\Bulk Orders\Tailoring\studdedset.cfg - Data\Bulk Orders\Tailoring\towncrier.cfg = Data\Bulk Orders\Tailoring\towncrier.cfg - Data\Bulk Orders\Tailoring\wizard.cfg = Data\Bulk Orders\Tailoring\wizard.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Components", "Components", "{4883A0CC-9D0C-4045-AC24-2A2FEAF09B88}" - ProjectSection(SolutionItems) = preProject - Data\Components\doors.txt = Data\Components\doors.txt - Data\Components\floors.txt = Data\Components\floors.txt - Data\Components\misc.txt = Data\Components\misc.txt - Data\Components\roof.txt = Data\Components\roof.txt - Data\Components\stairs.txt = Data\Components\stairs.txt - Data\Components\suppinfo.txt = Data\Components\suppinfo.txt - Data\Components\teleprts.txt = Data\Components\teleprts.txt - Data\Components\walls.txt = Data\Components\walls.txt - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Decoration", "Decoration", "{F1E91339-C2F1-40B7-80D0-6289228168D0}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Britannia", "Britannia", "{D4052FE1-A0C6-486C-B972-348945894772}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Britannia\_covetous.cfg = Data\Decoration\Britannia\_covetous.cfg - Data\Decoration\Britannia\_deceit.cfg = Data\Decoration\Britannia\_deceit.cfg - Data\Decoration\Britannia\_despise.cfg = Data\Decoration\Britannia\_despise.cfg - Data\Decoration\Britannia\_destard.cfg = Data\Decoration\Britannia\_destard.cfg - Data\Decoration\Britannia\_fire.cfg = Data\Decoration\Britannia\_fire.cfg - Data\Decoration\Britannia\_hedgemaze.cfg = Data\Decoration\Britannia\_hedgemaze.cfg - Data\Decoration\Britannia\_hythloth.cfg = Data\Decoration\Britannia\_hythloth.cfg - Data\Decoration\Britannia\_ice.cfg = Data\Decoration\Britannia\_ice.cfg - Data\Decoration\Britannia\_orccave.cfg = Data\Decoration\Britannia\_orccave.cfg - Data\Decoration\Britannia\_shame.cfg = Data\Decoration\Britannia\_shame.cfg - Data\Decoration\Britannia\_terathankeep.cfg = Data\Decoration\Britannia\_terathankeep.cfg - Data\Decoration\Britannia\_wrong.cfg = Data\Decoration\Britannia\_wrong.cfg - Data\Decoration\Britannia\britain.cfg = Data\Decoration\Britannia\britain.cfg - Data\Decoration\Britannia\bucs.cfg = Data\Decoration\Britannia\bucs.cfg - Data\Decoration\Britannia\bucsportal.cfg = Data\Decoration\Britannia\bucsportal.cfg - Data\Decoration\Britannia\cove.cfg = Data\Decoration\Britannia\cove.cfg - Data\Decoration\Britannia\delucia.cfg = Data\Decoration\Britannia\delucia.cfg - Data\Decoration\Britannia\despise.cfg = Data\Decoration\Britannia\despise.cfg - Data\Decoration\Britannia\destard.cfg = Data\Decoration\Britannia\destard.cfg - Data\Decoration\Britannia\hythloth.cfg = Data\Decoration\Britannia\hythloth.cfg - Data\Decoration\Britannia\jhelom.cfg = Data\Decoration\Britannia\jhelom.cfg - Data\Decoration\Britannia\magincia.cfg = Data\Decoration\Britannia\magincia.cfg - Data\Decoration\Britannia\minoc.cfg = Data\Decoration\Britannia\minoc.cfg - Data\Decoration\Britannia\moonglow.cfg = Data\Decoration\Britannia\moonglow.cfg - Data\Decoration\Britannia\nujelm.cfg = Data\Decoration\Britannia\nujelm.cfg - Data\Decoration\Britannia\papua.cfg = Data\Decoration\Britannia\papua.cfg - Data\Decoration\Britannia\patches.cfg = Data\Decoration\Britannia\patches.cfg - Data\Decoration\Britannia\serpent pillars.cfg = Data\Decoration\Britannia\serpent pillars.cfg - Data\Decoration\Britannia\serpentshold.cfg = Data\Decoration\Britannia\serpentshold.cfg - Data\Decoration\Britannia\shame.cfg = Data\Decoration\Britannia\shame.cfg - Data\Decoration\Britannia\shrines.cfg = Data\Decoration\Britannia\shrines.cfg - Data\Decoration\Britannia\skara.cfg = Data\Decoration\Britannia\skara.cfg - Data\Decoration\Britannia\solen matriarch quest.cfg = Data\Decoration\Britannia\solen matriarch quest.cfg - Data\Decoration\Britannia\study of solen quest.cfg = Data\Decoration\Britannia\study of solen quest.cfg - Data\Decoration\Britannia\trinsic.cfg = Data\Decoration\Britannia\trinsic.cfg - Data\Decoration\Britannia\vesper.cfg = Data\Decoration\Britannia\vesper.cfg - Data\Decoration\Britannia\wind.cfg = Data\Decoration\Britannia\wind.cfg - Data\Decoration\Britannia\witch apprentice quest.cfg = Data\Decoration\Britannia\witch apprentice quest.cfg - Data\Decoration\Britannia\yew.cfg = Data\Decoration\Britannia\yew.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Felucca", "Felucca", "{C5F8ACCC-B741-4398-8F1B-9425F7F4659A}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Felucca\_champion teleporters.cfg = Data\Decoration\Felucca\_champion teleporters.cfg - Data\Decoration\Felucca\_star room.cfg = Data\Decoration\Felucca\_star room.cfg - Data\Decoration\Felucca\ambitious solen queen quest.cfg = Data\Decoration\Felucca\ambitious solen queen quest.cfg - Data\Decoration\Felucca\khaldun entrance.cfg = Data\Decoration\Felucca\khaldun entrance.cfg - Data\Decoration\Felucca\khaldun.cfg = Data\Decoration\Felucca\khaldun.cfg - Data\Decoration\Felucca\ocllo.cfg = Data\Decoration\Felucca\ocllo.cfg - Data\Decoration\Felucca\solen matriarch quest.cfg = Data\Decoration\Felucca\solen matriarch quest.cfg - Data\Decoration\Felucca\yew.cfg = Data\Decoration\Felucca\yew.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Ilshenar", "Ilshenar", "{1AE5E70F-6607-4C60-82BF-764F7BD89138}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Ilshenar\_blood.cfg = Data\Decoration\Ilshenar\_blood.cfg - Data\Decoration\Ilshenar\_central.cfg = Data\Decoration\Ilshenar\_central.cfg - Data\Decoration\Ilshenar\_exodus.cfg = Data\Decoration\Ilshenar\_exodus.cfg - Data\Decoration\Ilshenar\_gwenno.cfg = Data\Decoration\Ilshenar\_gwenno.cfg - Data\Decoration\Ilshenar\_ratcave.cfg = Data\Decoration\Ilshenar\_ratcave.cfg - Data\Decoration\Ilshenar\_regvolom.cfg = Data\Decoration\Ilshenar\_regvolom.cfg - Data\Decoration\Ilshenar\_serpentine.cfg = Data\Decoration\Ilshenar\_serpentine.cfg - Data\Decoration\Ilshenar\_sheepfarm.cfg = Data\Decoration\Ilshenar\_sheepfarm.cfg - Data\Decoration\Ilshenar\_sorcerers.cfg = Data\Decoration\Ilshenar\_sorcerers.cfg - Data\Decoration\Ilshenar\_terortskitas.cfg = Data\Decoration\Ilshenar\_terortskitas.cfg - Data\Decoration\Ilshenar\_twinoaks.cfg = Data\Decoration\Ilshenar\_twinoaks.cfg - Data\Decoration\Ilshenar\camp.cfg = Data\Decoration\Ilshenar\camp.cfg - Data\Decoration\Ilshenar\camp2.cfg = Data\Decoration\Ilshenar\camp2.cfg - Data\Decoration\Ilshenar\enslavedgargs.cfg = Data\Decoration\Ilshenar\enslavedgargs.cfg - Data\Decoration\Ilshenar\gargoylecity.cfg = Data\Decoration\Ilshenar\gargoylecity.cfg - Data\Decoration\Ilshenar\golemsandjukas.cfg = Data\Decoration\Ilshenar\golemsandjukas.cfg - Data\Decoration\Ilshenar\lakeshire.cfg = Data\Decoration\Ilshenar\lakeshire.cfg - Data\Decoration\Ilshenar\meercatacombs.cfg = Data\Decoration\Ilshenar\meercatacombs.cfg - Data\Decoration\Ilshenar\misc.cfg = Data\Decoration\Ilshenar\misc.cfg - Data\Decoration\Ilshenar\mistas.cfg = Data\Decoration\Ilshenar\mistas.cfg - Data\Decoration\Ilshenar\patches.cfg = Data\Decoration\Ilshenar\patches.cfg - Data\Decoration\Ilshenar\ratfortress.cfg = Data\Decoration\Ilshenar\ratfortress.cfg - Data\Decoration\Ilshenar\savagecamp.cfg = Data\Decoration\Ilshenar\savagecamp.cfg - Data\Decoration\Ilshenar\shrines.cfg = Data\Decoration\Ilshenar\shrines.cfg - Data\Decoration\Ilshenar\vinculuminn.cfg = Data\Decoration\Ilshenar\vinculuminn.cfg - Data\Decoration\Ilshenar\wispdungeon.cfg = Data\Decoration\Ilshenar\wispdungeon.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Malas", "Malas", "{BCB51DFB-3AD2-44C5-8531-51D43C34CF44}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Malas\_luna.cfg = Data\Decoration\Malas\_luna.cfg - Data\Decoration\Malas\_umbra.cfg = Data\Decoration\Malas\_umbra.cfg - Data\Decoration\Malas\dark tides quest.cfg = Data\Decoration\Malas\dark tides quest.cfg - Data\Decoration\Malas\doom.cfg = Data\Decoration\Malas\doom.cfg - Data\Decoration\Malas\emino's undertaking quest.cfg = Data\Decoration\Malas\emino's undertaking quest.cfg - Data\Decoration\Malas\haochi's trials quest.cfg = Data\Decoration\Malas\haochi's trials quest.cfg - Data\Decoration\Malas\luna.cfg = Data\Decoration\Malas\luna.cfg - Data\Decoration\Malas\markcontainers.cfg = Data\Decoration\Malas\markcontainers.cfg - Data\Decoration\Malas\summoning quest.cfg = Data\Decoration\Malas\summoning quest.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RuinedMaginciaFel", "RuinedMaginciaFel", "{8DD3A1F1-EBD8-4DC2-A7D7-0127929726E0}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\RuinedMaginciaFel\Mag-Fel.cfg = Data\Decoration\RuinedMaginciaFel\Mag-Fel.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RuinedMaginciaTram", "RuinedMaginciaTram", "{B018CA81-2D88-49DA-B362-2F6D84148B94}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\RuinedMaginciaTram\Mag-Tram.cfg = Data\Decoration\RuinedMaginciaTram\Mag-Tram.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tokuno", "Tokuno", "{A42F9968-E255-4960-9C4D-66180D828EB9}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Tokuno\terrible hatchlings quest.cfg = Data\Decoration\Tokuno\terrible hatchlings quest.cfg - Data\Decoration\Tokuno\tokuno.cfg = Data\Decoration\Tokuno\tokuno.cfg - Data\Decoration\Tokuno\treasures of tokuno.cfg = Data\Decoration\Tokuno\treasures of tokuno.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Trammel", "Trammel", "{452A8873-A7C2-4FD8-A940-8AFDEACB9702}" - ProjectSection(SolutionItems) = preProject - Data\Decoration\Trammel\_haven additions.cfg = Data\Decoration\Trammel\_haven additions.cfg - Data\Decoration\Trammel\_minoc camp.cfg = Data\Decoration\Trammel\_minoc camp.cfg - Data\Decoration\Trammel\ambitious solen queen quest.cfg = Data\Decoration\Trammel\ambitious solen queen quest.cfg - Data\Decoration\Trammel\collector quest.cfg = Data\Decoration\Trammel\collector quest.cfg - Data\Decoration\Trammel\haven.cfg = Data\Decoration\Trammel\haven.cfg - Data\Decoration\Trammel\magincia.cfg = Data\Decoration\Trammel\magincia.cfg - Data\Decoration\Trammel\solen matriarch quest.cfg = Data\Decoration\Trammel\solen matriarch quest.cfg - Data\Decoration\Trammel\uzeraan turmoil quest.cfg = Data\Decoration\Trammel\uzeraan turmoil quest.cfg - Data\Decoration\Trammel\yew.cfg = Data\Decoration\Trammel\yew.cfg - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Locations", "Locations", "{70B04D45-39DD-422D-B95F-99ED9FC3DAC1}" - ProjectSection(SolutionItems) = preProject - Data\Locations\felucca.xml = Data\Locations\felucca.xml - Data\Locations\ilshenar.xml = Data\Locations\ilshenar.xml - Data\Locations\malas.xml = Data\Locations\malas.xml - Data\Locations\tokuno.xml = Data\Locations\tokuno.xml - Data\Locations\trammel.xml = Data\Locations\trammel.xml - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0B33CEEB-88E1-49A6-8D7D-AF6A5A357087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0B33CEEB-88E1-49A6-8D7D-AF6A5A357087}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0B33CEEB-88E1-49A6-8D7D-AF6A5A357087}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0B33CEEB-88E1-49A6-8D7D-AF6A5A357087}.Release|Any CPU.Build.0 = Release|Any CPU - {DAE872E6-6899-427C-A75D-AD52526EBCDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAE872E6-6899-427C-A75D-AD52526EBCDA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAE872E6-6899-427C-A75D-AD52526EBCDA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAE872E6-6899-427C-A75D-AD52526EBCDA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {0BC3F1F5-95F7-4048-8BA1-71F2430104D8} = {1B394627-C6BF-447D-8CBD-4A3B5262C5B4} - {3CA15B59-8702-42FE-9980-54F8335CE149} = {1B394627-C6BF-447D-8CBD-4A3B5262C5B4} - {D990829A-479F-4377-B0C2-FD7C795C4D28} = {3CA15B59-8702-42FE-9980-54F8335CE149} - {2C58085D-5E30-4FB4-A71C-FD0328C60558} = {3CA15B59-8702-42FE-9980-54F8335CE149} - {4883A0CC-9D0C-4045-AC24-2A2FEAF09B88} = {1B394627-C6BF-447D-8CBD-4A3B5262C5B4} - {F1E91339-C2F1-40B7-80D0-6289228168D0} = {1B394627-C6BF-447D-8CBD-4A3B5262C5B4} - {D4052FE1-A0C6-486C-B972-348945894772} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {C5F8ACCC-B741-4398-8F1B-9425F7F4659A} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {1AE5E70F-6607-4C60-82BF-764F7BD89138} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {BCB51DFB-3AD2-44C5-8531-51D43C34CF44} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {8DD3A1F1-EBD8-4DC2-A7D7-0127929726E0} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {B018CA81-2D88-49DA-B362-2F6D84148B94} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {A42F9968-E255-4960-9C4D-66180D828EB9} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {452A8873-A7C2-4FD8-A940-8AFDEACB9702} = {F1E91339-C2F1-40B7-80D0-6289228168D0} - {70B04D45-39DD-422D-B95F-99ED9FC3DAC1} = {1B394627-C6BF-447D-8CBD-4A3B5262C5B4} - EndGlobalSection -EndGlobal diff --git a/RunUO.vshost.exe.manifest b/RunUO.vshost.exe.manifest deleted file mode 100644 index f96b1d6b3..000000000 --- a/RunUO.vshost.exe.manifest +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/Scripts/Engines/MyRunUO/DatabaseCommandQueue.cs b/Scripts/Engines/MyRunUO/DatabaseCommandQueue.cs deleted file mode 100644 index 22125e710..000000000 --- a/Scripts/Engines/MyRunUO/DatabaseCommandQueue.cs +++ /dev/null @@ -1,251 +0,0 @@ -using System; -using System.Collections; -using System.Data.Odbc; -using System.Threading; - -namespace Server.Engines.MyRunUO -{ - public class DatabaseCommandQueue - { - private string m_CompletionString; - private string m_ConnectionString; - private Queue m_Queue; - private ManualResetEvent m_Sync; - - public DatabaseCommandQueue(string completionString, string threadName) : this(Config.CompileConnectionString(), - completionString, threadName) - { - } - - public DatabaseCommandQueue(string connectionString, string completionString, string threadName) - { - m_CompletionString = completionString; - m_ConnectionString = connectionString; - - m_Queue = Queue.Synchronized(new Queue()); - - m_Queue.Enqueue(null); // signal connect - - /*m_Queue.Enqueue( "DELETE FROM myrunuo_characters" ); - m_Queue.Enqueue( "DELETE FROM myrunuo_characters_layers" ); - m_Queue.Enqueue( "DELETE FROM myrunuo_characters_skills" ); - m_Queue.Enqueue( "DELETE FROM myrunuo_guilds" ); - m_Queue.Enqueue( "DELETE FROM myrunuo_guilds_wars" );*/ - - m_Sync = new ManualResetEvent(true); - - // MyRunUO Database Command Queue; - Thread thread = new Thread(Thread_Start) { Name = threadName, Priority = Config.DatabaseThreadPriority }; - thread.Start(); - } - - public bool HasCompleted{ get; private set; } - - public void Enqueue(object obj) - { - lock (m_Queue.SyncRoot) - { - m_Queue.Enqueue(obj); - try - { - m_Sync.Set(); - } - catch - { - // ignored - } - } - } - - private void Thread_Start() - { - bool connected = false; - - OdbcConnection connection = null; - OdbcCommand command = null; - OdbcTransaction transact = null; - - DateTime start = DateTime.UtcNow; - - bool shouldWriteException = true; - - while (true) - { - m_Sync.WaitOne(); - - while (m_Queue.Count > 0) - try - { - object obj = m_Queue.Dequeue(); - - if (obj == null) - { - if (connected) - { - if (transact != null) - try - { - transact.Commit(); - } - catch (Exception commitException) - { - Console.WriteLine("MyRunUO: Exception caught when committing transaction"); - Console.WriteLine(commitException); - - try - { - transact.Rollback(); - Console.WriteLine("MyRunUO: Transaction has been rolled back"); - } - catch (Exception rollbackException) - { - Console.WriteLine("MyRunUO: Exception caught when rolling back transaction"); - Console.WriteLine(rollbackException); - } - } - - try - { - connection.Close(); - } - catch - { - // ignored - } - - try - { - connection.Dispose(); - } - catch - { - // ignored - } - - try - { - command.Dispose(); - } - catch - { - // ignored - } - - try - { - m_Sync.Close(); - } - catch - { - // ignored - } - - Console.WriteLine(m_CompletionString, (DateTime.UtcNow - start).TotalSeconds); - HasCompleted = true; - - return; - } - - try - { - connected = true; - connection = new OdbcConnection(m_ConnectionString); - connection.Open(); - command = connection.CreateCommand(); - - if (Config.UseTransactions) - { - transact = connection.BeginTransaction(); - command.Transaction = transact; - } - } - catch (Exception e) - { - try - { - transact?.Rollback(); - } - catch - { - // ignored - } - - try - { - connection?.Close(); - } - catch - { - // ignored - } - - try - { - connection?.Dispose(); - } - catch - { - // ignored - } - - try - { - command?.Dispose(); - } - catch - { - // ignored - } - - try - { - m_Sync.Close(); - } - catch - { - // ignored - } - - Console.WriteLine("MyRunUO: Unable to connect to the database"); - Console.WriteLine(e); - HasCompleted = true; - return; - } - } - else if (obj is string s) - { - command.CommandText = s; - command.ExecuteNonQuery(); - } - else - { - string[] parms = (string[])obj; - - command.CommandText = parms[0]; - - if (command.ExecuteScalar() == null) - { - command.CommandText = parms[1]; - command.ExecuteNonQuery(); - } - } - } - catch (Exception e) - { - if (shouldWriteException) - { - Console.WriteLine("MyRunUO: Exception caught in database thread"); - Console.WriteLine(e); - shouldWriteException = false; - } - } - - lock (m_Queue.SyncRoot) - { - if (m_Queue.Count == 0) - m_Sync.Reset(); - } - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/MyRunUO/MyRunUO.cs b/Scripts/Engines/MyRunUO/MyRunUO.cs deleted file mode 100644 index efce89134..000000000 --- a/Scripts/Engines/MyRunUO/MyRunUO.cs +++ /dev/null @@ -1,716 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Text; -using Server.Accounting; -using Server.Commands; -using Server.Guilds; -using Server.Misc; -using Server.Mobiles; - -namespace Server.Engines.MyRunUO -{ - public class MyRunUO : Timer - { - public const char LineStart = '\"'; - public const string EntrySep = "\",\""; - public const string LineEnd = "\"\n"; - private static double CpuInterval = 0.1; // Processor runs every 0.1 seconds - - private static double - CpuPercent = 0.25; // Processor runs for 25% of Interval, or ~25ms. This should take around 25% cpu - - private static Timer m_Timer; - - private static DatabaseCommandQueue m_Command; - - private static List m_MobilesToUpdate = new List(); - private List m_Collecting; - private int m_Index; - - private List m_Items = new List(); - private string m_LayersPath; - private ArrayList m_List; - private string m_MobilesPath; - private StreamWriter m_OpLayers; - private StreamWriter m_OpMobiles; - - private StreamWriter m_OpSkills; - - private string m_SkillsPath; - - private Stage m_Stage; - - private DateTime m_StartTime; - - public MyRunUO() : base(TimeSpan.FromSeconds(CpuInterval), TimeSpan.FromSeconds(CpuInterval)) - { - m_List = new ArrayList(); - m_Collecting = new List(); - - m_StartTime = DateTime.UtcNow; - Console.WriteLine("MyRunUO: Updating character database"); - } - - public static void Initialize() - { - if (Config.Enabled) - { - DelayCall(TimeSpan.FromSeconds(10.0), Config.CharacterUpdateInterval, Begin); - - CommandSystem.Register("InitMyRunUO", AccessLevel.Administrator, InitMyRunUO_OnCommand); - CommandSystem.Register("UpdateMyRunUO", AccessLevel.Administrator, UpdateMyRunUO_OnCommand); - - CommandSystem.Register("PublicChar", AccessLevel.Player, PublicChar_OnCommand); - CommandSystem.Register("PrivateChar", AccessLevel.Player, PrivateChar_OnCommand); - } - } - - [Usage("PublicChar")] - [Description("Enables showing extended character stats and skills in MyRunUO.")] - public static void PublicChar_OnCommand(CommandEventArgs e) - { - if (e.Mobile is PlayerMobile pm) - { - if (pm.PublicMyRunUO) - { - pm.SendMessage("You have already chosen to show your skills and stats."); - } - else - { - pm.PublicMyRunUO = true; - pm.SendMessage("All of your skills and stats will now be shown publicly in MyRunUO."); - } - } - } - - [Usage("PrivateChar")] - [Description("Disables showing extended character stats and skills in MyRunUO.")] - public static void PrivateChar_OnCommand(CommandEventArgs e) - { - if (e.Mobile is PlayerMobile pm) - { - if (!pm.PublicMyRunUO) - { - pm.SendMessage("You have already chosen to not show your skills and stats."); - } - else - { - pm.PublicMyRunUO = false; - pm.SendMessage("Only a general level of your top three skills will be shown in MyRunUO."); - } - } - } - - [Usage("InitMyRunUO")] - [Description("Initially creates the database schema.")] - public static void InitMyRunUO_OnCommand(CommandEventArgs e) - { - if (m_Command?.HasCompleted == true) - { - TableCreation(); - e.Mobile.SendMessage("MyRunUO table creation process has been started."); - } - else - { - e.Mobile.SendMessage("MyRunUO table creation is already running."); - } - } - - public static void TableCreation() - { - if (m_Command?.HasCompleted == false) - return; - // DateTime start = DateTime.Now; - Console.WriteLine("MyRunUO: Creating tables"); - try - { - m_Command = new DatabaseCommandQueue("MyRunUO: Tables created in {0:F1} seconds", - "MyRunUO Status Database Thread"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_characters` ( `char_id` int(10) unsigned NOT NULL, `char_name` varchar(255) NOT NULL, `char_str` smallint(3) unsigned NOT NULL, `char_dex` smallint(3) unsigned NOT NULL, `char_int` smallint(3) unsigned NOT NULL, `char_female` tinyint(1) NOT NULL, `char_counts` smallint(6) NOT NULL, `char_guild` varchar(255) DEFAULT NULL, `char_guildtitle` varchar(255) DEFAULT NULL, `char_nototitle` varchar(255) DEFAULT NULL, `char_bodyhue` smallint(5) unsigned DEFAULT NULL, `char_public` tinyint(1) NOT NULL, PRIMARY KEY (`char_id`))"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_characters_layers` ( `char_id` int(10) unsigned NOT NULL, `layer_id` tinyint(3) unsigned NOT NULL, `item_id` smallint(5) unsigned NOT NULL, `item_hue` smallint(5) unsigned NOT NULL, PRIMARY KEY (`char_id`,`layer_id`))"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_characters_skills` ( `char_id` int(10) unsigned NOT NULL, `skill_id` tinyint(3) NOT NULL, `skill_value` smallint(5) unsigned NOT NULL, PRIMARY KEY (`char_id`,`skill_id`), KEY `skill_id` (`skill_id`))"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_guilds` ( `guild_id` smallint(5) unsigned NOT NULL, `guild_name` varchar(255) NOT NULL, `guild_abbreviation` varchar(8) DEFAULT NULL, `guild_website` varchar(255) DEFAULT NULL, `guild_charter` varchar(255) DEFAULT NULL, `guild_type` varchar(8) NOT NULL, `guild_wars` smallint(5) unsigned NOT NULL, `guild_members` smallint(5) unsigned NOT NULL, `guild_master` int(10) unsigned NOT NULL, PRIMARY KEY (`guild_id`))"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_guilds_wars` ( `guild_1` smallint(5) unsigned NOT NULL DEFAULT '0', `guild_2` smallint(5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`guild_1`,`guild_2`), KEY `guild1` (`guild_1`), KEY `guild2` (`guild_2`))"); - m_Command.Enqueue( - "CREATE TABLE IF NOT EXISTS `myrunuo_status` ( `char_id` int(10) NOT NULL, PRIMARY KEY (`char_id`))"); - } - catch (Exception e) - { - Console.WriteLine("MyRunUO: Error creating tables."); - Console.WriteLine(e); - } - - m_Command?.Enqueue(null); - } - - [Usage("UpdateMyRunUO")] - [Description("Starts the process of updating the MyRunUO character and guild database.")] - public static void UpdateMyRunUO_OnCommand(CommandEventArgs e) - { - if (m_Command?.HasCompleted == true) - m_Command = null; - - if (m_Timer == null && m_Command == null) - { - Begin(); - e.Mobile.SendMessage("MyRunUO update process has been started."); - } - else - { - e.Mobile.SendMessage("MyRunUO database is already being updated."); - } - } - - public static void Begin() - { - if (m_Command?.HasCompleted == true) - m_Command = null; - - if (m_Timer != null || m_Command != null) - return; - - m_Timer = new MyRunUO(); - m_Timer.Start(); - } - - protected override void OnTick() - { - bool shouldExit; - - try - { - shouldExit = Process(DateTime.UtcNow + TimeSpan.FromSeconds(CpuInterval * CpuPercent)); - - if (shouldExit) - Console.WriteLine("MyRunUO: Database statements compiled in {0:F2} seconds", - (DateTime.UtcNow - m_StartTime).TotalSeconds); - } - catch (Exception e) - { - Console.WriteLine("MyRunUO: {0}: Exception cought while processing", m_Stage); - Console.WriteLine(e); - shouldExit = true; - } - - if (shouldExit) - { - m_Command.Enqueue(null); - - Stop(); - m_Timer = null; - } - } - - public bool Process(DateTime endTime) - { - switch (m_Stage) - { - case Stage.CollectingMobiles: - CollectMobiles(endTime); - break; - case Stage.DumpingMobiles: - DumpMobiles(endTime); - break; - case Stage.CollectingGuilds: - CollectGuilds(endTime); - break; - case Stage.DumpingGuilds: - DumpGuilds(endTime); - break; - } - - return m_Stage == Stage.Complete; - } - - public static void QueueMobileUpdate(Mobile m) - { - if (!Config.Enabled || Config.LoadDataInFile) - return; - - m_MobilesToUpdate.Add(m); - } - - public void CollectMobiles(DateTime endTime) - { - if (Config.LoadDataInFile) - { - if (m_Index == 0) - m_Collecting.AddRange(Accounts.GetAccounts()); - - for (int i = m_Index; i < m_Collecting.Count; ++i) - { - IAccount acct = m_Collecting[i]; - - for (int j = 0; j < acct.Length; ++j) - { - Mobile mob = acct[j]; - - if (mob?.AccessLevel < Config.HiddenAccessLevel) - m_List.Add(mob); - } - - ++m_Index; - - if (DateTime.UtcNow >= endTime) - break; - } - - if (m_Index == m_Collecting.Count) - { - m_Collecting = new List(); - m_Stage = Stage.DumpingMobiles; - m_Index = 0; - } - } - else - { - m_List = new ArrayList(m_MobilesToUpdate); - m_MobilesToUpdate = new List(); - m_Stage = Stage.DumpingMobiles; - m_Index = 0; - } - } - - public void CheckConnection() - { - if (m_Command == null) - { - m_Command = new DatabaseCommandQueue("MyRunUO: Character database updated in {0:F1} seconds", - "MyRunUO Character Database Thread"); - - if (Config.LoadDataInFile) - { - m_OpSkills = GetUniqueWriter("skills", out m_SkillsPath); - m_OpLayers = GetUniqueWriter("layers", out m_LayersPath); - m_OpMobiles = GetUniqueWriter("mobiles", out m_MobilesPath); - - m_Command.Enqueue("TRUNCATE TABLE myrunuo_characters"); - m_Command.Enqueue("TRUNCATE TABLE myrunuo_characters_layers"); - m_Command.Enqueue("TRUNCATE TABLE myrunuo_characters_skills"); - } - - m_Command.Enqueue("TRUNCATE TABLE myrunuo_guilds"); - m_Command.Enqueue("TRUNCATE TABLE myrunuo_guilds_wars"); - } - } - - public void ExecuteNonQuery(string text) - { - m_Command.Enqueue(text); - } - - public void ExecuteNonQuery(string format, params object[] args) - { - ExecuteNonQuery(string.Format(format, args)); - } - - public void ExecuteNonQueryIfNull(string select, string insert) - { - m_Command.Enqueue(new[] { select, insert }); - } - - private void AppendCharEntity(string input, int charIndex, ref StringBuilder sb, char c) - { - if (sb == null) - { - sb = charIndex > 0 ? new StringBuilder(input, 0, charIndex, input.Length + 20) : new StringBuilder(input.Length + 20); - } - - sb.Append("&#"); - sb.Append((int)c); - sb.Append(";"); - } - - private void AppendEntityRef(string input, int charIndex, ref StringBuilder sb, string ent) - { - if (sb == null) - { - sb = charIndex > 0 ? new StringBuilder(input, 0, charIndex, input.Length + 20) : new StringBuilder(input.Length + 20); - } - - sb.Append(ent); - } - - private string SafeString(string input) - { - if (input == null) - return ""; - - StringBuilder sb = null; - - for (int i = 0; i < input.Length; ++i) - { - char c = input[i]; - - if (c < 0x20 || c >= 0x7F) - AppendCharEntity(input, i, ref sb, c); - else - switch (c) - { - case '&': - AppendEntityRef(input, i, ref sb, "&"); - break; - case '>': - AppendEntityRef(input, i, ref sb, ">"); - break; - case '<': - AppendEntityRef(input, i, ref sb, "<"); - break; - case '"': - AppendEntityRef(input, i, ref sb, """); - break; - case '\'': - case ':': - case '/': - case '\\': - AppendCharEntity(input, i, ref sb, c); - break; - default: - { - sb?.Append(c); - - break; - } - } - } - - return sb != null ? sb.ToString() : input; - } - - public void InsertMobile(Mobile mob) - { - string guildTitle = mob.GuildTitle; - - if (guildTitle == null || (guildTitle = guildTitle.Trim()).Length == 0) - guildTitle = "NULL"; - else - guildTitle = SafeString(guildTitle); - - string notoTitle = SafeString(Titles.ComputeTitle(null, mob)); - string female = mob.Female ? "1" : "0"; - - bool pubBool = mob is PlayerMobile mobile && mobile.PublicMyRunUO; - - string pubString = pubBool ? "1" : "0"; - - string guildId = mob.Guild == null ? "NULL" : mob.Guild.Id.ToString(); - - if (Config.LoadDataInFile) - { - m_OpMobiles.Write(LineStart); - m_OpMobiles.Write(mob.Serial.Value); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(SafeString(mob.Name)); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(mob.RawStr); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(mob.RawDex); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(mob.RawInt); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(female); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(mob.Kills); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(guildId); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(guildTitle); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(notoTitle); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(mob.Hue); - m_OpMobiles.Write(EntrySep); - m_OpMobiles.Write(pubString); - m_OpMobiles.Write(LineEnd); - } - else - { - ExecuteNonQuery( - "INSERT INTO myrunuo_characters (char_id, char_name, char_str, char_dex, char_int, char_female, char_counts, char_guild, char_guildtitle, char_nototitle, char_bodyhue, char_public ) VALUES ({0}, '{1}', {2}, {3}, {4}, {5}, {6}, {7}, {8}, '{9}', {10}, {11})", - mob.Serial.Value.ToString(), SafeString(mob.Name), mob.RawStr.ToString(), mob.RawDex.ToString(), - mob.RawInt.ToString(), female, mob.Kills.ToString(), guildId, guildTitle, notoTitle, mob.Hue.ToString(), - pubString); - } - } - - public void InsertSkills(Mobile mob) - { - Skills skills = mob.Skills; - string serial = mob.Serial.Value.ToString(); - - for (int i = 0; i < skills.Length; ++i) - { - Skill skill = skills[i]; - - if (skill.BaseFixedPoint > 0) - { - if (Config.LoadDataInFile) - { - m_OpSkills.Write(LineStart); - m_OpSkills.Write(serial); - m_OpSkills.Write(EntrySep); - m_OpSkills.Write(i); - m_OpSkills.Write(EntrySep); - m_OpSkills.Write(skill.BaseFixedPoint); - m_OpSkills.Write(LineEnd); - } - else - { - ExecuteNonQuery( - "INSERT INTO myrunuo_characters_skills (char_id, skill_id, skill_value) VALUES ({0}, {1}, {2})", - serial, i.ToString(), skill.BaseFixedPoint.ToString()); - } - } - } - } - - private void InsertItem(string serial, int index, int itemID, int hue) - { - if (Config.LoadDataInFile) - { - m_OpLayers.Write(LineStart); - m_OpLayers.Write(serial); - m_OpLayers.Write(EntrySep); - m_OpLayers.Write(index); - m_OpLayers.Write(EntrySep); - m_OpLayers.Write(itemID); - m_OpLayers.Write(EntrySep); - m_OpLayers.Write(hue); - m_OpLayers.Write(LineEnd); - } - else - { - ExecuteNonQuery( - "INSERT INTO myrunuo_characters_layers (char_id, layer_id, item_id, item_hue) VALUES ({0}, {1}, {2}, {3})", - serial, index.ToString(), itemID.ToString(), hue.ToString()); - } - } - - public void InsertItems(Mobile mob) - { - List items = m_Items; - items.AddRange(mob.Items); - string serial = mob.Serial.Value.ToString(); - - items.Sort(LayerComparer.Instance); - - int index = 0; - - bool hidePants = false; - bool alive = mob.Alive; - bool hideHair = !alive; - - for (int i = 0; i < items.Count; ++i) - { - Item item = items[i]; - - if (!LayerComparer.IsValid(item)) - break; - - if (!alive && item.ItemID != 8270) - continue; - - if (item.ItemID == 0x1411 || item.ItemID == 0x141A) // plate legs - hidePants = true; - else if (hidePants && item.Layer == Layer.Pants) - continue; - - if (!hideHair && item.Layer == Layer.Helm) - hideHair = true; - - InsertItem(serial, index++, item.ItemID, item.Hue); - } - - if (mob.FacialHairItemID != 0 && alive) - InsertItem(serial, index++, mob.FacialHairItemID, mob.FacialHairHue); - - if (mob.HairItemID != 0 && !hideHair) - InsertItem(serial, index, mob.HairItemID, mob.HairHue); - - items.Clear(); - } - - public void DeleteMobile(Mobile mob) - { - ExecuteNonQuery("DELETE FROM myrunuo_characters WHERE char_id = {0}", mob.Serial.Value.ToString()); - ExecuteNonQuery("DELETE FROM myrunuo_characters_skills WHERE char_id = {0}", mob.Serial.Value.ToString()); - ExecuteNonQuery("DELETE FROM myrunuo_characters_layers WHERE char_id = {0}", mob.Serial.Value.ToString()); - } - - public StreamWriter GetUniqueWriter(string type, out string filePath) - { - filePath = Path.Combine(Core.BaseDirectory, $"myrunuodb_{type}.txt") - .Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); - - try - { - return new StreamWriter(filePath); - } - catch - { - for (int i = 0; i < 100; ++i) - try - { - filePath = Path.Combine(Core.BaseDirectory, $"myrunuodb_{type}_{i}.txt") - .Replace(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); - return new StreamWriter(filePath); - } - catch - { - // ignored - } - } - - return null; - } - - public void DumpMobiles(DateTime endTime) - { - CheckConnection(); - - for (int i = m_Index; i < m_List.Count; ++i) - { - Mobile mob = (Mobile)m_List[i]; - - if (mob is PlayerMobile mobile) - mobile.ChangedMyRunUO = false; - - if (!mob.Deleted && mob.AccessLevel < Config.HiddenAccessLevel) - { - if (!Config.LoadDataInFile) - DeleteMobile(mob); - - InsertMobile(mob); - InsertSkills(mob); - InsertItems(mob); - } - else if (!Config.LoadDataInFile) - { - DeleteMobile(mob); - } - - ++m_Index; - - if (DateTime.UtcNow >= endTime) - break; - } - - if (m_Index == m_List.Count) - { - m_List.Clear(); - m_Stage = Stage.CollectingGuilds; - m_Index = 0; - - if (Config.LoadDataInFile) - { - m_OpSkills.Close(); - m_OpLayers.Close(); - m_OpMobiles.Close(); - - ExecuteNonQuery( - "LOAD DATA {0}INFILE '{1}' INTO TABLE myrunuo_characters FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'", - Config.DatabaseNonLocal ? "LOCAL " : "", m_MobilesPath); - ExecuteNonQuery( - "LOAD DATA {0}INFILE '{1}' INTO TABLE myrunuo_characters_skills FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'", - Config.DatabaseNonLocal ? "LOCAL " : "", m_SkillsPath); - ExecuteNonQuery( - "LOAD DATA {0}INFILE '{1}' INTO TABLE myrunuo_characters_layers FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'", - Config.DatabaseNonLocal ? "LOCAL " : "", m_LayersPath); - } - } - } - - public void CollectGuilds(DateTime endTime) - { - m_List.AddRange(BaseGuild.List.Values); - m_Stage = Stage.DumpingGuilds; - m_Index = 0; - } - - public void InsertGuild(Guild guild) - { - string guildType = "Standard"; - - switch (guild.Type) - { - case GuildType.Chaos: - guildType = "Chaos"; - break; - case GuildType.Order: - guildType = "Order"; - break; - } - - ExecuteNonQuery( - "INSERT INTO myrunuo_guilds (guild_id, guild_name, guild_abbreviation, guild_website, guild_charter, guild_type, guild_wars, guild_members, guild_master) VALUES ({0}, '{1}', {2}, {3}, {4}, '{5}', {6}, {7}, {8})", - guild.Id.ToString(), SafeString(guild.Name), - guild.Abbreviation == "none" ? "NULL" : "'" + SafeString(guild.Abbreviation) + "'", - guild.Website == null ? "NULL" : "'" + SafeString(guild.Website) + "'", - guild.Charter == null ? "NULL" : "'" + SafeString(guild.Charter) + "'", guildType, - guild.Enemies.Count.ToString(), guild.Members.Count.ToString(), guild.Leader.Serial.Value.ToString()); - } - - public void InsertWars(Guild guild) - { - List wars = guild.Enemies; - - string ourId = guild.Id.ToString(); - - for (int i = 0; i < wars.Count; ++i) - { - Guild them = wars[i]; - string theirId = them.Id.ToString(); - - ExecuteNonQueryIfNull( - string.Format( - "SELECT guild_1 FROM myrunuo_guilds_wars WHERE (guild_1={0} AND guild_2={1}) OR (guild_1={1} AND guild_2={0})", - ourId, theirId), - $"INSERT INTO myrunuo_guilds_wars (guild_1, guild_2) VALUES ({ourId}, {theirId})"); - } - } - - public void DumpGuilds(DateTime endTime) - { - CheckConnection(); - - for (int i = m_Index; i < m_List.Count; ++i) - { - Guild guild = (Guild)m_List[i]; - - if (!guild.Disbanded) - { - InsertGuild(guild); - InsertWars(guild); - } - - ++m_Index; - - if (DateTime.UtcNow >= endTime) - break; - } - - if (m_Index == m_List.Count) - { - m_List.Clear(); - m_Stage = Stage.Complete; - m_Index = 0; - } - } - - private enum Stage - { - CollectingMobiles, - DumpingMobiles, - CollectingGuilds, - DumpingGuilds, - Complete - } - } -} diff --git a/Scripts/Engines/MyRunUO/MyRunUOStatus.cs b/Scripts/Engines/MyRunUO/MyRunUOStatus.cs deleted file mode 100644 index 727b3a440..000000000 --- a/Scripts/Engines/MyRunUO/MyRunUOStatus.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using Server.Commands; -using Server.Network; - -namespace Server.Engines.MyRunUO -{ - public class MyRunUOStatus - { - private static DatabaseCommandQueue m_Command; - - public static void Initialize() - { - if (Config.Enabled) - { - Timer.DelayCall(TimeSpan.FromSeconds(20.0), Config.StatusUpdateInterval, Begin); - - CommandSystem.Register("UpdateWebStatus", AccessLevel.Administrator, UpdateWebStatus_OnCommand); - } - } - - [Usage("UpdateWebStatus")] - [Description("Starts the process of updating the MyRunUO online status database.")] - public static void UpdateWebStatus_OnCommand(CommandEventArgs e) - { - if (m_Command == null || m_Command.HasCompleted) - { - Begin(); - e.Mobile.SendMessage("Web status update process has been started."); - } - else - { - e.Mobile.SendMessage("Web status database is already being updated."); - } - } - - public static void Begin() - { - if (m_Command?.HasCompleted == false) - return; - - Console.WriteLine("MyRunUO: Updating status database"); - - try - { - m_Command = new DatabaseCommandQueue("MyRunUO: Status database updated in {0:F1} seconds", - "MyRunUO Status Database Thread"); - - m_Command.Enqueue("DELETE FROM myrunuo_status"); - - List online = NetState.Instances; - - for (int i = 0; i < online.Count; ++i) - { - NetState ns = online[i]; - Mobile mob = ns.Mobile; - - if (mob != null) - m_Command.Enqueue( - $"INSERT INTO myrunuo_status (char_id) VALUES ({mob.Serial.Value.ToString()})"); - } - } - catch (Exception e) - { - Console.WriteLine("MyRunUO: Error updating status database"); - Console.WriteLine(e); - } - - m_Command?.Enqueue(null); - } - } -} diff --git a/Scripts/Engines/Reports/Objects/Charts/BarGraph.cs b/Scripts/Engines/Reports/Objects/Charts/BarGraph.cs deleted file mode 100644 index 9814480de..000000000 --- a/Scripts/Engines/Reports/Objects/Charts/BarGraph.cs +++ /dev/null @@ -1,307 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Server.Engines.Reports -{ - public enum BarGraphRenderMode - { - Bars, - Lines - } - - public class BarGraph : Chart - { - public BarGraph(string name, string fileName, int ticks, string xTitle, string yTitle, BarGraphRenderMode rm) - { - m_Name = name; - m_FileName = fileName; - Ticks = ticks; - this.xTitle = xTitle; - this.yTitle = yTitle; - RenderMode = rm; - } - - private BarGraph() - { - } - - public int Ticks{ get; set; } - - public BarGraphRenderMode RenderMode{ get; set; } - - public string xTitle{ get; set; } - - public string yTitle{ get; set; } - - public int FontSize{ get; set; } = 7; - - public int Interval{ get; set; } = 1; - - public BarRegion[] Regions{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - base.SerializeAttributes(op); - - op.SetInt32("t", Ticks); - op.SetInt32("r", (int)RenderMode); - - op.SetString("x", xTitle); - op.SetString("y", yTitle); - - op.SetInt32("s", FontSize); - op.SetInt32("i", Interval); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - base.DeserializeAttributes(ip); - - Ticks = ip.GetInt32("t"); - RenderMode = (BarGraphRenderMode)ip.GetInt32("r"); - - xTitle = Utility.Intern(ip.GetString("x")); - yTitle = Utility.Intern(ip.GetString("y")); - - FontSize = ip.GetInt32("s"); - Interval = ip.GetInt32("i"); - } - - public static int LookupReportValue(Snapshot ss, string reportName, string valueName) - { - for (int j = 0; j < ss.Children.Count; ++j) - { - if (!(ss.Children[j] is Report report) || report.Name != reportName) - continue; - - for (int k = 0; k < report.Items.Count; ++k) - { - ReportItem item = report.Items[k]; - - if (item.Values[0].Value == valueName) - return Utility.ToInt32(item.Values[1].Value); - } - - break; - } - - return -1; - } - - public static BarGraph DailyAverage(SnapshotHistory history, string reportName, string valueName) - { - int[] totals = new int[24]; - int[] counts = new int[24]; - - int min = history.Snapshots.Count - 7 * 24; // averages over one week - - if (min < 0) - min = 0; - - for (int i = min; i < history.Snapshots.Count; ++i) - { - Snapshot ss = history.Snapshots[i]; - - int val = LookupReportValue(ss, reportName, valueName); - - if (val == -1) - continue; - - int hour = ss.TimeStamp.TimeOfDay.Hours; - - totals[hour] += val; - counts[hour]++; - } - - BarGraph barGraph = new BarGraph("Hourly average " + valueName, "graphs_" + valueName.ToLower() + "_avg", 10, - "Time", valueName, BarGraphRenderMode.Lines); - - barGraph.FontSize = 6; - - for (int i = 7; i <= totals.Length + 7; ++i) - { - int val; - - if (counts[i % totals.Length] == 0) - val = 0; - else - val = (totals[i % totals.Length] + counts[i % totals.Length] / 2) / counts[i % totals.Length]; - - int realHours = i % totals.Length; - int hours; - - if (realHours == 0) - hours = 12; - else if (realHours > 12) - hours = realHours - 12; - else - hours = realHours; - - barGraph.Items.Add(hours + (realHours >= 12 ? " PM" : " AM"), val); - } - - return barGraph; - } - - public static BarGraph Growth(SnapshotHistory history, string reportName, string valueName) - { - BarGraph barGraph = new BarGraph("Growth of " + valueName + " over time", - "graphs_" + valueName.ToLower() + "_growth", 10, "Time", valueName, BarGraphRenderMode.Lines); - - barGraph.FontSize = 6; - barGraph.Interval = 7; - - DateTime startPeriod = history.Snapshots[0].TimeStamp.Date + TimeSpan.FromDays(1.0); - DateTime endPeriod = history.Snapshots[history.Snapshots.Count - 1].TimeStamp.Date; - - List regions = new List(); - - DateTime curDate = DateTime.MinValue; - int curPeak = -1; - int curLow = 1000; - int curTotl = 0; - int curCont = 0; - int curValu; - - for (int i = 0; i < history.Snapshots.Count; ++i) - { - Snapshot ss = history.Snapshots[i]; - DateTime timeStamp = ss.TimeStamp; - - if (timeStamp < startPeriod || timeStamp >= endPeriod) - continue; - - int val = LookupReportValue(ss, reportName, valueName); - - if (val == -1) - continue; - - DateTime thisDate = timeStamp.Date; - - if (curDate == DateTime.MinValue) - curDate = thisDate; - - curCont++; - curTotl += val; - curValu = curTotl / curCont; - - if (curDate != thisDate && curValu >= 0) - { - string mnthName = thisDate.ToString("MMMM"); - - if (regions.Count == 0) - { - regions.Add(new BarRegion(barGraph.Items.Count, barGraph.Items.Count, mnthName)); - } - else - { - BarRegion region = regions[regions.Count - 1]; - - if (region.m_Name == mnthName) - region.m_RangeTo = barGraph.Items.Count; - else - regions.Add(new BarRegion(barGraph.Items.Count, barGraph.Items.Count, mnthName)); - } - - barGraph.Items.Add(thisDate.Day.ToString(), curValu); - - curPeak = val; - curLow = val; - } - else - { - if (val > curPeak) - curPeak = val; - - if (val > 0 && val < curLow) - curLow = val; - } - - curDate = thisDate; - } - - barGraph.Regions = regions.ToArray(); - - return barGraph; - } - - public static BarGraph OverTime(SnapshotHistory history, string reportName, string valueName, int step, int max, - int ival) - { - BarGraph barGraph = new BarGraph(valueName + " over time", "graphs_" + valueName.ToLower() + "_ot", 10, "Time", - valueName, BarGraphRenderMode.Lines); - - TimeSpan ts = TimeSpan.FromHours(max * step - 0.5); - - DateTime mostRecent = history.Snapshots[history.Snapshots.Count - 1].TimeStamp; - DateTime minTime = mostRecent - ts; - - barGraph.FontSize = 6; - barGraph.Interval = ival; - - List regions = new List(); - - for (int i = 0; i < history.Snapshots.Count; ++i) - { - Snapshot ss = history.Snapshots[i]; - DateTime timeStamp = ss.TimeStamp; - - if (timeStamp < minTime) - continue; - - if (i % step != 0) - continue; - - int val = LookupReportValue(ss, reportName, valueName); - - if (val == -1) - continue; - - int realHours = timeStamp.TimeOfDay.Hours; - int hours; - - if (realHours == 0) - hours = 12; - else if (realHours > 12) - hours = realHours - 12; - else - hours = realHours; - - string dayName = timeStamp.DayOfWeek.ToString(); - - if (regions.Count == 0) - { - regions.Add(new BarRegion(barGraph.Items.Count, barGraph.Items.Count, dayName)); - } - else - { - BarRegion region = regions[regions.Count - 1]; - - if (region.m_Name == dayName) - region.m_RangeTo = barGraph.Items.Count; - else - regions.Add(new BarRegion(barGraph.Items.Count, barGraph.Items.Count, dayName)); - } - - barGraph.Items.Add(hours + (realHours >= 12 ? " PM" : " AM"), val); - } - - barGraph.Regions = regions.ToArray(); - - return barGraph; - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("bg", Construct); - - private static PersistableObject Construct() - { - return new BarGraph(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Charts/Chart.cs b/Scripts/Engines/Reports/Objects/Charts/Chart.cs deleted file mode 100644 index 9509e4e7e..000000000 --- a/Scripts/Engines/Reports/Objects/Charts/Chart.cs +++ /dev/null @@ -1,52 +0,0 @@ -namespace Server.Engines.Reports -{ - public abstract class Chart : PersistableObject - { - protected string m_FileName; - protected ChartItemCollection m_Items; - protected string m_Name; - - public Chart() - { - m_Items = new ChartItemCollection(); - } - - public string Name - { - get => m_Name; - set => m_Name = value; - } - - public string FileName - { - get => m_FileName; - set => m_FileName = value; - } - - public ChartItemCollection Items => m_Items; - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetString("n", m_Name); - op.SetString("f", m_FileName); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - m_Name = Utility.Intern(ip.GetString("n")); - m_FileName = Utility.Intern(ip.GetString("f")); - } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < m_Items.Count; ++i) - m_Items[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - m_Items.Add(ip.GetChild() as ChartItem); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Charts/ChartItem.cs b/Scripts/Engines/Reports/Objects/Charts/ChartItem.cs deleted file mode 100644 index a3ba24b00..000000000 --- a/Scripts/Engines/Reports/Objects/Charts/ChartItem.cs +++ /dev/null @@ -1,44 +0,0 @@ -namespace Server.Engines.Reports -{ - public class ChartItem : PersistableObject - { - private ChartItem() - { - } - - public ChartItem(string name, int value) - { - Name = name; - Value = value; - } - - public string Name{ get; set; } - - public int Value{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetString("n", Name); - op.SetInt32("v", Value); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - Name = Utility.Intern(ip.GetString("n")); - Value = ip.GetInt32("v"); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("ci", Construct); - - private static PersistableObject Construct() - { - return new ChartItem(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Charts/ChartItemCollection.cs b/Scripts/Engines/Reports/Objects/Charts/ChartItemCollection.cs deleted file mode 100644 index b87df7344..000000000 --- a/Scripts/Engines/Reports/Objects/Charts/ChartItemCollection.cs +++ /dev/null @@ -1,187 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.ChartItem. - /// - public class ChartItemCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.ChartItem at a specific position in the ChartItemCollection. - /// - public ChartItem this[int index] - { - get => (ChartItem)List[index]; - set => List[index] = value; - } - - public int Add(string name, int value) - { - return Add(new ChartItem(name, value)); - } - - /// - /// Append a Server.Engines.Reports.ChartItem entry to this collection. - /// - /// Server.Engines.Reports.ChartItem instance. - /// The position into which the new element was inserted. - public int Add(ChartItem value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.ChartItem instance is in this collection. - /// - /// Server.Engines.Reports.ChartItem instance to search for. - /// True if the Server.Engines.Reports.ChartItem instance is in the collection; otherwise false. - public bool Contains(ChartItem value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.ChartItem instance is in this collection. - /// - /// Server.Engines.Reports.ChartItem instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.ChartItem instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(ChartItem value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.ChartItem instance from this collection. - /// - /// The Server.Engines.Reports.ChartItem instance to remove. - public void Remove(ChartItem value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.ChartItem instance. - /// - /// An Server.Engines.Reports.ChartItem's enumerator. - public new ChartItemCollectionEnumerator GetEnumerator() - { - return new ChartItemCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.ChartItem instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.ChartItem instance to insert. - public void Insert(int index, ChartItem value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.ChartItem. - /// - public class ChartItemCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ChartItemCollection _collection; - - /// - /// Current element pointed to. - /// - private ChartItem _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ChartItemCollectionEnumerator(ChartItemCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.ChartItem object in the enumerated ChartItemCollection currently indexed by this instance. - /// - public ChartItem Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Charts/PieChart.cs b/Scripts/Engines/Reports/Objects/Charts/PieChart.cs deleted file mode 100644 index 6bbc532cd..000000000 --- a/Scripts/Engines/Reports/Objects/Charts/PieChart.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace Server.Engines.Reports -{ - public class PieChart : Chart - { - public PieChart(string name, string fileName, bool showPercents) - { - m_Name = name; - m_FileName = fileName; - ShowPercents = showPercents; - } - - private PieChart() - { - } - - public bool ShowPercents{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - base.SerializeAttributes(op); - - op.SetBoolean("p", ShowPercents); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - base.DeserializeAttributes(ip); - - ShowPercents = ip.GetBoolean("p"); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("pc", Construct); - - private static PersistableObject Construct() - { - return new PieChart(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ItemValue.cs b/Scripts/Engines/Reports/Objects/Reports/ItemValue.cs deleted file mode 100644 index d2f045b48..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ItemValue.cs +++ /dev/null @@ -1,57 +0,0 @@ -namespace Server.Engines.Reports -{ - public class ItemValue : PersistableObject - { - private string m_Value; - - private ItemValue() - { - } - - public ItemValue(string value) : this(value, null) - { - } - - public ItemValue(string value, string format) - { - m_Value = value; - Format = format; - } - - public string Value - { - get => m_Value; - set => m_Value = value; - } - - public string Format{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetString("v", m_Value); - op.SetString("f", Format); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - m_Value = ip.GetString("v"); - Format = Utility.Intern(ip.GetString("f")); - - if (Format == null) - Utility.Intern(ref m_Value); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("iv", Construct); - - private static PersistableObject Construct() - { - return new ItemValue(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ItemValueCollection.cs b/Scripts/Engines/Reports/Objects/Reports/ItemValueCollection.cs deleted file mode 100644 index 621d28b9d..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ItemValueCollection.cs +++ /dev/null @@ -1,192 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.ItemValue. - /// - public class ItemValueCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.ItemValue at a specific position in the ItemValueCollection. - /// - public ItemValue this[int index] - { - get => (ItemValue)List[index]; - set => List[index] = value; - } - - public int Add(string value) - { - return Add(new ItemValue(value)); - } - - public int Add(string value, string format) - { - return Add(new ItemValue(value, format)); - } - - /// - /// Append a Server.Engines.Reports.ItemValue entry to this collection. - /// - /// Server.Engines.Reports.ItemValue instance. - /// The position into which the new element was inserted. - public int Add(ItemValue value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.ItemValue instance is in this collection. - /// - /// Server.Engines.Reports.ItemValue instance to search for. - /// True if the Server.Engines.Reports.ItemValue instance is in the collection; otherwise false. - public bool Contains(ItemValue value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.ItemValue instance is in this collection. - /// - /// Server.Engines.Reports.ItemValue instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.ItemValue instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(ItemValue value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.ItemValue instance from this collection. - /// - /// The Server.Engines.Reports.ItemValue instance to remove. - public void Remove(ItemValue value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.ItemValue instance. - /// - /// An Server.Engines.Reports.ItemValue's enumerator. - public new ItemValueCollectionEnumerator GetEnumerator() - { - return new ItemValueCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.ItemValue instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.ItemValue instance to insert. - public void Insert(int index, ItemValue value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.ItemValue. - /// - public class ItemValueCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ItemValueCollection _collection; - - /// - /// Current element pointed to. - /// - private ItemValue _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ItemValueCollectionEnumerator(ItemValueCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.ItemValue object in the enumerated ItemValueCollection currently indexed by this instance. - /// - public ItemValue Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/Report.cs b/Scripts/Engines/Reports/Objects/Reports/Report.cs deleted file mode 100644 index 3eb8475d9..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/Report.cs +++ /dev/null @@ -1,72 +0,0 @@ -namespace Server.Engines.Reports -{ - public class Report : PersistableObject - { - private Report() : this(null, null) - { - } - - public Report(string name, string width) - { - Name = name; - Width = width; - Columns = new ReportColumnCollection(); - Items = new ReportItemCollection(); - } - - public string Name{ get; set; } - - public string Width{ get; set; } - - public ReportColumnCollection Columns{ get; } - - public ReportItemCollection Items{ get; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetString("n", Name); - op.SetString("w", Width); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - Name = Utility.Intern(ip.GetString("n")); - Width = Utility.Intern(ip.GetString("w")); - } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < Columns.Count; ++i) - Columns[i].Serialize(op); - - for (int i = 0; i < Items.Count; ++i) - Items[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - { - PersistableObject child = ip.GetChild(); - - if (child is ReportColumn column) - Columns.Add(column); - else if (child is ReportItem item) - Items.Add(item); - } - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("rp", Construct); - - private static PersistableObject Construct() - { - return new Report(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ReportColumn.cs b/Scripts/Engines/Reports/Objects/Reports/ReportColumn.cs deleted file mode 100644 index aae4f3121..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ReportColumn.cs +++ /dev/null @@ -1,53 +0,0 @@ -namespace Server.Engines.Reports -{ - public class ReportColumn : PersistableObject - { - private ReportColumn() - { - } - - public ReportColumn(string width, string align) : this(width, align, null) - { - } - - public ReportColumn(string width, string align, string name) - { - Width = width; - Align = align; - Name = name; - } - - public string Width{ get; set; } - - public string Align{ get; set; } - - public string Name{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetString("w", Width); - op.SetString("a", Align); - op.SetString("n", Name); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - Width = Utility.Intern(ip.GetString("w")); - Align = Utility.Intern(ip.GetString("a")); - Name = Utility.Intern(ip.GetString("n")); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("rc", Construct); - - private static PersistableObject Construct() - { - return new ReportColumn(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ReportColumnCollection.cs b/Scripts/Engines/Reports/Objects/Reports/ReportColumnCollection.cs deleted file mode 100644 index 198534736..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ReportColumnCollection.cs +++ /dev/null @@ -1,193 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.ReportColumn. - /// - public class ReportColumnCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.ReportColumn at a specific position in the ReportColumnCollection. - /// - public ReportColumn this[int index] - { - get => (ReportColumn)List[index]; - set => List[index] = value; - } - - public int Add(string width, string align) - { - return Add(new ReportColumn(width, align)); - } - - public int Add(string width, string align, string name) - { - return Add(new ReportColumn(width, align, name)); - } - - /// - /// Append a Server.Engines.Reports.ReportColumn entry to this collection. - /// - /// Server.Engines.Reports.ReportColumn instance. - /// The position into which the new element was inserted. - public int Add(ReportColumn value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.ReportColumn instance is in this collection. - /// - /// Server.Engines.Reports.ReportColumn instance to search for. - /// True if the Server.Engines.Reports.ReportColumn instance is in the collection; otherwise false. - public bool Contains(ReportColumn value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.ReportColumn instance is in this collection. - /// - /// Server.Engines.Reports.ReportColumn instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.ReportColumn instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(ReportColumn value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.ReportColumn instance from this collection. - /// - /// The Server.Engines.Reports.ReportColumn instance to remove. - public void Remove(ReportColumn value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.ReportColumn instance. - /// - /// An Server.Engines.Reports.ReportColumn's enumerator. - public new ReportColumnCollectionEnumerator GetEnumerator() - { - return new ReportColumnCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.ReportColumn instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.ReportColumn instance to insert. - public void Insert(int index, ReportColumn value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.ReportColumn. - /// - public class ReportColumnCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ReportColumnCollection _collection; - - /// - /// Current element pointed to. - /// - private ReportColumn _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ReportColumnCollectionEnumerator(ReportColumnCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.ReportColumn object in the enumerated ReportColumnCollection currently indexed by this - /// instance. - /// - public ReportColumn Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ReportItem.cs b/Scripts/Engines/Reports/Objects/Reports/ReportItem.cs deleted file mode 100644 index 336c6b2ea..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ReportItem.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace Server.Engines.Reports -{ - public class ReportItem : PersistableObject - { - public ReportItem() - { - Values = new ItemValueCollection(); - } - - public ItemValueCollection Values{ get; } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < Values.Count; ++i) - Values[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - Values.Add(ip.GetChild() as ItemValue); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("ri", Construct); - - private static PersistableObject Construct() - { - return new ReportItem(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Reports/ReportItemCollection.cs b/Scripts/Engines/Reports/Objects/Reports/ReportItemCollection.cs deleted file mode 100644 index 1bdee17c2..000000000 --- a/Scripts/Engines/Reports/Objects/Reports/ReportItemCollection.cs +++ /dev/null @@ -1,198 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.ReportItem. - /// - public class ReportItemCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.ReportItem at a specific position in the ReportItemCollection. - /// - public ReportItem this[int index] - { - get => (ReportItem)List[index]; - set => List[index] = value; - } - - public int Add(string name, object value) - { - return Add(name, value, null); - } - - public int Add(string name, object value, string format) - { - ReportItem item = new ReportItem(); - - item.Values.Add(name); - item.Values.Add(value == null ? "" : value.ToString(), format); - - return Add(item); - } - - /// - /// Append a Server.Engines.Reports.ReportItem entry to this collection. - /// - /// Server.Engines.Reports.ReportItem instance. - /// The position into which the new element was inserted. - public int Add(ReportItem value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.ReportItem instance is in this collection. - /// - /// Server.Engines.Reports.ReportItem instance to search for. - /// True if the Server.Engines.Reports.ReportItem instance is in the collection; otherwise false. - public bool Contains(ReportItem value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.ReportItem instance is in this collection. - /// - /// Server.Engines.Reports.ReportItem instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.ReportItem instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(ReportItem value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.ReportItem instance from this collection. - /// - /// The Server.Engines.Reports.ReportItem instance to remove. - public void Remove(ReportItem value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.ReportItem instance. - /// - /// An Server.Engines.Reports.ReportItem's enumerator. - public new ReportItemCollectionEnumerator GetEnumerator() - { - return new ReportItemCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.ReportItem instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.ReportItem instance to insert. - public void Insert(int index, ReportItem value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.ReportItem. - /// - public class ReportItemCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ReportItemCollection _collection; - - /// - /// Current element pointed to. - /// - private ReportItem _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ReportItemCollectionEnumerator(ReportItemCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.ReportItem object in the enumerated ReportItemCollection currently indexed by this - /// instance. - /// - public ReportItem Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Snapshots/Snapshot.cs b/Scripts/Engines/Reports/Objects/Snapshots/Snapshot.cs deleted file mode 100644 index 52f51d611..000000000 --- a/Scripts/Engines/Reports/Objects/Snapshots/Snapshot.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; - -namespace Server.Engines.Reports -{ - public class Snapshot : PersistableObject - { - public Snapshot() - { - Children = new ObjectCollection(); - } - - public DateTime TimeStamp{ get; set; } - - public ObjectCollection Children{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetDateTime("t", TimeStamp); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - TimeStamp = ip.GetDateTime("t"); - } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < Children.Count; ++i) - Children[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - Children.Add(ip.GetChild()); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("ss", Construct); - - private static PersistableObject Construct() - { - return new Snapshot(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Snapshots/SnapshotCollection.cs b/Scripts/Engines/Reports/Objects/Snapshots/SnapshotCollection.cs deleted file mode 100644 index ce1b715b6..000000000 --- a/Scripts/Engines/Reports/Objects/Snapshots/SnapshotCollection.cs +++ /dev/null @@ -1,182 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.Snapshot. - /// - public class SnapshotCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.Snapshot at a specific position in the SnapshotCollection. - /// - public Snapshot this[int index] - { - get => (Snapshot)List[index]; - set => List[index] = value; - } - - /// - /// Append a Server.Engines.Reports.Snapshot entry to this collection. - /// - /// Server.Engines.Reports.Snapshot instance. - /// The position into which the new element was inserted. - public int Add(Snapshot value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.Snapshot instance is in this collection. - /// - /// Server.Engines.Reports.Snapshot instance to search for. - /// True if the Server.Engines.Reports.Snapshot instance is in the collection; otherwise false. - public bool Contains(Snapshot value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.Snapshot instance is in this collection. - /// - /// Server.Engines.Reports.Snapshot instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.Snapshot instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(Snapshot value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.Snapshot instance from this collection. - /// - /// The Server.Engines.Reports.Snapshot instance to remove. - public void Remove(Snapshot value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.Snapshot instance. - /// - /// An Server.Engines.Reports.Snapshot's enumerator. - public new SnapshotCollectionEnumerator GetEnumerator() - { - return new SnapshotCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.Snapshot instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.Snapshot instance to insert. - public void Insert(int index, Snapshot value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.Snapshot. - /// - public class SnapshotCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private SnapshotCollection _collection; - - /// - /// Current element pointed to. - /// - private Snapshot _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal SnapshotCollectionEnumerator(SnapshotCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.Snapshot object in the enumerated SnapshotCollection currently indexed by this instance. - /// - public Snapshot Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Snapshots/SnapshotHistory.cs b/Scripts/Engines/Reports/Objects/Snapshots/SnapshotHistory.cs deleted file mode 100644 index f9d5f186d..000000000 --- a/Scripts/Engines/Reports/Objects/Snapshots/SnapshotHistory.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.IO; - -namespace Server.Engines.Reports -{ - public class SnapshotHistory : PersistableObject - { - public SnapshotHistory() - { - Snapshots = new SnapshotCollection(); - } - - public SnapshotCollection Snapshots{ get; set; } - - public void Save() - { - string path = Path.Combine(Core.BaseDirectory, "reportHistory.xml"); - PersistanceWriter pw = new XmlPersistanceWriter(path, "Stats"); - - pw.WriteDocument(this); - - pw.Close(); - } - - public void Load() - { - string path = Path.Combine(Core.BaseDirectory, "reportHistory.xml"); - - if (!File.Exists(path)) - return; - - PersistanceReader pr = new XmlPersistanceReader(path, "Stats"); - - pr.ReadDocument(this); - - pr.Close(); - } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < Snapshots.Count; ++i) - Snapshots[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - Snapshots.Add(ip.GetChild() as Snapshot); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("sh", Construct); - - private static PersistableObject Construct() - { - return new SnapshotHistory(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/Info.cs b/Scripts/Engines/Reports/Objects/Staffing/Info.cs deleted file mode 100644 index 5f7d395d3..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/Info.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using Server.Accounting; - -namespace Server.Engines.Reports -{ - public abstract class BaseInfo : IComparable - { - private string m_Display; - - public BaseInfo(string account) - { - Account = account; - Pages = new PageInfoCollection(); - } - - public static TimeSpan SortRange{ get; set; } - - public string Account{ get; set; } - - public PageInfoCollection Pages{ get; set; } - - public string Display - { - get - { - if (m_Display != null) - return m_Display; - - if (Account != null) - { - IAccount acct = Accounts.GetAccount(Account); - - if (acct != null) - { - Mobile mob = null; - - for (int i = 0; i < acct.Length; ++i) - { - Mobile check = acct[i]; - - if (check != null && (mob == null || check.AccessLevel > mob.AccessLevel)) - mob = check; - } - - if (mob?.Name != null && mob.Name.Length > 0) - return m_Display = mob.Name; - } - } - - return m_Display = Account; - } - } - - public int CompareTo(BaseInfo cmp) - { - int v = cmp?.GetPageCount(cmp is StaffInfo ? PageResolution.Handled : PageResolution.None, - DateTime.UtcNow - SortRange, DateTime.UtcNow) ?? 0 - - GetPageCount(this is StaffInfo ? PageResolution.Handled : PageResolution.None, - DateTime.UtcNow - SortRange, DateTime.UtcNow); - - return v == 0 ? string.Compare(Display, cmp.Display) : v; - } - - public int GetPageCount(PageResolution res, DateTime min, DateTime max) - { - return StaffHistory.GetPageCount(Pages, res, min, max); - } - - public void Register(PageInfo page) - { - Pages.Add(page); - } - - public void Unregister(PageInfo page) - { - Pages.Remove(page); - } - } - - public class StaffInfo : BaseInfo - { - public StaffInfo(string account) : base(account) - { - } - } - - public class UserInfo : BaseInfo - { - public UserInfo(string account) : base(account) - { - } - } -} diff --git a/Scripts/Engines/Reports/Objects/Staffing/PageInfo.cs b/Scripts/Engines/Reports/Objects/Staffing/PageInfo.cs deleted file mode 100644 index 9b6ecabec..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/PageInfo.cs +++ /dev/null @@ -1,233 +0,0 @@ -using System; -using Server.Accounting; -using Server.Engines.Help; - -namespace Server.Engines.Reports -{ - public enum PageResolution - { - None, - Handled, - Deleted, - Logged, - Canceled - } - - public class PageInfo : PersistableObject - { - private StaffHistory m_History; - private StaffInfo m_Resolver; - private UserInfo m_Sender; - - private string m_SentBy; - - public PageInfo() - { - Responses = new ResponseInfoCollection(); - } - - public PageInfo(PageEntry entry) - { - PageType = entry.Type; - - TimeSent = entry.Sent; - m_SentBy = GetAccount(entry.Sender); - - Message = entry.Message; - Responses = new ResponseInfoCollection(); - } - - public StaffInfo Resolver - { - get => m_Resolver; - set - { - if (m_Resolver == value) - return; - - lock (StaffHistory.RenderLock) - { - m_Resolver?.Unregister(this); - - m_Resolver = value; - - m_Resolver?.Register(this); - } - } - } - - public UserInfo Sender - { - get => m_Sender; - set - { - if (m_Sender == value) - return; - - lock (StaffHistory.RenderLock) - { - m_Sender?.Unregister(this); - - m_Sender = value; - - m_Sender?.Register(this); - } - } - } - - public StaffHistory History - { - get => m_History; - set - { - if (m_History == value) - return; - - if (m_History != null) - { - Sender = null; - Resolver = null; - } - - m_History = value; - - if (m_History != null) - { - Sender = m_History.GetUserInfo(m_SentBy); - UpdateResolver(); - } - } - } - - public PageType PageType{ get; set; } - - public PageResolution Resolution{ get; private set; } - - public DateTime TimeSent{ get; set; } - - public DateTime TimeResolved{ get; private set; } - - public string SentBy - { - get => m_SentBy; - set - { - m_SentBy = value; - - if (m_History != null) - Sender = m_History.GetUserInfo(m_SentBy); - } - } - - public string ResolvedBy{ get; private set; } - - public string Message{ get; set; } - - public ResponseInfoCollection Responses{ get; set; } - - public void UpdateResolver() - { - PageResolution res = GetResolution(out string resolvedBy, out DateTime timeResolved); - - if (m_History != null && IsStaffResolution(res)) - Resolver = m_History.GetStaffInfo(resolvedBy); - else - Resolver = null; - - ResolvedBy = resolvedBy; - TimeResolved = timeResolved; - Resolution = res; - } - - public bool IsStaffResolution(PageResolution res) - { - return res == PageResolution.Handled; - } - - public static PageResolution ResFromResp(string resp) - { - switch (resp) - { - case "[Handled]": return PageResolution.Handled; - case "[Deleting]": return PageResolution.Deleted; - case "[Logout]": return PageResolution.Logged; - case "[Canceled]": return PageResolution.Canceled; - } - - return PageResolution.None; - } - - public PageResolution GetResolution(out string resolvedBy, out DateTime timeResolved) - { - for (int i = Responses.Count - 1; i >= 0; --i) - { - ResponseInfo resp = Responses[i]; - PageResolution res = ResFromResp(resp.Message); - - if (res != PageResolution.None) - { - resolvedBy = resp.SentBy; - timeResolved = resp.TimeStamp; - return res; - } - } - - resolvedBy = m_SentBy; - timeResolved = TimeSent; - return PageResolution.None; - } - - public static string GetAccount(Mobile mob) - { - return mob?.Account is Account acct ? acct.Username : null; - } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetInt32("p", (int)PageType); - - op.SetDateTime("ts", TimeSent); - op.SetString("s", m_SentBy); - - op.SetString("m", Message); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - PageType = (PageType)ip.GetInt32("p"); - - TimeSent = ip.GetDateTime("ts"); - m_SentBy = ip.GetString("s"); - - Message = ip.GetString("m"); - } - - public override void SerializeChildren(PersistanceWriter op) - { - lock (this) - { - for (int i = 0; i < Responses.Count; ++i) - Responses[i].Serialize(op); - } - } - - public override void DeserializeChildren(PersistanceReader ip) - { - while (ip.HasChild) - Responses.Add(ip.GetChild() as ResponseInfo); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("pi", Construct); - - private static PersistableObject Construct() - { - return new PageInfo(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/PageInfoCollection.cs b/Scripts/Engines/Reports/Objects/Staffing/PageInfoCollection.cs deleted file mode 100644 index 96a76f9ba..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/PageInfoCollection.cs +++ /dev/null @@ -1,182 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.PageInfo. - /// - public class PageInfoCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.PageInfo at a specific position in the PageInfoCollection. - /// - public PageInfo this[int index] - { - get => (PageInfo)List[index]; - set => List[index] = value; - } - - /// - /// Append a Server.Engines.Reports.PageInfo entry to this collection. - /// - /// Server.Engines.Reports.PageInfo instance. - /// The position into which the new element was inserted. - public int Add(PageInfo value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.PageInfo instance is in this collection. - /// - /// Server.Engines.Reports.PageInfo instance to search for. - /// True if the Server.Engines.Reports.PageInfo instance is in the collection; otherwise false. - public bool Contains(PageInfo value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.PageInfo instance is in this collection. - /// - /// Server.Engines.Reports.PageInfo instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.PageInfo instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(PageInfo value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.PageInfo instance from this collection. - /// - /// The Server.Engines.Reports.PageInfo instance to remove. - public void Remove(PageInfo value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.PageInfo instance. - /// - /// An Server.Engines.Reports.PageInfo's enumerator. - public new PageInfoCollectionEnumerator GetEnumerator() - { - return new PageInfoCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.PageInfo instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.PageInfo instance to insert. - public void Insert(int index, PageInfo value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.PageInfo. - /// - public class PageInfoCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private PageInfoCollection _collection; - - /// - /// Current element pointed to. - /// - private PageInfo _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal PageInfoCollectionEnumerator(PageInfoCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.PageInfo object in the enumerated PageInfoCollection currently indexed by this instance. - /// - public PageInfo Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/QueueStatus.cs b/Scripts/Engines/Reports/Objects/Staffing/QueueStatus.cs deleted file mode 100644 index eb68b29ab..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/QueueStatus.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; - -namespace Server.Engines.Reports -{ - public class QueueStatus : PersistableObject - { - public QueueStatus() - { - } - - public QueueStatus(int count) - { - TimeStamp = DateTime.UtcNow; - Count = count; - } - - public DateTime TimeStamp{ get; set; } - - public int Count{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetDateTime("t", TimeStamp); - op.SetInt32("c", Count); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - TimeStamp = ip.GetDateTime("t"); - Count = ip.GetInt32("c"); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("qs", Construct); - - private static PersistableObject Construct() - { - return new QueueStatus(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/QueueStatusCollection.cs b/Scripts/Engines/Reports/Objects/Staffing/QueueStatusCollection.cs deleted file mode 100644 index 7efc7f6dc..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/QueueStatusCollection.cs +++ /dev/null @@ -1,183 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.QueueStatus. - /// - public class QueueStatusCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.QueueStatus at a specific position in the QueueStatusCollection. - /// - public QueueStatus this[int index] - { - get => (QueueStatus)List[index]; - set => List[index] = value; - } - - /// - /// Append a Server.Engines.Reports.QueueStatus entry to this collection. - /// - /// Server.Engines.Reports.QueueStatus instance. - /// The position into which the new element was inserted. - public int Add(QueueStatus value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.QueueStatus instance is in this collection. - /// - /// Server.Engines.Reports.QueueStatus instance to search for. - /// True if the Server.Engines.Reports.QueueStatus instance is in the collection; otherwise false. - public bool Contains(QueueStatus value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.QueueStatus instance is in this collection. - /// - /// Server.Engines.Reports.QueueStatus instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.QueueStatus instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(QueueStatus value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.QueueStatus instance from this collection. - /// - /// The Server.Engines.Reports.QueueStatus instance to remove. - public void Remove(QueueStatus value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.QueueStatus instance. - /// - /// An Server.Engines.Reports.QueueStatus's enumerator. - public new QueueStatusCollectionEnumerator GetEnumerator() - { - return new QueueStatusCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.QueueStatus instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.QueueStatus instance to insert. - public void Insert(int index, QueueStatus value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.QueueStatus. - /// - public class QueueStatusCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private QueueStatusCollection _collection; - - /// - /// Current element pointed to. - /// - private QueueStatus _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal QueueStatusCollectionEnumerator(QueueStatusCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.QueueStatus object in the enumerated QueueStatusCollection currently indexed by this - /// instance. - /// - public QueueStatus Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/ResponseInfo.cs b/Scripts/Engines/Reports/Objects/Staffing/ResponseInfo.cs deleted file mode 100644 index 7eafcc5e8..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/ResponseInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; - -namespace Server.Engines.Reports -{ - public class ResponseInfo : PersistableObject - { - public ResponseInfo() - { - } - - public ResponseInfo(string sentBy, string message) - { - TimeStamp = DateTime.UtcNow; - SentBy = sentBy; - Message = message; - } - - public DateTime TimeStamp{ get; set; } - - public string SentBy{ get; set; } - - public string Message{ get; set; } - - public override void SerializeAttributes(PersistanceWriter op) - { - op.SetDateTime("t", TimeStamp); - - op.SetString("s", SentBy); - op.SetString("m", Message); - } - - public override void DeserializeAttributes(PersistanceReader ip) - { - TimeStamp = ip.GetDateTime("t"); - - SentBy = ip.GetString("s"); - Message = ip.GetString("m"); - } - - #region Type Identification - - public static readonly PersistableType ThisTypeID = new PersistableType("rs", Construct); - - private static PersistableObject Construct() - { - return new ResponseInfo(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/ResponseInfoCollection.cs b/Scripts/Engines/Reports/Objects/Staffing/ResponseInfoCollection.cs deleted file mode 100644 index d3ab87e8b..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/ResponseInfoCollection.cs +++ /dev/null @@ -1,188 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version: 1.1.4322.573 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.ResponseInfo. - /// - public class ResponseInfoCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.ResponseInfo at a specific position in the ResponseInfoCollection. - /// - public ResponseInfo this[int index] - { - get => (ResponseInfo)List[index]; - set => List[index] = value; - } - - public int Add(string sentBy, string message) - { - return Add(new ResponseInfo(sentBy, message)); - } - - /// - /// Append a Server.Engines.Reports.ResponseInfo entry to this collection. - /// - /// Server.Engines.Reports.ResponseInfo instance. - /// The position into which the new element was inserted. - public int Add(ResponseInfo value) - { - return List.Add(value); - } - - /// - /// Determines whether a specified Server.Engines.Reports.ResponseInfo instance is in this collection. - /// - /// Server.Engines.Reports.ResponseInfo instance to search for. - /// True if the Server.Engines.Reports.ResponseInfo instance is in the collection; otherwise false. - public bool Contains(ResponseInfo value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.ResponseInfo instance is in this collection. - /// - /// Server.Engines.Reports.ResponseInfo instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.ResponseInfo instance. If the object is not found, the - /// return value is -1. - /// - public int IndexOf(ResponseInfo value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.ResponseInfo instance from this collection. - /// - /// The Server.Engines.Reports.ResponseInfo instance to remove. - public void Remove(ResponseInfo value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.ResponseInfo instance. - /// - /// An Server.Engines.Reports.ResponseInfo's enumerator. - public new ResponseInfoCollectionEnumerator GetEnumerator() - { - return new ResponseInfoCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.ResponseInfo instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.ResponseInfo instance to insert. - public void Insert(int index, ResponseInfo value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.ResponseInfo. - /// - public class ResponseInfoCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ResponseInfoCollection _collection; - - /// - /// Current element pointed to. - /// - private ResponseInfo _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ResponseInfoCollectionEnumerator(ResponseInfoCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.ResponseInfo object in the enumerated ResponseInfoCollection currently indexed by this - /// instance. - /// - public ResponseInfo Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Objects/Staffing/StaffHistory.cs b/Scripts/Engines/Reports/Objects/Staffing/StaffHistory.cs deleted file mode 100644 index 9352c4303..000000000 --- a/Scripts/Engines/Reports/Objects/Staffing/StaffHistory.cs +++ /dev/null @@ -1,399 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -namespace Server.Engines.Reports -{ - public class StaffHistory : PersistableObject - { - public static readonly PersistableType ThisTypeID = new PersistableType("stfhst", Construct); - public static readonly object RenderLock = new object(); - public static readonly object SaveLock = new object(); - - public StaffHistory() - { - Pages = new PageInfoCollection(); - QueueStats = new QueueStatusCollection(); - - UserInfo = new Dictionary(StringComparer.OrdinalIgnoreCase); - StaffInfo = new Dictionary(StringComparer.OrdinalIgnoreCase); - } - - public PageInfoCollection Pages{ get; set; } - - public QueueStatusCollection QueueStats{ get; set; } - - public Dictionary UserInfo{ get; set; } - - public Dictionary StaffInfo{ get; set; } - - public void AddPage(PageInfo info) - { - lock (SaveLock) - { - Pages.Add(info); - } - - info.History = this; - } - - public StaffInfo GetStaffInfo(string account) - { - lock (RenderLock) - { - if (string.IsNullOrEmpty(account)) - return null; - - if (!StaffInfo.TryGetValue(account, out StaffInfo info)) - StaffInfo[account] = info = new StaffInfo(account); - - return info; - } - } - - public UserInfo GetUserInfo(string account) - { - if (string.IsNullOrEmpty(account)) - return null; - - if (!UserInfo.TryGetValue(account, out UserInfo info)) - UserInfo[account] = info = new UserInfo(account); - - return info; - } - - public void Save() - { - lock (SaveLock) - { - string path = Path.Combine(Core.BaseDirectory, "staffHistory.xml"); - PersistanceWriter pw = new XmlPersistanceWriter(path, "Staff"); - - pw.WriteDocument(this); - - pw.Close(); - } - } - - public void Load() - { - string path = Path.Combine(Core.BaseDirectory, "staffHistory.xml"); - - if (!File.Exists(path)) - return; - - PersistanceReader pr = new XmlPersistanceReader(path, "Staff"); - - pr.ReadDocument(this); - - pr.Close(); - } - - public override void SerializeChildren(PersistanceWriter op) - { - for (int i = 0; i < Pages.Count; ++i) - Pages[i].Serialize(op); - - for (int i = 0; i < QueueStats.Count; ++i) - QueueStats[i].Serialize(op); - } - - public override void DeserializeChildren(PersistanceReader ip) - { - DateTime min = DateTime.UtcNow - TimeSpan.FromDays(8.0); - - while (ip.HasChild) - { - PersistableObject obj = ip.GetChild(); - - if (obj is PageInfo pageInfo) - { - pageInfo.UpdateResolver(); - - if (pageInfo.TimeSent >= min || pageInfo.TimeResolved >= min) - { - Pages.Add(pageInfo); - pageInfo.History = this; - } - else - { - pageInfo.Sender = null; - pageInfo.Resolver = null; - } - } - else if (obj is QueueStatus queueStatus) - { - if (queueStatus.TimeStamp >= min) - QueueStats.Add(queueStatus); - } - } - } - - public StaffInfo[] GetStaff() - { - StaffInfo[] staff = new StaffInfo[StaffInfo.Count]; - int index = 0; - - foreach (StaffInfo staffInfo in StaffInfo.Values) - staff[index++] = staffInfo; - - return staff; - } - - public void Render(ObjectCollection objects) - { - lock (RenderLock) - { - objects.Add(GraphQueueStatus()); - - StaffInfo[] staff = GetStaff(); - - BaseInfo.SortRange = TimeSpan.FromDays(7.0); - Array.Sort(staff); - - objects.Add(GraphHourlyPages(Pages, PageResolution.None, "New pages by hour", "graph_new_pages_hr")); - objects.Add(GraphHourlyPages(Pages, PageResolution.Handled, "Handled pages by hour", - "graph_handled_pages_hr")); - objects.Add(GraphHourlyPages(Pages, PageResolution.Deleted, "Deleted pages by hour", - "graph_deleted_pages_hr")); - objects.Add(GraphHourlyPages(Pages, PageResolution.Canceled, "Canceled pages by hour", - "graph_canceled_pages_hr")); - objects.Add(GraphHourlyPages(Pages, PageResolution.Logged, "Logged-out pages by hour", - "graph_logged_pages_hr")); - - BaseInfo.SortRange = TimeSpan.FromDays(1.0); - Array.Sort(staff); - - objects.Add(ReportTotalPages(staff, TimeSpan.FromDays(1.0), "1 Day")); - objects.AddRange(ChartTotalPages(staff, TimeSpan.FromDays(1.0), "1 Day", "graph_daily_pages")); - - BaseInfo.SortRange = TimeSpan.FromDays(7.0); - Array.Sort(staff); - - objects.Add(ReportTotalPages(staff, TimeSpan.FromDays(7.0), "1 Week")); - objects.AddRange(ChartTotalPages(staff, TimeSpan.FromDays(7.0), "1 Week", "graph_weekly_pages")); - - BaseInfo.SortRange = TimeSpan.FromDays(30.0); - Array.Sort(staff); - - objects.Add(ReportTotalPages(staff, TimeSpan.FromDays(30.0), "1 Month")); - objects.AddRange(ChartTotalPages(staff, TimeSpan.FromDays(30.0), "1 Month", "graph_monthly_pages")); - - for (int i = 0; i < staff.Length; ++i) - objects.Add(GraphHourlyPages(staff[i])); - } - } - - public static int GetPageCount(StaffInfo staff, DateTime min, DateTime max) - { - return GetPageCount(staff.Pages, PageResolution.Handled, min, max); - } - - public static int GetPageCount(PageInfoCollection pages, PageResolution res, DateTime min, DateTime max) - { - int count = 0; - - for (int i = 0; i < pages.Count; ++i) - { - if (res != PageResolution.None && pages[i].Resolution != res) - continue; - - DateTime ts = pages[i].TimeResolved; - - if (ts >= min && ts < max) - ++count; - } - - return count; - } - - private BarGraph GraphQueueStatus() - { - int[] totals = new int[24]; - int[] counts = new int[24]; - - DateTime max = DateTime.UtcNow; - DateTime min = max - TimeSpan.FromDays(7.0); - - for (int i = 0; i < QueueStats.Count; ++i) - { - DateTime ts = QueueStats[i].TimeStamp; - - if (ts >= min && ts < max) - { - TimeSpan time = ts.TimeOfDay; - - int hour = time.Hours; - - totals[hour] += QueueStats[i].Count; - counts[hour]++; - } - } - - BarGraph barGraph = new BarGraph("Average pages in queue", "graph_pagequeue_avg", 10, "Time", "Pages", - BarGraphRenderMode.Lines) { FontSize = 6 }; - - - for (int i = 7; i <= totals.Length + 7; ++i) - { - int val; - - if (counts[i % totals.Length] == 0) - val = 0; - else - val = (totals[i % totals.Length] + counts[i % totals.Length] / 2) / counts[i % totals.Length]; - - int realHours = i % totals.Length; - int hours; - - if (realHours == 0) - hours = 12; - else if (realHours > 12) - hours = realHours - 12; - else - hours = realHours; - - barGraph.Items.Add(hours + (realHours >= 12 ? " PM" : " AM"), val); - } - - return barGraph; - } - - private BarGraph GraphHourlyPages(StaffInfo staff) - { - return GraphHourlyPages(staff.Pages, PageResolution.Handled, "Average pages handled by " + staff.Display, - "graphs_" + staff.Account.ToLower() + "_avg"); - } - - private BarGraph GraphHourlyPages(PageInfoCollection pages, PageResolution res, string title, string fname) - { - int[] totals = new int[24]; - int[] counts = new int[24]; - - DateTime[] dates = new DateTime[24]; - - DateTime max = DateTime.UtcNow; - DateTime min = max - TimeSpan.FromDays(7.0); - - bool sentStamp = res == PageResolution.None; - - for (int i = 0; i < pages.Count; ++i) - { - if (res != PageResolution.None && pages[i].Resolution != res) - continue; - - DateTime ts = sentStamp ? pages[i].TimeSent : pages[i].TimeResolved; - - if (ts >= min && ts < max) - { - DateTime date = ts.Date; - TimeSpan time = ts.TimeOfDay; - - int hour = time.Hours; - - totals[hour]++; - - if (dates[hour] != date) - { - counts[hour]++; - dates[hour] = date; - } - } - } - - BarGraph barGraph = new BarGraph(title, fname, 10, "Time", "Pages", BarGraphRenderMode.Lines) { FontSize = 6 }; - - - for (int i = 7; i <= totals.Length + 7; ++i) - { - int val; - - if (counts[i % totals.Length] == 0) - val = 0; - else - val = (totals[i % totals.Length] + counts[i % totals.Length] / 2) / counts[i % totals.Length]; - - int realHours = i % totals.Length; - int hours; - - if (realHours == 0) - hours = 12; - else if (realHours > 12) - hours = realHours - 12; - else - hours = realHours; - - barGraph.Items.Add(hours + (realHours >= 12 ? " PM" : " AM"), val); - } - - return barGraph; - } - - private Report ReportTotalPages(StaffInfo[] staff, TimeSpan ts, string title) - { - DateTime max = DateTime.UtcNow; - DateTime min = max - ts; - - Report report = new Report(title + " Staff Report", "400"); - - report.Columns.Add("65%", "left", "Staff Name"); - report.Columns.Add("35%", "center", "Page Count"); - - for (int i = 0; i < staff.Length; ++i) - report.Items.Add(staff[i].Display, GetPageCount(staff[i], min, max)); - - return report; - } - - private PersistableObject[] ChartTotalPages(StaffInfo[] staff, TimeSpan ts, string title, string fname) - { - DateTime max = DateTime.UtcNow; - DateTime min = max - ts; - - PieChart staffChart = new PieChart(title + " Staff Chart", fname + "_staff", true); - - int other = 0; - - for (int i = 0; i < staff.Length; ++i) - { - int count = GetPageCount(staff[i], min, max); - - if (i < 12 && count > 0) - staffChart.Items.Add(staff[i].Display, count); - else - other += count; - } - - if (other > 0) - staffChart.Items.Add("Other", other); - - PieChart resChart = new PieChart(title + " Resolutions", fname + "_resol", true); - - int countTotal = GetPageCount(Pages, PageResolution.None, min, max); - int countHandled = GetPageCount(Pages, PageResolution.Handled, min, max); - int countDeleted = GetPageCount(Pages, PageResolution.Deleted, min, max); - int countCanceled = GetPageCount(Pages, PageResolution.Canceled, min, max); - int countLogged = GetPageCount(Pages, PageResolution.Logged, min, max); - int countUnres = countTotal - (countHandled + countDeleted + countCanceled + countLogged); - - resChart.Items.Add("Handled", countHandled); - resChart.Items.Add("Deleted", countDeleted); - resChart.Items.Add("Canceled", countCanceled); - resChart.Items.Add("Logged Out", countLogged); - resChart.Items.Add("Unresolved", countUnres); - - return new PersistableObject[] { staffChart, resChart }; - } - - #region Type Identification - - private static PersistableObject Construct() - { - return new StaffHistory(); - } - - public override PersistableType TypeID => ThisTypeID; - - #endregion - } -} diff --git a/Scripts/Engines/Reports/Persistance/PersistableObject.cs b/Scripts/Engines/Reports/Persistance/PersistableObject.cs deleted file mode 100644 index 0d26608f0..000000000 --- a/Scripts/Engines/Reports/Persistance/PersistableObject.cs +++ /dev/null @@ -1,44 +0,0 @@ -namespace Server.Engines.Reports -{ - public abstract class PersistableObject - { - public abstract PersistableType TypeID{ get; } - - public virtual void SerializeAttributes(PersistanceWriter op) - { - } - - public virtual void SerializeChildren(PersistanceWriter op) - { - } - - public void Serialize(PersistanceWriter op) - { - op.BeginObject(TypeID); - SerializeAttributes(op); - op.BeginChildren(); - SerializeChildren(op); - op.FinishChildren(); - op.FinishObject(); - } - - public virtual void DeserializeAttributes(PersistanceReader ip) - { - } - - public virtual void DeserializeChildren(PersistanceReader ip) - { - } - - public void Deserialize(PersistanceReader ip) - { - DeserializeAttributes(ip); - - if (ip.BeginChildren()) - { - DeserializeChildren(ip); - ip.FinishChildren(); - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Persistance/PersistableObjectCollection.cs b/Scripts/Engines/Reports/Persistance/PersistableObjectCollection.cs deleted file mode 100644 index 0d0c7e68d..000000000 --- a/Scripts/Engines/Reports/Persistance/PersistableObjectCollection.cs +++ /dev/null @@ -1,178 +0,0 @@ -using System; -using System.Collections; - -namespace Server.Engines.Reports -{ - /// - /// Strongly typed collection of Server.Engines.Reports.PersistableObject. - /// - public class ObjectCollection : CollectionBase - { - /// - /// Gets or sets the value of the Server.Engines.Reports.PersistableObject at a specific position in the ObjectCollection. - /// - public PersistableObject this[int index] - { - get => (PersistableObject)List[index]; - set => List[index] = value; - } - - /// - /// Append a Server.Engines.Reports.PersistableObject entry to this collection. - /// - /// Server.Engines.Reports.PersistableObject instance. - /// The position into which the new element was inserted. - public int Add(PersistableObject value) - { - return List.Add(value); - } - - public void AddRange(PersistableObject[] col) - { - InnerList.AddRange(col); - } - - /// - /// Determines whether a specified Server.Engines.Reports.PersistableObject instance is in this collection. - /// - /// Server.Engines.Reports.PersistableObject instance to search for. - /// True if the Server.Engines.Reports.PersistableObject instance is in the collection; otherwise false. - public bool Contains(PersistableObject value) - { - return List.Contains(value); - } - - /// - /// Retrieve the index a specified Server.Engines.Reports.PersistableObject instance is in this collection. - /// - /// Server.Engines.Reports.PersistableObject instance to find. - /// - /// The zero-based index of the specified Server.Engines.Reports.PersistableObject instance. If the object is not - /// found, the return value is -1. - /// - public int IndexOf(PersistableObject value) - { - return List.IndexOf(value); - } - - /// - /// Removes a specified Server.Engines.Reports.PersistableObject instance from this collection. - /// - /// The Server.Engines.Reports.PersistableObject instance to remove. - public void Remove(PersistableObject value) - { - List.Remove(value); - } - - /// - /// Returns an enumerator that can iterate through the Server.Engines.Reports.PersistableObject instance. - /// - /// An Server.Engines.Reports.PersistableObject's enumerator. - public new ObjectCollectionEnumerator GetEnumerator() - { - return new ObjectCollectionEnumerator(this); - } - - /// - /// Insert a Server.Engines.Reports.PersistableObject instance into this collection at a specified index. - /// - /// Zero-based index. - /// The Server.Engines.Reports.PersistableObject instance to insert. - public void Insert(int index, PersistableObject value) - { - List.Insert(index, value); - } - - /// - /// Strongly typed enumerator of Server.Engines.Reports.PersistableObject. - /// - public class ObjectCollectionEnumerator : IEnumerator - { - /// - /// Collection to enumerate. - /// - private ObjectCollection _collection; - - /// - /// Current element pointed to. - /// - private PersistableObject _currentElement; - - /// - /// Current index - /// - private int _index; - - /// - /// Default constructor for enumerator. - /// - /// Instance of the collection to enumerate. - internal ObjectCollectionEnumerator(ObjectCollection collection) - { - _index = -1; - _collection = collection; - } - - /// - /// Gets the Server.Engines.Reports.PersistableObject object in the enumerated ObjectCollection currently indexed by this - /// instance. - /// - public PersistableObject Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Gets the current element in the collection. - /// - object IEnumerator.Current - { - get - { - if (_index == -1 - || _index >= _collection.Count) - throw new IndexOutOfRangeException("Enumerator not started."); - - return _currentElement; - } - } - - /// - /// Reset the cursor, so it points to the beginning of the enumerator. - /// - public void Reset() - { - _index = -1; - _currentElement = null; - } - - /// - /// Advances the enumerator to the next queue of the enumeration, if one is currently available. - /// - /// - /// true, if the enumerator was successfully advanced to the next queue; false, if the enumerator has reached the end - /// of the enumeration. - /// - public bool MoveNext() - { - if (_index - < _collection.Count - 1) - { - _index = _index + 1; - _currentElement = _collection[_index]; - return true; - } - - _index = _collection.Count; - return false; - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Persistance/PersistableType.cs b/Scripts/Engines/Reports/Persistance/PersistableType.cs deleted file mode 100644 index 4d985e5c0..000000000 --- a/Scripts/Engines/Reports/Persistance/PersistableType.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Server.Engines.Reports -{ - public delegate PersistableObject ConstructCallback(); - - public sealed class PersistableTypeRegistry - { - private static Dictionary m_Table; - - static PersistableTypeRegistry() - { - m_Table = new Dictionary(StringComparer.OrdinalIgnoreCase); - - Register(Report.ThisTypeID); - Register(BarGraph.ThisTypeID); - Register(PieChart.ThisTypeID); - Register(Snapshot.ThisTypeID); - Register(ItemValue.ThisTypeID); - Register(ChartItem.ThisTypeID); - Register(ReportItem.ThisTypeID); - Register(ReportColumn.ThisTypeID); - Register(SnapshotHistory.ThisTypeID); - - Register(PageInfo.ThisTypeID); - Register(QueueStatus.ThisTypeID); - Register(StaffHistory.ThisTypeID); - Register(ResponseInfo.ThisTypeID); - } - - public static PersistableType Find(string name) - { - m_Table.TryGetValue(name, out PersistableType value); - return value; - } - - public static void Register(PersistableType type) - { - if (type != null) - m_Table[type.Name] = type; - } - } - - public sealed class PersistableType - { - public PersistableType(string name, ConstructCallback constructor) - { - Name = name; - Constructor = constructor; - } - - public string Name{ get; } - - public ConstructCallback Constructor{ get; } - } -} diff --git a/Scripts/Engines/Reports/Persistance/PersistanceReader.cs b/Scripts/Engines/Reports/Persistance/PersistanceReader.cs deleted file mode 100644 index 877fe6ec8..000000000 --- a/Scripts/Engines/Reports/Persistance/PersistanceReader.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.IO; -using System.Xml; - -namespace Server.Engines.Reports -{ - public abstract class PersistanceReader - { - public abstract bool HasChild{ get; } - public abstract int GetInt32(string key); - public abstract bool GetBoolean(string key); - public abstract string GetString(string key); - public abstract DateTime GetDateTime(string key); - - public abstract bool BeginChildren(); - public abstract void FinishChildren(); - public abstract PersistableObject GetChild(); - - public abstract void ReadDocument(PersistableObject root); - public abstract void Close(); - } - - public class XmlPersistanceReader : PersistanceReader - { - private bool m_HasChild; - private StreamReader m_Reader; - private string m_Title; - - private bool m_WasEmptyElement; - private XmlTextReader m_Xml; - - public XmlPersistanceReader(string filePath, string title) - { - m_Reader = new StreamReader(filePath); - m_Xml = new XmlTextReader(m_Reader); - m_Xml.WhitespaceHandling = WhitespaceHandling.None; - m_Title = title; - } - - public override bool HasChild => m_HasChild; - - public override int GetInt32(string key) - { - return XmlConvert.ToInt32(m_Xml.GetAttribute(key) ?? ""); - } - - public override bool GetBoolean(string key) - { - return XmlConvert.ToBoolean(m_Xml.GetAttribute(key) ?? ""); - } - - public override string GetString(string key) - { - return m_Xml.GetAttribute(key); - } - - public override DateTime GetDateTime(string key) - { - string val = m_Xml.GetAttribute(key); - - if (val == null) - return DateTime.MinValue; - - return XmlConvert.ToDateTime(val, XmlDateTimeSerializationMode.Utc); - } - - public override bool BeginChildren() - { - m_HasChild = !m_WasEmptyElement; - - m_Xml.Read(); - - return m_HasChild; - } - - public override void FinishChildren() - { - m_Xml.Read(); - } - - public override PersistableObject GetChild() - { - PersistableType type = PersistableTypeRegistry.Find(m_Xml.Name); - PersistableObject obj = type.Constructor(); - - m_WasEmptyElement = m_Xml.IsEmptyElement; - - obj.Deserialize(this); - - m_HasChild = m_Xml.NodeType == XmlNodeType.Element; - - return obj; - } - - public override void ReadDocument(PersistableObject root) - { - Console.Write("Reports: {0}: Loading...", m_Title); - m_Xml.Read(); - m_Xml.Read(); - m_HasChild = !m_Xml.IsEmptyElement; - root.Deserialize(this); - Console.WriteLine("done"); - } - - public override void Close() - { - m_Xml.Close(); - m_Reader.Close(); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Persistance/PersistanceWriter.cs b/Scripts/Engines/Reports/Persistance/PersistanceWriter.cs deleted file mode 100644 index 876598b0b..000000000 --- a/Scripts/Engines/Reports/Persistance/PersistanceWriter.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.IO; -using System.Xml; - -namespace Server.Engines.Reports -{ - public abstract class PersistanceWriter - { - public abstract void SetInt32(string key, int value); - public abstract void SetBoolean(string key, bool value); - public abstract void SetString(string key, string value); - public abstract void SetDateTime(string key, DateTime value); - - public abstract void BeginObject(PersistableType typeID); - public abstract void BeginChildren(); - public abstract void FinishChildren(); - public abstract void FinishObject(); - - public abstract void WriteDocument(PersistableObject root); - public abstract void Close(); - } - - public sealed class XmlPersistanceWriter : PersistanceWriter - { - private string m_RealFilePath; - private string m_TempFilePath; - private string m_Title; - - private StreamWriter m_Writer; - private XmlTextWriter m_Xml; - - public XmlPersistanceWriter(string filePath, string title) - { - m_RealFilePath = filePath; - m_TempFilePath = Path.ChangeExtension(filePath, ".tmp"); - - m_Writer = new StreamWriter(m_TempFilePath); - m_Xml = new XmlTextWriter(m_Writer); - - m_Title = title; - } - - public override void SetInt32(string key, int value) - { - m_Xml.WriteAttributeString(key, XmlConvert.ToString(value)); - } - - public override void SetBoolean(string key, bool value) - { - m_Xml.WriteAttributeString(key, XmlConvert.ToString(value)); - } - - public override void SetString(string key, string value) - { - if (value != null) - m_Xml.WriteAttributeString(key, value); - } - - public override void SetDateTime(string key, DateTime value) - { - if (value != DateTime.MinValue) - m_Xml.WriteAttributeString(key, XmlConvert.ToString(value, XmlDateTimeSerializationMode.Utc)); - } - - public override void BeginObject(PersistableType typeID) - { - m_Xml.WriteStartElement(typeID.Name); - } - - public override void BeginChildren() - { - } - - public override void FinishChildren() - { - } - - public override void FinishObject() - { - m_Xml.WriteEndElement(); - } - - public override void WriteDocument(PersistableObject root) - { - Console.WriteLine("Reports: {0}: Save started", m_Title); - - m_Xml.Formatting = Formatting.Indented; - m_Xml.IndentChar = '\t'; - m_Xml.Indentation = 1; - - m_Xml.WriteStartDocument(true); - - root.Serialize(this); - - Console.WriteLine("Reports: {0}: Save complete", m_Title); - } - - public override void Close() - { - m_Xml.Close(); - m_Writer.Close(); - - try - { - string renamed; - - if (File.Exists(m_RealFilePath)) - { - renamed = Path.ChangeExtension(m_RealFilePath, ".rem"); - File.Move(m_RealFilePath, renamed); - File.Move(m_TempFilePath, m_RealFilePath); - File.Delete(renamed); - } - else - { - File.Move(m_TempFilePath, m_RealFilePath); - } - } - catch (Exception ex) - { - Console.WriteLine(ex); - } - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Rendering/BarGraphRenderer.cs b/Scripts/Engines/Reports/Rendering/BarGraphRenderer.cs deleted file mode 100644 index ad5e8c2da..000000000 --- a/Scripts/Engines/Reports/Rendering/BarGraphRenderer.cs +++ /dev/null @@ -1,934 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Drawing.Imaging; -using System.Windows.Forms; - -namespace Server.Engines.Reports -{ - // Modified from MS sample - - //********************************************************************* - // - // BarGraph Class - // - // This class uses GDI+ to render Bar Chart. - // - //********************************************************************* - - public class BarRegion - { - public string m_Name; - public int m_RangeFrom, m_RangeTo; - - public BarRegion(int rangeFrom, int rangeTo, string name) - { - m_RangeFrom = rangeFrom; - m_RangeTo = rangeTo; - m_Name = name; - } - } - - public class BarGraphRenderer : ChartRenderer - { - private const float _graphLegendSpacer = 15F; - private const float _labelFontSize = 7f; - private const int _legendFontSize = 9; - private const float _legendRectangleSize = 10F; - private const float _spacer = 5F; - - // Overall related members - private Color _backColor; - - // Graph related members - private float _barWidth; - private float _bottomBuffer; // Space from bottom to x axis - private Color _fontColor; - private float _graphHeight; - private float _graphWidth; - - //********************************************************************* - // - // This method draws all the bars for the graph. - // - //********************************************************************* - - public int _interval; - - // Legend related members - private float _legendWidth; - private string _longestLabel = string.Empty; // Used to calculate legend width - private string _longestTickValue = string.Empty; // Used to calculate max value width - private float _maxLabelWidth; - private float _maxTickValueWidth; // Used to calculate left offset of bar graph - private float _maxValue; // = final tick value * tick count - - public BarRegion[] _regions; - private float _scaleFactor; // = _maxValue / _graphHeight - private float _spaceBtwBars; // For now same as _barWidth - private float _topBuffer; // Space from top to the top of y axis - private float _totalHeight; - private float _totalWidth; - private float _xOrigin; // x position where graph starts drawing - - private string _xTitle, _yTitle; - private float _yOrigin; // y position where graph starts drawing - private float _yTickValue; // Value for each tick = _maxValue/_yTickCount - - public BarGraphRenderer() - { - AssignDefaultSettings(); - } - - public BarGraphRenderer(Color bgColor) - { - AssignDefaultSettings(); - BackgroundColor = bgColor; - } - - public string FontFamily{ get; set; } - - public BarGraphRenderMode RenderMode{ get; set; } - - public Color BackgroundColor - { - set => _backColor = value; - } - - public int BottomBuffer - { - set => _bottomBuffer = Convert.ToSingle(value); - } - - public Color FontColor - { - set => _fontColor = value; - } - - public int Height - { - get => Convert.ToInt32(_totalHeight); - set => _totalHeight = Convert.ToSingle(value); - } - - public int Width - { - get => Convert.ToInt32(_totalWidth); - set => _totalWidth = Convert.ToSingle(value); - } - - public bool ShowLegend{ get; set; } - - public bool ShowData{ get; set; } - - public int TopBuffer - { - set => _topBuffer = Convert.ToSingle(value); - } - - public string VerticalLabel{ get; set; } - - public int VerticalTickCount{ get; set; } - - public void SetTitles(string xTitle, string yTitle) - { - _xTitle = xTitle; - _yTitle = yTitle; - } - - //********************************************************************* - // - // This method collects all data points and calculate all the necessary dimensions - // to draw the bar graph. It is the method called before invoking the Draw() method. - // labels is the x values. - // values is the y values. - // - //********************************************************************* - - public void CollectDataPoints(string[] labels, string[] values) - { - if (labels.Length == values.Length) - { - for (int i = 0; i < labels.Length; i++) - { - float temp = Convert.ToSingle(values[i]); - string shortLbl = MakeShortLabel(labels[i]); - - // For now put 0.0 for start position and sweep size - DataPoints.Add(new DataItem(shortLbl, labels[i], temp, 0.0f, 0.0f, GetColor(i))); - - // Find max value from data; this is only temporary _maxValue - if (_maxValue < temp) _maxValue = temp; - - // Find the longest description - if (ShowLegend) - { - string currentLbl = labels[i] + " (" + shortLbl + ")"; - float currentWidth = CalculateImgFontWidth(currentLbl, _legendFontSize, FontFamily); - if (_maxLabelWidth < currentWidth) - { - _longestLabel = currentLbl; - _maxLabelWidth = currentWidth; - } - } - } - - CalculateTickAndMax(); - CalculateGraphDimension(); - CalculateBarWidth(DataPoints.Count, _graphWidth); - CalculateSweepValues(); - } - else - { - throw new Exception("X data count is different from Y data count"); - } - } - - //********************************************************************* - // - // Same as above; called when user doesn't care about the x values - // - //********************************************************************* - - public void CollectDataPoints(string[] values) - { - string[] labels = values; - CollectDataPoints(labels, values); - } - - public void DrawRegions(Graphics gfx) - { - if (_regions == null) - return; - - using (StringFormat textFormat = new StringFormat()) - { - textFormat.Alignment = StringAlignment.Center; - textFormat.LineAlignment = StringAlignment.Center; - - using (Font font = new Font(FontFamily, _labelFontSize)) - { - using (Brush textBrush = new SolidBrush(_fontColor)) - { - using (Pen solidPen = new Pen(_fontColor)) - { - using (Pen lightPen = new Pen(Color.FromArgb(128, _fontColor))) - { - float labelWidth = _barWidth + _spaceBtwBars; - - for (int i = 0; i < _regions.Length; ++i) - { - BarRegion reg = _regions[i]; - - RectangleF rc = new RectangleF(_xOrigin + reg.m_RangeFrom * labelWidth, _yOrigin, - (reg.m_RangeTo - reg.m_RangeFrom + 1) * labelWidth, _graphHeight); - - if (rc.X + rc.Width > _xOrigin + _graphWidth) - rc.Width = _xOrigin + _graphWidth - rc.X; - - using (SolidBrush brsh = new SolidBrush(Color.FromArgb(48, GetColor(i)))) - { - gfx.FillRectangle(brsh, rc); - } - - rc.Offset((rc.Width - 200.0f) * 0.5f, -16.0f); - rc.Width = 200.0f; - rc.Height = 20.0f; - - gfx.DrawString(reg.m_Name, font, textBrush, rc, textFormat); - } - } - } - } - } - } - } - - //********************************************************************* - // - // This method returns a bar graph bitmap to the calling function. It is called after - // all dimensions and data points are calculated. - // - //********************************************************************* - - public override Bitmap Draw() - { - int height = Convert.ToInt32(_totalHeight); - int width = Convert.ToInt32(_totalWidth); - - Bitmap bmp = new Bitmap(width, height); - - using (Graphics graph = Graphics.FromImage(bmp)) - { - graph.CompositingQuality = CompositingQuality.HighQuality; - graph.SmoothingMode = SmoothingMode.AntiAlias; - - using (SolidBrush brsh = new SolidBrush(_backColor)) - { - graph.FillRectangle(brsh, -1, -1, bmp.Width + 1, bmp.Height + 1); - } - - DrawRegions(graph); - DrawVerticalLabelArea(graph); - DrawXLabelBack(graph); - DrawBars(graph); - DrawXLabelArea(graph); - - if (ShowLegend) - DrawLegend(graph); - } - - return bmp; - } - - private void DrawBars(Graphics graph) - { - SolidBrush brsFont = null; - Font valFont = null; - StringFormat sfFormat = null; - - try - { - brsFont = new SolidBrush(_fontColor); - valFont = new Font(FontFamily, _labelFontSize); - sfFormat = new StringFormat(); - sfFormat.Alignment = StringAlignment.Center; - int i = 0; - - PointF[] linePoints = null; - - if (RenderMode == BarGraphRenderMode.Lines) - linePoints = new PointF[DataPoints.Count]; - - int pointIndex = 0; - - // Draw bars and the value above each bar - using (Pen pen = new Pen(_fontColor, 0.15f)) - { - using (SolidBrush whiteBrsh = new SolidBrush(Color.FromArgb(128, Color.White))) - { - foreach (DataItem item in DataPoints) - using (SolidBrush barBrush = new SolidBrush(item.ItemColor)) - { - float itemY = _yOrigin + _graphHeight - item.SweepSize; - - if (RenderMode == BarGraphRenderMode.Lines) - { - linePoints[pointIndex++] = new PointF(_xOrigin + item.StartPos + _barWidth / 2, itemY); - } - else if (RenderMode == BarGraphRenderMode.Bars) - { - float ox = _xOrigin + item.StartPos; - float oy = itemY; - float ow = _barWidth; - float oh = item.SweepSize; - float of = 9.5f; - - PointF[] pts = - { - new PointF(ox, oy), - new PointF(ox + ow, oy), - new PointF(ox + of, oy + of), - new PointF(ox + of + ow, oy + of), - new PointF(ox, oy + oh), - new PointF(ox + of, oy + of + oh), - new PointF(ox + of + ow, oy + of + oh) - }; - - graph.FillPolygon(barBrush, new[] { pts[2], pts[3], pts[6], pts[5] }); - - using (SolidBrush ltBrsh = new SolidBrush(ControlPaint.Light(item.ItemColor, 0.1f))) - { - graph.FillPolygon(ltBrsh, new[] { pts[0], pts[2], pts[5], pts[4] }); - } - - using (SolidBrush drkBrush = new SolidBrush(ControlPaint.Dark(item.ItemColor, 0.05f))) - { - graph.FillPolygon(drkBrush, new[] { pts[0], pts[1], pts[3], pts[2] }); - } - - graph.DrawLine(pen, pts[0], pts[1]); - graph.DrawLine(pen, pts[0], pts[2]); - graph.DrawLine(pen, pts[1], pts[3]); - graph.DrawLine(pen, pts[2], pts[3]); - graph.DrawLine(pen, pts[2], pts[5]); - graph.DrawLine(pen, pts[0], pts[4]); - graph.DrawLine(pen, pts[4], pts[5]); - graph.DrawLine(pen, pts[5], pts[6]); - graph.DrawLine(pen, pts[3], pts[6]); - - // Draw data value - if (ShowData && i % _interval == 0) - { - float sectionWidth = _barWidth + _spaceBtwBars; - float startX = - _xOrigin + i * sectionWidth + - sectionWidth / 2; // This draws the value on center of the bar - float startY = - itemY - 2f - valFont.Height; // Positioned on top of each bar by 2 pixels - RectangleF recVal = new RectangleF(startX - sectionWidth * _interval / 2, startY, - sectionWidth * _interval, valFont.Height); - SizeF sz = graph.MeasureString(item.Value.ToString("#,###.##"), valFont, recVal.Size, - sfFormat); - //using ( SolidBrush brsh = new SolidBrush( Color.FromArgb( 180, 255, 255, 255 ) ) ) - // graph.FillRectangle( brsh, new RectangleF(recVal.X+((recVal.Width-sz.Width)/2),recVal.Y+((recVal.Height-sz.Height)/2),sz.Width+4,sz.Height) ); - - //graph.DrawString(item.Value.ToString("#,###.##"), valFont, brsFont, recVal, sfFormat); - - for (int box = -1; box <= 1; ++box) - for (int boy = -1; boy <= 1; ++boy) - { - if (box == 0 && boy == 0) - continue; - - RectangleF rco = new RectangleF(recVal.X + box, recVal.Y + boy, recVal.Width, - recVal.Height); - graph.DrawString(item.Value.ToString("#,###.##"), valFont, whiteBrsh, rco, - sfFormat); - } - - graph.DrawString(item.Value.ToString("#,###.##"), valFont, brsFont, recVal, - sfFormat); - } - } - - i++; - } - - if (RenderMode == BarGraphRenderMode.Lines) - { - if (linePoints.Length >= 2) - using (Pen linePen = new Pen(Color.FromArgb(220, Color.Red), 2.5f)) - { - graph.DrawCurve(linePen, linePoints, 0.5f); - } - - using (Pen linePen = new Pen(Color.FromArgb(40, _fontColor), 0.8f)) - { - for (int j = 0; j < linePoints.Length; ++j) - { - graph.DrawLine(linePen, linePoints[j], - new PointF(linePoints[j].X, _yOrigin + _graphHeight)); - - DataItem item = DataPoints[j]; - float itemY = _yOrigin + _graphHeight - item.SweepSize; - - // Draw data value - if (ShowData && j % _interval == 0) - { - graph.FillEllipse(brsFont, - new RectangleF(linePoints[j].X - 2.0f, linePoints[j].Y - 2.0f, 4.0f, 4.0f)); - - float sectionWidth = _barWidth + _spaceBtwBars; - float startX = - _xOrigin + j * sectionWidth + - sectionWidth / 2; // This draws the value on center of the bar - float startY = - itemY - 2f - valFont.Height; // Positioned on top of each bar by 2 pixels - RectangleF recVal = new RectangleF(startX - sectionWidth * _interval / 2, startY, - sectionWidth * _interval, valFont.Height); - SizeF sz = graph.MeasureString(item.Value.ToString("#,###.##"), valFont, recVal.Size, - sfFormat); - //using ( SolidBrush brsh = new SolidBrush( Color.FromArgb( 48, 255, 255, 255 ) ) ) - // graph.FillRectangle( brsh, new RectangleF(recVal.X+((recVal.Width-sz.Width)/2),recVal.Y+((recVal.Height-sz.Height)/2),sz.Width+4,sz.Height) ); - - for (int box = -1; box <= 1; ++box) - for (int boy = -1; boy <= 1; ++boy) - { - if (box == 0 && boy == 0) - continue; - - RectangleF rco = new RectangleF(recVal.X + box, recVal.Y + boy, recVal.Width, - recVal.Height); - graph.DrawString(item.Value.ToString("#,###.##"), valFont, whiteBrsh, rco, - sfFormat); - } - - graph.DrawString(item.Value.ToString("#,###.##"), valFont, brsFont, recVal, - sfFormat); - } - } - } - } - } - } - } - finally - { - brsFont?.Dispose(); - valFont?.Dispose(); - sfFormat?.Dispose(); - } - } - - //********************************************************************* - // - // This method draws the y label, tick marks, tick values, and the y axis. - // - //********************************************************************* - - private void DrawVerticalLabelArea(Graphics graph) - { - Font lblFont = null; - SolidBrush brs = null; - StringFormat lblFormat = null; - Pen pen = null; - StringFormat sfVLabel = null; - - float fo = _yTitle == null ? 0.0f : 20.0f; - - try - { - brs = new SolidBrush(_fontColor); - lblFormat = new StringFormat(); - pen = new Pen(_fontColor); - - if (_yTitle != null) - { - sfVLabel = new StringFormat(); - sfVLabel.Alignment = StringAlignment.Center; - sfVLabel.LineAlignment = StringAlignment.Center; - sfVLabel.FormatFlags = StringFormatFlags.DirectionVertical; - - lblFont = new Font(FontFamily, _labelFontSize + 4.0f); - graph.DrawString(_yTitle, lblFont, brs, new RectangleF(0.0f, _yOrigin, 20.0f, _graphHeight), sfVLabel); - lblFont.Dispose(); - } - - sfVLabel = new StringFormat(); - lblFormat.Alignment = StringAlignment.Far; - lblFormat.FormatFlags |= StringFormatFlags.NoClip; - - // Draw vertical label at the top of y-axis and place it in the middle top of y-axis - lblFont = new Font(FontFamily, _labelFontSize + 2.0f, FontStyle.Bold); - RectangleF recVLabel = - new RectangleF(0, _yOrigin - 2 * _spacer - lblFont.Height, _xOrigin * 2, lblFont.Height); - sfVLabel.Alignment = StringAlignment.Center; - sfVLabel.FormatFlags |= StringFormatFlags.NoClip; - //graph.DrawRectangle(Pens.Black,Rectangle.Truncate(recVLabel)); - graph.DrawString(VerticalLabel, lblFont, brs, recVLabel, sfVLabel); - lblFont.Dispose(); - - lblFont = new Font(FontFamily, _labelFontSize); - // Draw all tick values and tick marks - using (Pen smallPen = new Pen(Color.FromArgb(96, _fontColor), 0.8f)) - { - for (int i = 0; i < VerticalTickCount; i++) - { - float currentY = _topBuffer + i * _yTickValue / _scaleFactor; // Position for tick mark - float labelY = currentY - lblFont.Height / 2.0f; // Place label in the middle of tick - RectangleF lblRec = new RectangleF(_spacer + fo - 6, labelY, _maxTickValueWidth, lblFont.Height); - - float currentTick = _maxValue - i * _yTickValue; // Calculate tick value from top to bottom - graph.DrawString(currentTick.ToString("#,###.##"), lblFont, brs, lblRec, - lblFormat); // Draw tick value - graph.DrawLine(pen, _xOrigin, currentY, _xOrigin - 4.0f, currentY); // Draw tick mark - - graph.DrawLine(smallPen, _xOrigin, currentY, _xOrigin + _graphWidth, currentY); - } - } - - // Draw y axis - graph.DrawLine(pen, _xOrigin, _yOrigin, _xOrigin, _yOrigin + _graphHeight); - } - finally - { - lblFont?.Dispose(); - brs?.Dispose(); - lblFormat?.Dispose(); - pen?.Dispose(); - sfVLabel?.Dispose(); - } - } - - //********************************************************************* - // - // This method draws x axis and all x labels - // - //********************************************************************* - - private void DrawXLabelBack(Graphics graph) - { - Font lblFont = null; - SolidBrush brs = null; - StringFormat lblFormat = null; - Pen pen = null; - - try - { - lblFont = new Font(FontFamily, _labelFontSize); - brs = new SolidBrush(_fontColor); - lblFormat = new StringFormat(); - pen = new Pen(_fontColor); - - lblFormat.Alignment = StringAlignment.Center; - - // Draw x axis - graph.DrawLine(pen, _xOrigin, _yOrigin + _graphHeight, _xOrigin + _graphWidth, _yOrigin + _graphHeight); - } - finally - { - lblFont?.Dispose(); - brs?.Dispose(); - lblFormat?.Dispose(); - pen?.Dispose(); - } - } - - private void DrawXLabelArea(Graphics graph) - { - Font lblFont = null; - SolidBrush brs = null; - StringFormat lblFormat = null; - Pen pen = null; - - try - { - brs = new SolidBrush(_fontColor); - pen = new Pen(_fontColor); - - if (_xTitle != null) - { - lblFormat = new StringFormat(); - lblFormat.Alignment = StringAlignment.Center; - lblFormat.LineAlignment = StringAlignment.Center; - // sfVLabel.FormatFlags=StringFormatFlags.DirectionVertical; - - lblFont = new Font(FontFamily, _labelFontSize + 2.0f, FontStyle.Bold); - graph.DrawString(_xTitle, lblFont, brs, - new RectangleF(_xOrigin, - _yOrigin + _graphHeight + 14.0f + (RenderMode == BarGraphRenderMode.Bars ? 10.0f : 0.0f) + - (DataPoints.Count / _interval > 24 ? 16.0f : 0.0f), _graphWidth, 20.0f), lblFormat); - } - - lblFont = new Font(FontFamily, _labelFontSize); - lblFormat = new StringFormat(); - lblFormat.Alignment = StringAlignment.Center; - lblFormat.FormatFlags |= StringFormatFlags.NoClip; - lblFormat.Trimming = StringTrimming.None; - //lblFormat.FormatFlags |= StringFormatFlags.NoWrap; - - float of = 0.0f; - - if (RenderMode == BarGraphRenderMode.Bars) - { - of = 10.0f; - - // Draw x axis - graph.DrawLine(pen, _xOrigin + of, _yOrigin + _graphHeight + of, _xOrigin + _graphWidth + of, - _yOrigin + _graphHeight + of); - - graph.DrawLine(pen, _xOrigin, _yOrigin + _graphHeight, _xOrigin + of, _yOrigin + _graphHeight + of); - graph.DrawLine(pen, _xOrigin + _graphWidth, _yOrigin + _graphHeight, _xOrigin + of + _graphWidth, - _yOrigin + _graphHeight + of); - } - - float currentX; - float currentY = _yOrigin + _graphHeight + 2.0f; // All x labels are drawn 2 pixels below x-axis - float labelWidth = _barWidth + _spaceBtwBars; // Fits exactly below the bar - int i = 0; - - // Draw x labels - foreach (DataItem item in DataPoints) - { - if (i % _interval == 0) - { - currentX = _xOrigin + i * labelWidth + of + labelWidth / 2; - RectangleF recLbl = new RectangleF(currentX - labelWidth * _interval / 2, currentY + of, - labelWidth * _interval, lblFont.Height * 2); - string lblString = ShowLegend ? item.Label : item.Description; // Decide what to show: short or long - - graph.DrawString(lblString, lblFont, brs, recLbl, lblFormat); - } - - i++; - } - } - finally - { - lblFont?.Dispose(); - brs?.Dispose(); - lblFormat?.Dispose(); - pen?.Dispose(); - } - } - - //********************************************************************* - // - // This method determines where to place the legend box. - // It draws the legend border, legend description, and legend color code. - // - //********************************************************************* - - private void DrawLegend(Graphics graph) - { - Font lblFont = null; - SolidBrush brs = null; - StringFormat lblFormat = null; - Pen pen = null; - - try - { - lblFont = new Font(FontFamily, _legendFontSize); - brs = new SolidBrush(_fontColor); - lblFormat = new StringFormat(); - pen = new Pen(_fontColor); - lblFormat.Alignment = StringAlignment.Near; - - // Calculate Legend drawing start point - float startX = _xOrigin + _graphWidth + _graphLegendSpacer; - float startY = _yOrigin; - - float xColorCode = startX + _spacer; - float xLegendText = xColorCode + _legendRectangleSize + _spacer; - float legendHeight = 0.0f; - for (int i = 0; i < DataPoints.Count; i++) - { - DataItem point = DataPoints[i]; - string text = point.Description + " (" + point.Label + ")"; - float currentY = startY + _spacer + i * (lblFont.Height + _spacer); - legendHeight += lblFont.Height + _spacer; - - // Draw legend description - graph.DrawString(text, lblFont, brs, xLegendText, currentY, lblFormat); - - // Draw color code - using (SolidBrush brsh = new SolidBrush(DataPoints[i].ItemColor)) - { - graph.FillRectangle(brsh, xColorCode, currentY + 3f, _legendRectangleSize, _legendRectangleSize); - } - } - - // Draw legend border - graph.DrawRectangle(pen, startX, startY, _legendWidth, legendHeight + _spacer); - } - finally - { - lblFont?.Dispose(); - brs?.Dispose(); - lblFormat?.Dispose(); - pen?.Dispose(); - } - } - - //********************************************************************* - // - // This method calculates all measurement aspects of the bar graph from the given data points - // - //********************************************************************* - - private void CalculateGraphDimension() - { - FindLongestTickValue(); - - // Need to add another character for spacing; this is not used for drawing, just for calculation - _longestTickValue += "0"; - //_maxTickValueWidth = CalculateImgFontWidth(_longestTickValue, _labelFontSize, FontFamily); - _maxTickValueWidth = 0.0f; - - - float currentTick; - string tickString; - for (int i = 0; i < VerticalTickCount; i++) - { - currentTick = _maxValue - i * _yTickValue; - tickString = currentTick.ToString("#,###.##"); - - float measured = CalculateImgFontWidth(tickString, _labelFontSize, FontFamily); - - if (measured > _maxTickValueWidth) - _maxTickValueWidth = measured; - } - - float leftOffset = _spacer + _maxTickValueWidth + (_yTitle == null ? 0.0f : 20.0f); - float rtOffset = 0.0f; - - if (ShowLegend) - { - _legendWidth = _spacer + _legendRectangleSize + _spacer + _maxLabelWidth + _spacer; - rtOffset = _graphLegendSpacer + _legendWidth + _spacer; - } - else - { - rtOffset = _spacer; // Make graph in the middle - } - - if (RenderMode == BarGraphRenderMode.Bars) - rtOffset += 10.0f; - - rtOffset += 10.0f; - - _graphHeight = - _totalHeight - _topBuffer - _bottomBuffer - - (_xTitle == null ? 0.0f : 20.0f); // Buffer spaces are used to print labels - _graphWidth = _totalWidth - leftOffset - rtOffset; - _xOrigin = leftOffset; - _yOrigin = _topBuffer; - - // Once the correct _maxValue is determined, then calculate _scaleFactor - _scaleFactor = _maxValue / _graphHeight; - } - - //********************************************************************* - // - // This method determines the longest tick value from the given data points. - // The result is needed to calculate the correct graph dimension. - // - //********************************************************************* - - private void FindLongestTickValue() - { - float currentTick; - string tickString; - for (int i = 0; i < VerticalTickCount; i++) - { - currentTick = _maxValue - i * _yTickValue; - tickString = currentTick.ToString("#,###.##"); - if (_longestTickValue.Length < tickString.Length) - _longestTickValue = tickString; - } - } - - //********************************************************************* - // - // This method calculates the image width in pixel for a given text - // - //********************************************************************* - - private float CalculateImgFontWidth(string text, float size, string family) - { - Bitmap bmp = null; - Graphics graph = null; - Font font = null; - - try - { - font = new Font(family, size); - - // Calculate the size of the string. - bmp = new Bitmap(1, 1, PixelFormat.Format32bppArgb); - graph = Graphics.FromImage(bmp); - SizeF oSize = graph.MeasureString(text, font); - oSize.Width = 4 + (float)Math.Ceiling(oSize.Width); - - return oSize.Width; - } - finally - { - graph?.Dispose(); - bmp?.Dispose(); - font?.Dispose(); - } - } - - //********************************************************************* - // - // This method creates abbreviation from long description; used for making legend - // - //********************************************************************* - - private string MakeShortLabel(string text) - { - string label = text; - if (text.Length > 2) - { - int midPostition = Convert.ToInt32(Math.Floor(text.Length / 2.0)); - label = text.Substring(0, 1) + text.Substring(midPostition, 1) + text.Substring(text.Length - 1, 1); - } - - return label; - } - - //********************************************************************* - // - // This method calculates the max value and each tick mark value for the bar graph. - // - //********************************************************************* - - private void CalculateTickAndMax() - { - float tempMax = 0.0f; - - // Give graph some head room first about 10% of current max - _maxValue *= 1.1f; - - if (_maxValue != 0.0f) - { - // Find a rounded value nearest to the current max value - // Calculate this max first to give enough space to draw value on each bar - double exp = Convert.ToDouble(Math.Floor(Math.Log10(_maxValue))); - tempMax = Convert.ToSingle(Math.Ceiling(_maxValue / Math.Pow(10, exp)) * Math.Pow(10, exp)); - } - else - { - tempMax = 1.0f; - } - - // Once max value is calculated, tick value can be determined; tick value should be a whole number - _yTickValue = tempMax / VerticalTickCount; - double expTick = Convert.ToDouble(Math.Floor(Math.Log10(_yTickValue))); - _yTickValue = Convert.ToSingle(Math.Ceiling(_yTickValue / Math.Pow(10, expTick)) * Math.Pow(10, expTick)); - - // Re-calculate the max value with the new tick value - _maxValue = _yTickValue * VerticalTickCount; - } - - //********************************************************************* - // - // This method calculates the height for each bar in the graph - // - //********************************************************************* - - private void CalculateSweepValues() - { - // Called when all values and scale factor are known - // All values calculated here are relative from (_xOrigin, _yOrigin) - int i = 0; - foreach (DataItem item in DataPoints) - { - // This implementation does not support negative value - if (item.Value >= 0) item.SweepSize = item.Value / _scaleFactor; - - // (_spaceBtwBars/2) makes half white space for the first bar - item.StartPos = _spaceBtwBars / 2 + i * (_barWidth + _spaceBtwBars); - i++; - } - } - - //********************************************************************* - // - // This method calculates the width for each bar in the graph - // - //********************************************************************* - - private void CalculateBarWidth(int dataCount, float barGraphWidth) - { - // White space between each bar is the same as bar width itself - _barWidth = barGraphWidth / (dataCount * 2); // Each bar has 1 white space - //_barWidth =/* (float)Math.Floor(*/_barWidth/*)*/; - _spaceBtwBars = _barWidth; - } - - //********************************************************************* - // - // This method assigns default value to the bar graph properties and is only - // called from BarGraph constructors - // - //********************************************************************* - - private void AssignDefaultSettings() - { - // default values - _totalWidth = 680f; - _totalHeight = 450f; - FontFamily = "Verdana"; - _backColor = Color.White; - _fontColor = Color.Black; - _topBuffer = 30f; - _bottomBuffer = 30f; - VerticalTickCount = 2; - ShowLegend = false; - ShowData = false; - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Rendering/ChartRenderer.cs b/Scripts/Engines/Reports/Rendering/ChartRenderer.cs deleted file mode 100644 index 5ae6b20a7..000000000 --- a/Scripts/Engines/Reports/Rendering/ChartRenderer.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Drawing; - -namespace Server.Engines.Reports -{ - //********************************************************************* - // - // Chart Class - // - // Base class implementation for BarChart and PieChart - // - //********************************************************************* - - public abstract class ChartRenderer - { - private const int _colorLimit = 9; - - private Color[] _color = - { - Color.Firebrick, - Color.SkyBlue, - Color.MediumSeaGreen, - Color.MediumOrchid, - Color.Chocolate, - Color.SlateBlue, - Color.LightPink, - Color.LightGreen, - Color.Khaki - }; - - public ChartItemsCollection DataPoints{ get; set; } = new ChartItemsCollection(); - - // Represent collection of all data points for the chart - - // The implementation of this method is provided by derived classes - public abstract Bitmap Draw(); - - public void SetColor(int index, Color NewColor) - { - if (index < _colorLimit) - _color[index] = NewColor; - else - throw new Exception("Color Limit is " + _colorLimit); - } - - public Color GetColor(int index) - { - //return _color[index%_colorLimit]; - - if (index < _colorLimit) return _color[index]; - - return _color[(index + 2) % _colorLimit]; - //throw new Exception("Color Limit is " + _colorLimit); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Rendering/DataItem.cs b/Scripts/Engines/Reports/Rendering/DataItem.cs deleted file mode 100644 index f3fa982b1..000000000 --- a/Scripts/Engines/Reports/Rendering/DataItem.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.Collections; -using System.Drawing; - -namespace Server.Engines.Reports -{ - public class DataItem - { - private DataItem() - { - } - - public DataItem(string label, string desc, float data, float start, float sweep, Color clr) - { - Label = label; - Description = desc; - Value = data; - StartPos = start; - SweepSize = sweep; - ItemColor = clr; - } - - public string Label{ get; set; } - - public string Description{ get; set; } - - public float Value{ get; set; } - - public Color ItemColor{ get; set; } - - public float StartPos{ get; set; } - - public float SweepSize{ get; set; } - } - - public class ChartItemsCollection : CollectionBase - { - public DataItem this[int index] - { - get => (DataItem)List[index]; - set => List[index] = value; - } - - public int Add(DataItem value) - { - return List.Add(value); - } - - public int IndexOf(DataItem value) - { - return List.IndexOf(value); - } - - public bool Contains(DataItem value) - { - return List.Contains(value); - } - - public void Remove(DataItem value) - { - List.Remove(value); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Rendering/HtmlRenderer.cs b/Scripts/Engines/Reports/Rendering/HtmlRenderer.cs deleted file mode 100644 index c982c058f..000000000 --- a/Scripts/Engines/Reports/Rendering/HtmlRenderer.cs +++ /dev/null @@ -1,546 +0,0 @@ -using System; -using System.Diagnostics; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Web.UI; -using HtmlTag = System.Web.UI.HtmlTextWriterTag; -using HtmlAttr = System.Web.UI.HtmlTextWriterAttribute; - -namespace Server.Engines.Reports -{ - public class HtmlRenderer - { - private const string ShardTitle = "Shard"; - - private static readonly string FtpHost = null; - - private static readonly string FtpUsername = null; - private static readonly string FtpPassword = null; - - private static readonly string FtpStatsDirectory = null; - private static readonly string FtpStaffDirectory = null; - private ObjectCollection m_Objects; - private string m_OutputDirectory; - - private DateTime m_TimeStamp; - private string m_Title; - private string m_Type; - - private HtmlRenderer(string outputDirectory) - { - m_Type = outputDirectory; - m_Title = m_Type == "staff" ? "Staff" : "Stats"; - m_OutputDirectory = Path.Combine(Core.BaseDirectory, "output"); - - if (!Directory.Exists(m_OutputDirectory)) - Directory.CreateDirectory(m_OutputDirectory); - - m_OutputDirectory = Path.Combine(m_OutputDirectory, outputDirectory); - - if (!Directory.Exists(m_OutputDirectory)) - Directory.CreateDirectory(m_OutputDirectory); - } - - public HtmlRenderer(string outputDirectory, Snapshot ss, SnapshotHistory history) : this(outputDirectory) - { - m_TimeStamp = ss.TimeStamp; - - m_Objects = new ObjectCollection(); - - for (int i = 0; i < ss.Children.Count; ++i) - m_Objects.Add(ss.Children[i]); - - m_Objects.Add(BarGraph.OverTime(history, "General Stats", "Clients", 1, 100, 6)); - m_Objects.Add(BarGraph.OverTime(history, "General Stats", "Items", 24, 9, 1)); - m_Objects.Add(BarGraph.OverTime(history, "General Stats", "Players", 24, 9, 1)); - m_Objects.Add(BarGraph.OverTime(history, "General Stats", "NPCs", 24, 9, 1)); - m_Objects.Add(BarGraph.DailyAverage(history, "General Stats", "Clients")); - m_Objects.Add(BarGraph.Growth(history, "General Stats", "Clients")); - } - - public HtmlRenderer(string outputDirectory, StaffHistory history) : this(outputDirectory) - { - m_TimeStamp = DateTime.UtcNow; - - m_Objects = new ObjectCollection(); - - history.Render(m_Objects); - } - - public void Render() - { - Console.WriteLine("Reports: {0}: Render started", m_Title); - - RenderFull(); - - for (int i = 0; i < m_Objects.Count; ++i) - RenderSingle(m_Objects[i]); - - Console.WriteLine("Reports: {0}: Render complete", m_Title); - } - - public void Upload() - { - if (FtpHost == null) - return; - - Console.WriteLine("Reports: {0}: Upload started", m_Title); - - string filePath = Path.Combine(m_OutputDirectory, "upload.ftp"); - - using (StreamWriter op = new StreamWriter(filePath)) - { - op.WriteLine("open \"{0}\"", FtpHost); - op.WriteLine(FtpUsername); - op.WriteLine(FtpPassword); - op.WriteLine("cd \"{0}\"", m_Type == "staff" ? FtpStaffDirectory : FtpStatsDirectory); - op.WriteLine("mput \"{0}\"", Path.Combine(m_OutputDirectory, "*.html")); - op.WriteLine("mput \"{0}\"", Path.Combine(m_OutputDirectory, "*.css")); - op.WriteLine("binary"); - op.WriteLine("mput \"{0}\"", Path.Combine(m_OutputDirectory, "*.png")); - op.WriteLine("disconnect"); - op.Write("quit"); - } - - ProcessStartInfo psi = new ProcessStartInfo(); - - psi.FileName = "ftp"; - psi.Arguments = $"-i -s:\"{filePath}\""; - - psi.CreateNoWindow = true; - psi.WindowStyle = ProcessWindowStyle.Hidden; - //psi.UseShellExecute = true; - - try - { - Process p = Process.Start(psi); - - p?.WaitForExit(); - } - catch - { - // ignored - } - - Console.WriteLine("Reports: {0}: Upload complete", m_Title); - - try - { - File.Delete(filePath); - } - catch - { - // ignored - } - } - - public void RenderFull() - { - string filePath = Path.Combine(m_OutputDirectory, "reports.html"); - - using (StreamWriter op = new StreamWriter(filePath)) - { - using (HtmlTextWriter html = new HtmlTextWriter(op, "\t")) - { - RenderFull(html); - } - } - - string cssPath = Path.Combine(m_OutputDirectory, "styles.css"); - - if (File.Exists(cssPath)) - return; - - using (StreamWriter css = new StreamWriter(cssPath)) - { - css.WriteLine("body { background-color: #FFFFFF; font-family: verdana, arial; font-size: 11px; }"); - css.WriteLine("a { color: #28435E; }"); - css.WriteLine("a:hover { color: #4878A9; }"); - css.WriteLine("td.header { background-color: #9696AA; font-weight: bold; font-size: 12px; }"); - css.WriteLine("td.lentry { background-color: #D7D7EB; width: 10%; }"); - css.WriteLine("td.rentry { background-color: #FFFFFF; width: 90%; }"); - css.WriteLine("td.entry { background-color: #FFFFFF; }"); - css.WriteLine("td { font-size: 11px; }"); - css.Write(".tbl-border { background-color: #46465A; }"); - } - } - - public void RenderFull(HtmlTextWriter html) - { - html.RenderBeginTag(HtmlTag.Html); - - html.RenderBeginTag(HtmlTag.Head); - - html.RenderBeginTag(HtmlTag.Title); - html.Write("{0} Statistics", ShardTitle); - html.RenderEndTag(); - - html.AddAttribute("rel", "stylesheet"); - html.AddAttribute(HtmlAttr.Type, "text/css"); - html.AddAttribute(HtmlAttr.Href, "styles.css"); - html.RenderBeginTag(HtmlTag.Link); - html.RenderEndTag(); - - html.RenderEndTag(); - - html.RenderBeginTag(HtmlTag.Body); - - for (int i = 0; i < m_Objects.Count; ++i) - { - RenderDirect(m_Objects[i], html); - html.Write("

"); - } - - html.RenderBeginTag(HtmlTag.Center); - TimeZone tz = TimeZone.CurrentTimeZone; - - html.Write("Snapshot taken at {0:d} {0:t}. All times are {1}.", m_TimeStamp, tz.StandardName); - html.RenderEndTag(); - - html.RenderEndTag(); - - html.RenderEndTag(); - } - - public static string SafeFileName(string name) - { - return name.ToLower().Replace(' ', '_'); - } - - public void RenderSingle(PersistableObject obj) - { - string filePath = Path.Combine(m_OutputDirectory, SafeFileName(FindNameFrom(obj)) + ".html"); - - using (StreamWriter op = new StreamWriter(filePath)) - { - using (HtmlTextWriter html = new HtmlTextWriter(op, "\t")) - { - RenderSingle(obj, html); - } - } - } - - private string FindNameFrom(PersistableObject obj) - { - if (obj is Report report) - return report.Name; - if (obj is Chart chart) - return chart.Name; - - return "Invalid"; - } - - public void RenderSingle(PersistableObject obj, HtmlTextWriter html) - { - html.RenderBeginTag(HtmlTag.Html); - - html.RenderBeginTag(HtmlTag.Head); - - html.RenderBeginTag(HtmlTag.Title); - html.Write("{0} Statistics - {1}", ShardTitle, FindNameFrom(obj)); - html.RenderEndTag(); - - html.AddAttribute("rel", "stylesheet"); - html.AddAttribute(HtmlAttr.Type, "text/css"); - html.AddAttribute(HtmlAttr.Href, "styles.css"); - html.RenderBeginTag(HtmlTag.Link); - html.RenderEndTag(); - - html.RenderEndTag(); - - html.RenderBeginTag(HtmlTag.Body); - - html.RenderBeginTag(HtmlTag.Center); - - RenderDirect(obj, html); - - html.Write("
"); - - TimeZone tz = TimeZone.CurrentTimeZone; - - html.Write("Snapshot taken at {0:d} {0:t}. All times are {1}.", m_TimeStamp, tz.StandardName); - html.RenderEndTag(); - - html.RenderEndTag(); - - html.RenderEndTag(); - } - - public void RenderDirect(PersistableObject obj, HtmlTextWriter html) - { - if (obj is Report report) - RenderReport(report, html); - else if (obj is BarGraph graph) - RenderBarGraph(graph, html); - else if (obj is PieChart chart) - RenderPieChart(chart, html); - } - - private void RenderPieChart(PieChart chart, HtmlTextWriter html) - { - PieChartRenderer pieChart = new PieChartRenderer(Color.White); - - pieChart.ShowPercents = chart.ShowPercents; - - string[] labels = new string[chart.Items.Count]; - string[] values = new string[chart.Items.Count]; - - for (int i = 0; i < chart.Items.Count; ++i) - { - ChartItem item = chart.Items[i]; - - labels[i] = item.Name; - values[i] = item.Value.ToString(); - } - - pieChart.CollectDataPoints(labels, values); - - Bitmap bmp = pieChart.Draw(); - - string fileName = chart.FileName + ".png"; - bmp.Save(Path.Combine(m_OutputDirectory, fileName), ImageFormat.Png); - - html.Write(""); - - html.AddAttribute(HtmlAttr.Cellpadding, "0"); - html.AddAttribute(HtmlAttr.Cellspacing, "0"); - html.AddAttribute(HtmlAttr.Border, "0"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - html.AddAttribute(HtmlAttr.Class, "tbl-border"); - html.RenderBeginTag(HtmlTag.Td); - - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Cellpadding, "4"); - html.AddAttribute(HtmlAttr.Cellspacing, "1"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - - html.AddAttribute(HtmlAttr.Colspan, "10"); - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Align, "center"); - html.AddAttribute(HtmlAttr.Class, "header"); - html.RenderBeginTag(HtmlTag.Td); - html.Write(chart.Name); - html.RenderEndTag(); - html.RenderEndTag(); - - html.RenderBeginTag(HtmlTag.Tr); - - html.AddAttribute(HtmlAttr.Colspan, "10"); - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Align, "center"); - html.AddAttribute(HtmlAttr.Class, "entry"); - html.RenderBeginTag(HtmlTag.Td); - - html.AddAttribute(HtmlAttr.Width, bmp.Width.ToString()); - html.AddAttribute(HtmlAttr.Height, bmp.Height.ToString()); - html.AddAttribute(HtmlAttr.Src, fileName); - html.RenderBeginTag(HtmlTag.Img); - html.RenderEndTag(); - - html.RenderEndTag(); - html.RenderEndTag(); - - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - - bmp.Dispose(); - } - - private void RenderBarGraph(BarGraph graph, HtmlTextWriter html) - { - BarGraphRenderer barGraph = new BarGraphRenderer(Color.White); - - barGraph.RenderMode = graph.RenderMode; - - barGraph._regions = graph.Regions; - barGraph.SetTitles(graph.xTitle, null); - - if (graph.yTitle != null) - barGraph.VerticalLabel = graph.yTitle; - - barGraph.FontColor = Color.Black; - barGraph.ShowData = graph.Interval == 1; - barGraph.VerticalTickCount = graph.Ticks; - - string[] labels = new string[graph.Items.Count]; - string[] values = new string[graph.Items.Count]; - - for (int i = 0; i < graph.Items.Count; ++i) - { - ChartItem item = graph.Items[i]; - - labels[i] = item.Name; - values[i] = item.Value.ToString(); - } - - barGraph._interval = graph.Interval; - barGraph.CollectDataPoints(labels, values); - - Bitmap bmp = barGraph.Draw(); - - string fileName = graph.FileName + ".png"; - bmp.Save(Path.Combine(m_OutputDirectory, fileName), ImageFormat.Png); - - html.Write(""); - - html.AddAttribute(HtmlAttr.Cellpadding, "0"); - html.AddAttribute(HtmlAttr.Cellspacing, "0"); - html.AddAttribute(HtmlAttr.Border, "0"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - html.AddAttribute(HtmlAttr.Class, "tbl-border"); - html.RenderBeginTag(HtmlTag.Td); - - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Cellpadding, "4"); - html.AddAttribute(HtmlAttr.Cellspacing, "1"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - - html.AddAttribute(HtmlAttr.Colspan, "10"); - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Align, "center"); - html.AddAttribute(HtmlAttr.Class, "header"); - html.RenderBeginTag(HtmlTag.Td); - html.Write(graph.Name); - html.RenderEndTag(); - html.RenderEndTag(); - - html.RenderBeginTag(HtmlTag.Tr); - - html.AddAttribute(HtmlAttr.Colspan, "10"); - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Align, "center"); - html.AddAttribute(HtmlAttr.Class, "entry"); - html.RenderBeginTag(HtmlTag.Td); - - html.AddAttribute(HtmlAttr.Width, bmp.Width.ToString()); - html.AddAttribute(HtmlAttr.Height, bmp.Height.ToString()); - html.AddAttribute(HtmlAttr.Src, fileName); - html.RenderBeginTag(HtmlTag.Img); - html.RenderEndTag(); - - html.RenderEndTag(); - html.RenderEndTag(); - - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - - bmp.Dispose(); - } - - private void RenderReport(Report report, HtmlTextWriter html) - { - html.AddAttribute(HtmlAttr.Width, report.Width); - html.AddAttribute(HtmlAttr.Cellpadding, "0"); - html.AddAttribute(HtmlAttr.Cellspacing, "0"); - html.AddAttribute(HtmlAttr.Border, "0"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - html.AddAttribute(HtmlAttr.Class, "tbl-border"); - html.RenderBeginTag(HtmlTag.Td); - - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Cellpadding, "4"); - html.AddAttribute(HtmlAttr.Cellspacing, "1"); - html.RenderBeginTag(HtmlTag.Table); - - html.RenderBeginTag(HtmlTag.Tr); - html.AddAttribute(HtmlAttr.Colspan, "10"); - html.AddAttribute(HtmlAttr.Width, "100%"); - html.AddAttribute(HtmlAttr.Align, "center"); - html.AddAttribute(HtmlAttr.Class, "header"); - html.RenderBeginTag(HtmlTag.Td); - html.Write(report.Name); - html.RenderEndTag(); - html.RenderEndTag(); - - bool isNamed = false; - - for (int i = 0; i < report.Columns.Count && !isNamed; ++i) - isNamed = report.Columns[i].Name != null; - - if (isNamed) - { - html.RenderBeginTag(HtmlTag.Tr); - - for (int i = 0; i < report.Columns.Count; ++i) - { - ReportColumn column = report.Columns[i]; - - html.AddAttribute(HtmlAttr.Class, "header"); - html.AddAttribute(HtmlAttr.Width, column.Width); - html.AddAttribute(HtmlAttr.Align, column.Align); - html.RenderBeginTag(HtmlTag.Td); - - html.Write(column.Name); - - html.RenderEndTag(); - } - - html.RenderEndTag(); - } - - for (int i = 0; i < report.Items.Count; ++i) - { - ReportItem item = report.Items[i]; - - html.RenderBeginTag(HtmlTag.Tr); - - for (int j = 0; j < item.Values.Count; ++j) - { - if (!isNamed && j == 0) - html.AddAttribute(HtmlAttr.Width, report.Columns[j].Width); - - html.AddAttribute(HtmlAttr.Align, report.Columns[j].Align); - html.AddAttribute(HtmlAttr.Class, "entry"); - html.RenderBeginTag(HtmlTag.Td); - - if (item.Values[j].Format == null) - html.Write(item.Values[j].Value); - else - html.Write(int.Parse(item.Values[j].Value).ToString(item.Values[j].Format)); - - html.RenderEndTag(); - } - - html.RenderEndTag(); - } - - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - html.RenderEndTag(); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Rendering/PieChartRenderer.cs b/Scripts/Engines/Reports/Rendering/PieChartRenderer.cs deleted file mode 100644 index 9ecf48e04..000000000 --- a/Scripts/Engines/Reports/Rendering/PieChartRenderer.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Drawing2D; - -namespace Server.Engines.Reports -{ - // Modified from MS sample - - //********************************************************************* - // - // PieChart Class - // - // This class uses GDI+ to render Pie Chart. - // - //********************************************************************* - - public class PieChartRenderer : ChartRenderer - { - private const int _bufferSpace = 125; - private Color _backgroundColor; - private Color _borderColor; - private List _chartItems; - private int _legendFontHeight; - private float _legendFontSize; - private string _legendFontStyle; - private int _legendHeight; - private int _legendWidth; - private int _perimeter; - private float _total; - - public PieChartRenderer() : this(Color.White) - { - } - - public PieChartRenderer(Color bgColor) - { - _chartItems = new List(); - _perimeter = 250; - _backgroundColor = bgColor; - _borderColor = Color.FromArgb(63, 63, 63); - _legendFontSize = 8; - _legendFontStyle = "Verdana"; - } - - public bool ShowPercents{ get; set; } - - //********************************************************************* - // - // This method collects all data points and calculate all the necessary dimensions - // to draw the chart. It is the first method called before invoking the Draw() method. - // - //********************************************************************* - - public void CollectDataPoints(string[] xValues, string[] yValues) - { - _total = 0.0f; - - for (int i = 0; i < xValues.Length; i++) - { - float ftemp = Convert.ToSingle(yValues[i]); - _chartItems.Add(new DataItem(xValues[i], xValues.ToString(), ftemp, 0, 0, Color.AliceBlue)); - _total += ftemp; - } - - float nextStartPos = 0.0f; - int counter = 0; - foreach (DataItem item in _chartItems) - { - item.StartPos = nextStartPos; - item.SweepSize = item.Value / _total * 360; - nextStartPos = item.StartPos + item.SweepSize; - item.ItemColor = GetColor(counter++); - } - - CalculateLegendWidthHeight(); - } - - //********************************************************************* - // - // This method returns a bitmap to the calling function. This is the method - // that actually draws the pie chart and the legend with it. - // - //********************************************************************* - - public override Bitmap Draw() - { - int perimeter = _perimeter; - Rectangle pieRect = new Rectangle(0, 0, perimeter, perimeter - 1); - Bitmap bmp = new Bitmap(perimeter + _legendWidth, perimeter); - Font fnt = null; - Pen pen = null; - Graphics grp = null; - StringFormat sf = null, sfp = null; - - try - { - grp = Graphics.FromImage(bmp); - grp.CompositingQuality = CompositingQuality.HighQuality; - grp.SmoothingMode = SmoothingMode.AntiAlias; - sf = new StringFormat(); - - //Paint Back ground - using (SolidBrush brsh = new SolidBrush(_backgroundColor)) - { - grp.FillRectangle(brsh, -1, -1, perimeter + _legendWidth + 1, perimeter + 1); - } - - //Align text to the right - sf.Alignment = StringAlignment.Far; - - //Draw all wedges and legends - for (int i = 0; i < _chartItems.Count; i++) - { - DataItem item = _chartItems[i]; - SolidBrush brs = null; - try - { - brs = new SolidBrush(item.ItemColor); - grp.FillPie(brs, pieRect, item.StartPos, item.SweepSize); - - //grp.DrawPie(new Pen(_borderColor,1.2f),pieRect,item.StartPos,item.SweepSize); - - if (fnt == null) - fnt = new Font(_legendFontStyle, _legendFontSize); - - if (ShowPercents && item.SweepSize > 10) - { - if (sfp == null) - { - sfp = new StringFormat(); - sfp.Alignment = StringAlignment.Center; - sfp.LineAlignment = StringAlignment.Center; - } - - float perc = item.SweepSize * 100.0f / 360.0f; - string percString = $"{perc:F0}%"; - - float px = pieRect.X + pieRect.Width / 2; - float py = pieRect.Y + pieRect.Height / 2; - - double angle = item.StartPos + item.SweepSize / 2; - double rads = angle / 180.0 * Math.PI; - - px += (float)(Math.Cos(rads) * perimeter / 3); - py += (float)(Math.Sin(rads) * perimeter / 3); - - grp.DrawString(percString, fnt, Brushes.Gray, - new RectangleF(px - 30 - 1, py - 20, 60, 40), sfp); - - grp.DrawString(percString, fnt, Brushes.Gray, - new RectangleF(px - 30 + 1, py - 20, 60, 40), sfp); - - grp.DrawString(percString, fnt, Brushes.Gray, - new RectangleF(px - 30, py - 20 - 1, 60, 40), sfp); - - grp.DrawString(percString, fnt, Brushes.Gray, - new RectangleF(px - 30, py - 20 + 1, 60, 40), sfp); - - - grp.DrawString(percString, fnt, Brushes.White, - new RectangleF(px - 30, py - 20, 60, 40), sfp); - } - - if (pen == null) - pen = new Pen(_borderColor, 0.5f); - - grp.FillRectangle(brs, perimeter + _bufferSpace, i * _legendFontHeight + 15, 10, 10); - grp.DrawRectangle(pen, perimeter + _bufferSpace, i * _legendFontHeight + 15, 10, 10); - - grp.DrawString(item.Label, fnt, - Brushes.Black, perimeter + _bufferSpace + 20, i * _legendFontHeight + 13); - - grp.DrawString(item.Value.ToString("#,###.##"), fnt, - Brushes.Black, perimeter + _bufferSpace + 200, i * _legendFontHeight + 13, sf); - } - finally - { - brs?.Dispose(); - } - } - - for (int i = 0; i < _chartItems.Count; i++) - { - DataItem item = _chartItems[i]; - try - { - grp.DrawPie(new Pen(_borderColor, 0.5f), pieRect, item.StartPos, item.SweepSize); - } - catch - { - // ignored - } - } - - //draws the border around Pie - using (Pen pen2 = new Pen(_borderColor, 2)) - { - grp.DrawEllipse(pen2, pieRect); - } - - //draw border around legend - using (Pen pen1 = new Pen(_borderColor, 1)) - { - grp.DrawRectangle(pen1, perimeter + _bufferSpace - 10, 10, 220, - _chartItems.Count * _legendFontHeight + 25); - } - - //Draw Total under legend - using (Font fntb = new Font(_legendFontStyle, _legendFontSize, FontStyle.Bold)) - { - grp.DrawString("Total", fntb, - Brushes.Black, perimeter + _bufferSpace + 30, (_chartItems.Count + 1) * _legendFontHeight, sf); - grp.DrawString(_total.ToString("#,###.##"), fntb, - Brushes.Black, perimeter + _bufferSpace + 200, (_chartItems.Count + 1) * _legendFontHeight, sf); - } - - grp.SmoothingMode = SmoothingMode.AntiAlias; - } - finally - { - sf.Dispose(); - grp.Dispose(); - sfp?.Dispose(); - fnt?.Dispose(); - pen?.Dispose(); - } - - return bmp; - } - - //********************************************************************* - // - // This method calculates the space required to draw the chart legend. - // - //********************************************************************* - - private void CalculateLegendWidthHeight() - { - Font fontLegend = new Font(_legendFontStyle, _legendFontSize); - _legendFontHeight = fontLegend.Height + 3; - _legendHeight = fontLegend.Height * (_chartItems.Count + 1); - if (_legendHeight > _perimeter) _perimeter = _legendHeight; - - _legendWidth = _perimeter + _bufferSpace; - fontLegend.Dispose(); - } - } -} \ No newline at end of file diff --git a/Scripts/Engines/Reports/Reports.cs b/Scripts/Engines/Reports/Reports.cs deleted file mode 100644 index 2b7d08eaf..000000000 --- a/Scripts/Engines/Reports/Reports.cs +++ /dev/null @@ -1,547 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading; -using Server.Accounting; -using Server.Engines.ConPVP; -using Server.Engines.Help; -using Server.Factions; -using Server.Mobiles; -using Server.Network; - -namespace Server.Engines.Reports -{ - public class Reports - { - public static bool Enabled = false; - - private static DateTime m_GenerateTime; - - private static SnapshotHistory m_StatsHistory; - - public static StaffHistory StaffHistory{ get; private set; } - - public static void Initialize() - { - if (!Enabled) - return; - - m_StatsHistory = new SnapshotHistory(); - m_StatsHistory.Load(); - - StaffHistory = new StaffHistory(); - StaffHistory.Load(); - - DateTime now = DateTime.UtcNow; - - DateTime date = now.Date; - TimeSpan timeOfDay = now.TimeOfDay; - - m_GenerateTime = date + TimeSpan.FromHours(Math.Ceiling(timeOfDay.TotalHours)); - - Timer.DelayCall(TimeSpan.FromMinutes(0.5), TimeSpan.FromMinutes(0.5), CheckRegenerate); - } - - public static void CheckRegenerate() - { - if (DateTime.UtcNow < m_GenerateTime) - return; - - Generate(); - m_GenerateTime += TimeSpan.FromHours(1.0); - } - - public static void Generate() - { - Snapshot ss = new Snapshot(); - - ss.TimeStamp = DateTime.UtcNow; - - FillSnapshot(ss); - - m_StatsHistory.Snapshots.Add(ss); - StaffHistory.QueueStats.Add(new QueueStatus(PageQueue.List.Count)); - - ThreadPool.QueueUserWorkItem(UpdateOutput, ss); - } - - private static void UpdateOutput(object state) - { - m_StatsHistory.Save(); - StaffHistory.Save(); - - HtmlRenderer renderer = new HtmlRenderer("stats", (Snapshot)state, m_StatsHistory); - renderer.Render(); - renderer.Upload(); - - renderer = new HtmlRenderer("staff", StaffHistory); - renderer.Render(); - renderer.Upload(); - } - - public static void FillSnapshot(Snapshot ss) - { - ss.Children.Add(CompileGeneralStats()); - ss.Children.Add(CompilePCByDL()); - ss.Children.Add(CompileTop15()); - ss.Children.Add(CompileDislikedArenas()); - ss.Children.Add(CompileStatChart()); - - PersistableObject[] obs = CompileSkillReports(); - - for (int i = 0; i < obs.Length; ++i) - ss.Children.Add(obs[i]); - - obs = CompileFactionReports(); - - for (int i = 0; i < obs.Length; ++i) - ss.Children.Add(obs[i]); - } - - public static Report CompileGeneralStats() - { - Report report = new Report("General Stats", "200"); - - report.Columns.Add("50%", "left"); - report.Columns.Add("50%", "left"); - - int npcs = 0, players = 0; - - foreach (Mobile mob in World.Mobiles.Values) - if (mob.Player) - ++players; - else - ++npcs; - - report.Items.Add("NPCs", npcs, "N0"); - report.Items.Add("Players", players, "N0"); - report.Items.Add("Clients", NetState.Instances.Count, "N0"); - report.Items.Add("Accounts", Accounts.Count, "N0"); - report.Items.Add("Items", World.Items.Count, "N0"); - - return report; - } - - private static Chart CompilePCByDL() - { - BarGraph chart = new BarGraph("Player Count By Dueling Level", "graphs_pc_by_dl", 5, "Dueling Level", "Players", - BarGraphRenderMode.Bars); - - int lastLevel = -1; - ChartItem lastItem = null; - - Ladder ladder = Ladder.Instance; - - if (ladder == null) - return chart; - - List entries = ladder.Entries; - - for (int i = entries.Count - 1; i >= 0; --i) - { - LadderEntry entry = entries[i]; - int level = Ladder.GetLevel(entry.Experience); - - if (lastItem == null || level != lastLevel) - { - chart.Items.Add(lastItem = new ChartItem(level.ToString(), 1)); - lastLevel = level; - } - else - { - lastItem.Value++; - } - } - - return chart; - } - - private static Report CompileTop15() - { - Report report = new Report("Top 15 Duelists", "80%"); - - report.Columns.Add("6%", "center", "Rank"); - report.Columns.Add("6%", "center", "Level"); - report.Columns.Add("6%", "center", "Guild"); - report.Columns.Add("70%", "left", "Name"); - report.Columns.Add("6%", "center", "Wins"); - report.Columns.Add("6%", "center", "Losses"); - - Ladder ladder = Ladder.Instance; - - if (ladder != null) - { - List entries = ladder.Entries; - - for (int i = 0; i < entries.Count && i < 15; ++i) - { - LadderEntry entry = entries[i]; - int level = Ladder.GetLevel(entry.Experience); - string guild = ""; - - if (entry.Mobile.Guild != null) - guild = entry.Mobile.Guild.Abbreviation; - - ReportItem item = new ReportItem(); - - item.Values.Add(LadderGump.Rank(entry.Index + 1)); - item.Values.Add(level.ToString(), "N0"); - item.Values.Add(guild); - item.Values.Add(entry.Mobile.Name); - item.Values.Add(entry.Wins.ToString(), "N0"); - item.Values.Add(entry.Losses.ToString(), "N0"); - - report.Items.Add(item); - } - } - - return report; - } - - private static Chart CompileDislikedArenas() - { - PieChart chart = new PieChart("Most Disliked Arenas", "graphs_arenas_disliked", false); - - Preferences prefs = Preferences.Instance; - - if (prefs == null) - return chart; - - List arenas = Arena.Arenas; - - for (int i = 0; i < arenas.Count; ++i) - { - Arena arena = arenas[i]; - - string name = arena.Name; - - if (name != null) - chart.Items.Add(name, 0); - } - - List entries = prefs.Entries; - - for (int i = 0; i < entries.Count; ++i) - { - PreferencesEntry entry = entries[i]; - List list = entry.Disliked; - - for (int j = 0; j < list.Count; ++j) - { - string disliked = list[j]; - - for (int k = 0; k < chart.Items.Count; ++k) - { - ChartItem item = chart.Items[k]; - - if (item.Name == disliked) - { - ++item.Value; - break; - } - } - } - } - - return chart; - } - - public static Chart CompileStatChart() - { - PieChart chart = new PieChart("Stat Distribution", "graphs_strdexint_distrib", true); - - ChartItem strItem = new ChartItem("Strength", 0); - ChartItem dexItem = new ChartItem("Dexterity", 0); - ChartItem intItem = new ChartItem("Intelligence", 0); - - foreach (Mobile mob in World.Mobiles.Values) - if (mob.RawStatTotal == mob.StatCap && mob is PlayerMobile) - { - strItem.Value += mob.RawStr; - dexItem.Value += mob.RawDex; - intItem.Value += mob.RawInt; - } - - chart.Items.Add(strItem); - chart.Items.Add(dexItem); - chart.Items.Add(intItem); - - return chart; - } - - public static SkillDistribution[] GetSkillDistribution() - { - int skip = Core.ML ? 0 : Core.SE ? 1 : Core.AOS ? 3 : 6; - - SkillDistribution[] distribs = new SkillDistribution[SkillInfo.Table.Length - skip]; - - for (int i = 0; i < distribs.Length; ++i) - distribs[i] = new SkillDistribution(SkillInfo.Table[i]); - - foreach (Mobile mob in World.Mobiles.Values) - if (mob.SkillsTotal >= 1500 && mob.SkillsTotal <= 7200 && mob is PlayerMobile) - { - Skills skills = mob.Skills; - - for (int i = 0; i < skills.Length - skip; ++i) - { - Skill skill = skills[i]; - - if (skill.BaseFixedPoint >= 1000) - distribs[i].m_NumberOfGMs++; - } - } - - return distribs; - } - - public static PersistableObject[] CompileSkillReports() - { - SkillDistribution[] distribs = GetSkillDistribution(); - - Array.Sort(distribs); - - return new PersistableObject[] { CompileSkillChart(distribs), CompileSkillReport(distribs) }; - } - - public static Report CompileSkillReport(SkillDistribution[] distribs) - { - Report report = new Report("Skill Report", "300"); - - report.Columns.Add("70%", "left", "Name"); - report.Columns.Add("30%", "center", "GMs"); - - for (int i = 0; i < distribs.Length; ++i) - report.Items.Add(distribs[i].m_Skill.Name, distribs[i].m_NumberOfGMs, "N0"); - - return report; - } - - public static Chart CompileSkillChart(SkillDistribution[] distribs) - { - PieChart chart = new PieChart("GM Skill Distribution", "graphs_skill_distrib", true); - - for (int i = 0; i < 12; ++i) - chart.Items.Add(distribs[i].m_Skill.Name, distribs[i].m_NumberOfGMs); - - int rem = 0; - - for (int i = 12; i < distribs.Length; ++i) - rem += distribs[i].m_NumberOfGMs; - - chart.Items.Add("Other", rem); - - return chart; - } - - public static PersistableObject[] CompileFactionReports() - { - return new PersistableObject[] - { - CompileFactionMembershipChart(), CompileFactionReport(), CompileFactionTownReport(), CompileSigilReport(), - CompileFactionLeaderboard() - }; - } - - public static Chart CompileFactionMembershipChart() - { - PieChart chart = new PieChart("Faction Membership", "graphs_faction_membership", true); - - List factions = Faction.Factions; - - for (int i = 0; i < factions.Count; ++i) - chart.Items.Add(factions[i].Definition.FriendlyName, factions[i].Members.Count); - - return chart; - } - - public static Report CompileFactionLeaderboard() - { - Report report = new Report("Faction Leaderboard", "60%"); - - report.Columns.Add("28%", "center", "Name"); - report.Columns.Add("28%", "center", "Faction"); - report.Columns.Add("28%", "center", "Office"); - report.Columns.Add("16%", "center", "Kill Points"); - - List list = new List(); - - List factions = Faction.Factions; - - for (int i = 0; i < factions.Count; ++i) - { - Faction faction = factions[i]; - - list.AddRange(faction.Members); - } - - list.Sort(); - list.Reverse(); - - for (int i = 0; i < list.Count && i < 15; ++i) - { - PlayerState pl = list[i]; - - string office; - - if (pl.Faction.Commander == pl.Mobile) - office = "Commanding Lord"; - else if (pl.Finance != null) - office = $"{pl.Finance.Definition.FriendlyName} Finance Minister"; - else if (pl.Sheriff != null) - office = $"{pl.Sheriff.Definition.FriendlyName} Sheriff"; - else - office = ""; - - ReportItem item = new ReportItem(); - - item.Values.Add(pl.Mobile.Name); - item.Values.Add(pl.Faction.Definition.FriendlyName); - item.Values.Add(office); - item.Values.Add(pl.KillPoints.ToString(), "N0"); - - report.Items.Add(item); - } - - return report; - } - - public static Report CompileFactionReport() - { - Report report = new Report("Faction Statistics", "80%"); - - report.Columns.Add("20%", "center", "Name"); - report.Columns.Add("20%", "center", "Commander"); - report.Columns.Add("15%", "center", "Members"); - report.Columns.Add("15%", "center", "Merchants"); - report.Columns.Add("15%", "center", "Kill Points"); - report.Columns.Add("15%", "center", "Silver"); - - List factions = Faction.Factions; - - for (int i = 0; i < factions.Count; ++i) - { - Faction faction = factions[i]; - List members = faction.Members; - - int totalKillPoints = 0; - int totalMerchants = 0; - - for (int j = 0; j < members.Count; ++j) - { - totalKillPoints += members[j].KillPoints; - - if (members[j].MerchantTitle != MerchantTitle.None) - ++totalMerchants; - } - - ReportItem item = new ReportItem(); - - item.Values.Add(faction.Definition.FriendlyName); - item.Values.Add(faction.Commander == null ? "" : faction.Commander.Name); - item.Values.Add(faction.Members.Count.ToString(), "N0"); - item.Values.Add(totalMerchants.ToString(), "N0"); - item.Values.Add(totalKillPoints.ToString(), "N0"); - item.Values.Add(faction.Silver.ToString(), "N0"); - - report.Items.Add(item); - } - - return report; - } - - public static Report CompileSigilReport() - { - Report report = new Report("Faction Town Sigils", "50%"); - - report.Columns.Add("35%", "center", "Town"); - report.Columns.Add("35%", "center", "Controller"); - report.Columns.Add("30%", "center", "Capturable"); - - List sigils = Sigil.Sigils; - - for (int i = 0; i < sigils.Count; ++i) - { - Sigil sigil = sigils[i]; - - string controller = "Unknown"; - - if (sigil.RootParent is Mobile mob) - { - Faction faction = Faction.Find(mob); - - if (faction != null) - controller = faction.Definition.FriendlyName; - } - else if (sigil.LastMonolith?.Faction != null) - { - controller = sigil.LastMonolith.Faction.Definition.FriendlyName; - } - - ReportItem item = new ReportItem(); - - item.Values.Add(sigil.Town == null ? "" : sigil.Town.Definition.FriendlyName); - item.Values.Add(controller); - item.Values.Add(sigil.IsPurifying ? "No" : "Yes"); - - report.Items.Add(item); - } - - return report; - } - - public static Report CompileFactionTownReport() - { - Report report = new Report("Faction Towns", "80%"); - - report.Columns.Add("20%", "center", "Name"); - report.Columns.Add("20%", "center", "Owner"); - report.Columns.Add("17%", "center", "Sheriff"); - report.Columns.Add("17%", "center", "Finance Minister"); - report.Columns.Add("13%", "center", "Silver"); - report.Columns.Add("13%", "center", "Prices"); - - List towns = Town.Towns; - - for (int i = 0; i < towns.Count; ++i) - { - Town town = towns[i]; - - string prices = "Normal"; - - if (town.Tax < 0) - prices = town.Tax + "%"; - else if (town.Tax > 0) - prices = "+" + town.Tax + "%"; - - ReportItem item = new ReportItem(); - - item.Values.Add(town.Definition.FriendlyName); - item.Values.Add(town.Owner == null ? "Neutral" : town.Owner.Definition.FriendlyName); - item.Values.Add(town.Sheriff == null ? "" : town.Sheriff.Name); - item.Values.Add(town.Finance == null ? "" : town.Finance.Name); - item.Values.Add(town.Silver.ToString(), "N0"); - item.Values.Add(prices); - - report.Items.Add(item); - } - - return report; - } - - public class SkillDistribution : IComparable - { - public int m_NumberOfGMs; - public SkillInfo m_Skill; - - public SkillDistribution(SkillInfo skill) - { - m_Skill = skill; - } - - public int CompareTo(SkillDistribution sd) - { - return sd?.m_NumberOfGMs ?? 0 - m_NumberOfGMs; - } - } - } -} diff --git a/Scripts/Properties/AssemblyInfo.cs b/Scripts/Properties/AssemblyInfo.cs deleted file mode 100644 index 3a630d815..000000000 --- a/Scripts/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RunUO Scripts Assembly")] -[assembly: AssemblyDescription("RunUO Scripts Assembly")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("RunUO")] -[assembly: AssemblyProduct("RunUO")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("07fe114c-a456-42f8-82fd-251c9b78cd49")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("0.0.0.1")] -[assembly: AssemblyFileVersion("0.0.0.1")] \ No newline at end of file diff --git a/Scripts/Scripts.csproj b/Scripts/Scripts.csproj deleted file mode 100644 index b68d69801..000000000 --- a/Scripts/Scripts.csproj +++ /dev/null @@ -1,3325 +0,0 @@ - - - - Debug - AnyCPU - {DAE872E6-6899-427C-A75D-AD52526EBCDA} - Library - false - Scripts.CS - v4.7 - 512 - - - - - true - full - false - Output\ - TRACE;DEBUG;NEWTIMERS;NEWPARENT - prompt - 4 - false - false - - - pdbonly - true - Output\ - TRACE;NEWTIMERS;NEWPARENT - prompt - 4 - false - false - - - Server - - - true - Output\ - TRACE;DEBUG;NEWTIMERS;NEWPARENT - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - false - - - Output\ - TRACE;NEWTIMERS;NEWPARENT - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {0b33ceeb-88e1-49a6-8d7d-af6a5a357087} - Server - - - - - - - \ No newline at end of file diff --git a/Server/AssemblyInfo.cs b/Server/AssemblyInfo.cs deleted file mode 100644 index d28a05c87..000000000 --- a/Server/AssemblyInfo.cs +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************** - * AssemblyInfo.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System.Reflection; -using System.Runtime.InteropServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("RunUO Server Core")] //Having just RunUO there is reundant, ie, RunUO.exe with the word 'RunUO' under it -[assembly: AssemblyDescription("UO Server Software")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("RunUO")] -[assembly: AssemblyProduct("RunUO")] -[assembly: AssemblyCopyright("Copyright � 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("2.7.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] - -[assembly: ComVisible(false)] \ No newline at end of file diff --git a/Server/EventLog.cs b/Server/EventLog.cs deleted file mode 100644 index 86599716b..000000000 --- a/Server/EventLog.cs +++ /dev/null @@ -1,63 +0,0 @@ -/*************************************************************************** - * EventLog.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System.Diagnostics; -using DiagELog = System.Diagnostics.EventLog; - -namespace Server -{ - public static class EventLog - { - static EventLog() - { - if (!DiagELog.SourceExists("RunUO")) DiagELog.CreateEventSource("RunUO", "Application"); - } - - public static void Error(int eventID, string text) - { - DiagELog.WriteEntry("RunUO", text, EventLogEntryType.Error, eventID); - } - - public static void Error(int eventID, string format, params object[] args) - { - Error(eventID, string.Format(format, args)); - } - - public static void Warning(int eventID, string text) - { - DiagELog.WriteEntry("RunUO", text, EventLogEntryType.Warning, eventID); - } - - public static void Warning(int eventID, string format, params object[] args) - { - Warning(eventID, string.Format(format, args)); - } - - public static void Inform(int eventID, string text) - { - DiagELog.WriteEntry("RunUO", text, EventLogEntryType.Information, eventID); - } - - public static void Inform(int eventID, string format, params object[] args) - { - Inform(eventID, string.Format(format, args)); - } - } -} \ No newline at end of file diff --git a/Server/Network/BufferPool.cs b/Server/Network/BufferPool.cs deleted file mode 100644 index 84157ddcf..000000000 --- a/Server/Network/BufferPool.cs +++ /dev/null @@ -1,106 +0,0 @@ -/*************************************************************************** - * BufferPool.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System.Collections.Generic; - -namespace Server.Network -{ - public class BufferPool - { - private int m_BufferSize; - - private Queue m_FreeBuffers; - - private int m_InitialCapacity; - - private int m_Misses; - - private string m_Name; - - public BufferPool(string name, int initialCapacity, int bufferSize) - { - m_Name = name; - - m_InitialCapacity = initialCapacity; - m_BufferSize = bufferSize; - - m_FreeBuffers = new Queue(initialCapacity); - - for (int i = 0; i < initialCapacity; ++i) - m_FreeBuffers.Enqueue(new byte[bufferSize]); - - lock (Pools) - { - Pools.Add(this); - } - } - - public static List Pools{ get; set; } = new List(); - - public void GetInfo(out string name, out int freeCount, out int initialCapacity, out int currentCapacity, - out int bufferSize, out int misses) - { - lock (this) - { - name = m_Name; - freeCount = m_FreeBuffers.Count; - initialCapacity = m_InitialCapacity; - currentCapacity = m_InitialCapacity * (1 + m_Misses); - bufferSize = m_BufferSize; - misses = m_Misses; - } - } - - public byte[] AcquireBuffer() - { - lock (this) - { - if (m_FreeBuffers.Count > 0) - return m_FreeBuffers.Dequeue(); - - ++m_Misses; - - for (int i = 0; i < m_InitialCapacity; ++i) - m_FreeBuffers.Enqueue(new byte[m_BufferSize]); - - return m_FreeBuffers.Dequeue(); - } - } - - public void ReleaseBuffer(byte[] buffer) - { - if (buffer == null) - return; - - lock (this) - { - m_FreeBuffers.Enqueue(buffer); - } - } - - public void Free() - { - lock (Pools) - { - Pools.Remove(this); - } - } - } -} \ No newline at end of file diff --git a/Server/Network/ByteQueue.cs b/Server/Network/ByteQueue.cs deleted file mode 100644 index b5dae23fb..000000000 --- a/Server/Network/ByteQueue.cs +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************** - * ByteQueue.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; - -namespace Server.Network -{ - public class ByteQueue - { - private byte[] m_Buffer; - private int m_Head; - private int m_Tail; - - public ByteQueue() - { - m_Buffer = new byte[2048]; - } - - public int Length{ get; private set; } - - public void Clear() - { - m_Head = 0; - m_Tail = 0; - Length = 0; - } - - private void SetCapacity(int capacity) - { - byte[] newBuffer = new byte[capacity]; - - if (Length > 0) - { - if (m_Head < m_Tail) - { - Buffer.BlockCopy(m_Buffer, m_Head, newBuffer, 0, Length); - } - else - { - Buffer.BlockCopy(m_Buffer, m_Head, newBuffer, 0, m_Buffer.Length - m_Head); - Buffer.BlockCopy(m_Buffer, 0, newBuffer, m_Buffer.Length - m_Head, m_Tail); - } - } - - m_Head = 0; - m_Tail = Length; - m_Buffer = newBuffer; - } - - public byte GetPacketID() - { - if (Length >= 1) - return m_Buffer[m_Head]; - - return 0xFF; - } - - public int GetPacketLength() - { - if (Length >= 3) - return (m_Buffer[(m_Head + 1) % m_Buffer.Length] << 8) | m_Buffer[(m_Head + 2) % m_Buffer.Length]; - - return 0; - } - - public int Dequeue(byte[] buffer, int offset, int size) - { - if (size > Length) - size = Length; - - if (size == 0) - return 0; - - if (m_Head < m_Tail) - { - Buffer.BlockCopy(m_Buffer, m_Head, buffer, offset, size); - } - else - { - int rightLength = m_Buffer.Length - m_Head; - - if (rightLength >= size) - { - Buffer.BlockCopy(m_Buffer, m_Head, buffer, offset, size); - } - else - { - Buffer.BlockCopy(m_Buffer, m_Head, buffer, offset, rightLength); - Buffer.BlockCopy(m_Buffer, 0, buffer, offset + rightLength, size - rightLength); - } - } - - m_Head = (m_Head + size) % m_Buffer.Length; - Length -= size; - - if (Length == 0) - { - m_Head = 0; - m_Tail = 0; - } - - return size; - } - - public void Enqueue(byte[] buffer, int offset, int size) - { - if (Length + size > m_Buffer.Length) - SetCapacity((Length + size + 2047) & ~2047); - - if (m_Head < m_Tail) - { - int rightLength = m_Buffer.Length - m_Tail; - - if (rightLength >= size) - { - Buffer.BlockCopy(buffer, offset, m_Buffer, m_Tail, size); - } - else - { - Buffer.BlockCopy(buffer, offset, m_Buffer, m_Tail, rightLength); - Buffer.BlockCopy(buffer, offset + rightLength, m_Buffer, 0, size - rightLength); - } - } - else - { - Buffer.BlockCopy(buffer, offset, m_Buffer, m_Tail, size); - } - - m_Tail = (m_Tail + size) % m_Buffer.Length; - Length += size; - } - } -} \ No newline at end of file diff --git a/Server/Network/MessagePump.cs b/Server/Network/MessagePump.cs deleted file mode 100644 index e1d324f81..000000000 --- a/Server/Network/MessagePump.cs +++ /dev/null @@ -1,290 +0,0 @@ -/*************************************************************************** - * MessagePump.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; -using System.Collections.Generic; -using System.Net; -using System.Net.Sockets; -using System.Threading; -using Server.Diagnostics; - -namespace Server.Network -{ - public class MessagePump - { - private const int BufferSize = 4096; - private BufferPool m_Buffers = new BufferPool("Processor", 4, BufferSize); - private Queue m_Queue; - private Queue m_Throttled; - private Queue m_WorkingQueue; - - public MessagePump() - { - IPEndPoint[] ipep = Listener.EndPoints; - - Listeners = new Listener[ipep.Length]; - - bool success = false; - - do - { - for (int i = 0; i < ipep.Length; i++) - { - Listener l = new Listener(ipep[i]); - if (!success) - success = true; - Listeners[i] = l; - } - - if (!success) - { - Console.WriteLine("Retrying..."); - Thread.Sleep(10000); - } - } while (!success); - - m_Queue = new Queue(); - m_WorkingQueue = new Queue(); - m_Throttled = new Queue(); - } - - public Listener[] Listeners{ get; set; } - - public void AddListener(Listener l) - { - Listener[] old = Listeners; - - Listeners = new Listener[old.Length + 1]; - - for (int i = 0; i < old.Length; ++i) - Listeners[i] = old[i]; - - Listeners[old.Length] = l; - } - - private void CheckListener() - { - for (int j = 0; j < Listeners.Length; ++j) - { - Socket[] accepted = Listeners[j].Slice(); - - for (int i = 0; i < accepted.Length; ++i) - { - NetState ns = new NetState(accepted[i], this); - ns.Start(); - - if (ns.Running) - Console.WriteLine("Client: {0}: Connected. [{1} Online]", ns, NetState.Instances.Count); - } - } - } - - public void OnReceive(NetState ns) - { - lock (this) - { - m_Queue.Enqueue(ns); - } - - Core.Set(); - } - - public void Slice() - { - CheckListener(); - - lock (this) - { - Queue temp = m_WorkingQueue; - m_WorkingQueue = m_Queue; - m_Queue = temp; - } - - while (m_WorkingQueue.Count > 0) - { - NetState ns = m_WorkingQueue.Dequeue(); - - if (ns.Running) - HandleReceive(ns); - } - - lock (this) - { - while (m_Throttled.Count > 0) - m_Queue.Enqueue(m_Throttled.Dequeue()); - } - } - - private bool HandleSeed(NetState ns, ByteQueue buffer) - { - if (buffer.GetPacketID() == 0xEF) - { - // new packet in client 6.0.5.0 replaces the traditional seed method with a seed packet - // 0xEF = 239 = multicast IP, so this should never appear in a normal seed. So this is backwards compatible with older clients. - ns.Seeded = true; - return true; - } - - if (buffer.Length >= 4) - { - byte[] m_Peek = new byte[4]; - - buffer.Dequeue(m_Peek, 0, 4); - - int seed = (m_Peek[0] << 24) | (m_Peek[1] << 16) | (m_Peek[2] << 8) | m_Peek[3]; - - if (seed == 0) - { - Console.WriteLine("Login: {0}: Invalid client detected, disconnecting", ns); - ns.Dispose(); - return false; - } - - ns.m_Seed = seed; - ns.Seeded = true; - return true; - } - - return false; - } - - private bool CheckEncrypted(NetState ns, int packetID) - { - if (!ns.SentFirstPacket && packetID != 0xF0 && packetID != 0xF1 && packetID != 0xCF && packetID != 0x80 && - packetID != 0x91 && packetID != 0xA4 && packetID != 0xEF) - { - Console.WriteLine("Client: {0}: Encrypted client detected, disconnecting", ns); - ns.Dispose(); - return true; - } - - return false; - } - - public void HandleReceive(NetState ns) - { - ByteQueue buffer = ns.Buffer; - - if (buffer == null || buffer.Length <= 0) - return; - - lock (buffer) - { - if (!ns.Seeded) - if (!HandleSeed(ns, buffer)) - return; - - int length = buffer.Length; - - while (length > 0 && ns.Running) - { - int packetID = buffer.GetPacketID(); - - if (CheckEncrypted(ns, packetID)) - break; - - PacketHandler handler = ns.GetHandler(packetID); - - if (handler == null) - { - byte[] data = new byte[length]; - length = buffer.Dequeue(data, 0, length); - new PacketReader(data, length, false).Trace(ns); - break; - } - - int packetLength = handler.Length; - - if (packetLength <= 0) - { - if (length >= 3) - { - packetLength = buffer.GetPacketLength(); - - if (packetLength < 3) - { - ns.Dispose(); - break; - } - } - else - { - break; - } - } - - if (length >= packetLength) - { - if (handler.Ingame) - { - if (ns.Mobile == null) - { - Console.WriteLine( - "Client: {0}: Sent ingame packet (0x{1:X2}) before having been attached to a mobile", ns, - packetID); - ns.Dispose(); - break; - } - - if (ns.Mobile.Deleted) - { - ns.Dispose(); - break; - } - } - - ThrottlePacketCallback throttler = handler.ThrottleCallback; - - if (throttler?.Invoke(ns) == false) - { - m_Throttled.Enqueue(ns); - return; - } - - PacketReceiveProfile prof = null; - - if (Core.Profiling) - prof = PacketReceiveProfile.Acquire(packetID); - - prof?.Start(); - - byte[] packetBuffer = BufferSize >= packetLength ? m_Buffers.AcquireBuffer() : new byte[packetLength]; - - packetLength = buffer.Dequeue(packetBuffer, 0, packetLength); - - PacketReader r = new PacketReader(packetBuffer, packetLength, handler.Length != 0); - - handler.OnReceive(ns, r); - length = buffer.Length; - - if (BufferSize >= packetLength) - m_Buffers.ReleaseBuffer(packetBuffer); - - prof?.Finish(packetLength); - } - else - { - break; - } - } - } - } - } -} diff --git a/Server/Network/NetState.cs b/Server/Network/NetState.cs deleted file mode 100644 index 2bfa00c6d..000000000 --- a/Server/Network/NetState.cs +++ /dev/null @@ -1,949 +0,0 @@ -/*************************************************************************** - * NetState.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Net; -using System.Net.Sockets; -using System.Threading; -using System.Threading.Tasks; -using Server.Accounting; -using Server.Diagnostics; -using Server.Gumps; -using Server.HuePickers; -using Server.Items; -using Server.Menus; - -namespace Server.Network -{ - public interface IPacketEncoder - { - void EncodeOutgoingPacket(NetState to, ref byte[] buffer, ref int length); - void DecodeIncomingPacket(NetState from, ref byte[] buffer, ref int length); - } - - public delegate void NetStateCreatedCallback(NetState ns); - - public class NetState : IComparable - { - private byte[] m_RecvBuffer; - private SendQueue m_SendQueue; - - private SocketAsyncEventArgs m_ReceiveEventArgs; - private SocketAsyncEventArgs m_SendEventArgs; - - private MessagePump m_MessagePump; - private string m_ToString; - private ClientVersion m_Version; - - public DateTime ConnectedOn{ get; } - - public TimeSpan ConnectedFor => DateTime.UtcNow - ConnectedOn; - - internal int m_Seed; - internal int m_AuthID; - - public IPAddress Address{ get; } - - private static bool m_Paused; - - [Flags] - private enum AsyncState - { - Pending = 0x01, - Paused = 0x02 - } - - private AsyncState m_AsyncState; - private object m_AsyncLock = new object(); - - public IPacketEncoder PacketEncoder{ get; set; } - - public static NetStateCreatedCallback CreatedCallback{ get; set; } - - public bool SentFirstPacket{ get; set; } - - public bool BlockAllPackets{ get; set; } - - public ClientFlags Flags{ get; set; } - - public ClientVersion Version - { - get => m_Version; - set - { - m_Version = value; - - if (value >= m_Version704565) - _ProtocolChanges = ProtocolChanges.Version704565; - else if (value >= m_Version70331) - _ProtocolChanges = ProtocolChanges.Version70331; - else if (value >= m_Version70300) - _ProtocolChanges = ProtocolChanges.Version70300; - else if (value >= m_Version70160) - _ProtocolChanges = ProtocolChanges.Version70160; - else if (value >= m_Version70130) - _ProtocolChanges = ProtocolChanges.Version70130; - else if (value >= m_Version7090) - _ProtocolChanges = ProtocolChanges.Version7090; - else if (value >= m_Version7000) - _ProtocolChanges = ProtocolChanges.Version7000; - else if (value >= m_Version60142) - _ProtocolChanges = ProtocolChanges.Version60142; - else if (value >= m_Version6017) - _ProtocolChanges = ProtocolChanges.Version6017; - else if (value >= m_Version6000) - _ProtocolChanges = ProtocolChanges.Version6000; - else if (value >= m_Version502b) - _ProtocolChanges = ProtocolChanges.Version502b; - else if (value >= m_Version500a) - _ProtocolChanges = ProtocolChanges.Version500a; - else if (value >= m_Version407a) - _ProtocolChanges = ProtocolChanges.Version407a; - else if (value >= m_Version400a) _ProtocolChanges = ProtocolChanges.Version400a; - } - } - - private static ClientVersion m_Version400a = new ClientVersion("4.0.0a"); - private static ClientVersion m_Version407a = new ClientVersion("4.0.7a"); - private static ClientVersion m_Version500a = new ClientVersion("5.0.0a"); - private static ClientVersion m_Version502b = new ClientVersion("5.0.2b"); - private static ClientVersion m_Version6000 = new ClientVersion("6.0.0.0"); - private static ClientVersion m_Version6017 = new ClientVersion("6.0.1.7"); - private static ClientVersion m_Version60142 = new ClientVersion("6.0.14.2"); - private static ClientVersion m_Version7000 = new ClientVersion("7.0.0.0"); - private static ClientVersion m_Version7090 = new ClientVersion("7.0.9.0"); - private static ClientVersion m_Version70130 = new ClientVersion("7.0.13.0"); - private static ClientVersion m_Version70160 = new ClientVersion("7.0.16.0"); - private static ClientVersion m_Version70300 = new ClientVersion("7.0.30.0"); - private static ClientVersion m_Version70331 = new ClientVersion("7.0.33.1"); - private static ClientVersion m_Version704565 = new ClientVersion("7.0.45.65"); - - private ProtocolChanges _ProtocolChanges; - - private enum ProtocolChanges - { - NewSpellbook = 0x00000001, - DamagePacket = 0x00000002, - Unpack = 0x00000004, - BuffIcon = 0x00000008, - NewHaven = 0x00000010, - ContainerGridLines = 0x00000020, - ExtendedSupportedFeatures = 0x00000040, - StygianAbyss = 0x00000080, - HighSeas = 0x00000100, - NewCharacterList = 0x00000200, - NewCharacterCreation = 0x00000400, - ExtendedStatus = 0x00000800, - NewMobileIncoming = 0x00001000, - NewSecureTrading = 0x00002000, - - Version400a = NewSpellbook, - Version407a = Version400a | DamagePacket, - Version500a = Version407a | Unpack, - Version502b = Version500a | BuffIcon, - Version6000 = Version502b | NewHaven, - Version6017 = Version6000 | ContainerGridLines, - Version60142 = Version6017 | ExtendedSupportedFeatures, - Version7000 = Version60142 | StygianAbyss, - Version7090 = Version7000 | HighSeas, - Version70130 = Version7090 | NewCharacterList, - Version70160 = Version70130 | NewCharacterCreation, - Version70300 = Version70160 | ExtendedStatus, - Version70331 = Version70300 | NewMobileIncoming, - Version704565 = Version70331 | NewSecureTrading - } - - public bool NewSpellbook => (_ProtocolChanges & ProtocolChanges.NewSpellbook) != 0; - public bool DamagePacket => (_ProtocolChanges & ProtocolChanges.DamagePacket) != 0; - public bool Unpack => (_ProtocolChanges & ProtocolChanges.Unpack) != 0; - public bool BuffIcon => (_ProtocolChanges & ProtocolChanges.BuffIcon) != 0; - public bool NewHaven => (_ProtocolChanges & ProtocolChanges.NewHaven) != 0; - public bool ContainerGridLines => (_ProtocolChanges & ProtocolChanges.ContainerGridLines) != 0; - public bool ExtendedSupportedFeatures => (_ProtocolChanges & ProtocolChanges.ExtendedSupportedFeatures) != 0; - public bool StygianAbyss => (_ProtocolChanges & ProtocolChanges.StygianAbyss) != 0; - public bool HighSeas => (_ProtocolChanges & ProtocolChanges.HighSeas) != 0; - public bool NewCharacterList => (_ProtocolChanges & ProtocolChanges.NewCharacterList) != 0; - public bool NewCharacterCreation => (_ProtocolChanges & ProtocolChanges.NewCharacterCreation) != 0; - public bool ExtendedStatus => (_ProtocolChanges & ProtocolChanges.ExtendedStatus) != 0; - public bool NewMobileIncoming => (_ProtocolChanges & ProtocolChanges.NewMobileIncoming) != 0; - public bool NewSecureTrading => (_ProtocolChanges & ProtocolChanges.NewSecureTrading) != 0; - - public bool IsUOTDClient => - (Flags & ClientFlags.UOTD) != 0 || m_Version != null && m_Version.Type == ClientType.UOTD; - - public bool IsSAClient => m_Version != null && m_Version.Type == ClientType.SA; - - public List Trades{ get; } - - public void ValidateAllTrades() - { - for (int i = Trades.Count - 1; i >= 0; --i) - { - if (i >= Trades.Count) continue; - - SecureTrade trade = Trades[i]; - - if (trade.From.Mobile.Deleted || trade.To.Mobile.Deleted || !trade.From.Mobile.Alive || - !trade.To.Mobile.Alive || !trade.From.Mobile.InRange(trade.To.Mobile, 2) || - trade.From.Mobile.Map != trade.To.Mobile.Map) trade.Cancel(); - } - } - - public void CancelAllTrades() - { - for (int i = Trades.Count - 1; i >= 0; --i) - if (i < Trades.Count) - Trades[i].Cancel(); - } - - public void RemoveTrade(SecureTrade trade) - { - Trades.Remove(trade); - } - - public SecureTrade FindTrade(Mobile m) - { - for (int i = 0; i < Trades.Count; ++i) - { - SecureTrade trade = Trades[i]; - - if (trade.From.Mobile == m || trade.To.Mobile == m) return trade; - } - - return null; - } - - public SecureTradeContainer FindTradeContainer(Mobile m) - { - for (int i = 0; i < Trades.Count; ++i) - { - SecureTrade trade = Trades[i]; - - SecureTradeInfo from = trade.From; - SecureTradeInfo to = trade.To; - - if (from.Mobile == Mobile && to.Mobile == m) return from.Container; - - if (from.Mobile == m && to.Mobile == Mobile) return to.Container; - } - - return null; - } - - public SecureTradeContainer AddTrade(NetState state) - { - SecureTrade newTrade = new SecureTrade(Mobile, state.Mobile); - - Trades.Add(newTrade); - state.Trades.Add(newTrade); - - return newTrade.From.Container; - } - - public bool CompressionEnabled{ get; set; } - - public int Sequence{ get; set; } - - public List Gumps{ get; private set; } - - public List HuePickers{ get; private set; } - - public List Menus{ get; private set; } - - public static int GumpCap{ get; set; } = 512; - - public static int HuePickerCap{ get; set; } = 512; - - public static int MenuCap{ get; set; } = 512; - - public void WriteConsole(string text) - { - Console.WriteLine("Client: {0}: {1}", this, text); - } - - public void WriteConsole(string format, params object[] args) - { - WriteConsole(string.Format(format, args)); - } - - public void AddMenu(IMenu menu) - { - if (Menus == null) Menus = new List(); - - if (Menus.Count < MenuCap) - { - Menus.Add(menu); - } - else - { - WriteConsole("Exceeded menu cap, disconnecting..."); - Dispose(); - } - } - - public void RemoveMenu(IMenu menu) - { - Menus?.Remove(menu); - } - - public void RemoveMenu(int index) - { - Menus?.RemoveAt(index); - } - - public void ClearMenus() - { - Menus?.Clear(); - } - - public void AddHuePicker(HuePicker huePicker) - { - if (HuePickers == null) HuePickers = new List(); - - if (HuePickers.Count < HuePickerCap) - { - HuePickers.Add(huePicker); - } - else - { - WriteConsole("Exceeded hue picker cap, disconnecting..."); - Dispose(); - } - } - - public void RemoveHuePicker(HuePicker huePicker) - { - HuePickers?.Remove(huePicker); - } - - public void RemoveHuePicker(int index) - { - HuePickers?.RemoveAt(index); - } - - public void ClearHuePickers() - { - HuePickers?.Clear(); - } - - public void AddGump(Gump gump) - { - if (Gumps == null) Gumps = new List(); - - if (Gumps.Count < GumpCap) - { - Gumps.Add(gump); - } - else - { - WriteConsole("Exceeded gump cap, disconnecting..."); - Dispose(); - } - } - - public void RemoveGump(Gump gump) - { - Gumps?.Remove(gump); - } - - public void RemoveGump(int index) - { - Gumps?.RemoveAt(index); - } - - public void ClearGumps() - { - Gumps?.Clear(); - } - - public void LaunchBrowser(string url) - { - Send(new MessageLocalized(Serial.MinusOne, -1, MessageType.Label, 0x35, 3, 501231, "", "")); - Send(new LaunchBrowser(url)); - } - - public CityInfo[] CityInfo{ get; set; } - - public Mobile Mobile{ get; set; } - - public ServerInfo[] ServerInfo{ get; set; } - - public IAccount Account{ get; set; } - - public override string ToString() - { - return m_ToString; - } - - public static List Instances{ get; } = new List(); - - private static BufferPool m_ReceiveBufferPool = new BufferPool("Receive", 2048, 2048); - - public NetState(Socket socket, MessagePump messagePump) - { - Socket = socket; - Buffer = new ByteQueue(); - Seeded = false; - Running = false; - m_RecvBuffer = m_ReceiveBufferPool.AcquireBuffer(); - m_MessagePump = messagePump; - Gumps = new List(); - HuePickers = new List(); - Menus = new List(); - Trades = new List(); - - m_SendQueue = new SendQueue(); - - m_NextCheckActivity = Core.TickCount + 30000; - - Instances.Add(this); - - try - { - Address = Utility.Intern(((IPEndPoint)Socket.RemoteEndPoint).Address); - m_ToString = Address.ToString(); - } - catch (Exception ex) - { - TraceException(ex); - Address = IPAddress.None; - m_ToString = "(error)"; - } - - ConnectedOn = DateTime.UtcNow; - - CreatedCallback?.Invoke(this); - } - - private bool _sending; - private object _sendL = new object(); - - public virtual void Send(Packet p) - { - if (Socket == null || BlockAllPackets) - { - p.OnSend(); - return; - } - - byte[] buffer = p.Compile(CompressionEnabled, out int length); - - if (buffer == null) - { - Console.WriteLine("Client: {0}: null buffer send, disconnecting...", this); - using (StreamWriter op = new StreamWriter("null_send.log", true)) - { - op.WriteLine("{0} Client: {1}: null buffer send, disconnecting...", DateTime.UtcNow, this); - op.WriteLine(new StackTrace()); - } - - Dispose(); - return; - } - - if (buffer.Length <= 0 || length <= 0) - { - p.OnSend(); - return; - } - - PacketSendProfile prof = null; - - if (Core.Profiling) - prof = PacketSendProfile.Acquire(p.GetType()); - - prof?.Start(); - - PacketEncoder?.EncodeOutgoingPacket(this, ref buffer, ref length); - - try - { - lock (_sendL) - { - SendQueue.Gram gram; - lock (m_SendQueue) - { - gram = m_SendQueue.Enqueue(buffer, length); - } - - if (gram != null && !_sending) - { - _sending = true; - m_SendEventArgs.SetBuffer(gram.Buffer, 0, gram.Length); - Send_Start(); - } - } - } - catch (CapacityExceededException) - { - Console.WriteLine("Client: {0}: Too much data pending, disconnecting...", this); - Dispose(false); - } - - p.OnSend(); - - prof?.Finish(length); - } - - public void Start() - { - m_ReceiveEventArgs = new SocketAsyncEventArgs(); - m_ReceiveEventArgs.Completed += Receive_Completion; - m_ReceiveEventArgs.SetBuffer(m_RecvBuffer, 0, m_RecvBuffer.Length); - - m_SendEventArgs = new SocketAsyncEventArgs(); - m_SendEventArgs.Completed += Send_Completion; - - Running = true; - - if (Socket == null || m_Paused) return; - - Receive_Start(); - } - - private void Receive_Start() - { - try - { - bool result = false; - - do - { - lock (m_AsyncLock) - { - if ((m_AsyncState & (AsyncState.Pending | AsyncState.Paused)) == 0) - { - m_AsyncState |= AsyncState.Pending; - result = !Socket.ReceiveAsync(m_ReceiveEventArgs); - - if (result) - Receive_Process(m_ReceiveEventArgs); - } - } - } while (result); - } - catch (Exception ex) - { - TraceException(ex); - Dispose(false); - } - } - - private void Receive_Completion(object sender, SocketAsyncEventArgs e) - { - Receive_Process(e); - - if (!IsDisposing) - Receive_Start(); - } - - private void Receive_Process(SocketAsyncEventArgs e) - { - int byteCount = e.BytesTransferred; - - if (e.SocketError != SocketError.Success || byteCount <= 0) - { - Dispose(false); - return; - } - - if (IsDisposing) - return; - - m_NextCheckActivity = Core.TickCount + 90000; - - byte[] buffer = m_RecvBuffer; - - PacketEncoder?.DecodeIncomingPacket(this, ref buffer, ref byteCount); - - lock (Buffer) - { - Buffer.Enqueue(buffer, 0, byteCount); - } - - m_MessagePump.OnReceive(this); - - lock (m_AsyncLock) - { - m_AsyncState &= ~AsyncState.Pending; - } - } - - private void Send_Start() - { - try - { - bool result; - - do - { - result = !Socket.SendAsync(m_SendEventArgs); - - if (result) - Send_Process(m_SendEventArgs); - } while (result); - } - catch (Exception ex) - { - TraceException(ex); - Dispose(false); - } - } - - private void Send_Completion(object sender, SocketAsyncEventArgs e) - { - Send_Process(e); - - if (IsDisposing) - return; - - if (CoalesceSleep >= 0) Thread.Sleep(CoalesceSleep); - - SendQueue.Gram gram; - - lock (m_SendQueue) - { - gram = m_SendQueue.Dequeue(); - - if (gram == null && m_SendQueue.IsFlushReady) - gram = m_SendQueue.CheckFlushReady(); - } - - if (gram != null) - { - m_SendEventArgs.SetBuffer(gram.Buffer, 0, gram.Length); - Send_Start(); - } - else - { - lock (_sendL) - { - _sending = false; - } - } - } - - private void Send_Process(SocketAsyncEventArgs e) - { - int bytes = e.BytesTransferred; - - if (e.SocketError != SocketError.Success || bytes <= 0) - { - Dispose(false); - return; - } - - m_NextCheckActivity = Core.TickCount + 90000; - } - - public static void Pause() - { - m_Paused = true; - - for (int i = 0; i < Instances.Count; ++i) - { - NetState ns = Instances[i]; - - lock (ns.m_AsyncLock) - { - ns.m_AsyncState |= AsyncState.Paused; - } - } - } - - public static void Resume() - { - m_Paused = false; - - for (int i = 0; i < Instances.Count; ++i) - { - NetState ns = Instances[i]; - - if (ns.Socket == null) continue; - - lock (ns.m_AsyncLock) - { - ns.m_AsyncState &= ~AsyncState.Paused; - - if ((ns.m_AsyncState & AsyncState.Pending) == 0) - ns.Receive_Start(); - } - } - } - - public bool Flush() - { - if (Socket == null) - return false; - - lock (_sendL) - { - if (_sending) - return false; - - SendQueue.Gram gram; - - lock (m_SendQueue) - { - if (!m_SendQueue.IsFlushReady) - return false; - - gram = m_SendQueue.CheckFlushReady(); - } - - if (gram != null) - { - _sending = true; - m_SendEventArgs.SetBuffer(gram.Buffer, 0, gram.Length); - Send_Start(); - } - } - - return false; - } - - public PacketHandler GetHandler(int packetID) - { - return ContainerGridLines ? PacketHandlers.Get6017Handler(packetID) : - PacketHandlers.GetHandler(packetID); - } - - public static void FlushAll() - { - if (Instances.Count >= 1024) - Parallel.ForEach(Instances, ns => ns.Flush()); - else - for (int i = 0; i < Instances.Count; ++i) - Instances[i].Flush(); - } - - public static int CoalesceSleep{ get; set; } = -1; - - private long m_NextCheckActivity; - - public void CheckAlive(long curTicks) - { - if (Socket == null || m_NextCheckActivity - curTicks >= 0) - return; - - Console.WriteLine("Client: {0}: Disconnecting due to inactivity...", this); - Dispose(); - } - - public static void TraceException(Exception ex) - { - if (!Core.Debug) - return; - - try - { - using (StreamWriter op = new StreamWriter("network-errors.log", true)) - { - op.WriteLine("# {0}", DateTime.UtcNow); - - op.WriteLine(ex); - - op.WriteLine(); - op.WriteLine(); - } - } - catch - { - // ignored - } - - try - { - Console.WriteLine(ex); - } - catch - { - // ignored - } - } - - public bool IsDisposing{ get; private set; } - - public virtual void Dispose(bool flush = true) - { - if (Socket == null || IsDisposing) - return; - - IsDisposing = true; - - if (flush) - flush = Flush(); - - try - { - Socket.Shutdown(SocketShutdown.Both); - } - catch (SocketException ex) - { - TraceException(ex); - } - - try - { - Socket.Close(); - } - catch (SocketException ex) - { - TraceException(ex); - } - - if (m_RecvBuffer != null) - lock (m_ReceiveBufferPool) - { - m_ReceiveBufferPool.ReleaseBuffer(m_RecvBuffer); - } - - Socket = null; - - Buffer = null; - m_RecvBuffer = null; - - m_ReceiveEventArgs = null; - m_SendEventArgs = null; - - Running = false; - - lock (m_Disposed) - { - m_Disposed.Enqueue(this); - } - - lock (m_SendQueue) - { - if ( /*!flush &&*/ !m_SendQueue.IsEmpty) - m_SendQueue.Clear(); - } - } - - public static void Initialize() - { - Timer.DelayCall(TimeSpan.FromMinutes(1.0), TimeSpan.FromMinutes(1.5), CheckAllAlive); - } - - public static void CheckAllAlive() - { - try - { - long curTicks = Core.TickCount; - - if (Instances.Count >= 1024) - Parallel.ForEach(Instances, ns => ns.CheckAlive(curTicks)); - else - for (int i = 0; i < Instances.Count; ++i) - Instances[i].CheckAlive(curTicks); - } - catch (Exception ex) - { - TraceException(ex); - } - } - - private static Queue m_Disposed = new Queue(); - - public static void ProcessDisposedQueue() - { - lock (m_Disposed) - { - int breakout = 0; - - while (breakout < 200 && m_Disposed.Count > 0) - { - ++breakout; - NetState ns = m_Disposed.Dequeue(); - - Mobile m = ns.Mobile; - IAccount a = ns.Account; - - if (m != null) - { - m.NetState = null; - ns.Mobile = null; - } - - ns.Gumps.Clear(); - ns.Menus.Clear(); - ns.HuePickers.Clear(); - ns.Account = null; - ns.ServerInfo = null; - ns.CityInfo = null; - - Instances.Remove(ns); - - if (a != null) - ns.WriteConsole("Disconnected. [{0} Online] [{1}]", Instances.Count, a); - else - ns.WriteConsole("Disconnected. [{0} Online]", Instances.Count); - } - } - } - - public bool Running{ get; private set; } - - public bool Seeded{ get; set; } - - public Socket Socket{ get; private set; } - - public ByteQueue Buffer{ get; private set; } - - public ExpansionInfo ExpansionInfo - { - get - { - for (int i = ExpansionInfo.Table.Length - 1; i >= 0; i--) - { - ExpansionInfo info = ExpansionInfo.Table[i]; - - if (info.RequiredClient != null && Version >= info.RequiredClient || (Flags & info.ClientFlags) != 0) - return info; - } - - return ExpansionInfo.GetInfo(Expansion.None); - } - } - - public Expansion Expansion => (Expansion)ExpansionInfo.ID; - - public bool SupportsExpansion(ExpansionInfo info, bool checkCoreExpansion = true) - { - if (info == null || checkCoreExpansion && (int)Core.Expansion < info.ID) - return false; - - return info.RequiredClient != null ? Version >= info.RequiredClient : (Flags & info.ClientFlags) != 0; - } - - public bool SupportsExpansion(Expansion ex, bool checkCoreExpansion = true) - { - return SupportsExpansion(ExpansionInfo.GetInfo(ex), checkCoreExpansion); - } - - public int CompareTo(NetState other) - { - return other == null ? 1 : m_ToString.CompareTo(other.m_ToString); - } - } -} diff --git a/Server/Network/PacketReader.cs b/Server/Network/PacketReader.cs deleted file mode 100644 index c120903b5..000000000 --- a/Server/Network/PacketReader.cs +++ /dev/null @@ -1,438 +0,0 @@ -/*************************************************************************** - * PacketReader.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System.IO; -using System.Text; - -namespace Server.Network -{ - public class PacketReader - { - private int m_Index; - - public PacketReader(byte[] data, int size, bool fixedSize) - { - Buffer = data; - Size = size; - m_Index = fixedSize ? 1 : 3; - } - - public byte[] Buffer{ get; } - - public int Size{ get; } - - public void Trace(NetState state) - { - try - { - using (StreamWriter sw = new StreamWriter("Packets.log", true)) - { - byte[] buffer = Buffer; - - if (buffer.Length > 0) - sw.WriteLine("Client: {0}: Unhandled packet 0x{1:X2}", state, buffer[0]); - - using (MemoryStream ms = new MemoryStream(buffer)) - { - Utility.FormatBuffer(sw, ms, buffer.Length); - } - - sw.WriteLine(); - sw.WriteLine(); - } - } - catch - { - // ignored - } - } - - public int Seek(int offset, SeekOrigin origin) - { - switch (origin) - { - case SeekOrigin.Begin: - m_Index = offset; - break; - case SeekOrigin.Current: - m_Index += offset; - break; - case SeekOrigin.End: - m_Index = Size - offset; - break; - } - - return m_Index; - } - - public int ReadInt32() - { - if (m_Index + 4 > Size) - return 0; - - return (Buffer[m_Index++] << 24) - | (Buffer[m_Index++] << 16) - | (Buffer[m_Index++] << 8) - | Buffer[m_Index++]; - } - - public short ReadInt16() - { - if (m_Index + 2 > Size) - return 0; - - return (short)((Buffer[m_Index++] << 8) | Buffer[m_Index++]); - } - - public byte ReadByte() - { - if (m_Index + 1 > Size) - return 0; - - return Buffer[m_Index++]; - } - - public uint ReadUInt32() - { - if (m_Index + 4 > Size) - return 0; - - return (uint)((Buffer[m_Index++] << 24) | (Buffer[m_Index++] << 16) | (Buffer[m_Index++] << 8) | - Buffer[m_Index++]); - } - - public ushort ReadUInt16() - { - if (m_Index + 2 > Size) - return 0; - - return (ushort)((Buffer[m_Index++] << 8) | Buffer[m_Index++]); - } - - public sbyte ReadSByte() - { - if (m_Index + 1 > Size) - return 0; - - return (sbyte)Buffer[m_Index++]; - } - - public bool ReadBoolean() - { - if (m_Index + 1 > Size) - return false; - - return Buffer[m_Index++] != 0; - } - - public string ReadUnicodeStringLE() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < Size && (c = Buffer[m_Index++] | (Buffer[m_Index++] << 8)) != 0) - sb.Append((char)c); - - return sb.ToString(); - } - - public string ReadUnicodeStringLESafe(int fixedLength) - { - int bound = m_Index + (fixedLength << 1); - int end = bound; - - if (bound > Size) - bound = Size; - - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < bound && (c = Buffer[m_Index++] | (Buffer[m_Index++] << 8)) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - m_Index = end; - - return sb.ToString(); - } - - public string ReadUnicodeStringLESafe() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < Size && (c = Buffer[m_Index++] | (Buffer[m_Index++] << 8)) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - return sb.ToString(); - } - - public string ReadUnicodeStringSafe() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < Size && (c = (Buffer[m_Index++] << 8) | Buffer[m_Index++]) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - return sb.ToString(); - } - - public string ReadUnicodeString() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < Size && (c = (Buffer[m_Index++] << 8) | Buffer[m_Index++]) != 0) - sb.Append((char)c); - - return sb.ToString(); - } - - public bool IsSafeChar(int c) - { - return c >= 0x20 && c < 0xFFFE; - } - - public string ReadUTF8StringSafe(int fixedLength) - { - if (m_Index >= Size) - { - m_Index += fixedLength; - return string.Empty; - } - - int bound = m_Index + fixedLength; - //int end = bound; - - if (bound > Size) - bound = Size; - - int count = 0; - int index = m_Index; - int start = m_Index; - - while (index < bound && Buffer[index++] != 0) - ++count; - - index = 0; - - byte[] buffer = new byte[count]; - int value = 0; - - while (m_Index < bound && (value = Buffer[m_Index++]) != 0) - buffer[index++] = (byte)value; - - string s = Utility.UTF8.GetString(buffer); - - bool isSafe = true; - - for (int i = 0; isSafe && i < s.Length; ++i) - isSafe = IsSafeChar(s[i]); - - m_Index = start + fixedLength; - - if (isSafe) - return s; - - StringBuilder sb = new StringBuilder(s.Length); - - for (int i = 0; i < s.Length; ++i) - if (IsSafeChar(s[i])) - sb.Append(s[i]); - - return sb.ToString(); - } - - public string ReadUTF8StringSafe() - { - if (m_Index >= Size) - return string.Empty; - - int count = 0; - int index = m_Index; - - while (index < Size && Buffer[index++] != 0) - ++count; - - index = 0; - - byte[] buffer = new byte[count]; - int value = 0; - - while (m_Index < Size && (value = Buffer[m_Index++]) != 0) - buffer[index++] = (byte)value; - - string s = Utility.UTF8.GetString(buffer); - - bool isSafe = true; - - for (int i = 0; isSafe && i < s.Length; ++i) - isSafe = IsSafeChar(s[i]); - - if (isSafe) - return s; - - StringBuilder sb = new StringBuilder(s.Length); - - for (int i = 0; i < s.Length; ++i) - if (IsSafeChar(s[i])) - sb.Append(s[i]); - - return sb.ToString(); - } - - public string ReadUTF8String() - { - if (m_Index >= Size) - return string.Empty; - - int count = 0; - int index = m_Index; - - while (index < Size && Buffer[index++] != 0) - ++count; - - index = 0; - - byte[] buffer = new byte[count]; - int value = 0; - - while (m_Index < Size && (value = Buffer[m_Index++]) != 0) - buffer[index++] = (byte)value; - - return Utility.UTF8.GetString(buffer); - } - - public string ReadString() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index < Size && (c = Buffer[m_Index++]) != 0) - sb.Append((char)c); - - return sb.ToString(); - } - - public string ReadStringSafe() - { - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index < Size && (c = Buffer[m_Index++]) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - return sb.ToString(); - } - - public string ReadUnicodeStringSafe(int fixedLength) - { - int bound = m_Index + (fixedLength << 1); - int end = bound; - - if (bound > Size) - bound = Size; - - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < bound && (c = (Buffer[m_Index++] << 8) | Buffer[m_Index++]) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - m_Index = end; - - return sb.ToString(); - } - - public string ReadUnicodeString(int fixedLength) - { - int bound = m_Index + (fixedLength << 1); - int end = bound; - - if (bound > Size) - bound = Size; - - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index + 1 < bound && (c = (Buffer[m_Index++] << 8) | Buffer[m_Index++]) != 0) - sb.Append((char)c); - - m_Index = end; - - return sb.ToString(); - } - - public string ReadStringSafe(int fixedLength) - { - int bound = m_Index + fixedLength; - int end = bound; - - if (bound > Size) - bound = Size; - - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index < bound && (c = Buffer[m_Index++]) != 0) - if (IsSafeChar(c)) - sb.Append((char)c); - - m_Index = end; - - return sb.ToString(); - } - - public string ReadString(int fixedLength) - { - int bound = m_Index + fixedLength; - int end = bound; - - if (bound > Size) - bound = Size; - - StringBuilder sb = new StringBuilder(); - - int c; - - while (m_Index < bound && (c = Buffer[m_Index++]) != 0) - sb.Append((char)c); - - m_Index = end; - - return sb.ToString(); - } - } -} \ No newline at end of file diff --git a/Server/Network/SendQueue.cs b/Server/Network/SendQueue.cs deleted file mode 100644 index 78f98fe87..000000000 --- a/Server/Network/SendQueue.cs +++ /dev/null @@ -1,225 +0,0 @@ -/*************************************************************************** - * SendQueue.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; -using System.Collections.Generic; - -namespace Server.Network -{ - public class SendQueue - { - private const int PendingCap = 256 * 1024; - - private static int m_CoalesceBufferSize = 512; - private static BufferPool m_UnusedBuffers = new BufferPool("Coalesced", 2048, m_CoalesceBufferSize); - - private Gram _buffered; - - private Queue _pending; - - public SendQueue() - { - _pending = new Queue(); - } - - public static int CoalesceBufferSize - { - get => m_CoalesceBufferSize; - set - { - if (m_CoalesceBufferSize == value) - return; - - BufferPool old = m_UnusedBuffers; - - lock (old) - { - m_UnusedBuffers?.Free(); - - m_CoalesceBufferSize = value; - m_UnusedBuffers = new BufferPool("Coalesced", 2048, m_CoalesceBufferSize); - } - } - } - - public bool IsFlushReady => _pending.Count == 0 && _buffered != null; - - public bool IsEmpty => _pending.Count == 0 && _buffered == null; - - public static byte[] AcquireBuffer() - { - lock (m_UnusedBuffers) - { - return m_UnusedBuffers.AcquireBuffer(); - } - } - - public static void ReleaseBuffer(byte[] buffer) - { - lock (m_UnusedBuffers) - { - if (buffer != null && buffer.Length == m_CoalesceBufferSize) - m_UnusedBuffers.ReleaseBuffer(buffer); - } - } - - public Gram CheckFlushReady() - { - Gram gram = _buffered; - _pending.Enqueue(_buffered); - _buffered = null; - return gram; - } - - public Gram Dequeue() - { - Gram gram = null; - - if (_pending.Count > 0) - { - _pending.Dequeue().Release(); - - if (_pending.Count > 0) gram = _pending.Peek(); - } - - return gram; - } - - public Gram Enqueue(byte[] buffer, int length) - { - return Enqueue(buffer, 0, length); - } - - public Gram Enqueue(byte[] buffer, int offset, int length) - { - if (buffer == null) throw new ArgumentNullException("buffer"); - - if (!(offset >= 0 && offset < buffer.Length)) - throw new ArgumentOutOfRangeException("offset", offset, - "Offset must be greater than or equal to zero and less than the size of the buffer."); - if (length < 0 || length > buffer.Length) - throw new ArgumentOutOfRangeException("length", length, - "Length cannot be less than zero or greater than the size of the buffer."); - if (buffer.Length - offset < length) - throw new ArgumentException("Offset and length do not point to a valid segment within the buffer."); - - int existingBytes = _pending.Count * m_CoalesceBufferSize + (_buffered?.Length ?? 0); - - if (existingBytes + length > PendingCap) throw new CapacityExceededException(); - - Gram gram = null; - - while (length > 0) - { - if (_buffered == null) _buffered = Gram.Acquire(); - - int bytesWritten = _buffered.Write(buffer, offset, length); - - offset += bytesWritten; - length -= bytesWritten; - - if (_buffered.IsFull) - { - if (_pending.Count == 0) gram = _buffered; - - _pending.Enqueue(_buffered); - _buffered = null; - } - } - - return gram; - } - - public void Clear() - { - if (_buffered != null) - { - _buffered.Release(); - _buffered = null; - } - - while (_pending.Count > 0) _pending.Dequeue().Release(); - } - - public class Gram - { - private static Stack _pool = new Stack(); - - private Gram() - { - } - - public byte[] Buffer{ get; private set; } - - public int Length{ get; private set; } - - public int Available => Buffer.Length - Length; - - public bool IsFull => Length == Buffer.Length; - - public static Gram Acquire() - { - lock (_pool) - { - Gram gram; - - if (_pool.Count > 0) - gram = _pool.Pop(); - else - gram = new Gram(); - - gram.Buffer = AcquireBuffer(); - gram.Length = 0; - - return gram; - } - } - - public int Write(byte[] buffer, int offset, int length) - { - int write = Math.Min(length, Available); - - System.Buffer.BlockCopy(buffer, offset, Buffer, Length, write); - - Length += write; - - return write; - } - - public void Release() - { - lock (_pool) - { - _pool.Push(this); - ReleaseBuffer(Buffer); - } - } - } - } - - [Serializable] - public sealed class CapacityExceededException : Exception - { - public CapacityExceededException() - : base("Too much data pending.") - { - } - } -} \ No newline at end of file diff --git a/Server/Persistence/SaveMetrics.cs b/Server/Persistence/SaveMetrics.cs deleted file mode 100644 index b1384ffde..000000000 --- a/Server/Persistence/SaveMetrics.cs +++ /dev/null @@ -1,138 +0,0 @@ -/*************************************************************************** - * SaveMetrics.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; -using System.Diagnostics; - -namespace Server -{ - public sealed class SaveMetrics : IDisposable - { - private const string PerformanceCategoryName = "RunUO 2.1"; - private const string PerformanceCategoryDesc = "Performance counters for RunUO 2.1."; - - private bool isDisposed; - - private PerformanceCounter itemsPerSecond; - private PerformanceCounter mobilesPerSecond; - - private PerformanceCounter numberOfWorldSaves; - - private PerformanceCounter serializedBytesPerSecond; - private PerformanceCounter writtenBytesPerSecond; - - public SaveMetrics() - { - if (!PerformanceCounterCategory.Exists(PerformanceCategoryName)) - { - CounterCreationDataCollection counters = new CounterCreationDataCollection(); - - counters.Add(new CounterCreationData( - "Save - Count", - "Number of world saves.", - PerformanceCounterType.NumberOfItems32 - ) - ); - - counters.Add(new CounterCreationData( - "Save - Items/sec", - "Number of items saved per second.", - PerformanceCounterType.RateOfCountsPerSecond32 - ) - ); - - counters.Add(new CounterCreationData( - "Save - Mobiles/sec", - "Number of mobiles saved per second.", - PerformanceCounterType.RateOfCountsPerSecond32 - ) - ); - - counters.Add(new CounterCreationData( - "Save - Serialized bytes/sec", - "Amount of world-save bytes serialized per second.", - PerformanceCounterType.RateOfCountsPerSecond32 - ) - ); - - counters.Add(new CounterCreationData( - "Save - Written bytes/sec", - "Amount of world-save bytes written to disk per second.", - PerformanceCounterType.RateOfCountsPerSecond32 - ) - ); - - PerformanceCounterCategory.Create(PerformanceCategoryName, PerformanceCategoryDesc, - PerformanceCounterCategoryType.SingleInstance, counters); - } - - numberOfWorldSaves = new PerformanceCounter(PerformanceCategoryName, "Save - Count", false); - - itemsPerSecond = new PerformanceCounter(PerformanceCategoryName, "Save - Items/sec", false); - mobilesPerSecond = new PerformanceCounter(PerformanceCategoryName, "Save - Mobiles/sec", false); - - serializedBytesPerSecond = new PerformanceCounter(PerformanceCategoryName, "Save - Serialized bytes/sec", false); - writtenBytesPerSecond = new PerformanceCounter(PerformanceCategoryName, "Save - Written bytes/sec", false); - - // increment number of world saves - numberOfWorldSaves.Increment(); - } - - public void Dispose() - { - if (!isDisposed) - { - isDisposed = true; - - numberOfWorldSaves.Dispose(); - - itemsPerSecond.Dispose(); - mobilesPerSecond.Dispose(); - - serializedBytesPerSecond.Dispose(); - writtenBytesPerSecond.Dispose(); - } - } - - public void OnItemSaved(int numberOfBytes) - { - itemsPerSecond.Increment(); - - serializedBytesPerSecond.IncrementBy(numberOfBytes); - } - - public void OnMobileSaved(int numberOfBytes) - { - mobilesPerSecond.Increment(); - - serializedBytesPerSecond.IncrementBy(numberOfBytes); - } - - public void OnGuildSaved(int numberOfBytes) - { - serializedBytesPerSecond.IncrementBy(numberOfBytes); - } - - public void OnFileWritten(int numberOfBytes) - { - writtenBytesPerSecond.IncrementBy(numberOfBytes); - } - } -} diff --git a/Server/ScriptCompiler.cs b/Server/ScriptCompiler.cs deleted file mode 100644 index 8ecf26c7b..000000000 --- a/Server/ScriptCompiler.cs +++ /dev/null @@ -1,723 +0,0 @@ -/*************************************************************************** - * ScriptCompiler.cs - * ------------------- - * begin : May 1, 2002 - * copyright : (C) The RunUO Software Team - * email : info@runuo.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -using System; -using System.CodeDom.Compiler; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using System.Security.Cryptography; -using System.Text; - -namespace Server -{ - public static class ScriptCompiler - { - private static List m_AdditionalReferences = new List(); - - private static Dictionary m_TypeCaches = new Dictionary(); - private static TypeCache m_NullCache; - public static Assembly[] Assemblies{ get; set; } - - public static string[] GetReferenceAssemblies() - { - List list = new List(); - - string path = Path.Combine(Core.BaseDirectory, "Data/Assemblies.cfg"); - - if (File.Exists(path)) - using (StreamReader ip = new StreamReader(path)) - { - string line; - - while ((line = ip.ReadLine()) != null) - if (line.Length > 0 && !line.StartsWith("#")) - list.Add(line); - } - - list.Add(Core.ExePath); - - list.AddRange(m_AdditionalReferences); - - return list.ToArray(); - } - - public static string GetCompilerOptions(bool debug) - { - StringBuilder sb = null; - - AppendCompilerOption(ref sb, "/unsafe"); - - if (!debug) - AppendCompilerOption(ref sb, "/optimize"); - -#if MONO - AppendCompilerOption( ref sb, "/d:MONO" ); -#endif - - if (Core.Is64Bit) - AppendCompilerOption(ref sb, "/d:x64"); - -#if NEWTIMERS - AppendCompilerOption(ref sb, "/d:NEWTIMERS"); -#endif - - return sb?.ToString(); - } - - private static void AppendCompilerOption(ref StringBuilder sb, string define) - { - if (sb == null) - sb = new StringBuilder(); - else - sb.Append(' '); - - sb.Append(define); - } - - private static byte[] GetHashCode(string compiledFile, string[] scriptFiles, bool debug) - { - using (MemoryStream ms = new MemoryStream()) - { - using (BinaryWriter bin = new BinaryWriter(ms)) - { - FileInfo fileInfo = new FileInfo(compiledFile); - - bin.Write(fileInfo.LastWriteTimeUtc.Ticks); - - foreach (string scriptFile in scriptFiles) - { - fileInfo = new FileInfo(scriptFile); - - bin.Write(fileInfo.LastWriteTimeUtc.Ticks); - } - - bin.Write(debug); - bin.Write(Core.Version.ToString()); - - ms.Position = 0; - - using (SHA1 sha1 = SHA1.Create()) - { - return sha1.ComputeHash(ms); - } - } - } - } - - public static bool CompileCSScripts(out Assembly assembly, bool cache = true, bool debug = false) - { - Console.Write("Scripts: Compiling C# scripts..."); - string[] files = GetScripts("*.cs"); - - if (files.Length == 0) - { - Console.WriteLine("no files found."); - assembly = null; - return true; - } - - if (File.Exists("Scripts/Output/Scripts.CS.dll")) - if (cache && File.Exists("Scripts/Output/Scripts.CS.hash")) - try - { - byte[] hashCode = GetHashCode("Scripts/Output/Scripts.CS.dll", files, debug); - - using (FileStream fs = new FileStream("Scripts/Output/Scripts.CS.hash", FileMode.Open, - FileAccess.Read, FileShare.Read)) - { - using (BinaryReader bin = new BinaryReader(fs)) - { - byte[] bytes = bin.ReadBytes(hashCode.Length); - - if (bytes.Length == hashCode.Length) - { - bool valid = true; - - for (int i = 0; i < bytes.Length; ++i) - if (bytes[i] != hashCode[i]) - { - valid = false; - break; - } - - if (valid) - { - assembly = Assembly.LoadFrom("Scripts/Output/Scripts.CS.dll"); - - if (!m_AdditionalReferences.Contains(assembly.Location)) - m_AdditionalReferences.Add(assembly.Location); - - Console.WriteLine("done (cached)"); - - return true; - } - } - } - } - } - catch - { - // ignored - } - - DeleteFiles("Scripts.CS*.dll"); - - using (CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp")) - { - string path = GetUnusedPath("Scripts.CS"); - - CompilerParameters parms = new CompilerParameters(GetReferenceAssemblies(), path, debug); - - string options = GetCompilerOptions(debug); - - if (options != null) - parms.CompilerOptions = options; - - if (Core.HaltOnWarning) - parms.WarningLevel = 4; - - if (Core.Unix) - { - parms.CompilerOptions = $"{parms.CompilerOptions} /nowarn:169,219,414 /recurse:Scripts/*.cs"; - files = new string[0]; - } - - CompilerResults results = provider.CompileAssemblyFromFile(parms, files); - m_AdditionalReferences.Add(path); - - Display(results); - - if (results.Errors.Count > 0) - { - if (!Core.Unix) - { - assembly = null; - return false; - } - - foreach (CompilerError err in results.Errors) - if (!err.IsWarning) - { - assembly = null; - return false; - } - } - - - if (cache && Path.GetFileName(path) == "Scripts.CS.dll") - try - { - byte[] hashCode = GetHashCode(path, files, debug); - - using (FileStream fs = new FileStream("Scripts/Output/Scripts.CS.hash", FileMode.Create, - FileAccess.Write, FileShare.None)) - { - using (BinaryWriter bin = new BinaryWriter(fs)) - { - bin.Write(hashCode, 0, hashCode.Length); - } - } - } - catch - { - // ignored - } - - assembly = results.CompiledAssembly; - return true; - } - } - - public static bool CompileVBScripts(out Assembly assembly, bool cache = true, bool debug = false) - { - Console.Write("Scripts: Compiling VB.NET scripts..."); - string[] files = GetScripts("*.vb"); - - if (files.Length == 0) - { - Console.WriteLine("no files found."); - assembly = null; - return true; - } - - if (File.Exists("Scripts/Output/Scripts.VB.dll")) - if (cache && File.Exists("Scripts/Output/Scripts.VB.hash")) - { - byte[] hashCode = GetHashCode("Scripts/Output/Scripts.VB.dll", files, debug); - - try - { - using (FileStream fs = new FileStream("Scripts/Output/Scripts.VB.hash", FileMode.Open, - FileAccess.Read, FileShare.Read)) - { - using (BinaryReader bin = new BinaryReader(fs)) - { - byte[] bytes = bin.ReadBytes(hashCode.Length); - - if (bytes.Length == hashCode.Length) - { - bool valid = true; - - for (int i = 0; i < bytes.Length; ++i) - if (bytes[i] != hashCode[i]) - { - valid = false; - break; - } - - if (valid) - { - assembly = Assembly.LoadFrom("Scripts/Output/Scripts.VB.dll"); - - if (!m_AdditionalReferences.Contains(assembly.Location)) - m_AdditionalReferences.Add(assembly.Location); - - Console.WriteLine("done (cached)"); - - return true; - } - } - } - } - } - catch - { - // ignored - } - } - - DeleteFiles("Scripts.VB*.dll"); - - using (CodeDomProvider provider = CodeDomProvider.CreateProvider("VisualBasic")) - { - string path = GetUnusedPath("Scripts.VB"); - - CompilerParameters parms = new CompilerParameters(GetReferenceAssemblies(), path, debug); - - string options = GetCompilerOptions(debug); - - if (options != null) - parms.CompilerOptions = options; - - if (Core.HaltOnWarning) - parms.WarningLevel = 4; - - if (Core.Unix) - { - parms.CompilerOptions = $"{parms.CompilerOptions} /nowarn:169,219,414 /recurse:Scripts/*.vb"; - files = new string[0]; - } - - CompilerResults results = provider.CompileAssemblyFromFile(parms, files); - m_AdditionalReferences.Add(path); - - Display(results); - - if (results.Errors.Count > 0) - { - if (!Core.Unix) - { - assembly = null; - return false; - } - - foreach (CompilerError err in results.Errors) - if (!err.IsWarning) - { - assembly = null; - return false; - } - } - - if (cache && Path.GetFileName(path) == "Scripts.VB.dll") - try - { - byte[] hashCode = GetHashCode(path, files, debug); - - using (FileStream fs = new FileStream("Scripts/Output/Scripts.VB.hash", FileMode.Create, - FileAccess.Write, FileShare.None)) - { - using (BinaryWriter bin = new BinaryWriter(fs)) - { - bin.Write(hashCode, 0, hashCode.Length); - } - } - } - catch - { - // ignored - } - - assembly = results.CompiledAssembly; - return true; - } - } - - public static void Display(CompilerResults results) - { - if (results.Errors.Count > 0) - { - Dictionary> errors = - new Dictionary>(results.Errors.Count, StringComparer.OrdinalIgnoreCase); - Dictionary> warnings = - new Dictionary>(results.Errors.Count, StringComparer.OrdinalIgnoreCase); - - foreach (CompilerError e in results.Errors) - { - string file = e.FileName; - - // Ridiculous. FileName is null if the warning/error is internally generated in csc. - if (string.IsNullOrEmpty(file)) - { - Console.WriteLine("ScriptCompiler: {0}: {1}", e.ErrorNumber, e.ErrorText); - continue; - } - - Dictionary> table = e.IsWarning ? warnings : errors; - - if (!table.TryGetValue(file, out List list)) - table[file] = list = new List(); - - list.Add(e); - } - - Console.WriteLine(errors.Count > 0 ? "failed ({0} errors, {1} warnings)" : "done ({0} errors, {1} warnings)", - errors.Count, warnings.Count); - - string scriptRoot = - Path.GetFullPath(Path.Combine(Core.BaseDirectory, "Scripts" + Path.DirectorySeparatorChar)); - Uri scriptRootUri = new Uri(scriptRoot); - - Utility.PushColor(ConsoleColor.Yellow); - - if (warnings.Count > 0) - Console.WriteLine("Warnings:"); - - foreach (KeyValuePair> kvp in warnings) - { - string fileName = kvp.Key; - List list = kvp.Value; - - string fullPath = Path.GetFullPath(fileName); - string usedPath = - Uri.UnescapeDataString(scriptRootUri.MakeRelativeUri(new Uri(fullPath)).OriginalString); - - Console.WriteLine(" + {0}:", usedPath); - - Utility.PushColor(ConsoleColor.DarkYellow); - - foreach (CompilerError e in list) - Console.WriteLine(" {0}: Line {1}: {2}", e.ErrorNumber, e.Line, e.ErrorText); - - Utility.PopColor(); - } - - Utility.PopColor(); - - Utility.PushColor(ConsoleColor.Red); - - if (errors.Count > 0) - Console.WriteLine("Errors:"); - - foreach (KeyValuePair> kvp in errors) - { - string fileName = kvp.Key; - List list = kvp.Value; - - string fullPath = Path.GetFullPath(fileName); - string usedPath = - Uri.UnescapeDataString(scriptRootUri.MakeRelativeUri(new Uri(fullPath)).OriginalString); - - Console.WriteLine(" + {0}:", usedPath); - - Utility.PushColor(ConsoleColor.DarkRed); - - foreach (CompilerError e in list) - Console.WriteLine(" {0}: Line {1}: {2}", e.ErrorNumber, e.Line, e.ErrorText); - - Utility.PopColor(); - } - - Utility.PopColor(); - } - else - { - Console.WriteLine("done (0 errors, 0 warnings)"); - } - } - - public static string GetUnusedPath(string name) - { - string path = Path.Combine(Core.BaseDirectory, $"Scripts/Output/{name}.dll"); - - for (int i = 2; File.Exists(path) && i <= 1000; ++i) - path = Path.Combine(Core.BaseDirectory, $"Scripts/Output/{name}.{i}.dll"); - - return path; - } - - public static void DeleteFiles(string mask) - { - try - { - string[] files = Directory.GetFiles(Path.Combine(Core.BaseDirectory, "Scripts/Output"), mask); - - foreach (string file in files) - try - { - File.Delete(file); - } - catch - { - // ignored - } - } - catch - { - // ignored - } - } - - public static bool Compile(bool debug, bool cache = true) - { - EnsureDirectory("Scripts/"); - EnsureDirectory("Scripts/Output/"); - - if (m_AdditionalReferences.Count > 0) - m_AdditionalReferences.Clear(); - - List assemblies = new List(); - - if (CompileCSScripts(out Assembly assembly, cache, debug)) - { - if (assembly != null) - assemblies.Add(assembly); - } - else - { - return false; - } - - if (Core.VBdotNet) - { - if (CompileVBScripts(out Assembly vbAssembly, cache, debug)) - { - if (vbAssembly != null) - assemblies.Add(vbAssembly); - } - else - { - return false; - } - } - else - { - Console.WriteLine("Scripts: Skipping VB.NET Scripts...done (use -vb to enable)"); - } - - if (assemblies.Count == 0) - return false; - - Assemblies = assemblies.ToArray(); - - Console.Write("Scripts: Verifying..."); - - Stopwatch watch = Stopwatch.StartNew(); - - Core.VerifySerialization(); - - watch.Stop(); - - Console.WriteLine("done ({0} items, {1} mobiles) ({2:F2} seconds)", Core.ScriptItems, Core.ScriptMobiles, - watch.Elapsed.TotalSeconds); - - return true; - } - - public static void Invoke(string method) - { - List invoke = new List(); - - for (int a = 0; a < Assemblies.Length; ++a) - { - Type[] types = Assemblies[a].GetTypes(); - - for (int i = 0; i < types.Length; ++i) - { - MethodInfo m = types[i].GetMethod(method, BindingFlags.Static | BindingFlags.Public); - - if (m != null) - invoke.Add(m); - } - } - - invoke.Sort(new CallPriorityComparer()); - - for (int i = 0; i < invoke.Count; ++i) - invoke[i].Invoke(null, null); - } - - public static TypeCache GetTypeCache(Assembly asm) - { - if (asm == null) - { - return m_NullCache ?? (m_NullCache = new TypeCache(null)); - } - if (!m_TypeCaches.TryGetValue(asm, out TypeCache c)) - m_TypeCaches[asm] = c = new TypeCache(asm); - - return c; - } - - public static Type FindTypeByFullName(string fullName) - { - return FindTypeByFullName(fullName, true); - } - - public static Type FindTypeByFullName(string fullName, bool ignoreCase) - { - Type type = null; - - for (int i = 0; type == null && i < Assemblies.Length; ++i) - type = GetTypeCache(Assemblies[i]).GetTypeByFullName(fullName, ignoreCase); - - return type ?? GetTypeCache(Core.Assembly).GetTypeByFullName(fullName, ignoreCase); - } - - public static Type FindTypeByName(string name) - { - return FindTypeByName(name, true); - } - - public static Type FindTypeByName(string name, bool ignoreCase) - { - Type type = null; - - for (int i = 0; type == null && i < Assemblies.Length; ++i) - type = GetTypeCache(Assemblies[i]).GetTypeByName(name, ignoreCase); - - return type ?? GetTypeCache(Core.Assembly).GetTypeByName(name, ignoreCase); - } - - public static void EnsureDirectory(string dir) - { - string path = Path.Combine(Core.BaseDirectory, dir); - - if (!Directory.Exists(path)) - Directory.CreateDirectory(path); - } - - public static string[] GetScripts(string filter) - { - List list = new List(); - - GetScripts(list, Path.Combine(Core.BaseDirectory, "Scripts"), filter); - - return list.ToArray(); - } - - public static void GetScripts(List list, string path, string filter) - { - foreach (string dir in Directory.GetDirectories(path)) - GetScripts(list, dir, filter); - - list.AddRange(Directory.GetFiles(path, filter)); - } - - private delegate CompilerResults Compiler(bool debug); - } - - public class TypeCache - { - public TypeCache(Assembly asm) - { - Types = asm == null ? Type.EmptyTypes : asm.GetTypes(); - - Names = new TypeTable(Types.Length); - FullNames = new TypeTable(Types.Length); - - Type typeofTypeAliasAttribute = typeof(TypeAliasAttribute); - - for (int i = 0; i < Types.Length; ++i) - { - Type type = Types[i]; - - Names.Add(type.Name, type); - FullNames.Add(type.FullName, type); - - if (type.IsDefined(typeofTypeAliasAttribute, false)) - { - object[] attrs = type.GetCustomAttributes(typeofTypeAliasAttribute, false); - - if (attrs.Length > 0 && attrs[0] is TypeAliasAttribute attr) - for (int j = 0; j < attr.Aliases.Length; ++j) - FullNames.Add(attr.Aliases[j], type); - } - } - } - - public Type[] Types{ get; } - - public TypeTable Names{ get; } - - public TypeTable FullNames{ get; } - - public Type GetTypeByName(string name, bool ignoreCase) - { - return Names.Get(name, ignoreCase); - } - - public Type GetTypeByFullName(string fullName, bool ignoreCase) - { - return FullNames.Get(fullName, ignoreCase); - } - } - - public class TypeTable - { - private Dictionary m_Sensitive, m_Insensitive; - - public TypeTable(int capacity) - { - m_Sensitive = new Dictionary(capacity); - m_Insensitive = new Dictionary(capacity, StringComparer.OrdinalIgnoreCase); - } - - public void Add(string key, Type type) - { - m_Sensitive[key] = type; - m_Insensitive[key] = type; - } - - public Type Get(string key, bool ignoreCase) - { - Type t; - - if (ignoreCase) - m_Insensitive.TryGetValue(key, out t); - else - m_Sensitive.TryGetValue(key, out t); - - return t; - } - } -} diff --git a/Server/Server.csproj b/Server/Server.csproj deleted file mode 100644 index 6fbb90173..000000000 --- a/Server/Server.csproj +++ /dev/null @@ -1,266 +0,0 @@ - - - - - Debug - x86 - {0B33CEEB-88E1-49A6-8D7D-AF6A5A357087} - Exe - false - RunUO - v4.7 - - - 512 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - - Server - - - runuo.ico - - - Server.Core - - - true - ..\ - TRACE;DEBUG;NEWTIMERS - true - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - false - false - - - ..\ - TRACE;NEWTIMERS - true - true - pdbonly - AnyCPU - prompt - MinimumRecommendedRules.ruleset - false - false - - - true - ..\ - TRACE;DEBUG;NEWTIMERS - true - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - false - - - ..\ - TRACE;NEWTIMERS - true - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - false - - - - ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - - - - - - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/Server/packages.config b/Server/packages.config deleted file mode 100644 index 8e1dc78d7..000000000 --- a/Server/packages.config +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file