gh-scrum/src/level_m.pas

56 lines
1.2 KiB
ObjectPascal

unit level_m;
interface
uses arena_m, trace_m, creature_m, enemy_packs_m;
type
levelState = record
a: arena;
t: tracePtr;
levelStarted, continueLevel, hamsterAlive: boolean;
h: creature;
cut: integer;
enemyList: creatureList;
end;
function IsLevelComplete(var level: levelState): boolean;
procedure InitLevel(var level: levelState; t: enemyPackType);
implementation
uses hamster_m, ghost_m, debug_m;
const
LevelCompleteThreshold = 80;
TotalProcent = 100;
{
BonusTurns = 45;
StartSpeedBonus = 0;
StartSlowBonus = 0;
}
function IsLevelComplete(var level: levelState): boolean;
var
completeProcent: integer;
begin
completeProcent := round(level.cut / (TotalCells / TotalProcent));
IsLevelComplete := completeProcent >= LevelCompleteThreshold
end;
procedure InitLevel(var level: levelState; t: enemyPackType);
begin
InitArena(level.a);
InitHamster(level.h);
InitCreatureList(level.enemyList);
AppendEnemies(level.enemyList, t);
{PrintEnemies(level.enemyList);}
level.levelStarted := true;
level.continueLevel := true;
level.hamsterAlive := true;
level.t := nil;
level.cut := 0
end;
end.