Weave::Weave(const EntityWPtr &owner) : Totem::Component<Weave, PropertyUserData>("Weave"), owner(owner) { user_data.entity = owner; user_data.component = this; owner.lock()->registerToEvent1<EntityPtr>("Use").connect(this, &Weave::use); }
Destructible::Destructible(const EntityWPtr &owner, const RenderSystemPtr &system) : Totem::Component<Destructible, PropertyUserData>("Destructible"), owner(owner), system(system) { user_data.entity = owner; user_data.component = this; ch = owner.lock()->add<int>("Character", '@'); col = owner.lock()->add<TCODColor>("Color", TCODColor::white); blocks = owner.lock()->add<bool>("Blocks", true); dead = owner.lock()->add<bool>("Dead", false); defense = owner.lock()->add<float>("Defense", 1); maxHp = owner.lock()->add<float>("MaxHP", 1); hp = owner.lock()->add<float>("HP", 1); corpseName = owner.lock()->add<std::string>("CorpseName", "corpse"); owner.lock()->registerToEvent1<float>("TakeDamage").connect(this, &Destructible::takeDamage); owner.lock()->registerToEvent1<float>("Heal").connect(this, &Destructible::heal); }
void TestEnemyNormal::execute(EntityWPtr _enemy) { EntityPtr strong_entity = _enemy.lock(); if(strong_entity) { DynamicEntityPtr dyn_entity = boost::dynamic_pointer_cast<DynamicEntity>(strong_entity); dyn_entity->getSteeringBehaviours()->enable("Seperation", 0.5, 3); dyn_entity->getSteeringBehaviours()->enable("ObstacleAvoidance", 1.0, 1); dyn_entity->getSteeringBehaviours()->enable("Cohesion", 0.5, 4); dyn_entity->getSteeringBehaviours()->enable("Alignment", 1.0, 5); dyn_entity->getSteeringBehaviours()->enable("FollowPath", 1.0, 2); } }