sTsumuri
0
-1
-3
0
oEnemy
<undefined>
1
603
7
0
0
-1
2
self
0
0
1
action_inherited();
makeActive();
setCollisionBounds(-1, -1, 1, 1);
myhealth = 10;
damage = 6;
hitsound = sndEHit5;
deathsound = sndEDeath1;
platyoffset = -14;
frozenspr = sTsumuriFrozen;
target = 0;
canattack = 1;
state = 1;
myangle = 0;
update = 1;
sbstate = 0;
sbmove = 0;
angleprevious = 0;
rotationspeed = 0;
falling = false;
xVel = 0;
yVel = 0;
1
603
7
0
0
-1
2
self
0
0
1
if(sbstate == 0) {
yVel += 0.1;
if (stun == 0) moveTo(xVel, yVel);
alarm[0] = 1;
}
else {
angleprevious = 0;
direction = myangle;
image_angle = direction;
xVel = 0;
yVel = 0;
x=round(x);
y=round(y);
falling = false;
}
1
603
7
0
0
-1
2
self
0
0
1
enemy_active_check(20);
if (active == 1) instance_activate_region(x - 16, y - 16, 32, 32, 1);
if (room_width <= 320) { // just in case we have flush rooms, we don't want them crawling outside
if ((x < (-(oControl.widescreen_space/2) - 8)) || (x > (room_width + (oControl.widescreen_space/2) + 8)) || (y < 0) || (y > room_height)) {
instance_destroy();
}
}
1
603
7
0
0
-1
2
self
0
0
1
action_inherited();
if (active == 1 && frozen == 0) {
// movement
if(!update) update = !update; // Run the movement code every other step, effectively resulting in 0.5 speed.
else {
update = !update;
sbstateprevious = sbstate;
sbstate = 0;
edgedl = position_meeting(x - 2, y + 1, oSolid);
edgedr = position_meeting(x + 2, y + 1, oSolid);
edgeul = position_meeting(x - 2, y - 2, oSolid);
edgeur = position_meeting(x + 2, y - 2, oSolid);
if (isCollisionBottom(0) == 1) y -= 1;
if (isCollisionTop(0) == 1) y += 1;
if (isCollisionLeft(0) == 1) x += 1;
if (isCollisionRight(0) == 1) x -= 1;
if (isCollisionBottom(1) == 1 && isCollisionRight(1) == 0 && isCollisionLeft(1) == 0) sbstate = 1;
if (isCollisionRight(1) == 1 && isCollisionBottom(1) == 0 && isCollisionTop(1) == 0) sbstate = 2;
if (isCollisionTop(1) == 1 && isCollisionRight(1) == 0 && isCollisionLeft(1) == 0) sbstate = 3;
if (isCollisionLeft(1) == 1 && isCollisionBottom(1) == 0 && isCollisionTop(1) == 0) sbstate = 4;
if (isCollisionBottom(1) == 1 && isCollisionRight(1) == 1) sbstate = 5;
if (isCollisionTop(1) == 1 && isCollisionRight(1) == 1) sbstate = 6;
if (isCollisionTop(1) == 1 && isCollisionLeft(1) == 1) sbstate = 7;
if (isCollisionBottom(1) == 1 && isCollisionLeft(1) == 1) sbstate = 8;
if (isCollisionBottom(1) == 0 && isCollisionLeft(1) == 0 && isCollisionRight(1) == 0 && isCollisionTop(1) == 0) {
if (edgedl == 1 && edgeul == 0 && edgeur == 0 && edgedr == 0) sbstate = 9;
if (edgeul == 1 && edgedl == 0 && edgeur == 0 && edgedr == 0) sbstate = 10;
if (edgeur == 1 && edgedl == 0 && edgeul == 0 && edgedr == 0) sbstate = 11;
if (edgedr == 1 && edgedl == 0 && edgeul == 0 && edgeur == 0) sbstate = 12;
if (edgedl == 1 && edgeul == 0 && edgeur == 0 && edgedr == 1) sbstate = 1;
if (edgedl == 0 && edgeul == 0 && edgeur == 1 && edgedr == 1) sbstate = 2;
if (edgedl == 0 && edgeul == 1 && edgeur == 1 && edgedr == 0) sbstate = 3;
if (edgedl == 1 && edgeul == 1 && edgeur == 0 && edgedr == 0) sbstate = 4;
}
// falling
if (sbstate == 0 && falling == false) {
falling = true;
if(image_angle > 270 || image_angle < 90) xVel = 0.5 * facing;
if(image_angle > 90 && image_angle < 270) xVel = -0.5 * facing;
alarm[0] = 1;
}
if (facing == 1 && sbmove == 0) {
if (sbstate == 1) sbmove = 1;
if (sbstate == 3) sbmove = -1;
if (sbstate == 5) sbmove = 1;
if (sbstate == 6) sbmove = -1;
if (sbstate == 7) sbmove = -1;
if (sbstate == 8) sbmove = 1;
if (sbstate == 9) sbmove = 1;
if (sbstate == 10) sbmove = -1;
if (sbstate == 11) sbmove = -1;
if (sbstate == 12) sbmove = 1;
}
if (facing == -1 && sbmove == 0) {
if (sbstate == 1) sbmove = -1;
if (sbstate == 3) sbmove = 1;
if (sbstate == 5) sbmove = -1;
if (sbstate == 6) sbmove = 1;
if (sbstate == 7) sbmove = 1;
if (sbstate == 8) sbmove = -1;
if (sbstate == 9) sbmove = -1;
if (sbstate == 10) sbmove = 1;
if (sbstate == 11) sbmove = 1;
if (sbstate == 12) sbmove = -1;
}
if (sbstate == 1) x += sbmove;
if (sbstate == 2) y -= sbmove;
if (sbstate == 3) x -= sbmove;
if (sbstate == 4) y += sbmove;
if (sbstate == 5) {
if (sbmove == 1) y -= 1;
if (sbmove == -1) x -= 1;
}
if (sbstate == 6) {
if (sbmove == 1) x -= 1;
if (sbmove == -1) y += 1;
}
if (sbstate == 7) {
if (sbmove == 1) y += 1;
if (sbmove == -1) x += 1;
}
if (sbstate == 8) {
if (sbmove == 1) x += 1;
if (sbmove == -1) y -= 1;
}
if (sbstate == 9) {
if (sbmove == 1) y += 1;
if (sbmove == -1) x -= 1;
}
if (sbstate == 10) {
if (sbmove == 1) x -= 1;
if (sbmove == -1) y -= 1;
}
if (sbstate == 11) {
if (sbmove == 1) y -= 1;
if (sbmove == -1) x += 1;
}
if (sbstate == 12) {
if (sbmove == 1) x += 1;
if (sbmove == -1) y += 1;
}
}
// rotation
switch (sbstate) {
case 1: myangle = 0; break;
case 2: myangle = 90; break;
case 3: myangle = 180; break;
case 4: myangle = 270; break;
}
var inst1 = collision_line(x-2, y, x+2, y, oSolid, false, true),
inst2 = collision_line(x, y-2, x, y+2, oSolid, false, true),
inst = noone; // -1 IS SELF YOU DIP
if(instance_exists(inst1) && string_pos("Slope", object_get_name(inst1.object_index))) inst = inst1;
else if(instance_exists(inst2) && string_pos("Slope", object_get_name(inst2.object_index))) inst = inst2;
if(instance_exists(inst)) {
if(string_pos("1", object_get_name(inst.object_index))) myangle = 45;
if(string_pos("2", object_get_name(inst.object_index))) myangle = 315;
if(string_pos("3", object_get_name(inst.object_index))) myangle = 225;
if(string_pos("4", object_get_name(inst.object_index))) myangle = 135;
if(string_pos("1B", object_get_name(inst.object_index))) myangle = 25;
if(string_pos("2B", object_get_name(inst.object_index))) myangle = 334;
if(string_pos("3B", object_get_name(inst.object_index))) myangle = 205;
if(string_pos("4B", object_get_name(inst.object_index))) myangle = 154;
}
if(angleprevious != myangle) {
rotationspeed = (abs(angle_difference(myangle, angleprevious))*15)/90;
angleprevious = myangle;
}
if(falling == false) turn_towards_direction(myangle, rotationspeed);
image_angle = direction;
image_speed = 0.2;
if (instance_number(oQuake) > 0 && falling == false) {
if(image_angle >= 90 && image_angle <= 270) {
x = x + lengthdir_x(4, image_angle + 90);
y = y + lengthdir_y(4, image_angle + 90);
}
}
} // if (active == 1 && frozen == 0)
if (state == 100) enemy_death();
1
603
7
0
0
-1
2
self
0
0
1
/// dummied
0
0
0
0.5
0.100000001490116
0
0.100000001490116
0.100000001490116
0.200000002980232
-1
0