public LockData(int lockLevel, SpellRecord trap, MiscItemRecord key)
 {
     this.lockLevel = lockLevel;
     this.trap      = trap;
     this.key       = key;
 }
	public ReferenceData(System.IO.BinaryReader reader)
	{
		var index = reader.ReadInt32();

		while (true)
		{
			var type = (SubRecordType)reader.ReadInt32();
			var size = reader.ReadInt32();

			switch (type)
			{
				case SubRecordType.Id:
					target = Record.GetRecord<CreatableRecord>(reader.ReadString(size));
					break;
				case SubRecordType.Scale:
					scale = reader.ReadSingle();
					break;
				case SubRecordType.DoorData:
					doorData = DoorExitData.Create(reader);
					break;
				case SubRecordType.DoorName:
					loadCell = reader.ReadString(size);
					break;
				case SubRecordType.FloatValue:
					lockLevel = reader.ReadInt32();
					break;
				case SubRecordType.KeyName:
					key = Record.GetRecord<MiscItemRecord>(reader.ReadString(size));
					break;
				case SubRecordType.Trapname:
					trap = Record.GetRecord<SpellRecord>(reader.ReadString(size));
					break;
				case SubRecordType.ReferenceBlocked:
					referenceBlocked = reader.ReadByte() != 0;
					break;
				case SubRecordType.OwnerName:
					owner = Record.GetRecord<NpcRecord>(reader.ReadString(size));
					break;
				case SubRecordType.BodyName:
					global = Record.GetRecord<Global>(reader.ReadString(size));
					break;
				case SubRecordType.IntValue:
					health = reader.ReadInt32(); // Health remaining? Also charge for lights
					break;
				case SubRecordType.Name9:
					quantity = reader.ReadInt32(); //0, 1, 5, 10, 25, 100. Definitely value override  or object count
					break;
				case SubRecordType.SoulName:
					soul = Record.GetRecord<CreatureRecord>(reader.ReadString(size));
					break;
				case SubRecordType.Data:
					transformData = new TransformData(reader);
					break;
				case SubRecordType.CreatureName:
					faction = Record.GetRecord<Faction>(reader.ReadString(size));
					break;
				case SubRecordType.Index:
					rank = reader.ReadInt32();
					break;
				case SubRecordType.SoulCharge:
					charge = reader.ReadSingle();
					break;
				default:
					reader.BaseStream.Position -= 8;
					return;
			}
		}
	}
Exemple #3
0
 public static bool IsGold(MiscItemRecord record)
 {
     return(GoldIds.Contains(record.name));
 }