unit creditssystem;

interface

type  TCredits = class(TObject)
  private
  fcredits : integer;
  public
  constructor Create();
  destructor Destroy; override;
  procedure AddCredit;
  procedure AddCoinCredit;
  procedure AddFreeCredit;
  procedure RefundCredit;
  procedure updatecreditview;
  function UseCredit : boolean;
  property Credits : integer read fcredits;
end;

implementation
uses global,jukeboxform,sysutils,main;

constructor TCredits.Create;
begin
 inherited;
 fcredits:=0;
end;

destructor TCredits.Destroy;
begin
 inherited;
end;


procedure TCredits.AddCredit;
begin
  inc(fcredits);
  inc(config.freecredittotal);
  updatecreditview;
end;


procedure TCredits.AddCoinCredit;
begin
  fcredits:=fcredits+(config.playspercoincredit);
  config.credittotal:=config.credittotal+config.playspercoincredit;
  writeini;
  jukebox.domessage('COIN INSERTED - THANK YOU');
  updatecreditview;
end;

procedure TCredits.AddFreeCredit;
begin
  inc(fcredits);
  inc(config.freecredittotal);
  writeini;
  jukebox.domessage('ADDED FREE CREDIT');
  updatecreditview;
end;

procedure TCredits.RefundCredit;
begin
  inc(fcredits);
  updatecreditview;
end;

function TCredits.UseCredit;
begin
result:=true;
if fcredits=0 then begin
 result:=false;
 exit;
end else begin
dec(fcredits);
updatecreditview;
end;

end;

procedure TCredits.updatecreditview;
var
s : string;
begin
s:=inttostr(fcredits);
s:=copy(s,1,4);
jukebox.CreditStat.Caption:=s;
end;



end.