IgnitableComponent::IgnitableComponent(Entity& entity, bool alwaysOnFire, ThinkingComponent& r_ThinkingComponent) : IgnitableComponentBase(entity, alwaysOnFire, r_ThinkingComponent) , onFire(alwaysOnFire) , igniteTime(alwaysOnFire ? level.time : 0) , immuneUntil(0) , fireStarter(nullptr) { REGISTER_THINKER(DamageSelf, ThinkingComponent::SCHEDULER_AVERAGE, 100); REGISTER_THINKER(DamageArea, ThinkingComponent::SCHEDULER_AVERAGE, 100); REGISTER_THINKER(ConsiderStop, ThinkingComponent::SCHEDULER_AVERAGE, STOP_CHECK_TIME); REGISTER_THINKER(ConsiderSpread, ThinkingComponent::SCHEDULER_AVERAGE, SPREAD_CHECK_TIME); }
IgnitableComponent::IgnitableComponent(Entity& entity, bool alwaysOnFire, ThinkingComponent& r_ThinkingComponent) : IgnitableComponentBase(entity, alwaysOnFire, r_ThinkingComponent) , onFire(alwaysOnFire) , igniteTime(alwaysOnFire ? level.time : 0) , immuneUntil(0) , spreadAt(INT_MAX) , fireStarter(nullptr) , randomGenerator(rand()) // TODO: Have one PRNG for all of sgame. , normalDistribution(0.0f, (float)BASE_AVERAGE_BURN_TIME) { REGISTER_THINKER(DamageSelf, ThinkingComponent::SCHEDULER_AVERAGE, 100); REGISTER_THINKER(DamageArea, ThinkingComponent::SCHEDULER_AVERAGE, 100); REGISTER_THINKER(ConsiderStop, ThinkingComponent::SCHEDULER_AVERAGE, 500); REGISTER_THINKER(ConsiderSpread, ThinkingComponent::SCHEDULER_AVERAGE, 500); }
SpawnerComponent::SpawnerComponent(Entity& entity, TeamComponent& r_TeamComponent, ThinkingComponent& r_ThinkingComponent) : SpawnerComponentBase(entity, r_TeamComponent, r_ThinkingComponent) , dying(false) , blockTime(0) { REGISTER_THINKER(Think, ThinkingComponent::SCHEDULER_AVERAGE, 500); level.team[GetTeamComponent().Team()].numSpawns++; }
BuildableComponent::BuildableComponent(Entity& entity, HealthComponent& r_HealthComponent, ThinkingComponent& r_ThinkingComponent, TeamComponent& r_TeamComponent) : BuildableComponentBase(entity, r_HealthComponent, r_ThinkingComponent, r_TeamComponent) , state(CONSTRUCTING) , constructionHasFinished(false) , marked(false) { REGISTER_THINKER(Think, ThinkingComponent::SCHEDULER_AVERAGE, 100); // TODO: Make power state a member variable. entity.oldEnt->powered = true; }