public Skill(Skills owner, SkillInfo info, IGenericReader reader) { Owner = owner; Info = info; int version = reader.ReadByte(); switch (version) { case 0: { m_Base = reader.ReadUShort(); m_Cap = reader.ReadUShort(); Lock = (SkillLock)reader.ReadByte(); break; } case 0xFF: { m_Base = 0; m_Cap = 1000; Lock = SkillLock.Up; break; } default: { if ((version & 0xC0) == 0x00) { if ((version & 0x1) != 0) { m_Base = reader.ReadUShort(); } if ((version & 0x2) != 0) { m_Cap = reader.ReadUShort(); } else { m_Cap = 1000; } if ((version & 0x4) != 0) { Lock = (SkillLock)reader.ReadByte(); } } break; } } if (Lock is < SkillLock.Up or > SkillLock.Locked) { Lock = SkillLock.Up; } }
private void Deserialize(IGenericReader reader, int version) { switch (version) { case 1: { // Use this line instead if you are getting world loading issues _resource = (CraftResource)reader.ReadByte(); // _resource = (CraftResource)reader.ReadInt(); break; } case 0: { var info = reader.ReadInt() switch { 0 => OreInfo.Iron, 1 => OreInfo.DullCopper, 2 => OreInfo.ShadowIron, 3 => OreInfo.Copper, 4 => OreInfo.Bronze, 5 => OreInfo.Gold, 6 => OreInfo.Agapite, 7 => OreInfo.Verite, 8 => OreInfo.Valorite, _ => null }; _resource = CraftResources.GetFromOreInfo(info); break; } } }
public static Poison Deserialize(IGenericReader reader) { switch (reader.ReadByte()) { case 1: return(GetPoison(reader.ReadByte())); case 2: // no longer used, safe to remove? reader.ReadInt(); reader.ReadDouble(); reader.ReadInt(); reader.ReadTimeSpan(); break; } return(null); }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadByte(); if (version <= 1) { Timer.DelayCall(Fix, version); } }
public static void Deserialize(IGenericReader reader, int version, BaseObjectiveInstance objInstance) { if (reader.ReadBool()) { DateTime endTime = reader.ReadDeltaTime(); if (objInstance != null) { objInstance.EndTime = endTime; } } DataType extraDataType = (DataType)reader.ReadByte(); switch (extraDataType) { case DataType.EscortObjective: { bool completed = reader.ReadBool(); if (objInstance is EscortObjectiveInstance instance) { instance.HasCompleted = completed; } break; } case DataType.KillObjective: { int slain = reader.ReadInt(); if (objInstance is KillObjectiveInstance instance) { instance.Slain = slain; } break; } case DataType.DeliverObjective: { bool completed = reader.ReadBool(); if (objInstance is DeliverObjectiveInstance instance) { instance.HasCompleted = completed; } break; } } }
public VirtueInfo(IGenericReader reader) { int version = reader.ReadByte(); switch (version) { case 1: // Changed the values throughout the virtue system case 0: { int mask = reader.ReadByte(); if (mask != 0) { Values = new int[8]; for (var i = 0; i < 8; ++i) { if ((mask & (1 << i)) != 0) { Values[i] = reader.ReadInt(); } } } break; } } if (version == 0) { Compassion *= 200; Sacrifice *= 250; // Even though 40 (the max) only gives 10k, It's because it was formerly too easy // No direct conversion factor for Justice, this is just an approximation Justice *= 500; // All the other virtues haven't been defined at 'version 0' point in time in the scripts. } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadByte(); switch (version) { case 0: { m_LabelNumber = reader.ReadEncodedInt(); break; } } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_TreasureLevel = (TreasureLevel)reader.ReadByte(); m_MinSpawnTime = reader.ReadShort(); m_MaxSpawnTime = reader.ReadShort(); if (!Locked) { StartResetTimer(); } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadByte(); if (ItemID == 4678 || ItemID == 4679) { ItemID = 4656; } else if (ItemID == 4712 || ItemID == 4713) { ItemID = 4702; } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); LootType = LootType.Blessed; int version = reader.ReadInt(); switch (version) { case 3: { m_Quality = (BookQuality)reader.ReadByte(); goto case 2; } case 2: { m_Crafter = reader.ReadEntity <Mobile>(); goto case 1; } case 1: { m_Level = (SecureLevel)reader.ReadInt(); goto case 0; } case 0: { int count = reader.ReadInt(); m_Entries = new List <RunebookEntry>(count); for (int i = 0; i < count; ++i) { m_Entries.Add(new RunebookEntry(reader)); } m_Description = reader.ReadString(); m_CurCharges = reader.ReadInt(); m_MaxCharges = reader.ReadInt(); m_DefaultIndex = reader.ReadInt(); break; } } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadByte(); if (version == 0) { Timer.DelayCall(TimeSpan.Zero, () => { for (int i = 0; i < Components.Count; ++i) { if (Components[i] is AddonComponent ac && ac.Hue == 2118) { ac.Hue = 1161; } } });
public RunebookEntry(IGenericReader reader) { int version = reader.ReadByte(); switch (version) { case 1: { m_House = reader.ReadEntity <BaseHouse>(); goto case 0; } case 0: { m_Location = reader.ReadPoint3D(); m_Map = reader.ReadMap(); m_Description = reader.ReadString(); break; } } }
public Skill(Skills owner, SkillInfo info, IGenericReader reader) { Owner = owner; Info = info; int version = reader.ReadByte(); switch (version) { case 0: { m_Base = reader.ReadUShort(); m_Cap = reader.ReadUShort(); Lock = (SkillLock)reader.ReadByte(); break; } case 0xFF: { m_Base = 0; m_Cap = 1000; Lock = SkillLock.Up; break; } default: { if ((version & 0xC0) == 0x00) { if ((version & 0x1) != 0) { m_Base = reader.ReadUShort(); } if ((version & 0x2) != 0) { m_Cap = reader.ReadUShort(); } else { m_Cap = 1000; } if ((version & 0x4) != 0) { Lock = (SkillLock)reader.ReadByte(); } } break; } } if (Lock < SkillLock.Up || Lock > SkillLock.Locked) { Console.WriteLine("Bad skill lock -> {0}.{1}", owner.Owner, Lock); Lock = SkillLock.Up; } }
public override void Deserialize(IGenericReader reader) { base.Deserialize(reader); int version = reader.ReadByte(); }
public static Poison ReadPoison(this IGenericReader reader) => reader.ReadBool() ? Poison.GetPoison(reader.ReadByte()) : null;