DroidQuest/src/com/droidquest/items/Switch4A.java

165 lines
4.3 KiB
Java

package com.droidquest.items;
import com.droidquest.Room;
import com.droidquest.materials.Switch;
public class Switch4A extends Switch
{
int count = 0;
int doorState=0;
transient Room room= null;
public Switch4A()
{
super(Switch.ROT_UP);
GenerateIcons();
}
public void TouchedByItem(Item item)
{
if (!value)
{
value=true;
count++;
room = item.room;
}
}
public void Animate()
{
super.Animate();
if (doorState==0 && count==4)
doorState=1;
switch (doorState)
{
case 1:
room.SetMaterial(8,3,0);
room.SetMaterial(9,3,0);
room.SetMaterial(10,3,0);
room.SetMaterial(11,3,0);
room.SetMaterial(8,8,0);
room.SetMaterial(9,8,0);
room.SetMaterial(10,8,0);
room.SetMaterial(11,8,0);
room.SetMaterial(12,4,0);
room.SetMaterial(12,5,0);
room.SetMaterial(12,6,0);
room.SetMaterial(12,7,0);
room.SetMaterial(13,4,4);
room.SetMaterial(13,7,4);
room.SetMaterial(7,4,0);
room.SetMaterial(7,5,0);
room.SetMaterial(7,6,0);
room.SetMaterial(7,7,0);
room.SetMaterial(6,4,4);
room.SetMaterial(6,7,4);
doorState++;
break;
case 2:
room.SetMaterial(8,2,0);
room.SetMaterial(9,2,0);
room.SetMaterial(10,2,0);
room.SetMaterial(11,2,0);
room.SetMaterial(12,2,0);
room.SetMaterial(7,9,0);
room.SetMaterial(8,9,0);
room.SetMaterial(9,9,0);
room.SetMaterial(10,9,0);
room.SetMaterial(11,9,0);
room.SetMaterial(13,4,0);
room.SetMaterial(13,5,0);
room.SetMaterial(13,6,0);
room.SetMaterial(13,7,0);
room.SetMaterial(14,4,4);
room.SetMaterial(14,7,4);
room.SetMaterial(6,4,0);
room.SetMaterial(6,5,0);
room.SetMaterial(6,6,0);
room.SetMaterial(6,7,0);
room.SetMaterial(5,4,4);
room.SetMaterial(5,7,4);
doorState++;
break;
case 3:
room.SetMaterial(8,1,0);
room.SetMaterial(9,1,0);
room.SetMaterial(10,1,0);
room.SetMaterial(11,1,0);
room.SetMaterial(8,10,0);
room.SetMaterial(9,10,0);
room.SetMaterial(10,10,0);
room.SetMaterial(11,10,0);
room.SetMaterial(14,4,0);
room.SetMaterial(14,5,0);
room.SetMaterial(14,6,0);
room.SetMaterial(14,7,0);
room.SetMaterial(15,4,4);
room.SetMaterial(15,7,4);
room.SetMaterial(5,4,0);
room.SetMaterial(5,5,0);
room.SetMaterial(5,6,0);
room.SetMaterial(5,7,0);
room.SetMaterial(4,4,4);
room.SetMaterial(4,7,4);
doorState++;
break;
case 4:
Room temproom = room.rightRoom; // KeyTunnel Left
temproom.SetMaterial(2,3,0);
for (int a=0; a<8; a++)
{
temproom.SetMaterial(8,a+1,0);
temproom.SetMaterial(12,a+1,0);
temproom.SetMaterial(16,a+1,0);
}
temproom = temproom.rightRoom; // KeyTunnel Right
for (int a=0; a<8; a++)
{
temproom.SetMaterial(3,a+1,0);
temproom.SetMaterial(7,a+1,0);
temproom.SetMaterial(11,a+1,0);
}
temproom = room.leftRoom; // MineField top right
for (int Y=0; Y<12; Y++)
for (int X=0; X<20; X++)
if (temproom.RoomArray[Y][X]==8)
temproom.SetMaterial(X,Y,11);
temproom = temproom.leftRoom; // MineField top left
for (int Y=0; Y<12; Y++)
for (int X=0; X<20; X++)
{
if (temproom.RoomArray[Y][X]==8)
temproom.SetMaterial(X,Y,11);
if (temproom.RoomArray[Y][X]==16)
temproom.SetMaterial(X,Y,0);
}
temproom = temproom.downRoom; // MineField botom left
for (int Y=0; Y<12; Y++)
for (int X=0; X<20; X++)
if (temproom.RoomArray[Y][X]==8)
temproom.SetMaterial(X,Y,11);
temproom = temproom.rightRoom; // MineField bottom right
for (int Y=0; Y<12; Y++)
for (int X=0; X<20; X++)
if (temproom.RoomArray[Y][X]==8)
temproom.SetMaterial(X,Y,11);
temproom = room.upRoom;
temproom.SetMaterial(19,5,0);
temproom.SetMaterial(19,6,0);
temproom.SetMaterial(19,7,0);
temproom = temproom.rightRoom;
temproom = temproom.upRoom;
temproom = temproom.leftRoom;
temproom = temproom.leftRoom;
temproom.SetMaterial(19,5,0);
temproom.SetMaterial(19,6,0);
doorState++;
break;
}
}
}