khanat-opennel-code/code/web/app/app_achievements_admin/class/CSRAchievement_class.php

60 lines
1.2 KiB
PHP
Raw Normal View History

<?php
class CSRAchievement extends AchAchievement implements CSR {
2012-07-02 16:56:13 +00:00
use CSRDispatcher;
2012-07-02 16:56:13 +00:00
function CSRAchievement($data,$parent) {
parent::__construct($data,$parent);
}
protected function makeChild($d) {
return new CSRPerk($d,$this);
}
function grant($pid) {
2012-07-02 16:56:13 +00:00
$iter = $this->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
$curr->grant($pid);
$this->setChildDone($curr->getID());
}
2012-07-02 16:56:13 +00:00
$this->parent->setChildDone($this->id);
}
function deny($pid) {
2012-07-02 16:56:13 +00:00
$iter = $this->getIterator();
while($iter->hasNext()) {
$curr = $iter->getNext();
$curr->deny($pid);
$this->setChildOpen($curr->getID());
2012-07-02 16:56:13 +00:00
}
$this->parent->setChildOpen($this->id);
2012-07-02 16:56:13 +00:00
}
function setPerkDone($id) {
2012-07-02 16:56:13 +00:00
echo "perk<br>";
$this->setChildDone($id);
2012-07-02 16:56:13 +00:00
echo "ach<br>";
$this->parent->addChildDone($this->id);
2012-07-02 16:56:13 +00:00
if(!$this->hasOpen()) {
$this->parent->removeChildOpen($this->id);
2012-07-02 16:56:13 +00:00
}
}
function setPerkOpen($id) {
2012-07-02 16:56:13 +00:00
echo "perk<br>";
$this->setChildOpen($id);
2012-07-02 16:56:13 +00:00
echo "ach<br>";
$this->parent->addChildOpen($this->id);
2012-07-02 16:56:13 +00:00
if(!$this->hasDone()) {
$this->parent->removeChildDone($this->id);
}
}
}
?>