50 lines
1.0 KiB
ObjectPascal
50 lines
1.0 KiB
ObjectPascal
|
|
unit hamster_m;
|
||
|
|
|
||
|
|
interface
|
||
|
|
|
||
|
|
uses arena_m, creature_m, trace_m;
|
||
|
|
|
||
|
|
const
|
||
|
|
HamsterStartX = 5;
|
||
|
|
HamsterStartY = 1;
|
||
|
|
HamsterStartDX = 0;
|
||
|
|
HamsterStartDY = 0;
|
||
|
|
HamsterMovespeed = 2;
|
||
|
|
HamsterSymbol = 'h';
|
||
|
|
|
||
|
|
procedure InitHamster(var cr: creature);
|
||
|
|
procedure KillHamster(var h: creature; var t: tracePtr; var a: arena);
|
||
|
|
|
||
|
|
implementation
|
||
|
|
|
||
|
|
uses arena_graphics_m, graphics_m;
|
||
|
|
|
||
|
|
procedure InitHamster(var cr: creature);
|
||
|
|
begin
|
||
|
|
cr.t := creatureHamster;
|
||
|
|
cr.curX := HamsterStartX;
|
||
|
|
cr.curY := HamsterStartY;
|
||
|
|
cr.dX := HamsterStartDX;
|
||
|
|
cr.dY := HamsterStartDY;
|
||
|
|
cr.moveSpeed := HamsterMovespeed;
|
||
|
|
cr.alive := true;
|
||
|
|
end;
|
||
|
|
|
||
|
|
procedure KillHamster(var h: creature; var t: tracePtr; var a: arena);
|
||
|
|
var
|
||
|
|
traceStart: tracePtr;
|
||
|
|
begin
|
||
|
|
RedrawArea(a, h.curX, h.curY, h.t);
|
||
|
|
EraseTrace(t, a);
|
||
|
|
DrawArenaCell(h.curX, h.curY, a);
|
||
|
|
GetStart(traceStart, t);
|
||
|
|
h.curX := traceStart^.x;
|
||
|
|
h.curY := traceStart^.y;
|
||
|
|
h.dX := HamsterStartDX;
|
||
|
|
h.dY := HamsterStartDY;
|
||
|
|
DeleteTrace(t);
|
||
|
|
DrawCreature(h)
|
||
|
|
end;
|
||
|
|
|
||
|
|
end.
|