Ejemplo n.º 1
0
        if ($unit instanceof Cavalry) {
            throw new UnitException("Can't get a horse on the vehicle");
        }
        parent::addUnit($unit);
    }
    function bombardStrength()
    {
        return 0;
    }
}
// end previous code
class Army extends CompositeUnit
{
    function bombardStrength()
    {
        $ret = 0;
        foreach ($this->units() as $unit) {
            $ret += $unit->bombardStrength();
        }
        return $ret;
    }
}
$main_army = new Army();
$main_army->addUnit(new Archer());
$main_army->addUnit(new LaserCanonUnit());
$sub_army = new Army();
$sub_army->addUnit(new Cavalry());
$main_army->addUnit($sub_army);
$main_army->addUnit(new Cavalry());
print $main_army->textDump();