unit uGame2;
///////////////////////////////
// версия 0,6
///////////////////////////////
// модуль экрана тренировки
///////////////////////////////

interface

procedure Game2Draw;
procedure Game2Init;
procedure Game2Process;

procedure CmplxTask;

implementation

uses uGeneralData,uGUI,uGame,OMEGA;

var MenuPanel:tMenuPanel;
    BEasy,BNormal,BHard,BCanel:TCButton;

    pause:boolean;

    nextscene:tGameScene; //сцена, на которую перейдём при выборе соответствующего задания и сложности

procedure Game2init;
begin
//панель меню
MenuPanel.Init('menupanel',0,0,296,scrh);
MenuPanel.AddBtn('в меню','buttoncirclmenu','bbackmenu',148,scrh-148,true,font);
MenuPanel.AddBtn('начать игру','buttoncirclnormal','bpass',10,scrh-148,true,font);
MenuPanel.AddBtn('поиск элементов','buttoncirclnormal','bsrchel',148,10,true,font);
MenuPanel.AddBtn('сравнение карт','buttoncirclnormal','bcmpson',10,10,true,font);
MenuPanel.AddBtn('заполнение карт','buttoncirclnormal','bfilcrd',10,148,true,font);

//и кнопки выбора сложности
BEasy.Init('легко','buttoncirclnormal','bpass',(scrw-128) div 2,100,true,font);
BNormal.Init('нормально','buttoncirclnormalgreen','bpass',(scrw-128) div 2,300,true,font);
BHard.Init('сложно','buttoncirclnormalred','bpass',(scrw-128) div 2,500,true,font);
BCanel.Init('отмена','buttoncirclnormal','bexit',scrw-148,scrh-148,true,font);

//обнуляем результаты тренировки
rezult:=0;
eror:=0;
speed:=0;

end;

procedure Game2Draw;
begin

MenuPanel.Draw;

{DrawWind(296,0,scrw-296,scrh);}

DrawGWind(74,scrh-228,148,20,200);
Text_Draw(font,84,scrh-228,PChar('результат - '+U_IntToStr(rezult)),1,0,255,$000045);
DrawGWind(74,scrh-208,148,20,200);
Text_Draw(font,84,scrh-208,PChar('ошибок - '+U_IntToStr(eror)),1,0,255,$000045);
DrawGWind(74,scrh-188,148,20,200);
Text_Draw(font,84,scrh-188,PChar('скорость - '+U_IntToStr(speed)),1,0,255,$000045);

if pause then CmplxTask;

end;

procedure Game2Process;
begin

MenuPanel.Process;

if not pause then begin   //если не пауза, тогда рисуем меню выбора заданий
 if (col_pointinaabb(mouse_x,mouse_y,@MenuPanel.Btn[4].c1)) //если выбрали вариант задания
 and (mouse_press(m_lbutton)) then begin
  nextscene:=sComparison;         //и следующую сцену соответствующую данной кнопке
  pause:=true;                    //то ставим паузу
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@MenuPanel.Btn[3].c1))
 and (mouse_press(m_lbutton)) then begin
  nextscene:=sSearchElements;
  pause:=true;
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@MenuPanel.Btn[5].c1))
 and (mouse_press(m_lbutton)) then begin
  nextscene:=sFillingCards;
  pause:=true;
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@MenuPanel.Btn[2].c1)) //пропускаем тренировку
 and (mouse_press(m_lbutton)) then GameContinue;
 if (col_pointinaabb(mouse_x,mouse_y,@MenuPanel.Btn[1].c1)) //возврат в меню
 and (mouse_press(m_lbutton)) then GoToMenu;
end
else begin   //если пауза
 BEasy.Process;
 BNormal.Process;
 BHard.Process;
 BCanel.Process;
// выбрали сложность нажатием на соответствующую кнопку
 if (col_pointinaabb(mouse_x,mouse_y,@BEasy.c1))
  and (mouse_press(m_lbutton)) then begin
   CmplxLvl:=Easy;                       //выставляем уровень сложности
   gscene:=nextscene;                    //переходим на сцену соответствующего задания
   trening:=true;                         //режим тренировки
   pause:=false;
   GameInit;                             //инициализируем игру
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@BNormal.c1))
  and (mouse_press(m_lbutton)) then begin
   CmplxLvl:=Normal;
   gscene:=nextscene;
   trening:=true;                         //режим тренировки
   pause:=false;
   GameInit;
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@BHard.c1))
  and (mouse_press(m_lbutton)) then begin
   CmplxLvl:=Hard;
   gscene:=nextscene;
   trening:=true;
   pause:=false;
   GameInit;
 end;
 if (col_pointinaabb(mouse_x,mouse_y,@BCanel.c1))
  and (mouse_press(m_lbutton)) then pause:=false;

end;

end;

procedure CmplxTask;
var i1,i2:integer;
    t:PChar;
begin
//рисуем полу прозрачный фон
for i1:=1 to scrw div 208+1 do
 for i2:=1 to scrh div 16+1 do
  res.Spr[res.FindSpr('pausefon')].Draw(i1*208-208,i2*16-16,0,1);
//пишем сверху загаловок
t:=PChar('выбирете уровень сложности');
i1:=trunc(Text_GetWidth(font,t,1,0)); //узнаём ширину текста
i2:=(scrw-i1) div 2-10;
DrawGWind(i2,10,i1+20,20,200);
Text_Draw(font,i2+10,10,t,1,0,255,$000045);
//и рисуем кнопки
BEasy.Draw;
BNormal.Draw;
BHard.Draw;
BCanel.Draw;

end;

end.
