You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AM2R-Multitroid-Fair-Team-PVP/Export_Code/gml_Object_oTester_Step_0.gml

593 lines
12 KiB

if (eye.myhealth < 0)
state = 100
aim_x = oCharacter.x
aim_y = oCharacter.y
if (state == 0)
{
if (statetime == 60)
{
with (oA4TileLight1)
color = 1
sfx_play(sndTesterStartup)
}
if (statetime > 60)
{
if (eye.shutter_frame < 4)
eye.shutter_frame += 0.25
}
if (statetime == 120)
{
enableforcefield = 1
glass.enabled = 1
sfx_play(sndTesterBarrierUp)
}
if (statetime == 150)
{
if file_exists("musTester.ogg")
{
mus_play(musTester)
oMusicV2.bossbgm = 369
}
else
{
mus_play(musAncientGuardian)
oMusicV2.bossbgm = 263
}
}
if (statetime == 240)
{
state = 1
statetime = 0
eye.canbehit = 1
scan_log(35, get_text("ScanEvents", "ScanMechanism"), 180, 0)
}
}
if (state == 1)
{
if (statetime == 0)
{
x = round(x)
y = round(y)
targetx = 160
if (y >= 480)
targety = 100
else
targety = 860
target_soff = 0
target_coff = 0
target_angle = 0
rot_speed = 5
sangle_timer = 60
if (instance_number(oTesterShield) == 4)
change_time = 360
if (instance_number(oTesterShield) == 3)
change_time = 300
if (instance_number(oTesterShield) == 2)
change_time = 240
if (instance_number(oTesterShield) == 1)
change_time = 180
if (instance_number(oTesterShield) == 0)
change_time = 120
}
if (y <= 120)
targety = 860
if (y >= 840)
targety = 100
if (instance_number(oTesterShield) == 4)
movespeed = 1
if (instance_number(oTesterShield) == 3)
movespeed = 1.5
if (instance_number(oTesterShield) == 2)
movespeed = 2
if (instance_number(oTesterShield) == 1)
movespeed = 2.5
if (instance_number(oTesterShield) == 0)
movespeed = 3
if (point_distance(x, y, oCharacter.x, oCharacter.y) > 220)
movespeed = 1
if (statetime > 60 && statetime < 260)
{
if (sangle_timer > 0)
sangle_timer -= 1
else
{
starget_angle = (floor(random_range(0, 3.9)) * 90)
sangle_timer = 120
sfx_play(sndTesterRotate)
}
}
if (statetime >= change_time)
{
if (attacks == 0)
{
if (instance_number(oTesterShield) == 4)
next_attack = 7
else
next_attack = 2
}
if (attacks == 1 || attacks == 3)
next_attack = choose(3, 4, 5, 6)
if (attacks == 2)
next_attack = 2
attacks += 1
if (attacks > 3)
attacks = 0
state = next_attack
statetime = 0
}
}
if (state == 2)
{
if (statetime == 0)
{
targetx = 160
targety = y
movespeed = 0
target_soff = soffmax
target_coff = coffmax
rot_speed = 5
with (oTesterCannon)
{
type = 0
event_user(2)
}
sfx_play(sndTesterCannonArm)
}
if (statetime == 50)
{
with (oTesterCannon)
open = 1
}
if (statetime == 60)
target_angle = 45
if (statetime == 70)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 90)
target_angle = 90
if (statetime == 100)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 110)
target_angle = 45
if (statetime == 120)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 130)
{
with (oTesterCannon)
open = 0
}
if (statetime == 200)
{
state = 1
statetime = -1
}
}
if (state == 3)
{
if (statetime == 0)
{
targetx = 100
targety = 120
movespeed = 5
target_soff = soffmax
target_coff = coffmax
target_angle = 180
rot_speed = 5
with (oTesterCannon)
{
type = 1
event_user(2)
}
sfx_play(sndTesterCannonArm)
}
if (statetime == 100)
{
with (oTesterCannon)
open = 1
}
if (statetime == 130)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 190)
{
targetx = 125
targety = 300
target_angle = 270
}
if (statetime == 250)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 280)
{
targetx = 160
targety = 480
target_angle = 180
}
if (statetime == 340)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 370)
{
targetx = 195
targety = 660
target_angle = 90
}
if (statetime == 430)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 460)
{
targetx = 220
targety = 840
target_angle = 0
}
if (statetime == 520)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 550)
{
with (oTesterCannon)
open = 0
}
if (statetime == 610)
{
state = 1
statetime = -1
}
}
if (state == 4)
{
if (statetime == 0)
{
targetx = 160
targety = 480
movespeed = 5
target_soff = soffmax
target_coff = coffmax
target_angle = 45
rot_speed = 5
with (oTesterCannon)
{
type = 2
event_user(2)
}
sfx_play(sndTesterCannonArm)
}
if (statetime == 60)
{
with (oTesterCannon)
open = 1
}
if (statetime == 100)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 400)
{
with (oTesterCannon)
open = 0
}
if (statetime == 460)
{
state = 1
statetime = -1
}
}
if (state == 5)
{
if (statetime == 0)
{
targetx = 160
targety = y
movespeed = 0
target_soff = soffmax
target_coff = coffmax
target_angle = 0
rot_speed = 5
with (oTesterCannon)
{
type = 3
event_user(2)
}
sfx_play(sndTesterCannonArm)
}
if (statetime == 50)
{
with (oTesterCannon)
open = 1
}
if (statetime == 100)
{
with (oTesterCannon)
event_user(0)
}
if (statetime == 130)
{
target_angle = -45
rot_speed = 0.5
}
if (statetime == 210)
{
target_angle = 45
rot_speed = 0.5
}
if (statetime == 390)
{
with (oTesterCannon)
open = 0
}
if (statetime == 450)
{
state = 1
statetime = -1
}
}
if (state == 6)
{
if (statetime == 0)
{
targetx = 160
targety = y
if (y > 736)
targety = 736
if (y < 224)
targety = 224
movespeed = 4
target_soff = soffmax
target_coff = coffmax
target_angle = 0
rot_speed = 5
with (oTesterCannon)
{
type = 4
event_user(2)
}
sfx_play(sndTesterCannonArm)
}
if (statetime == 50)
{
with (oTesterCannon)
open = 1
}
if (statetime == 100)
{
with (oTesterCannon)
event_user(0)
sfx_loop(sndTesterPlasmaLoop)
}
if (statetime == 130)
{
target_angle = 360
rot_speed = 0.5
}
if (statetime == 850)
{
with (oTesterPlasmaBeam)
fadeout = 1
sfx_stop(sndTesterPlasmaLoop)
}
if (statetime == 870)
{
with (oTesterCannon)
open = 0
}
if (instance_number(oTesterPlasmaBeam) == 0 && sfx_isplaying(sndTesterPlasmaLoop))
sfx_stop(sndTesterPlasmaLoop)
if (statetime == 930)
{
state = 1
statetime = -1
image_angle = 0
target_angle = 0
}
}
if (state == 7)
{
if (statetime == 0)
{
movetotarget = 0
target_soff = 35
shuriken = 1
target_angle = 0
rot_speed = 0
sfx_play(sndTesterRotate)
}
if (statetime == 50)
{
directrotate = 1
sfx_loop(sndTesterMeleeLoop)
}
if (statetime == 100)
{
direction = point_direction(x, y, aim_x, aim_y)
speed = 4
}
if (x > wall_r && hspeed > 0)
hspeed *= -1
if (x < wall_l && hspeed < 0)
hspeed *= -1
if (y > wall_d && vspeed > 0)
vspeed *= -1
if (y < wall_u && vspeed < 0)
vspeed *= -1
if (statetime == 600)
{
speed = 0
target_soff = 0
directrotate = 0
sfx_stop(sndTesterMeleeLoop)
}
if (statetime == 660)
{
state = 1
statetime = -1
image_angle = 0
target_angle = 0
shuriken = 0
movetotarget = 1
targetx = 160
targety = 480
}
}
if (state == 100)
{
if (statetime == 0)
{
movespeed = 0
movetotarget = 0
directrotate = 0
rot_speed = 0
speed = 0
sfx_stop(sndTesterMeleeLoop)
with (oTesterCannon)
open = 0
with (oTesterPlasmaBeam)
fadeout = 1
with (oTesterGlass)
instance_destroy()
with (oTesterMissile)
event_user(0)
with (oTesterSpazerBeam)
event_user(0)
with (oTesterIceBeam)
event_user(0)
with (oTesterWaveBeam)
event_user(0)
with (oA4TileLight1)
color = 0
with (cam)
instance_destroy()
sfx_stop(sndTesterPlasmaLoop)
sfx_play(sndTesterDeath)
mus_fadeout(musTester)
mus_fadeout(musAncientGuardian)
oMusicV2.bossbgm = 0
}
if (statetime == 200)
{
sfx_stop(sndTesterMeleeLoop)
repeat (20)
{
expl = instance_create((x + random_range(-45, 45)), (y + random_range(-45, 45)), oFXAnimSpark)
expl.image_speed = (0.3 + random(0.5))
expl.additive = 0
expl.sprite_index = sExpl1Big
}
make_explosion3(x, (y - 40))
repeat (20)
instance_create(x, (y - 50), oDebris)
repeat (30)
instance_create(x, (y - 50), oMetalDebrisBig)
instance_create(x, y, oScreenFlash)
sfx_play(sndRobotExpl)
sfx_play(sndMissileExpl)
spawn_many_powerups((x - 64), (y - 64), 128, 128)
with (oDoor)
event_user(3)
with (oTesterCannon)
instance_destroy()
with (oTesterShield)
instance_destroy()
with (oTesterEye)
instance_destroy()
global.event[200] = 2
dead = 1
if (instance_exists(oClient) && oClient.connected)
{
with (oClient)
event_user(8)
}
mus_current_fadein()
instance_destroy()
}
}
if movetotarget
{
if (x < targetx)
x += 1
if (x > targetx)
x -= 1
if (y < targety)
y += movespeed
if (y > targety)
y -= movespeed
}
if (soffset < target_soff)
soffset += 1
if (soffset > target_soff)
soffset -= 1
if (coffset < target_coff)
coffset += 2
if (coffset > target_coff)
coffset -= 2
if (image_angle > target_angle)
image_angle -= rot_speed
if (image_angle < target_angle)
image_angle += rot_speed
if directrotate
{
sangle -= 20
if (sangle < 0)
sangle += 360
}
else
{
if (sangle > starget_angle)
sangle -= srot_speed
if (sangle < starget_angle)
sangle += srot_speed
}
if (state != 100)
{
if (instance_number(oTesterShield) < 4 && enableforcefield == 0)
{
enableforcefield = 1
glass.enabled = 1
}
if (glass.enabled == 1)
eye.canbehit = 0
else
eye.canbehit = 1
}
if (flashing > 0)
flashing -= 1
statetime += 1
if (global.event[200] > 1 && (!dead))
{
make_explosion3(x, y)
repeat (30)
instance_create(x, y, oDebris)
state = 100
statetime = -1
alarm[10] = 1
alarm[11] = 300
with (oTesterShield)
event_user(1)
visible = false
dead = 1
if (instance_exists(oClient) && oClient.connected)
{
with (oClient)
event_user(8)
}
}