205 maxTurnSkipsName : shortstring; |
207 maxTurnSkipsName : shortstring; |
206 maxTeamDamage : Longword; |
208 maxTeamDamage : Longword; |
207 maxTeamDamageName : shortstring; |
209 maxTeamDamageName : shortstring; |
208 winnersClan : PClan; |
210 winnersClan : PClan; |
209 begin |
211 begin |
210 msd:= 0; msdhh:= nil; |
212 if SendStatsOn then |
211 msk:= 0; mskhh:= nil; |
213 msd:= 0; msdhh:= nil; |
212 mskcnt:= 0; |
214 msk:= 0; mskhh:= nil; |
213 maxTeamKills := 0; |
215 mskcnt:= 0; |
214 maxTurnSkips := 0; |
216 maxTeamKills := 0; |
215 maxTeamDamage := 0; |
217 maxTurnSkips := 0; |
216 winnersClan:= nil; |
218 maxTeamDamage := 0; |
217 |
219 winnersClan:= nil; |
218 for t:= 0 to Pred(TeamsCount) do |
220 |
219 with TeamsArray[t]^ do |
221 for t:= 0 to Pred(TeamsCount) do |
220 begin |
222 with TeamsArray[t]^ do |
221 if not ExtDriven then |
223 begin |
222 SendStat(siTeamStats, GetTeamStatString(TeamsArray[t])); |
224 if not ExtDriven then |
223 for i:= 0 to cMaxHHIndex do |
225 SendStat(siTeamStats, GetTeamStatString(TeamsArray[t])); |
224 begin |
226 for i:= 0 to cMaxHHIndex do |
225 if Hedgehogs[i].stats.MaxStepDamageGiven > msd then |
227 begin |
226 begin |
228 if Hedgehogs[i].stats.MaxStepDamageGiven > msd then |
227 msdhh:= @Hedgehogs[i]; |
229 begin |
228 msd:= Hedgehogs[i].stats.MaxStepDamageGiven |
230 msdhh:= @Hedgehogs[i]; |
229 end; |
231 msd:= Hedgehogs[i].stats.MaxStepDamageGiven |
230 if Hedgehogs[i].stats.MaxStepKills >= msk then |
232 end; |
231 if Hedgehogs[i].stats.MaxStepKills = msk then |
233 if Hedgehogs[i].stats.MaxStepKills >= msk then |
232 inc(mskcnt) |
234 if Hedgehogs[i].stats.MaxStepKills = msk then |
233 else |
235 inc(mskcnt) |
234 begin |
236 else |
235 mskcnt:= 1; |
237 begin |
236 mskhh:= @Hedgehogs[i]; |
238 mskcnt:= 1; |
237 msk:= Hedgehogs[i].stats.MaxStepKills |
239 mskhh:= @Hedgehogs[i]; |
238 end; |
240 msk:= Hedgehogs[i].stats.MaxStepKills |
239 end; |
241 end; |
240 |
242 end; |
241 { send player stats for winner teams } |
243 |
242 if Clan^.ClanHealth > 0 then |
244 { send player stats for winner teams } |
243 begin |
245 if Clan^.ClanHealth > 0 then |
244 winnersClan:= Clan; |
246 begin |
245 SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + |
247 winnersClan:= Clan; |
246 IntToStr(stats.Kills) + ' ' + TeamName); |
248 SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + |
247 end; |
249 IntToStr(stats.Kills) + ' ' + TeamName); |
248 |
250 end; |
249 { determine maximum values of TeamKills, TurnSkips, TeamDamage } |
251 |
250 if stats.TeamKills > maxTeamKills then |
252 { determine maximum values of TeamKills, TurnSkips, TeamDamage } |
251 begin |
253 if stats.TeamKills > maxTeamKills then |
252 maxTeamKills := stats.TeamKills; |
254 begin |
253 maxTeamKillsName := TeamName; |
255 maxTeamKills := stats.TeamKills; |
254 end; |
256 maxTeamKillsName := TeamName; |
255 if stats.TurnSkips > maxTurnSkips then |
257 end; |
256 begin |
258 if stats.TurnSkips > maxTurnSkips then |
257 maxTurnSkips := stats.TurnSkips; |
259 begin |
258 maxTurnSkipsName := TeamName; |
260 maxTurnSkips := stats.TurnSkips; |
259 end; |
261 maxTurnSkipsName := TeamName; |
260 if stats.TeamDamage > maxTeamDamage then |
262 end; |
261 begin |
263 if stats.TeamDamage > maxTeamDamage then |
262 maxTeamDamage := stats.TeamDamage; |
264 begin |
263 maxTeamDamageName := TeamName; |
265 maxTeamDamage := stats.TeamDamage; |
264 end; |
266 maxTeamDamageName := TeamName; |
265 |
267 end; |
266 end; |
268 |
267 |
269 end; |
268 { now send player stats for loser teams } |
270 |
269 for t:= 0 to Pred(TeamsCount) do |
271 { now send player stats for loser teams } |
270 begin |
272 for t:= 0 to Pred(TeamsCount) do |
271 with TeamsArray[t]^ do |
273 begin |
272 begin |
274 with TeamsArray[t]^ do |
273 if Clan^.ClanHealth = 0 then |
275 begin |
274 begin |
276 if Clan^.ClanHealth = 0 then |
275 SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + |
277 begin |
276 IntToStr(stats.Kills) + ' ' + TeamName); |
278 SendStat(siPlayerKills, IntToStr(Clan^.Color) + ' ' + |
277 end; |
279 IntToStr(stats.Kills) + ' ' + TeamName); |
278 end; |
280 end; |
279 end; |
281 end; |
280 |
282 end; |
281 if msdhh <> nil then |
283 |
282 SendStat(siMaxStepDamage, IntToStr(msd) + ' ' + msdhh^.Name + ' (' + msdhh^.Team^.TeamName + ')'); |
284 if msdhh <> nil then |
283 if mskcnt = 1 then |
285 SendStat(siMaxStepDamage, IntToStr(msd) + ' ' + msdhh^.Name + ' (' + msdhh^.Team^.TeamName + ')'); |
284 SendStat(siMaxStepKills, IntToStr(msk) + ' ' + mskhh^.Name + ' (' + mskhh^.Team^.TeamName + ')'); |
286 if mskcnt = 1 then |
285 |
287 SendStat(siMaxStepKills, IntToStr(msk) + ' ' + mskhh^.Name + ' (' + mskhh^.Team^.TeamName + ')'); |
286 if maxTeamKills > 1 then |
288 |
287 SendStat(siMaxTeamKills, IntToStr(maxTeamKills) + ' ' + maxTeamKillsName); |
289 if maxTeamKills > 1 then |
288 if maxTurnSkips > 2 then |
290 SendStat(siMaxTeamKills, IntToStr(maxTeamKills) + ' ' + maxTeamKillsName); |
289 SendStat(siMaxTurnSkips, IntToStr(maxTurnSkips) + ' ' + maxTurnSkipsName); |
291 if maxTurnSkips > 2 then |
290 if maxTeamDamage > 30 then |
292 SendStat(siMaxTurnSkips, IntToStr(maxTurnSkips) + ' ' + maxTurnSkipsName); |
291 SendStat(siMaxTeamDamage, IntToStr(maxTeamDamage) + ' ' + maxTeamDamageName); |
293 if maxTeamDamage > 30 then |
292 |
294 SendStat(siMaxTeamDamage, IntToStr(maxTeamDamage) + ' ' + maxTeamDamageName); |
293 if KilledHHs > 0 then |
295 |
294 SendStat(siKilledHHs, IntToStr(KilledHHs)); |
296 if KilledHHs > 0 then |
295 |
297 SendStat(siKilledHHs, IntToStr(KilledHHs)); |
296 // now to console |
298 |
297 if winnersClan <> nil then |
299 // now to console |
298 begin |
300 if winnersClan <> nil then |
299 WriteLnToConsole('WINNERS'); |
301 begin |
300 for t:= 0 to winnersClan^.TeamsNumber - 1 do |
302 WriteLnToConsole('WINNERS'); |
301 WriteLnToConsole(winnersClan^.Teams[t]^.TeamName); |
303 for t:= 0 to winnersClan^.TeamsNumber - 1 do |
302 end |
304 WriteLnToConsole(winnersClan^.Teams[t]^.TeamName); |
303 else |
305 end |
304 WriteLnToConsole('DRAW'); |
306 else |
305 |
307 WriteLnToConsole('DRAW'); |
306 WriteLnToConsole(''); |
308 |
|
309 WriteLnToConsole(''); |
307 end; |
310 end; |
308 |
311 |
309 procedure initModule; |
312 procedure initModule; |
310 begin |
313 begin |
311 TotalRounds:= -1; |
314 TotalRounds:= -1; |