1/* * module *
    2% actPut.pl
    3%
    4% This file defines how an agent puts 
    5%
    6%  Test of the new concise syntax:
    7% 
    8%   props(Agent,charge>10),
    9%
   10% Comments below document the basic idea.
   11%
   12% Dec 13, 2035
   13% Douglas Miles
   14*/
   15% :-swi_module(user). 
   16:-swi_module(modPut, []).   17
   18:- include(prologmud(mud_header)).   19
   20% :- register_module_type (mtCommand).
   21
   22% actPut
   23baseKB:action_info(actPut(tCarryAble,txtPrepSpatial,tPutTargetAble),"actPut [obj] [onto|inside] [somewhere]").
   24
   25baseKB:text_actverb(T,V):-vtVerb(V),name_text_cached(V,T).
   26baseKB:text_actverb(set,actPut).
   27baseKB:text_actverb(place,actPut).
   28baseKB:text_actverb(hide,actPut).
   29baseKB:text_actverb(display,actPut).
   30baseKB:text_actverb(stow,actPut).
   31
   32%targeted
   33baseKB:agent_call_command(Agent,actPut(Other,Prep,Where)):-actPut(Agent,Other,Prep,Where).
   34
   35
   36actPut(Agent,Other,_Prep,Where):-
   37   %hasPhysicalAccess(Agent,Room),
   38   localityOfObject(Target,Room),
   39   ignore(localityOfObject(Agent,Room)),
   40   coerce(Other,tObj,Target),
   41   coerce(Where,tPutTargetAble,Location),
   42   clr(localityOfObject(Target,Room)),
   43   clr(mudAtLoc(Target,_)),
   44   to_3d(Location,Where3D),
   45   ain(mudAtLoc(Where3D,Location)).
   46
   47
   48:- include(prologmud(mud_footer)).