function getTimelyTripSoldiers()
{
    global $_DB;
    $stmt = $_DB->prepare("SELECT u.id, u.name, u.email, u.phone, u.notes, u.joindate, " . "s.id, s.adoptedtime, s.stopname, s.stopid, s.agency, s.given, s.nameonsign, s.abandoned " . "FROM users u LEFT JOIN adoptedstops s ON u.id = s.userid " . "ORDER BY u.joindate DESC");
    $stmt->execute();
    $results = $stmt->get_result();
    $soldiers = array();
    function findSoldier($soldiers, $userid)
    {
        $found = null;
        foreach ($soldiers as $s) {
            if ($s->id == $userid) {
                $found = $s;
                break;
            }
        }
        return $found;
    }
    while ($row = $results->fetch_array(MYSQLI_NUM)) {
        $userid = $row[0];
        $soldier = findSoldier($soldiers, $userid);
        if (is_null($soldier)) {
            $soldier = new Soldier($userid, $row[1], $row[2], $row[3], $row[4], dateTimeFromDb($row[5]));
            $soldiers[] = $soldier;
        }
        if (is_null($row[6])) {
            continue;
        }
        $stop = new Stop($row[6], dateTimeFromDb($row[7]), $row[8], $row[9], $row[10], booleanFromDb($row[11]), $row[12], booleanFromDb($row[13]));
        $soldier->addStop($stop);
    }
    function cmpSoldierByUpdateDate($s1, $s2)
    {
        if ($s1->updatedate > $s2->updatedate) {
            return -1;
        }
        if ($s1->updatedate == $s2->updatedate) {
            return -1;
        }
        if ($s1->updatedate < $s2->updatedate) {
            return 1;
        }
    }
    usort($soldiers, "cmpSoldierByUpdateDate");
    return $soldiers;
}
Beispiel #2
0
 /**
  * Make current controlled soldier attack an ennemy soldier
  *
  * @param int $soldierId Id of the soldier to attack
  */
 public function attackSoldier($soldierId)
 {
     $this->_db->beginTransaction();
     try {
         $attackAp = $this->_ruleset->get('soldier.apPerAttack');
         $personna = $this->_db->fetchFirstRequest('getPersonnaSoldier', array(':id' => $this->_data['ID']));
         if (empty($personna)) {
             $this->_messenger->add('error', $this->_lang->get('noPersonna'));
         } else {
             if (empty($personna['soldier_id'])) {
                 $this->_messenger->add('error', $this->_lang->get('notASoldier'));
             } else {
                 if ($personna['AP'] < $attackAp || $personna['soldier_ap'] < $attackAp) {
                     $this->_messenger->add('error', sprintf($this->_lang->get('notEnoughAP'), $personna['AP'] . ' - ' . $personna['soldier_ap'], $attackAp));
                 } else {
                     $target = new Soldier($soldierId, $this->_DI);
                     if (empty($target->ID)) {
                         $this->_messenger->add('error', $this->_lang->get('soldierNotFound'));
                     } else {
                         if ($personna['battlefield_id'] != $target->battlefield_id || abs($personna['X'] - $target->X) > 1 || abs($personna['Y'] - $target->Y) > 1) {
                             $this->_messenger->add('error', $this->_lang->get('targetTooFar'));
                         } else {
                             if ($personna['hive_id'] == $target->hive_id) {
                                 $this->_messenger->add('error', $this->_lang->get('invalidTarget'));
                             } else {
                                 $damages = $this->_ruleset->get('soldier.damages');
                                 $killed = $target->receiveDamage($damages);
                                 $this->_db->executeRequest('soldierUseAP', array(':id' => $personna['soldier_id'], ':ap' => $attackAp));
                                 $this->_db->executeRequest('personnaUseAP', array(':id' => $this->_data['ID'], ':ap' => $attackAp));
                                 // Create log
                                 $this->_db->executeRequest('attackSoldierLog', array(':user_id' => $this->_data['user_id'], ':battlefield_id' => $personna['battlefield_id'], ':by_id' => $personna['soldier_id'], ':by_X' => $personna['X'], ':by_Y' => $personna['Y'], ':target_id' => $soldierId, ':target_X' => $target->X, ':target_Y' => $target->Y, ':damages' => $damages, ':kill' => $killed));
                             }
                         }
                     }
                 }
             }
         }
     } catch (Exception $e) {
         $this->_db->rollBack();
         throw $e;
     }
     $this->_db->commit();
 }
Beispiel #3
0
 public function testSoldier()
 {
     $soldier = new Soldier(new Rifle());
     $soldier->killEnemy();
     $this->assertInstanceOf('LSP\\AbstractGun', $soldier->getGun());
 }
Beispiel #4
0
    }
}
class Teacher extends Human
{
    public $level;
    public function teach($subject)
    {
        echo $this->name, '的老师在讲授', $subject, '<br/><br/>';
    }
}
class Soldier extends Human
{
    public $junxian;
    function zhangang()
    {
        echo '这名战士名字为', $this->name, '在军XIAN为', $this->junxian, ',他/她站岗<br/><br/>';
    }
}
$s1 = new Soldier();
$s1->name = '李四';
$s1->junxian = '中校';
$s1->zhangang();
// //////
$s2 = new Soldier();
$s2->name = '赵六';
$s2->eat('面包');
// ////
$t = new Teacher();
$t->name = '张飞';
$t->teach('化学');
$t->say('同学们好,今天咱们开始学习化学这门课');