├── MIMWebClient ├── Error │ ├── error.txt │ └── Error.cs ├── Core │ ├── Item │ │ ├── itemReadMe.txt │ │ ├── ArmourRating.cs │ │ ├── Action.cs │ │ ├── Actions │ │ │ └── use.cs │ │ ├── Stats.cs │ │ └── Description.cs │ ├── World │ │ ├── Anker │ │ │ └── GoblinHideoutMap.txt │ │ └── Items │ │ │ ├── Weapons │ │ │ ├── Mob │ │ │ │ └── mobWeapons.cs │ │ │ └── Flail │ │ │ │ └── FlailBasic.cs │ │ │ ├── MiscEQ │ │ │ ├── Materials │ │ │ │ └── Materials.cs │ │ │ └── Containers │ │ │ │ └── Containers.cs │ │ │ ├── Armour │ │ │ ├── LightArmour │ │ │ │ ├── Clothing │ │ │ │ │ ├── Arms │ │ │ │ │ │ └── ClothingArms.cs │ │ │ │ │ ├── Feet │ │ │ │ │ │ └── ClothingFeet.cs │ │ │ │ │ ├── Head │ │ │ │ │ │ └── ClothingHead.cs │ │ │ │ │ └── Hands │ │ │ │ │ │ └── ClothingHands.cs │ │ │ │ ├── Padded │ │ │ │ │ ├── Arms │ │ │ │ │ │ └── PaddedSleeves.cs │ │ │ │ │ ├── Legs │ │ │ │ │ │ └── PaddedLegsBasic.cs │ │ │ │ │ └── Hands │ │ │ │ │ │ └── PaddedHandsBasic.cs │ │ │ │ └── Leather │ │ │ │ │ └── Waist │ │ │ │ │ └── LeatherBootBasic.cs │ │ │ └── MediumArmour │ │ │ │ └── ScaleMail │ │ │ │ ├── Head │ │ │ │ └── ScalemailHead.cs │ │ │ │ ├── Feet │ │ │ │ └── ScalemailFeet.cs │ │ │ │ ├── Legs │ │ │ │ └── ScalemailLegs.cs │ │ │ │ ├── Arms │ │ │ │ └── ScalemailArms.cs │ │ │ │ ├── Hands │ │ │ │ └── ScalemailHands.cs │ │ │ │ └── Body │ │ │ │ └── ScaleMailBody.cs │ │ │ └── Consumables │ │ │ └── Drinks │ │ │ └── magicalSpring.cs │ ├── PlayerSetup │ │ ├── Data │ │ │ └── Img │ │ │ │ └── RaceImg │ │ │ │ ├── elf.jpg │ │ │ │ ├── dwarf.jpg │ │ │ │ ├── human.jpg │ │ │ │ └── darkElf.jpg │ │ └── PlayerLocation.cs │ ├── Events │ │ ├── Cooking.cs │ │ ├── FindNth.cs │ │ ├── Fight │ │ │ └── PlayerStatus.cs │ │ ├── FindFirstAndLast.cs │ │ ├── Emote.cs │ │ └── FindWhere.cs │ ├── Mob │ │ ├── Events │ │ │ ├── Aggro.cs │ │ │ ├── Welcome.cs │ │ │ └── Greeting.cs │ │ ├── Responses.cs │ │ └── DialogTree.cs │ ├── Player │ │ ├── Spells.cs │ │ ├── Recall.cs │ │ ├── Death.cs │ │ ├── Inventory.cs │ │ ├── Prompt.cs │ │ ├── Skills │ │ │ ├── ShortBlades.cs │ │ │ ├── HandtoHand.cs │ │ │ ├── Tumble.cs │ │ │ ├── Axe.cs │ │ │ ├── Dodge.cs │ │ │ ├── Flail.cs │ │ │ ├── Parry.cs │ │ │ └── Staff.cs │ │ ├── Classes │ │ │ └── Reclasses │ │ │ │ └── Ranger.cs │ │ └── Races │ │ │ ├── Elf.cs │ │ │ └── PlayerRace.cs │ ├── Room │ │ ├── Keyword.cs │ │ ├── Coordinates.cs │ │ ├── RoomObject.cs │ │ └── Exit.cs │ ├── AI │ │ └── Node.cs │ ├── Util │ │ ├── DateTimeExtensions.cs │ │ └── TruncateString.cs │ ├── Data.cs │ └── Loging │ │ └── Logging.cs ├── UI │ ├── Css │ │ ├── Lib │ │ │ ├── RPGAwesome │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── fonts │ │ │ │ │ ├── rpgawesome-webfont.eot │ │ │ │ │ ├── rpgawesome-webfont.ttf │ │ │ │ │ └── rpgawesome-webfont.woff │ │ │ │ ├── .gitignore │ │ │ │ ├── scss │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ ├── _core.scss │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ ├── _larger.scss │ │ │ │ │ ├── _list.scss │ │ │ │ │ ├── rpg-awesome.scss │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ ├── _spinning.scss │ │ │ │ │ ├── _path.scss │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ └── _mixins.scss │ │ │ │ ├── package.json │ │ │ │ ├── bower.json │ │ │ │ ├── .versions │ │ │ │ └── LICENSE.md │ │ │ ├── bootstrap │ │ │ │ ├── mixins │ │ │ │ │ ├── _center-block.scss │ │ │ │ │ ├── _opacity.scss │ │ │ │ │ ├── _size.scss │ │ │ │ │ ├── _text-overflow.scss │ │ │ │ │ ├── _labels.scss │ │ │ │ │ ├── _resize.scss │ │ │ │ │ ├── _progress-bar.scss │ │ │ │ │ ├── _text-emphasis.scss │ │ │ │ │ ├── _reset-filter.scss │ │ │ │ │ ├── _nav-divider.scss │ │ │ │ │ ├── _background-variant.scss │ │ │ │ │ ├── _alerts.scss │ │ │ │ │ ├── _tab-focus.scss │ │ │ │ │ ├── _nav-vertical-align.scss │ │ │ │ │ ├── _reset-text.scss │ │ │ │ │ ├── _border-radius.scss │ │ │ │ │ ├── _pagination.scss │ │ │ │ │ ├── _responsive-visibility.scss │ │ │ │ │ ├── _panels.scss │ │ │ │ │ ├── _hide-text.scss │ │ │ │ │ ├── _clearfix.scss │ │ │ │ │ ├── _list-group.scss │ │ │ │ │ ├── _table-row.scss │ │ │ │ │ └── _image.scss │ │ │ │ ├── _wells.scss │ │ │ │ ├── _responsive-embed.scss │ │ │ │ ├── _breadcrumbs.scss │ │ │ │ ├── _close.scss │ │ │ │ ├── _component-animations.scss │ │ │ │ ├── _utilities.scss │ │ │ │ ├── _thumbnails.scss │ │ │ │ ├── _pager.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _media.scss │ │ │ │ ├── _jumbotron.scss │ │ │ │ ├── _labels.scss │ │ │ │ └── _badges.scss │ │ │ ├── _bootstrap-sprockets.scss │ │ │ ├── _bootstrap-compass.scss │ │ │ └── _bootstrap-mincer.scss │ │ └── Sass │ │ │ ├── builder.scss │ │ │ └── fonts │ │ │ ├── slick.eot │ │ │ ├── slick.ttf │ │ │ └── slick.woff │ └── img │ │ ├── dwarf.jpg │ │ ├── elf.jpg │ │ ├── human.jpg │ │ ├── compass.png │ │ ├── darkElf.jpg │ │ ├── elfPort.jpg │ │ ├── humanPort.jpg │ │ └── humanPortLarge.jpg ├── error.txt ├── Views │ ├── _ViewStart.cshtml │ ├── Home │ │ ├── About.cshtml │ │ ├── Contact.cshtml │ │ └── Partial │ │ │ └── CharacterCreation │ │ │ ├── ClassSelection.cshtml │ │ │ └── RaceSelection.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ └── Room │ │ ├── Details.cshtml │ │ └── Index.cshtml ├── MyData.db ├── favicon.ico ├── Global.asax ├── Scripts │ └── _references.js ├── compilerconfig.json ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── Models │ ├── Admin │ │ ├── Mob │ │ │ ├── AddMob.cs │ │ │ ├── ViewMob.cs │ │ │ └── UpdateMob.cs │ │ └── Object │ │ │ ├── AddObject.cs │ │ │ ├── UpdateObject.cs │ │ │ └── ViewObject.cs │ └── Account.cs ├── ViewModels │ └── RoomModel.cs ├── App_Start │ ├── FilterConfig.cs │ ├── BundleConfig.cs │ └── RouteConfig.cs ├── LICENSE ├── compilerconfig.json.defaults ├── Global.asax.cs ├── app.config ├── Web.Debug.config ├── Web.Release.config └── Properties │ └── AssemblyInfo.cs ├── MIMDashboard ├── Views │ ├── _ViewStart.cshtml │ ├── Shared │ │ └── Error.cshtml │ └── Home │ │ └── Index.cshtml ├── favicon.ico ├── Global.asax ├── Areas │ └── HelpPage │ │ ├── Views │ │ ├── Help │ │ │ ├── DisplayTemplates │ │ │ │ ├── ImageSample.cshtml │ │ │ │ ├── TextSample.cshtml │ │ │ │ ├── SimpleTypeModelDescription.cshtml │ │ │ │ ├── ComplexTypeModelDescription.cshtml │ │ │ │ ├── CollectionModelDescription.cshtml │ │ │ │ ├── InvalidSample.cshtml │ │ │ │ ├── DictionaryModelDescription.cshtml │ │ │ │ ├── KeyValuePairModelDescription.cshtml │ │ │ │ ├── EnumTypeModelDescription.cshtml │ │ │ │ ├── Samples.cshtml │ │ │ │ ├── ModelDescriptionLink.cshtml │ │ │ │ └── ApiGroup.cshtml │ │ │ ├── ResourceModel.cshtml │ │ │ ├── Api.cshtml │ │ │ └── Index.cshtml │ │ ├── _ViewStart.cshtml │ │ └── Shared │ │ │ └── _Layout.cshtml │ │ ├── ModelDescriptions │ │ ├── SimpleTypeModelDescription.cs │ │ ├── DictionaryModelDescription.cs │ │ ├── CollectionModelDescription.cs │ │ ├── ParameterAnnotation.cs │ │ ├── EnumValueDescription.cs │ │ ├── KeyValuePairModelDescription.cs │ │ ├── IModelDocumentationProvider.cs │ │ ├── ModelDescription.cs │ │ ├── ComplexTypeModelDescription.cs │ │ ├── EnumTypeModelDescription.cs │ │ ├── ParameterDescription.cs │ │ ├── ModelNameAttribute.cs │ │ └── ModelNameHelper.cs │ │ ├── SampleGeneration │ │ ├── SampleDirection.cs │ │ ├── TextSample.cs │ │ ├── InvalidSample.cs │ │ └── ImageSample.cs │ │ └── HelpPageAreaRegistration.cs ├── Client │ ├── Sass │ │ └── style.scss │ ├── index.html │ ├── Components │ │ ├── PlayerStats │ │ │ ├── reducers │ │ │ │ ├── player.index.tsx │ │ │ │ └── player.items.tsx │ │ │ ├── store │ │ │ │ └── configureStore.tsx │ │ │ └── actions │ │ │ │ └── player.action.tsx │ │ ├── fake.json │ │ └── Dashboard.tsx │ └── index.js ├── .babelrc ├── App_Start │ ├── FilterConfig.cs │ ├── RouteConfig.cs │ ├── WebApiConfig.cs │ └── BundleConfig.cs ├── Controllers │ ├── HomeController.cs │ ├── DashboardController.cs │ └── ValuesController.cs ├── Startup.cs ├── tsconfig.json ├── Models │ ├── Core │ │ ├── PlayerStats.cs │ │ └── Db.cs │ ├── AccountViewModels.cs │ └── IdentityModels.cs ├── Global.asax.cs ├── Results │ └── ChallengeResult.cs ├── package.json ├── Web.Debug.config ├── Web.Release.config └── Properties │ └── AssemblyInfo.cs ├── UpdateDB ├── packages.config ├── App.config └── Properties │ └── AssemblyInfo.cs ├── MIM.Test ├── Core │ ├── Player │ │ ├── Spells │ │ │ ├── ArmourTest.cs │ │ │ └── MagicMissileTest.cs │ │ └── PlayerTest.cs │ ├── Events │ │ └── CommunicateTest.cs │ └── PlayerSetup │ │ ├── PlayerStatsTest.cs │ │ ├── PlayerRaceTest.cs │ │ └── PlayerClassTest.cs ├── app.config ├── packages.config └── Properties │ └── AssemblyInfo.cs └── LICENSE /MIMWebClient/Error/error.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Item/itemReadMe.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Sass/builder.scss: -------------------------------------------------------------------------------- 1 | body { 2 | } 3 | -------------------------------------------------------------------------------- /MIMWebClient/error.txt: -------------------------------------------------------------------------------- 1 | Date: 30/04/2017 23:33:25,Method: UpdateTime, error: 2 | -------------------------------------------------------------------------------- /MIMDashboard/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /MIMWebClient/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "~/Views/Shared/_Layout.cshtml"; 3 | } 4 | -------------------------------------------------------------------------------- /MIMDashboard/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMDashboard/favicon.ico -------------------------------------------------------------------------------- /MIMWebClient/MyData.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/MyData.db -------------------------------------------------------------------------------- /MIMWebClient/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/favicon.ico -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Anker/GoblinHideoutMap.txt: -------------------------------------------------------------------------------- 1 | 2 | Hideout 3 | x-x-x x-x- 4 | | | 5 | x-x-x -------------------------------------------------------------------------------- /MIMWebClient/UI/img/dwarf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/dwarf.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/img/elf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/elf.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/img/human.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/human.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/img/compass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/compass.png -------------------------------------------------------------------------------- /MIMWebClient/UI/img/darkElf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/darkElf.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/img/elfPort.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/elfPort.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/img/humanPort.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/humanPort.jpg -------------------------------------------------------------------------------- /MIMDashboard/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MIMDashboard.WebApiApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /MIMWebClient/Global.asax: -------------------------------------------------------------------------------- 1 | <%@ Application Codebehind="Global.asax.cs" Inherits="MIMWebClient.MvcApplication" Language="C#" %> 2 | -------------------------------------------------------------------------------- /MIMWebClient/Scripts/_references.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/Scripts/_references.js -------------------------------------------------------------------------------- /MIMWebClient/UI/img/humanPortLarge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/img/humanPortLarge.jpg -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Sass/fonts/slick.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Sass/fonts/slick.eot -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Sass/fonts/slick.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Sass/fonts/slick.ttf -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Sass/fonts/slick.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Sass/fonts/slick.woff -------------------------------------------------------------------------------- /MIMWebClient/compilerconfig.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "outputFile": "UI/Css/master.css", 4 | "inputFile": "UI/Css/Sass/master.scss" 5 | } 6 | ] -------------------------------------------------------------------------------- /MIMWebClient/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /MIMWebClient/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/ImageSample.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage 2 | @model ImageSample 3 | 4 | -------------------------------------------------------------------------------- /MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/elf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/elf.jpg -------------------------------------------------------------------------------- /MIMWebClient/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/dwarf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/dwarf.jpg -------------------------------------------------------------------------------- /MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/human.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/human.jpg -------------------------------------------------------------------------------- /MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/darkElf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/Core/PlayerSetup/Data/Img/RaceImg/darkElf.jpg -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/TextSample.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage 2 | @model TextSample 3 | 4 |
5 | @Model.Text
6 | 
-------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.eot -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.ttf -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiamKenneth/ArchaicQuest/HEAD/MIMWebClient/UI/Css/Lib/RPGAwesome/fonts/rpgawesome-webfont.woff -------------------------------------------------------------------------------- /MIMDashboard/Client/Sass/style.scss: -------------------------------------------------------------------------------- 1 | 2 | body { 3 | color:green; 4 | 5 | 6 | } 7 | 8 | p { 9 | color:red; 10 | &:hover { 11 | color: blue; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/.gitignore: -------------------------------------------------------------------------------- 1 | # .gitignore 2 | .DS_Store 3 | .sass-cache/ 4 | node_modules/* 5 | temp/* 6 | upstream 7 | node_modules 8 | phantom_runner.js 9 | start_test.js 10 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$ra-css-prefix}-fw { 4 | text-align: center; 5 | width: (18em / 14); 6 | } 7 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/SimpleTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model SimpleTypeModelDescription 3 | @Model.Documentation -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_center-block.scss: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | @mixin center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /MIMWebClient/Views/Home/About.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "About"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |

Use this Area to provide additional information.

8 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | // Change the Layout path below to blend the look and feel of the help page with your existing web pages 3 | Layout = "~/Views/Shared/_Layout.cshtml"; 4 | } -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/SimpleTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class SimpleTypeModelDescription : ModelDescription 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/ComplexTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model ComplexTypeModelDescription 3 | @Html.DisplayFor(m => m.Properties, "Parameters") -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_opacity.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: alpha(opacity=$opacity-ie); 8 | } 9 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/DictionaryModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class DictionaryModelDescription : KeyValuePairModelDescription 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /MIMDashboard/Client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | React App Setup 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Events/Cooking.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Events 7 | { 8 | public class Cooking 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height) { 4 | width: $width; 5 | height: $height; 6 | } 7 | 8 | @mixin square($size) { 9 | @include size($size, $size); 10 | } 11 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/_bootstrap-sprockets.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-path($path); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-path($path); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_text-overflow.scss: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Mob/AddMob.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Mob 7 | { 8 | public class AddMob 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Mob/ViewMob.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Mob 7 | { 8 | public class ViewMob 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Mob/UpdateMob.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Mob 7 | { 8 | public class UpdateMob 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/_bootstrap-compass.scss: -------------------------------------------------------------------------------- 1 | @function twbs-font-path($path) { 2 | @return font-url($path, true); 3 | } 4 | 5 | @function twbs-image-path($path) { 6 | @return image-url($path, true); 7 | } 8 | 9 | $bootstrap-sass-asset-helper: true; 10 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Mob/Events/Aggro.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Mob.Events 7 | { 8 | public class Aggro 9 | { 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Object/AddObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Object 7 | { 8 | public class AddObject 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Object/UpdateObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Object 7 | { 8 | public class UpdateObject 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Models/Admin/Object/ViewObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Models.Admin.Object 7 | { 8 | public class ViewObject 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | @mixin label-variant($color) { 4 | background-color: $color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken($color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | resize: $direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/CollectionModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class CollectionModelDescription : ModelDescription 4 | { 5 | public ModelDescription ElementDescription { get; set; } 6 | } 7 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/PlayerSetup/PlayerLocation.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 MIMWebClient.Core.PlayerSetup 8 | { 9 | class PlayerLocation 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/CollectionModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model CollectionModelDescription 3 | @if (Model.ElementDescription is ComplexTypeModelDescription) 4 | { 5 | @Html.DisplayFor(m => m.ElementDescription) 6 | } -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/PlayerStats/reducers/player.index.tsx: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import { fetchSuccess, fetchErrored, fetchLoading } from '../actions/player.action'; 3 | 4 | export default combineReducers({ 5 | fetchSuccess, 6 | fetchErrored, 7 | fetchLoading 8 | }); 9 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_progress-bar.scss: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | @mixin progress-bar-variant($color) { 4 | background-color: $color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | @include gradient-striped; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /MIMDashboard/.babelrc: -------------------------------------------------------------------------------- 1 | /* 2 | ./.babelrc 3 | */ 4 | { 5 | "env": { 6 | "development": { 7 | "plugins": [] 8 | }, 9 | "production": { 10 | "plugins": [] 11 | } 12 | }, 13 | "presets":[ 14 | "es2015", "react" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_text-emphasis.scss: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | // [converter] $parent hack 4 | @mixin text-emphasis-variant($parent, $color) { 5 | #{$parent} { 6 | color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_reset-filter.scss: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | @mixin reset-filter() { 7 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 8 | } 9 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/SampleGeneration/SampleDirection.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage 2 | { 3 | /// 4 | /// Indicates whether the sample is used for request or response 5 | /// 6 | public enum SampleDirection 7 | { 8 | Request = 0, 9 | Response 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Item/ArmourRating.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Item 7 | { 8 | public class ArmourRating 9 | { 10 | public int Armour { get; set; } 11 | public int Magic { get; set; } 12 | } 13 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Spells.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.PlayerSetup; 6 | using MIMWebClient.Core.Room; 7 | 8 | namespace MIMWebClient.Core.Player 9 | { 10 | public class Spells : Skill 11 | { 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Weapons/Mob/mobWeapons.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Weapons.Sword.Short 8 | { 9 | public class mobWeapons 10 | { 11 | 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_nav-divider.scss: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | @mixin nav-divider($color: #e5e5e5) { 6 | height: 1px; 7 | margin: (($line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: $color; 10 | } 11 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ParameterAnnotation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 4 | { 5 | public class ParameterAnnotation 6 | { 7 | public Attribute AnnotationAttribute { get; set; } 8 | 9 | public string Documentation { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Room/Keyword.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 MIMWebClient.Core.Room 8 | { 9 | public class Keyword 10 | { 11 | public List Keywords { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/fake.json: -------------------------------------------------------------------------------- 1 | { 2 | "newUsersDay":"2", 3 | "newUsersWeekh": "24", 4 | "newUsersMonth": "127", 5 | "errors": { 6 | "count": "1", 7 | "errLog":[{ 8 | "err": "loot", 9 | "type": "wrong command" 10 | }] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Item/Action.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 MIMWebClient.Core.Item 8 | { 9 | public class Action 10 | { 11 | 12 | public string wield { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_background-variant.scss: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | // [converter] $parent hack 4 | @mixin bg-variant($parent, $color) { 5 | #{$parent} { 6 | background-color: $color; 7 | } 8 | a#{$parent}:hover, 9 | a#{$parent}:focus { 10 | background-color: darken($color, 10%); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MIMDashboard/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace MIMDashboard 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/EnumValueDescription.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class EnumValueDescription 4 | { 5 | public string Documentation { get; set; } 6 | 7 | public string Name { get; set; } 8 | 9 | public string Value { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | @ViewBag.Title 7 | @RenderSection("scripts", required: false) 8 | 9 | 10 | @RenderBody() 11 | 12 | -------------------------------------------------------------------------------- /MIMDashboard/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Error 6 | 7 | 8 |
9 |

Error.

10 |

An error occurred while processing your request.

11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Room/Coordinates.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Room 7 | { 8 | public class Coordinates 9 | { 10 | public int X { get; set; } 11 | public int Y { get; set; } 12 | public int Z { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /MIMWebClient/ViewModels/RoomModel.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 MIMWebClient.ViewModels 8 | { 9 | using System.Web.Mvc; 10 | 11 | using MIMWebClient.Core.Room; 12 | 13 | public class RoomModel 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/InvalidSample.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage 2 | @model InvalidSample 3 | 4 | @if (HttpContext.Current.IsDebuggingEnabled) 5 | { 6 |
7 |

@Model.ErrorMessage

8 |
9 | } 10 | else 11 | { 12 |

Sample not available.

13 | } -------------------------------------------------------------------------------- /MIMWebClient/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Error 6 | 7 | 8 |
9 |

Error.

10 |

An error occurred while processing your request.

11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/KeyValuePairModelDescription.cs: -------------------------------------------------------------------------------- 1 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | { 3 | public class KeyValuePairModelDescription : ModelDescription 4 | { 5 | public ModelDescription KeyModelDescription { get; set; } 6 | 7 | public ModelDescription ValueModelDescription { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /MIMWebClient/App_Start/FilterConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Mvc; 3 | 4 | namespace MIMWebClient 5 | { 6 | public class FilterConfig 7 | { 8 | public static void RegisterGlobalFilters(GlobalFilterCollection filters) 9 | { 10 | filters.Add(new HandleErrorAttribute()); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MIMWebClient/Error/Error.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Error 7 | { 8 | public class Error 9 | { 10 | public DateTime Date { get; set; } 11 | public string ErrorMessage { get; set; } 12 | public string MethodName { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_alerts.scss: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | @mixin alert-variant($background, $border, $text-color) { 4 | background-color: $background; 5 | border-color: $border; 6 | color: $text-color; 7 | 8 | hr { 9 | border-top-color: darken($border, 5%); 10 | } 11 | .alert-link { 12 | color: darken($text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/IModelDocumentationProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | 4 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 5 | { 6 | public interface IModelDocumentationProvider 7 | { 8 | string GetDocumentation(MemberInfo member); 9 | 10 | string GetDocumentation(Type type); 11 | } 12 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$ra-css-prefix} { 5 | font-family: RPGAwesome; 6 | -moz-osx-font-smoothing: grayscale; 7 | -webkit-font-smoothing: antialiased; 8 | font-style: normal; 9 | font-variant: normal; 10 | font-weight: normal; 11 | line-height: 1; 12 | speak: none; 13 | text-transform: none; 14 | } 15 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_tab-focus.scss: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | @mixin tab-focus() { 4 | // WebKit-specific. Other browsers will keep their default outline style. 5 | // (Initially tried to also force default via `outline: initial`, 6 | // but that seems to erroneously remove the outline in Firefox altogether.) 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /MIMDashboard/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | 7 | namespace MIMDashboard.Controllers 8 | { 9 | public class HomeController : Controller 10 | { 11 | public ActionResult Index() 12 | { 13 | ViewBag.Title = "Home Page"; 14 | 15 | return View(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MIMDashboard/Startup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using Microsoft.Owin; 5 | using Owin; 6 | 7 | [assembly: OwinStartup("MIMDashboardConfig", typeof(MIMDashboard.Startup))] 8 | 9 | namespace MIMDashboard 10 | { 11 | public partial class Startup 12 | { 13 | public void Configuration(IAppBuilder app) 14 | { 15 | ConfigureAuth(app); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Describes a type model. 7 | /// 8 | public abstract class ModelDescription 9 | { 10 | public string Documentation { get; set; } 11 | 12 | public Type ModelType { get; set; } 13 | 14 | public string Name { get; set; } 15 | } 16 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$ra-css-prefix}-border { 5 | border: solid .08em $ra-border-color; 6 | border-radius: .1em; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$ra-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_nav-vertical-align.scss: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | @mixin navbar-vertical-align($element-height) { 7 | margin-top: (($navbar-height - $element-height) / 2); 8 | margin-bottom: (($navbar-height - $element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /UpdateDB/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/DictionaryModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model DictionaryModelDescription 3 | Dictionary of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/KeyValuePairModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model KeyValuePairModelDescription 3 | Pair of @Html.DisplayFor(m => Model.KeyModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.KeyModelDescription }) [key] 4 | and @Html.DisplayFor(m => Model.ValueModelDescription.ModelType, "ModelDescriptionLink", new { modelDescription = Model.ValueModelDescription }) [value] -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$ra-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | 11 | .#{$ra-css-prefix}-2x { font-size: 2em; } 12 | .#{$ra-css-prefix}-3x { font-size: 3em; } 13 | .#{$ra-css-prefix}-4x { font-size: 4em; } 14 | .#{$ra-css-prefix}-5x { font-size: 5em; } 15 | -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/PlayerStats/store/configureStore.tsx: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware } from 'redux'; 2 | import thunk from 'redux-thunk'; 3 | import rootReducer from '../reducers'; 4 | 5 | export default function configureStore(initialState: any) { 6 | return createStore( 7 | rootReducer, 8 | initialState, 9 | applyMiddleware(thunk) 10 | ); 11 | } 12 | 13 | //https://codepen.io/stowball/post/a-dummy-s-guide-to-redux-and-thunk-in-react 14 | -------------------------------------------------------------------------------- /MIM.Test/Core/Player/Spells/ArmourTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Player.Skills; 7 | using MIMWebClient.Core.Room; 8 | using NUnit.Framework; 9 | 10 | namespace MIM.Test.Core.Player.Spells 11 | { 12 | class ArmourTest 13 | { 14 | [Test] 15 | public async Task ShouldCastArmourOnSelf() 16 | { 17 | 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Recall.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MongoDB.Bson.Serialization.Attributes; 6 | 7 | namespace MIMWebClient.Core.Player 8 | { 9 | public class Recall 10 | { 11 | [BsonElement("rre")] 12 | public string Region; 13 | 14 | [BsonElement("rar")] 15 | public string Area; 16 | 17 | [BsonElement("rari")] 18 | public int AreaId; 19 | } 20 | } -------------------------------------------------------------------------------- /MIMDashboard/Client/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | ./client/index.js 3 | */ 4 | import React from 'react'; 5 | import ReactDOM from 'react-dom'; 6 | import Dashboard from './components/Dashboard.tsx'; 7 | import configureStore from './Components/PlayerStats/store/configureStore'; 8 | import './Sass/style.scss'; 9 | 10 | const store = configureStore(); 11 | 12 | ReactDOM.render( 13 | 14 | , 15 | , 16 | document.getElementById('root') 17 | ); 18 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ComplexTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 4 | { 5 | public class ComplexTypeModelDescription : ModelDescription 6 | { 7 | public ComplexTypeModelDescription() 8 | { 9 | Properties = new Collection(); 10 | } 11 | 12 | public Collection Properties { get; private set; } 13 | } 14 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "rpg-awesome", 3 | "version": "0.1.1", 4 | "repository": { 5 | "type": "git", 6 | "url": "git://github.com/nagoshiashumari/Rpg-Awesome.git" 7 | }, 8 | "devDependencies": { 9 | "grunt": "~0.4.5", 10 | "grunt-contrib-sass" : "~0.8.1", 11 | "grunt-scss-lint" : "~0.3.4", 12 | "grunt-contrib-cssmin" : "~0.11.0" 13 | }, 14 | "scripts" : { 15 | "build": "grunt", 16 | "test": "grunt scsslint" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$ra-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: $ra-li-width; 7 | padding-left: 0; 8 | > li { position: relative; } 9 | } 10 | 11 | .#{$ra-css-prefix}-li { 12 | left: -$ra-li-width; 13 | position: absolute; 14 | text-align: center; 15 | top: (2em / 14); 16 | width: $ra-li-width; 17 | 18 | &.#{$ra-css-prefix}-lg { 19 | left: -$ra-li-width + (4em / 14); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/EnumTypeModelDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | 4 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 5 | { 6 | public class EnumTypeModelDescription : ModelDescription 7 | { 8 | public EnumTypeModelDescription() 9 | { 10 | Values = new Collection(); 11 | } 12 | 13 | public Collection Values { get; private set; } 14 | } 15 | } -------------------------------------------------------------------------------- /MIMWebClient/Views/Home/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewBag.Title = "Contact"; 3 | } 4 |

@ViewBag.Title.

5 |

@ViewBag.Message

6 | 7 |
8 | One Microsoft Way
9 | Redmond, WA 98052-6399
10 | P: 11 | 425.555.0100 12 |
13 | 14 |
15 | Support: Support@example.com
16 | Marketing: Marketing@example.com 17 |
-------------------------------------------------------------------------------- /MIMWebClient/Core/Item/Actions/use.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Item.Actions 7 | { 8 | public class use 9 | { 10 | public void useObject(string obj, Room.Room room, PlayerSetup.Player player) 11 | { 12 | var item = room.items.Find(x => x.name.Equals(obj)); 13 | 14 | HubContext.Instance.SendToClient("You rotate the lever and the bucket plunges in to the pool", player.HubGuid); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Item/Stats.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 MIMWebClient.Core.Item 8 | { 9 | public class Stats 10 | { 11 | public bool locked { get; set; } 12 | public int damMin { get; set; } 13 | public int damMax { get; set; } 14 | public int damRoll { get; set; } 15 | public int minUsageLevel { get; set; } 16 | public int worth { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /MIMDashboard/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "sourceMap": true, 5 | "noImplicitAny": true, 6 | "noImplicitUseStrict": true, 7 | "module": "commonjs", 8 | "target": "es5", 9 | "jsx": "react", 10 | "allowJs": true, 11 | "lib": [ 12 | "es2015", 13 | "dom" 14 | ] 15 | }, 16 | "include": [ 17 | "node_modules/@types/**/*.d.ts", 18 | "declarations.d.ts", 19 | "client/**/*.tsx" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Death.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Player 7 | { 8 | public class Death 9 | { 10 | public Guid Id { get; set; } 11 | public string Name { get; set; } 12 | public string RoomName { get; set; } 13 | public string RoomId { get; set; } 14 | public string Area { get; set; } 15 | public string Region { get; set; } 16 | public string KilledBy { get; set; } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/rpg-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * RPG Awesome 0.0.2 by Daniela Howe, Ivan Montiel 3 | * License - https://github.com/nagoshiashumari/Rpg-Awesome/blob/master/LICENSE.md 4 | * (Font: SIL OFL 1.1, CSS: MIT License) 5 | */ 6 | 7 | 8 | 9 | @import 'variables'; 10 | @import 'mixins'; 11 | @import 'path'; 12 | @import 'core'; 13 | @import 'larger'; 14 | @import 'fixed-width'; 15 | @import 'list'; 16 | @import 'bordered-pulled'; 17 | @import 'spinning'; 18 | @import 'rotated-flipped'; 19 | @import 'stacked'; 20 | @import 'icons'; 21 | -------------------------------------------------------------------------------- /MIMWebClient/Core/AI/Node.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.AI 7 | { 8 | public class Node 9 | { 10 | public string ID { get; private set; } 11 | public Node Parent { get; set; } 12 | public List NeighborNodes { get; private set; } 13 | 14 | public Node(string id, List adjacentNodes) 15 | { 16 | ID = id; 17 | NeighborNodes = adjacentNodes; 18 | } 19 | } 20 | 21 | 22 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Item/Description.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 MIMWebClient.Core.Item 8 | { 9 | public class Description 10 | { 11 | public string taste { get; set; } 12 | public string touch { get; set; } 13 | public string smell { get; set; } 14 | public string look { get; set; } 15 | public string exam { get; set; } 16 | public string room { get; set; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Util/DateTimeExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Util 7 | { 8 | public static class DateTimeExtensions 9 | { 10 | public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek) 11 | { 12 | int diff = dt.DayOfWeek - startOfWeek; 13 | if (diff < 0) 14 | { 15 | diff += 7; 16 | } 17 | return dt.AddDays(-1 * diff).Date; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_reset-text.scss: -------------------------------------------------------------------------------- 1 | @mixin reset-text() { 2 | font-family: $font-family-base; 3 | // We deliberately do NOT reset font-size. 4 | font-style: normal; 5 | font-weight: normal; 6 | letter-spacing: normal; 7 | line-break: auto; 8 | line-height: $line-height-base; 9 | text-align: left; // Fallback for where `start` is not supported 10 | text-align: start; 11 | text-decoration: none; 12 | text-shadow: none; 13 | text-transform: none; 14 | white-space: normal; 15 | word-break: normal; 16 | word-spacing: normal; 17 | word-wrap: normal; 18 | } 19 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Room/RoomObject.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 MIMWebClient.Core.Room 8 | { 9 | public class RoomObject 10 | { 11 | public string name { get; set; } 12 | public string look { get; set; } 13 | public string examine { get; set; } 14 | public string touch { get; set; } 15 | public string smell { get; set; } 16 | public string taste { get; set; } 17 | public int hp { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_border-radius.scss: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | @mixin border-top-radius($radius) { 4 | border-top-right-radius: $radius; 5 | border-top-left-radius: $radius; 6 | } 7 | @mixin border-right-radius($radius) { 8 | border-bottom-right-radius: $radius; 9 | border-top-right-radius: $radius; 10 | } 11 | @mixin border-bottom-radius($radius) { 12 | border-bottom-right-radius: $radius; 13 | border-bottom-left-radius: $radius; 14 | } 15 | @mixin border-left-radius($radius) { 16 | border-bottom-left-radius: $radius; 17 | border-top-left-radius: $radius; 18 | } 19 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$ra-css-prefix}-stack { 5 | display: inline-block; 6 | height: 2em; 7 | line-height: 2em; 8 | position: relative; 9 | vertical-align: middle; 10 | width: 2em; 11 | } 12 | 13 | .#{$ra-css-prefix}-stack-1x, .#{$ra-css-prefix}-stack-2x { 14 | left: 0; 15 | position: absolute; 16 | text-align: center; 17 | width: 100%; 18 | } 19 | 20 | .#{$ra-css-prefix}-stack-1x { line-height: inherit; } 21 | .#{$ra-css-prefix}-stack-2x { font-size: 2em; } 22 | .#{$ra-css-prefix}-inverse { color: $ra-inverse; } 23 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_pagination.scss: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: $padding-vertical $padding-horizontal; 8 | font-size: $font-size; 9 | line-height: $line-height; 10 | } 11 | &:first-child { 12 | > a, 13 | > span { 14 | @include border-left-radius($border-radius); 15 | } 16 | } 17 | &:last-child { 18 | > a, 19 | > span { 20 | @include border-right-radius($border-radius); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_responsive-visibility.scss: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | // [converter] $parent hack 6 | @mixin responsive-visibility($parent) { 7 | #{$parent} { 8 | display: block !important; 9 | } 10 | table#{$parent} { display: table !important; } 11 | tr#{$parent} { display: table-row !important; } 12 | th#{$parent}, 13 | td#{$parent} { display: table-cell !important; } 14 | } 15 | 16 | // [converter] $parent hack 17 | @mixin responsive-invisibility($parent) { 18 | #{$parent} { 19 | display: none !important; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Data.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIMWebClient 9 | { 10 | public static class Data 11 | { 12 | public static string loadFile(string filePath) 13 | { 14 | string file = string.Empty; 15 | 16 | using (var streamReader = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + filePath, Encoding.UTF8)) 17 | { 18 | file = streamReader.ReadToEnd(); 19 | } 20 | 21 | 22 | return file; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ParameterDescription.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | 4 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 5 | { 6 | public class ParameterDescription 7 | { 8 | public ParameterDescription() 9 | { 10 | Annotations = new Collection(); 11 | } 12 | 13 | public Collection Annotations { get; private set; } 14 | 15 | public string Documentation { get; set; } 16 | 17 | public string Name { get; set; } 18 | 19 | public ModelDescription TypeDescription { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Util/TruncateString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Util 7 | { 8 | public static class TruncateString 9 | { 10 | /// 11 | /// truncates string to max length given 12 | /// 13 | /// limit string to this count 14 | /// 15 | public static string Truncate(this string value, int maxLength) 16 | { 17 | return string.IsNullOrEmpty(value) ? value : value.Substring(0, Math.Min(value.Length, maxLength)); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ModelNameAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 4 | { 5 | /// 6 | /// Use this attribute to change the name of the generated for a type. 7 | /// 8 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum, AllowMultiple = false, Inherited = false)] 9 | public sealed class ModelNameAttribute : Attribute 10 | { 11 | public ModelNameAttribute(string name) 12 | { 13 | Name = name; 14 | } 15 | 16 | public string Name { get; private set; } 17 | } 18 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_panels.scss: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) { 4 | border-color: $border; 5 | 6 | & > .panel-heading { 7 | color: $heading-text-color; 8 | background-color: $heading-bg-color; 9 | border-color: $heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: $border; 13 | } 14 | .badge { 15 | color: $heading-bg-color; 16 | background-color: $heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: $border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_wells.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: $well-bg; 12 | border: 1px solid $well-border; 13 | border-radius: $border-radius-base; 14 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: $border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: $border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/ResourceModel.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 3 | @model ModelDescription 4 | 5 | 6 |
7 | 14 |

@Model.Name

15 |

@Model.Documentation

16 |
17 | @Html.DisplayFor(m => Model) 18 |
19 |
20 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$ra-css-prefix}-spin { 5 | -webkit-animation: ra-spin 2s infinite linear; 6 | animation: ra-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes ra-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 15 | 100% { 16 | -webkit-transform: rotate(359deg); 17 | transform: rotate(359deg); 18 | } 19 | } 20 | @keyframes ra-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 26 | 100% { 27 | -webkit-transform: rotate(359deg); 28 | transform: rotate(359deg); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_hide-text.scss: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (has been removed in v4) 10 | @mixin hide-text() { 11 | font: 0/0 a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | @mixin text-hide() { 20 | @include hide-text; 21 | } 22 | -------------------------------------------------------------------------------- /MIMDashboard/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Routing; 7 | 8 | namespace MIMDashboard 9 | { 10 | public class RouteConfig 11 | { 12 | public static void RegisterRoutes(RouteCollection routes) 13 | { 14 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 | 16 | routes.MapRoute( 17 | "Default", 18 | "{controller}/{action}/{id}", 19 | new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 20 | new[] { "MIMDashboard.Controllers" } 21 | 22 | ); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /MIMDashboard/Models/Core/PlayerStats.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text.RegularExpressions; 5 | using System.Web; 6 | using System.Web.Mvc; 7 | using Microsoft.Ajax.Utilities; 8 | using MIMWebClient.Core.Item; 9 | using MIMWebClient.Core.PlayerSetup; 10 | using MongoDB.Bson; 11 | using MongoDB.Driver; 12 | 13 | namespace MIMDashboard.Models.Core 14 | { 15 | public class PlayerStats 16 | { 17 | public string GetNewUsers() 18 | { 19 | 20 | var db = Db.GetDb(); 21 | 22 | var players = db.GetCollection("Player").AsQueryable().ToList().ToJson(); 23 | 24 | return Regex.Unescape(players); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_responsive-embed.scss: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | } 26 | 27 | // Modifier class for 16:9 aspect ratio 28 | .embed-responsive-16by9 { 29 | padding-bottom: 56.25%; 30 | } 31 | 32 | // Modifier class for 4:3 aspect ratio 33 | .embed-responsive-4by3 { 34 | padding-bottom: 75%; 35 | } 36 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | @mixin clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Events/FindNth.cs: -------------------------------------------------------------------------------- 1 | namespace MIMWebClient.Core.Events 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | public class FindNth 7 | { 8 | public static KeyValuePair Findnth(string thingToFind) 9 | { 10 | 11 | int containsNth = thingToFind.IndexOf('.'); 12 | var itemToFind = thingToFind; 13 | if (containsNth != -1) 14 | { 15 | containsNth = Convert.ToInt32(thingToFind.Substring(0, containsNth)); 16 | itemToFind = thingToFind.Substring(thingToFind.LastIndexOf('.') + 1); 17 | } 18 | 19 | return new KeyValuePair(containsNth, itemToFind); 20 | 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'RPGAwesome'; 6 | src: url('#{$ra-font-path}/rpgawesome-webfont.eot?v=#{$ra-version}'); 7 | src: url('#{$ra-font-path}/rpgawesome-webfont.eot?#iefix&v=#{$ra-version}') format('embedded-opentype'), 8 | url('#{$ra-font-path}/rpgawesome-webfont.woff?v=#{$ra-version}') format('woff'), 9 | url('#{$ra-font-path}/rpgawesome-webfont.ttf?v=#{$ra-version}') format('truetype'), 10 | url('#{$ra-font-path}/rpgawesome-webfont.svg?v=#{$ra-version}#rpg-awesome') format('svg'); 11 | //src: url('#{$ra-font-path}/RPGAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/Api.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using MIMDashboard.Areas.HelpPage.Models 3 | @model HelpPageApiModel 4 | 5 | @{ 6 | var description = Model.ApiDescription; 7 | ViewBag.Title = description.HttpMethod.Method + " " + description.RelativePath; 8 | } 9 | 10 | 11 |
12 | 19 |
20 | @Html.DisplayForModel() 21 |
22 |
23 | -------------------------------------------------------------------------------- /MIMDashboard/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Mvc; 7 | using System.Web.Optimization; 8 | using System.Web.Routing; 9 | 10 | namespace MIMDashboard 11 | { 12 | public class WebApiApplication : System.Web.HttpApplication 13 | { 14 | protected void Application_Start() 15 | { 16 | AreaRegistration.RegisterAllAreas(); 17 | GlobalConfiguration.Configure(WebApiConfig.Register); 18 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 19 | RouteConfig.RegisterRoutes(RouteTable.Routes); 20 | BundleConfig.RegisterBundles(BundleTable.Bundles); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/PlayerStats/reducers/player.items.tsx: -------------------------------------------------------------------------------- 1 | export function itemsHasErrored(state = false, action: any) { 2 | switch (action.type) { 3 | case 'FETCH_ERRORED': 4 | return action.hasErrored; 5 | 6 | default: 7 | return state; 8 | } 9 | } 10 | 11 | export function itemsIsLoading(state = false, action: any) { 12 | switch (action.type) { 13 | case 'FETCH_LOADING': 14 | return action.isLoading; 15 | 16 | default: 17 | return state; 18 | } 19 | } 20 | 21 | export function items(state = {}, action: any) { 22 | switch (action.type) { 23 | case 'FETCH_SUCCESS': 24 | return action.items; 25 | 26 | default: 27 | return state; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /MIMDashboard/Controllers/DashboardController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using MIMWebClient.Core.PlayerSetup; 7 | using PlayerStats = MIMDashboard.Models.Core.PlayerStats; 8 | 9 | /// 10 | /// http://www.dotnetcurry.com/aspnet/1223/secure-aspnet-web-api-using-tokens-owin-angularjs 11 | /// 12 | namespace MIMDashboard.Controllers 13 | { 14 | [AllowAnonymous] 15 | public class DashboardController : ApiController 16 | { 17 | 18 | public string Get() 19 | { 20 | 21 | var stats = new PlayerStats(); 22 | var players = stats.GetNewUsers(); 23 | return players; 24 | } 25 | } 26 | 27 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$ra-css-prefix}-rotate-90 { @include ra-icon-rotate(90deg, 1); } 5 | .#{$ra-css-prefix}-rotate-180 { @include ra-icon-rotate(180deg, 2); } 6 | .#{$ra-css-prefix}-rotate-270 { @include ra-icon-rotate(270deg, 3); } 7 | 8 | .#{$ra-css-prefix}-flip-horizontal { @include ra-icon-flip(-1, 1, 0); } 9 | .#{$ra-css-prefix}-flip-vertical { @include ra-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$ra-css-prefix}-rotate-90, 15 | :root .#{$ra-css-prefix}-rotate-180, 16 | :root .#{$ra-css-prefix}-rotate-270, 17 | :root .#{$ra-css-prefix}-flip-horizontal, 18 | :root .#{$ra-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/HelpPageAreaRegistration.cs: -------------------------------------------------------------------------------- 1 | using System.Web.Http; 2 | using System.Web.Mvc; 3 | 4 | namespace MIMDashboard.Areas.HelpPage 5 | { 6 | public class HelpPageAreaRegistration : AreaRegistration 7 | { 8 | public override string AreaName 9 | { 10 | get 11 | { 12 | return "HelpPage"; 13 | } 14 | } 15 | 16 | public override void RegisterArea(AreaRegistrationContext context) 17 | { 18 | context.MapRoute( 19 | "HelpPage_Default", 20 | "Help/{action}/{apiId}", 21 | new { controller = "Help", action = "Index", apiId = UrlParameter.Optional }); 22 | 23 | HelpPageConfig.Register(GlobalConfiguration.Configuration); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rpg-awesome", 3 | "description": "A fantasy themed font and CSS toolkit.", 4 | "main": [ 5 | "scss/rpg-awesome.scss", 6 | "css/rpg-awesome.css", 7 | "css/rpg-awesome.min.css" 8 | ], 9 | "authors": [ 10 | "Daniela Howe", 11 | "Ivan Montiel " 12 | ], 13 | "license": "MIT", 14 | "keywords": [ 15 | "rpg", 16 | "font", 17 | "awesome", 18 | "css", 19 | "toolkit" 20 | ], 21 | "homepage": "https://github.com/nagoshiashumari/Rpg-Awesome", 22 | "moduleType": [], 23 | "ignore": [ 24 | "**/.*", 25 | "node_modules", 26 | "bower_components", 27 | "test", 28 | "tests", 29 | "rpg-awesome-tests.js", 30 | "CONTRIBUTING.md", 31 | "README.md", 32 | "demo/*" 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/EnumTypeModelDescription.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model EnumTypeModelDescription 3 | 4 |

Possible enumeration values:

5 | 6 | 7 | 8 | 9 | 10 | 11 | @foreach (EnumValueDescription value in Model.Values) 12 | { 13 | 14 | 15 | 18 | 21 | 22 | } 23 | 24 |
NameValueDescription
@value.Name 16 |

@value.Value

17 |
19 |

@value.Documentation

20 |
-------------------------------------------------------------------------------- /MIMWebClient/Core/Events/Fight/PlayerStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Events.Fight 7 | { 8 | public class PlayerStatus 9 | { 10 | 11 | public bool CheckPlayerStatus(PlayerSetup.Player player) 12 | { 13 | if (player.Status == PlayerSetup.Player.PlayerStatus.Sleeping) 14 | { 15 | HubContext.Instance.SendToClient("You can't do that while asleep.", player.HubGuid); 16 | } 17 | 18 | if (player.Status == PlayerSetup.Player.PlayerStatus.Dead) 19 | { 20 | HubContext.Instance.SendToClient("You can't do that as a Ghost.", player.HubGuid); 21 | } 22 | 23 | 24 | return false; 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_breadcrumbs.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; 8 | margin-bottom: $line-height-computed; 9 | list-style: none; 10 | background-color: $breadcrumb-bg; 11 | border-radius: $border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | // [converter] Workaround for https://github.com/sass/libsass/issues/1115 18 | $nbsp: "\00a0"; 19 | content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space 20 | padding: 0 5px; 21 | color: $breadcrumb-color; 22 | } 23 | } 24 | 25 | > .active { 26 | color: $breadcrumb-active-color; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_list-group.scss: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | @mixin list-group-item-variant($state, $background, $color) { 4 | .list-group-item-#{$state} { 5 | color: $color; 6 | background-color: $background; 7 | 8 | // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state} 9 | } 10 | 11 | a.list-group-item-#{$state}, 12 | button.list-group-item-#{$state} { 13 | color: $color; 14 | 15 | .list-group-item-heading { 16 | color: inherit; 17 | } 18 | 19 | &:hover, 20 | &:focus { 21 | color: $color; 22 | background-color: darken($background, 5%); 23 | } 24 | &.active, 25 | &.active:hover, 26 | &.active:focus { 27 | color: #fff; 28 | background-color: $color; 29 | border-color: $color; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/_bootstrap-mincer.scss: -------------------------------------------------------------------------------- 1 | // Mincer asset helper functions 2 | // 3 | // This must be imported into a .css.ejs.scss file. 4 | // Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation. 5 | 6 | 7 | @function twbs-font-path($path) { 8 | // do something like following 9 | // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>" 10 | // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>" 11 | // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>" 12 | @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>"; 13 | } 14 | 15 | @function twbs-image-path($file) { 16 | @return "<%- asset_path("#{$file}") %>"; 17 | } 18 | 19 | $bootstrap-sass-asset-helper: true; 20 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Mob/Events/Welcome.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Mob.Events 7 | { 8 | public class Welcome 9 | { 10 | public static void NewUser(PlayerSetup.Player player, PlayerSetup.Player mob, Room.Room room) 11 | { 12 | if (player.Type != PlayerSetup.Player.PlayerTypes.Player) return; 13 | 14 | var msg = 15 | "Welcome to Anker! I am here to guide you and I will keep it brief. To move type the direction shown in the exit list. North for example or n for short. You can also get items or drop them. Wield weapons, wear armour and kill. Kill the cat if you like."; 16 | 17 | HubContext.Instance.BroadcastToRoom(mob.Name + " says \"" + msg + "\"", room.players, player.HubGuid); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_table-row.scss: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | @mixin table-row-variant($state, $background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.#{$state}, 10 | > th.#{$state}, 11 | &.#{$state} > td, 12 | &.#{$state} > th { 13 | background-color: $background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.#{$state}:hover, 21 | > th.#{$state}:hover, 22 | &.#{$state}:hover > td, 23 | &:hover > .#{$state}, 24 | &.#{$state}:hover > th { 25 | background-color: darken($background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /MIM.Test/Core/Player/PlayerTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using MIMWebClient.Core.Events; 8 | using MIMWebClient.Core.Player; 9 | using MIMWebClient.Core.Room; 10 | 11 | namespace MIM.Test.Core.Player 12 | { 13 | class PlayerTest 14 | { 15 | [Test] 16 | public void ShouldMap() 17 | { 18 | var room = new Room(); 19 | 20 | room.coords.X = 0; 21 | room.coords.Y = 0; 22 | room.area = "Anker"; 23 | var map = Map.DisplayMap(room); 24 | 25 | Console.WriteLine(map); 26 | Console.Write(map); 27 | 28 | 29 | 30 | Assert.That(map, Is.EqualTo(" \n [ ]")); 31 | // Assert.That(pc.Inventory.Count, Is.EqualTo(0)); 32 | 33 | } 34 | 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Loging/Logging.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Loging 7 | { 8 | public class QuitLocation 9 | { 10 | public Guid Id { get; set; } 11 | public string RoomName { get; set; } 12 | public int RoomId { get; set; } 13 | public string PlayerName { get; set; } 14 | } 15 | 16 | public class UnfinishedQuests 17 | { 18 | public Guid Id { get; set; } 19 | public string QuestName { get; set; } 20 | 21 | } 22 | 23 | public class Deaths 24 | { 25 | public Guid Id { get; set; } 26 | public string Type { get; set; } 27 | public string RoomName { get; set; } 28 | public string Area { get; set; } 29 | public int AreaId { get; set; } 30 | public string KilledBy { get; set; } 31 | public DateTime Date { get; set; } 32 | 33 | } 34 | 35 | 36 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/MiscEQ/Materials/Materials.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.MiscEQ.Materials 8 | { 9 | public class Materials 10 | { 11 | public static Item.Item CopperOre() 12 | { 13 | var CopperOre = new Item.Item 14 | { 15 | name = "Copper Ore", 16 | Weight = 2, 17 | equipable = true, 18 | eqSlot = Item.Item.EqSlot.Held, 19 | slot = Item.Item.EqSlot.Held, 20 | location = Item.Item.ItemLocation.Inventory, 21 | description = new Description() 22 | { 23 | look = "A lump of copper ore", 24 | }, 25 | Gold = 25 26 | 27 | }; 28 | 29 | return CopperOre; 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /MIM.Test/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Room/Exit.cs: -------------------------------------------------------------------------------- 1 | using MIMWebClient.Core.Item; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIMWebClient.Core.Room 9 | { 10 | public class Exit : BaseItem 11 | { 12 | 13 | public int areaId { get; set; } 14 | public string area { get; set; } 15 | public string region { get; set; } 16 | public string doorName { get; set; } 17 | 18 | 19 | //public override Exit GetHashCode() 20 | //{ 21 | // return Exit; 22 | //} 23 | //public override bool Equals(object obj) 24 | //{ 25 | // return Equals(obj as Exit); 26 | //} 27 | //public bool Equals(Exit obj) 28 | //{ 29 | // return obj != null && obj.areaId == this.areaId && obj.area == this.area && obj.region == this.region; 30 | //} 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MIM.Test/Core/Events/CommunicateTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIM.Test.Core.Events 9 | { 10 | class CommunicateTest 11 | { 12 | [Test] 13 | [Ignore("Not implemented")] 14 | public void ShouldSayToAllInRoom() 15 | { 16 | //var RoomCache = MIMWebClient.Core.Events.Cache.getRoom 17 | //var isConDict = RoomCache.try 18 | //Assert.That(expectedResult, Is.EqualTo(15)); 19 | 20 | // var mockPlayer = new MIMWebClient.Core.PlayerSetup.Player("test", "Liam", "liam@email.com", "123", "Male", "Human", "Mage", 10, 13, 16, 17, 20, 15); 21 | var mockRoom = new MIMWebClient.Core.Room.Room(); 22 | 23 | 24 | 25 | /// MIMWebClient.Core.Events.Communicate.Say("Hello", mockPlayer, mockRoom); 26 | 27 | 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MIMDashboard/Controllers/ValuesController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Net.Http; 6 | using System.Web.Http; 7 | 8 | namespace MIMDashboard.Controllers 9 | { 10 | [Authorize] 11 | public class ValuesController : ApiController 12 | { 13 | // GET api/values 14 | public IEnumerable Get() 15 | { 16 | return new string[] { "value1", "value2" }; 17 | } 18 | 19 | // GET api/values/5 20 | public string Get(int id) 21 | { 22 | return "value"; 23 | } 24 | 25 | // POST api/values 26 | public void Post([FromBody]string value) 27 | { 28 | } 29 | 30 | // PUT api/values/5 31 | public void Put(int id, [FromBody]string value) 32 | { 33 | } 34 | 35 | // DELETE api/values/5 36 | public void Delete(int id) 37 | { 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_close.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: ($font-size-base * 1.5); 9 | font-weight: $close-font-weight; 10 | line-height: 1; 11 | color: $close-color; 12 | text-shadow: $close-text-shadow; 13 | @include opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: $close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | @include opacity(.5); 21 | } 22 | 23 | // [converter] extracted button& to button.close 24 | } 25 | 26 | // Additional properties for button version 27 | // iOS requires the button element instead of an anchor tag. 28 | // If you want the anchor version, it requires `href="#"`. 29 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 30 | button.close { 31 | padding: 0; 32 | cursor: pointer; 33 | background: transparent; 34 | border: 0; 35 | -webkit-appearance: none; 36 | } 37 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin ra-icon() { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 RPGAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | 13 | @mixin ra-icon-rotate($degrees, $rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 15 | -webkit-transform: rotate($degrees); 16 | -ms-transform: rotate($degrees); 17 | transform: rotate($degrees); 18 | } 19 | 20 | @mixin ra-icon-flip($horiz, $vert, $rotation) { 21 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 22 | -webkit-transform: scale($horiz, $vert); 23 | -ms-transform: scale($horiz, $vert); 24 | transform: scale($horiz, $vert); 25 | } 26 | -------------------------------------------------------------------------------- /MIMDashboard/Models/Core/Db.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MongoDB.Driver; 6 | 7 | namespace MIMDashboard.Models.Core 8 | { 9 | public static class Db 10 | { 11 | private static IMongoDatabase _MIMDB { get; set; } 12 | 13 | private static void setDB() 14 | { 15 | const string ConnectionString = "mongodb://testuser:password@ds052968.mlab.com:52968/mimdb"; 16 | 17 | // Create a MongoClient object by using the connection string 18 | var client = new MongoClient(ConnectionString); 19 | 20 | //Use the MongoClient to access the server 21 | _MIMDB = client.GetDatabase("mimdb"); 22 | 23 | } 24 | 25 | public static IMongoDatabase GetDb() 26 | { 27 | if (_MIMDB == null) 28 | { 29 | setDB(); 30 | return _MIMDB; 31 | } 32 | 33 | return _MIMDB; 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_component-animations.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | @include transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | 21 | &.in { display: block; } 22 | // [converter] extracted tr&.in to tr.collapse.in 23 | // [converter] extracted tbody&.in to tbody.collapse.in 24 | } 25 | 26 | tr.collapse.in { display: table-row; } 27 | 28 | tbody.collapse.in { display: table-row-group; } 29 | 30 | .collapsing { 31 | position: relative; 32 | height: 0; 33 | overflow: hidden; 34 | @include transition-property(height, visibility); 35 | @include transition-duration(.35s); 36 | @include transition-timing-function(ease); 37 | } 38 | -------------------------------------------------------------------------------- /MIMWebClient/Models/Account.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 MIMWebClient.Models 8 | { 9 | using System.ComponentModel.DataAnnotations; 10 | using System.Web.Mvc; 11 | 12 | public class Account 13 | { 14 | 15 | [Required(ErrorMessage = "You won't become a legend without a name!")] 16 | [MinLength(3, ErrorMessage = "What kind of name is that? Try a longer one than 2 characters.")] 17 | [RegularExpression(@"^[a-zA-Z']+$", ErrorMessage = "A name like that doesn't sound very fantasy. Try using only A to Z")] 18 | 19 | public string Name { get; set; } 20 | 21 | [Required(ErrorMessage = "We need your password to allow to enter the realm.")] 22 | [MinLength(6, ErrorMessage = "Password needs to be atleast 6 characters long.")] 23 | [Remote("ValidateUser", "Home", AdditionalFields = "Name")] 24 | public string Password { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_utilities.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Utility classes 3 | // -------------------------------------------------- 4 | 5 | 6 | // Floats 7 | // ------------------------- 8 | 9 | .clearfix { 10 | @include clearfix; 11 | } 12 | .center-block { 13 | @include center-block; 14 | } 15 | .pull-right { 16 | float: right !important; 17 | } 18 | .pull-left { 19 | float: left !important; 20 | } 21 | 22 | 23 | // Toggling content 24 | // ------------------------- 25 | 26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 27 | .hide { 28 | display: none !important; 29 | } 30 | .show { 31 | display: block !important; 32 | } 33 | .invisible { 34 | visibility: hidden; 35 | } 36 | .text-hide { 37 | @include text-hide; 38 | } 39 | 40 | 41 | // Hide from screenreaders and browsers 42 | // 43 | // Credit: HTML5 Boilerplate 44 | 45 | .hidden { 46 | display: none !important; 47 | } 48 | 49 | 50 | // For Affix plugin 51 | // ------------------------- 52 | 53 | .affix { 54 | position: fixed; 55 | } 56 | -------------------------------------------------------------------------------- /MIMDashboard/App_Start/WebApiConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net.Http; 5 | using System.Web.Http; 6 | using Microsoft.Owin.Security.OAuth; 7 | using Newtonsoft.Json.Serialization; 8 | 9 | namespace MIMDashboard 10 | { 11 | public static class WebApiConfig 12 | { 13 | public static void Register(HttpConfiguration config) 14 | { 15 | // Web API configuration and services 16 | // Configure Web API to use only bearer token authentication. 17 | config.SuppressDefaultHostAuthentication(); 18 | config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); 19 | 20 | // Web API routes 21 | config.MapHttpAttributeRoutes(); 22 | 23 | config.Routes.MapHttpRoute( 24 | name: "DefaultApi", 25 | routeTemplate: "api/{controller}/{id}", 26 | defaults: new { id = RouteParameter.Optional } 27 | ); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/Samples.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Net.Http.Headers 2 | @model Dictionary 3 | 4 | @{ 5 | // Group the samples into a single tab if they are the same. 6 | Dictionary samples = Model.GroupBy(pair => pair.Value).ToDictionary( 7 | pair => String.Join(", ", pair.Select(m => m.Key.ToString()).ToArray()), 8 | pair => pair.Key); 9 | var mediaTypes = samples.Keys; 10 | } 11 |
12 | @foreach (var mediaType in mediaTypes) 13 | { 14 |

@mediaType

15 |
16 | Sample: 17 | @{ 18 | var sample = samples[mediaType]; 19 | if (sample == null) 20 | { 21 |

Sample not available.

22 | } 23 | else 24 | { 25 | @Html.DisplayFor(s => sample); 26 | } 27 | } 28 |
29 | } 30 |
-------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/SampleGeneration/TextSample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage 4 | { 5 | /// 6 | /// This represents a preformatted text sample on the help page. There's a display template named TextSample associated with this class. 7 | /// 8 | public class TextSample 9 | { 10 | public TextSample(string text) 11 | { 12 | if (text == null) 13 | { 14 | throw new ArgumentNullException("text"); 15 | } 16 | Text = text; 17 | } 18 | 19 | public string Text { get; private set; } 20 | 21 | public override bool Equals(object obj) 22 | { 23 | TextSample other = obj as TextSample; 24 | return other != null && Text == other.Text; 25 | } 26 | 27 | public override int GetHashCode() 28 | { 29 | return Text.GetHashCode(); 30 | } 31 | 32 | public override string ToString() 33 | { 34 | return Text; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MIMWebClient/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | @ViewBag.Title 8 | 9 | 10 | @Styles.Render("~/bundles/UI") 11 | 12 | 13 | 14 | 15 | @RenderBody() 16 | 17 | 18 | @Scripts.Render("~/bundles/jquery") 19 | @Scripts.Render("~/bundles/jqueryval") 20 | @Scripts.Render("~/bundles/bootstrap") 21 | @RenderSection("scripts", required: false) 22 | 23 | 24 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_thumbnails.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: $thumbnail-padding; 10 | margin-bottom: $line-height-computed; 11 | line-height: $line-height-base; 12 | background-color: $thumbnail-bg; 13 | border: 1px solid $thumbnail-border; 14 | border-radius: $thumbnail-border-radius; 15 | @include transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | @include img-responsive; 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active 25 | 26 | // Image captions 27 | .caption { 28 | padding: $thumbnail-caption-padding; 29 | color: $thumbnail-caption-color; 30 | } 31 | } 32 | 33 | // Add a hover state for linked versions only 34 | a.thumbnail:hover, 35 | a.thumbnail:focus, 36 | a.thumbnail.active { 37 | border-color: $link-color; 38 | } 39 | -------------------------------------------------------------------------------- /UpdateDB/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/ModelDescriptionLink.cshtml: -------------------------------------------------------------------------------- 1 | @using MIMDashboard.Areas.HelpPage.ModelDescriptions 2 | @model Type 3 | @{ 4 | ModelDescription modelDescription = ViewBag.modelDescription; 5 | if (modelDescription is ComplexTypeModelDescription || modelDescription is EnumTypeModelDescription) 6 | { 7 | if (Model == typeof(Object)) 8 | { 9 | @:Object 10 | } 11 | else 12 | { 13 | @Html.ActionLink(modelDescription.Name, "ResourceModel", "Help", new { modelName = modelDescription.Name }, null) 14 | } 15 | } 16 | else if (modelDescription is CollectionModelDescription) 17 | { 18 | var collectionDescription = modelDescription as CollectionModelDescription; 19 | var elementDescription = collectionDescription.ElementDescription; 20 | @:Collection of @Html.DisplayFor(m => elementDescription.ModelType, "ModelDescriptionLink", new { modelDescription = elementDescription }) 21 | } 22 | else 23 | { 24 | @Html.DisplayFor(m => modelDescription) 25 | } 26 | } -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/PlayerStats/actions/player.action.tsx: -------------------------------------------------------------------------------- 1 | export function fetchErrored(bool: boolean) { 2 | return { 3 | type: 'FETCH_ERRORED', 4 | hasErrored: bool 5 | }; 6 | } 7 | 8 | export function fetchLoading(bool: boolean) { 9 | return { 10 | type: 'FETCH_LOADING', 11 | isLoading: bool 12 | }; 13 | } 14 | 15 | export function fetchSuccess(items: any) { 16 | return { 17 | type: 'FETCH_SUCCESS', 18 | items 19 | }; 20 | } 21 | 22 | export function FetchData(url: string) { 23 | return (dispatch: any) => { 24 | dispatch(fetchLoading(true)); 25 | 26 | fetch(url) 27 | .then(response => response.json(), 28 | error => console.log('An error occured.', error) 29 | 30 | ) 31 | .then(json => { 32 | 33 | dispatch(fetchLoading(false)); 34 | dispatch(fetchSuccess(json)); 35 | console.log(json) 36 | 37 | }) 38 | .catch(() => dispatch(fetchErrored(true))); 39 | 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /MIMDashboard/Results/ChallengeResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Net; 5 | using System.Net.Http; 6 | using System.Threading; 7 | using System.Threading.Tasks; 8 | using System.Web.Http; 9 | 10 | namespace MIMDashboard.Results 11 | { 12 | public class ChallengeResult : IHttpActionResult 13 | { 14 | public ChallengeResult(string loginProvider, ApiController controller) 15 | { 16 | LoginProvider = loginProvider; 17 | Request = controller.Request; 18 | } 19 | 20 | public string LoginProvider { get; set; } 21 | public HttpRequestMessage Request { get; set; } 22 | 23 | public Task ExecuteAsync(CancellationToken cancellationToken) 24 | { 25 | Request.GetOwinContext().Authentication.Challenge(LoginProvider); 26 | 27 | HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Unauthorized); 28 | response.RequestMessage = Request; 29 | return Task.FromResult(response); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_pager.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Pager pagination 3 | // -------------------------------------------------- 4 | 5 | 6 | .pager { 7 | padding-left: 0; 8 | margin: $line-height-computed 0; 9 | list-style: none; 10 | text-align: center; 11 | @include clearfix; 12 | li { 13 | display: inline; 14 | > a, 15 | > span { 16 | display: inline-block; 17 | padding: 5px 14px; 18 | background-color: $pager-bg; 19 | border: 1px solid $pager-border; 20 | border-radius: $pager-border-radius; 21 | } 22 | 23 | > a:hover, 24 | > a:focus { 25 | text-decoration: none; 26 | background-color: $pager-hover-bg; 27 | } 28 | } 29 | 30 | .next { 31 | > a, 32 | > span { 33 | float: right; 34 | } 35 | } 36 | 37 | .previous { 38 | > a, 39 | > span { 40 | float: left; 41 | } 42 | } 43 | 44 | .disabled { 45 | > a, 46 | > a:hover, 47 | > a:focus, 48 | > span { 49 | color: $pager-disabled-color; 50 | background-color: $pager-bg; 51 | cursor: $cursor-disabled; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Liam Kenneth 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MIMWebClient/Core/Mob/Responses.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Mob 7 | { 8 | public class Responses 9 | { 10 | /// 11 | /// Match Dialog tree ID 12 | /// 13 | public string QuestionId { get; set; } 14 | public string AnswerId { get; set; } 15 | public int QuestId { get; set; } = 0; 16 | public List Keyword { get; set; } 17 | public string MatchPhrase { get; set; } 18 | public string Response { get; set; } 19 | public bool? GiveQuest { get; set; } = false; 20 | public bool? GivePrerequisiteItem { get; set; } = false; 21 | public string ShowIfOnQuest { get; set; } 22 | public int ShowIfLevelUpTo { get; set; } = 0; 23 | public bool ShowIfEvil { get; set; } = false; 24 | public bool ShowIfGood { get; set; } = false; 25 | public bool ShowIfNeutral { get; set; } = false; 26 | public string DontShowIfOnQuest { get; set; } 27 | public string DoEmote { get; set; } 28 | 29 | } 30 | } -------------------------------------------------------------------------------- /MIMWebClient/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Liam Kenneth 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/.versions: -------------------------------------------------------------------------------- 1 | allow-deny@1.0.5 2 | babel-compiler@6.14.1 3 | babel-runtime@1.0.1 4 | base64@1.0.10 5 | binary-heap@1.0.10 6 | blaze@2.1.9 7 | blaze-tools@1.0.10 8 | boilerplate-generator@1.0.11 9 | callback-hook@1.0.10 10 | check@1.2.5 11 | ddp@1.2.5 12 | ddp-client@1.3.3 13 | ddp-common@1.2.8 14 | ddp-server@1.3.13 15 | deps@1.0.12 16 | diff-sequence@1.0.7 17 | ecmascript@0.6.3 18 | ecmascript-runtime@0.3.15 19 | ejson@1.0.13 20 | geojson-utils@1.0.10 21 | html-tools@1.0.11 22 | htmljs@1.0.11 23 | http@1.2.12 24 | id-map@1.0.9 25 | jquery@1.11.10 26 | local-test:nagoshi:rpg-awesome@0.1.1 27 | logging@1.1.17 28 | meteor@1.6.1 29 | minimongo@1.0.21 30 | modules@0.7.9 31 | modules-runtime@0.7.9 32 | mongo@1.1.16 33 | mongo-id@1.0.6 34 | nagoshi:rpg-awesome@0.1.1 35 | npm-mongo@2.2.24 36 | observe-sequence@1.0.16 37 | ordered-dict@1.0.9 38 | promise@0.8.8 39 | random@1.0.10 40 | reactive-var@1.0.11 41 | retry@1.0.9 42 | routepolicy@1.0.12 43 | spacebars@1.0.13 44 | spacebars-compiler@1.0.13 45 | test-helpers@1.0.11 46 | tinytest@1.0.12 47 | tracker@1.1.2 48 | ui@1.0.12 49 | underscore@1.0.10 50 | url@1.1.0 51 | webapp@1.3.14 52 | webapp-hashing@1.0.9 53 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/SampleGeneration/InvalidSample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage 4 | { 5 | /// 6 | /// This represents an invalid sample on the help page. There's a display template named InvalidSample associated with this class. 7 | /// 8 | public class InvalidSample 9 | { 10 | public InvalidSample(string errorMessage) 11 | { 12 | if (errorMessage == null) 13 | { 14 | throw new ArgumentNullException("errorMessage"); 15 | } 16 | ErrorMessage = errorMessage; 17 | } 18 | 19 | public string ErrorMessage { get; private set; } 20 | 21 | public override bool Equals(object obj) 22 | { 23 | InvalidSample other = obj as InvalidSample; 24 | return other != null && ErrorMessage == other.ErrorMessage; 25 | } 26 | 27 | public override int GetHashCode() 28 | { 29 | return ErrorMessage.GetHashCode(); 30 | } 31 | 32 | public override string ToString() 33 | { 34 | return ErrorMessage; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MIMDashboard/Models/AccountViewModels.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace MIMDashboard.Models 5 | { 6 | // Models returned by AccountController actions. 7 | 8 | public class ExternalLoginViewModel 9 | { 10 | public string Name { get; set; } 11 | 12 | public string Url { get; set; } 13 | 14 | public string State { get; set; } 15 | } 16 | 17 | public class ManageInfoViewModel 18 | { 19 | public string LocalLoginProvider { get; set; } 20 | 21 | public string Email { get; set; } 22 | 23 | public IEnumerable Logins { get; set; } 24 | 25 | public IEnumerable ExternalLoginProviders { get; set; } 26 | } 27 | 28 | public class UserInfoViewModel 29 | { 30 | public string Email { get; set; } 31 | 32 | public bool HasRegistered { get; set; } 33 | 34 | public string LoginProvider { get; set; } 35 | } 36 | 37 | public class UserLoginInfoViewModel 38 | { 39 | public string LoginProvider { get; set; } 40 | 41 | public string ProviderKey { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MIMWebClient/App_Start/BundleConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Optimization; 3 | 4 | namespace MIMWebClient 5 | { 6 | public class BundleConfig 7 | { 8 | // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 9 | public static void RegisterBundles(BundleCollection bundles) 10 | { 11 | bundles.Add(new ScriptBundle("~/bundles/jquery").Include( 12 | "~/Scripts/jquery-{version}.js", 13 | "~/UI/JS/perfect-scrollbar.jquery.min.js" 14 | )); 15 | 16 | bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( 17 | "~/Scripts/jquery.validate*")); 18 | 19 | 20 | bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( 21 | "~/Scripts/bootstrap.js", 22 | "~/Scripts/respond.js")); 23 | 24 | 25 | bundles.Add(new StyleBundle("~/bundles/UI").Include( 26 | "~/Content/bootstrap.min.css", 27 | "~/UI/Css/master.min.css" 28 | )); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /MIM.Test/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Events/FindFirstAndLast.cs: -------------------------------------------------------------------------------- 1 | namespace MIMWebClient.Core.Events 2 | { 3 | using System; 4 | using System.Collections.Generic; 5 | 6 | public class FindFirstAndLast 7 | { 8 | public static KeyValuePair FindFirstAndLastIndex(string thingToFind) 9 | { 10 | string item = thingToFind; 11 | string itemContainer = null; 12 | 13 | int indexOfSpaceInUserInput = thingToFind.IndexOf(" ", StringComparison.Ordinal); 14 | int lastIndexOfSpaceInUserInput = thingToFind.LastIndexOf(" ", StringComparison.Ordinal); 15 | 16 | if (indexOfSpaceInUserInput > 0 && lastIndexOfSpaceInUserInput == -1) 17 | { 18 | item = thingToFind.Substring(0, indexOfSpaceInUserInput); 19 | } 20 | 21 | if (lastIndexOfSpaceInUserInput != -1) 22 | { 23 | item = thingToFind.Substring(0, indexOfSpaceInUserInput); 24 | itemContainer = thingToFind.Substring(lastIndexOfSpaceInUserInput).TrimStart(); 25 | } 26 | return new KeyValuePair(item, itemContainer); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------------------------------- 3 | 4 | // Utilities 5 | @import "mixins/hide-text"; 6 | @import "mixins/opacity"; 7 | @import "mixins/image"; 8 | @import "mixins/labels"; 9 | @import "mixins/reset-filter"; 10 | @import "mixins/resize"; 11 | @import "mixins/responsive-visibility"; 12 | @import "mixins/size"; 13 | @import "mixins/tab-focus"; 14 | @import "mixins/reset-text"; 15 | @import "mixins/text-emphasis"; 16 | @import "mixins/text-overflow"; 17 | @import "mixins/vendor-prefixes"; 18 | 19 | // Components 20 | @import "mixins/alerts"; 21 | @import "mixins/buttons"; 22 | @import "mixins/panels"; 23 | @import "mixins/pagination"; 24 | @import "mixins/list-group"; 25 | @import "mixins/nav-divider"; 26 | @import "mixins/forms"; 27 | @import "mixins/progress-bar"; 28 | @import "mixins/table-row"; 29 | 30 | // Skins 31 | @import "mixins/background-variant"; 32 | @import "mixins/border-radius"; 33 | @import "mixins/gradients"; 34 | 35 | // Layout 36 | @import "mixins/clearfix"; 37 | @import "mixins/center-block"; 38 | @import "mixins/nav-vertical-align"; 39 | @import "mixins/grid-framework"; 40 | @import "mixins/grid"; 41 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Inventory.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 MIMWebClient.Core.Player 8 | { 9 | using MIMWebClient.Core.Item; 10 | using MIMWebClient.Core.PlayerSetup; 11 | 12 | public class Inventory 13 | { 14 | 15 | public static void ReturnInventory(ItemContainer inventory, Player player) 16 | { 17 | if (inventory != null && inventory.Count > 0) 18 | { 19 | 20 | var itemList = new StringBuilder(); 21 | itemList.Append("You are carrying:").AppendLine(); 22 | 23 | foreach(var item in ItemContainer.List(inventory.Where(x => x.location == Item.ItemLocation.Inventory), true)){ 24 | itemList.AppendLine(item); 25 | } 26 | 27 | HubContext.Instance.AddNewMessageToPage(player.HubGuid, itemList.ToString()); 28 | } 29 | else 30 | { 31 | HubContext.Instance.AddNewMessageToPage(player.HubGuid, "You are not carrying anything."); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | // Proper spacing between instances of .media 3 | margin-top: 15px; 4 | 5 | &:first-child { 6 | margin-top: 0; 7 | } 8 | } 9 | 10 | .media, 11 | .media-body { 12 | zoom: 1; 13 | overflow: hidden; 14 | } 15 | 16 | .media-body { 17 | width: 10000px; 18 | } 19 | 20 | .media-object { 21 | display: block; 22 | 23 | // Fix collapse in webkit from max-width: 100% and display: table-cell. 24 | &.img-thumbnail { 25 | max-width: none; 26 | } 27 | } 28 | 29 | .media-right, 30 | .media > .pull-right { 31 | padding-left: 10px; 32 | } 33 | 34 | .media-left, 35 | .media > .pull-left { 36 | padding-right: 10px; 37 | } 38 | 39 | .media-left, 40 | .media-right, 41 | .media-body { 42 | display: table-cell; 43 | vertical-align: top; 44 | } 45 | 46 | .media-middle { 47 | vertical-align: middle; 48 | } 49 | 50 | .media-bottom { 51 | vertical-align: bottom; 52 | } 53 | 54 | // Reset margins on headings for tighter default spacing 55 | .media-heading { 56 | margin-top: 0; 57 | margin-bottom: 5px; 58 | } 59 | 60 | // Media list variation 61 | // 62 | // Undo default ul/ol styles 63 | .media-list { 64 | padding-left: 0; 65 | list-style: none; 66 | } 67 | -------------------------------------------------------------------------------- /MIMWebClient/compilerconfig.json.defaults: -------------------------------------------------------------------------------- 1 | { 2 | "compilers": { 3 | "less": { 4 | "autoPrefix": "", 5 | "cssComb": "none", 6 | "ieCompat": true, 7 | "strictMath": false, 8 | "strictUnits": false, 9 | "relativeUrls": true, 10 | "rootPath": "", 11 | "sourceMapRoot": "", 12 | "sourceMapBasePath": "", 13 | "sourceMap": false 14 | }, 15 | "sass": { 16 | "includePath": "", 17 | "indentType": "space", 18 | "indentWidth": 2, 19 | "outputStyle": "nested", 20 | "Precision": 5, 21 | "relativeUrls": true, 22 | "sourceMapRoot": "", 23 | "sourceMap": false 24 | }, 25 | "stylus": { 26 | "sourceMap": false 27 | }, 28 | "babel": { 29 | "sourceMap": false 30 | }, 31 | "coffeescript": { 32 | "bare": false, 33 | "runtimeMode": "node", 34 | "sourceMap": false 35 | } 36 | }, 37 | "minifiers": { 38 | "css": { 39 | "enabled": true, 40 | "termSemicolons": true, 41 | "gzip": false 42 | }, 43 | "javascript": { 44 | "enabled": true, 45 | "termSemicolons": true, 46 | "gzip": false 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /MIMDashboard/App_Start/BundleConfig.cs: -------------------------------------------------------------------------------- 1 | using System.Web; 2 | using System.Web.Optimization; 3 | 4 | namespace MIMDashboard 5 | { 6 | public class BundleConfig 7 | { 8 | // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 9 | public static void RegisterBundles(BundleCollection bundles) 10 | { 11 | bundles.Add(new ScriptBundle("~/bundles/jquery").Include( 12 | "~/Scripts/jquery-{version}.js")); 13 | 14 | // Use the development version of Modernizr to develop with and learn from. Then, when you're 15 | // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. 16 | bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( 17 | "~/Scripts/modernizr-*")); 18 | 19 | bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( 20 | "~/Scripts/bootstrap.js", 21 | "~/Scripts/respond.js")); 22 | 23 | bundles.Add(new StyleBundle("~/Content/css").Include( 24 | "~/Content/bootstrap.css", 25 | "~/Content/site.css")); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /MIMWebClient/Views/Home/Partial/CharacterCreation/ClassSelection.cshtml: -------------------------------------------------------------------------------- 1 |
2 |
3 | 17 |
18 |
19 |
20 | 21 |
22 |
23 |
24 |
25 | 26 | 27 |
28 |
29 |
-------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/SampleGeneration/ImageSample.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MIMDashboard.Areas.HelpPage 4 | { 5 | /// 6 | /// This represents an image sample on the help page. There's a display template named ImageSample associated with this class. 7 | /// 8 | public class ImageSample 9 | { 10 | /// 11 | /// Initializes a new instance of the class. 12 | /// 13 | /// The URL of an image. 14 | public ImageSample(string src) 15 | { 16 | if (src == null) 17 | { 18 | throw new ArgumentNullException("src"); 19 | } 20 | Src = src; 21 | } 22 | 23 | public string Src { get; private set; } 24 | 25 | public override bool Equals(object obj) 26 | { 27 | ImageSample other = obj as ImageSample; 28 | return other != null && Src == other.Src; 29 | } 30 | 31 | public override int GetHashCode() 32 | { 33 | return Src.GetHashCode(); 34 | } 35 | 36 | public override string ToString() 37 | { 38 | return Src; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /MIMDashboard/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mimdashboard", 3 | "version": "1.0.0", 4 | "description": "Stats for mim", 5 | "main": "webpack.config.js", 6 | "dependencies": { 7 | "@types/react": "^16.0.0", 8 | "@types/react-dom": "^15.5.1", 9 | "babel-core": "^6.25.0", 10 | "babel-loader": "^7.1.1", 11 | "babel-preset-es2015": "^6.24.1", 12 | "babel-preset-react": "^6.24.1", 13 | "html-webpack-plugin": "^2.30.1", 14 | "react": "^15.6.1", 15 | "react-dom": "^15.6.1", 16 | "react-redux": "^5.0.5", 17 | "redux": "^3.7.2", 18 | "redux-thunk": "^2.2.0", 19 | "webpack": "^3.4.1" 20 | }, 21 | "devDependencies": { 22 | "awesome-typescript-loader": "^3.2.2", 23 | "css-loader": "^0.28.4", 24 | "cssnano": "^3.10.0", 25 | "extract-text-webpack-plugin": "^3.0.0", 26 | "node-sass": "^4.5.3", 27 | "optimize-css-assets-webpack-plugin": "^3.0.0", 28 | "sass-loader": "^6.0.6", 29 | "source-map-loader": "^0.2.1", 30 | "style-loader": "^0.18.2", 31 | "tslint": "^5.5.0", 32 | "typescript": "^2.4.2", 33 | "webpack-dev-server": "^2.6.1" 34 | }, 35 | "scripts": { 36 | "start": "webpack-dev-server", 37 | "test": "echo \"Error: no test specified\" && exit 1" 38 | }, 39 | "author": "Liam Kenneth", 40 | "license": "MIT" 41 | } 42 | -------------------------------------------------------------------------------- /MIM.Test/Core/PlayerSetup/PlayerStatsTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIM.Test.Core.PlayerSetup 9 | { 10 | class PlayerStatsTest 11 | { 12 | 13 | [Test] 14 | public void ShouldRollStats() 15 | { 16 | 17 | var playerStats = new MIMWebClient.Core.PlayerSetup.PlayerStats(); 18 | 19 | 20 | var stat = playerStats.rollStats(); 21 | 22 | Assert.That(stat[0], Is.GreaterThan(6)); 23 | 24 | } 25 | 26 | [Test] 27 | public void ShouldRollSixStats() 28 | { 29 | 30 | var playerStats = new MIMWebClient.Core.PlayerSetup.PlayerStats(); 31 | 32 | 33 | var stat = playerStats.rollStats(); 34 | 35 | Assert.That(stat.Length, Is.EqualTo(6)); 36 | 37 | } 38 | 39 | [Test] 40 | public void ShouldRollDice() 41 | { 42 | 43 | var playerStats = new MIMWebClient.Core.PlayerSetup.PlayerStats(); 44 | 45 | 46 | var diceRoll = playerStats.dice(2, 6); 47 | 48 | Assert.That(diceRoll, Is.GreaterThan(2)); 49 | Assert.That(diceRoll, Is.LessThan(13)); 50 | } 51 | 52 | 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/Index.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using System.Web.Http.Controllers 3 | @using System.Web.Http.Description 4 | @using System.Collections.ObjectModel 5 | @using MIMDashboard.Areas.HelpPage.Models 6 | @model Collection 7 | 8 | @{ 9 | ViewBag.Title = "ASP.NET Web API Help Page"; 10 | 11 | // Group APIs by controller 12 | ILookup apiGroups = Model.ToLookup(api => api.ActionDescriptor.ControllerDescriptor); 13 | } 14 | 15 | 16 |
17 |
18 |
19 |

@ViewBag.Title

20 |
21 |
22 |
23 |
24 | 32 |
33 | @foreach (var group in apiGroups) 34 | { 35 | @Html.DisplayFor(m => group, "ApiGroup") 36 | } 37 |
38 |
39 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Clothing/Arms/ClothingArms.cs: -------------------------------------------------------------------------------- 1 | using MIMWebClient.Core.Item; 2 | 3 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Clothing.Arms 4 | { 5 | public static class ClothingArms 6 | { 7 | public static Item.Item WoolenClothSleeves() 8 | { 9 | 10 | return new Item.Item 11 | { 12 | name = "Woolen Cloth Sleeves", 13 | armourType = Item.Item.ArmourType.Cloth, 14 | eqSlot = Item.Item.EqSlot.Arms, 15 | description = new Description() 16 | { 17 | look = "This is a simple woolen sleeves which provides basic protection and warmth.", 18 | }, 19 | location = Item.Item.ItemLocation.Inventory, 20 | slot = Item.Item.EqSlot.Arms, 21 | type = Item.Item.ItemType.Armour, 22 | ArmorRating = new ArmourRating() 23 | { 24 | Armour = 3, 25 | Magic = 0 26 | }, 27 | Weight = 2, 28 | equipable = true, 29 | stats = new Stats() 30 | { 31 | minUsageLevel = 5 32 | } 33 | 34 | }; 35 | 36 | } 37 | 38 | } 39 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Clothing/Feet/ClothingFeet.cs: -------------------------------------------------------------------------------- 1 | using MIMWebClient.Core.Item; 2 | 3 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Clothing.Feet 4 | { 5 | public static class ClothingFeet 6 | { 7 | 8 | public static Item.Item WoolenClothBoots() 9 | { 10 | 11 | return new Item.Item 12 | { 13 | name = "Woolen Cloth Boots", 14 | armourType = Item.Item.ArmourType.Cloth, 15 | eqSlot = Item.Item.EqSlot.Feet, 16 | description = new Description() 17 | { 18 | look = "This is a simple woolen boots which provides basic protection and warmth.", 19 | }, 20 | location = Item.Item.ItemLocation.Inventory, 21 | slot = Item.Item.EqSlot.Feet, 22 | type = Item.Item.ItemType.Armour, 23 | ArmorRating = new ArmourRating() 24 | { 25 | Armour = 3, 26 | Magic = 0 27 | }, 28 | Weight = 2, 29 | equipable = true, 30 | stats = new Stats() 31 | { 32 | minUsageLevel = 5 33 | } 34 | 35 | }; 36 | 37 | } 38 | 39 | } 40 | } -------------------------------------------------------------------------------- /MIMWebClient/Global.asax.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Mvc; 6 | using System.Web.Optimization; 7 | using System.Web.Routing; 8 | using MIMWebClient.Core.PlayerSetup; 9 | using MIMWebClient.Core.Update; 10 | using MIMWebClient.Core.World; 11 | using MIMWebClient.Hubs; 12 | 13 | namespace MIMWebClient 14 | { 15 | public class MvcApplication : System.Web.HttpApplication 16 | { 17 | protected void Application_Start() 18 | { 19 | AreaRegistration.RegisterAllAreas(); 20 | FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 21 | RouteConfig.RegisterRoutes(RouteTable.Routes); 22 | BundleConfig.RegisterBundles(BundleTable.Bundles); 23 | UpdateWorld.Init(); 24 | UpdateWorld.CleanRoom(); 25 | UpdateWorld.UpdateMob(); 26 | PlayerName.GenerateHumanNames(); 27 | var x = Startup.SetMappedRooms; 28 | 29 | foreach (var area in Startup.ReturnRooms) 30 | { 31 | 32 | var room = new Tuple(area.region, area.area, area.areaId); 33 | 34 | MIMHub._AreaCache.TryAdd(room, area); 35 | 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /MIMWebClient/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Clothing/Head/ClothingHead.cs: -------------------------------------------------------------------------------- 1 | using MIMWebClient.Core.Item; 2 | 3 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Clothing.Head 4 | { 5 | public static class ClothingHead 6 | { 7 | 8 | 9 | public static Item.Item WoolenClothHelmet() 10 | { 11 | 12 | return new Item.Item 13 | { 14 | name = "Woolen Cloth Helmet", 15 | armourType = Item.Item.ArmourType.Cloth, 16 | eqSlot = Item.Item.EqSlot.Head, 17 | description = new Description() 18 | { 19 | look = "This is a simple woolen helmet which provides basic protection and warmth.", 20 | }, 21 | location = Item.Item.ItemLocation.Inventory, 22 | slot = Item.Item.EqSlot.Head, 23 | type = Item.Item.ItemType.Armour, 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | Weight = 2, 30 | equipable = true, 31 | stats = new Stats() 32 | { 33 | minUsageLevel = 5 34 | } 35 | 36 | }; 37 | 38 | } 39 | 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Clothing/Hands/ClothingHands.cs: -------------------------------------------------------------------------------- 1 | using MIMWebClient.Core.Item; 2 | 3 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Clothing.Hands 4 | { 5 | public static class ClothingHands 6 | { 7 | 8 | 9 | public static Item.Item WoolenClothGloves() 10 | { 11 | 12 | return new Item.Item 13 | { 14 | name = "Woolen Cloth Gloves", 15 | armourType = Item.Item.ArmourType.Cloth, 16 | eqSlot = Item.Item.EqSlot.Hands, 17 | description = new Description() 18 | { 19 | look = "This is a simple woolen gloves which provides basic protection and warmth.", 20 | }, 21 | location = Item.Item.ItemLocation.Inventory, 22 | slot = Item.Item.EqSlot.Hands, 23 | type = Item.Item.ItemType.Armour, 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | Weight = 2, 30 | equipable = true, 31 | stats = new Stats() 32 | { 33 | minUsageLevel = 5 34 | } 35 | 36 | }; 37 | 38 | } 39 | 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /MIM.Test/Core/Player/Spells/MagicMissileTest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Player.Skills; 7 | using MIMWebClient.Core.Room; 8 | using NUnit.Framework; 9 | 10 | namespace MIM.Test.Core.Player.Spells 11 | { 12 | class MagicMissileTest 13 | { 14 | 15 | [Test] 16 | public void ShouldCastMagicMissile() 17 | { 18 | //mock player 19 | var player = new MIMWebClient.Core.PlayerSetup.Player() 20 | { 21 | Name = "Liam" 22 | }; 23 | //give spell to player 24 | var magicMissle = MagicMissile.MagicMissileAb(); 25 | 26 | player.Skills.Add(magicMissle); 27 | 28 | //mock target 29 | var target = new MIMWebClient.Core.PlayerSetup.Player() 30 | { 31 | Name = "target" 32 | }; 33 | 34 | //mock room 35 | var room = new Room(); 36 | room.players = new List(); 37 | room.players.Add(player); 38 | room.players.Add(target); 39 | 40 | 41 | Assert.DoesNotThrow(() => MagicMissile.StartMagicMissile(player, room, "")); 42 | 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Events/Emote.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 MIMWebClient.Core.Events 8 | { 9 | using MIMWebClient.Core.PlayerSetup; 10 | using MIMWebClient.Core.Room; 11 | 12 | public class Emote 13 | { 14 | 15 | public static void EmoteActionToRoom(string message, Player player) 16 | { 17 | var players = Cache.ReturnPlayers().Where(x => x.AreaId.Equals(player.AreaId) && x.Area.Equals(player.Area) && x.Region.Equals(player.Region)); 18 | 19 | foreach (var pc in players) 20 | { 21 | if (pc != player) 22 | { 23 | HubContext.Instance.SendToClient(Helpers.ReturnName(player, pc, string.Empty) + " " + message, pc.HubGuid); 24 | } 25 | else 26 | { 27 | HubContext.Instance.SendToClient("You " + message, pc.HubGuid); 28 | } 29 | 30 | } 31 | 32 | } 33 | 34 | public static void EmoteLaugh(string message, Player player, Room room) 35 | { 36 | //add standard emotes 37 | // malleus laughs 38 | // malleus laughs at you / malleus laughs at bob 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /MIMWebClient/Views/Room/Details.cshtml: -------------------------------------------------------------------------------- 1 | @model MIMWebClient.Core.Room.Room 2 | 3 | @{ 4 | ViewBag.Title = "Details"; 5 | } 6 | 7 |

Index

8 | 9 | 10 | 11 |
12 | Edit Room 13 |

@Model.title

14 |
15 |

Terrain: @Model.terrain


16 |

@Model.description

17 | 18 |

Items

19 | 20 |
    21 | @{ 22 | foreach (var item in Model.items) 23 | { 24 |
  • @item.name
  • 25 | } 26 | } 27 |
28 | 29 |

Mobs

30 | 31 | @{ 32 | if (Model.mobs.Count > 0) 33 | { 34 | 35 |
    36 | @{ 37 | foreach (var item in Model.mobs) 38 | { 39 |
  • @item.Name
  • 40 | } 41 | } 42 |
43 | 44 | } 45 | else 46 | { 47 |

None

48 | } 49 | } 50 | 51 |

Exits

52 | 53 |
    54 | @{ 55 | foreach (var item in Model.exits) 56 | { 57 |
  • @item.name
  • 58 | } 59 | } 60 |
61 | 62 | 63 |
64 | -------------------------------------------------------------------------------- /MIMDashboard/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/MiscEQ/Containers/Containers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.World.Items.MiscEQ.Containers 7 | { 8 | public class Containers 9 | { 10 | public static Item.Item LeatherBackpack() 11 | { 12 | var backpack = new Item.Item 13 | { 14 | name = "Leather Backpack", 15 | container = true, 16 | containerSize = 30, 17 | Weight = 1, 18 | count = 10, 19 | equipable = false, 20 | location = Item.Item.ItemLocation.Inventory, 21 | canOpen = true, 22 | Gold = 25 23 | }; 24 | 25 | return backpack; 26 | } 27 | 28 | public static Item.Item WoodenChest() 29 | { 30 | return new Item.Item 31 | { 32 | name = "Wooden Chest", 33 | container = true, 34 | containerSize = 15, 35 | Weight = 1, 36 | count = 10, 37 | equipable = false, 38 | location = Item.Item.ItemLocation.Inventory, 39 | canOpen = true, 40 | Gold = 25 41 | }; 42 | 43 | } 44 | 45 | } 46 | } -------------------------------------------------------------------------------- /MIMDashboard/Models/IdentityModels.cs: -------------------------------------------------------------------------------- 1 | using System.Security.Claims; 2 | using System.Threading.Tasks; 3 | using Microsoft.AspNet.Identity; 4 | using Microsoft.AspNet.Identity.EntityFramework; 5 | using Microsoft.AspNet.Identity.Owin; 6 | 7 | namespace MIMDashboard.Models 8 | { 9 | // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. 10 | public class ApplicationUser : IdentityUser 11 | { 12 | public async Task GenerateUserIdentityAsync(UserManager manager, string authenticationType) 13 | { 14 | // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 15 | var userIdentity = await manager.CreateIdentityAsync(this, authenticationType); 16 | // Add custom user claims here 17 | return userIdentity; 18 | } 19 | } 20 | 21 | public class ApplicationDbContext : IdentityDbContext 22 | { 23 | public ApplicationDbContext() 24 | : base("DefaultConnection", throwIfV1Schema: false) 25 | { 26 | } 27 | 28 | public static ApplicationDbContext Create() 29 | { 30 | return new ApplicationDbContext(); 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /MIMWebClient/App_Start/RouteConfig.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Http; 6 | using System.Web.Mvc; 7 | using System.Web.Routing; 8 | 9 | namespace MIMWebClient 10 | { 11 | public class RouteConfig 12 | { 13 | public static void RegisterRoutes(RouteCollection routes) 14 | { 15 | routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 16 | 17 | 18 | routes.MapHttpRoute( 19 | name: "API Default", 20 | routeTemplate: "api/{controller}/{action}/{id}", 21 | defaults: new { id = RouteParameter.Optional } 22 | ); 23 | 24 | routes.MapRoute( 25 | name: "Room", 26 | url: "{controller}/{action}/{region}/{area}/{areaId}", 27 | defaults: new { controller = "Home", action = "Index", region = UrlParameter.Optional, area = UrlParameter.Optional, areaId = UrlParameter.Optional } 28 | ); 29 | 30 | 31 | routes.MapRoute( 32 | "Default", 33 | "{controller}/{action}/{id}", 34 | new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 35 | new[] { "MIMWebClient.Controllers" } 36 | ); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/mixins/_image.scss: -------------------------------------------------------------------------------- 1 | // Image Mixins 2 | // - Responsive image 3 | // - Retina image 4 | 5 | 6 | // Responsive image 7 | // 8 | // Keep images from scaling beyond the width of their parents. 9 | @mixin img-responsive($display: block) { 10 | display: $display; 11 | max-width: 100%; // Part 1: Set a maximum relative to the parent 12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching 13 | } 14 | 15 | 16 | // Retina image 17 | // 18 | // Short retina mixin for setting background-image and -size. Note that the 19 | // spelling of `min--moz-device-pixel-ratio` is intentional. 20 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) { 21 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}")); 22 | 23 | @media 24 | only screen and (-webkit-min-device-pixel-ratio: 2), 25 | only screen and ( min--moz-device-pixel-ratio: 2), 26 | only screen and ( -o-min-device-pixel-ratio: 2/1), 27 | only screen and ( min-device-pixel-ratio: 2), 28 | only screen and ( min-resolution: 192dpi), 29 | only screen and ( min-resolution: 2dppx) { 30 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}")); 31 | background-size: $width-1x $height-1x; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /MIMWebClient/Views/Room/Index.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | 3 | @{ 4 | ViewBag.Title = "Index"; 5 | } 6 | 7 |

Index

8 | 9 | 10 | 11 |
12 |

Rooms

13 | Create a new room 14 | 15 |
16 |
17 |
18 |

Region

19 | 20 | @{ 21 | foreach (var room in Model) 22 | { 23 | 24 | Edit 25 | 26 |

@room.region

27 | 28 | //find all rooms in region 29 | } 30 | } 31 | 32 |
33 |
34 |

Area

35 | @{ 36 | foreach (var room in Model) 37 | { 38 | 39 | Edit 40 | 41 |

@room.area - @room.title

42 | 43 | 44 | } 45 | } 46 | 47 |
48 |
49 |
50 | 51 | 52 |
53 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Mob/DialogTree.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Player; 6 | 7 | namespace MIMWebClient.Core.Mob 8 | { 9 | public class DialogTree 10 | { 11 | /// 12 | /// ID = MobName + int e.g Modo1 13 | /// 14 | public string Id { get; set; } 15 | public int? QuestId { get; set; } 16 | public string Message { get; set; } 17 | public string MatchPhrase { get; set; } 18 | public bool? GiveQuest { get; set; } = false; 19 | public bool? GivePrerequisiteItem { get; set; } = false; 20 | public Item.Item GiveItem { get; set; } 21 | public string GiveItemEmote { get; set; } 22 | public Skill GiveSkill { get; set; } 23 | public List PossibleResponse { get; set; } 24 | public bool? DoAction { get; set; } = false; 25 | public string ShowIfOnQuest { get; set; } = String.Empty; 26 | public int ShowIfLevelUpTo { get; set; } = 0; 27 | public bool ShowIfEvil { get; set; } = false; 28 | public bool ShowIfGood { get; set; } = false; 29 | public bool ShowIfNeutral { get; set; } = false; 30 | public string DontShowIfOnQuest { get; set; } = String.Empty; 31 | 32 | public Action CallScript { get; set; } 33 | } 34 | } -------------------------------------------------------------------------------- /MIMWebClient/Web.Debug.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/RPGAwesome/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, Daniela Howe 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Prompt.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 MIMWebClient.Core.Player 8 | { 9 | using MIMWebClient.Core.PlayerSetup; 10 | 11 | public class Prompt 12 | { 13 | public static void ShowPrompt(Player player) 14 | { 15 | int hp = PlayerStats.GetHp(player); 16 | int maxHP = PlayerStats.GetMaxHp(player); 17 | int mana = PlayerStats.GetMana(player); 18 | int maxMana = PlayerStats.GetMaxMana(player); 19 | int move = PlayerStats.GetMove(player); 20 | int maxMove= PlayerStats.GetMaxMove(player); 21 | 22 | var prompt = new StringBuilder(); 23 | 24 | prompt.Append("<") 25 | .Append(hp) 26 | .Append("/") 27 | .Append(maxHP) 28 | .Append("HP ") 29 | .Append(mana) 30 | .Append("/") 31 | .Append(maxMana) 32 | .Append("MP ") 33 | .Append(move) 34 | .Append("/") 35 | .Append(maxMove) 36 | .Append("Mvs") 37 | .Append(">"); 38 | 39 | 40 | HubContext.Instance.SendToClient(prompt.ToString(), player.HubGuid); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml: -------------------------------------------------------------------------------- 1 | @using System.Web.Http 2 | @using System.Web.Http.Controllers 3 | @using System.Web.Http.Description 4 | @using MIMDashboard.Areas.HelpPage 5 | @using MIMDashboard.Areas.HelpPage.Models 6 | @model IGrouping 7 | 8 | @{ 9 | var controllerDocumentation = ViewBag.DocumentationProvider != null ? 10 | ViewBag.DocumentationProvider.GetDocumentation(Model.Key) : 11 | null; 12 | } 13 | 14 |

@Model.Key.ControllerName

15 | @if (!String.IsNullOrEmpty(controllerDocumentation)) 16 | { 17 |

@controllerDocumentation

18 | } 19 | 20 | 21 | 22 | 23 | 24 | @foreach (var api in Model) 25 | { 26 | 27 | 28 | 38 | 39 | } 40 | 41 |
APIDescription
@api.HttpMethod.Method @api.RelativePath 29 | @if (api.Documentation != null) 30 | { 31 |

@api.Documentation

32 | } 33 | else 34 | { 35 |

No documentation available.

36 | } 37 |
-------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/ShortBlades.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 MIMWebClient.Core.Player.Skills 8 | { 9 | using System.Runtime.CompilerServices; 10 | 11 | using MIMWebClient.Core.PlayerSetup; 12 | using MIMWebClient.Core.Room; 13 | 14 | public class ShortBlades: Skill 15 | { 16 | 17 | public static Skill ShortBladesSkill { get; set; } 18 | public static Skill ShortBladesAb() 19 | { 20 | 21 | 22 | if (ShortBladesSkill != null) 23 | { 24 | return ShortBladesSkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | 31 | Name = "Short Blades", 32 | CoolDown = 0, 33 | Delay = 0, 34 | LevelObtained = 1, 35 | Passive = true, 36 | UsableFromStatus = "Fighting", 37 | Syntax = "Passive command", 38 | WeaponType = Item.Item.WeaponType.ShortBlades 39 | }; 40 | 41 | 42 | ShortBladesSkill = skill; 43 | } 44 | 45 | return ShortBladesSkill; 46 | 47 | } 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_jumbotron.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Jumbotron 3 | // -------------------------------------------------- 4 | 5 | 6 | .jumbotron { 7 | padding-top: $jumbotron-padding; 8 | padding-bottom: $jumbotron-padding; 9 | margin-bottom: $jumbotron-padding; 10 | color: $jumbotron-color; 11 | background-color: $jumbotron-bg; 12 | 13 | h1, 14 | .h1 { 15 | color: $jumbotron-heading-color; 16 | } 17 | 18 | p { 19 | margin-bottom: ($jumbotron-padding / 2); 20 | font-size: $jumbotron-font-size; 21 | font-weight: 200; 22 | } 23 | 24 | > hr { 25 | border-top-color: darken($jumbotron-bg, 10%); 26 | } 27 | 28 | .container &, 29 | .container-fluid & { 30 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container 31 | padding-left: ($grid-gutter-width / 2); 32 | padding-right: ($grid-gutter-width / 2); 33 | } 34 | 35 | .container { 36 | max-width: 100%; 37 | } 38 | 39 | @media screen and (min-width: $screen-sm-min) { 40 | padding-top: ($jumbotron-padding * 1.6); 41 | padding-bottom: ($jumbotron-padding * 1.6); 42 | 43 | .container &, 44 | .container-fluid & { 45 | padding-left: ($jumbotron-padding * 2); 46 | padding-right: ($jumbotron-padding * 2); 47 | } 48 | 49 | h1, 50 | .h1 { 51 | font-size: $jumbotron-heading-font-size; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /MIMDashboard/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/HandtoHand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class HandToHand: Skill 16 | { 17 | 18 | public static Skill HandToHandSkill { get; set; } 19 | public static Skill HandToHandAb() 20 | { 21 | 22 | Skill HandToHand = null; 23 | 24 | if (HandToHandSkill != null) 25 | { 26 | HandToHand = HandToHandSkill; 27 | } 28 | else 29 | { 30 | var skill = new Skill 31 | { 32 | Name = "Hand To Hand", 33 | CoolDown = 0, 34 | Delay = 0, 35 | LevelObtained = 1, 36 | Passive = true, 37 | UsableFromStatus = "Standing", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | }; 41 | 42 | 43 | HandToHandSkill = skill; 44 | } 45 | 46 | return HandToHandSkill; 47 | 48 | } 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /MIM.Test/Core/PlayerSetup/PlayerRaceTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIM.Test.Core.PlayerSetup 9 | { 10 | class PlayerRaceTest 11 | { 12 | [Test] 13 | public void ShouldCreateHumanRace() 14 | { 15 | 16 | var playerRace = MIMWebClient.Core.PlayerSetup.PlayerRace.selectRace("Human"); 17 | 18 | 19 | Assert.That(playerRace.name, Is.EqualTo("Human")); 20 | 21 | } 22 | 23 | [Test] 24 | public void ShouldCreateElfRace() 25 | { 26 | 27 | var playerRace = MIMWebClient.Core.PlayerSetup.PlayerRace.selectRace("Elf"); 28 | 29 | 30 | Assert.That(playerRace.name, Is.EqualTo("Elf")); 31 | 32 | } 33 | 34 | [Test] 35 | public void ShouldCreateDarkElfRace() 36 | { 37 | 38 | var playerRace = MIMWebClient.Core.PlayerSetup.PlayerRace.selectRace("Dark Elf"); 39 | 40 | 41 | Assert.That(playerRace.name, Is.EqualTo("Dark Elf")); 42 | 43 | } 44 | 45 | [Test] 46 | public void ShouldCreateDwarfRace() 47 | { 48 | 49 | var playerRace = MIMWebClient.Core.PlayerSetup.PlayerRace.selectRace("Dwarf"); 50 | 51 | 52 | Assert.That(playerRace.name, Is.EqualTo("Dwarf")); 53 | 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Consumables/Drinks/magicalSpring.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Consumables.Drinks 8 | { 9 | public class MagicalSpring 10 | { 11 | public static Item.Item MagicalWaterSpring() 12 | { 13 | var MagicalSpring = new Item.Item 14 | { 15 | name = "Magical Spring", 16 | Weight = 0, 17 | count = 1, 18 | equipable = false, 19 | stuck = true, 20 | location = Item.Item.ItemLocation.Room, 21 | waterContainer = true, 22 | waterContainerAmount = 999, 23 | waterContainerMaxAmount = 999, 24 | description = new Description() 25 | { 26 | exam = "A magicial spring shoots water up in the air.", 27 | look = "A magicial spring shoots water up in the air.", 28 | room = "A magicial spring shoots water up in the air.", 29 | smell = "", 30 | taste = "", 31 | touch = "", 32 | }, 33 | Gold = 0, 34 | decayTimer = 24 35 | 36 | }; 37 | 38 | return MagicalSpring; 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Classes/Reclasses/Ranger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Player.Classes.Reclasses 7 | { 8 | using MIMWebClient.Core.Events; 9 | using MIMWebClient.Core.Player.Skills; 10 | 11 | public class Ranger : PlayerClass 12 | { 13 | public static PlayerClass RangerClass() 14 | { 15 | var ranger = new PlayerClass 16 | { 17 | Name = "Ranger", 18 | IsBaseClass = false, 19 | ExperienceModifier = 2000, 20 | HelpText = new Help(), 21 | Skills = new List(), 22 | ReclassOptions = new List(), 23 | MaxHpGain = 20, 24 | MinHpGain = 13, 25 | MaxManaGain = 15, 26 | MinManaGain = 5, 27 | MaxEnduranceGain = 40, 28 | MinEnduranceGain = 15, 29 | StatBonusCon = 1, 30 | StatBonusDex = 2 31 | }; 32 | 33 | #region Give fighter punch skill 34 | 35 | var punch = Punch.PunchAb(); 36 | punch.LevelObtained = 2; 37 | punch.Proficiency = 1; 38 | punch.MaxProficiency = 95; 39 | ranger.Skills.Add(punch); 40 | 41 | #endregion 42 | 43 | return ranger; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMWebClient/Web.Release.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Races/Elf.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Events; 6 | using MIMWebClient.Core.Player.Classes.Reclasses; 7 | using MIMWebClient.Core.Player.Skills; 8 | 9 | namespace MIMWebClient.Core.Player.Races 10 | { 11 | public class Elf : PlayerRace 12 | { 13 | 14 | public static PlayerRace ElfRace() 15 | { 16 | 17 | 18 | var elf = new PlayerRace() 19 | { 20 | Name = "Elf", 21 | ExperienceModifier = 300, 22 | HelpText = new Help(), 23 | MaxStr = 16, 24 | MaxDex = 20, 25 | MaxCon = 16, 26 | MaxInt = 25, 27 | MaxWis = 21, 28 | MaxCha = 20, 29 | 30 | 31 | }; 32 | 33 | elf.HelpText.HelpText = "Elves are slightly taller than humans, but have a much lighter build. " + 34 | "They lack the strength and stamina of the other races, but are far more agile," + 35 | " both in body and mind. Elves are superb mages and thieves, but have at best fair" + 36 | " talent as warriors or priests. Elves resist charm spells most effectively," + 37 | " due to their magical nature. They may see in the dark with infravision."; 38 | 39 | 40 | 41 | 42 | return elf; 43 | 44 | 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_labels.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Labels 3 | // -------------------------------------------------- 4 | 5 | .label { 6 | display: inline; 7 | padding: .2em .6em .3em; 8 | font-size: 75%; 9 | font-weight: bold; 10 | line-height: 1; 11 | color: $label-color; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | border-radius: .25em; 16 | 17 | // [converter] extracted a& to a.label 18 | 19 | // Empty labels collapse automatically (not available in IE8) 20 | &:empty { 21 | display: none; 22 | } 23 | 24 | // Quick fix for labels in buttons 25 | .btn & { 26 | position: relative; 27 | top: -1px; 28 | } 29 | } 30 | 31 | // Add hover effects, but only for links 32 | a.label { 33 | &:hover, 34 | &:focus { 35 | color: $label-link-hover-color; 36 | text-decoration: none; 37 | cursor: pointer; 38 | } 39 | } 40 | 41 | // Colors 42 | // Contextual variations (linked labels get darker on :hover) 43 | 44 | .label-default { 45 | @include label-variant($label-default-bg); 46 | } 47 | 48 | .label-primary { 49 | @include label-variant($label-primary-bg); 50 | } 51 | 52 | .label-success { 53 | @include label-variant($label-success-bg); 54 | } 55 | 56 | .label-info { 57 | @include label-variant($label-info-bg); 58 | } 59 | 60 | .label-warning { 61 | @include label-variant($label-warning-bg); 62 | } 63 | 64 | .label-danger { 65 | @include label-variant($label-danger-bg); 66 | } 67 | -------------------------------------------------------------------------------- /MIM.Test/Core/PlayerSetup/PlayerClassTest.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace MIM.Test.Core.PlayerSetup 9 | { 10 | class PlayerClassTest 11 | { 12 | 13 | [Test] 14 | public void ShouldCreateFighterClass() 15 | { 16 | 17 | var playerClass = MIMWebClient.Core.PlayerSetup.PlayerClass.selectClass("Fighter"); 18 | 19 | 20 | Assert.That(playerClass.name, Is.EqualTo("Fighter")); 21 | 22 | } 23 | 24 | [Test] 25 | public void ShouldCreateTheifClass() 26 | { 27 | 28 | var playerClass = MIMWebClient.Core.PlayerSetup.PlayerClass.selectClass("Theif"); 29 | 30 | 31 | Assert.That(playerClass.name, Is.EqualTo("Theif")); 32 | 33 | } 34 | 35 | [Test] 36 | public void ShouldCreateClericClass() 37 | { 38 | 39 | var playerClass = MIMWebClient.Core.PlayerSetup.PlayerClass.selectClass("Cleric"); 40 | 41 | 42 | Assert.That(playerClass.name, Is.EqualTo("Cleric")); 43 | 44 | } 45 | 46 | [Test] 47 | public void ShouldCreateMageClass() 48 | { 49 | 50 | var playerClass = MIMWebClient.Core.PlayerSetup.PlayerClass.selectClass("Mage"); 51 | 52 | 53 | Assert.That(playerClass.name, Is.EqualTo("Mage")); 54 | 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Head/ScalemailHead.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Head 8 | { 9 | public class ScalemailHead 10 | { 11 | public static Item.Item ScalemailHelm() 12 | { 13 | var ScalemailHelm = new Item.Item 14 | { 15 | name = "Scalemail helm", 16 | Weight = 4, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Head, 20 | slot = Item.Item.EqSlot.Head, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Helm", 33 | look = "Scalemail Helm", 34 | room = "Scalemail Helm", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailHelm; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Mob/Events/Greeting.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Mob.Events 7 | { 8 | public class Greeting 9 | { 10 | public static void greet(PlayerSetup.Player player, PlayerSetup.Player mob, Room.Room room, string message = "") 11 | { 12 | var isMobHere = room.mobs.FirstOrDefault(x => x.Name.Equals(mob.Name)); 13 | 14 | if (isMobHere == null) 15 | { 16 | return; 17 | } 18 | 19 | if (player.Type == PlayerSetup.Player.PlayerTypes.Player && message == string.Empty) 20 | { 21 | if (!string.IsNullOrEmpty(mob.GreetMessage)) 22 | { 23 | string greetMessageToRoom = mob.GreetMessage + " " + player.Name; 24 | 25 | foreach (var character in room.players) 26 | { 27 | 28 | var roomMessage = $"{ Helpers.ReturnName(mob, character, string.Empty)} says \"{greetMessageToRoom}\""; 29 | 30 | HubContext.Instance.SendToClient(roomMessage, character.HubGuid); 31 | 32 | } 33 | } 34 | 35 | } 36 | else 37 | { 38 | 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Feet/ScalemailFeet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Feet 8 | { 9 | public class ScalemailFeet 10 | { 11 | public static Item.Item ScalemailBoots() 12 | { 13 | var ScalemailBoots = new Item.Item 14 | { 15 | name = "Scalemail helm", 16 | Weight = 4, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Feet, 20 | slot = Item.Item.EqSlot.Feet, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Boots", 33 | look = "Scalemail Boots", 34 | room = "Scalemail Boots", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailBoots; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMDashboard/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MIMDashboard")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MIMDashboard")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1aa659e9-b3d4-42bf-845d-7f3f9844d23a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Legs/ScalemailLegs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Legs 8 | { 9 | public class ScalemailLegs 10 | { 11 | public static Item.Item ScalemailGreaves() 12 | { 13 | var ScalemailGreaves = new Item.Item 14 | { 15 | name = "Scalemail Greaves", 16 | Weight = 4, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Legs, 20 | slot = Item.Item.EqSlot.Legs, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Legs", 33 | look = "Scalemail Legs", 34 | room = "Scalemail Legs", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailGreaves; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Arms/ScalemailArms.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Arms 8 | { 9 | public class ScalemailArms 10 | { 11 | public static Item.Item ScalemailSleeves() 12 | { 13 | var ScalemailSleeves = new Item.Item 14 | { 15 | name = "Scalemail Sleeves", 16 | Weight = 4, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Arms, 20 | slot = Item.Item.EqSlot.Arms, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Sleeves", 33 | look = "Scalemail Sleeves", 34 | room = "Scalemail Sleeves", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailSleeves; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMDashboard/Client/Components/Dashboard.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { connect } from 'react-redux'; 3 | import { FetchData } from './PlayerStats/actions/player.action'; 4 | 5 | 6 | type stats = { 7 | newUsersDay: number, 8 | newUsersWeek: number, 9 | newUsersMonth: number, 10 | errors: any, 11 | hasErrored: boolean, 12 | isLoading: boolean 13 | 14 | } 15 | 16 | class Dashboard extends React.Component { 17 | 18 | 19 | componentDidMount() { 20 | this.props.FetchData('./client/Components/fake.json'); 21 | } 22 | 23 | render() { 24 | 25 | if (this.state.props.isLoading) { 26 | return

Loading…

; 27 | } 28 | 29 | return ( 30 |
31 | 32 | 33 |

Dashboard, users: {this.state.props.newUsersDay}

34 | 35 |
36 | ) 37 | } 38 | } 39 | 40 | 41 | const mapStateToProps = (state: stats) => { 42 | return { 43 | newUsersDay: state.newUsersDay, 44 | newUsersWeek: state.newUsersWeek, 45 | newUserMonth: state.newUsersMonth, 46 | errors: state.errors, 47 | hasErrored: state.hasErrored, 48 | isLoading: state.isLoading 49 | }; 50 | }; 51 | 52 | const mapDispatchToProps = (dispatch: any) => { 53 | return { 54 | FetchData: (url: string) => dispatch(FetchData(url)) 55 | }; 56 | }; 57 | 58 | 59 | export default connect(mapStateToProps, mapDispatchToProps)(Dashboard); 60 | -------------------------------------------------------------------------------- /MIMDashboard/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 |
2 |

ASP.NET

3 |

ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.

4 |

Learn more »

5 |
6 |
7 |
8 |

Getting started

9 |

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach 10 | a broad range of clients, including browsers and mobile devices. ASP.NET Web API 11 | is an ideal platform for building RESTful applications on the .NET Framework.

12 |

Learn more »

13 |
14 |
15 |

Get more libraries

16 |

NuGet is a free Visual Studio extension that makes it easy to add, remove, and update libraries and tools in Visual Studio projects.

17 |

Learn more »

18 |
19 |
20 |

Web Hosting

21 |

You can easily find a web hosting company that offers the right mix of features and price for your applications.

22 |

Learn more »

23 |
24 |
25 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Tumble.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | using MIMWebClient.Core.PlayerSetup; 8 | 9 | namespace MIMWebClient.Core.Player.Skills 10 | { 11 | 12 | public class Tumble : Skill 13 | { 14 | 15 | public static Skill TumbleSkill { get; set; } 16 | public static Skill TumbleAb() 17 | { 18 | 19 | if (TumbleSkill != null) 20 | { 21 | return TumbleSkill; 22 | } 23 | else 24 | { 25 | var skill = new Skill 26 | { 27 | Name = "Tumble", 28 | CoolDown = 0, 29 | Delay = 0, 30 | LevelObtained = 12, 31 | Proficiency = 1, 32 | MaxProficiency = 95, 33 | Passive = true, 34 | UsableFromStatus = "Fighting", 35 | Syntax = "Tumble", 36 | MovesCost = 10, 37 | HelpText = new Help() 38 | { 39 | HelpText = "tumble help text", 40 | DateUpdated = new DateTime().ToShortDateString() 41 | } 42 | }; 43 | 44 | 45 | TumbleSkill = skill; 46 | } 47 | 48 | return TumbleSkill; 49 | 50 | } 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Hands/ScalemailHands.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Hands 8 | { 9 | public class ScalemailHands 10 | { 11 | public static Item.Item ScalemailGauntlets() 12 | { 13 | var ScalemailGauntlets = new Item.Item 14 | { 15 | name = "Scalemail Gauntlets", 16 | Weight = 4, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Hands, 20 | slot = Item.Item.EqSlot.Hands, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Gauntlets", 33 | look = "Scalemail Gauntlets", 34 | room = "Scalemail Gauntlets", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailGauntlets; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMWebClient/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MIMWebClient")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MIMWebClient")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("82b1e7b8-79d3-4aa1-b326-3136971d9c65")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /MIMWebClient/Views/Home/Partial/CharacterCreation/RaceSelection.cshtml: -------------------------------------------------------------------------------- 1 |
2 |
3 | 24 |
25 |
26 |
27 | 28 |
29 |
30 | 31 |
32 |
33 | 34 | 35 |
36 |
37 |
38 | 39 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/MediumArmour/ScaleMail/Body/ScaleMailBody.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.MediumArmour.ScaleMail.Body 8 | { 9 | public class ScalemailBody 10 | { 11 | public static Item.Item ScalemailBreastPlate() 12 | { 13 | var ScalemailBreastPlate = new Item.Item 14 | { 15 | name = "Scalemail Breast Plate", 16 | Weight = 7, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Torso, 20 | slot = Item.Item.EqSlot.Torso, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 1, 28 | 29 | }, 30 | description = new Description() 31 | { 32 | exam = "Scalemail Breast Plate", 33 | look = "Scalemail Breast Plate", 34 | room = "Scalemail Breast Plate", 35 | smell = "", 36 | taste = "", 37 | touch = "", 38 | }, 39 | Gold = 60 40 | 41 | }; 42 | 43 | return ScalemailBreastPlate; 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /MIMWebClient/UI/Css/Lib/bootstrap/_badges.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Badges 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .badge { 8 | display: inline-block; 9 | min-width: 10px; 10 | padding: 3px 7px; 11 | font-size: $font-size-small; 12 | font-weight: $badge-font-weight; 13 | color: $badge-color; 14 | line-height: $badge-line-height; 15 | vertical-align: middle; 16 | white-space: nowrap; 17 | text-align: center; 18 | background-color: $badge-bg; 19 | border-radius: $badge-border-radius; 20 | 21 | // Empty badges collapse automatically (not available in IE8) 22 | &:empty { 23 | display: none; 24 | } 25 | 26 | // Quick fix for badges in buttons 27 | .btn & { 28 | position: relative; 29 | top: -1px; 30 | } 31 | 32 | .btn-xs &, 33 | .btn-group-xs > .btn & { 34 | top: 0; 35 | padding: 1px 5px; 36 | } 37 | 38 | // [converter] extracted a& to a.badge 39 | 40 | // Account for badges in navs 41 | .list-group-item.active > &, 42 | .nav-pills > .active > a > & { 43 | color: $badge-active-color; 44 | background-color: $badge-active-bg; 45 | } 46 | 47 | .list-group-item > & { 48 | float: right; 49 | } 50 | 51 | .list-group-item > & + & { 52 | margin-right: 5px; 53 | } 54 | 55 | .nav-pills > li > a > & { 56 | margin-left: 3px; 57 | } 58 | } 59 | 60 | // Hover state, but only for links 61 | a.badge { 62 | &:hover, 63 | &:focus { 64 | color: $badge-link-hover-color; 65 | text-decoration: none; 66 | cursor: pointer; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /MIM.Test/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MIM.Test")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("MIM.Test")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0a1c8e08-dba8-4e35-a48d-e03be4e5b1d4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /UpdateDB/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("UpdateDB")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("UpdateDB")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0582158a-31e1-493e-a7e4-dd5f227a635b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Races/PlayerRace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Events; 6 | using MIMWebClient.Core.Player.Classes; 7 | 8 | namespace MIMWebClient.Core.Player.Races 9 | { 10 | public class PlayerRace 11 | { 12 | public string Name { get; set; } 13 | public int ExperienceModifier { get; set; } 14 | public List InnateSkills { get; set;} 15 | public List InnateSpells { get; set; } 16 | public Help HelpText { get; set; } 17 | public int MaxStr { get; set; } 18 | public int MaxDex { get; set; } 19 | public int MaxCon { get; set; } 20 | public int MaxInt { get; set; } 21 | public int MaxWis { get; set; } 22 | public int MaxCha { get; set; } 23 | public int HungerModifier { get; set; } 24 | public int ThirstModifier { get; set; } 25 | public string Alignment { get; set; } 26 | public string[] Vulnerabilities { get; set; } 27 | public string[] Resistances { get; set; } 28 | /// 29 | /// Size of the race 30 | /// 31 | public PlayerSetup.Player.SizeCategories Size { get; set; } 32 | public List SuggestedClass { get; set; } 33 | /// 34 | /// Humans and Half humans receive a bonus point to their class 35 | /// 36 | public bool PrimeStat { get; set; } 37 | 38 | //Add Weakness / Resistances 39 | 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Weapons/Flail/FlailBasic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Weapons.Flail 8 | { 9 | public class FlailBasic 10 | { 11 | 12 | public static Item.Item CopperFlail() 13 | { 14 | var CopperFlail = new Item.Item 15 | { 16 | name = "Copper two headed flail", 17 | Weight = 5, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Wielded, 20 | slot = Item.Item.EqSlot.Wielded, 21 | location = Item.Item.ItemLocation.Inventory, 22 | weaponSpeed = 4, 23 | weaponType = Item.Item.WeaponType.Flail, 24 | attackType = Item.Item.AttackType.Crush, 25 | stats = new Stats() 26 | { 27 | damMax = 8, 28 | damMin = 1, 29 | damRoll = 0, 30 | minUsageLevel = 5, 31 | worth = 10 32 | }, 33 | description = new Description() 34 | { 35 | look = "A simple copper two headed flail.", 36 | smell = "", 37 | taste = "", 38 | touch = "", 39 | }, 40 | Gold = 25 41 | 42 | }; 43 | 44 | return CopperFlail; 45 | } 46 | 47 | 48 | } 49 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Padded/Arms/PaddedSleeves.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Padded.Arms 8 | { 9 | public class PaddedSleeves 10 | { 11 | public static Item.Item PaddedSleeve() 12 | { 13 | var paddedSleeves = new Item.Item 14 | { 15 | name = "Padded Leather Sleeves", 16 | Weight = 8, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Arms, 20 | slot = Item.Item.EqSlot.Arms, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | description = new Description() 30 | { 31 | exam = "These padded sleeves offer basic protection to the arms", 32 | look = "These padded sleeves offer basic protection to the arms", 33 | room = "Padded leather gloves lay here", 34 | smell = "", 35 | taste = "", 36 | touch = "", 37 | }, 38 | Gold = 20 39 | 40 | }; 41 | 42 | return paddedSleeves; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Padded/Legs/PaddedLegsBasic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Padded.Legs 8 | { 9 | public class PaddedLegsBasic 10 | { 11 | public static Item.Item PaddedGreaves() 12 | { 13 | var paddedGreaves = new Item.Item 14 | { 15 | name = "Padded Leather Greaves", 16 | Weight = 6, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Legs, 20 | slot = Item.Item.EqSlot.Legs, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | description = new Description() 30 | { 31 | exam = "These padded greaves offer basic protection to the legs", 32 | look = "These padded greaves offer basic protection to the legs", 33 | room = "Padded leather greaves lay here", 34 | smell = "", 35 | taste = "", 36 | touch = "", 37 | }, 38 | Gold = 20 39 | 40 | }; 41 | 42 | return paddedGreaves; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Axe.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class Axe: Skill 16 | { 17 | 18 | public static Skill AxeSkill { get; set; } 19 | public static Skill AxeAb() 20 | { 21 | 22 | if (AxeSkill != null) 23 | { 24 | return AxeSkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | Name = "Axe", 31 | CoolDown = 0, 32 | Delay = 0, 33 | LevelObtained = 1, 34 | Proficiency = 1, 35 | MaxProficiency = 95, 36 | Passive = true, 37 | UsableFromStatus = "Fighting", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | { 41 | HelpText = "Axe help text", 42 | DateUpdated = new DateTime().ToShortDateString() 43 | } 44 | }; 45 | 46 | 47 | AxeSkill = skill; 48 | } 49 | 50 | return AxeSkill; 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Padded/Hands/PaddedHandsBasic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Padded.Hands 8 | { 9 | public class PaddedHandsBasic 10 | { 11 | public static Item.Item PaddedGloves() 12 | { 13 | var paddedGloves = new Item.Item 14 | { 15 | name = "Padded Leather Gloves", 16 | Weight = 3, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Hands, 20 | slot = Item.Item.EqSlot.Hands, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | description = new Description() 30 | { 31 | exam = "These padded gloves offer basic protection to the hands", 32 | look = "These padded gloves offer basic protection to the hands", 33 | room = "Padded leather gloves lay here", 34 | smell = "", 35 | taste = "", 36 | touch = "", 37 | }, 38 | Gold = 20 39 | 40 | }; 41 | 42 | return paddedGloves; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Events/FindWhere.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | 6 | namespace MIMWebClient.Core.Events 7 | { 8 | public class FindWhere 9 | { 10 | 11 | public static object find(Room.Room room, PlayerSetup.Player player, int findNth, string itemToFind) 12 | { 13 | 14 | //search room items 1st 15 | 16 | var foundItem = FindItem.Item(room.items, findNth, itemToFind, Item.Item.ItemLocation.Room); 17 | 18 | if (foundItem != null) { return foundItem; } 19 | 20 | //search player inventory 21 | foundItem = FindItem.Item(player.Inventory, findNth, itemToFind, Item.Item.ItemLocation.Inventory); 22 | 23 | if (foundItem != null) 24 | { 25 | return foundItem; 26 | } 27 | 28 | //search mob 29 | var foundMob = FindItem.Player(room.mobs, findNth, itemToFind); 30 | 31 | if (foundMob != null) 32 | { 33 | return foundMob; 34 | } 35 | 36 | //search players 37 | var foundPlayer = FindItem.Player(room.players, findNth, itemToFind); 38 | 39 | if (foundPlayer != null) 40 | { 41 | return foundPlayer; 42 | } 43 | else 44 | { 45 | 46 | HubContext.Instance.SendToClient($"You don't see anything by that name here.", player.HubGuid); 47 | 48 | 49 | } 50 | 51 | return null; 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/World/Items/Armour/LightArmour/Leather/Waist/LeatherBootBasic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using MIMWebClient.Core.Item; 6 | 7 | namespace MIMWebClient.Core.World.Items.Armour.LightArmour.Leather.Feet 8 | { 9 | public class LeatherBootBasic 10 | { 11 | public static Item.Item WornLeatherBoots() 12 | { 13 | var wornLeatherBoots = new Item.Item 14 | { 15 | name = "Worn Leather Boots", 16 | Weight = 2, 17 | count = 10, 18 | equipable = true, 19 | eqSlot = Item.Item.EqSlot.Feet, 20 | slot = Item.Item.EqSlot.Feet, 21 | type = Item.Item.ItemType.Armour, 22 | location = Item.Item.ItemLocation.Inventory, 23 | 24 | ArmorRating = new ArmourRating() 25 | { 26 | Armour = 3, 27 | Magic = 0 28 | }, 29 | description = new Description() 30 | { 31 | exam = "These worn leather boots offer basic protection to the feet", 32 | look = "Theseworn leather boots offer basic protection to the feet", 33 | room = "Worn leather boots lay here", 34 | smell = "", 35 | taste = "", 36 | touch = "", 37 | }, 38 | Gold = 20 39 | 40 | }; 41 | 42 | return wornLeatherBoots; 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Dodge.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class Dodge: Skill 16 | { 17 | 18 | public static Skill DodgeSkill { get; set; } 19 | public static Skill DodgeAb() 20 | { 21 | 22 | if (DodgeSkill != null) 23 | { 24 | return DodgeSkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | Name = "Dodge", 31 | CoolDown = 0, 32 | Delay = 0, 33 | LevelObtained = 6, 34 | Proficiency = 1, 35 | MaxProficiency = 95, 36 | Passive = true, 37 | UsableFromStatus = "Fighting", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | { 41 | HelpText = "Dodge help text", 42 | DateUpdated = new DateTime().ToShortDateString() 43 | } 44 | }; 45 | 46 | 47 | DodgeSkill = skill; 48 | } 49 | 50 | return DodgeSkill; 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Flail.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class Flail: Skill 16 | { 17 | 18 | public static Skill FlailSkill { get; set; } 19 | public static Skill FlailAb() 20 | { 21 | 22 | if (FlailSkill != null) 23 | { 24 | return FlailSkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | Name = "Flail", 31 | CoolDown = 0, 32 | Delay = 0, 33 | LevelObtained = 1, 34 | Proficiency = 1, 35 | MaxProficiency = 95, 36 | Passive = true, 37 | UsableFromStatus = "Fighting", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | { 41 | HelpText = "Flail help text", 42 | DateUpdated = new DateTime().ToShortDateString() 43 | } 44 | }; 45 | 46 | 47 | FlailSkill = skill; 48 | } 49 | 50 | return FlailSkill; 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Parry.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class Parry: Skill 16 | { 17 | 18 | public static Skill ParrySkill { get; set; } 19 | public static Skill ParryAb() 20 | { 21 | 22 | if (ParrySkill != null) 23 | { 24 | return ParrySkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | Name = "Parry", 31 | CoolDown = 0, 32 | Delay = 0, 33 | LevelObtained = 6, 34 | Proficiency = 1, 35 | MaxProficiency = 95, 36 | Passive = true, 37 | UsableFromStatus = "Fighting", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | { 41 | HelpText = "Parry help text", 42 | DateUpdated = new DateTime().ToShortDateString() 43 | } 44 | }; 45 | 46 | 47 | ParrySkill = skill; 48 | } 49 | 50 | return ParrySkill; 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MIMWebClient/Core/Player/Skills/Staff.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using MIMWebClient.Core.Events; 7 | 8 | namespace MIMWebClient.Core.Player.Skills 9 | { 10 | using System.Runtime.CompilerServices; 11 | 12 | using MIMWebClient.Core.PlayerSetup; 13 | using MIMWebClient.Core.Room; 14 | 15 | public class Staff: Skill 16 | { 17 | 18 | public static Skill StaffSkill { get; set; } 19 | public static Skill StaffAb() 20 | { 21 | 22 | if (StaffSkill != null) 23 | { 24 | return StaffSkill; 25 | } 26 | else 27 | { 28 | var skill = new Skill 29 | { 30 | Name = "Staff", 31 | CoolDown = 0, 32 | Delay = 0, 33 | LevelObtained = 1, 34 | Proficiency = 1, 35 | MaxProficiency = 95, 36 | Passive = true, 37 | UsableFromStatus = "Fighting", 38 | Syntax = "Passive command", 39 | HelpText = new Help() 40 | { 41 | HelpText = "Staff help text", 42 | DateUpdated = new DateTime().ToShortDateString() 43 | } 44 | }; 45 | 46 | 47 | StaffSkill = skill; 48 | } 49 | 50 | return StaffSkill; 51 | 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /MIMDashboard/Areas/HelpPage/ModelDescriptions/ModelNameHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Linq; 4 | using System.Reflection; 5 | 6 | namespace MIMDashboard.Areas.HelpPage.ModelDescriptions 7 | { 8 | internal static class ModelNameHelper 9 | { 10 | // Modify this to provide custom model name mapping. 11 | public static string GetModelName(Type type) 12 | { 13 | ModelNameAttribute modelNameAttribute = type.GetCustomAttribute(); 14 | if (modelNameAttribute != null && !String.IsNullOrEmpty(modelNameAttribute.Name)) 15 | { 16 | return modelNameAttribute.Name; 17 | } 18 | 19 | string modelName = type.Name; 20 | if (type.IsGenericType) 21 | { 22 | // Format the generic type name to something like: GenericOfAgurment1AndArgument2 23 | Type genericType = type.GetGenericTypeDefinition(); 24 | Type[] genericArguments = type.GetGenericArguments(); 25 | string genericTypeName = genericType.Name; 26 | 27 | // Trim the generic parameter counts from the name 28 | genericTypeName = genericTypeName.Substring(0, genericTypeName.IndexOf('`')); 29 | string[] argumentTypeNames = genericArguments.Select(t => GetModelName(t)).ToArray(); 30 | modelName = String.Format(CultureInfo.InvariantCulture, "{0}Of{1}", genericTypeName, String.Join("And", argumentTypeNames)); 31 | } 32 | 33 | return modelName; 34 | } 35 | } 36 | } --------------------------------------------------------------------------------