:- dynamic(taoist/6).
:- dynamic(buddha/2).
:- dynamic(village/5).
:- dynamic(ghostField/3).
:- dynamic(prayer/1).
:- dynamic(uncatchable/1).

/**
 @descr representation of a ghost 
 @form ghost(ID,Name,BaseColor,Resistance,Entrance,Round,Exit,Image)
 */ 
ghost(1,'Ghoul',yellow,[1,0,0,0,0],none,haunt,none,image).
ghost(2,'Walking Corpse',yellow,[1,0,0,0,0],none,noDice,none,image).
ghost(3,'Coffin Breakers',yellow,[1,0,0,0,0],addGhostNoPower,none,none,image).
ghost(4,'Coffin Breakers',yellow,[1,0,0,0,0],addGhost,none,none,image).
ghost(5,'Restless Dead',yellow,[2,0,0,0,0],none,haunt,none,image).
ghost(6,'Zombie',yellow,[2,0,0,0,0],none,none,curseDie,image).
ghost(7,'Zombie',yellow,[2,0,0,0,0],none,none,curseDie,image).
ghost(8,'Hopping Vampire',yellow,[3,0,0,0,0],none,haunt,none,image).
ghost(9,'Hopping Vampire',yellow,[3,0,0,0,0],none,haunt,none,image).
ghost(10,'Yellow Plague',yellow,[4,0,0,0,0],none,none,anyTwoTao,image).
ghost(11,'Lich',yellow,[4,0,0,0,0],none,curseDie,qiYY,image).

ghost(12,'Drowned Maiden',blue,[0,0,0,1,0],none,haunt,none,image).
ghost(13,'Hound of Depth',blue,[0,0,0,1,0],none,noDice,none,image).
ghost(14,'Perfidious Nymph',blue,[0,0,0,1,0],addGhostNoPower,none,none,image).
ghost(15,'Perfidious Nymph',blue,[0,0,0,1,0],addGhost,none,none,image).
ghost(16,'Sticky Feet',blue,[0,0,0,2,0],none,haunt,none,image).
ghost(17,'Abysmal',blue,[0,0,0,2,0],none,none,curseDie,image).
ghost(18,'Abysmal',blue,[0,0,0,2,0],none,none,curseDie,image).
ghost(19,'Ooze Devil',blue,[0,0,0,3,0],none,haunt,none,image).
ghost(20,'Ooze Devil',blue,[0,0,0,3,0],none,haunt,none,image).
ghost(21,'Liquid Horror',blue,[0,0,0,4,0],none,none,anyTwoTao,image).
ghost(22,'Fury of depth',blue,[0,0,0,4,0],none,curseDie,qiYY,image).

ghost(23,'Creeping One',green,[0,0,1,0,0],none,haunt,none,image).
ghost(24,'Fungus Thing',green,[0,0,1,0,0],none,noDice,none,image).
ghost(25,'Fallen Monks',green,[0,0,1,0,0],addGhostNoPower,none,none,image).
ghost(26,'Fallen Monk',green,[0,0,1,0,0],addGhost,none,none,image).
ghost(27,'Restless Spirit',green,[0,0,2,0,0],none,haunt,none,image).
ghost(28,'Rotten Soul',green,[0,0,2,0,0],none,none,curseDie,image).
ghost(29,'Rotten Soul',green,[0,0,2,0,0],none,none,curseDie,image).
ghost(30,'Wicked One',green,[0,0,3,0,0],none,haunt,none,image).
ghost(31,'Wicked One',green,[0,0,3,0,0],none,haunt,none,image).
ghost(32,'Green Abdomination',green,[0,0,4,0,0],none,none,anyTwoTao,image).
ghost(33,'Great Putrid',green,[0,0,4,0,0],none,curseDie,qiYY,image).

ghost(34,'Skinner',red,[0,1,0,0,0],none,haunt,none,image).
ghost(35,'Reaper',red,[0,1,0,0,0],none,noDice,none,image).
ghost(36,'Sharp-Nailed Mistresses',red,[0,1,0,0,0],addGhostNoPower,none,none,image).
ghost(37,'Sharp-Nailed Mistresses',red,[0,1,0,0,0],addGhost,none,none,image).
ghost(38,'Bleeding eyes',red,[0,2,0,0,0],none,haunt,none,image).
ghost(39,'Blood drinker',red,[0,2,0,0,0],none,none,curseDie,image).
ghost(40,'Blood drinker',red,[0,2,0,0,0],none,none,curseDie,image).
ghost(41,'Scarlet Evildoer',red,[0,3,0,0,0],none,haunt,none,image).
ghost(42,'Scarlet Evildoer',red,[0,3,0,0,0],none,haunt,none,image).
ghost(43,'Flesh Devourer',red,[0,4,0,0,0],none,none,anyTwoTao,image).
ghost(44,'Raging One',red,[0,4,0,0,0],none,curseDie,qiYY,image).

ghost(45,'Gloomy Minion',black,[0,0,0,0,1],haunt,haunt,anyTao,image).
ghost(46,'Repellent Beauty',black,[0,0,0,0,1],stealDie,noDice,anyTao,image).
ghost(47,'Severed Heads',black,[0,0,0,0,1],addGhostStealDie,none,anyTao,image).
ghost(48,'Severed Heads',black,[0,0,0,0,1],addGhostStealDie,none,anyTao,image).
ghost(49,'Grave Walker',black,[0,0,0,0,2],stealQi,haunt,qiYY,image).
ghost(50,'Black Widow',black,[0,0,0,0,2],lockTao,none,curseDieQiYY,image).
ghost(51,'Black Widow',black,[0,0,0,0,2],lockTao,none,curseDieQiYY,image).
ghost(52,'Dark Wrath',black,[0,0,0,0,3],haunt,haunt,qiYY,image).
ghost(53,'Dark Wrath',black,[0,0,0,0,3],haunt,haunt,qiYY,image).
ghost(54,'Shapeless Evil',black,[0,0,0,0,4],hauntVillage,none,qiYY,image).
ghost(55,'Soul Eater',black,[0,0,0,0,4],stealTao,curseDie,qiYY,image).

ghost(56,'Howling Nightmare',black,[0,0,0,0,3],addGhost,noGhostTowards,addQiAndYY,image).
ghost(57,'Uncatchable',black,[0,0,0,0,3],curseDie,placeOnBuddha,addQiAndYY,image).
ghost(58,'Hope Killer',black,[2,2,2,2,0],none,none,curseDieAndAddQiAndYY,image).
ghost(59,'Deaths Army',black,[0,0,0,0,5],none,curseDie,curseDieAndAddQiAndYY,image).
ghost(60,'Forgotten Ones',black,[0,0,0,0,3],lockPowerAll,none,addQiAndYY,image).
ghost(61,'Wu-Feng BoneCracker',red,[0,4,0,0,0],alleTaoistenVerlierenEinenTaoMarker,alleTaoistenVerlierenEinenTaoMarker,addQiAndYY,image).
ghost(62,'Dark Mistress',blue,[0,0,0,3,0],lockTao,none,addQiAndYY,image).
ghost(63,'Creeping Horror',green,[0,0,4,0,0],stealDie,none,addQiAndYY,image).
ghost(64,'Vampire Lord',yellow,[4,0,0,0,0],none,haunt,addQiAndYY,image).
ghost(65,'Wu-Feng Nameless',black,[1,1,1,1,1],gebetskreisEntfernen,whiteDiceNoJoker,addQiAndYY,image).

/**
 @descr representation of a tao-warrior
 @form taoist(Color,Name,TaoMarkers,QiCount,YYMarker,Position)
 */
taoist(yellow,'Name',[1,0,0,0,0],4,1,5).
taoist(red,'Name',[0,1,0,0,0],4,1,5).
taoist(green,'Name',[0,0,1,0,0],4,1,5).
taoist(blue,'Name',[0,0,0,1,0],4,1,5).

/**
 @descr representation of a buddha-figure
 @form buddha(ID,Player or GhostField)
 */
buddha(1,none).
buddha(2,none).

/**
 @descr representation of a village tile
 @form village(ID,Name,Ability,isHaunted,Position)
 */
village(1,'Cemetery',resurrect,none,1).
village(2,'Taoist altar',unhauntVillage,none,2).
village(3,'Herbalists shop',twoTao,none,3).
village(4,'Sorcerers hut',exorcise,none,4).
village(5,'Night watchmens post',resetHaunters,none,5).
village(6,'Buddhist temple',takeBuddha,none,6).
village(7,'Circle of prayer',exorcismAid,none,7).
village(8,'Tea house',taoQiGhost,none,8).
village(9,'Pavilion of the heavenly wind',movePlayerGhost,none,9).

/**
 @descr representation of ghost boards
 @form ghostField(ID,GhostID,PlayerID)		  
 */
ghostField((1,3),0,green).
ghostField((2,3),0,green).
ghostField((3,3),0,green).
ghostField((3,-1),0,blue).
ghostField((6,-1),0,blue).
ghostField((9,-1),0,blue).
ghostField((9,-3),0,yellow).
ghostField((8,-3),0,yellow).
ghostField((7,-3),0,yellow).
ghostField((7,1),0,red).
ghostField((4,1),0,red).
ghostField((1,1),0,red).

/**
 @descr representation of prayer-tao-markers
 @form prayer(?List)		  
 */
prayer([0,0,0,0,0]).
