//
// Created by IgorBat on 23.04.2018.
//

#include <cassert>
#include "effects\meleedamage.h"
#include "units\unit.h"
#include <string>

void MeleeDamage::OperateOnCell(Cell* cell){
    throw std :: string("CAN'T TOUCH THIS");
}

void MeleeDamage::OperateOnUnitToCell(Unit* who, Cell* where){
    throw std :: string("CAN'T TOUCH THIS");
}

void MeleeDamage::OperateOnUnit(Unit* unit){
    unit->setHealthPoints(  unit->getHealthPoints() -
                            (count_ - 2.5 * double(count_) * double(unit->getPhysicDefence()) / 100.0));
}

void MeleeDamage::Execute(Cell* from, Cell* where, Unit* who, Unit* whom, TypeOfTrigger Type){
    if(Type == 1){
        OperateOnUnit(whom);
    }
}
