//states holders
target_state_holder = target.getState_holder();
attacker_state_holder = attacker.getState_holder();
//Range
range = getRange();
Coordinate target_position = target.getCoordinate(),
attacker_position = attacker.getCoordinate();
//Properties
target_property_holder = target.getProperty_holder();
attacker_property_holder = attacker.getProperty_holder();
//TODO Is the target visible?
int visibility = attacker.getVisibility();
if(target_position.isClose(attacker_position, visibility)){
//If the target is close enough for a close range attack
if (target_position.isClose(attacker_position, range)){
//Attack the target properties!
target_life = target.getLife();
if(target_life > 0) {//is it alive?
//TODO define a method to obtain the properties casted
//TODO Define a practical formulas, this is just for testing