#include "Lightningbolt.h" #include "Engine.h" #include "Actor.h" #include "Gui.h" #include "Destructible.h" LightningBolt::LightningBolt(float range, float damage) : range(range), damage(damage) { } bool LightningBolt::use(Actor* owner, Actor* wearer) { Actor* closestMonster = engine->getClosestMonster(wearer->x, wearer->y, range); if (!closestMonster) { engine->gui->message(TCOD_ColorRGB(200,200,200), "No enemy is close enough to strike."); return false; } // hit closest monster for hit points engine->gui->message(TCOD_ColorRGB(100, 255, 100), "A lighting bolt strikes the %s with a loud crack of thunder!\n" "The damage is %g hit points.", closestMonster->name.c_str(), damage); closestMonster->destructible->takeDamage(closestMonster, damage); return Pickable::use(owner, wearer); }