138 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
|  <head>
 | |
|    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
|   <link rel="stylesheet" href="../../coverage.css"/>  <title> the_great_game/agent/agent.clj </title>
 | |
|  </head>
 | |
|  <body>
 | |
| <span class="covered" title="1 out of 1 forms covered">
 | |
|                 001  (ns the-great-game.agent.agent
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 002    "Anything in the game world with agency"
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 003    (:require [the-great-game.objects.game-object :refer [ProtoObject]]
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 004              [the-great-game.objects.container :refer [ProtoContainer]]))
 | |
|                 </span><br/>
 | |
| <span class="blank" title="0 out of 0 forms covered">
 | |
|                 005  
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 006  ;;  hierarchy of needs probably gets implemented here
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 007  ;;  I'm probably going to want to defprotocol stuff, to define the hierarchy
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 008  ;;  of things in the gameworld; either that or drop to Java, wich I'd rather not do.
 | |
|                 </span><br/>
 | |
| <span class="blank" title="0 out of 0 forms covered">
 | |
|                 009  
 | |
|                 </span><br/>
 | |
| <span class="covered" title="1 out of 1 forms covered">
 | |
|                 010  (defprotocol ProtoAgent
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 011    "An object which can act in the world"
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 012    (act
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 013      [actor world circle]
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 014         "Allow `actor` to do something in this `world`, in the context of this
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 015         `circle`; return the new state of the actor if something was done, `nil`
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 016         if nothing was done. Circle is expected to be one of
 | |
|                 </span><br/>
 | |
| <span class="blank" title="0 out of 0 forms covered">
 | |
|                 017  
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 018         * `:active` - actors within visual/audible range of the player
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 019           character;
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 020         * `:pending` - actors not in the active circle, but sufficiently close
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 021           to it that they may enter the active circle within a short period;
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 022         * `:background` - actors who are active in the background in order to
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 023           handle trade, news, et cetera;
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 024         * `other` - actors who are not members of any other circle, although
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 025           I'm not clear whether it would ever be appropriate to invoke an
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 026           `act` method on them.
 | |
|                 </span><br/>
 | |
| <span class="blank" title="0 out of 0 forms covered">
 | |
|                 027  
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 028         The `act` method *must not* have side effects; it must *only* return a
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 029         new state. If the actor's intention is to seek to change the state of
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 030         something else in the game world, it must add a representation of that
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 031         intention to the sequence which will be returned by its
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 032         `pending-intentions` method.")
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 033    (pending-intentions
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 034      [actor]
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 035      "Returns a sequence of effects an actor intends, as a consequence of
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 036      acting. The encoding of these is not yet defined."))
 | |
|                 </span><br/>
 | |
| <span class="blank" title="0 out of 0 forms covered">
 | |
|                 037  
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 038  ;; (defrecord Agent
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 039  ;;   "A default agent."
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 040  ;;   ProtoObject
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 041  ;;   ProtoContainer
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 042  ;;   ProtoAgent
 | |
|                 </span><br/>
 | |
| <span class="not-tracked" title="0 out of 0 forms covered">
 | |
|                 043  ;; )
 | |
|                 </span><br/>
 | |
|  </body>
 | |
| </html>
 |