anchor.diff:                     CharacterAnimationState = { TimeStart = 0L; CharacterAnimationCycle = ReadyCycle; Direction = Leftward; Stutter = 10 }
                      CharacterState = { CharacterType = Enemy Goblin; PartyIndex = 0; ExpPoints = 0; HitPoints = 5; SpecialPoints = 1; PowerBuff = 1.0f; ShieldBuff = 1.0f; MagicBuff = 1.0f; CounterBuff = 1.0f; Statuses = Set.empty; WeaponOpt = Some "Melee"; ArmorOpt = None; Relics = [] }
                      ActionTime = 0 }] |>
  -                List.mapi (fun i ally -> (EnemyIndex i, ally))
  +                List.mapi (fun i enemy -> (EnemyIndex i, enemy))
                let characters =
                   Map.ofList (allies @ enemies)
                let model =
  
positive.code:                         targetIndex
                          model
                  if target.CharacterState.HitPoints = 0 && target.CharacterState.IsAlly
                  then withSigs model [Message (ResetCharacterM targetIndex); Command (ResetCharacter targetIndex)]
                  else just model
              | ResetCharacterM characterIndex ->
                  let model = updateCharacter (fun character -> { character with ActionTime = 0 }) characterIndex model
                  withCmd model (ResetCharacter characterIndex)
              | DamageCharacterM characterIndex ->
                  let time = World.getTickTime world
                  let model = updateCharacter (fun character -> { character with CharacterAnimationState = (CharacterAnimationState.setCycle (Some time) DamageCycle) character.CharacterAnimationState }) characterIndex model
                  just model
              | PoiseCharacterM characterIndex ->
                  let time = World.getTickTime world
                  let model = updateCharacter (fun character -> { character with CharacterAnimationState = (CharacterAnimationState.setCycle (Some time) PoiseCycle) character.CharacterAnimationState }) characterIndex model
                  just model
              | WoundCharacterM characterIndex ->
                  let time = World.getTickTime world
                  let model = updateCharacter (fun character -> { character with CharacterAnimationState = (CharacterAnimationState.setCycle (Some time) WoundCycle) character.CharacterAnimationState }) characterIndex model
                  just model
              | DestroyCharacterM characterIndex ->
                  withCmd model (DestroyCharacter characterIndex)
              | ReticlesSelect (targetEntity, allyIndex) ->
                  match model.BattleState with
                  | BattleRunning battleRunning ->
                      let targetIndex = getCharacterIndex targetEntity
                      let command = ActionCommand.make Attack allyIndex (Some targetIndex)
                      let model = { model with BattleState = BattleRunning { battleRunning with ActionQueue = Queue.conj command battleRunning.ActionQueue }}
                      withMsg model (ResetCharacterM allyIndex)
                  | _ -> just model
              | Tick ->
                  if World.isTicking world
  
negative.code:           BattleState : BattleState }
  
      and [<NoComparison>] BattleMessage =
          | ReadyCharacters
          | PoiseCharacters
          | CelebrateCharacters of bool
          | AdvanceCharacters
          | AttackCharacter of CharacterIndex * CharacterIndex
          | ResetCharacter of CharacterIndex
          | DamageCharacter of CharacterIndex
          | PoiseCharacter of CharacterIndex
          | WoundCharacter of CharacterIndex
          | DestroyCharacter of CharacterIndex
          | ReticlesSelect of Entity * CharacterIndex
          | Tick
  
  