Example #1
0
        public void AccessibilityModifierFromAnotherAssembly()
        {
            var subclass = new Subclass();

            Assert.NotNull(subclass.PublicMemberA);
            Assert.NotNull(subclass.ExposedProtectedMember);
        }
Example #2
0
        public virtual void OnImportsSatisfied()
        {
            var windowMessages = Observable.FromEventPattern <WindowEventArgs>(FHost, "WindowAdded")
                                 .Select(p => p.EventArgs.Window)
                                 .Merge(
                Observable.FromEventPattern <ComponentModeEventArgs>(FHost, "AfterComponentModeChange")
                .Select(p => p.EventArgs.Window)
                )
                                 .OfType <Window>()
                                 .Where(w => w.UserInputWindow != null && w.UserInputWindow.InputWindowHandle != IntPtr.Zero)
                                 .Where(w => !FSubclasses.Any(s => s.HWnd == w.UserInputWindow.InputWindowHandle))
                                 .Select(w => new { subclass = Subclass.Create(w.UserInputWindow.InputWindowHandle), sender = w.UserInputWindow })
                                 .Do(_ =>
            {
                _.subclass.Disposed += HandleSubclassDisposed;
                FSubclasses.Add(_.subclass);
                SubclassCreated(_.subclass);
            }
                                     )
                                 .SelectMany(_ => Observable.FromEventPattern <WMEventArgs>(_.subclass, "WindowMessage"),
                                             (_, evp) => new EventPattern <WMEventArgs>(_.sender, evp.EventArgs))
                                 .Where(_ => FEnabledIn.SliceCount > 0 && FEnabledIn[0]);
            var disabled = FEnabledIn.ToObservable(1)
                           .DistinctUntilChanged()
                           .Where(enabled => !enabled);

            Initialize(windowMessages, disabled);
        }
Example #3
0
 private void TryEnabledTouchMessage(Subclass subclass, User32.TouchWindowFlags mode)
 {
     if (!User32.RegisterTouchWindow(subclass.HWnd, mode))
     {
         FLogger.Log(LogType.Error, "Failed to enabled touch messages for window {0}.", subclass.HWnd);
     }
 }
        public void CompileTimeTypeDeterminesWhichOverloadToExcecute()
        {
            Subclass subclassReference = new Subclass();

            Assert.That(OverloadedMethod(subclassReference),
                        Is.EqualTo("Executed: OverloadedMethod(Subclass)"));
        }
Example #5
0
        public void SubclassRepo_GetAllSubclassesForClass_ValidCall()
        {
            //Arrange
            List <Subclass> subclasses        = CreateTestData.GetListOfSubclass();
            var             subclassesMockSet = new Mock <DbSet <Subclass> >()
                                                .SetupData(subclasses, o =>
            {
                return(subclasses.Single(x => x.Subclass_id.CompareTo(o.First()) == 0));
            });

            List <Subclass> expected   = new List <Subclass>();
            Subclass        gunslinger = CreateTestData.GetSubclass();

            expected.Add(gunslinger);

            using (var mockContext = AutoMock.GetLoose())
            {
                mockContext.Mock <PlayableClassContext>()
                .Setup(x => x.Subclasses).Returns(subclassesMockSet.Object);

                //Act
                var toTest = mockContext.Create <SubclassRepository>();
                var actual = toTest.GetAllSubclassesForClass(gunslinger.Class_id);

                //Assert
                actual.Should().NotBeNull();
                expected.Should().NotBeNull();
                actual.Should().BeOfType <List <Subclass> >();
                expected.Should().BeOfType <List <Subclass> >();
                actual.Should().BeEquivalentTo(expected);
            }
        }
        public void RuntimeTimeTypeDoesNotDetermineWhichOverloadToExcecute()
        {
            BaseClass baseClassReferenceToSubclass = new Subclass();

            Assert.That(OverloadedMethod(baseClassReferenceToSubclass),
                        Is.EqualTo("Executed: OverloadedMethod(BaseClass)"));
        }
        public void OverloadThatTakesBaseClassChoosenOverMethodThatTakesObject()
        {
            Subclass subclassReference = new Subclass();

            Assert.That(MethodTakingObjectOrBaseClass(subclassReference),
                        Is.EqualTo("Executed: MethodTakingObjectOrBaseClass(BaseClass)"));
        }
        public void DeleteSubclass(int subclassId)
        {
            Subclass entity = _ctx.Subclasses.Single(e => e.SubclassId == subclassId);

            _ctx.Subclasses.Remove(entity);
            _ctx.SaveChanges();
        }
Example #9
0
        public static List <Subclass> GetListOfSubclass()
        {
            List <Subclass> subclasses = new List <Subclass>();

            var Gunslinger = GetSubclass();

            subclasses.Add(Gunslinger);
            var BeastMaster = new Subclass
            {
                Class_id    = Guid.Parse("969c08ca-f983-4ddd-b351-31962f2429cd"),
                Subclass_id = Guid.Parse("c7de67ae-3a65-4261-9c09-05a7b0c527bb"),
                Name        = "Beast Master",
                Description = "BM"
            };

            subclasses.Add(BeastMaster);
            var Transmutation = new Subclass
            {
                Class_id    = Guid.Parse("4e82620a-0496-4ecc-b6d4-05faa064310b"),
                Subclass_id = Guid.Parse("c8d2e23a-a193-4e06-8814-9180d4830732"),
                Name        = "School of Transmutation",
                Description = "This is the law of equivalent exchange"
            };

            subclasses.Add(Transmutation);
            return(subclasses);
        }
        public void UpdateSubclass(SubclassUpdateModel subclassToUpdate, int subclassId)
        {
            Subclass entity = _ctx.Subclasses.Single(e => e.SubclassId == subclassId);

            if (entity != null)
            {
                if (subclassToUpdate.UpdatedSubclassName != null)
                {
                    entity.SubclassName = subclassToUpdate.UpdatedSubclassName;
                }
                if (subclassToUpdate.UpdatedSubclassDescription != null)
                {
                    entity.SubclassDescription = subclassToUpdate.UpdatedSubclassDescription;
                }
                if (subclassToUpdate.UpdatedSource != null)
                {
                    entity.Source = subclassToUpdate.UpdatedSource;
                }
                if (subclassToUpdate.UpdatedClassId != null)
                {
                    entity.ClassId = (int)subclassToUpdate.UpdatedClassId;
                }
                _ctx.SaveChanges();
            }
        }
Example #11
0
        /// <summary>
        /// Cael yr holl rifau gwreiddiol.
        /// </summary>
        /// <param name="classFileConfiguration">class file contents</param>
        /// <param name="initialNumber">rhif cyntaf</param>
        /// <param name="subclass">subclass containing our numbers</param>
        /// <param name="numberToChange">total number of changes</param>
        /// <returns></returns>
        private static List <int> GetOriginalNumbers(
            ClassDetails classFileConfiguration,
            int initialNumber,
            Subclass subclass,
            int numberToChange)
        {
            bool       startCount = false;
            List <int> numbers    = new List <int>();

            foreach (Number unitNumber in subclass.Numbers)
            {
                if (unitNumber.CurrentNumber == initialNumber)
                {
                    startCount = true;
                }

                if (startCount)
                {
                    numbers.Add(unitNumber.CurrentNumber);
                }

                if (numbers.Count == numberToChange)
                {
                    return(numbers);
                }
            }

            return(numbers);
        }
Example #12
0
        /// <summary>
        /// Add new sub class to the model.
        /// </summary>
        private void AddNewSubClass()
        {
            NewSubClassViewModel dialogViewModel = new NewSubClassViewModel();

            DialogService service = new DialogService();

            service.ShowDialog(
                new NewSubClassDialog()
            {
                DataContext = dialogViewModel
            });

            if (dialogViewModel.Result == MessageBoxResult.OK)
            {
                Subclass newSubclass =
                    new Subclass()
                {
                    Type    = dialogViewModel.SubClass,
                    Images  = new List <Image>(),
                    Numbers = new List <Number>()
                };

                // This will be null the first time a class is created.
                if (this.classFileConfiguration.Subclasses == null)
                {
                    this.classFileConfiguration.Subclasses = new List <Subclass>();
                }

                this.classFileConfiguration.Subclasses.Add(newSubclass);
                this.SubClassNumbers.Add(newSubclass.Type);
                this.SaveModel();
            }
        }
        public void saveContent()
        {
            CharacterClass currentClass    = classListBox.SelectedItem as CharacterClass;
            Subclass       currentSubclass = subclassListBox.SelectedItem as Subclass;

            if ((currentClass != null) && (currentSubclass != null))
            {
                currentSubclass = setSubclassFlags(currentSubclass);
                currentClass.setSelectedSubclass(currentSubclass);

                currentClass = setClassFlags(currentClass);

                //save extra choices that did not require extra UserControls
                currentClass.Proficiencies.Clear();
                if (currentClass.HasProficiencyChoice)
                {
                    foreach (string item in extraChoiceBox.SelectedItems)
                    {
                        currentClass.Proficiencies.Add(item);
                    }
                }

                wm.Choices.ClassChoice = currentClass;
            }
        }
Example #14
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            Spell sp = new Spell();

            try
            {
                sp.id    = textBoxId.Text;
                sp.index = Int32.Parse(textBoxIndex.Text);
                sp.name  = textBoxName.Text;
                List <string> description = new List <string>();
                description.Add(textBoxDescription.Text);
                sp.desc = description.ToArray();
                List <string> higherLvl = new List <string>();
                description.Add(textBoxHigherlvl.Text);
                sp.higher_level = higherLvl.ToArray();
                sp.page         = textBoxPage.Text;
                sp.range        = textBoxRange.Text;
                List <string> components = new List <string>();
                description.Add(textBoxComponents.Text);
                sp.components    = components.ToArray();
                sp.material      = textBoxMaterial.Text;
                sp.ritual        = textBoxRitual.Text;
                sp.duration      = textBoxDuration.Text;
                sp.concentration = textBoxConcentration.Text;
                sp.casting_time  = textBoxCastingTime.Text;
                sp.level         = Int32.Parse(textBoxlevel.Text);

                school school = new school();

                school.name = textBoxSchool.Text;
                school.url  = "http://" + school.name;

                sp.school = school;

                List <CharacterClass> charClasses = new List <CharacterClass>();
                CharacterClass        charClass   = new CharacterClass();
                charClass.name = textBoxClasses.Text;
                charClass.url  = "http://" + charClass.name;
                charClasses.Add(charClass);
                sp.characterClasses = charClasses.ToArray();

                List <Subclass> subclasses = new List <Subclass>();
                Subclass        subclass   = new Subclass();
                subclass.name = textBoxClasses.Text;
                subclass.url  = "http://" + subclass.name;
                subclasses.Add(subclass);

                sp.subclasses = subclasses.ToArray();
                sp.url        = textBoxUrl.Text;

                bm2.add2(sp);
                this.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Wypełnij poprawnie wszystkie pola!");
            }
        }
Example #15
0
        protected override void SubclassCreated(Subclass subclass)
        {
            var mode = ModeIn.SliceCount > 0
                ? ModeIn[0]
                : User32.TouchWindowFlags.None;

            TryEnabledTouchMessage(subclass, mode);
            base.SubclassCreated(subclass);
        }
Example #16
0
 private bool TryUnregisterTouch(Subclass subclass)
 {
     if (!User32.UnregisterTouchWindow(subclass.HWnd))
     {
         FLogger.Log(LogType.Error, "Failed to disable touch messages for window {0}.", subclass.HWnd);
         return(false);
     }
     return(true);
 }
Example #17
0
            static void Main(string[] args)
            {
                Subclass s = new Subclass(); //creating object

                //accessing methods of parent classes
                s.Print();
                s.Print1();
                s.Print2();
            }
Example #18
0
    public static void Main()
    {
        AbstractClass sub = new Subclass();

        sub.MyProperty = new MyClass();
        Subclass sub2 = (Subclass)sub;    //casting succeeds since sub is Subclass

        if (sub2.MyProperty == null)
        {
            Console.WriteLine("sub2.MyProperty is null!");
        }
    }
Example #19
0
        public static Subclass GetSubclass()
        {
            Subclass Gunslinger = new Subclass
            {
                Class_id    = Guid.Parse("15478d70-f96e-4c14-aeaf-4a1e35605874"),
                Subclass_id = Guid.Parse("a8e9e19f-b04f-4d6c-baf8-ada5cd40c30b"),
                Name        = "Gunslinger",
                Description = "Homebrew"
            };

            return(Gunslinger);
        }
        public void CreateSubclass(SubclassCreateModel subclassToCreate)
        {
            Subclass entity = new Subclass()
            {
                SubclassName        = subclassToCreate.SubclassName,
                SubclassDescription = subclassToCreate.SubclassDescription,
                Source  = subclassToCreate.Source,
                ClassId = subclassToCreate.ClassId
            };

            _ctx.Subclasses.Add(entity);
            _ctx.SaveChanges();
        }
        public bool subclassExists(Guid subclass_id)
        {
            Subclass foundSubclass = _userAccess.GetSubclass(subclass_id);

            if (foundSubclass != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public bool subclassIsOfClass(Guid subclass_id, Guid Class_id)
        {
            Subclass foundSubclass = _userAccess.GetSubclass(subclass_id);

            if (foundSubclass.Class_id == Class_id)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #23
0
 private bool TryRegisterTouch(Subclass subclass, User32.TouchWindowFlags mode)
 {
     if (User32.RegisterTouchWindow(subclass.HWnd, mode))
     {
         TouchEnabledWindows.Add(subclass);
         return(true);
     }
     else
     {
         FLogger.Log(LogType.Error, "Failed to enable touch messages for window {0}.", subclass.HWnd);
         return(false);
     }
 }
        public SubclassDetailModel GetSubclassDetailById(int subclassId)
        {
            Subclass            subclass = _ctx.Subclasses.Single(e => e.SubclassId == subclassId);
            SubclassDetailModel entity   = new SubclassDetailModel()
            {
                SubclassId          = subclass.SubclassId,
                SubclassName        = subclass.SubclassName,
                SubclassDescription = subclass.SubclassDescription,
                Source          = subclass.Source,
                ParentClassName = subclass.ParentClass.ClassName
            };

            return(entity);
        }
Example #25
0
        public void ToRegions()
        {
            //Arrange
            var regionsToSubclasses = new[] { new RegionToSubclass() };
            var subclass            = new Subclass
            {
                ToRegions = regionsToSubclasses
            };

            //Act
            var result = subclass.ToRegions;

            //Assert
            Assert.AreSame(regionsToSubclasses, result);
        }
        private Subclass setSubclassFlags(Subclass selectedSubclass)
        {
            selectedSubclass.HasExtraSkills            = wm.DBManager.ClassData.SubclassData.hasSubclassSkillChoice(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasTotems                 = wm.DBManager.ClassData.SubclassData.hasTotemFeatures(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasExtraSpells            = wm.DBManager.ClassData.SubclassData.hasExtraSubclassSpellChoice(selectedSubclass.Name);
            selectedSubclass.HasExtraToolProficiencies = wm.DBManager.ClassData.SubclassData.hasSubclassToolProficiencyChoice(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasManeuvers              = wm.DBManager.ClassData.SubclassData.hasManeuvers(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasDraconicAncestry       = wm.DBManager.ClassData.SubclassData.hasDraconicAncestry(selectedSubclass.Name);
            selectedSubclass.HasElementalDisciplines   = wm.DBManager.ClassData.SubclassData.hasDisciplines(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasHunterChoices          = wm.DBManager.ClassData.SubclassData.hasHunterFeatures(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasCompanion              = wm.DBManager.ClassData.SubclassData.hasCompanion(selectedSubclass.Name, wm.Choices.Level);
            selectedSubclass.HasCircleTerrain          = wm.DBManager.ClassData.SubclassData.hasCircleTerrain(selectedSubclass.Name, wm.Choices.Level);

            return(selectedSubclass);
        }
Example #27
0
        void TrySubclassWindow(Window window)
        {
            var inputWindow = window.UserInputWindow;

            if (inputWindow != null)
            {
                var handle = inputWindow.InputWindowHandle;
                if (handle != IntPtr.Zero)
                {
                    var subclass = Subclass.Create(handle);
                    subclass.WindowMessage += HandleSubclassWindowMessage;
                    subclass.Disposed      += HandleSubclassDisposed;
                    FSubclasses.Add(subclass);
                }
            }
        }
        private void subclassListBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            CharacterClass currentClass    = classListBox.SelectedItem as CharacterClass;
            Subclass       currentSubclass = subclassListBox.SelectedItem as Subclass;

            if ((currentClass != null) && (currentSubclass != null))
            {
                currentClass.setSelectedSubclass(currentSubclass);

                descriptionLabel.Text  = currentClass.Description;
                descriptionLabel.Text += Environment.NewLine;
                descriptionLabel.Text += currentSubclass.Description;

                //saveContent();
            }
        }
Example #29
0
        private static InheritanceType.Type DoGetForSubclass(Subclass subclass)
        {
            if (subclass is SingleTableSubclass)
            {
                return(InheritanceType.Type.SINGLE);
            }
            else if (subclass is JoinedSubclass)
            {
                return(InheritanceType.Type.JOINED);
            }
            else if (subclass is UnionSubclass)
            {
                return(InheritanceType.Type.TABLE_PER_CLASS);
            }

            throw new MappingException("Unknown subclass class: " + subclass.ClassName);
        }
        private static InheritanceType doGetForSubclass(Subclass subclass)
        {
            if (subclass is SingleTableSubclass)
            {
                return(InheritanceType.Single);
            }
            if (subclass is JoinedSubclass)
            {
                return(InheritanceType.Joined);
            }
            if (subclass is UnionSubclass)
            {
                return(InheritanceType.TablePerClass);
            }

            throw new MappingException("Unknown subclass class: " + (subclass != null ? subclass.GetType().FullName : "Not available type."));
        }
 public void HonorsOnUseSystemPasswordCharChangingCancelation()
 {
     // ReSharper disable once UseObjectOrCollectionInitializer
     var subclassed = new Subclass { UseSystemPasswordChar = false };
     subclassed.CancelOnUseSystemPasswordCharChanging = true;
     subclassed.UseSystemPasswordChar = true;
     Assert.IsFalse(subclassed.UseSystemPasswordChar);
 }
 public void CallsOnUseSystemPasswordCharChangedAsExpected()
 {
     var subclassed = new Subclass { UseSystemPasswordChar = false };
     var expected = new[]
     {
         new ChangeEventArgs<bool>(true, false)
     };
     CollectionAssert.AreEqual(expected,
                               subclassed.CallsToOnUseSystemPasswordCharChanged);
 }
 public void HonorsOnPasswordCharDelayChangingCancelation()
 {
     // ReSharper disable once UseObjectOrCollectionInitializer
     var subclassed = new Subclass { PasswordCharDelay = 999 };
     subclassed.CancelOnPasswordCharDelayChanging = true;
     subclassed.PasswordCharDelay = 998;
     Assert.AreEqual(999, subclassed.PasswordCharDelay);
 }
 public void CallsOnPasswordCharDelayChangedAsExpected()
 {
     var subclassed = new Subclass { PasswordCharDelay = 999 };
     var expected = new[]
     {
         new ChangeEventArgs<int>(1000, 999)
     };
     CollectionAssert.AreEqual(expected,
                               subclassed.CallsToOnPasswordCharDelayChanged);
 }
 public void CallsOnPasswordCharChangedAsExpected()
 {
     var subclassed = new Subclass { PasswordChar = '|' };
     var expected = new[]
     {
         new ChangeEventArgs<char>('\0', '|')
     };
     CollectionAssert.AreEqual(expected,
                               subclassed.CallsToOnPasswordCharChanged);
 }
 public void HonorsOnPasswordCharChangingCancelation()
 {
     // ReSharper disable once UseObjectOrCollectionInitializer
     var subclassed = new Subclass { PasswordChar = '|' };
     subclassed.CancelOnPasswordCharChanging = true;
     subclassed.PasswordChar = '+';
     Assert.AreEqual('|', subclassed.PasswordChar);
 }
 private Subclass(Subclass/*!*/ str)
     : base(str) {
     _class = str._class;
 }
Example #38
0
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );

            int version = reader.ReadInt();

            switch ( version )
            {
                case 161:
                    this.NumberOfItemsCookedRecently = reader.ReadInt();
                    this.CookingXpLastAwardedOn = reader.ReadDateTime();
                    goto case 160;
                case 160:
                    this.lastSecondWind = reader.ReadDateTime();
                    goto case 159;
                case 159:
                    {
                        this.lastCharge = reader.ReadDateTime();
                        this.chargeCooldown = reader.ReadInt();
                        goto case 158;
                    }
                case 158: SmithTesting = reader.ReadBool(); goto case 157;
                case 157: m_ConsecratedItems = reader.ReadInt(); goto case 156;
                case 156: m_CanBeFaithful = reader.ReadBool();goto case 155;
                case 155: m_HCWound = reader.ReadDateTime(); goto case 154;
                case 154: m_Maimings = reader.ReadInt(); goto case 153;

                case 153:
                {
                        m_CustomAvatarID1 = reader.ReadInt();
                        m_CustomAvatarID2 = reader.ReadInt();
                        m_CustomAvatarID3 = reader.ReadInt();
                        m_IsHardcore = reader.ReadBool(); goto case 152;

                }

                case 152: GroupInfo.Deserialize(reader, Group); goto case 151;
                case 151: m_IsApprentice = reader.ReadBool(); goto case 150;
                case 150: m_AvatarID = reader.ReadInt(); goto case 149;
                case 149:
                case 148:
                case 147:
                case 146:
                case 145:
                case 144:
                {
                    Disguise.Deserialize( reader );
                    MyDisguises.Deserialize( reader );
                    goto case 143;
                }
                case 143: m_GemHarvesting = reader.ReadBool(); goto case 142;
                case 142:
                {
                    m_CanBeThief = reader.ReadBool();
                    m_LastCottonFlaxHarvest = reader.ReadDateTime();
                    goto case 141;
                }
                case 141:
                case 140: m_CraftingSpecialization = reader.ReadString(); goto case 139;
                case 139: m_Forging = reader.ReadBool(); goto case 138;
                case 138: m_ImperialGuard = reader.ReadBool(); goto case 137;
                case 137: m_ExtraCPRewards = reader.ReadInt(); goto case 136;
                case 136: m_EmptyBankBoxOn = reader.ReadDateTime(); goto case 135;
                case 135: m_OldMapChar = reader.ReadBool(); goto case 134;
                case 134:
                {
                    int guilds = reader.ReadInt();

                    for( int i = 0; i < guilds; i++ )
                    {
                        CustomGuildInfo guild = new CustomGuildInfo( reader );

                        if( guild != null && guild.GuildStone != null )
                            CustomGuilds.Add( guild.GuildStone, guild );
                    }

                    goto case 133;
                }
                case 133: m_ChosenDeity = (ChosenDeity)reader.ReadInt(); goto case 132;
                case 132: m_WikiConfig = reader.ReadString(); goto case 131;
                case 131:
                case 130:
                case 129:
                {
                    m_ReforgeLocation = reader.ReadPoint3D();
                    m_ReforgeMap = reader.ReadMap();
                    m_Reforging = reader.ReadBool();
                    m_ReforgesLeft = reader.ReadInt();
                    goto case 128;
                }
                case 128:
                case 127:
                {
                    m_Technique = reader.ReadString();
                    m_TechniqueLevel = reader.ReadInt();
                    m_MediumPieces = reader.ReadInt();
                    m_HeavyPieces = reader.ReadInt();
                    goto case 126;
                }
                case 126: m_VampSight = reader.ReadBool(); goto case 125;
                case 125: m_FreeForRP = reader.ReadBool(); goto case 124;
                case 124: m_VampSafety = reader.ReadBool(); goto case 123;
                case 123:
                {
                    m_LastTimeGhouled = reader.ReadDateTime();
                    m_YearOfDeath = reader.ReadInt();
                    m_MonthOfDeath = reader.ReadInt();
                    m_DayOfDeath = reader.ReadInt();
                    m_IsVampire = reader.ReadBool();
                    m_MaxBPs = reader.ReadInt();
                    m_BPs = reader.ReadInt();
                    m_AutoVampHeal = reader.ReadBool();

                    goto case 122;
                }
                case 122:
                case 121: m_LogMsgs = reader.ReadBool(); goto case 120;
                case 120: m_PureDodge = reader.ReadBool(); goto case 119;
                case 119: m_Tents = reader.ReadStrongItemList(); goto case 118;
                case 118: m_CraftContainer = (Container)reader.ReadItem(); goto case 117;
                case 117:
                case 116: m_SpellBook = (CustomSpellBook)reader.ReadItem(); goto case 115;
                case 115:
                case 114:
                {
                    CustomGuildInfo test = null;

                    if( version < 134 )
                        test = new CustomGuildInfo( reader );

                    goto case 113;
                }
                case 113:
                case 112:
                case 111:
                case 110:
                case 109:
                {
                    m_CurrentCommand = (SongList)reader.ReadInt();
                    goto case 108;
                }
                case 108:
                {
                    m_SpeedHack = reader.ReadBool();
                    goto case 107;
                }
                case 107:
                {
                    m_LogoutTime = reader.ReadDateTime();
                    goto case 106;
                }
                case 106:
                {
                    m_FakeAge = reader.ReadString();
                    m_FakeLooks = reader.ReadString();
                    goto case 105;
                }
                case 105:
                {
                    this.NameMod = reader.ReadString();
                    m_AutoPicking = reader.ReadBool();
                    goto case 104;
                }
                case 104: goto case 103;
                case 103:
                {
                    m_SmoothPicking = reader.ReadBool();
                    goto case 102;
                }
                case 102:
                {
                    m_HasStash = reader.ReadBool();
                    goto case 101;
                }
                case 101:
                {
                    m_FakeHair = reader.ReadInt();
                    m_FakeHairHue = reader.ReadInt();
                    m_FakeFacialHair = reader.ReadInt();
                    m_FakeFacialHairHue = reader.ReadInt();
                    m_FakeHue = reader.ReadInt();
                    m_FakeRPTitle = reader.ReadString();
                    m_FakeTitlePrefix = reader.ReadString();
                    goto case 100;
                }
                case 100: goto case 99;
                case 99: goto case 98;
                case 98: goto case 97;
                case 97: goto case 96;
                case 96:
                {
                    m_FixedRun = reader.ReadBool();
                    goto case 95;
                }
                case 95:
                {
                    m_LightPieces = reader.ReadInt();
                    goto case 94;
                }
                case 94:
                {
                    m_ArmourPieces = reader.ReadInt();
                    goto case 93;
                }
                case 93:
                {
                    m_LightPenalty = reader.ReadInt();
                    m_MediumPenalty = reader.ReadInt();
                    m_HeavyPenalty = reader.ReadInt();
                    goto case 92;
                }
                case 92: goto case 91;
                case 91:
                {
                    m_FixedRage = reader.ReadBool();
                    goto case 90;
                }

                case 90: goto case 89;
                case 89: goto case 88;
                case 88: goto case 87;
                case 87: goto case 86;

                case 86:
                {
                    m_FixedReflexes = reader.ReadBool();
                    goto case 85;
                }
                case 85:
                {
                    m_FixedStyles = reader.ReadBool();
                    goto case 84;
                }
                case 84:
                {
                    m_NextMending = reader.ReadDateTime();
                    goto case 83;
                }
                case 83:
                {
                    m_FixedStatPoints = reader.ReadBool();
                    goto case 82;
                }
                case 82:
                {
                    m_XPFromCrafting = reader.ReadBool();
                    m_XPFromKilling = reader.ReadBool();
                    goto case 81;
                }
                case 81:
                {
                    m_HarvestedCrops = reader.ReadInt();
                    m_NextHarvestAllowed = reader.ReadDateTime();
                    goto case 80;
                }
                case 80:
                {
                    m_Spar = reader.ReadBool();
                    goto case 79;
                }
                case 79:
                {
                    m_HideStatus = reader.ReadBool();
                    goto case 78;
                }
                case 78:
                {
                    m_DayOfBirth = reader.ReadString();
                    m_MonthOfBirth = reader.ReadString();
                    m_YearOfBirth = reader.ReadString();
                    goto case 77;
                }
                case 77:
                {
                    m_AlyrianGuard = reader.ReadBool();
                    m_AzhuranGuard = reader.ReadBool();
                    m_KhemetarGuard = reader.ReadBool();
                    m_MhordulGuard = reader.ReadBool();
                    m_TyreanGuard = reader.ReadBool();
                    m_VhalurianGuard = reader.ReadBool();
                    goto case 76;
                }
                case 76:
                {
                    m_HearAll = reader.ReadInt();
                    goto case 75;
                }
                case 75:
                {
                    m_Friendship = new Friendship( reader );
                    goto case 74;
                }
                case 74:
                {
                    m_CPCapOffset = reader.ReadInt();
                    m_CPSpent = reader.ReadInt();
                    goto case 73;
                }
                case 73:
                {
                    m_Description2 = reader.ReadString();
                    m_Description3 = reader.ReadString();
                    goto case 72;
                }
                case 72:
                {
                    m_NextBirthday = reader.ReadDateTime();
                    m_MaxAge = reader.ReadInt();
                    goto case 71;
                }
                case 71:
                {
                    m_Age = reader.ReadInt();
                    goto case 70;
                }
                case 70:
                {
                    m_LoggedOutPets = reader.ReadStrongMobileList();
                    goto case 69;
                }
                case 69:
                {
                    m_RecreateXP = reader.ReadInt();
                    m_RecreateCP = reader.ReadInt();
                    goto case 68;
                }
                case 68:
                {
                    m_LastOffenseToNature = reader.ReadDateTime();
                    goto case 66;
                }

                case 66:
                {
                    Mobile mob = null;

                    if( version < 92 )
                        mob = reader.ReadMobile();

                    goto case 65;
                }

                case 65:
                {
                    m_LastDonationLife = reader.ReadDateTime();
                    goto case 64;
                }

                case 64:
                {
                    m_Lives = reader.ReadInt();
                    goto case 63;
                }

                case 63:
                {
                    m_AllyList = reader.ReadStrongMobileList();
                    goto case 62;
                }

                case 62:
                {
                    m_Height = reader.ReadInt();
                    m_Weight = reader.ReadInt();
                    goto case 61;
                }

                case 61:
                {
                    m_NextAllowance = reader.ReadDateTime();
                    goto case 60;
                }

                case 60:
                {
                    m_Backgrounds = new Backgrounds( reader );
                    goto case 59;
                }

                case 59:
                {
                    m_Description = reader.ReadString();
                    goto case 58;
                }

                case 58:
                {
                    m_Masterwork = new Masterwork( reader );
                    goto case 57;
                }

                case 57:
                {
                    m_RacialResources = new RacialResources( reader );
                    goto case 56;
                }

                case 56:
                {
                    m_KnownLanguages = new KnownLanguages( reader );
                    goto case 55;
                }

                case 55:
                {
                    m_SpokenLanguage = (KnownLanguage)reader.ReadInt();
                    goto case 54;
                }

                case 54:
                {
                    m_RPTitle = reader.ReadString();
                    m_TitlePrefix = reader.ReadString();
                    goto case 53;
                }

                case 53:
                {
                    m_FocusedShot = reader.ReadInt();
                    m_SwiftShot = reader.ReadInt();
                    goto case 52;
                }

                case 52:
                {
                    m_WeaponSpecialization = reader.ReadString();
                    m_SecondSpecialization = reader.ReadString();
                    goto case 51;
                }

                case 51:
                {
                    m_CombatStyles = new CombatStyles( reader );
                    m_SearingBreath = reader.ReadInt();
                    m_SwipingClaws = reader.ReadInt();
                    m_TempestuousSea = reader.ReadInt();
                    m_SilentHowl = reader.ReadInt();
                    m_ThunderingHooves = reader.ReadInt();
                    m_VenomousWay = reader.ReadInt();
                    goto case 50;
                }

                case 50:
                {
                    m_RageHits = reader.ReadInt();
                    m_RageFeatLevel = reader.ReadInt();
                    goto case 49;
                }

                case 49:
                {
                    int test = reader.ReadInt();
                    goto case 48;
                }

                case 48:
                {
                    m_LastChargeStep = reader.ReadDateTime();
                    goto case 47;
                }

                case 47:
                {
                    m_FormerDirection = (Direction)reader.ReadInt();
                    m_ChargeSteps = reader.ReadInt();
                    goto case 46;
                }

                case 46:
                {
                   m_Trample = reader.ReadBool();
                   goto case 45;
                }

                case 45:
                {
                    m_FlurryOfBlows = reader.ReadInt();
                    goto case 44;
                }

                case 44:
                {
                    m_FocusedAttack = reader.ReadInt();
                    m_FightingStance = (FeatList)reader.ReadInt();
                    goto case 43;
                }

                case 43:
                {
                    m_Intimidated = reader.ReadInt();
                    goto case 42;
                }

                case 42:
                {
                    m_HasHuntingHoundBonus = reader.ReadBool();
                    goto case 41;
                }

                case 41:
                {
                    m_HuntingHound = reader.ReadMobile();
                    m_FreeToUse = reader.ReadBool();
                    goto case 40;
                }

                case 40:
                {
                    m_Informants = new Informants( reader );
                    goto case 39;
                }

                case 39:
                {
                    m_EscortPrisoner = reader.ReadMobile();
                    goto case 38;
                }

                case 38:
                {
                    m_CanBeReplaced = reader.ReadBool();
                    goto case 37;
                }

                case 37:
                {
                    m_BackToBack = reader.ReadBool();
                    goto case 36;
                }

                case 36:
                {
                    m_Crippled = reader.ReadBool();
                    goto case 35;
                }

                case 35:
                {
                    m_CleaveAttack = reader.ReadBool();
                    goto case 34;
                }

                case 34: goto case 33;

                case 33:
                {
                    goto case 32;
                }

                case 32:
                {
                    m_SpecialAttack = (FeatList)reader.ReadInt();
                    m_OffensiveFeat = (FeatList)reader.ReadInt();
                    goto case 31;
                }

                case 31:
                {
                    m_Feats = new Feats( reader );
                    goto case 30;
                }

                case 30:
                {
                    m_Subclass = (Subclass)reader.ReadInt();
                    m_Advanced = (Advanced)reader.ReadInt();
                    goto case 29;
                }
                case 29:
                {
                    m_CanBeMage = reader.ReadBool();
                    goto case 28;
                }

                case 28:
                {
                    m_Level = reader.ReadInt();
                    m_XP = reader.ReadInt();
                    m_NextLevel = reader.ReadInt();
                    m_CP = reader.ReadInt();
                    goto case 27;
                }

                case 27:
                {
                    m_StatPoints = reader.ReadInt();
                    m_SkillPoints = reader.ReadInt();
                    m_FeatSlots = reader.ReadInt();
                    goto case 26;
                }
                case 26:
                {
                    m_Class = (Class)reader.ReadInt();
                    m_Nation = (Nation)reader.ReadInt();
                    goto case 25;
                }
                case 25:
                {
                    int recipeCount = reader.ReadInt();

                    if( recipeCount > 0 )
                    {
                        m_AcquiredRecipes = new Dictionary<int, bool>();

                        for( int i = 0; i < recipeCount; i++ )
                        {
                            int r = reader.ReadInt();
                            if( reader.ReadBool() )	//Don't add in recipies which we haven't gotten or have been removed
                                m_AcquiredRecipes.Add( r, true );
                        }
                    }
                    goto case 24;
                }
                case 24:
                {
                    m_LastHonorLoss = reader.ReadDeltaTime();
                    goto case 23;
                }
                case 23:
                {
                    m_ChampionTitles = new ChampionTitleInfo( reader );
                    goto case 22;
                }
                case 22:
                {
                    m_LastValorLoss = reader.ReadDateTime();
                    goto case 21;
                }
                case 21:
                {
                    m_ToTItemsTurnedIn = reader.ReadEncodedInt();
                    m_ToTTotalMonsterFame = reader.ReadInt();
                    goto case 20;
                }
                case 20:
                {
                    m_AllianceMessageHue = reader.ReadEncodedInt();
                    m_GuildMessageHue = reader.ReadEncodedInt();

                    goto case 19;
                }
                case 19:
                {
                    int rank = reader.ReadEncodedInt();
                    int maxRank = Guilds.RankDefinition.Ranks.Length -1;
                    if( rank > maxRank )
                        rank = maxRank;

                    m_GuildRank = Guilds.RankDefinition.Ranks[rank];
                    m_LastOnline = reader.ReadDateTime();
                    goto case 18;
                }
                case 18:
                {
                    m_SolenFriendship = (SolenFriendship) reader.ReadEncodedInt();

                    goto case 17;
                }
                case 17: // changed how DoneQuests is serialized
                case 16:
                {
                    m_Quest = QuestSerializer.DeserializeQuest( reader );

                    if ( m_Quest != null )
                        m_Quest.From = this;

                    int count = reader.ReadEncodedInt();

                    if ( count > 0 )
                    {
                        m_DoneQuests = new List<QuestRestartInfo>();

                        for ( int i = 0; i < count; ++i )
                        {
                            Type questType = QuestSerializer.ReadType( QuestSystem.QuestTypes, reader );
                            DateTime restartTime;

                            if ( version < 17 )
                                restartTime = DateTime.MaxValue;
                            else
                                restartTime = reader.ReadDateTime();

                            m_DoneQuests.Add( new QuestRestartInfo( questType, restartTime ) );
                        }
                    }

                    m_Profession = reader.ReadEncodedInt();
                    goto case 15;
                }
                case 15:
                {
                    m_LastCompassionLoss = reader.ReadDeltaTime();
                    goto case 14;
                }
                case 14:
                {
                    m_CompassionGains = reader.ReadEncodedInt();

                    if ( m_CompassionGains > 0 )
                        m_NextCompassionDay = reader.ReadDeltaTime();

                    goto case 13;
                }
                case 13: // just removed m_PayedInsurance list
                case 12:
                {
                    m_BOBFilter = new Engines.BulkOrders.BOBFilter( reader );
                    goto case 11;
                }
                case 11:
                {
                    if ( version < 13 )
                    {
                        List<Item> payed = reader.ReadStrongItemList();

                        for ( int i = 0; i < payed.Count; ++i )
                            payed[i].PayedInsurance = true;
                    }

                    goto case 10;
                }
                case 10:
                {
                    if ( reader.ReadBool() )
                    {
                        m_HairModID = reader.ReadInt();
                        m_HairModHue = reader.ReadInt();
                        m_BeardModID = reader.ReadInt();
                        m_BeardModHue = reader.ReadInt();

                        // We cannot call SetHairMods( -1, -1 ) here because the items have not yet loaded
                        Timer.DelayCall( TimeSpan.Zero, new TimerCallback( RevertHair ) );
                    }

                    goto case 9;
                }
                case 9:
                {
                    SavagePaintExpiration = reader.ReadTimeSpan();

                    if ( SavagePaintExpiration > TimeSpan.Zero )
                    {
                        BodyMod = ( Female ? 184 : 183 );
                        HueMod = 0;
                    }

                    goto case 8;
                }
                case 8:
                {
                    m_NpcGuild = (NpcGuild)reader.ReadInt();
                    m_NpcGuildJoinTime = reader.ReadDateTime();
                    m_NpcGuildGameTime = reader.ReadTimeSpan();
                    goto case 7;
                }
                case 7:
                {
                    m_PermaFlags = reader.ReadStrongMobileList();
                    goto case 6;
                }
                case 6:
                {
                    NextTailorBulkOrder = reader.ReadTimeSpan();
                    goto case 5;
                }
                case 5:
                {
                    NextSmithBulkOrder = reader.ReadTimeSpan();
                    goto case 4;
                }
                case 4:
                {
                    m_LastJusticeLoss = reader.ReadDeltaTime();
                    m_JusticeProtectors = reader.ReadStrongMobileList();
                    goto case 3;
                }
                case 3:
                {
                    m_LastSacrificeGain = reader.ReadDeltaTime();
                    m_LastSacrificeLoss = reader.ReadDeltaTime();
                    m_AvailableResurrects = reader.ReadInt();
                    goto case 2;
                }
                case 2:
                {
                    m_Flags = (PlayerFlag)reader.ReadInt();
                    goto case 1;
                }
                case 1:
                {
                    m_LongTermElapse = reader.ReadTimeSpan();
                    m_ShortTermElapse = reader.ReadTimeSpan();
                    m_GameTime = reader.ReadTimeSpan();

                    if (version < 147) m_Crimes = reader.ReadInt();
                    //CrimesList
                    if (version < 148)
                    {
                        m_CrimesList = new Dictionary<Mobiles.Nation, int>();
                        m_CrimesList.Add(Nation.Alyrian, 0);
                        m_CrimesList.Add(Nation.Azhuran, 0);
                        m_CrimesList.Add(Nation.Khemetar, 0);
                        m_CrimesList.Add(Nation.Mhordul, 0);
                        m_CrimesList.Add(Nation.Tyrean, 0);
                        m_CrimesList.Add(Nation.Vhalurian, 0);
                        m_CrimesList.Add(Nation.Imperial, 0);
                        m_CrimesList.Add(Nation.Sovereign, 0);
                        m_CrimesList.Add(Nation.Society, 0);

                        int count = reader.ReadInt();
                        for (int i = 0; i < count; i++)
                        {
                            Nation n = (Nation)reader.ReadInt();
                            int c = reader.ReadInt();
                            //m_CrimesList.Add(n, c);
                        }
                    }
                    else
                    {
                        m_CrimesList = new Dictionary<Mobiles.Nation, int>();
                        int count = reader.ReadInt();
                        for (int i = 0; i < count; i++)
                        {
                            Nation n = (Nation)reader.ReadInt();
                            int c = reader.ReadInt();
                            m_CrimesList.Add(n, c);
                        }
                    }

                    m_NextCriminalAct = reader.ReadDateTime();
                    m_CriminalActivity = reader.ReadBool();
                    m_Disguised = reader.ReadBool();
                    m_LastDisguiseTime = reader.ReadDateTime();

                    if (version < 149)
                    {
                        m_LastDeath = DateTime.Now - TimeSpan.FromDays(1);
                    }
                    else
                        m_LastDeath = reader.ReadDateTime();

                    goto case 0;
                }
                case 0:
                {
                    break;
                }
            }

            if (m_AvatarID == 0)
            m_AvatarID = 1076;

            //m_CrimesList.Add(Nation.Insularii, 0);

            if (m_CustomAvatarID1 == 0)
            m_CustomAvatarID1 = 1076;

            if (m_CustomAvatarID2 == 0)
            m_CustomAvatarID2 = 1076;

            if (m_CustomAvatarID3 == 0)
            m_CustomAvatarID3 = 1076;

            // Professions weren't verified on 1.0 RC0
            if ( !CharacterCreation.VerifyProfession( m_Profession ) )
                m_Profession = 0;

            if ( m_PermaFlags == null )
                m_PermaFlags = new List<Mobile>();

            if ( m_JusticeProtectors == null )
                m_JusticeProtectors = new List<Mobile>();

            if ( m_BOBFilter == null )
                m_BOBFilter = new Engines.BulkOrders.BOBFilter();

            if( m_GuildRank == null )
                m_GuildRank = Guilds.RankDefinition.Member;	//Default to member if going from older verstion to new version (only time it should be null)

            if( m_LastOnline == DateTime.MinValue && Account != null )
                m_LastOnline = ((Account)Account).LastLogin;

            if( m_ChampionTitles == null )
                m_ChampionTitles = new ChampionTitleInfo();

            List<Mobile> list = this.Stabled;

            for ( int i = 0; i < list.Count; ++i )
            {
                BaseCreature bc = list[i] as BaseCreature;

                if ( bc != null )
                    bc.IsStabled = true;
            }

            CheckAtrophies( this );

            /*if( Hidden )	//Hiding is the only buff where it has an effect that's serialized.
                AddBuff( new BuffInfo( BuffIcon.HidingAndOrStealth, 1075655 ) );*/

            if( this.Lives >= 0 && !this.Alive && this.Corpse != null )
                this.SendGump( new DeathGump( this, 15, this.Corpse ) );

            if( this.Backpack is ArmourBackpack )
            {
                ArmourBackpack pack = this.Backpack as ArmourBackpack;
                pack.Attributes.NightSight = 0;
            }

            if( version < 135 && AccessLevel < AccessLevel.GameMaster )
                OldMapChar = true;

            if( version < 141 )
            {
                FixSkillCost( FeatInfo.FeatCost.High, FeatInfo.FeatCost.Medium, Feats.GetFeatLevel(FeatList.Magery) );
                FixSkillCost( FeatInfo.FeatCost.High, FeatInfo.FeatCost.Low, Feats.GetFeatLevel(FeatList.Concentration) );
            }

            if( version < 145 )
            {
                m_TitlePrefix = null;
                m_RPTitle = "the Alyrian";

                if( m_Nation == Nation.Alyrian )
                    m_RPTitle = "the Alyrian";
                else if( m_Nation == Nation.Azhuran )
                    m_RPTitle = "the Azhuran";
                else if( m_Nation == Nation.Khemetar )
                    m_RPTitle = "the Khemetar";
                else if( m_Nation == Nation.Mhordul )
                    m_RPTitle = "the Mhordul";
                else if( m_Nation == Nation.Tyrean )
                    m_RPTitle = "the Tyrean";
                else if( m_Nation == Nation.Vhalurian )
                    m_RPTitle = "the Vhalurian";
            }

            m_Intimidated = 0;

            #region Removing Healing and HairStyling as feats and returning to players their CP
            if (Feats.GetFeatLevel(FeatList.Healing) == 3)
            {
                Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 3, true);
            }
            if (Feats.GetFeatLevel(FeatList.Healing) == 2)
            {
                Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 2, true);
            }
            if (Feats.GetFeatLevel(FeatList.Healing) == 1)
            {
                Feats.FeatDictionary[FeatList.Healing].AttemptRemoval(this, 1, true);
            }
            if (Feats.GetFeatLevel(FeatList.HairStyling) == 3)
            {
                Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 3, true);
            }
            if (Feats.GetFeatLevel(FeatList.HairStyling) == 2)
            {
                Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 2, true);
            }
            if (Feats.GetFeatLevel(FeatList.HairStyling) == 1)
            {
                Feats.FeatDictionary[FeatList.HairStyling].AttemptRemoval(this, 1, true);
            }
            #endregion

            m_Deserialized = true;
        }
 private Subclass(Subclass/*!*/ str)
     : base(str) {
     ImmediateClass = str.ImmediateClass;
 }