Example #1
0
    protected function doAttack(Model $defender, $weapon) {
        $result = new AttackResult();
        $result->setDead($defender->isDead());

        if (!$this->usedCharge && $this->getSim()->isChargeAttack()) {
            $result->setCharge();
            $this->usedCharge = true;
        }

        $result = $this->evalAttack($defender, $weapon, $result);
        $this->getSim()->addDamageDone($result->getDamage());
        if (!$result->isDead() && $defender->isDead()) {
            $result->setKilled();
            $this->getSim()->setKilled(true);
            $this->getSim()->debug("[{$defender->getName()} died");
        }

        return $result;

    }