- entity head;
- float n_players = 0, gen_washealed = FALSE, mcount, mskill;
-
- current_phase = PHASE_BUILD;
-
- for(head = world;(head = findflags(head, flags, FL_GENERATOR)); )
- {
- if(head.health < head.max_health)
- {
- gen_washealed = TRUE;
- pointparticles(particleeffectnum("healing_fx"), head.origin, '0 0 0', 1);
- head.health = head.max_health;
- WaypointSprite_UpdateHealth(head.sprite, head.health);
- head.SendFlags |= GSF_STATUS;
- }
- head.takedamage = DAMAGE_NO;
- }
-
- FOR_EACH_PLAYER(head)
- {
- if(head.health < 100) head.health = 100;
- if(gen_washealed) PlayerScore_Add(head, SP_TD_SCORE, -autocvar_g_td_generator_damaged_points);
-
- n_players += 1;
- }
-
- mcount = autocvar_g_td_monster_count_increment * wave_count;
- mskill = n_players * 0.02;
-
- totalmonsters += mcount;
- monster_skill += autocvar_g_td_monsters_skill_increment;
- monster_skill += mskill;
-
- if(monster_skill < 1) monster_skill = 1;
- if(totalmonsters < 1) totalmonsters = ((autocvar_g_td_monster_count > 0) ? autocvar_g_td_monster_count : 10);
- if(wave_count < 1) wave_count = 1;
-
- Send_Notification(NOTIF_ALL, world, MSG_MULTI, MULTI_TD_PHASE_BUILD, wave_count, totalmonsters, build_time);
-
- FOR_EACH_MONSTER(head)
- {
- if(head.health <= 0)
- continue;
-
- dprint(strcat("Warning: Monster still alive during build phase! Monster name: ", head.netname, "\n"));
-
- WaypointSprite_Kill(head.sprite);
- remove(head);
- }
-
- monsters_total = totalmonsters;
- monsters_killed = 0;
-
- queue_monsters(totalmonsters);
-
- cphase_updates = -1;
-
- if(autocvar_sv_eventlog)
- GameLogEcho(strcat(":buildphase:", ftos(wave_count), ":", ftos(totalmonsters)));
-
- self.think = combat_phase_announce;
- self.nextthink = time + build_time - 6;