function go_to($exit) { $obj = $this->exits; // Si no hay una salida definida... if (!property_exists($obj, $exit)) { return array('goto', 'FAIL'); } // Hay una salida definida... $data = $obj->{$exit}; // ** Simple format if (is_string($data)) { return $this->check_visited_and_goto($data); } // ** Complex format if (property_exists($data, 'required')) { $required = new Required(); if ($required->check($data->required)) { return $this->check_visited_and_goto($data->target); } // No se cumplen requisitos if (property_exists($data, 'else')) { return $this->check_visited_and_goto($data->else); } else { return array('goto', $data->excuse); } } if (property_exists($data, 'target')) { return $this->check_visited_and_goto($data->target); } // BAD FORMAT JSON }
function take($words) { //$words = find_synonyms($words); $obj = load(ITEMFILE, $words); // If object not exist if ($obj === NULL) { return array("coger", "FAIL"); } $objinv = load(USERFILE, 'inventory', $words); // Si el objeto está en la room inicial, lo procesa if ($objinv == NULL && $obj->room == CURRENT_ROOM) { // Ya lo tengo if ($objinv == "1") { return array("coger", __('INVENTORY_ITEM_ALREADY')); } // ** Complex format // No hay restricciones if (!property_exists($obj, 'required')) { if (!$objinv) { $this->check_optional_param($obj); save(USERFILE, 'inventory', $words, "1"); return array("coger", $obj->message); } return array("coger", "FAIL"); } // ¿Se cumplen las restricciones? $required = new Required(); if ($required->check($obj->required)) { // Only first time if (!$objinv) { $this->check_optional_param($obj); save(USERFILE, 'inventory', $words, "1"); return array("coger", $obj->message); } } return array("coger", property_exists($obj, 'excuse') ? $obj->excuse : "FAIL"); } // Caso especial: El objeto se ha dejado en una room (no procesar restricciones) if ($objinv == CURRENT_ROOM) { save(USERFILE, 'inventory', $words, "1"); return array("coger", '-' . $words); } // No se cumplen las restricciones // Si no hay excusa definida => objeto no encontrado return array("coger", "FAIL"); //return (property_exists($obj, 'excuse') ? $obj->excuse : "FAIL"); }
/** * @param mixed $value * @param null $field * @param null $allFields * * @return bool * * @since 2.0 */ public function validate($value, $field = null, $allFields = null) { $requiredField = $this->getParameter(); if ($allFields !== null and array_key_exists($requiredField, $allFields)) { return parent::validate($value, $field, $allFields); } return true; }
function check() { // typecast fix for reverse order object (???) // (object)array_reverse((array)$this->ends) foreach ((object) $this->ends as $k => $v) { // No se cumplen los requisitos para este final if (property_exists($v, 'required')) { $required = new Required(); if (!$required->check($v->required)) { continue; } } save(USERFILE, 'info', 'end', $k); return TRUE; } return FALSE; // No hay final }
public function __construct($message = null, $code = null, $previous = null) { parent::__construct('No APItoken is set, use \\Paynl\\Config::setApiToken() to set the API token'); }