Exemplo n.º 1
0
 /**
  * Create a single NPC, optionally make it join a party. Else create blank party.
  * @param string $classname
  * @param NULL|SR_Party $party
  * @return SR_NPC
  */
 public static function createEnemyNPC($classname, $party = NULL)
 {
     if (false === ($npc = Shadowrun4::getNPC($classname))) {
         return Dog_Log::error('Unknown NPC classname in createEnemyNPC: ' . $classname);
     }
     if ($party === NULL) {
         if (false === ($party = SR_Party::createParty())) {
             return Dog_Log::error('Cannot create party in createEnemyNPC.');
         }
     } elseif (!$party instanceof SR_Party) {
         return Dog_Log::error('WRONG ARG IN in createEnemyNPC: ' . $party);
     }
     if (false === ($npc = $npc->spawn($party))) {
         return Dog_Log::error('Failed to spawn NPC: ' . $npc->getNPCClassName());
     }
     if (false === $party->updateMembers()) {
         return Dog_Log::error('DB ERROR IN in createEnemyNPC.');
     }
     $party->recomputeEnums();
     return $npc;
 }
Exemplo n.º 2
0
 public function onInit()
 {
     foreach ($this->getImportNPCS() as $classname) {
         if (false === ($npc = Shadowrun4::getNPC($classname))) {
             die("Unknown import_npc {$classname} in city {$this->getName()}.\n");
         }
         $this->npcs[$classname] = $npc;
     }
 }
Exemplo n.º 3
0
 public function getHelpTextNPCs(SR_Player $player)
 {
     $npcs = $this->getNPCS($player);
     # None
     if (count($npcs) === 0) {
         return false;
     }
     # Single
     if (count($npcs) === 1) {
         $cmd = '#' . key($npcs);
         $classname = array_pop($npcs);
         $npc = Shadowrun4::getNPC($classname);
         $npc->setChatPartner($player);
         return ' ' . $player->lang('hlp_talking1', array($cmd, $npc->getName()));
     }
     # Multiple
     $cmds = array();
     foreach ($npcs as $cmd => $classname) {
         $cmds[] = '#' . $cmd;
     }
     return ' ' . $player->lang('hlp_talking2', array(GWF_Array::implodeHuman($cmds)));
 }