├── assets ├── production │ ├── client │ │ └── .gitkeep │ └── server │ │ └── .gitkeep ├── staging │ ├── client │ │ └── .gitkeep │ └── server │ │ └── .gitkeep ├── development │ ├── client │ │ └── .gitkeep │ └── server │ │ └── .gitkeep ├── intersect-logo-qu.bmp ├── intersect-logo-qu.ico ├── intersect-logo-qu.png └── .gitignore ├── .idea └── .idea.Intersect │ └── .idea │ ├── .name │ ├── encodings.xml │ ├── vcs.xml │ ├── indexLayout.xml │ ├── misc.xml │ └── .gitignore ├── Examples ├── .idea │ └── .idea.Intersect.Examples │ │ └── .idea │ │ ├── .name │ │ ├── encodings.xml │ │ ├── vcs.xml │ │ ├── indexLayout.xml │ │ ├── misc.xml │ │ └── .gitignore ├── Intersect.Examples.Plugin.Client │ ├── Assets │ │ └── join-our-discord.png │ └── ExamplePluginConfiguration.cs ├── Intersect.Examples.Plugin.ClientVB │ ├── Assets │ │ └── join-our-discord.png │ └── ExamplePluginConfiguration.vb └── Intersect.Examples.Plugin │ └── Packets │ ├── Client │ └── ExamplePluginClientPacket.cs │ └── Server │ └── ExamplePluginServerPacket.cs ├── Intersect.Client ├── Icon.bmp ├── Resources │ ├── openal32.dll │ ├── Shaders │ │ └── radialgradient.xnb │ └── MonoGame.Framework.dll.config ├── MonoGame │ ├── NativeInterop │ │ ├── KnownLibrary.cs │ │ └── Platform.cs │ └── Audio │ │ └── MonoAudioInstance.cs ├── FodyWeavers.xml ├── Entities │ ├── FriendInstance.cs │ ├── Events │ │ ├── Hold.cs │ │ └── Dialog.cs │ └── HotbarInstance.cs ├── Interface │ └── Game │ │ └── DescriptionWindows │ │ └── Components │ │ └── DividerComponent.cs ├── Core │ └── IClientContext.cs ├── Maps │ └── MapGrid.cs └── Spells │ └── Spell.cs ├── Intersect.Editor ├── DarkUI.dll ├── Pngcs.dll ├── sqlite3.dll ├── Resources │ ├── layer.png │ ├── layer_face.png │ ├── layer_sel.png │ ├── paintbrush.png │ ├── sqlite3x64.dll │ ├── sqlite3x86.dll │ ├── layer_hidden.png │ ├── layer_face_sel.png │ ├── intersect-logo-qu.ico │ └── Shaders │ │ └── radialgradient_editor.xnb ├── Properties │ └── launchSettings.json ├── FodyWeavers.xml ├── GlobalSuppressions.cs └── Maps │ └── MapGridItem.cs ├── Intersect.Server ├── Resources │ ├── e_sqlite3x64.dll │ ├── e_sqlite3x86.dll │ ├── libe_sqlite3.dylib │ ├── libe_sqlite3_x64.so │ └── libe_sqlite3_x86.so ├── FodyWeavers.xml ├── Database │ ├── PlayerData │ │ └── Players │ │ │ ├── ISlot.cs │ │ │ └── IPlayerOwned.cs │ ├── ISeedableContext.cs │ ├── ContextProvider.Locking.cs │ ├── IDbContext.cs │ └── Logging │ │ └── ILoggingContext.cs ├── Web │ ├── RestApi │ │ ├── Payloads │ │ │ ├── SortDirection.cs │ │ │ ├── VariableValue.cs │ │ │ ├── GuildRank.cs │ │ │ ├── PasswordValidation.cs │ │ │ ├── LevelChange.cs │ │ │ ├── NameChange.cs │ │ │ ├── SpellInfo.cs │ │ │ ├── ClassChange.cs │ │ │ ├── PagingInfo.cs │ │ │ ├── UserInfo.cs │ │ │ ├── ItemInfo.cs │ │ │ ├── AdminChange.cs │ │ │ ├── IpAddress.cs │ │ │ └── AuthorizedChange.cs │ │ ├── IAppConfigurationProvider.cs │ │ ├── Configuration │ │ │ └── NetworkTypes.cs │ │ ├── Logging │ │ │ └── IntersectLoggerFactory.cs │ │ ├── Extensions │ │ │ └── HttpRequestMessageExtensions.cs │ │ ├── Authentication │ │ │ └── AuthenticationProvider.cs │ │ └── Types │ │ │ └── DataPage.cs │ └── Utilities │ │ └── HeaderHelper.cs ├── Core │ ├── Services │ │ ├── IConsoleService.cs │ │ └── ILogicService.cs │ ├── CommandParsing │ │ ├── Arguments │ │ │ └── HelpArgument.cs │ │ └── ParserContext.cs │ └── Commands │ │ ├── ExitCommand.cs │ │ ├── ServerCommand.cs │ │ ├── NetDebugCommand.cs │ │ ├── MakePublicCommand.cs │ │ └── MakePrivateCommand.cs ├── Maps │ ├── MapNpcSpawn.cs │ ├── MapResourceSpawn.cs │ └── MapItemSpawn.cs ├── Entities │ ├── Label.cs │ └── Pathfinding │ │ └── PathfinderTarget.cs ├── Migrations │ ├── 20191030214333_PlayerUpgrades_Labels.cs │ ├── 20220331140427_GuildBankMaxSlotsMigration.cs │ ├── Game │ │ ├── 20211031200145_FixQuestTaskCompletionEvents.cs │ │ ├── 20201004032158_EnablingCerasVersionTolerance.cs │ │ ├── 20210815153451_TickAnimationMigration.cs │ │ ├── 20190306224847_BoundSpells.cs │ │ ├── 20190303234637_SpellUpgrades_OnHit_Shields.cs │ │ ├── 20190530000628_AddingCraftingQuantities.cs │ │ ├── 20190615010038_AddingExpOveridesToClasses.cs │ │ └── 20190726203949_SpellUpgrades_Percentage_Buffs.cs │ ├── 20200301145105_SavingPlayerLabelsInDb.cs │ └── 20190804133420_Custom_Player_Name_Colors.cs ├── Plugins │ └── Helpers │ │ └── ServerLifecycleHelper.cs └── Metrics │ └── Controllers │ └── ApplicationMetricsController.cs ├── Intersect (Core) ├── IO │ ├── ISaveable.cs │ ├── ILoadable.cs │ ├── ISaveable.Generic.cs │ └── ISaveableProvider.cs ├── Enums │ ├── TargetType.cs │ ├── Gender.cs │ ├── MapZone.cs │ ├── Vital.cs │ ├── StringVariableComparator.cs │ ├── Access.cs │ ├── DamageType.cs │ ├── EventGraphicType.cs │ ├── GrappleOption.cs │ ├── EventMovementType.cs │ ├── QuestObjective.cs │ ├── ConsumableType.cs │ ├── EventRenderLayer.cs │ ├── MapListUpdate.cs │ ├── GuildMemberUpdateAction.cs │ ├── VariableDataType.cs │ ├── NpcMovement.cs │ ├── SpellType.cs │ ├── EventTrigger.cs │ ├── NpcAggression.cs │ ├── WarpDirection.cs │ ├── ChatboxChannel.cs │ ├── EntityType.cs │ ├── NpcSpawnDirection.cs │ ├── Stat.cs │ ├── EventMovementSpeed.cs │ ├── EventMovementFrequency.cs │ ├── SpellTargetType.cs │ ├── TypewriterBehavior.cs │ ├── VariableComparator.cs │ ├── ItemType.cs │ ├── ItemEffect.cs │ ├── Direction.cs │ ├── MapAttribute.cs │ ├── VariableType.cs │ ├── AdminAction.cs │ ├── ChatboxTab.cs │ ├── SpellEffect.cs │ └── SpellCastFailureReason.cs ├── Localization │ ├── BooleanStyle.cs │ ├── Localized.cs │ └── LocaleNamespace.cs ├── Models │ ├── IObject.cs │ ├── INamedObject.cs │ └── IFolderable.cs ├── GameObjects │ ├── Annotations │ │ ├── EditorFieldType.cs │ │ ├── EditorTimeAttribute.cs │ │ └── EditorEnumAttribute.cs │ ├── IGameObject.cs │ ├── Maps │ │ ├── MapList │ │ │ ├── MapListItem.cs │ │ │ └── MapListFolder.cs │ │ ├── MapResourceSpawn.cs │ │ ├── MapTile.cs │ │ └── MapNpcSpawn.cs │ ├── Drop.cs │ ├── Events │ │ └── EventMovement.cs │ └── TilesetBase.cs ├── Network │ ├── Packets │ │ ├── Server │ │ │ ├── SpellPacket.cs │ │ │ ├── StopMusicPacket.cs │ │ │ ├── AdminPanelPacket.cs │ │ │ ├── HidePicturePacket.cs │ │ │ ├── JoinGamePacket.cs │ │ │ ├── StopSoundsPacket.cs │ │ │ ├── EnteringGamePacket.cs │ │ │ ├── CharacterCreationPacket.cs │ │ │ ├── NpcEntityPacket.cs │ │ │ ├── ConfigPacket.cs │ │ │ ├── PlayMusicPacket.cs │ │ │ ├── MapAreaPacket.cs │ │ │ ├── MoveRoutePacket.cs │ │ │ ├── PlaySoundPacket.cs │ │ │ ├── StatPointsPacket.cs │ │ │ ├── HotbarPacket.cs │ │ │ ├── ResourceEntityPacket.cs │ │ │ ├── EnterMapPacket.cs │ │ │ ├── TimeDataPacket.cs │ │ │ ├── TradePacket.cs │ │ │ ├── MapListPacket.cs │ │ │ ├── SpellsPacket.cs │ │ │ ├── PingPacket.cs │ │ │ ├── QuestOfferPacket.cs │ │ │ ├── CancelCastPacket.cs │ │ │ ├── PartyPacket.cs │ │ │ ├── InventoryPacket.cs │ │ │ ├── PlayerDeathPacket.cs │ │ │ ├── OpenEditorPacket.cs │ │ │ ├── TargetOverridePacket.cs │ │ │ ├── MapEntitiesPacket.cs │ │ │ ├── PasswordResetResultPacket.cs │ │ │ ├── ActionMsgPackets.cs │ │ │ ├── LabelPacket.cs │ │ │ ├── PlayAnimationPackets.cs │ │ │ ├── BagPacket.cs │ │ │ ├── BagUpdatePacket.cs │ │ │ ├── BankUpdatePacket.cs │ │ │ ├── ItemCooldownPacket.cs │ │ │ ├── ShopPacket.cs │ │ │ ├── SpellCooldownPacket.cs │ │ │ ├── ErrorMessagePacket.cs │ │ │ ├── SpellUpdatePacket.cs │ │ │ ├── CraftingTablePacket.cs │ │ │ ├── ExperiencePacket.cs │ │ │ └── SpellCastPacket.cs │ │ ├── Client │ │ │ ├── CloseBankPacket.cs │ │ │ ├── CloseShopPacket.cs │ │ │ ├── EnterGamePacket.cs │ │ │ ├── AcceptTradePacket.cs │ │ │ ├── CloseBagPacket.cs │ │ │ ├── PartyLeavePacket.cs │ │ │ ├── CloseCraftingPacket.cs │ │ │ ├── DeclineTradePacket.cs │ │ │ ├── NewCharacterPacket.cs │ │ │ ├── RequestFriendsPacket.cs │ │ │ ├── OpenAdminWindowPacket.cs │ │ │ ├── PingPacket.cs │ │ │ ├── GuildLeavePacket.cs │ │ │ ├── RequestGuildPacket.cs │ │ │ ├── GuildInviteAcceptPacket.cs │ │ │ ├── GuildInviteDeclinePacket.cs │ │ │ ├── HotbarSwapPacket.cs │ │ │ ├── SwapSpellsPacket.cs │ │ │ ├── SwapBagItemsPacket.cs │ │ │ ├── SwapInvItemsPacket.cs │ │ │ ├── SwapBankItemsPacket.cs │ │ │ ├── BuyItemPacket.cs │ │ │ ├── DropItemPacket.cs │ │ │ ├── SellItemPacket.cs │ │ │ ├── OfferTradeItemPacket.cs │ │ │ ├── RevokeTradeItemPacket.cs │ │ │ ├── BlockPacket.cs │ │ │ ├── UnequipItemPacket.cs │ │ │ ├── UpgradeStatPacket.cs │ │ │ ├── NeedMapPacket.cs │ │ │ ├── AttackPacket.cs │ │ │ ├── PartyKickPacket.cs │ │ │ ├── AbandonQuestPacket.cs │ │ │ ├── LogoutPacket.cs │ │ │ ├── PictureClosedPacket.cs │ │ │ ├── TradeRequestPacket.cs │ │ │ ├── ActivateEventPacket.cs │ │ │ ├── DeleteCharacterPacket.cs │ │ │ ├── SelectCharacterPacket.cs │ │ │ ├── AdminActionPacket.cs │ │ │ ├── RequestPasswordResetPacket.cs │ │ │ ├── DepositItemPacket.cs │ │ │ ├── WithdrawItemPacket.cs │ │ │ ├── StoreBagItemPacket.cs │ │ │ ├── RetrieveBagItemPacket.cs │ │ │ ├── ChatMsgPacket.cs │ │ │ ├── BumpPacket.cs │ │ │ ├── LoginPacket.cs │ │ │ ├── UseItemPacket.cs │ │ │ ├── UpdateFriendsPacket.cs │ │ │ ├── UseSpellPacket.cs │ │ │ └── CraftItemPacket.cs │ │ └── Editor │ │ │ ├── PingPacket.cs │ │ │ ├── NeedMapPacket.cs │ │ │ ├── EnterMapPacket.cs │ │ │ ├── AddTilesetsPacket.cs │ │ │ ├── RequestGridPacket.cs │ │ │ ├── SaveTimeDataPacket.cs │ │ │ ├── CreateGameObjectPacket.cs │ │ │ └── RequestOpenEditorPacket.cs │ ├── IPacketSender.cs │ ├── PortHelper.cs │ ├── Events │ │ └── ConnectionEventArgs.cs │ ├── IClient.cs │ ├── IPacketHandler.cs │ ├── NetworkStatus.cs │ ├── IPacket.cs │ ├── PacketLifecycle.cs │ ├── DnsUtils.cs │ ├── IConnection.cs │ ├── ConnectionStatistics.cs │ └── Delegates.cs ├── Updater │ ├── UpdateStatus.cs │ └── UpdateFile.cs ├── Core │ ├── ExperimentalFeatures │ │ ├── ExperimentNamespace.cs │ │ ├── IFlagProvider.cs │ │ ├── ExperimentalFlagAliasAttribute.cs │ │ ├── CommonExperiments.Flags.cs │ │ └── IExperimentalFlag.cs │ ├── IThreadableApplicationService.cs │ ├── IApplicationContext`1.cs │ └── ICommandLineOptions.cs ├── GlobalSuppressions.cs ├── Plugins │ ├── Interfaces │ │ ├── ILifecycleHelper.cs │ │ └── ICommandLineHelper.cs │ ├── PluginConfiguration.cs │ ├── IPluginContext`1.cs │ ├── IPluginContext.cs │ └── IPluginBootstrapContext.cs ├── Collections │ ├── IGameObjectLookup.cs │ └── SanitizedValue.cs ├── BytePoint.cs ├── SharedConstants.cs ├── Config │ ├── MetricsOptions.cs │ ├── BankOptions.cs │ └── SmtpSettings.cs ├── Extensions │ ├── KeyValuePairExtensions.cs │ └── GameObjectInfoAttribute.cs ├── Logging │ ├── LogLevel.cs │ └── Formatting │ │ └── ILogFormatter.cs ├── Utilities │ ├── Nullability.cs │ └── VersionHelper.cs ├── Configuration │ └── IConfigurable.cs ├── SuppressionJustifications.cs ├── Security │ ├── ApiVisibilityAttribute.cs │ └── ApiVisibility.cs ├── Admin │ └── Actions │ │ ├── KickAction.cs │ │ ├── KillAction.cs │ │ ├── UnbanAction.cs │ │ ├── UnmuteAction.cs │ │ ├── WarpMeToAction.cs │ │ ├── WarpToMeAction.cs │ │ └── WarpToMapAction.cs └── Factories │ └── IFactory.cs ├── Intersect.Network ├── IServer.cs └── NetworkMetaStatus.cs ├── Documentation └── Intersect Documentation.url ├── Intersect.Client.Framework ├── Content │ ├── IAsset.cs │ └── TextureType.cs ├── Entities │ ├── IDash.cs │ ├── IFriendInstance.cs │ ├── SpriteAnimations.cs │ ├── LabelType.cs │ ├── IResource.cs │ ├── IHotbarInstance.cs │ ├── IPartyMember.cs │ ├── Label.cs │ ├── IStatus.cs │ └── IAnimation.cs ├── Gwen │ ├── Control │ │ ├── IColorPicker.cs │ │ ├── IColorableText.cs │ │ ├── EventArguments │ │ │ ├── ItemSelectedEventArgs.cs │ │ │ └── ClickedEventArgs.cs │ │ ├── ILabel.cs │ │ └── Data │ │ │ ├── ITableDataProvider.cs │ │ │ └── ITableRowDataProvider.cs │ ├── HSV.cs │ ├── DragDrop │ │ └── Package.cs │ └── Pos.cs ├── Core │ └── Sounds │ │ ├── IMapSound.cs │ │ └── ISound.cs ├── Plugins │ └── ClientPluginEntry.cs ├── Maps │ ├── IMapAnimation.cs │ ├── IWeatherParticle.cs │ ├── IActionMessage.cs │ └── IMapGrid.cs ├── Graphics │ ├── BoundsComparison.cs │ ├── GameBlendModes.cs │ └── DrawStates.cs ├── Input │ ├── MouseButtons.cs │ ├── KeyboardType.cs │ └── IGameInput.cs ├── General │ └── GameStates.cs ├── Sys │ └── GameSystem.cs ├── Items │ ├── IMapItemInstance.cs │ └── IItem.cs └── Audio │ └── GameAudioSource.cs ├── NuGet.Config ├── Intersect.Server.Framework └── Plugins │ ├── ServerPluginEntry.cs │ ├── Helpers │ └── IServerLifecycleHelper.cs │ └── IServerPluginContext.cs ├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── Intersect.Tests.Client └── Stub.cs ├── .gitattributes ├── Intersect.Tests.Editor └── Stub.cs ├── Intersect.Tests.Network └── Stub.cs ├── Intersect.Tests.Server └── Stub.cs ├── Intersect.Tests.Client.Framework └── Stub.cs ├── Intersect.Tests └── Plugins │ ├── manifest.lowercase.json │ └── manifest.well-formed.json └── AUTHORS.md /assets/production/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/production/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/staging/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/staging/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/development/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/development/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/.name: -------------------------------------------------------------------------------- 1 | Intersect -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/.name: -------------------------------------------------------------------------------- 1 | Intersect.Examples -------------------------------------------------------------------------------- /Intersect.Client/Icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Client/Icon.bmp -------------------------------------------------------------------------------- /Intersect.Editor/DarkUI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/DarkUI.dll -------------------------------------------------------------------------------- /Intersect.Editor/Pngcs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Pngcs.dll -------------------------------------------------------------------------------- /Intersect.Editor/sqlite3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/sqlite3.dll -------------------------------------------------------------------------------- /assets/intersect-logo-qu.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/assets/intersect-logo-qu.bmp -------------------------------------------------------------------------------- /assets/intersect-logo-qu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/assets/intersect-logo-qu.ico -------------------------------------------------------------------------------- /assets/intersect-logo-qu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/assets/intersect-logo-qu.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/layer.png -------------------------------------------------------------------------------- /Intersect.Client/Resources/openal32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Client/Resources/openal32.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/layer_face.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/layer_sel.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/paintbrush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/paintbrush.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/sqlite3x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/sqlite3x64.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/sqlite3x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/sqlite3x86.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/layer_hidden.png -------------------------------------------------------------------------------- /Intersect.Server/Resources/e_sqlite3x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Server/Resources/e_sqlite3x64.dll -------------------------------------------------------------------------------- /Intersect.Server/Resources/e_sqlite3x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Server/Resources/e_sqlite3x86.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_face_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/layer_face_sel.png -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Server/Resources/libe_sqlite3.dylib -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3_x64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Server/Resources/libe_sqlite3_x64.so -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3_x86.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Server/Resources/libe_sqlite3_x86.so -------------------------------------------------------------------------------- /Intersect.Editor/Resources/intersect-logo-qu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/intersect-logo-qu.ico -------------------------------------------------------------------------------- /Intersect.Client/Resources/Shaders/radialgradient.xnb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Client/Resources/Shaders/radialgradient.xnb -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO 2 | { 3 | 4 | public interface ISaveable 5 | { 6 | 7 | bool Save(); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Editor/Resources/Shaders/radialgradient_editor.xnb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Intersect.Editor/Resources/Shaders/radialgradient_editor.xnb -------------------------------------------------------------------------------- /Intersect.Network/IServer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | 4 | public interface IServer 5 | { 6 | 7 | bool Listen(); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Documentation/Intersect Documentation.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://docs.freemmorpgmaker.com/ 6 | HotKey=0 7 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/TargetType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum TargetType 4 | { 5 | Hover = 0, 6 | 7 | Selected = 1 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect (Core)/Localization/BooleanStyle.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Localization 2 | { 3 | public enum BooleanStyle 4 | { 5 | TrueFalse, 6 | YesNo, 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Content/IAsset.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Content 2 | { 3 | public interface IAsset 4 | { 5 | string Name { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.Client/Assets/join-our-discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Examples/Intersect.Examples.Plugin.Client/Assets/join-our-discord.png -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.ClientVB/Assets/join-our-discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vmfunc/Intersect-Engine/main/Examples/Intersect.Examples.Plugin.ClientVB/Assets/join-our-discord.png -------------------------------------------------------------------------------- /Intersect (Core)/Enums/Gender.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum Gender 5 | { 6 | 7 | Male = 0, 8 | 9 | Female 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/MapZone.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum MapZone 4 | { 5 | Normal = 0, 6 | 7 | Safe, 8 | 9 | Arena 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/Vital.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum Vital 4 | { 5 | Health = 0, 6 | 7 | Mana, 8 | 9 | VitalCount 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client/MonoGame/NativeInterop/KnownLibrary.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop 2 | { 3 | public enum KnownLibrary 4 | { 5 | OpenAL, 6 | SDL2 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/StringVariableComparator.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum StringVariableComparator 4 | { 5 | Equal = 0, 6 | 7 | Contains 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect (Core)/Models/IObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Models 4 | { 5 | 6 | public interface IObject 7 | { 8 | 9 | Guid Id { get; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Intersect (Core)/IO/ILoadable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO 2 | { 3 | 4 | public interface ILoadable 5 | { 6 | 7 | bool Load(TFrom from = default(TFrom)); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Models/INamedObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Models 2 | { 3 | 4 | public interface INamedObject : IObject 5 | { 6 | 7 | string Name { get; set; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IDash.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities 2 | { 3 | public interface IDash 4 | { 5 | float OffsetX { get; } 6 | float OffsetY { get; } 7 | } 8 | } -------------------------------------------------------------------------------- /Intersect.Editor/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Intersect.Editor": { 4 | "commandName": "Project", 5 | "workingDirectory": "..\\assets\\development\\client" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /Intersect.Editor/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/Access.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum Access 5 | { 6 | 7 | None = 0, 8 | 9 | Moderator, 10 | 11 | Admin 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Annotations/EditorFieldType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects.Annotations 2 | { 3 | public enum EditorFieldType 4 | { 5 | Default, 6 | 7 | Pivot, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveable.Generic.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO 2 | { 3 | 4 | public interface ISaveable : ISaveable 5 | { 6 | 7 | bool Save(TTo to = default(TTo)); 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Localization/Localized.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Localization 4 | { 5 | 6 | [Serializable] 7 | public abstract partial class Localized 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/DamageType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum DamageType 5 | { 6 | 7 | Physical = 0, 8 | 9 | Magic, 10 | 11 | True 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Server/Database/PlayerData/Players/ISlot.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.PlayerData.Players 2 | { 3 | 4 | public interface ISlot 5 | { 6 | 7 | int Slot { get; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventGraphicType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventGraphicType 5 | { 6 | 7 | None = 0, 8 | 9 | Sprite, 10 | 11 | Tileset 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/GrappleOption.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum GrappleOption 4 | { 5 | MapAttribute = 0, 6 | 7 | Player, 8 | 9 | NPC, 10 | 11 | Resource 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IColorPicker.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control 2 | { 3 | 4 | public interface IColorPicker 5 | { 6 | 7 | Color SelectedColor { get; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventMovementType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventMovementType 5 | { 6 | 7 | None = 0, 8 | 9 | Random, 10 | 11 | MoveRoute, 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/QuestObjective.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum QuestObjective 5 | { 6 | 7 | EventDriven = 0, 8 | 9 | GatherItems, 10 | 11 | KillNpcs 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Localization/LocaleNamespace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Localization 4 | { 5 | 6 | [Serializable] 7 | public abstract partial class LocaleNamespace : Localized 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Core/Sounds/IMapSound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Core.Sounds 4 | { 5 | public interface IMapSound : ISound 6 | { 7 | void UpdatePosition(int x, int y, Guid mapId); 8 | } 9 | } -------------------------------------------------------------------------------- /Intersect.Client/MonoGame/NativeInterop/Platform.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop 2 | { 3 | public enum Platform 4 | { 5 | Unknown, 6 | Linux, 7 | MacOS, 8 | Windows 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/SortDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.RestApi.Payloads 2 | { 3 | 4 | public enum SortDirection 5 | { 6 | 7 | Ascending, 8 | 9 | Descending 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/ConsumableType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum ConsumableType : byte 5 | { 6 | 7 | Health = 0, 8 | 9 | Mana = 1, 10 | 11 | Experience = 2 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/VariableValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.RestApi.Payloads 2 | { 3 | 4 | public partial struct VariableValue 5 | { 6 | 7 | public dynamic Value { get; set; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventRenderLayer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventRenderLayer 5 | { 6 | 7 | BelowPlayer = 0, 8 | 9 | SameAsPlayer, 10 | 11 | AbovePlayer 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/MapListUpdate.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum MapListUpdate 4 | { 5 | MoveItem = 0, 6 | 7 | AddFolder = 1, 8 | 9 | Rename = 2, 10 | 11 | Delete = 3 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/IGameObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects 2 | { 3 | 4 | public interface IGameObject where TValue : IGameObject 5 | { 6 | 7 | TKey Id { get; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/ClientPluginEntry.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | 3 | namespace Intersect.Client.Plugins 4 | { 5 | public abstract partial class ClientPluginEntry : PluginEntry 6 | { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/ServerPluginEntry.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | 3 | namespace Intersect.Server.Plugins 4 | { 5 | public abstract partial class ServerPluginEntry : PluginEntry 6 | { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/GuildMemberUpdateAction.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum GuildMemberUpdateAction 4 | { 5 | Invite = 0, 6 | Remove, 7 | Promote, 8 | Demote, 9 | Transfer 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/SpellPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class SpellPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/GuildRank.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct GuildRank 7 | { 8 | 9 | public int Rank { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/PasswordValidation.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.RestApi.Payloads 2 | { 3 | 4 | public partial struct PasswordValidation 5 | { 6 | 7 | public string Password { get; set; } 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/VariableDataType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum VariableDataType : byte 4 | { 5 | 6 | Boolean = 1, 7 | 8 | Integer, 9 | 10 | String, 11 | 12 | Number 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveableProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO 2 | { 3 | 4 | public interface ISaveableProvider 5 | { 6 | 7 | ISaveable DefaultSaveable { get; } 8 | 9 | ISaveable AsSaveable(); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/CloseBankPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class CloseBankPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/CloseShopPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class CloseShopPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/EnterGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class EnterGamePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/PingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Editor 4 | { 5 | 6 | [MessagePackObject] 7 | public partial class PingPacket : IntersectPacket 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/StopMusicPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class StopMusicPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Updater/UpdateStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Updater 2 | { 3 | public enum UpdateStatus 4 | { 5 | Checking = 0, 6 | Updating = 1, 7 | Restart, 8 | Done, 9 | Error, 10 | None 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/LevelChange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct LevelChange 7 | { 8 | 9 | public int Level { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/NameChange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct NameChange 7 | { 8 | 9 | public string Name { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/SpellInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct SpellInfo 7 | { 8 | 9 | public Guid SpellId { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ExperimentalFeatures/ExperimentNamespace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Core.ExperimentalFeatures 4 | { 5 | 6 | [Serializable] 7 | public abstract partial class ExperimentNamespace 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/NpcMovement.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum NpcMovement 5 | { 6 | 7 | MoveRandomly = 0, 8 | 9 | TurnRandomly, 10 | 11 | StandStill, 12 | 13 | Static 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/SpellType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum SpellType 4 | { 5 | CombatSpell = 0, 6 | 7 | Warp = 1, 8 | 9 | WarpTo = 2, 10 | 11 | Dash = 3, 12 | 13 | Event = 4 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/AcceptTradePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class AcceptTradePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/CloseBagPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | 6 | [MessagePackObject] 7 | public partial class CloseBagPacket : IntersectPacket 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/PartyLeavePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class PartyLeavePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/AdminPanelPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class AdminPanelPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/HidePicturePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class HidePicturePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/JoinGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class JoinGamePacket : AbstractTimedPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/StopSoundsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class StopSoundsPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/HSV.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen 2 | { 3 | 4 | public partial struct Hsv 5 | { 6 | 7 | public float H; 8 | 9 | public float s; 10 | 11 | public float V; 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IMapAnimation.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Entities; 2 | using System; 3 | 4 | namespace Intersect.Client.Framework.Maps 5 | { 6 | public interface IMapAnimation : IAnimation 7 | { 8 | Guid Id { get; } 9 | } 10 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/ClassChange.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct ClassChange 7 | { 8 | 9 | public Guid ClassId { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventTrigger 5 | { 6 | 7 | ActionButton = 0, 8 | 9 | PlayerCollide, 10 | 11 | Autorun, 12 | 13 | PlayerBump, 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/NpcAggression.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum NpcAggression 4 | { 5 | Aggressive, 6 | 7 | AttackWhenAttacked, 8 | 9 | AttackOnSight, 10 | 11 | Neutral, 12 | 13 | Guard, 14 | } 15 | } -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/CloseCraftingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class CloseCraftingPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/DeclineTradePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class DeclineTradePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/NewCharacterPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class NewCharacterPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/RequestFriendsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class RequestFriendsPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/EnteringGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class EnteringGamePacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IFriendInstance.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities 2 | { 3 | public interface IFriendInstance 4 | { 5 | string Map { get; set; } 6 | string Name { get; set; } 7 | bool Online { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/BoundsComparison.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics 2 | { 3 | public enum BoundsComparison 4 | { 5 | Width, 6 | 7 | Height, 8 | 9 | Dimensions, 10 | 11 | Area, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/MouseButtons.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Input 2 | { 3 | public enum MouseButtons 4 | { 5 | 6 | None = -1, 7 | 8 | Left = 0, 9 | 10 | Right, 11 | 12 | Middle 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/WarpDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum WarpDirection 5 | { 6 | 7 | Retain = 0, 8 | 9 | Up, 10 | 11 | Down, 12 | 13 | Left, 14 | 15 | Right 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/IPacketSender.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Network 4 | { 5 | public interface IPacketSender 6 | { 7 | IApplicationContext ApplicationContext { get; } 8 | 9 | bool Send(IPacket packet); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/OpenAdminWindowPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class OpenAdminWindowPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IColorableText.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control 2 | { 3 | public interface IColorableText 4 | { 5 | Color TextColor { get; set; } 6 | 7 | Color TextColorOverride { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/IAppConfigurationProvider.cs: -------------------------------------------------------------------------------- 1 | using Owin; 2 | 3 | namespace Intersect.Server.Web.RestApi 4 | { 5 | 6 | internal interface IAppConfigurationProvider 7 | { 8 | 9 | void Configure(IAppBuilder appBuilder); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/ChatboxChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum ChatboxChannel 5 | { 6 | 7 | Player = 0, 8 | 9 | Local, 10 | 11 | Global, 12 | 13 | Party, 14 | 15 | Guild 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EntityType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum EntityType 4 | { 5 | GlobalEntity = 0, 6 | 7 | Player = 1, 8 | 9 | Resource = 2, 10 | 11 | Projectile = 3, 12 | 13 | Event = 4 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/NpcSpawnDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum NpcSpawnDirection 5 | { 6 | 7 | Random = 0, 8 | 9 | Up, 10 | 11 | Down, 12 | 13 | Left, 14 | 15 | Right 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/Stat.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum Stat 4 | { 5 | Attack = 0, 6 | 7 | AbilityPower, 8 | 9 | Defense, 10 | 11 | MagicResist, 12 | 13 | Speed, 14 | 15 | StatCount 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/CharacterCreationPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class CharacterCreationPacket : IntersectPacket 7 | { 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | // This file is used by Code Analysis to maintain SuppressMessage 2 | // attributes that are applied to this project. 3 | // Project-level suppressions either have no target or are given 4 | // a specific target and scoped to a namespace, type, member, etc. 5 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/Interfaces/ILifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Plugins.Interfaces 2 | { 3 | /// 4 | /// Defines the API for accessing lifecycle information and events. 5 | /// 6 | public interface ILifecycleHelper 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Core/Sounds/ISound.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Core.Sounds 2 | { 3 | public interface ISound 4 | { 5 | bool Loaded { get; set; } 6 | bool Loop { get; set; } 7 | 8 | void Stop(); 9 | bool Update(); 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Server/Database/ISeedableContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace Intersect.Server.Database 4 | { 5 | 6 | public interface ISeedableContext 7 | { 8 | 9 | DbSet GetDbSet() where TType : class; 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/PagingInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.RestApi.Payloads 2 | { 3 | 4 | public partial struct PagingInfo 5 | { 6 | 7 | public int Page { get; set; } 8 | 9 | public int Count { get; set; } 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /assets/.gitignore: -------------------------------------------------------------------------------- 1 | # Make sure we keep the default folders to prevent IDE errors when they do not exist 2 | !/development 3 | !/development/*/ 4 | !/development/*/.gitkeep 5 | !/production/ 6 | !/production/*/ 7 | !/production/*/.gitkeep 8 | !/staging/ 9 | !/staging/*/ 10 | !/staging/*/.gitkeep -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Intersect (Core)/Collections/IGameObjectLookup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Models; 4 | 5 | namespace Intersect.Collections 6 | { 7 | 8 | public interface IGameObjectLookup : ILookup where TValue : INamedObject 9 | { 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/SpriteAnimations.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities 2 | { 3 | public enum SpriteAnimations 4 | { 5 | Normal = 0, 6 | Idle, 7 | Attack, 8 | Shoot, 9 | Cast, 10 | Weapon, 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/KeyboardType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Input 2 | { 3 | public enum KeyboardType 4 | { 5 | 6 | Normal, 7 | 8 | Password, 9 | 10 | Email, 11 | 12 | Numberic, 13 | 14 | Pin 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IWeatherParticle.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Maps 2 | { 3 | public interface IWeatherParticle 4 | { 5 | float X { get; set; } 6 | float Y { get; set; } 7 | 8 | void Dispose(); 9 | void Update(); 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Server/Core/Services/IConsoleService.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Server.Core.Services 4 | { 5 | internal interface IConsoleService : IThreadableApplicationService 6 | { 7 | 8 | void Wait(bool doNotContinue = false); 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Server/Maps/MapNpcSpawn.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | 3 | namespace Intersect.Server.Maps 4 | { 5 | public partial class MapNpcSpawn 6 | { 7 | public Npc Entity { get; set; } 8 | 9 | public long RespawnTime { get; set; } = -1; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventMovementSpeed.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventMovementSpeed 5 | { 6 | 7 | Slowest = 0, 8 | 9 | Slower, 10 | 11 | Normal, 12 | 13 | Faster, 14 | 15 | Fastest 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/LabelType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities 2 | { 3 | public enum LabelType 4 | { 5 | 6 | Header = 0, 7 | 8 | Footer, 9 | 10 | Name, 11 | 12 | ChatBubble, 13 | 14 | Guild 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/General/GameStates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.General 2 | { 3 | 4 | public enum GameStates 5 | { 6 | 7 | Intro = 0, 8 | 9 | Menu, 10 | 11 | Loading, 12 | 13 | InGame, 14 | 15 | Error 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Configuration/NetworkTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Configuration 4 | { 5 | [Flags] 6 | public enum NetworkTypes 7 | { 8 | Loopback = 1, 9 | Subnet = 2, 10 | PrivateNetwork = 4 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventMovementFrequency.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | 4 | public enum EventMovementFrequency 5 | { 6 | 7 | Lowest = 0, 8 | 9 | Lower, 10 | 11 | Normal, 12 | 13 | Higher, 14 | 15 | Highest 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Maps/MapList/MapListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects.Maps.MapList 2 | { 3 | 4 | public partial class MapListItem 5 | { 6 | 7 | public string Name = ""; 8 | 9 | public int Type = -1; //0 for directory, 1 for map 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Sys/GameSystem.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Sys 2 | { 3 | 4 | public abstract partial class GameSystem 5 | { 6 | 7 | public abstract void Log(string msg); 8 | 9 | public abstract void LogError(string error); 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/SpellTargetType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum SpellTargetType 4 | { 5 | Self = 0, 6 | 7 | Single = 1, 8 | 9 | AoE = 2, 10 | 11 | Projectile = 3, 12 | 13 | OnHit = 4, 14 | 15 | Trap = 5 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Drop.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.GameObjects 4 | { 5 | public partial class Drop 6 | { 7 | public double Chance { get; set; } 8 | 9 | public Guid ItemId { get; set; } 10 | 11 | public int Quantity { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IResource.cs: -------------------------------------------------------------------------------- 1 | using Intersect.GameObjects; 2 | 3 | namespace Intersect.Client.Framework.Entities 4 | { 5 | public interface IResource : IEntity 6 | { 7 | ResourceBase BaseResource { get; } 8 | 9 | bool IsDepleted { get; } 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /Intersect (Core)/Network/PortHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | 4 | public static partial class PortHelper 5 | { 6 | 7 | public static bool IsValidPort(ulong port) 8 | { 9 | return 0 < port && port <= ushort.MaxValue; 10 | } 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/TypewriterBehavior.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Intersect.Enums 8 | { 9 | public enum TypewriterBehavior 10 | { 11 | Off, 12 | Word, 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/VariableComparator.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum VariableComparator 4 | { 5 | 6 | Equal = 0, 7 | 8 | GreaterOrEqual, 9 | 10 | LesserOrEqual, 11 | 12 | Greater, 13 | 14 | Less, 15 | 16 | NotEqual 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/PingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class PingPacket : AbstractTimedPacket 7 | { 8 | [Key(3)] 9 | public bool Responding { get; set; } 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Events/ConnectionEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Network.Events 4 | { 5 | public partial class ConnectionEventArgs : EventArgs 6 | { 7 | public NetworkStatus NetworkStatus { get; set; } 8 | 9 | public IConnection Connection { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IHotbarInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Entities 4 | { 5 | public interface IHotbarInstance 6 | { 7 | Guid BagId { get; set; } 8 | Guid ItemOrSpellId { get; set; } 9 | int[] PreferredStatBuffs { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect (Core)/BytePoint.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect 2 | { 3 | 4 | public partial struct BytePoint 5 | { 6 | 7 | public byte X; 8 | 9 | public byte Y; 10 | 11 | public BytePoint(byte x, byte y) 12 | { 13 | X = x; 14 | Y = y; 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/ItemType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum ItemType 4 | { 5 | None = 0, 6 | 7 | Equipment = 1, 8 | 9 | Consumable = 2, 10 | 11 | Currency = 3, 12 | 13 | Spell = 4, 14 | 15 | Event = 5, 16 | 17 | Bag = 6 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Items/IMapItemInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Items 4 | { 5 | public interface IMapItemInstance : IItem 6 | { 7 | int TileIndex { get; } 8 | Guid Id { get; set; } 9 | int X { get; set; } 10 | int Y { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /Intersect (Core)/Models/IFolderable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Models 2 | { 3 | 4 | public interface IFolderable 5 | { 6 | 7 | /// 8 | /// Used to group editor items together into folders with the same name 9 | /// 10 | string Folder { get; set; } 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/GameBlendModes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics 2 | { 3 | 4 | public enum GameBlendModes 5 | { 6 | 7 | Add = 0, 8 | 9 | Alpha, 10 | 11 | Multiply, 12 | 13 | None, 14 | 15 | Opaque, 16 | 17 | Cutout 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/IGameInput.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.GenericClasses; 2 | 3 | namespace Intersect.Client.Framework.Input 4 | { 5 | public interface IGameInput 6 | { 7 | Pointf MousePosition { get; } 8 | bool KeyDown(Keys key); 9 | bool MouseButtonDown(MouseButtons mb); 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Client/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | SDL2.dll 7 | libopenal.so.1 8 | 9 | 10 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Services/ILogicService.cs: -------------------------------------------------------------------------------- 1 | using Amib.Threading; 2 | using Intersect.Core; 3 | 4 | namespace Intersect.Server.Core.Services 5 | { 6 | internal interface ILogicService : IThreadableApplicationService 7 | { 8 | object LogicLock { get; } 9 | 10 | SmartThreadPool LogicPool { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/DrawStates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics 2 | { 3 | public enum DrawStates 4 | { 5 | GroundLayers = 0, 6 | 7 | BelowPlayer, 8 | 9 | AbovePlayer, 10 | 11 | FringeLayers, 12 | 13 | BeforeEntity, 14 | 15 | AfterEntity, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/UserInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.RestApi.Payloads 2 | { 3 | 4 | public partial struct UserInfo 5 | { 6 | 7 | public string Username { get; set; } 8 | 9 | public string Password { get; set; } 10 | 11 | public string Email { get; set; } 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/ItemEffect.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum ItemEffect : byte 4 | { 5 | None = 0, 6 | 7 | CooldownReduction = 1, 8 | 9 | Lifesteal = 2, 10 | 11 | Tenacity = 3, 12 | 13 | Luck = 4, 14 | 15 | EXP = 5, 16 | 17 | Manasteal = 6, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Database/PlayerData/Players/IPlayerOwned.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Server.Entities; 4 | 5 | namespace Intersect.Server.Database.PlayerData.Players 6 | { 7 | 8 | public interface IPlayerOwned 9 | { 10 | 11 | Player Player { get; } 12 | 13 | Guid PlayerId { get; } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server/Maps/MapResourceSpawn.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | 3 | namespace Intersect.Server.Maps 4 | { 5 | 6 | public partial class MapResourceSpawn 7 | { 8 | 9 | public Resource Entity; 10 | 11 | public int EntityIndex = -1; 12 | 13 | public long RespawnTime = -1; 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/Direction.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum Direction 4 | { 5 | None = -1, 6 | 7 | Up, 8 | 9 | Down, 10 | 11 | Left, 12 | 13 | Right, 14 | 15 | UpLeft, 16 | 17 | UpRight, 18 | 19 | DownRight, 20 | 21 | DownLeft 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ascension Game Dev 4 | url: https://ascensiongamedev.com 5 | about: Please ask and answer questions on our public forum. 6 | - name: Community Discord 7 | url: https://discord.gg/Ggt3KJV 8 | about: Feel free to chat or also find support in our Discord community. 9 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /contentModel.xml 6 | /projectSettingsUpdater.xml 7 | /.idea.Intersect.iml 8 | /modules.xml 9 | # Datasource local storage ignored files 10 | /dataSources/ 11 | /dataSources.local.xml 12 | # Editor-based HTTP Client requests 13 | /httpRequests/ 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/IClient.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | 4 | public interface IClient : INetwork 5 | { 6 | IConnection Connection { get; } 7 | 8 | bool IsConnected { get; } 9 | 10 | bool IsServerOnline { get; } 11 | 12 | int Ping { get; } 13 | 14 | bool Connect(); 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Audio/GameAudioSource.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Content; 2 | 3 | namespace Intersect.Client.Framework.Audio 4 | { 5 | 6 | public abstract partial class GameAudioSource : IAsset 7 | { 8 | public string Name { get; set; } 9 | 10 | public abstract GameAudioInstance CreateInstance(); 11 | 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Editor/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | [assembly: 2 | System.Diagnostics.CodeAnalysis.SuppressMessage( 3 | "Style", "IDE1005:Delegate invocation can be simplified.", 4 | Justification = "if-null is more readable for newer programmers.", Scope = "member", 5 | Target = "~M:Intersect_Editor.Classes.PacketHandler.HandleGameObject(System.Byte[])" 6 | )] 7 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/ItemInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Web.RestApi.Payloads 4 | { 5 | 6 | public partial struct ItemInfo 7 | { 8 | 9 | public Guid ItemId { get; set; } 10 | 11 | public int Quantity { get; set; } 12 | 13 | public bool BankOverflow { get; set; } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IPartyMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Entities 4 | { 5 | public interface IPartyMember 6 | { 7 | Guid Id { get; set; } 8 | int Level { get; set; } 9 | int[] MaxVital { get; set; } 10 | string Name { get; set; } 11 | int[] Vital { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /Intersect (Core)/SharedConstants.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | 3 | namespace Intersect 4 | { 5 | 6 | public static partial class SharedConstants 7 | { 8 | 9 | public static readonly string VersionName = "Beta Eridani (201802251101-05)"; 10 | 11 | public static readonly byte[] VersionData = Encoding.UTF8.GetBytes(VersionName); 12 | 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client/Entities/FriendInstance.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Entities; 2 | 3 | namespace Intersect.Client.Entities 4 | { 5 | public partial class FriendInstance : IFriendInstance 6 | { 7 | 8 | public string Map { get; set; } 9 | 10 | public string Name { get; set; } 11 | 12 | public bool Online { get; set; } = false; 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Network/NetworkMetaStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | 4 | public enum NetworkMetaStatus 5 | { 6 | 7 | Unknown = 0, 8 | 9 | ConnectionEstablished = 1, 10 | 11 | HandshakeRequested = 2, 12 | 13 | HandshakeReceived = 4, 14 | 15 | HandshakeCompleted = 8, 16 | 17 | Connected = 16 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Server/Database/ContextProvider.Locking.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database 2 | { 3 | public sealed partial class ContextProvider 4 | { 5 | private partial class LockProvider where TContext : IntersectDbContext, UContext 6 | { 7 | public static readonly object Lock = new object(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/Maps/MapItemSpawn.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Maps 4 | { 5 | 6 | public partial class MapItemSpawn 7 | { 8 | public Guid Id { get; } = Guid.NewGuid(); 9 | 10 | public int AttributeSpawnX = -1; 11 | 12 | public int AttributeSpawnY = -1; 13 | 14 | public long RespawnTime = -1; 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /contentModel.xml 6 | /projectSettingsUpdater.xml 7 | /.idea.Intersect.Examples.iml 8 | /modules.xml 9 | # Datasource local storage ignored files 10 | /dataSources/ 11 | /dataSources.local.xml 12 | # Editor-based HTTP Client requests 13 | /httpRequests/ 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/IPacketHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | public interface IPacketHandler 4 | { 5 | bool Handle(IPacketSender packetSender, IPacket packet); 6 | } 7 | 8 | public interface IPacketHandler : IPacketHandler where TPacket : IPacket 9 | { 10 | bool Handle(IPacketSender packetSender, TPacket packet); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Maps/MapResourceSpawn.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.GameObjects.Maps 4 | { 5 | 6 | public partial class ResourceSpawn 7 | { 8 | public Guid Id { get; set; } = Guid.NewGuid(); 9 | 10 | public Guid ResourceId; 11 | 12 | public byte X; 13 | 14 | public byte Y; 15 | 16 | public byte Z; 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Collections/SanitizedValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Collections 2 | { 3 | 4 | public partial struct SanitizedValue 5 | { 6 | 7 | public T Before { get; } 8 | 9 | public T After { get; } 10 | 11 | public SanitizedValue(T before, T after) 12 | { 13 | Before = before; 14 | After = after; 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/NetworkStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | public enum NetworkStatus 4 | { 5 | 6 | Unknown = 0, 7 | 8 | Connecting, 9 | 10 | Online, 11 | 12 | Offline, 13 | 14 | Failed, 15 | 16 | VersionMismatch, 17 | 18 | ServerFull, 19 | 20 | HandshakeFailure, 21 | 22 | Quitting, 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Intersect.Client/Entities/Events/Hold.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Entities.Events 4 | { 5 | 6 | public partial class Hold 7 | { 8 | 9 | public Guid EventId; 10 | 11 | public Guid MapId; 12 | 13 | public Hold(Guid eventId, Guid mapId) 14 | { 15 | EventId = eventId; 16 | MapId = mapId; 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Config/MetricsOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Config 2 | { 3 | /// 4 | /// Contains configurable options pertaining to stat/metrics collecting 5 | /// 6 | public partial class MetricsOptions 7 | { 8 | /// 9 | /// Track game performance metrics 10 | /// 11 | public bool Enable { get; set; } = true; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Annotations/EditorTimeAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.GameObjects.Annotations 4 | { 5 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] 6 | public class EditorTimeAttribute : EditorFormattedAttribute 7 | { 8 | public EditorTimeAttribute() : base("FormatTimeMilliseconds") 9 | { 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Maps/MapTile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Newtonsoft.Json; 4 | 5 | namespace Intersect.GameObjects.Maps 6 | { 7 | 8 | public partial struct Tile 9 | { 10 | 11 | public Guid TilesetId; 12 | 13 | public int X; 14 | 15 | public int Y; 16 | 17 | public byte Autotile; 18 | 19 | [JsonIgnore] public object TilesetTex; 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/Helpers/IServerLifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Interfaces; 2 | 3 | namespace Intersect.Server.Plugins.Helpers 4 | { 5 | /// 6 | /// Defines the API for accessing server lifecycle information and events. 7 | /// 8 | /// 9 | public interface IServerLifecycleHelper : ILifecycleHelper 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/IServerPluginContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | using Intersect.Server.Plugins.Helpers; 3 | 4 | namespace Intersect.Server.Plugins 5 | { 6 | /// 7 | /// Declares the plugin API surface for the Intersect server 8 | /// 9 | public interface IServerPluginContext : IPluginContext 10 | { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Extensions/KeyValuePairExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Intersect.Extensions 4 | { 5 | public static partial class KeyValuePairExtensions 6 | { 7 | public static void Deconstruct(this KeyValuePair pair, out TKey key, out TValue val) 8 | { 9 | key = pair.Key; 10 | val = pair.Value; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Logging/LogLevel.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Logging 2 | { 3 | 4 | public enum LogLevel : byte 5 | { 6 | 7 | None = 0, 8 | 9 | Error = 0x20, 10 | 11 | Warn = 0x40, 12 | 13 | Info = 0x60, 14 | 15 | Trace = 0x80, 16 | 17 | Verbose = 0xA0, 18 | 19 | Debug = 0xC0, 20 | 21 | Diagnostic = 0xE0, 22 | 23 | All = 0xFF 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/GuildLeavePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class GuildLeavePacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildLeavePacket() 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Server/Entities/Label.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Server.Entities 4 | { 5 | 6 | public partial struct Label 7 | { 8 | 9 | [JsonProperty("Label")] public string Text; 10 | 11 | public Color Color; 12 | 13 | public Label(string label, Color color) 14 | { 15 | Text = label; 16 | Color = color; 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/RequestGuildPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class RequestGuildPacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public RequestGuildPacket() 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Server/Core/CommandParsing/Arguments/HelpArgument.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Localization; 2 | 3 | namespace Intersect.Server.Core.CommandParsing.Arguments 4 | { 5 | 6 | public partial class HelpArgument : CommandArgument 7 | { 8 | 9 | public HelpArgument() : base(Strings.Commands.Arguments.Help) 10 | { 11 | } 12 | 13 | public override bool IsFlag => true; 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Logging/IntersectLoggerFactory.cs: -------------------------------------------------------------------------------- 1 | 2 | using Microsoft.Owin.Logging; 3 | 4 | namespace Intersect.Server.Web.RestApi.Logging 5 | { 6 | 7 | internal sealed partial class IntersectLoggerFactory : ILoggerFactory 8 | { 9 | 10 | /// 11 | public ILogger Create(string name) 12 | { 13 | return new IntersectLogger(name); 14 | } 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/AdminChange.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations.Schema; 2 | 3 | using Newtonsoft.Json; 4 | 5 | namespace Intersect.Server.Web.RestApi.Payloads 6 | { 7 | 8 | public partial struct AdminChange 9 | { 10 | 11 | [JsonIgnore, NotMapped] 12 | public bool IsValid => !string.IsNullOrWhiteSpace(New); 13 | 14 | public string New { get; set; } 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Intersect (Core)/Utilities/Nullability.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Utilities 4 | { 5 | 6 | public static partial class Nullability 7 | { 8 | 9 | public static T IsNotNull(this T value) 10 | { 11 | if (value == null) 12 | { 13 | throw new InvalidOperationException(); 14 | } 15 | 16 | return value; 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/DragDrop/Package.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control; 2 | 3 | namespace Intersect.Client.Framework.Gwen.DragDrop 4 | { 5 | 6 | public partial class Package 7 | { 8 | 9 | public Base DrawControl; 10 | 11 | public Point HoldOffset; 12 | 13 | public bool IsDraggable; 14 | 15 | public string Name; 16 | 17 | public object UserData; 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Client/Interface/Game/DescriptionWindows/Components/DividerComponent.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control; 2 | 3 | namespace Intersect.Client.Interface.Game.DescriptionWindows.Components 4 | { 5 | public partial class DividerComponent : ComponentBase 6 | { 7 | public DividerComponent(Base parent, string name) : base(parent, name) 8 | { 9 | GenerateComponents(); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Tests.Client/Stub.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Utilities; 2 | 3 | using NUnit.Framework; 4 | 5 | namespace Intersect.Tests.Client 6 | { 7 | 8 | [TestFixture] 9 | public partial class Stub 10 | { 11 | 12 | [Test] 13 | public void TestStub() 14 | { 15 | // Needed so NUnit doesn't return -2 16 | Assert.AreEqual(0, MathHelper.Lerp(0, 0, 0)); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/GuildInviteAcceptPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class GuildInviteAcceptPacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildInviteAcceptPacket() 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ExperimentalFeatures/IFlagProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Core.ExperimentalFeatures 4 | { 5 | 6 | public interface IFlagProvider 7 | { 8 | 9 | bool IsEnabled(Guid flagId); 10 | 11 | bool IsEnabled(string flagName); 12 | 13 | bool TryGet(Guid flagId, out IExperimentalFlag flag); 14 | 15 | bool TryGet(string flagName, out IExperimentalFlag flag); 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/MapAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum MapAttribute : byte 4 | { 5 | Walkable = 0, 6 | 7 | Blocked, 8 | 9 | Item, 10 | 11 | ZDimension, 12 | 13 | NpcAvoid, 14 | 15 | Warp, 16 | 17 | Sound, 18 | 19 | Resource, 20 | 21 | Animation, 22 | 23 | GrappleStone, 24 | 25 | Slide, 26 | 27 | Critter 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/GuildInviteDeclinePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class GuildInviteDeclinePacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildInviteDeclinePacket() 12 | { 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IActionMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Maps 2 | { 3 | public interface IActionMessage 4 | { 5 | Color Color { get; set; } 6 | IMapInstance Map { get; set; } 7 | string Msg { get; set; } 8 | long TransmissionTimer { get; set; } 9 | int X { get; set; } 10 | long XOffset { get; set; } 11 | int Y { get; set; } 12 | 13 | void TryRemove(); 14 | } 15 | } -------------------------------------------------------------------------------- /Intersect.Tests.Editor/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Editor 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Tests.Network/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Network 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Tests.Server/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Server 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/VariableType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | // Should properly separate static value, player & global vars into a separate enum. 4 | // But technical debt :/ 5 | // Crying as I add in Guild variables.. don't hate me :( 6 | 7 | public enum VariableType 8 | { 9 | 10 | PlayerVariable = 0, 11 | 12 | ServerVariable, 13 | 14 | GuildVariable, 15 | 16 | UserVariable, 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/PluginConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Plugins 4 | { 5 | /// 6 | /// The basic plugin configuration class. 7 | /// 8 | public partial class PluginConfiguration 9 | { 10 | /// 11 | /// If this plugin is enabled or not. 12 | /// 13 | [JsonProperty] 14 | public bool IsEnabled { get; internal set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect (Core)/Logging/Formatting/ILogFormatter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Logging.Formatting 4 | { 5 | 6 | public interface ILogFormatter 7 | { 8 | 9 | string Format( 10 | LogConfiguration configuration, 11 | LogLevel logLevel, 12 | DateTime dateTime, 13 | Exception exception, 14 | string message, 15 | params object[] args 16 | ); 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/IPluginContext`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Plugins 2 | { 3 | /// 4 | /// Defines the API of the during application runtime. 5 | /// 6 | /// a subtype 7 | public interface IPluginContext : IPluginContext 8 | where TPluginContext : IPluginContext 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/Label.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Client.Framework.Entities 4 | { 5 | 6 | public partial class Label 7 | { 8 | 9 | [JsonProperty("Label")] public string Text { get; set; } 10 | 11 | public Color Color { get; set; } 12 | 13 | public Label(string label, Color color) 14 | { 15 | Text = label; 16 | Color = color; 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/HotbarSwapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class HotbarSwapPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public HotbarSwapPacket() : base(0,0) 10 | { 11 | } 12 | 13 | public HotbarSwapPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SwapSpellsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class SwapSpellsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapSpellsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapSpellsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Tests.Client.Framework/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Client.Framework 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/20191030214333_PlayerUpgrades_Labels.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations 4 | { 5 | 6 | public partial class PlayerUpgrades_Labels : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | } 12 | 13 | protected override void Down(MigrationBuilder migrationBuilder) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/20220331140427_GuildBankMaxSlotsMigration.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations 4 | { 5 | public partial class GuildBankMaxSlotsMigration : Migration 6 | { 7 | protected override void Up(MigrationBuilder migrationBuilder) 8 | { 9 | 10 | } 11 | 12 | protected override void Down(MigrationBuilder migrationBuilder) 13 | { 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/IThreadableApplicationService.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Threading; 3 | 4 | namespace Intersect.Core 5 | { 6 | /// 7 | /// Declares the API surface for application services that have their own thread. 8 | /// 9 | public interface IThreadableApplicationService : IApplicationService 10 | { 11 | /// 12 | /// The thread for this service. 13 | /// 14 | Thread Thread { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SwapBagItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class SwapBagItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapBagItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapBagItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SwapInvItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class SwapInvItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapInvItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapInvItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/NpcEntityPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class NpcEntityPacket : EntityPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public NpcEntityPacket() 11 | { 12 | } 13 | 14 | 15 | [Key(24)] 16 | public NpcAggression Aggression { get; set; } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Plugins/Helpers/ServerLifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Helpers; 2 | 3 | namespace Intersect.Server.Plugins.Helpers 4 | { 5 | /// 6 | internal sealed partial class ServerLifecycleHelper : ContextHelper, IServerLifecycleHelper 7 | { 8 | /// 9 | public ServerLifecycleHelper(IServerPluginContext context) : base(context) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SwapBankItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class SwapBankItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapBankItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapBankItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/IPluginContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Interfaces; 2 | 3 | namespace Intersect.Plugins 4 | { 5 | /// 6 | /// Defines the API of the plugin context during application runtime. 7 | /// 8 | public interface IPluginContext : IPluginBaseContext 9 | { 10 | /// 11 | /// The of the current plugin. 12 | /// 13 | ILifecycleHelper Lifecycle { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20211031200145_FixQuestTaskCompletionEvents.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | public partial class FixQuestTaskCompletionEvents : Migration 6 | { 7 | protected override void Up(MigrationBuilder migrationBuilder) 8 | { 9 | 10 | } 11 | 12 | protected override void Down(MigrationBuilder migrationBuilder) 13 | { 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/IPacket.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | using Intersect.Collections; 5 | 6 | namespace Intersect.Network 7 | { 8 | 9 | public interface IPacket : IDisposable 10 | { 11 | 12 | byte[] Data { get; } 13 | 14 | bool IsValid { get; } 15 | 16 | long ReceiveTime { get; set; } 17 | 18 | long ProcessTime { get; set; } 19 | 20 | Dictionary> Sanitize(); 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/BuyItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class BuyItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public BuyItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public BuyItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/DropItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class DropItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public DropItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public DropItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SellItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class SellItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SellItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SellItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/IpAddress.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Intersect.Server.Web.RestApi.Payloads 8 | { 9 | public partial class IpAddress 10 | { 11 | public string Ip { get; set; } 12 | 13 | public DateTime LastUsed { get; set; } 14 | 15 | public Dictionary OtherUsers { get; set; } = new Dictionary(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client/Core/IClientContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Client.Core 4 | { 5 | /// 6 | /// Declares the API surface of client contexts. 7 | /// 8 | internal interface IClientContext : IApplicationContext 9 | { 10 | /// 11 | /// The platform-specific runner that initializes the actual user-visible client. 12 | /// 13 | IPlatformRunner PlatformRunner { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client/Maps/MapGrid.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Client.General; 4 | using Intersect.Client.Framework.Maps; 5 | 6 | namespace Intersect.Client.Maps 7 | { 8 | public partial class MapGrid : IMapGrid 9 | { 10 | /// 11 | public Guid[,] Content => Globals.MapGrid; 12 | 13 | /// 14 | public long Height => Globals.MapGridHeight; 15 | 16 | /// 17 | public long Width => Globals.MapGridWidth; 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/AdminAction.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum AdminAction 4 | { 5 | None = 0, 6 | 7 | WarpTo, 8 | 9 | WarpMeTo, 10 | 11 | WarpToMe, 12 | 13 | WarpToLoc, 14 | 15 | Kick, 16 | 17 | Kill, 18 | 19 | Ban, 20 | 21 | UnBan, 22 | 23 | Mute, 24 | 25 | UnMute, 26 | 27 | SetSprite, 28 | 29 | SetFace, 30 | 31 | SetAccess, 32 | 33 | ReturnToOverworld 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Intersect.Client/Spells/Spell.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Spells 4 | { 5 | 6 | public partial class Spell 7 | { 8 | 9 | public Guid Id { get; set; } 10 | 11 | public Spell Clone() 12 | { 13 | var newSpell = new Spell() { 14 | Id = Id 15 | }; 16 | 17 | return newSpell; 18 | } 19 | 20 | public void Load(Guid spellId) 21 | { 22 | Id = spellId; 23 | } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/OfferTradeItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class OfferTradeItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public OfferTradeItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public OfferTradeItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/PacketLifecycle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Intersect.Network 5 | { 6 | public sealed partial class PacketLifecycle 7 | { 8 | public Type PacketType { get; } 9 | 10 | public IReadOnlyList PreHandlers { get; } 11 | 12 | public IReadOnlyList PostHandlers { get; } 13 | 14 | public IPacketHandler Preprocessor { get; } 15 | 16 | public IPacketHandler Handler { get; } 17 | 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/RevokeTradeItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class RevokeTradeItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public RevokeTradeItemPacket() : base(0,0) 10 | { 11 | } 12 | 13 | public RevokeTradeItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/ChatboxTab.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | /// 4 | /// Defines the chat tabs available within the engine, and is used to determine which one is currently in view. 5 | /// 6 | public enum ChatboxTab 7 | { 8 | All, 9 | 10 | Local, 11 | 12 | Party, 13 | 14 | Guild, 15 | 16 | Global, 17 | 18 | System, 19 | 20 | // Always keep this at the bottom, or you're going to have a very bad time! 21 | Count 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Extensions/GameObjectInfoAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Extensions 4 | { 5 | 6 | [AttributeUsage(AttributeTargets.Field, Inherited = false)] 7 | public sealed partial class GameObjectInfoAttribute : Attribute 8 | { 9 | 10 | public GameObjectInfoAttribute(Type type, string table) 11 | { 12 | Type = type; 13 | Table = table; 14 | } 15 | 16 | public Type Type { get; } 17 | 18 | public string Table { get; } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Items/IItem.cs: -------------------------------------------------------------------------------- 1 | using Intersect.GameObjects; 2 | using Intersect.Network.Packets.Server; 3 | using System; 4 | 5 | namespace Intersect.Client.Framework.Items 6 | { 7 | public interface IItem 8 | { 9 | Guid? BagId { get; set; } 10 | ItemBase Base { get; } 11 | Guid ItemId { get; set; } 12 | int Quantity { get; set; } 13 | ItemProperties ItemProperties { get; set; } 14 | 15 | void Load(Guid id, int quantity, Guid? bagId, ItemProperties ItemProperties); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/SpellEffect.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums 2 | { 3 | public enum SpellEffect 4 | { 5 | None = 0, 6 | 7 | Silence = 1, 8 | 9 | Stun = 2, 10 | 11 | Snare = 3, 12 | 13 | Blind = 4, 14 | 15 | Stealth = 5, 16 | 17 | Transform = 6, 18 | 19 | Cleanse = 7, 20 | 21 | Invulnerable = 8, 22 | 23 | Shield = 9, 24 | 25 | Sleep = 10, 26 | 27 | OnHit = 11, 28 | 29 | Taunt = 12, 30 | 31 | Knockback = 13 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Intersect (Core)/Utilities/VersionHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | namespace Intersect.Utilities 5 | { 6 | 7 | public static partial class VersionHelper 8 | { 9 | 10 | public static Version LibraryVersion => Assembly.GetAssembly(typeof(VersionHelper))?.GetName().Version; 11 | 12 | public static Version ExecutableVersion => Assembly.GetEntryAssembly()?.GetName().Version ?? 13 | Assembly.GetExecutingAssembly().GetName().Version; 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Commands/ExitCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Core.CommandParsing; 2 | using Intersect.Server.Localization; 3 | 4 | namespace Intersect.Server.Core.Commands 5 | { 6 | 7 | internal sealed partial class ExitCommand : ServerCommand 8 | { 9 | 10 | public ExitCommand() : base(Strings.Commands.Exit) 11 | { 12 | } 13 | 14 | protected override void HandleValue(ServerContext context, ParserResult result) 15 | { 16 | context.RequestShutdown(); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20201004032158_EnablingCerasVersionTolerance.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | public partial class EnablingCerasVersionTolerance : Migration 6 | { 7 | protected override void Up(MigrationBuilder migrationBuilder) 8 | { 9 | //We are intentionally not doing anything here. 10 | //Do not delete this migration. 11 | //Post migration we fix ceras version tolerance. 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Payloads/AuthorizedChange.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel.DataAnnotations.Schema; 2 | 3 | using Newtonsoft.Json; 4 | 5 | namespace Intersect.Server.Web.RestApi.Payloads 6 | { 7 | 8 | public partial struct AuthorizedChange 9 | { 10 | 11 | [JsonIgnore, NotMapped] 12 | public bool IsValid => !string.IsNullOrWhiteSpace(Authorization) && !string.IsNullOrWhiteSpace(New); 13 | 14 | public string Authorization { get; set; } 15 | 16 | public string New { get; set; } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/BlockPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class BlockPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public BlockPacket() 10 | { 11 | } 12 | 13 | public BlockPacket(bool blocking) 14 | { 15 | Blocking = blocking; 16 | } 17 | 18 | [Key(0)] 19 | public bool Blocking { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ConfigPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class ConfigPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public ConfigPacket() 10 | { 11 | } 12 | 13 | public ConfigPacket(string config) 14 | { 15 | Config = config; 16 | } 17 | 18 | [Key(0)] 19 | public string Config { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PlayMusicPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class PlayMusicPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public PlayMusicPacket() 10 | { 11 | } 12 | 13 | public PlayMusicPacket(string bgm) 14 | { 15 | BGM = bgm; 16 | } 17 | 18 | [Key(0)] 19 | public string BGM { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin/Packets/Client/ExamplePluginClientPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Network; 2 | 3 | using MessagePack; 4 | 5 | namespace Intersect.Examples.Plugin.Packets.Client 6 | { 7 | [MessagePackObject] 8 | public class ExamplePluginClientPacket : IntersectPacket 9 | { 10 | [Key(0)] 11 | public string ExamplePluginMessage { get; set; } 12 | 13 | public ExamplePluginClientPacket(string examplePluginMessage) 14 | { 15 | ExamplePluginMessage = examplePluginMessage; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin/Packets/Server/ExamplePluginServerPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Network; 2 | 3 | using MessagePack; 4 | 5 | namespace Intersect.Examples.Plugin.Packets.Server 6 | { 7 | [MessagePackObject] 8 | public class ExamplePluginServerPacket : IntersectPacket 9 | { 10 | [Key(0)] 11 | public string ExamplePluginMessage { get; set; } 12 | 13 | public ExamplePluginServerPacket(string examplePluginMessage) 14 | { 15 | ExamplePluginMessage = examplePluginMessage; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Client/Entities/Events/Dialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Entities.Events 4 | { 5 | 6 | public partial class Dialog 7 | { 8 | 9 | public Guid EventId; 10 | 11 | public string Face = ""; 12 | 13 | public string Opt1 = ""; 14 | 15 | public string Opt2 = ""; 16 | 17 | public string Opt3 = ""; 18 | 19 | public string Opt4 = ""; 20 | 21 | public string Prompt = ""; 22 | 23 | public int ResponseSent; 24 | 25 | public int Type; 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Intersect.Tests/Plugins/manifest.lowercase.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Test Manifest", 3 | "key": "AscensionGameDev.Intersect.Tests", 4 | "version": "1.0.0", 5 | "authors": [ 6 | { 7 | "name": "Test Author" 8 | }, 9 | { 10 | "name": "Test Author With Email", 11 | "email": "test@email.author" 12 | }, 13 | { 14 | "name": "Test Full Author", 15 | "email": "test@full.author", 16 | "homepage": "https://fullauthor.example.com" 17 | } 18 | ], 19 | "homepage": "https://github.com/AscensionGameDev/Intersect-Engine" 20 | } -------------------------------------------------------------------------------- /Intersect.Tests/Plugins/manifest.well-formed.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name": "Test Manifest", 3 | "Key": "AscensionGameDev.Intersect.Tests", 4 | "Version": "1.0.0", 5 | "Authors": [ 6 | { 7 | "Name": "Test Author" 8 | }, 9 | { 10 | "Name": "Test Author With Email", 11 | "Email": "test@email.author" 12 | }, 13 | { 14 | "Name": "Test Full Author", 15 | "Email": "test@full.author", 16 | "Homepage": "https://fullauthor.example.com" 17 | } 18 | ], 19 | "Homepage": "https://github.com/AscensionGameDev/Intersect-Engine" 20 | } -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/UnequipItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class UnequipItemPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public UnequipItemPacket() 10 | { 11 | } 12 | 13 | public UnequipItemPacket(int slot) 14 | { 15 | Slot = slot; 16 | } 17 | 18 | [Key(0)] 19 | public int Slot { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/UpgradeStatPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class UpgradeStatPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public UpgradeStatPacket() 10 | { 11 | } 12 | 13 | public UpgradeStatPacket(byte stat) 14 | { 15 | Stat = stat; 16 | } 17 | 18 | [Key(0)] 19 | public byte Stat { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/MapAreaPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class MapAreaPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public MapAreaPacket() 10 | { 11 | } 12 | 13 | public MapAreaPacket(MapPacket[] maps) 14 | { 15 | Maps = maps; 16 | } 17 | 18 | [Key(0)] 19 | public MapPacket[] Maps { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/MoveRoutePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class MoveRoutePacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public MoveRoutePacket() 10 | { 11 | } 12 | 13 | public MoveRoutePacket(bool active) 14 | { 15 | Active = active; 16 | } 17 | 18 | [Key(0)] 19 | public bool Active { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PlaySoundPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class PlaySoundPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public PlaySoundPacket() 10 | { 11 | } 12 | 13 | public PlaySoundPacket(string sound) 14 | { 15 | Sound = sound; 16 | } 17 | 18 | [Key(0)] 19 | public string Sound { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/StatPointsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class StatPointsPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public StatPointsPacket() 10 | { 11 | } 12 | 13 | public StatPointsPacket(int points) 14 | { 15 | Points = points; 16 | } 17 | 18 | [Key(0)] 19 | public int Points { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IStatus.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using System; 3 | 4 | namespace Intersect.Client.Framework.Entities 5 | { 6 | public interface IStatus 7 | { 8 | string Data { get; set; } 9 | int[] Shield { get; set; } 10 | Guid SpellId { get; set; } 11 | long TimeRecevied { get; set; } 12 | long TimeRemaining { get; set; } 13 | long TotalDuration { get; set; } 14 | SpellEffect Type { get; set; } 15 | 16 | bool IsActive { get; } 17 | long RemainingMs { get; } 18 | } 19 | } -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Events/EventMovement.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | 3 | namespace Intersect.GameObjects.Events 4 | { 5 | 6 | public partial class EventMovement 7 | { 8 | 9 | public EventMovementType Type { get; set; } = EventMovementType.None; 10 | 11 | public EventMovementFrequency Frequency { get; set; } = EventMovementFrequency.Normal; 12 | 13 | public EventMovementSpeed Speed { get; set; } = EventMovementSpeed.Normal; 14 | 15 | public EventMoveRoute Route { get; set; } = new EventMoveRoute(); 16 | 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/NeedMapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class NeedMapPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public NeedMapPacket() 11 | { 12 | } 13 | 14 | public NeedMapPacket(Guid mapId) 15 | { 16 | MapId = mapId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid MapId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/NeedMapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Editor 5 | { 6 | [MessagePackObject] 7 | public partial class NeedMapPacket : EditorPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public NeedMapPacket() 11 | { 12 | } 13 | 14 | public NeedMapPacket(Guid mapId) 15 | { 16 | MapId = mapId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid MapId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/HotbarPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class HotbarPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public HotbarPacket() 10 | { 11 | } 12 | 13 | public HotbarPacket(string[] slotData) 14 | { 15 | SlotData = slotData; 16 | } 17 | 18 | [Key(0)] 19 | public string[] SlotData { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ResourceEntityPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class ResourceEntityPacket : EntityPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public ResourceEntityPacket() 11 | { 12 | } 13 | 14 | 15 | [Key(24)] 16 | public Guid ResourceId { get; set; } 17 | 18 | 19 | [Key(25)] 20 | public bool IsDead { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Configuration/IConfigurable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Configuration 2 | { 3 | 4 | /// 5 | /// Base interface for configurable objects 6 | /// 7 | /// Configuration type 8 | public interface IConfigurable where TConfiguration : IConfiguration 9 | { 10 | 11 | /// 12 | /// The configuration instance for this object 13 | /// 14 | TConfiguration Configuration { get; } 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/EnterMapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Editor 5 | { 6 | [MessagePackObject] 7 | public partial class EnterMapPacket : EditorPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public EnterMapPacket() 11 | { 12 | } 13 | 14 | public EnterMapPacket(Guid mapId) 15 | { 16 | MapId = mapId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid MapId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/EnterMapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class EnterMapPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public EnterMapPacket() 11 | { 12 | } 13 | 14 | public EnterMapPacket(Guid mapId) 15 | { 16 | MapId = mapId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid MapId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/TimeDataPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class TimeDataPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public TimeDataPacket() 10 | { 11 | } 12 | 13 | public TimeDataPacket(string timeJson) 14 | { 15 | TimeJson = timeJson; 16 | } 17 | 18 | [Key(0)] 19 | public string TimeJson { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/TradePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class TradePacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public TradePacket() 10 | { 11 | } 12 | 13 | public TradePacket(string partnerName) 14 | { 15 | TradePartner = partnerName; 16 | } 17 | 18 | [Key(0)] 19 | public string TradePartner { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/DnsUtils.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Net; 3 | using System.Net.Sockets; 4 | 5 | namespace Intersect.Network 6 | { 7 | 8 | public static partial class DnsUtils 9 | { 10 | 11 | public static IPAddress Resolve(string hostname) 12 | { 13 | return string.IsNullOrEmpty(hostname?.Trim()) 14 | ? new IPAddress(0) 15 | : Dns.GetHostEntry(hostname.Trim()) 16 | .AddressList?.First(ip => ip?.AddressFamily == AddressFamily.InterNetwork); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/MapListPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class MapListPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public MapListPacket() 10 | { 11 | } 12 | 13 | public MapListPacket(string mapListData) 14 | { 15 | MapListData = mapListData; 16 | } 17 | 18 | [Key(0)] 19 | public string MapListData { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/SpellsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class SpellsPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SpellsPacket() 10 | { 11 | } 12 | 13 | public SpellsPacket(SpellUpdatePacket[] slots) 14 | { 15 | Slots = slots; 16 | } 17 | 18 | [Key(0)] 19 | public SpellUpdatePacket[] Slots { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Client/MonoGame/Audio/MonoAudioInstance.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Client.Framework.Audio; 4 | 5 | namespace Intersect.Client.MonoGame.Audio 6 | { 7 | 8 | public abstract partial class MonoAudioInstance : GameAudioInstance where TSource : GameAudioSource 9 | { 10 | 11 | /// 12 | protected MonoAudioInstance(GameAudioSource source) : base(source) 13 | { 14 | } 15 | 16 | public new TSource Source => base.Source as TSource ?? throw new InvalidOperationException(); 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Commands/ServerCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Localization; 2 | using Intersect.Server.Core.CommandParsing.Arguments; 3 | using Intersect.Server.Core.CommandParsing.Commands; 4 | 5 | namespace Intersect.Server.Core.Commands 6 | { 7 | 8 | internal abstract partial class ServerCommand : HelpableCommand 9 | { 10 | 11 | protected ServerCommand( 12 | LocaleCommand localization, 13 | params ICommandArgument[] arguments 14 | ) : base(localization, arguments) 15 | { 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/AddTilesetsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Editor 4 | { 5 | [MessagePackObject] 6 | public partial class AddTilesetsPacket : EditorPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public AddTilesetsPacket() 10 | { 11 | } 12 | 13 | public AddTilesetsPacket(string[] tilesets) 14 | { 15 | Tilesets = tilesets; 16 | } 17 | 18 | [Key(0)] 19 | public string[] Tilesets { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/RequestGridPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Editor 5 | { 6 | [MessagePackObject] 7 | public partial class RequestGridPacket : EditorPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public RequestGridPacket() 11 | { 12 | } 13 | 14 | public RequestGridPacket(Guid mapId) 15 | { 16 | MapId = mapId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid MapId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/SaveTimeDataPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Editor 4 | { 5 | [MessagePackObject] 6 | public partial class SaveTimeDataPacket : EditorPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SaveTimeDataPacket() 10 | { 11 | } 12 | 13 | public SaveTimeDataPacket(string timeJson) 14 | { 15 | TimeJson = timeJson; 16 | } 17 | 18 | [Key(0)] 19 | public string TimeJson { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Client/Resources/MonoGame.Framework.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/AttackPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class AttackPacket : AbstractTimedPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public AttackPacket() 11 | { 12 | 13 | } 14 | 15 | public AttackPacket(Guid target) 16 | { 17 | Target = target; 18 | } 19 | 20 | [Key(3)] 21 | public Guid Target { get; set; } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/PartyKickPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class PartyKickPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public PartyKickPacket() 11 | { 12 | } 13 | 14 | public PartyKickPacket(Guid targetId) 15 | { 16 | TargetId = targetId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid TargetId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class PingPacket : AbstractTimedPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public PingPacket() 10 | { 11 | 12 | } 13 | 14 | public PingPacket(bool requestingReply) 15 | { 16 | RequestingReply = requestingReply; 17 | } 18 | 19 | [Key(3)] 20 | public bool RequestingReply { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/QuestOfferPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class QuestOfferPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public QuestOfferPacket() 11 | { 12 | } 13 | 14 | public QuestOfferPacket(Guid questId) 15 | { 16 | QuestId = questId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid QuestId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Pos.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Gwen 4 | { 5 | 6 | /// 7 | /// Represents relative position. 8 | /// 9 | [Flags] 10 | public enum Pos 11 | { 12 | 13 | None = 0, 14 | 15 | Left = 1 << 1, 16 | 17 | Right = 1 << 2, 18 | 19 | Top = 1 << 3, 20 | 21 | Bottom = 1 << 4, 22 | 23 | CenterV = 1 << 5, 24 | 25 | CenterH = 1 << 6, 26 | 27 | Fill = 1 << 7, 28 | 29 | Center = CenterV | CenterH, 30 | 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/20200301145105_SavingPlayerLabelsInDb.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations 4 | { 5 | 6 | public partial class SavingPlayerLabelsInDb : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "FooterLabel", table: "Players", nullable: true); 12 | 13 | migrationBuilder.AddColumn(name: "HeaderLabel", table: "Players", nullable: true); 14 | } 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | # Intersect Authors 2 | 3 | [JC Snider](https://github.com/jcsnider) 4 | 5 | [Joe Bridges](https://github.com/irokaiser) 6 | 7 | [Robbie Lodico](https://github.com/lodicolo) 8 | 9 | # Intersect Maintainers 10 | 11 | [Jocelyn Cobb](https://github.com/Cheshire92) 12 | 13 | # Intersect Contributors 14 | 15 | [Alex Vild](https://github.com/AlexVild) 16 | 17 | [A. I. Robin](https://github.com/alloin) 18 | 19 | [char32](https://github.com/char32) 20 | 21 | [Dog from the Kash Shop](#) 22 | 23 | [Fernando Arzola Lagos](https://github.com/Arufonsu) 24 | 25 | [Shenmue](https://github.com/RedBandana) -------------------------------------------------------------------------------- /Intersect (Core)/Network/IConnection.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | 4 | namespace Intersect.Network 5 | { 6 | public interface IConnection : IDisposable 7 | { 8 | Guid Guid { get; } 9 | 10 | bool IsConnected { get; } 11 | 12 | string Ip { get; } 13 | 14 | int Port { get; } 15 | 16 | ConnectionStatistics Statistics { get; } 17 | 18 | bool Send(IPacket packet, TransmissionMode mode = TransmissionMode.All); 19 | 20 | void HandleConnected(); 21 | 22 | void HandleApproved(); 23 | 24 | void HandleDisconnected(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/CancelCastPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class CancelCastPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public CancelCastPacket() 11 | { 12 | } 13 | 14 | public CancelCastPacket(Guid entityId) 15 | { 16 | EntityId = entityId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid EntityId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PartyPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class PartyPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public PartyPacket() 10 | { 11 | } 12 | 13 | public PartyPacket(PartyMemberPacket[] memberData) 14 | { 15 | MemberData = memberData; 16 | } 17 | 18 | [Key(0)] 19 | public PartyMemberPacket[] MemberData { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/InventoryPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class InventoryPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public InventoryPacket() 10 | { 11 | } 12 | 13 | public InventoryPacket(InventoryUpdatePacket[] slots) 14 | { 15 | Slots = slots; 16 | } 17 | 18 | [Key(0)] 19 | public InventoryUpdatePacket[] Slots { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PlayerDeathPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class PlayerDeathPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public PlayerDeathPacket() 11 | { 12 | } 13 | 14 | public PlayerDeathPacket(Guid playerId) 15 | { 16 | PlayerId = playerId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid PlayerId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Server/Entities/Pathfinding/PathfinderTarget.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Server.Entities.Pathfinding 4 | { 5 | 6 | public partial class PathfinderTarget 7 | { 8 | 9 | public Guid TargetMapId; 10 | 11 | public int TargetX; 12 | 13 | public int TargetY; 14 | 15 | public int TargetZ; 16 | 17 | public PathfinderTarget(Guid mapId, int x, int y, int z) 18 | { 19 | TargetMapId = mapId; 20 | TargetX = x; 21 | TargetY = y; 22 | TargetZ = z; 23 | } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/AbandonQuestPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class AbandonQuestPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public AbandonQuestPacket() 11 | { 12 | 13 | } 14 | 15 | public AbandonQuestPacket(Guid questId) 16 | { 17 | QuestId = questId; 18 | } 19 | 20 | [Key(0)] 21 | public Guid QuestId { get; set; } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/LogoutPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class LogoutPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public LogoutPacket() 10 | { 11 | } 12 | 13 | public LogoutPacket(bool returnToCharSelect) 14 | { 15 | ReturningToCharSelect = returnToCharSelect; 16 | } 17 | 18 | [Key(0)] 19 | public bool ReturningToCharSelect { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/PictureClosedPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class PictureClosedPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public PictureClosedPacket() 11 | { 12 | } 13 | 14 | public PictureClosedPacket(Guid eventId) 15 | { 16 | EventId = eventId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid EventId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/TradeRequestPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class TradeRequestPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public TradeRequestPacket() 11 | { 12 | } 13 | 14 | public TradeRequestPacket(Guid targetId) 15 | { 16 | TargetId = targetId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid TargetId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Extensions/HttpRequestMessageExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Net; 2 | using System.Net.Http; 3 | 4 | namespace Intersect.Server.Web.RestApi.Extensions 5 | { 6 | 7 | internal static partial class HttpRequestMessageExtensions 8 | { 9 | 10 | public static HttpResponseMessage CreateMessageResponse( 11 | this HttpRequestMessage request, 12 | HttpStatusCode statusCode, 13 | string message 14 | ) 15 | { 16 | return request.CreateResponse(statusCode, new {Message = message}); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/ActivateEventPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class ActivateEventPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public ActivateEventPacket() 11 | { 12 | 13 | } 14 | 15 | public ActivateEventPacket(Guid eventId) 16 | { 17 | EventId = eventId; 18 | } 19 | 20 | [Key(0)] 21 | public Guid EventId { get; set; } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/OpenEditorPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class OpenEditorPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public OpenEditorPacket() 11 | { 12 | } 13 | 14 | public OpenEditorPacket(GameObjectType type) 15 | { 16 | Type = type; 17 | } 18 | 19 | [Key(0)] 20 | public GameObjectType Type { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/TargetOverridePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class TargetOverridePacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public TargetOverridePacket() 11 | { 12 | } 13 | 14 | public TargetOverridePacket(Guid targetId) 15 | { 16 | TargetId = targetId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid TargetId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/SuppressionJustifications.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect 2 | { 3 | /// 4 | /// Collection of commonly used justifications for suppressing code analysis warnings. 5 | /// 6 | public static partial class SuppressionJustifications 7 | { 8 | /// 9 | /// Analyzer doesn't respect JetBrains NotNullAttribute which already asserts non-nullability. 10 | /// 11 | public const string NotNullJetBrains = 12 | "Analyzer doesn't respect JetBrains NotNullAttribute which already asserts non-nullability."; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/ItemSelectedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments 4 | { 5 | 6 | public partial class ItemSelectedEventArgs : EventArgs 7 | { 8 | 9 | internal ItemSelectedEventArgs(Base selecteditem, bool automated = false) 10 | { 11 | this.SelectedItem = selecteditem; 12 | this.Automated = automated; 13 | } 14 | 15 | public Base SelectedItem { get; private set; } 16 | 17 | public bool Automated { get; private set; } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/MapEntitiesPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class MapEntitiesPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public MapEntitiesPacket() 10 | { 11 | } 12 | 13 | public MapEntitiesPacket(EntityPacket[] mapEntities) 14 | { 15 | MapEntities = mapEntities; 16 | } 17 | 18 | [Key(0)] 19 | public EntityPacket[] MapEntities { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PasswordResetResultPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class PasswordResetResultPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public PasswordResetResultPacket() 10 | { 11 | } 12 | 13 | public PasswordResetResultPacket(bool succeeded) 14 | { 15 | Succeeded = succeeded; 16 | } 17 | 18 | [Key(0)] 19 | public bool Succeeded { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Content/TextureType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Intersect.Client.Framework.Content 8 | { 9 | public enum TextureType 10 | { 11 | 12 | Tileset = 0, 13 | 14 | Item, 15 | 16 | Entity, 17 | 18 | Spell, 19 | 20 | Animation, 21 | 22 | Face, 23 | 24 | Image, 25 | 26 | Fog, 27 | 28 | Resource, 29 | 30 | Paperdoll, 31 | 32 | Gui, 33 | 34 | Misc, 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Intersect.Server/Metrics/Controllers/ApplicationMetricsController.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Metrics.Controllers 2 | { 3 | public partial class ApplicationMetricsController : MetricsController 4 | { 5 | private const string CONTEXT = "Application"; 6 | 7 | public Histogram Cpu { get; private set; } 8 | 9 | public Histogram Memory { get; private set; } 10 | 11 | public ApplicationMetricsController() : base(CONTEXT) 12 | { 13 | Cpu = new Histogram(nameof(Cpu), this); 14 | Memory = new Histogram(nameof(Memory), this); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/DeleteCharacterPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class DeleteCharacterPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public DeleteCharacterPacket() 11 | { 12 | } 13 | 14 | public DeleteCharacterPacket(Guid charId) 15 | { 16 | CharacterId = charId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid CharacterId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/SelectCharacterPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class SelectCharacterPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public SelectCharacterPacket() 11 | { 12 | } 13 | 14 | public SelectCharacterPacket(Guid charId) 15 | { 16 | CharacterId = charId; 17 | } 18 | 19 | [Key(0)] 20 | public Guid CharacterId { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ActionMsgPackets.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class ActionMsgPackets : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public ActionMsgPackets() 11 | { 12 | } 13 | 14 | public ActionMsgPackets(ActionMsgPacket[] packets) 15 | { 16 | Packets = packets; 17 | } 18 | 19 | [Key(0)] 20 | public ActionMsgPacket[] Packets { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/ClickedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments 4 | { 5 | 6 | public partial class ClickedEventArgs : EventArgs 7 | { 8 | 9 | internal ClickedEventArgs(int x, int y, bool down) 10 | { 11 | this.X = x; 12 | this.Y = y; 13 | this.MouseDown = down; 14 | } 15 | 16 | public int X { get; private set; } 17 | 18 | public int Y { get; private set; } 19 | 20 | public bool MouseDown { get; private set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Commands/NetDebugCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Core.CommandParsing; 2 | using Intersect.Server.Localization; 3 | using Intersect.Server.Networking.Helpers; 4 | 5 | namespace Intersect.Server.Core.Commands 6 | { 7 | 8 | internal sealed partial class NetDebugCommand : ServerCommand 9 | { 10 | 11 | public NetDebugCommand() : base(Strings.Commands.NetDebug) 12 | { 13 | } 14 | 15 | protected override void HandleValue(ServerContext context, ParserResult result) 16 | { 17 | NetDebug.GenerateDebugFile(); 18 | } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IMapGrid.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Client.Framework.Maps 4 | { 5 | public interface IMapGrid 6 | { 7 | 8 | /// 9 | /// The contents of the current map grid known to the client. 10 | /// 11 | Guid[,] Content { get; } 12 | 13 | /// 14 | /// The Width of the current map grid. 15 | /// 16 | long Width { get; } 17 | 18 | /// 19 | /// The Height of the current map grid. 20 | /// 21 | long Height { get; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/AdminActionPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Admin.Actions; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class AdminActionPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public AdminActionPacket() 11 | { 12 | 13 | } 14 | 15 | public AdminActionPacket(AdminAction action) 16 | { 17 | Action = action; 18 | } 19 | 20 | [Key(0)] 21 | public AdminAction Action { get; set; } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/CreateGameObjectPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Editor 5 | { 6 | [MessagePackObject] 7 | public partial class CreateGameObjectPacket : EditorPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public CreateGameObjectPacket() 11 | { 12 | } 13 | 14 | public CreateGameObjectPacket(GameObjectType type) 15 | { 16 | Type = type; 17 | } 18 | 19 | [Key(0)] 20 | public GameObjectType Type { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Server/Database/IDbContext.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Threading.Tasks; 3 | 4 | using Microsoft.EntityFrameworkCore.Infrastructure; 5 | 6 | namespace Intersect.Server.Database 7 | { 8 | public interface IDbContext 9 | { 10 | DatabaseFacade Database { get; } 11 | 12 | int SaveChanges(); 13 | 14 | int SaveChanges(bool acceptAllChangesOnSuccess); 15 | 16 | Task SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default); 17 | 18 | Task SaveChangesAsync(CancellationToken cancellationToken = default); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20210815153451_TickAnimationMigration.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | using System; 3 | 4 | namespace Intersect.Server.Migrations.Game 5 | { 6 | public partial class TickAnimationMigration : Migration 7 | { 8 | protected override void Up(MigrationBuilder migrationBuilder) 9 | { 10 | migrationBuilder.AddColumn( 11 | name: "TickAnimation", 12 | table: "Spells", 13 | defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), 14 | nullable: false); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/RequestPasswordResetPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class RequestPasswordResetPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public RequestPasswordResetPacket() 10 | { 11 | } 12 | 13 | public RequestPasswordResetPacket(string nameOrEmail) 14 | { 15 | NameOrEmail = nameOrEmail; 16 | } 17 | 18 | [Key(0)] 19 | public string NameOrEmail { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Editor/RequestOpenEditorPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Editor 5 | { 6 | [MessagePackObject] 7 | public partial class RequestOpenEditorPacket : EditorPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public RequestOpenEditorPacket() 11 | { 12 | } 13 | 14 | public RequestOpenEditorPacket(GameObjectType type) 15 | { 16 | Type = type; 17 | } 18 | 19 | [Key(0)] 20 | public GameObjectType Type { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Updater/UpdateFile.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Updater 2 | { 3 | public partial class UpdateFile 4 | { 5 | public string Path { get; set; } 6 | public string Hash { get; set; } 7 | public long Size { get; set; } 8 | public bool ClientIgnore { get; set; } 9 | public bool EditorIgnore { get; set; } 10 | 11 | public UpdateFile() 12 | { 13 | 14 | } 15 | 16 | public UpdateFile(string path, string hash, long size) 17 | { 18 | Path = path; 19 | Hash = hash; 20 | Size = size; 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Authentication/AuthenticationProvider.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Web.RestApi.Configuration; 2 | 3 | using Owin; 4 | 5 | namespace Intersect.Server.Web.RestApi.Authentication 6 | { 7 | 8 | internal abstract partial class AuthenticationProvider : IAppConfigurationProvider 9 | { 10 | 11 | protected AuthenticationProvider(ApiConfiguration configuration) 12 | { 13 | Configuration = configuration; 14 | } 15 | 16 | protected ApiConfiguration Configuration { get; } 17 | 18 | public abstract void Configure(IAppBuilder appBuilder); 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/LabelPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class LabelPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public LabelPacket() 10 | { 11 | } 12 | 13 | 14 | [Key(0)] 15 | public Color Color; 16 | [Key(1)] 17 | public string Label; 18 | 19 | public LabelPacket(string label, Color color) 20 | { 21 | Label = label; 22 | Color = color; 23 | } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/PlayAnimationPackets.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class PlayAnimationPackets : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public PlayAnimationPackets() 11 | { 12 | } 13 | 14 | public PlayAnimationPackets(PlayAnimationPacket[] packets) 15 | { 16 | Packets = packets; 17 | } 18 | 19 | [Key(0)] 20 | public PlayAnimationPacket[] Packets { get; set; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Security/ApiVisibilityAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Security 4 | { 5 | 6 | [AttributeUsage( 7 | AttributeTargets.Class | 8 | AttributeTargets.Interface | 9 | AttributeTargets.Struct | 10 | AttributeTargets.Field | 11 | AttributeTargets.Property 12 | )] 13 | public partial class ApiVisibilityAttribute : Attribute 14 | { 15 | 16 | public ApiVisibilityAttribute(ApiVisibility visibility) 17 | { 18 | Visibility = visibility; 19 | } 20 | 21 | public ApiVisibility Visibility { get; } 22 | 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/DepositItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class DepositItemPacket : SlotQuantityPacket 7 | { 8 | 9 | //Parameterless Constructor for MessagePack 10 | public DepositItemPacket() : base(0, 0) 11 | { 12 | } 13 | 14 | public DepositItemPacket(int slot, int quantity, int bankSlot = -1) : base(slot, quantity) 15 | { 16 | BankSlot = bankSlot; 17 | } 18 | 19 | [Key(0)] 20 | public int BankSlot { get; set; } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/WithdrawItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class WithdrawItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public WithdrawItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public WithdrawItemPacket(int slot, int quantity, int invSlot = -1) : base(slot, quantity) 14 | { 15 | InvSlot = invSlot; 16 | } 17 | 18 | [Key(0)] 19 | public int InvSlot { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Editor/Maps/MapGridItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Microsoft.Xna.Framework.Graphics; 4 | 5 | namespace Intersect.Editor.Maps 6 | { 7 | 8 | public partial class MapGridItem 9 | { 10 | 11 | public MapGridItem(Guid id, string name = "", int revision = 0) 12 | { 13 | MapId = id; 14 | this.Name = name; 15 | this.Revision = revision; 16 | } 17 | 18 | public string Name { get; set; } 19 | 20 | public int Revision { get; set; } 21 | 22 | public Guid MapId { get; set; } 23 | 24 | public Texture2D Tex { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/IApplicationContext`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Core 2 | { 3 | /// 4 | /// Declares the API surface for applications with specialized startup options types. 5 | /// 6 | /// specialized startup options type 7 | public interface IApplicationContext : IApplicationContext 8 | where TStartupOptions : ICommandLineOptions 9 | { 10 | /// 11 | /// The specialized options the application was started with. 12 | /// 13 | new TStartupOptions StartupOptions { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/StoreBagItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class StoreBagItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public StoreBagItemPacket() : base(0, 0) 10 | { 11 | } 12 | public StoreBagItemPacket(int invSlot, int quantity, int bagSlot) : base(invSlot, quantity) 13 | { 14 | BagSlot = bagSlot; 15 | } 16 | 17 | [Key(0)] 18 | public int BagSlot { get; set; } 19 | 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/BagPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class BagPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public BagPacket() 10 | { 11 | } 12 | 13 | public BagPacket(int slots, bool close) 14 | { 15 | Slots = slots; 16 | Close = close; 17 | } 18 | 19 | [Key(0)] 20 | public int Slots { get; set; } 21 | 22 | [Key(1)] 23 | public bool Close { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/ConnectionStatistics.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | public partial class ConnectionStatistics 4 | { 5 | public long Ping { get; set; } 6 | 7 | public long DroppedMessages { get; set; } 8 | 9 | public long ReceivedPackets { get; set; } 10 | 11 | public long ReceivedBytes { get; set; } 12 | 13 | public long ReceivedMessages { get; set; } 14 | 15 | public long ResentMessages { get; set; } 16 | 17 | public long SentPackets { get; set; } 18 | 19 | public long SentBytes { get; set; } 20 | 21 | public long SentMessages { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/BagUpdatePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class BagUpdatePacket : InventoryUpdatePacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public BagUpdatePacket() : base(0, Guid.Empty, 0, null, null) 11 | { 12 | } 13 | 14 | public BagUpdatePacket(int slot, Guid id, int quantity, Guid? bagId, ItemProperties properties) : base( 15 | slot, id, quantity, bagId, properties 16 | ) 17 | { 18 | } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect.Server/Database/Logging/ILoggingContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Database.Logging.Entities; 2 | 3 | using Microsoft.EntityFrameworkCore; 4 | 5 | using System; 6 | 7 | namespace Intersect.Server.Database.Logging 8 | { 9 | public interface ILoggingContext : IDbContext, IDisposable 10 | { 11 | DbSet RequestLogs { get; } 12 | 13 | DbSet UserActivityHistory { get; } 14 | 15 | DbSet ChatHistory { get; } 16 | 17 | DbSet TradeHistory { get; } 18 | 19 | DbSet GuildHistory { get; } 20 | 21 | void Seed(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Server/Web/RestApi/Types/DataPage.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | using Intersect.Server.Web.RestApi.Payloads; 4 | 5 | namespace Intersect.Server.Web.RestApi.Types 6 | { 7 | 8 | public partial struct DataPage 9 | { 10 | 11 | public int Total { get; set; } 12 | 13 | public int Page { get; set; } 14 | 15 | public int PageSize { get; set; } 16 | 17 | public int Count { get; set; } 18 | 19 | public IEnumerable Values { get; set; } 20 | 21 | public IEnumerable Sort { get; set; } 22 | 23 | public dynamic Extra { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ExperimentalFeatures/ExperimentalFlagAliasAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Core.ExperimentalFeatures 4 | { 5 | 6 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] 7 | public partial class ExperimentalFlagAliasAttribute : Attribute 8 | { 9 | 10 | public ExperimentalFlagAliasAttribute(string of) 11 | { 12 | if (string.IsNullOrWhiteSpace(of)) 13 | { 14 | throw new ArgumentNullException(nameof(of)); 15 | } 16 | 17 | Of = of; 18 | } 19 | 20 | public string Of { get; } 21 | 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ICommandLineOptions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Intersect.Core 4 | { 5 | /// 6 | /// Declares the common basic command line options for all applications. 7 | /// 8 | public interface ICommandLineOptions 9 | { 10 | /// 11 | /// The override working directory. 12 | /// 13 | string WorkingDirectory { get; } 14 | 15 | /// 16 | /// Additional plugin directories besides /working/directory/plugins. 17 | /// 18 | IEnumerable PluginDirectories { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Maps/MapNpcSpawn.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Enums; 4 | 5 | namespace Intersect.GameObjects.Maps 6 | { 7 | 8 | public partial class NpcSpawn 9 | { 10 | 11 | public NpcSpawnDirection Direction; 12 | 13 | public Guid NpcId; 14 | 15 | public int X; 16 | 17 | public int Y; 18 | 19 | public NpcSpawn() 20 | { 21 | } 22 | 23 | public NpcSpawn(NpcSpawn copy) 24 | { 25 | NpcId = copy.NpcId; 26 | X = copy.X; 27 | Y = copy.Y; 28 | Direction = copy.Direction; 29 | } 30 | 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/BankUpdatePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class BankUpdatePacket : InventoryUpdatePacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public BankUpdatePacket() : base(0, Guid.Empty, 0, null, null) 11 | { 12 | } 13 | 14 | public BankUpdatePacket(int slot, Guid id, int quantity, Guid? bagId, ItemProperties properties) : base( 15 | slot, id, quantity, bagId, properties 16 | ) 17 | { 18 | } 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect.Client/Entities/HotbarInstance.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Entities; 2 | using Intersect.Enums; 3 | using Newtonsoft.Json; 4 | using System; 5 | 6 | namespace Intersect.Client.Entities 7 | { 8 | public partial class HotbarInstance : IHotbarInstance 9 | { 10 | 11 | public Guid BagId { get; set; } = Guid.Empty; 12 | 13 | public Guid ItemOrSpellId { get; set; } = Guid.Empty; 14 | 15 | public int[] PreferredStatBuffs { get; set; } = new int[(int)Stat.StatCount]; 16 | 17 | public void Load(string data) 18 | { 19 | JsonConvert.PopulateObject(data, this); 20 | } 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Utilities/HeaderHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Text.RegularExpressions; 2 | 3 | namespace Intersect.Server.Web.Utilities 4 | { 5 | 6 | public static partial class HeaderHelper 7 | { 8 | 9 | public static readonly Regex PatternAuthorizationBearer = new Regex( 10 | "^bearer .+$", RegexOptions.IgnoreCase 11 | ); 12 | 13 | public static bool IsValidAuthorizationBearerHeader(string authorizationHeader) 14 | { 15 | return !string.IsNullOrWhiteSpace(authorizationHeader) && 16 | PatternAuthorizationBearer.IsMatch(authorizationHeader); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ExperimentalFeatures/CommonExperiments.Flags.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Core.ExperimentalFeatures 4 | { 5 | 6 | public abstract partial class CommonExperiments where TExperiments : CommonExperiments 7 | { 8 | 9 | [JsonProperty(DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)] 10 | public IExperimentalFlag All { get; protected set; } = new ExperimentalFlag(nameof(All), NamespaceId); 11 | 12 | [JsonIgnore, ExperimentalFlagAlias(nameof(All))] 13 | public IExperimentalFlag ExperimentalFeatures { get; protected set; } 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/KickAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class KickAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public KickAction() 11 | { 12 | 13 | } 14 | 15 | public KickAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.Kick; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/KillAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class KillAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public KillAction() 11 | { 12 | 13 | } 14 | 15 | public KillAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.Kill; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/RetrieveBagItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class RetrieveBagItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public RetrieveBagItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public RetrieveBagItemPacket(int bagSlot, int quantity, int invSlot) : base(bagSlot, quantity) 14 | { 15 | InventorySlot = invSlot; 16 | } 17 | 18 | [Key(4)] 19 | public int InventorySlot { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ItemCooldownPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace Intersect.Network.Packets.Server 6 | { 7 | [MessagePackObject] 8 | public partial class ItemCooldownPacket : IntersectPacket 9 | { 10 | //Parameterless Constructor for MessagePack 11 | public ItemCooldownPacket() 12 | { 13 | } 14 | 15 | 16 | [Key(0)] 17 | public Dictionary ItemCds; 18 | 19 | public ItemCooldownPacket(Dictionary itemCds) 20 | { 21 | ItemCds = itemCds; 22 | } 23 | 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/Interfaces/ICommandLineHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Plugins.Interfaces 2 | { 3 | /// 4 | /// Defines the API for accessing command line arguments. 5 | /// 6 | public interface ICommandLineHelper 7 | { 8 | /// 9 | /// Parses the command line arguments used to start the application into an instance of the provided type. 10 | /// 11 | /// a custom arguments type 12 | /// an instance of if valid 13 | TArguments ParseArguments(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IAnimation.cs: -------------------------------------------------------------------------------- 1 | using Intersect.GameObjects; 2 | using System; 3 | using Intersect.Enums; 4 | 5 | namespace Intersect.Client.Framework.Entities 6 | { 7 | public interface IAnimation : IDisposable 8 | { 9 | bool AutoRotate { get; set; } 10 | bool Hidden { get; set; } 11 | bool InfiniteLoop { get; set; } 12 | AnimationBase MyBase { get; set; } 13 | Point Size { get; } 14 | 15 | void Hide(); 16 | void SetDir(Direction dir); 17 | void SetPosition(float worldX, float worldY, int mapx, int mapy, Guid mapId, Direction dir, int z = 0); 18 | void Show(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20190306224847_BoundSpells.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | 6 | public partial class BoundSpells : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "Bound", table: "Spells", nullable: false, defaultValue: false); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "Bound", table: "Spells"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/UnbanAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class UnbanAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public UnbanAction() 11 | { 12 | 13 | } 14 | 15 | public UnbanAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.UnBan; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ShopPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class ShopPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public ShopPacket() 10 | { 11 | } 12 | 13 | public ShopPacket(string shopData, bool close) 14 | { 15 | ShopData = shopData; 16 | Close = close; 17 | } 18 | 19 | [Key(0)] 20 | public string ShopData { get; set; } 21 | 22 | [Key(1)] 23 | public bool Close { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/SpellCooldownPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | using System.Collections.Generic; 4 | 5 | namespace Intersect.Network.Packets.Server 6 | { 7 | [MessagePackObject] 8 | public partial class SpellCooldownPacket : IntersectPacket 9 | { 10 | //Parameterless Constructor for MessagePack 11 | public SpellCooldownPacket() 12 | { 13 | } 14 | 15 | 16 | [Key(0)] 17 | public Dictionary SpellCds; 18 | 19 | public SpellCooldownPacket(Dictionary spellCds) 20 | { 21 | SpellCds = spellCds; 22 | } 23 | 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/UnmuteAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class UnmuteAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public UnmuteAction() 11 | { 12 | 13 | } 14 | 15 | public UnmuteAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.UnMute; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Config/BankOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Intersect.Config 8 | { 9 | public partial class BankOptions 10 | { 11 | /// 12 | /// The intersect default maximum bank slot value a guild OR player could ever have 13 | /// 14 | public const int DefaultMaxSlots = 500; 15 | 16 | /// 17 | /// The max amount of bank slots possible, player, guild, or otherwise. 18 | /// 19 | public int MaxSlots { get; set; } = DefaultMaxSlots; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/ChatMsgPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class ChatMsgPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public ChatMsgPacket() 10 | { 11 | } 12 | 13 | public ChatMsgPacket(string msg, byte channel) 14 | { 15 | Message = msg; 16 | Channel = channel; 17 | } 18 | 19 | [Key(0)] 20 | public string Message { get; set; } 21 | 22 | [Key(1)] 23 | public byte Channel { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/20190804133420_Custom_Player_Name_Colors.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations 4 | { 5 | 6 | public partial class Custom_Player_Name_Colors : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "NameColor", table: "Players", nullable: true); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "NameColor", table: "Players"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/BumpPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class BumpPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public BumpPacket() 11 | { 12 | } 13 | 14 | public BumpPacket(Guid mapId, Guid eventId) 15 | { 16 | MapId = mapId; 17 | EventId = eventId; 18 | } 19 | 20 | [Key(0)] 21 | public Guid MapId { get; set; } 22 | 23 | [Key(1)] 24 | public Guid EventId { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/WarpMeToAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class WarpMeToAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public WarpMeToAction() 11 | { 12 | 13 | } 14 | 15 | public WarpMeToAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.WarpMeTo; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/WarpToMeAction.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Admin.Actions 5 | { 6 | [MessagePackObject] 7 | public partial class WarpToMeAction : AdminAction 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public WarpToMeAction() 11 | { 12 | 13 | } 14 | 15 | public WarpToMeAction(string name) 16 | { 17 | Name = name; 18 | } 19 | 20 | [Key(1)] 21 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.WarpToMe; 22 | 23 | [Key(2)] 24 | public string Name { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Commands/MakePublicCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Core.CommandParsing; 2 | using Intersect.Server.Localization; 3 | 4 | namespace Intersect.Server.Core.Commands 5 | { 6 | 7 | internal sealed partial class MakePublicCommand : ServerCommand 8 | { 9 | 10 | public MakePublicCommand() : base(Strings.Commands.MakePublic) 11 | { 12 | } 13 | 14 | protected override void HandleValue(ServerContext context, ParserResult result) 15 | { 16 | Console.WriteLine($@" {Strings.Commands.madepublic}"); 17 | Options.AdminOnly = false; 18 | Options.SaveToDisk(); 19 | } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/LoginPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class LoginPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public LoginPacket() 10 | { 11 | } 12 | 13 | public LoginPacket(string username, string password) 14 | { 15 | Username = username; 16 | Password = password; 17 | } 18 | 19 | [Key(0)] 20 | public string Username { get; set; } 21 | 22 | [Key(1)] 23 | public string Password { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/UseItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class UseItemPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public UseItemPacket() 11 | { 12 | } 13 | 14 | public UseItemPacket(int slot, Guid targetId) 15 | { 16 | Slot = slot; 17 | TargetId = targetId; 18 | } 19 | 20 | [Key(0)] 21 | public int Slot { get; set; } 22 | 23 | [Key(1)] 24 | public Guid TargetId { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/ILabel.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Graphics; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Control 4 | { 5 | public interface ILabel : IColorableText 6 | { 7 | Pos Alignment { get; set; } 8 | 9 | bool AutoSizeToContents { get; set; } 10 | 11 | GameFont Font { get; set; } 12 | 13 | string FontName { get; set; } 14 | 15 | int FontSize { get; set; } 16 | 17 | Color TextColor { get; set; } 18 | 19 | Color TextColorOverride { get; set; } 20 | 21 | Padding TextPadding { get; set; } 22 | 23 | void SizeToContents(); 24 | 25 | void UpdateColors(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Intersect.Server/Core/Commands/MakePrivateCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Core.CommandParsing; 2 | using Intersect.Server.Localization; 3 | 4 | namespace Intersect.Server.Core.Commands 5 | { 6 | 7 | internal sealed partial class MakePrivateCommand : ServerCommand 8 | { 9 | 10 | public MakePrivateCommand() : base(Strings.Commands.MakePrivate) 11 | { 12 | } 13 | 14 | protected override void HandleValue(ServerContext context, ParserResult result) 15 | { 16 | Console.WriteLine($@" {Strings.Commands.madeprivate}"); 17 | Options.AdminOnly = true; 18 | Options.SaveToDisk(); 19 | } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20190303234637_SpellUpgrades_OnHit_Shields.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | 6 | public partial class SpellUpgrades_OnHit_Shields : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "OnHit", table: "Spells", nullable: false, defaultValue: 0); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "OnHit", table: "Spells"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20190530000628_AddingCraftingQuantities.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | 6 | public partial class AddingCraftingQuantities : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "Quantity", table: "Crafts", nullable: false, defaultValue: 0); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "Quantity", table: "Crafts"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.ClientVB/ExamplePluginConfiguration.vb: -------------------------------------------------------------------------------- 1 | Imports Intersect.Plugins 2 | Imports Newtonsoft.Json 3 | 4 | Namespace Intersect.Examples.ClientPlugin 5 | ''' 6 | ''' Example configuration class for a plugin. 7 | ''' 8 | Friend Class ExamplePluginConfiguration 9 | Inherits PluginConfiguration 10 | 11 | ''' 12 | ''' Link to discord invite that should open when discord button is clicked 13 | ''' 14 | 15 | Public Property DiscordInviteUrl As String = "https://discord.gg/fAwDR5v" 16 | End Class 17 | End Namespace 18 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Maps/MapList/MapListFolder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Collections; 4 | 5 | namespace Intersect.GameObjects.Maps.MapList 6 | { 7 | 8 | public partial class MapListFolder : MapListItem 9 | { 10 | 11 | public MapList Children = new MapList(); 12 | 13 | public Guid FolderId = Guid.Empty; 14 | 15 | public MapListFolder() : base() 16 | { 17 | Name = "New Folder"; 18 | Type = 0; 19 | } 20 | 21 | public void PostLoad(DatabaseObjectLookup gameMaps, bool isServer = true) 22 | { 23 | Children.PostLoad(gameMaps, isServer, false); 24 | } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/UpdateFriendsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client 4 | { 5 | [MessagePackObject] 6 | public partial class UpdateFriendsPacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public UpdateFriendsPacket() 10 | { 11 | } 12 | 13 | public UpdateFriendsPacket(string name, bool adding) 14 | { 15 | Name = name; 16 | Adding = adding; 17 | } 18 | 19 | [Key(0)] 20 | public string Name { get; set; } 21 | 22 | [Key(1)] 23 | public bool Adding { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/UseSpellPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class UseSpellPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public UseSpellPacket() 11 | { 12 | } 13 | 14 | public UseSpellPacket(int slot, Guid targetId) 15 | { 16 | Slot = slot; 17 | TargetId = targetId; 18 | } 19 | 20 | [Key(0)] 21 | public int Slot { get; set; } 22 | 23 | [Key(1)] 24 | public Guid TargetId { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ErrorMessagePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class ErrorMessagePacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public ErrorMessagePacket() 10 | { 11 | } 12 | 13 | public ErrorMessagePacket(string header, string error) 14 | { 15 | Header = header; 16 | Error = error; 17 | } 18 | 19 | [Key(0)] 20 | public string Header { get; set; } 21 | 22 | [Key(1)] 23 | public string Error { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Plugins/IPluginBootstrapContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Interfaces; 2 | 3 | namespace Intersect.Plugins 4 | { 5 | /// 6 | /// Defines the API of the plugin context during application bootstrapping. 7 | /// 8 | public interface IPluginBootstrapContext : IPluginBaseContext 9 | { 10 | /// 11 | /// The of the current plugin. 12 | /// 13 | ICommandLineHelper CommandLine { get; } 14 | 15 | /// 16 | /// The of the current plugin. 17 | /// 18 | IPacketHelper Packet { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Core/CommandParsing/ParserContext.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Immutable; 2 | 3 | using Intersect.Server.Core.CommandParsing.Arguments; 4 | using Intersect.Server.Core.CommandParsing.Commands; 5 | using Intersect.Server.Core.CommandParsing.Errors; 6 | 7 | namespace Intersect.Server.Core.CommandParsing 8 | { 9 | 10 | public partial struct ParserContext 11 | { 12 | 13 | public ICommand Command { get; set; } 14 | 15 | public ImmutableList Tokens { get; set; } 16 | 17 | public ImmutableList Errors { get; set; } 18 | 19 | public ImmutableDictionary Parsed { get; set; } 20 | 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.Client/ExamplePluginConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | 3 | using Newtonsoft.Json; 4 | 5 | namespace Intersect.Examples.Plugin.Client 6 | { 7 | 8 | /// 9 | /// Example configuration class for a plugin. 10 | /// 11 | internal class ExamplePluginConfiguration : PluginConfiguration 12 | { 13 | 14 | /// 15 | /// Link to discord invite that should open when discord button is clicked 16 | /// 17 | [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] 18 | public string DiscordInviteUrl { get; set; } = "https://discord.gg/Z6fHThedPK"; 19 | 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Client/CraftItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Client 5 | { 6 | [MessagePackObject] 7 | public partial class CraftItemPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public CraftItemPacket() 11 | { 12 | } 13 | 14 | public CraftItemPacket(Guid craftId, int count) 15 | { 16 | CraftId = craftId; 17 | Count = count; 18 | } 19 | 20 | [Key(0)] 21 | public Guid CraftId { get; set; } 22 | 23 | [Key(1)] 24 | public int Count { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/SpellUpdatePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class SpellUpdatePacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public SpellUpdatePacket() 11 | { 12 | } 13 | 14 | public SpellUpdatePacket(int slot, Guid spellId) 15 | { 16 | Slot = slot; 17 | SpellId = spellId; 18 | } 19 | 20 | [Key(0)] 21 | public int Slot { get; set; } 22 | 23 | [Key(1)] 24 | public Guid SpellId { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Security/ApiVisibility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Security 4 | { 5 | 6 | [Flags] 7 | public enum ApiVisibility : uint 8 | { 9 | 10 | /// 11 | /// Anyone has access. 12 | /// 13 | Public = 0xFFFFFFFF, 14 | 15 | /// 16 | /// Privileged users have access. 17 | /// 18 | Restricted = 0x2, 19 | 20 | /// 21 | /// Data owners have access. 22 | /// 23 | Private = 0x1, 24 | 25 | /// 26 | /// No users have access. 27 | /// 28 | Hidden = 0 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20190615010038_AddingExpOveridesToClasses.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | 6 | public partial class AddingExpOveridesToClasses : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "ExperienceOverrides", table: "Classes", nullable: true); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "ExperienceOverrides", table: "Classes"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Admin/Actions/WarpToMapAction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Enums; 4 | using MessagePack; 5 | 6 | namespace Intersect.Admin.Actions 7 | { 8 | [MessagePackObject] 9 | public partial class WarpToMapAction : AdminAction 10 | { 11 | //Parameterless Constructor for MessagePack 12 | public WarpToMapAction() 13 | { 14 | 15 | } 16 | 17 | public WarpToMapAction(Guid mapId) 18 | { 19 | MapId = mapId; 20 | } 21 | 22 | [Key(1)] 23 | public override Enums.AdminAction Action { get; } = Enums.AdminAction.WarpTo; 24 | 25 | [Key(2)] 26 | public Guid MapId { get; set; } 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/SpellCastFailureReason.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Intersect.Enums 8 | { 9 | public enum SpellCastFailureReason 10 | { 11 | None, 12 | 13 | InvalidSpell, 14 | 15 | InsufficientHP, 16 | 17 | InsufficientMP, 18 | 19 | InvalidTarget, 20 | 21 | Silenced, 22 | 23 | Stunned, 24 | 25 | Asleep, 26 | 27 | InvalidProjectile, 28 | 29 | InsufficientItems, 30 | 31 | Snared, 32 | 33 | OutOfRange, 34 | 35 | ConditionsNotMet, 36 | 37 | OnCooldown 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/CraftingTablePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class CraftingTablePacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public CraftingTablePacket() 10 | { 11 | } 12 | 13 | public CraftingTablePacket(string tableData, bool close) 14 | { 15 | TableData = tableData; 16 | Close = close; 17 | } 18 | 19 | [Key(0)] 20 | public string TableData { get; set; } 21 | 22 | [Key(1)] 23 | public bool Close { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/ExperiencePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server 4 | { 5 | [MessagePackObject] 6 | public partial class ExperiencePacket : IntersectPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public ExperiencePacket() 10 | { 11 | } 12 | 13 | public ExperiencePacket(long exp, long tnl) 14 | { 15 | Experience = exp; 16 | ExperienceToNextLevel = tnl; 17 | } 18 | 19 | [Key(0)] 20 | public long Experience { get; set; } 21 | 22 | [Key(1)] 23 | public long ExperienceToNextLevel { get; set; } 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Packets/Server/SpellCastPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | using System; 3 | 4 | namespace Intersect.Network.Packets.Server 5 | { 6 | [MessagePackObject] 7 | public partial class SpellCastPacket : IntersectPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public SpellCastPacket() 11 | { 12 | } 13 | 14 | public SpellCastPacket(Guid entityId, Guid spellId) 15 | { 16 | EntityId = entityId; 17 | SpellId = spellId; 18 | } 19 | 20 | [Key(0)] 21 | public Guid EntityId { get; set; } 22 | 23 | [Key(1)] 24 | public Guid SpellId { get; set; } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Data/ITableDataProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Data 2 | { 3 | public partial class TableDataChangedEventArgs : RowDataChangedEventArgs 4 | { 5 | public TableDataChangedEventArgs(int row, int column, object oldValue, object newValue) 6 | : base(column, oldValue, newValue) 7 | { 8 | Row = row; 9 | } 10 | 11 | public int Row { get; } 12 | } 13 | 14 | public delegate void TableDataChangedEventHandler(object sender, TableDataChangedEventArgs args); 15 | 16 | public interface ITableDataProvider 17 | { 18 | event TableDataChangedEventHandler DataChanged; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Data/ITableRowDataProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Data 2 | { 3 | public partial class RowDataChangedEventArgs : CellDataChangedEventArgs 4 | { 5 | public RowDataChangedEventArgs(int column, object oldValue, object newValue) 6 | : base(oldValue, newValue) 7 | { 8 | Column = column; 9 | } 10 | 11 | public int Column { get; } 12 | } 13 | 14 | public delegate void TableRowDataChangedEventHandler(object sender, RowDataChangedEventArgs args); 15 | 16 | public interface ITableRowDataProvider 17 | { 18 | event TableRowDataChangedEventHandler DataChanged; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Server/Migrations/Game/20190726203949_SpellUpgrades_Percentage_Buffs.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore.Migrations; 2 | 3 | namespace Intersect.Server.Migrations.Game 4 | { 5 | 6 | public partial class SpellUpgrades_Percentage_Buffs : Migration 7 | { 8 | 9 | protected override void Up(MigrationBuilder migrationBuilder) 10 | { 11 | migrationBuilder.AddColumn(name: "PercentageStatDiff", table: "Spells", nullable: true); 12 | } 13 | 14 | protected override void Down(MigrationBuilder migrationBuilder) 15 | { 16 | migrationBuilder.DropColumn(name: "PercentageStatDiff", table: "Spells"); 17 | } 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/Delegates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network 2 | { 3 | public delegate bool HandlePacket(TPacketSender packetSender, TPacket packet) 4 | where TPacketSender : IPacketSender where TPacket : IPacket; 5 | 6 | public delegate void HandlePacketVoid(TPacketSender packetSender, TPacket packet) 7 | where TPacketSender : IPacketSender where TPacket : IPacket; 8 | 9 | public delegate bool HandlePacketGeneric(IPacketSender packetSender, IPacket packet); 10 | 11 | public delegate bool HandlePacket(IConnection connection, IPacket packet); 12 | 13 | public delegate bool ShouldProcessPacket(IConnection connection, long pSize); 14 | } 15 | -------------------------------------------------------------------------------- /Intersect (Core)/Config/SmtpSettings.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Config 2 | { 3 | 4 | public partial class SmtpSettings 5 | { 6 | 7 | public string FromAddress { get; set; } = ""; 8 | 9 | public string FromName { get; set; } = ""; 10 | 11 | public string Host { get; set; } = ""; 12 | 13 | public int Port { get; set; } = 587; 14 | 15 | public bool UseSsl { get; set; } = true; 16 | 17 | public string Username { get; set; } = ""; 18 | 19 | public string Password { get; set; } = ""; 20 | 21 | public bool IsValid() 22 | { 23 | return !string.IsNullOrEmpty(FromAddress) && !string.IsNullOrEmpty(Host); 24 | } 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Intersect (Core)/Factories/IFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Factories 2 | { 3 | /// 4 | /// Defines the interface for a factory class. 5 | /// 6 | /// type of the created instances 7 | public interface IFactory 8 | { 9 | /// 10 | /// Creates a not-null instance of given the input . 11 | /// 12 | /// the optional arguments used in creating a 13 | /// a not-null 14 | TValue Create(params object[] args); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/Annotations/EditorEnumAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.GameObjects.Annotations 4 | { 5 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] 6 | public class EditorEnumAttribute : EditorDisplayAttribute 7 | { 8 | public EditorEnumAttribute(Type enumType) 9 | { 10 | EnumType = enumType ?? throw new ArgumentNullException(nameof(enumType)); 11 | 12 | if (!enumType.IsEnum) 13 | { 14 | throw new ArgumentException($"{enumType.FullName} is not a enum type.", nameof(enumType)); 15 | } 16 | } 17 | 18 | public Type EnumType { get; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Intersect (Core)/GameObjects/TilesetBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using Intersect.Models; 4 | 5 | using Newtonsoft.Json; 6 | 7 | namespace Intersect.GameObjects 8 | { 9 | 10 | public partial class TilesetBase : DatabaseObject 11 | { 12 | 13 | [JsonConstructor] 14 | public TilesetBase(Guid id) : base(id) 15 | { 16 | Name = ""; 17 | } 18 | 19 | //Ef Parameterless Constructor 20 | public TilesetBase() 21 | { 22 | Name = ""; 23 | } 24 | 25 | public new string Name 26 | { 27 | get => base.Name; 28 | set => base.Name = value?.Trim().ToLower(); 29 | } 30 | 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/ExperimentalFeatures/IExperimentalFlag.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Intersect.Core.ExperimentalFeatures 4 | { 5 | 6 | public interface IExperimentalFlag : IEquatable 7 | { 8 | 9 | Guid Guid { get; } 10 | 11 | string Name { get; } 12 | 13 | bool Enabled { get; } 14 | 15 | /// 16 | /// Creates a clone of this with the given enablement. 17 | /// 18 | /// the new enablement state 19 | /// a clone of this flag with the new enablement state 20 | IExperimentalFlag With(bool enabled); 21 | 22 | } 23 | 24 | } 25 | --------------------------------------------------------------------------------