14
15
16
18:-swi_module(mobExplorer,[]). 19
21
23
24:- include(prologmud(mud_header)). 26
27tCol(mobExplorer).
28
29vette_idea(Agent,Act,Act):-var(Act),!,dmsg(vette_idea(Agent,Act)).
30vette_idea(_,actSit,actSit):-!.
31vette_idea(Agent,Act,Act):-dmsg(vette_idea(Agent,Act)).
32
33
34prologHybrid(mudLabelTypeProps/3).
35
37
38
39:- sanity(arity(mudLabelTypeProps,3)). 40
41prologHybrid(typeHasGlyph(tCol,ftString)).
43typeHasGlyph(mobExplorer,"Px").
44
45world_agent_plan(_World,Agent,ActV):-
46 tAgent(Agent),
47 48 explorer_idea(Agent,Act),
49 vette_idea(Agent,Act,ActV).
50
51==> genls(tElixer,tDrinkAble).
52
54explorer_idea(Agent,actEat(Elixer)) :-
55 mudHealth(Agent,Damage),
56 Damage < 15,
57 mudPossess(Agent,List),
58 obj_memb(Elixer,List),
59 isa(Elixer,tElixer).
60
61explorer_idea(Agent,actEat(tFood)) :-
62 mudEnergy(Agent,Charge),
63 Charge < 150,
64 mudPossess(Agent,List),
65 obj_memb(Food,List),
66 isa(Food,tFood).
67
68explorer_idea(Agent,actTake(Good)) :-
69 mudNearBody(Agent,What),
70 obj_memb(Good,What),
71 isa_any(Good,[tGold,tElixer,tTreasure]).
72
73explorer_idea(Agent,actTake(Good)) :-
74 mudNearBody(Agent,What),
75 obj_memb(Good,What),
76 isa_any(Good,[tFood,tUsefull,tItem]).
77
78explorer_idea(Agent,actMove(1,Dir)) :-
79 mudGetPrecepts(Agent,List),
80 list_object_dir_sensed(_,List,tTreasure,Dir).
81
82explorer_idea(Agent,actMove(3,Dir)) :-
83 mudGetPrecepts(Agent,List),
84 list_object_dir_sensed(_,List,mobMonster,OppDir),
85 reverse_dir(OppDir,Dir),
86 number_to_dir(N,Dir,vHere),
87 nth1(N,List,What),
88 What == [].
89
90explorer_idea(Agent,actMove(1,Dir)) :-
91 mudGetPrecepts(Agent,List),
92 list_object_dir_sensed(_,List,tUsefull,Dir).
93
94explorer_idea(Agent,actMove(1,Dir)) :-
95 mudGetPrecepts(Agent,List),
96 list_object_dir_sensed(_,List,tAgent,Dir).
97
98explorer_idea(Agent,actMove(5,Dir)) :-
99 mudMemory(Agent,aDirectionsFn([Dir|_])),
100 number_to_dir(Num,Dir,vHere),
101 mudNearReach(Agent,List),
102 nth1(Num,List,What),
103 What == [].
104
105explorer_idea(Agent,actAttack(Dir)) :-
106 mudNearReach(Agent,List),
107 list_object_dir_near(List,mobMonster,Dir).
108
109explorer_idea(Agent,actLook) :-
110 req1(mudMemory(Agent,aDirectionsFn(Old))),
111 del(mudMemory(Agent,aDirectionsFn(Old))),
112 random_permutation(Old,New),
113 ain(mudMemory(Agent,aDirectionsFn(New))).
114
115:- set_prolog_flag(runtime_debug,3). 116
117:- include(prologmud(mud_footer)).