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

APT.all-test.MOUTBot.execute-mission.defend.predict-enemy.create-enemy-state.soar Maven / Gradle / Ivy

echo "\nLoading execute-mision/defend/predict-enemy/create-enemy-state"

#These rules selectively copy the input-link from the superstate in order
#to allow the prediction to occur without looking at the real input-link.

#Copy input-link.game.mapname
sp {predict-enemy*propose*create-enemy-state
   (state  ^name predict-enemy
             -^map.current-area)
-->
   ( ^operator  + >, =)
   ( ^name create-enemy-state)
}

#copy enemy information to the false input-link so that the 
#agent is the enemy (role reversal)
sp {predict-enemy*apply*create-enemy-state*agent
   (state  ^operator.name create-enemy-state
              ^io.input-link.agent 
              ^superstate.operator.entity )
   ( ^health 
            ^team 
            ^weapon 
            ^position 
            ^aspect )
   ( ^x 
          ^y 
          ^z )
   ( ^h 
          ^v )
-->
  (  ^armor-amount 0
            ^health 
            ^position 
            ^name predicted-enemy
            ^team 
            ^weapon 
            ^angle )
  ( ^ammo-amount 30 
          ^name 
          ^selected yes)
  ( ^x 
          ^y 
          ^z )
  ( ^yaw 
          ^pitch 
          ^roll 0)
}

#Copy all areas from the agent's map to the enemy's map
sp {predict-enemy*apply*create-enemy-state*copy-map-areas
   (state  ^operator.name create-enemy-state
              ^top-state.map 
              ^real-top-state.map.area )
   ( -^area )
-->
   ( ^area )
}


#Make the agent's current room the enemy's current room
sp {predict-enemy*apply*create-enemy-state*current-area
   (state  ^operator.name create-enemy-state
              ^top-state.map 
              ^superstate.operator.entity.area )
   ( -^current-area)
-->
   ( ^current-area )
}