/// <summary>
/// Locks place and creates and returns a key for it.
/// </summary>
/// <param name="place"></param>
/// <param name="keyName"></param>
/// <returns></returns>
public Item LockPlace(PuzzlePlace place, string keyName)
{
if (!place.IsLock)
{
throw new PuzzleException("Tried to lock a place that isn't a Lock");
}
var doorName = place.GetLockDoor().Name;
Item key;
if (place.IsBossLock)
{
key = Item.CreateKey(70030, doorName); // Boss Room Key
key.Info.Color1 = 0xFF0000; // Red
}
else
{
key = Item.CreateKey(70029, doorName); // Dungeon Room Key
key.Info.Color1 = place.LockColor;
}
place.LockPlace(key);
this.Keys[keyName] = key;
return(key);
}