Class TMonstergroup (unit Gameform)

Inherits from

TObject

probablity distribution for bonuses

Constructors


constructor create(hor_flag:boolean; posx,posy,spacing,xmx,xmn,ymx,ymn:integer);

---------------------------------------------------------------------------- } { Monster Group } { ----------------------------------------------------------------------------


Functions

function are_any_exploding : boolean;

^ shift the monsters into correct order

destructor destroy;


procedure draw;


procedure force_redraw;


function is_hit_left(bullet:Tbullet) : integer;

save checking time, by doing left, right, top monsters in sub, checks after all, a bullet going up, can't really hit a left monster etc etc etc

function is_hit_right(bullet:Tbullet) : integer;


function is_hit_top(bullet:Tbullet ) : integer;


function movegroup : boolean;

the monsters are always stored in the d_o [ draworder ] array, in left right or top down position, means we can check a bullet with the leftmost, and if it is left of the monster ignore all the others.

procedure reset_original_state(sheet:integer);


procedure Sendmonstershome;

this is really badly bodged, but I couldn't be arsed doing it any better.

Properties

Events

Variables

draworder : array[0..monsters_per_sidem1] of integer;


empty1st : integer;


horizontal : boolean;


monsters : array[0..monsters_per_side] of TMonster;


setupgap : integer;


xh : integer;


xl : integer;


xpos : integer;


yh : integer;


yl : integer;


ypos : integer;



Constructors


constructor create(hor_flag:boolean; posx,posy,spacing,xmx,xmn,ymx,ymn:integer);

---------------------------------------------------------------------------- } { Monster Group } { ----------------------------------------------------------------------------


Functions


function are_any_exploding : boolean;

^ shift the monsters into correct order


destructor destroy;


procedure draw;


procedure force_redraw;


function is_hit_left(bullet:Tbullet) : integer;

save checking time, by doing left, right, top monsters in sub, checks after all, a bullet going up, can't really hit a left monster etc etc etc


function is_hit_right(bullet:Tbullet) : integer;


function is_hit_top(bullet:Tbullet ) : integer;


function movegroup : boolean;

the monsters are always stored in the d_o [ draworder ] array, in left right or top down position, means we can check a bullet with the leftmost, and if it is left of the monster ignore all the others. same with topmost. when monsters die the d_o list is shuffled and new monsters appear in the left again (or top). The list is stored in monsters[...] and d_o is the index - correction.


procedure reset_original_state(sheet:integer);


procedure Sendmonstershome;

this is really badly bodged, but I couldn't be arsed doing it any better. just ran out of ideas here - sorry


Properties


Events


Variables


draworder : array[0..monsters_per_sidem1] of integer;


empty1st : integer;


horizontal : boolean;


monsters : array[0..monsters_per_side] of TMonster;


setupgap : integer;


xh : integer;


xl : integer;


xpos : integer;


yh : integer;


yl : integer;


ypos : integer;