Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
  }
}