1/* * module * 
    2% This is isOptional (simple) monster to prowl the maze world.
    3%
    4% monster.pl
    5% July 11, 1996
    6% John Eikenberry
    7%
    8% Dec 13, 2035
    9% Douglas Miles
   10%
   11% Declare the module name and the exported (public) predicates.
   12*/
   13:-swi_module(mobMonster,[]).   14
   15% Predicates asserted during run.
   16% :- dynamic memory/2. 
   17% :- dynamic  agent_list/1.
   18
   19:- include(prologmud(mud_header)).   20% Possible agent actions.
   21% :- register_module_type (planning).
   22
   23tCol(mobMonster).
   24
   25world_agent_plan(_World,Agent,Act):-
   26   isa(Agent,mobMonster),
   27   monster_idea(Agent,Act).
   28   
   29monster_idea(Agent,actEat(Food)) :-
   30	mudEnergy(Agent,Charge),
   31	Charge < 100,
   32        mudPossess(Agent, Food),
   33        isa_any(Food,[tFood,tCorpse]).
   34monster_idea(Agent,actTake(Food)) :-
   35	mudNearBody(Agent,What),
   36	isa_any(Food,[tFood,tCorpse]),
   37	obj_memb(Food,What).
   38monster_idea(Agent,actMove(1,Dir)) :-
   39	mudGetPrecepts(Agent,List),
   40	isa_any(Food,[tFood,tCorpse]),
   41	list_object_dir_sensed(_,List,Food,Dir).
   42monster_idea(Agent,actAttack(Dir)) :-
   43	mudNearReach(Agent,List),
   44	list_agents(Agents),
   45	isa_any(NearAgt,Agents),
   46	list_object_dir_near(List,NearAgt,Dir).
   47monster_idea(Agent,actMove(1,Dir)) :-
   48	mudGetPrecepts(Agent,List),
   49	list_agents(Agents),
   50	isa_any(NearAgt,Agents),
   51	list_object_dir_sensed(_,List,NearAgt,Dir).
   52
   53monster_idea(Agent,Act) :- move_or_sit_memory_idea(Agent,Act,[tCorpse]).
   54
   55tCol(tClothing).
   56prologHybrid(wearsClothing/2).
   57
   58%:-wdmsg(wearsClothing/2).
   59%:-prolog.
   60%:-visible(+all),leash(+all),trace.
   61:-ain(meta_argtypes(wearsClothing(tObj,tClothing))).   62%:-quietly.
   63%:- prolog.
   64
   65% TODO fingure out why term_expansion is not working
   66%:-visible(+all),leash(-all),trace.
   67%instTypeProps(Instance,mobMonster,[mudDescription(txtFormatFn("Very screy looking monster named ~w",[Instance])),wearsClothing(tToughHide),mudPossess(tToughHide)]).
   68%:-quietly.
   69%:- prolog.
   70
   71
   72:- include(prologmud(mud_footer)).