public void DeclareUnlock(PuzzlePlace lockPlace)
{
var place = lockPlace as PuzzlePlace;
if (place == null || place.PlaceIndex == -1)
throw new PuzzleException("We can't declare unlock");
this.PlaceIndex = _section.GetUnlock(place);
_room = _section.Places[PlaceIndex].Room;
this.IsUnlock = true;
this.UpdatePosition();
}