correctly check if a Character has solved a Questgroup by checking last child Questgroup if Questgroup has so Quests itself

This commit is contained in:
coderkun 2014-05-24 21:59:07 +02:00
commit f6a2149696

View file

@ -328,10 +328,26 @@
{ {
// Get data of Questgroup // Get data of Questgroup
$questgroup = $this->getQuestgroupById($questgroupId); $questgroup = $this->getQuestgroupById($questgroupId);
$questgroup['hierarchy'] = $this->Questgroupshierarchy->getHierarchyForQuestgroup($questgroup['id']);
// Check last Quest(s) // Check last Quest(s) of this Questgroup
$solvedLastQuest = false; $solvedLastQuest = false;
$lastQuests = $this->Quests->getLastQuestsOfQuestgroup($questgroup['id']); $lastQuests = $this->Quests->getLastQuestsOfQuestgroup($questgroup['id']);
// Check last Quest(s) of last child Questgroup
if(empty($lastQuests) && !empty($questgroup['hierarchy']))
{
$childQuestgroupshierarchy = $this->Questgroupshierarchy->getChildQuestgroupshierarchy($questgroup['hierarchy']['id']);
if(!empty($childQuestgroupshierarchy))
{
$childQuestgroupshierarchy = array_pop($childQuestgroupshierarchy);
$childQuestgroups = $this->getQuestgroupsForHierarchy($childQuestgroupshierarchy['id'], $questgroupId);
if(!empty($childQuestgroups))
{
$childQuestgroup = array_pop($childQuestgroups);
$lastQuests = $this->Quests->getLastQuestsOfQuestgroup($childQuestgroup['id']);
}
}
}
foreach($lastQuests as &$lastQuest) foreach($lastQuests as &$lastQuest)
{ {
if($this->Quests->hasCharacterSolvedQuest($lastQuest['id'], $characterId)) if($this->Quests->hasCharacterSolvedQuest($lastQuest['id'], $characterId))
@ -345,7 +361,6 @@
} }
// Check all child Questgroups // Check all child Questgroups
$questgroup['hierarchy'] = $this->Questgroupshierarchy->getHierarchyForQuestgroup($questgroup['id']);
if(!empty($questgroup['hierarchy'])) if(!empty($questgroup['hierarchy']))
{ {
$childQuestgroupshierarchy = $this->Questgroupshierarchy->getChildQuestgroupshierarchy($questgroup['hierarchy']['id']); $childQuestgroupshierarchy = $this->Questgroupshierarchy->getChildQuestgroupshierarchy($questgroup['hierarchy']['id']);