/*
 * Copyright (c) 2017, L. Adamson
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 * 
 * 1. Redistributions of source code must retain the above copyright notice, this
 *    list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *    
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * The views and conclusions contained in the software and documentation are those
 * of the authors and should not be interpreted as representing official policies,
 * either expressed or implied, of L. Adamson or DizzyDragon.net.
 * 
 */

package labyrinth.refmaterial.decoders;

public enum DecodedMonster
{
	// 400 MAT READ M$,M,MINDUNLVL,MAXDUNLVL,MINMONLVL,Q,V$
	//
	// <snip>
	//
	// 20010 DATA Skeleton,Zombie,Ghoul,Wraith,Spectre,Vampire
	// 20020 DATA Kobold,Gnoll,Goblin,Orc,Dwarf
	// 20030 DATA Harpie,Fighter,Bugbear,Doppleganger,Minotaur
	// 20040 DATA Ogre,Giant,Balrog,Dragon
	// 20050 DATA 4,6,8,10,12,14,3,4,3,5,5,6,6,7,8,10,10,12,16,20
	// 20060 DATA 1,1,1,1,3,4,1,1,1,1,1,2,1,2,3,3,3,4,7,9
	// 20070 DATA 9,13,20,20,20,20,8,12,10,20,20,20,20,20,20,20,20,20,20,20
	// 20080 DATA 1,2,2,3,4,5,1,1,1,1,1,2,1,3,3,3,3,4,7,8
	//
	// <snip>
	
	SKELETON( "Skeleton", 4, 1, 9, 1 ), 
	ZOMBIE( "Zombie", 6, 1, 13, 2 ), 
	GHOUL( "Ghoul", 8, 1, 20, 2 ), 
	WRAITH( "Wraith", 10, 1, 20, 3 ), 
	SPECTRE( "Spectre", 12, 3, 20, 4 ), 
	VAMPIRE( "Vampire", 14, 4, 20, 5 ), 
	KOBOLD( "Kobold", 3, 1, 8, 1 ), 
	GNOLL( "Gnoll", 4, 1, 12, 1 ), 
	GOBLIN( "Goblin", 3, 1, 10, 1 ), 
	ORC( "Orc", 5, 1, 20, 1 ), 
	DWARF( "Dwarf", 5, 1, 20, 1 ), 
	HARPY( "Harpy", 6, 2, 20, 2 ), 
	FIGHTER( "Fighter", 6, 1, 20, 1 ), 
	BUGBEAR( "Bugbear", 7, 2, 20, 3 ), 
	DOPPLEGANGER( "Doppleganger", 8, 3, 20, 3 ), 
	MINOTAUR( "Minotaur", 10, 3, 20, 3 ), 
	OGRE( "Ogre", 10, 3, 20, 3 ), 
	GIANT( "Giant", 12, 4, 20, 4 ), 
	BALROG( "Balrog", 16, 7, 20, 7 ), 
	DRAGON( "Dragon", 20, 9, 20, 8 );
	
	final public String	monsterName;
	final public int	unknownM;
	final public int	minDungeonLevel;
	final public int	maxDungeonLevel;
	final public int	minMonsterLevel;
	
	private DecodedMonster( String monsterName, int unknownM, int minDungeonLevel, int maxDungeonLevel, int minMonsterLevel )
	{
		this.monsterName = monsterName;
		this.unknownM = unknownM;
		this.minDungeonLevel = minDungeonLevel;
		this.maxDungeonLevel = maxDungeonLevel;
		this.minMonsterLevel = minMonsterLevel;
	}
}
