17
19:-swi_module(modEat, []). 20
21:- include(prologmud(mud_header)). 22
24
25genls(tFood,tEatAble).
26baseKB:action_info(actEat(tEatAble),"nourish oneself").
27
28
29agent_coerce_for(Pred,_TC,Agent,String,Obj):-
30 \+ call(Pred,Agent,String),
31 call(Pred,Agent,Obj),
32 match_object(String,Obj).
33
34
36baseKB:agent_call_command(Agent,actEat(String)) :-
37 agent_coerce_for(mudPossess,tEatAble,Agent,String,Obj),!,
38 baseKB:agent_call_command(Agent,actEat(Obj)).
39
42baseKB:agent_call_command(Agent,actEat(Obj)) :-
43 ((must_det((
44 mudPossess(Agent,Obj),
45 must((do_act_affect(Agent,actEat,Obj))),
46 must((clr(mudStowing(Agent,Obj)))),
47 48 destroy_instance(Obj),!,
49 sanity(\+ (mudPossess(Agent,Obj))),
50 must((call_update_charge(Agent,actEat))))))),!.
51
52update_charge(Agent,actEat) :- padd(Agent,mudEnergy(+ -1)).
53
54:- include(prologmud(mud_footer)).