Example #1
0
 public function answer(KnowledgeState $state)
 {
     $state_value = $state->value($this->name);
     foreach ($this->answers as $answer) {
         $answer_value = $answer->value;
         // If this is the default option, return it always.
         if ($answer_value === null) {
             return $answer;
         }
         // If the value is a variable, try to resolve it.
         if (KnowledgeState::is_variable($answer_value)) {
             $answer_value = $state->resolve($answer_value);
         }
         if ($state_value == $answer_value) {
             return $answer;
         }
     }
     // We didn't find an appropriate answer :O
     return null;
 }