#include "Flag.hpp" #include "JSON.hpp" #include "RoomPosition.hpp" namespace Screeps { Flag::Flag(JS::Value value) : RoomObject(std::move(value)) { } int Flag::color() const { return value()["color"].as(); } JSON Flag::memory() const { return JS::toJSON(value()["memory"]); } void Flag::setMemory(const JSON& memory) { value().set("memory", JS::fromJSON(memory)); } std::string Flag::name() const { return value()["name"].as(); } int Flag::secondaryColor() const { return value()["secondaryColor"].as(); } void Flag::remove() { value().call("remove"); } int Flag::setColor(int color, const std::optional& secondaryColor) { if (secondaryColor) return value().call("setColor", color, *secondaryColor); else return value().call("setColor", color); } int Flag::setPosition(int x, int y) { return value().call("setPosition", x, y); } int Flag::setPosition(const RoomPosition& pos) { return value().call("setPosition", pos.value()); } int Flag::setPosition(const RoomObject& pos) { return value().call("setPosition", pos.value()); } } // namespace Screeps