All Downloads are FREE. Search and download functionalities are using the official Maven repository.

APT.all-test.MOUTBot._notes.soar Maven / Gradle / Ivy

#+===================+
#| Things to discuss |
#+===================+
#1. Format for productions including comments, tabs, variable names, and production names

#+===================+
#| After the 11 Oct demo|
#+===================+
# 2. REW: record-threat needs to be re-worked.  I propose: record-threat, remember-threat, update-threat
#         This would lead to some duplication but there's actually little overlap now as it is and
#         the implementation is messy, bittle, and buggy.
# 3. Fix problem with Bot 5 and determine threat door.  Why can't
#         it recognize the entryway threat door?
# 4. Accept-message.  Need to develop a way to ignore own messages (best: have sim not send outgoing broadcasts to self)
# 5. Fix the major-league-hacks
# 6. Commit a stable, current version of the bot (not just the zip file)
#+============+
#| Soar To Do |
#+============+
#2. Have map display bots current destination area on the map
#3. Remove requirement that offensive bot have ^map

#+============================+
#| Useful UT Console Commands |
#+============================+
##1. summon moutgame.soarmoutbot - summons a soar agent into Infiltration
##2. invisible 1 - makes you invisible
##3. invisible 0 - makes you visible again
##4. god - makes you invincible
##5. ghost - makes your ethereal (can walk through walls and fly)
##6. walk - turns off ghost
##7. F1 - F5: summon TCL moutbots 1-5
##8. summon moutgame.soarapimoutbot0-5  (F6-F10)
##     Summon API bots.  Must copy Agents/ to UnrealTournament/System/, and
##                        comment any tcl functions (_firstload, elaborations/monitor.soar)
##                                                               elaborations/status.soar
# 'T' is bound to screenshot

#+====================+
#| UnrealScript To Do |
#+====================+
#UnrealScript Side
#1. Make sure enemies are are threat team
#2. Make sure friendlies are on same team
#3. Should rename .enemy to .entity

#+============+
#| Changes    |
#+============+

## REW: 2003-06-15
# 1. Added productions to remove attack commands and add "attack.value off" whenever feedbackis received that attacks are underway
#    (this isn't the right soln, and is brittle, but bots are shooting when they're supposed to, not when they aren't)
# 2. Devvan confirmed grenades won't work with this setup so disabled attack-grenade
# Known bugs:
#    - sometimes tried to move from retreat/hide in prone position
#      (does all movement go thru move-to-xyz?)
#    - will get stuck defending instaed of attack if switching to grenade
#        but looses grenade-attack proposal.  Need switch to defensive weaon at level of defend
#    - appears to sometimes issue pullig out command multiple times
#    - feelers don't work so will get stuck against walls/other bot
#    - deconflict on same position often fails
#    - have seen bots sometime in middle of a room with stuck true?
#    - race condition problem with move-to-xyz.  If true that sometimes commands need to be
#        re-issued, then this race condition pervent same move-to xyz command
#        from ever being re-issued
#    - freeze -stand doesn't make any sense (stand will never be seelcted)


## REW: 2003-06-15
# 1. -^changing-body-position for move-to-defensive-position (scenario 2002-10)
# 2. added prods for specific body positions for scenarios (z-patches only)
# 3. added adjust-position operator to attack (side step toincrese angle off from 0 to friendlies)
# 4. added elabs to determine when friendlies in line-of-sight (attack)
# 5. added min angle off for attack params (left/right)
# 6. commented out los elabs -- soemthing not working, see if it's ne stuff
# 7. attak problem arose b.c feedback from shooting not being updated and so any extra outputs getting ignored 
#    (and not copied to output link, whuich makes shoot not terminate).  Deleted attack from feedback list for now.


## REW: 2003-06-14
# 1. Added -^changing-body-position to move operators.  Because ^body-position stand is determned via status complete of a stand command,
#    but status compelte doesn't really mean that the bot posture is stand, we also want to test that the body opsition isn't chaning
#    detrmined via input link.  Ugly, but this should get us thru the demo.
# 2. Changed grenade ^value normal to ^value chrge via Devvan's suggestion


## JEL: 2003-06-13
# 1. Reject defensive positions that are too close to friendly
# 2. Don't try attack with a grenade during the waiting time for the grenade to explode
# 3. Don't throw grenade through a doorway if off to the side

## REW: 2003-06-13
# 1. Add retreat-initiative to the retreat objective when retreat is started first time
# 2. Changed pull/pulling out so that they will not be sent when retreat objective is initiated
# 3. Changed pull/pulling out retreat proposals so that they don't fire once retreat is initiated
# 4. Updated scenario ambush (re implemented files)
# 5. Added leader/subordniate to scenarios
# 6. Added -^changing-body-position test for attack/attack-grenade (possible source of erroroneous shooting behavior?)


## REW: 2003-06-12
# 1. Fixed problem in accept-message for pull/pulling out
# 2. Fixed thall scenario name 
# 3. Added another changing-body-position elaboration fro input-link feedback
# 4. Added - condition for changing-body-position to start-moving

## REW: 2003-06-11
# 1. Add strength to genade (Devvan recommends b/w 80 & 1500).  Parameter.  For now, assumed medium ranges.
# 2. Visual Saor blues: will not open scenario-ambush.  Why?  Re-creed as scenario-ambush2
# 3. Add strength to attack for shooting (sim bug)
# 4. Add pull-out/pulling-out as implemented comms
# 5. Added sound/text registrations for pulllng-out
# 6. Modified team structure to expresses leader/subordinate (scenario-lhall only)
# 7. Added retreat proposal for rcv'd pulling out msg 
# 8. Added retreat proposal for rcv'd pull out message (should this get a best?)
# 9. Added retret communicate "pull out" if bot is leader and another bot on team visible
# 10. Added retreat communicate "pullingout" if another bot on team visible and bot has decided to retreat


## JEL: 2003-06-10
# 1. Will change back to gun after throw grenade: choose-weapon
# 2. Fix so labels defensive-position.area as abandoned during retreat - not current area. Should fix some problems with abandoned areas and retreat.
# 3. Fix misc. bugs in the code to compute the defensive points in halls - where the connector is real-connector
# 4. Shorten time to hide - was way too long.
# 5. Make it so defend is used for hiding

## REW: 2003-06-09
# 1. added default walk/run values to parameters
# 2. updated bot code to use default run/walk values
#    (roam,move-todefensive-area,move-to-defensive-node, hide, etc)
# 3. Established reasonable values for default walk/run based on recent sim changes
# 4. Corrected retreat objective room for scenario=ambush
# 5. Kneel/lie=prone/stand when defend.desired-body-position
# 6. Stand up tp retreat or move to attack
# 7. Simple error correction for failed posture: apply*execute-mission*posture-change-failed
# 8. encode very simple determine-body-position for defend (random choice)
# 9. Fixed minor error in apply*operator*monitor*status-error

## JEL: 2003-06-08
# 1. Add some more tracing to monitor-map.soar
#    - now monitors moving within an area (had to add monitor*move-to-xyz*floor-displacement)
#    - monitor inner edges
# 2. Elaborations/parameters
#    - decrease wall-edge to 30
# 3. Adjusted some of the numbers is execute-mission/elaborations so they were closer to reality
# 4. defend/determine-defensive-room-position
#        Distinguishes between a room and a hallway - based on connectors/doorways

## REW: 2003-06-07
# 1. Fixed parse error in hide (why does binary have to come last?)
# 2. Removed range from map
# 3. Made wall edge param > position achieved param 30.  Added error test.
# 4. move-to-xyz: must be standing to move 
# 5. stand if want to move and in kneel/lie-prone positions

## JEL: 2003-06-06
# 1. Change way stuck is handled for move-to-xyz
# 2. Change parameters for ^position-achieved-pos 30  ^position-achieved-neg -30
# 3. Add logic so hiding persists

## REW: @003-06-06
# Added JEL changes to defend/eleborations and defend/move-to-defensive-position.  
# These did not solve bug issue from yesterday.

## REW: 2003-06-05
# 1. Add kneel to allowed output commands
# 2. record-threat proposal: don't recrod threats that are not behind the bot
# 3. record-threats that are behind when underfire
#    (not tested -- underfire isn't work on input link)
# 4. Updated det-door -- this operator is effectively deprecated by undocumented changes to initialize but I put them in anyway
# 5. scenario-selection
# 6. updated scenario files for scenario selection
# bot is not working.... narrowed to move-to-xyz

## JEL: 2003-06-03
# 1. modify elaborations/navigation.soar so it computes a max-edge-x ..
# 2. elaborations/parameters.soar: wall-edge
# 3. common/move-to-xyz - Don't move to point in wall
# 4. move-to-node/move-to-xyz - add area
# 5. defend/move-to-defensive-position - add area
# 6. hunt/goto-next-room/move-to-new-area
# 7./hunt/goto-next-room/move-to-stack-position
# 8. defend*propose*move-to-defensive-area - speed .006 - slow down
# 9. execute-mission/surrender - stay that way - retreat*propose*surrender*always                     
# 10. defend*propose*move-to-defensive-position - speed .006
# 11. retreat*propose*move-to-new-room - speed 1 - run!
# 12. unreal*apply*move-to-xyz*speed
# 13. roam*propose*goto-next-location .006
# 14. Fix problem with output action face - didn't work if there was a speed on the position - stupid.
# 15. Fixed problem with retreat - added a selection rule to avoid abandoning before computing retreat-door
# 16. removed all of the choice code - we don't use it.
# 17. Added execute-mission*elaborate*selection-probabilities - allows us to set probabilities for all of the main operators in one place - not sure if this works - values are just arbitary now
# 18. redid selection logic for tactical operators in execute-missions - should allow better variability - all are equal with some being better than defend. 



## REW: 2003-06-03
# 1. Finished/tested determine door location.
#    (still need to extend to connectors)
# 2. Changed scanario prods to make it easier to switch between scenarios


## JEL: 2003-06-02
# 1. Modified elaborations/monitor-map to support:
#    A. multiple floors more elagently
#    B. new monitoring panels by MP
#    C. new tracing of goal positions by MP
#    D. test for ^name unreal -> ^superstate nil so rules can be used in other bots (Haunt)
# 2. Elaborations/parameters - changed floor parameters
# 3. Elaborations/self - remove computation of floor - now done in monitor map in different way.
# 4. Initialize - unreal*apply*initialize - generalize to offensive-position - also require that nodes are initialized
# 5. Added status files under elaborations (behavior, condition, feelers, general, output) for new status window
# 6. Commented out test proposal for lie-prone
# 7. Moved kneel to an operator instead of just a file
# 8. Created top-level folder scenario-initialization so that datamap can work correctly
#    Moved initialize/scenario-ambush and scenario0 there.
# 9. Modify initialize*propose*determine-corner-location so it tests for the absence of position (which is what it calculates) so that it terminates
# 10. Modify elaborations/self elaborate*self*stuck*...  the feelers seem to always give 0 for the range, I added a test that the object-state <> none

## REW: 2003-06-01
# 1. Added/tested determine-corner-position operator
# 2. Added (not tested) determine-door-position (needs application)
# 3. Commented operator-oderings based on expensive partial matchings.  Should be okay not that alert need not be issued.

## REW: 2003-05-28
# 1. Added parameters for converting between min/max x/y and directions (nsew)
# 2. Added new sub-operator for initialize to compute initial room position (determine-initial-room-loc)
# 3. Changed initialize so that termination depends on the presence of a computed initial position

## REW: 2003-05-27
# 1. Added new files under initialization to perform scerario-specific computations
# 2. Added scenario elaboration until scenario is represented on the input link
# 3. Moved MOUTBot-specific init prods to scanario files. Added scenario test
# 4. Changed record threat to ignore same team or IGNORE bots specified in the scenario
# 5. Added new scenario: room4-ambush (With default positions for now)

## REW: 2003-05-23
# 1. Added test operators for crouch/knell and lie-prone
# 2. Fixed syntax error in determine-threat-door
# 3. Added output prods for unknown command, crouch
# 4. Created soln so that stand, kneel, etc are 1-dec ops
#    Added ^changing-body-position elab in elabs/self
#    Added execute-mission app in stand to update body position
#    Tested kneel/stand and they work!
# 5. Created elab/entities to compute addl spatial info about entities (friendly and hostile agents)

## REW: 2003-05-01
# 1. Added stand operator (but doesn't appear to work)

## REW 2003-04-30
# 1. Fix threat-door calculation
# 2. Add msgs for leaving room (again!)
# 3. Added temp (buggy) message for abandoning room (pulling out)
# 4. Just become alert as soon as agent begins execute-mission

## JEL 2003-2-15
# 1. Changed the way defensive-room-positions are calculated. 
#     Now include positions on sides of threat-door.

## JEL: 2003-2-12
# 1. Clean up datamap - eliminate most attributes that are neither tested or created.
# 2. Also remove bad "copies" of structures and replace with pointers
# 3. Eliminate objective off of area - it isn't really used and it clogs up the map for when
#    we save it - the map has all of the old objectives - modify elaborations/maps
#    - modify propose*determine-objective (eliminate test for now area.objective)
#    - modify defend*propose*determine-threat-door*previous-area
# 4. Found a bug! in determine-defensive-room we were testing the wrong threat structure for the node. 
#    Modified defend*elaborate*determine-defensive-room-position*range to correct problem
# 5. We were also trying to test threat.node for new threats, and we don't store nodes
#    with new threats - thus, need to test threat.entity. instead
#    changes in compute-hide-door and compute-retreat-door
# 6. Had trouble with grenades - try to throw even if couldn't see area that enemy was in. 
#    Modified code so if threats area is not visible from bots area, will give up on 
#    throwing a grenade and do something else.
# 7. Fix problems with determine-hide-door - 
#    Fix hide so reconsidered after move to new area
#
## JEL: 2003-???????
# 1. Make changes for new i/o link 
#    (REW: The changes appear to be present but not documented....
#          .... this code works with the new team bots).

## REW: 2003-01-28
# 1. Change watch position of MOUTBot3 to "stand in shadows" of window.

## REW: 2003-01-27
# 1. Fixed bug in change-current-object for roam operators
# 2. Decreased probability of hide operators.  Did not solve problem: hide is best, made it just indifferent
# 3. Added ^impossible to choose-weapon-grenade
# 4. Fixed bug in terminate-watch.  Has "Outside" now is "None" (probably other bugs due to this?)
# 5. BUG: udnerfire doesn't appear to be working in some cases.  Does not terminate watch when taking fire b/c underfire never changes from none.
# 6. REally fixed terminate-watch bug.  Record-contact now computes the bot area.  If no area computed, assume it's outside.

## REW: 2003-01-26
# 1. Added a hack that leads agent to surrender if there's ever not another
#    operator proposed under execute-mission.
# 2. Split surrender applications. 

## REW: 2003-01-24
# Note: definitely a bug in the kernel code -- some decisions are being 
#       re-decided due to new indifferent prefs while operator is in the slot.
# 1. Added -^rounds-available to reload.  Not sure why this never was a problem before.
# 2. Renamed defend*elaborate*state*uses-defensive-position under sentry-watch.  Not sure why this never was a problem before.
# 3. Added ^type test to attack to avoid attacking with a grenade (use attack-grenade instead)
#    (need to think about semantics of "rounds-available" -- it's true when holding a grenade)
# 4. execute-mission/choose-weapon: rifle not better than handgun, just much more likely
# 5. Added new prod in scan-for-contacts to handle re-entrant scan.  Was this a variability kernel bug?
# 6. Removed apply*resume-watch*remove*next-scan-time

# 

## JEL: 2003-1-23
## 1. Convert all indifferent preferences for operators under execute-mission to indifferent on own line so can adjust probability

## JEL: 2003-1-21
## 1. Modify move-to-node*propose*move-to-visible-xyz so it doesn't propose when in same area
##    move-to-node*propose*move-to-xyz covers that case - I'm nervous about interactions from having both.
##  2. Modify throw-grenade so stays in throwing for 10 sec. to give time to run the animation 
##      previously it was starting to throw, and then going to defend which made it turn before being done with the throw.
##  3. Add proposals to alert so alert before a choose-weapon (seems to be necessary).
##  4. Add selections in choose-weapon to prefer rifle to handgun/knife
##  5. Reject orient-toward threat while throwing grenade - might need to reject other operators
##     Really want to grab system at top-level operator and cower or hide after a throw - 
##  6. Add Freeze as a top level operator that is selected when there is a complex animation being run that takes time - grenade throwing
##  7. Add hide - used for after thrown grenades - sometimes with heavy fire. Temporary retreat - 


## JEL: 2003-1-20
## 1. add new proposals for Choose-weapon
##     - if grenade but enemy visible choose gun
##     - if no rounds-available switch to one with rounds available

## JEL: 2003-1-16
# 1. Clean up MOUTBOT using new datamap commands in Visual Soar
#    Remove direction-headings (created in navigation but never used).
#    Remove map.near-area (created in navigation but never used).

## REW: 2002-12-13
# 1. Added new file for output command exception handling: common/output-exceptions
# 2. Added exception handler for failed grenade seletion
# 3. Updated positions for MOUTBot1s 1 & 5 for changed map
# 4. Fixed sentry bug (terminating watch due to change in underfire syntax)



## JEL: 2002-12-10
# 1. Modified select-enemy so it maintains the selected-enemy structure on top-state.self 
#    instead of the attack local state - should avoid continued reselection of same enemy
#    and blowing away the operator through GDS so often.
# 2. Add to weapons structure the type for grenades and use that for attack and other stuff
# 3. Fix little things about using grenade - attack, throw-grenade, choose-weapon
     

## JEL: 2002-12-6
# 1. Add proposal for attack even if hurt - don't want bot to be too wimpy all the time
#     Must be a separate proposal so when hurt, will redecide whether to attack
#     or retreat - otherwise would always attack.
# 2. Moved reload to execute-mission because attack proposal tests that have ammo-amount
#    > 0, but only reload when it hits zero - how does reload every get selected?
# 3. Add change weapon if get a reload error to execute-mission
# 4. Add choose-weapon to select grenade if enemy is out of sight but in grenade range.


## JEL: 2002-12-5
# 1. Add code under attack for throwing grenades - define min and max grenade range as parameters
# 2. Add throw-grenade operator under attack
#     add structure under self for remembering that a grenade was throw recently

## JEL: 2002-12-3
# 1. Modify execute-mission so uses new values of ^underfire: none, light, medium, heavy


## JEL: 2002-11-20
# 1. Fix problem with retreat - it can end up going back and forth between two rooms if there are threats at other doors.
#    Keep memory of areas abandoned: ^mission.abandoned-area and reject retreat-doors. 
#     Will restrict behavior a bit - but should be ok.
#    retreat*elaborate*determine-retreat-door*reject-abandonend-area
#    apply*abandon-objective*mark-retreat-room

## JEL: 2002-11-19
# 1. Fixed bugs in exploring, initializing, etc. that I'd discovered in the
#    HauntNavBot, but never updated in the MOUTBOT
#     initialize, record-area-extent, record-path-node, record-node, record.
# 2. Install new MOUT map
# 3. Cleaned up explore code
# 4. Add detect-stuck-bad-time as parameter and if exceed that (20), then retry move command.
#    requires adding nasty negated conditions to all proposals from operator.type move-to-xyz
# 5. Comment out most write commands

## JEL: 2002-11-18 [Task B1]
# 1. Add in stuck direction detection based on close objects - add object-distance as a parameter
# 2. Add new rules to change-active-objective for if roaming and contact-with-enemy to defend-position [PArt of Task B8]


## JEL: 2002-11-15 [Task B4 - partial]
# 1. Add ^role to objective structure - change initialize.soar -
# 2. Remove lead-sqaud from many places
#      elaborations/defensive-position.soar
#      defend/determine-threat-door.soar
# 3. Remove all of execute-mission/lead-squad.
# 4. Move lead-squad/change-member-position to execute-mission and change lead to ^role lead


## JEL: 2002: 11-11 [Task B5]
# 1. Add speed for common/move-to-xyz: move-to-xyz*elaborate*speed
# 2. Add speed to common/output.soar
# 3. defend/move-to-defensive-position: defend*propose*move-to-defensive-positio
# 4. move-to-area/elaborations: move-to-area*elaborate*node*speed
# 5. move-to-area/move-to-node: move-to-area*elaborate*operator*speed
# 6. move-to-node/elaborations: move-to-node*elaborate*state*speed
# 7. move-to-node/move-to-xyz: move-to-node*elaborate*operator*speed
# 8. roam/goto-next-location: roam*propose*goto-next-location

## REW: 2002-11-11
# 1. Added move-to-node*elaborate*updateable-node*nearest (from JEL)

## JEL: 2002-11-07 [Task B8]
# 1. Added roam operator under execute-mission

## REW: 2002-11-05
# 1. Added change to shoot operator from John (fixes stop shooting bug)
# 2. Added: toss-weapon to surrender

## REW: 2002-10-10
# 1. Split apply*determine-step-rate due to thin-justifications bug.
# 2. Associated "i am hit" with the self.hurt elaboration rather than retreat.
# 3. Terminate watch better than scan-for-contacts

## REW: 2002-10-09
# 1. Added patches to accept message and communicate-sound from last night's debugging
# 2. Had to reimplemnt initialize to be able to open file in Visual Soar


## REW: 2002-10-08
# 1. Added ^threats.contact to record contact made with enemy
# 2. Added change-member-position for leader (this is a major-league-hack)
# 3. Tested Bot3/4 interaction.  Brittle, but usable.

## REW: 2002-10-07
# 1. Added alert proposal for sentry-watch
# 2. Updated change-active-objective for new-objective (from accept-message)
# 3. Added go-to-door to accept-message

## JEL: 2002-10-06
# 1. Remove old files in the directories that are no longer sourced - (why am I wasting my time?)
# 2. Create alert operator under execute mission - two proposals - a. if about to attack b. if underfire -
#    move alert from execute-mission that Bob added to here - I don't like output commands being slapped on operators.
# 3. Modify propose-attack so doesn't do it if posture at-ease
                                                                                                            

## REW: 2002-10-04
# 1. Fixed problem with accept-mesage (not all states under ops have names, bottom impasse can alspo be SNC)
# 2. Commented varios debugging, write statement, incorporated patches.
# 3. Added device-registrations, applications for sound files.  Added ^sound-available for the sounds Bria1n is adding.

## REW: 2002-10-03
# 1. Added defend/barricade to move to doors
# 2. Added attack suboperator for lead-squad
# 3. Moved MOUTBot[1-5].soar files to initialize.soar (to support API bots)
# 4. Removed tcl monitor calls for messages (to support API bots)

## REW: 2002-10-01
# 1. Added initial implementation of accept-message.
# 2. Added self.posture to reflect at-ease/alert status
# 3. Added execute mission application: if not alert and underfire, become alert
# 4. map.tcl: center map on building and move window to top right of screen

## REW: 2002-09-30
# 1. Make initialize best (in case startup with enemy in sight)
# 2. Change feeler range to 30 (broken side step).  Created param in case it changes again.
# 3. Fixed record threat and tested it.  The operator is very brittle due to secondary effect race conditions.
#    (computation of area-id).  Don't change main applications without preserving tests for
#     operator.area-id == threat.area-id.  This is the hack I used to make sure record-threat
#     would always complete.  Also brittle because area computations are different for outside
#     vs inside.)
# 4. Added elaboration (not application) of threats.threat.area-name.  One less thing to change
#     as threats move about.
# 5. Completed sentry watch. Agent now terminates sentry-watch when it comes under fire or
#     perceives an enemy inside the building.
# 6. Corrected MOUTBot mission initialization prods, which are dependent on
#    on some name nodes.  All 5 bots work, but are brittle, esp together.

## REW: 2002-09-27
## 1. Added sender as first ^word of every broadcast.
##    Explored but did not find a way to remove integer created by make-constant-symbol
## 2. Added new map generated by AMN
##       Changes to get map to pass "check productions against datamap"
##       - add trialing zero's to any numbers next to parentheses: Visual Soar can't handle "^505.)" but does okay with "^505.0)"
##       - move any node/position references until after the big area condition.  Normally, you have to move one condition.
##       - today I had to add node.x/y greater-than/less-than and position.speed to the datampa.  Not sure why these are present.
## 3. Added ^self.underfire to provide a persistent record of being underfire
## 4. Added ^self.weapons to provide ready deteminations of weapons status
##    Agent prods should be changed to refer to this as the selected weapon
## 5. Changed retreat so that the agent retreats only when it has no rounds or clips
##     for the selected-weapon
## 6. Made reload and unjam not specific to attack -- they should also be used for defned and retreat.
## 7. Added a very simple parameter to message definitions so that messages are repeated probabilistically.
##    This makes the agent's sound less compulsive...
## 8. Installed another map -- this one lacked the speed and x/y attributes.

## REW: 2002-09-26
## 1. Changed sentry-watch record-contact to mimic new record-threat
## 2. Commented apply*record-contact*area
##    This was a copy of a similar production from record-threat and was causing Soar core dumps.

## REW: 2002-09-25
## 1. Added output command to play surrender animation on surrender.
## 2. Created ^threats.enemy structure to distinguish between elaborated and
##       input information.  A threat ID should never change for a given entity.
## 3. Added simulation error codes to parameters
## 4. Added AMN's unjam code (with changes to include parameters)
##    I am never seeing weapon-jams on input link so this is untested.


## REW: 2002-09-12
## 1. Fixed bug in  navigation@elaboration@map-nearest-node*derived
## 2. Added doors to the map representation
## 3. Added patch files (under z-patches).  Added notes to MoutBotX.soar files.
## 4. Specialized record-threat proposals for sentry-watch


## AMN: 2002-08-29
## Fixed bugs resulting old rules using UT-zone-based area information given
## on the input link
## a.  elaborations/navigation: nearest-node rule
## b.

## AMN: 2002-08-27
## 1.  Fixed max-elaborations problem in move-to-xyz (see comment in that file)
## 2.  Moved max/min x/y/z recording into a sub-operator of initialize
## 3.  Added a sidestep operator to record-entrway that fires when the agent
##     is too far to one side of the door to see the opposite node
## 4.  Updated the map with the new navigation system
## 5.  Added code to adjust the agent's speed depending on range
##     to the destination

## REW: 2002-08-26
## 1. Added sentry-watch sub-hierarchy for agents 3 and 5 (with changes to MoutBot3 and MoutBot5.soar files)
## 2. Modified objective data structure to include remembered computations for sentry-watch
## 3. Added elaboration (defensive-position) that identifies which states
##    allow the use of defend operators.
## 4. Changed operators in defend to test uses-defensive-position rather than state name.
## 5. Added sentry-watch parameters to paramters.soar
## 6. Added applications to record-threat specific to sentry-watch
## 7. Added (rudimentary) change-active-objective operator
## 8. Refined notion of very-high level threats in elabs/threats

## JEL 2002-08-09
## all/record-nodes - record all nodes at beginning, not just visible
## elaborations/navigation.soar - change how determine which area you are in.
## initialize.soar

## AMN: 2002-08-02
## 1. Significantly expanded the hunt subgoal to simulate
##    standard US military doctrine.
## 2. Changes to support the above
##    a.  Added ^derived yes to corner pathnodes derived
##        at initialization from actual corner pathnodes
##    b.  Significant changes to the format of an objective's
##        ^offensive-position.\
##    c.  ^near-node elaborations for derived nodes (ONLY when
##        the agent is using a move-to-node to reach that node).
##
## REW: 2002-07-28
## 1. Added JEL corrections to choice-sets
## 2. Created initialization producions for each of the 5 agents on the first floor of Scenario1.
##    These are located in MOUTBot.soar files.  They must be sourced last, to replace the default
##    initialization application initialze.soar
## 3. Added a hack to the record-threat operator so that agent's will not shoot other agent's
##    on their side.  When the simulator supports team correctly, the hack can be removed.
## 4. Added initial team representations to the agent.  The general idea is that every
##    objective should have a team (including the "team" consisting of an individual.  As we
##    progress, we can add knowledge about changing the teams as execution commences, as well
##    as obviously having behavior sensitive to the team.
##
## 7/24/02
## JEL
## 1. add nodes to corners of rooms that were not originally defined.
##    provides more places for defending a room.
##    Added to initialize.soar
## 2. Change defend/determine-threat-door
##    Fix a bunch of problems and make possible for there to be
##    multiple threat doors in a room.
## 3. Change elaborations/self
##    add detection of low-ammo - nothing uses it, but something that
##    should be there.
## 4. Add elaborations/choice-sets
##    These allow us to have probablistic selections of specific operators
## 5. defend/determine-defensive-room-position
##    Handle multiple threat-doors
## 6. retreat-determine-retreat-door
##    Handle multiple threat-doors
## 7. Record-threat
##    Make it so can handle enemy structures appearing and disappearing.
## 8. attack/reload
##    added rule to do this.
## 9. common/output.soar
##    add reload to recognized output commands
##
## 7/22/02
## 1.  Added hunt subgoal to execute-mission
## 2.  External changes to support hunt
##     a.  Added an offensive mission in the initialize rules
##     b.
## 7/15/02 - 7/16/02 AMN
## 1.  Added predict-enemy subgoal under execute-mission
## 2.  Changes to the bot to support predict-enemy
##     a.  Added ^tactics to self
##     b.  Prevented top-state and io from being copied to the predict-enemy subgoal
##     c.  Special cases for the |Outside| area
##     d.  Made ^visible-area record in both directions like paths
##     e.  Tweaks to the map
## 3.  Misc bug fixes
##     a.  enemy-select*visible production wasn't verifying enemy was visible
##     b.  Fixed aspect bug in record-enemy
##
## 6/27/02  JEL
## 1. When removing enemy attributes from state, save away in enemy-history so know of all encounters with enemies
## 2. Add threat augmentation of top state. This is maintained by elaborations/threat and is used in determining whether to retreat.
##
## 6/27/02 AMN
## 1.  Made final changes to record-path.  Both now only saves shortest path between any two areas.
## 2.  Checked in an updated map with the above.
## 3.  Added ^visible-area attributes to areas on the map

## REW: 2002-07-27
## summoning an unnumbered moutbot no longer works.  summon must be followed
## by a number (1-5) corresponding to a specific MOUTBot:
## 1. summon moutgame.soarmoutbot1

#+====================================================================+
#| Place where John stores rules he's not sure he wants to delete yet |
#+============--------------------------------------------------------+

#
#sp {retreat*propose*move
#   (state  ^name unreal)
#   -->
#   ( ^operator  +, >, = 90)
#   ( ^name move-front
#       # ^actions.thrust back)
#        ^actions.face-abs -45)
#}
##