Example #1
0
 /**
  * @param $obj
  * @param LocationHelper $locHelper
  */
 private function _moveAi($obj, $locHelper)
 {
     $move = $obj["ai"]["move"];
     if (!isset($move["status"])) {
         $move["status"][0] = "stand";
         //если нет статуса, то стоит
     }
     $nextMove = isset($move["next_move"]) ? $move["next_move"] : time();
     $moveList = isset($move["list"]) ? $move["list"] : [];
     //какие локации посетил
     $countLocs = isset($move["num"]) ? rand($move["num"][0], $move["num"][1]) : 1;
     //сколько локаций ходит
     if (time() >= $nextMove) {
         //подошло время идти
         if ($move["status"][0] == "stand") {
             $move["status"][0] = "in_move";
             $move["status"][1] = $countLocs;
         }
         //если стояли - то идем
     }
     if ($move["status"][0] == "in_move" and count($move["list"]) < $move["status"][1] and $move["status"][1] > 0) {
         $blackTerr = isset($move["black_terr"]) ? $move["black_terr"] : [];
         $door = $locHelper->getRandomDoorId($moveList, $blackTerr);
         $move = $this->_startMove($move, $door);
     } else {
         $move = $this->_stopMove($move);
     }
     $obj["ai"]["move"] = $move;
     return $obj;
 }