コード例 #1
0
ファイル: Calculator.php プロジェクト: gossi/trixionary
 public function calculateGeneration(Skill $skill)
 {
     if ($this->processedGenerationSkills->contains($skill)) {
         return;
     }
     $this->lineage = [];
     $generation = 1;
     $ancestors = $this->getAncestors($skill);
     if (count($ancestors)) {
         $root = $this->findRoot($ancestors);
         if ($root !== null) {
             $generation = $this->nextStep($root, $skill, $ancestors);
         }
     }
     $skill->setGeneration($generation);
     $skill->clearLineagesRelatedBySkillId();
     // set generations
     foreach ($this->lineage as $pos => $ancestor) {
         $lin = new Lineage();
         $lin->setSkill($skill);
         $lin->setAncestor($ancestor);
         $lin->setPosition($pos);
     }
     $this->modifiedSkills->add($skill);
     $this->processedGenerationSkills->add($skill);
     $this->processGenerationQueue();
 }