import java.util.*; import java.awt.*; // // Bulldozer // // Roll from left - right until it finds an 13 object and then turn // // Sqaushes everything in its path // public class object75 extends object{ long oldtime=0; int listnr=0; int list[]=new int[10]; int list2[]=new int[10]; private int state=1; boolean no=false; int looper=0; // display part of the monkey turning int ll=0; // ll = number of monkey Image image1; Image image2; Sound sound1; Sound sound2; public object75(){ objnumber=75; methods[0]="hit"; methods[1]="resetevent"; methods[2]="action1"; methods[3]="action2"; methods[4]="action3"; methods[5]="action4"; methods[6]="event"; methods[7]="event1"; methods[8]="event2"; methods[9]="aftermove"; } public void init(Global glbl){ boolean found=false; global=glbl; image1=global.loadImage(global.Server,global.Directory+"75_1"+global.Extention,global.show); image2=global.loadImage(global.Server,global.Directory+"75_2"+global.Extention,global.show); image=image1; sound=global.loadSound(global.Server, global.Directory+"75.au"); sound2=global.loadSound(global.Server, global.Directory+"75_1.au"); Date d=new Date();oldtime=d.getTime(); int nr=0; listnr=0; while(!found){ nr=global.grid.next(nr==0?0:nr%(global.WIDTH*global.STEPP),nr==0?0:nr/(global.WIDTH*global.STEPP), 75); if(nr < 0) found=true; else{ // Add the position to the list System.out.println("Nr:"+nr); list2[listnr]=1; list[listnr++]=nr; } nr++; } System.out.println("Total number of 75-objects: "+listnr); if(listnr < 1) no=true; // No object 72 found on level else no=false; } public void execute(){ if(method.compareTo("aftermove")==0) aftermove(); if(method.compareTo("hit")==0) hit(); if(method.compareTo("resetevent")==0) resetevent(); if(method.compareTo("event1")==0) event1(); if(method.compareTo("event2")==0) event2(); if(method.compareTo("event") == 0) event(); } public void aftermove(){ } public void hit(){ } public void event1(){ if(no || listnr < 1)return; Date d=new Date(); int POS=1; if(d.getTime() < oldtime+(global.STEPP==1?500:100))return; oldtime=d.getTime(); //System.out.println("ll: "+ll+" value: "+list[ll]); int x=list[ll]==0?0:list[ll]% (global.WIDTH*global.STEPP); int y=list[ll]==0?0:list[ll]/ (global.WIDTH*global.STEPP); //System.out.println("searching on row: "+y); int position=global.grid.next(0, y, 75); //System.out.println("75 object found on : "+position); if(position<0)return; int x1=(position==0?0:position% (global.WIDTH*global.STEPP)); int y1=(position==0?0:position/ (global.WIDTH*global.STEPP)); int targetobject; // set nothing on previouspos //System.out.println("The position is calculated to : "+x1+","+y1); global.grid.setxy(x1,y1, 1); if(list2[ll] == 1){ targetobject=global.grid.getxy(x1+POS,y1); if(targetobject!=13 && targetobject!=152)global.grid.setxy(x1+POS, y1, 75); }else{ if(global.playsound)sound2.play(); targetobject=global.grid.getxy(x1-POS,y1); if(targetobject != 13 && targetobject != 152)global.grid.setxy(x1-POS, y1, 75); } // System.out.println("Target object is: "+targetobject); if(targetobject == 13 || targetobject==152){ if(global.playsound)sound.play(); if(list2[ll]==1){ list2[ll]=2; image=image2; } else{ list2[ll]=1; image=image1; } global.grid.setxy(x1,y1,75); } else{ // crush object if(x1 == global.player.getX() && y1 == global.player.getY()){ if(global.playsound)sound2.play(); global.setInfo("You are crushed!"); global.doreload=true; } } global.boardrow=y1; global.boardcol=x1; global.boardwidth=-1; global.boardheight=-1; if(++ll > listnr-1)ll=0; global.doboard=true; } public void event2(){ global.freeze=false; global.resetevent=true; // tell environment to execute resetevent state=0; } public void resetevent(){ Date d=new Date();oldtime=d.getTime(); listnr=0; state=1; global.freeze=false; no=true; } public void event(){ // put everything here like a 'run' method switch(state){ case 1: event1(); break; case 2: event2(); break; } } }