public Game(GameMode GameMode, HeroMode HeroMode, SkillMode SkillMode, List <String> AdditionalModes) { this.GameMode = GameMode; this.HeroMode = HeroMode; this.SkillMode = SkillMode; this.AdditionalModes = AdditionalModes; if (File.Exists("bans.txt")) { string[] bans = File.ReadAllLines("bans.txt"); Bans = bans.ToList(); } Players.AfterAdd += new EventfulDictionary <string, Player> .DataChangedEventHandler(Players_AfterAdd); Players.AfterRemove += new EventfulDictionary <string, Player> .DataChangedEventHandler(Players_AfterRemove); }
public void SwitchMode(HeroMode m) { // ensures that the animator is restarted when changing mode _animator.speed = 1; _wasIdle = false; _isIdle = false; _previousMode = CurrentMode; CurrentMode = m; _animator.SetInteger(AnimStrings.Mode, (int)m); _animator.SetTrigger(AnimStrings.SwitchMode); switch (m) { case HeroMode.Jump when _previousMode != HeroMode.Jump: _audio.Play(Sounds.Jump); break; case HeroMode.Slash: _audio.Play(Sounds.Slash); break; case HeroMode.BigSlash: _audio.Play(Sounds.HeavySlash); break; default: switch (_previousMode) { case HeroMode.Jump: _audio.Play(Sounds.Land); break; case HeroMode.BigSlash: _audio.Stop(Sounds.HeavySlash); break; } break; } }
public CharacterInfo(BinaryReader reader) { Index = reader.ReadInt32(); Name = reader.ReadString(); Level = reader.ReadUInt16(); Class = (MirClass)reader.ReadByte(); Gender = (MirGender)reader.ReadByte(); Hair = reader.ReadByte(); CreationIP = reader.ReadString(); CreationDate = DateTime.FromBinary(reader.ReadInt64()); Banned = reader.ReadBoolean(); BanReason = reader.ReadString(); ExpiryDate = DateTime.FromBinary(reader.ReadInt64()); LastIP = reader.ReadString(); LastDate = DateTime.FromBinary(reader.ReadInt64()); Deleted = reader.ReadBoolean(); DeleteDate = DateTime.FromBinary(reader.ReadInt64()); CurrentMapIndex = reader.ReadInt32(); CurrentLocation = new Point(reader.ReadInt32(), reader.ReadInt32()); Direction = (MirDirection)reader.ReadByte(); BindMapIndex = reader.ReadInt32(); BindLocation = new Point(reader.ReadInt32(), reader.ReadInt32()); HP = reader.ReadUInt16(); MP = reader.ReadUInt16(); Experience = reader.ReadInt64(); AMode = (AttackMode)reader.ReadByte(); PMode = (PetMode)reader.ReadByte(); HMode = (HeroMode)reader.ReadByte(); PKPoints = reader.ReadInt32(); int count = reader.ReadInt32(); Array.Resize(ref Inventory, count); for (int i = 0; i < count; i++) { if (!reader.ReadBoolean()) { continue; } UserItem item = new UserItem(reader, Envir.LoadVersion, Envir.LoadCustomVersion); if (SMain.Envir.BindItem(item) && i < Inventory.Length) { Inventory[i] = item; } } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { if (!reader.ReadBoolean()) { continue; } UserItem item = new UserItem(reader, Envir.LoadVersion, Envir.LoadCustomVersion); if (SMain.Envir.BindItem(item) && i < Equipment.Length) { Equipment[i] = item; } } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { if (!reader.ReadBoolean()) { continue; } UserItem item = new UserItem(reader, Envir.LoadVersion, Envir.LoadCustomVersion); if (SMain.Envir.BindItem(item) && i < QuestInventory.Length) { QuestInventory[i] = item; } } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { UserMagic magic = new UserMagic(reader); if (magic.Info == null) { continue; } Magics.Add(magic); } //reset all magic cooldowns on char loading < stops ppl from having none working skills after a server crash for (int i = 0; i < Magics.Count; i++) { Magics[i].CastTime = 0; } Thrusting = reader.ReadBoolean(); HalfMoon = reader.ReadBoolean(); CrossHalfMoon = reader.ReadBoolean(); DoubleSlash = reader.ReadBoolean(); MentalState = reader.ReadByte(); count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Pets.Add(new PetInfo(reader)); } AllowGroup = reader.ReadBoolean(); if (Envir.LoadVersion == 12) { count = reader.ReadInt32(); } for (int i = 0; i < Globals.FlagIndexCount; i++) { Flags[i] = reader.ReadBoolean(); } if (Envir.LoadVersion > 27) { GuildIndex = reader.ReadInt32(); } if (Envir.LoadVersion > 30) { AllowTrade = reader.ReadBoolean(); } if (Envir.LoadVersion > 33) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { QuestProgressInfo quest = new QuestProgressInfo(reader); if (SMain.Envir.BindQuest(quest)) { CurrentQuests.Add(quest); } } } if (Envir.LoadVersion > 42) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Buff buff = new Buff(reader); if (Envir.LoadVersion == 51) { buff.Caster = SMain.Envir.GetObject(reader.ReadUInt32()); } Buffs.Add(buff); } } if (Envir.LoadVersion > 43) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Mail.Add(new MailInfo(reader, Envir.LoadVersion, Envir.LoadCustomVersion)); } } //IntelligentCreature if (Envir.LoadVersion > 44) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { UserIntelligentCreature creature = new UserIntelligentCreature(reader); if (creature.Info == null) { continue; } IntelligentCreatures.Add(creature); } if (Envir.LoadVersion == 45) { var old1 = (IntelligentCreatureType)reader.ReadByte(); var old2 = reader.ReadBoolean(); } PearlCount = reader.ReadInt32(); } if (Envir.LoadVersion > 49) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { CompletedQuests.Add(reader.ReadInt32()); } } if (Envir.LoadVersion > 50 && Envir.LoadVersion < 54) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Poison poison = new Poison(reader); if (Envir.LoadVersion == 51) { poison.Owner = SMain.Envir.GetObject(reader.ReadUInt32()); } Poisons.Add(poison); } } if (Envir.LoadVersion > 56) { if (reader.ReadBoolean()) { CurrentRefine = new UserItem(reader, Envir.LoadVersion, Envir.LoadCustomVersion); } if (CurrentRefine != null) { SMain.Envir.BindItem(CurrentRefine); } CollectTime = reader.ReadInt64(); CollectTime += SMain.Envir.Time; } if (Envir.LoadVersion > 58) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { Friends.Add(new FriendInfo(reader)); } } if (Envir.LoadVersion > 59) { Married = reader.ReadInt32(); MarriedDate = DateTime.FromBinary(reader.ReadInt64()); Mentor = reader.ReadInt32(); MentorDate = DateTime.FromBinary(reader.ReadInt64()); isMentor = reader.ReadBoolean(); MentorExp = reader.ReadInt64(); } if (Envir.LoadVersion >= 63) { int logCount = reader.ReadInt32(); for (int i = 0; i < logCount; i++) { GSpurchases.Add(reader.ReadInt32(), reader.ReadInt32()); } } if (Envir.LoadVersion >= 80) { VIP = DateTime.FromBinary(reader.ReadInt64()); } if (Envir.LoadVersion >= 81) { HumUp = reader.ReadBoolean(); } if (Envir.LoadVersion > 87) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { MyRecipes.Add(new PlayerRecipes(reader, Envir.LoadVersion)); } } if (Envir.LoadVersion > 93) { HasHero = reader.ReadBoolean(); } if (Envir.LoadVersion > 112) { HeroLoadVersion = reader.ReadInt32(); } if (Envir.LoadVersion > 127) { count = 0; count = reader.ReadInt32(); for (int i = 0; i < count; i++) { ClientCompletedQuests.Add(new ClientQuestCompleted(reader)); } } if (Envir.LoadVersion > 129) { CurrentHeroCount = reader.ReadSByte(); HeroCapCount = reader.ReadSByte(); } if (Envir.LoadVersion > 135) { count = reader.ReadInt32(); for (int i = 0; i < count; i++) { int dailyEvent = reader.ReadInt32(); DailyEventsCompleted.Add(dailyEvent); } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { int weeklyEvent = reader.ReadInt32(); WeeklyEventsCompleted.Add(weeklyEvent); } } if (Envir.LoadVersion > 136) { CrescentSlash = reader.ReadBoolean(); } }