/* Camera */
view_xview[0]=x-120+8
view_yview[0]=y-80+8
depth= 0
/* Movement Mode */
if p_mode = 0 {
depth = 10000;// depth
r = 0
if keyboard_check(ord('K')) || keyboard_check(ord('X')) { r = 2; }
if keyboard_check(vk_up) || keyboard_check(ord('W')) { if place_snapped(16,16){ if direction = 90 && canmove > 1 {speed = 2+r;} else if direction != 90 { canmove = 0; } direction = 90; anim_base = 4 ; canmove += .4; } } // ctrls
if keyboard_check(vk_down) || keyboard_check(ord('S')) { if place_snapped(16,16){ if direction = 270 && canmove > 1 {speed = 2+r;} else if direction != 270 { canmove = 0; } direction = 270; anim_base = 12 ; canmove += .4; } }
if keyboard_check(vk_left) || keyboard_check(ord('A')) { if place_snapped(16,16){ if direction = 180 && canmove > 1 {speed = 2+r;} else if direction != 180 { canmove = 0; } direction = 180; anim_base = 8 ; canmove += .4; } }
if keyboard_check(vk_right) || keyboard_check(ord('D')) { if place_snapped(16,16){ if direction = 0 && canmove > 1 {speed = 2+r;} else if direction != 0 { canmove = 0; } direction = 0; anim_base = 0 ; canmove += .4; } }
if keyboard_check_pressed(vk_space) { speed = 0; move_snap(16,16) mode(1) }
if (direction = 90)
{
if position_meeting(x+4,y+2+r,wall_d) && !keyboard_check(ord('S')) && position_meeting(x+4,y-8,wall_d)
{
speed = 0;
anim_frame = 0;
y += 2+r;
move_snap(16,16);
}
}
if (direction = 270)
{
if position_meeting(x+4,y-2-r,wall_d) && !keyboard_check(ord('W')) && position_meeting(x+4,y+8,wall_d)
{
speed = 0;
anim_frame = 0;
y -= 2+r;
move_snap(16,16);
}
}
if (keyboard_check(vk_up)=false && keyboard_check(vk_down)=false && keyboard_check(vk_left)=false && keyboard_check(vk_right)=false &&
keyboard_check(ord('W'))=false && keyboard_check(ord('S'))=false && keyboard_check(ord('A'))=false && keyboard_check(ord('D'))=false) { // Grid snap
if place_snapped(16,16) {
speed = 0;
r = 0;
anim_frame = 0;
}
}
if speed != 0 {
anim_frame += .25 + (.25*r/2)
if anim_frame >= 3.5 {
anim_frame = 0;
}
}
draw_sprite(player_s,anim_base+round(anim_frame),x,y) // draw sprite
}
/* Start Menu Mode */
if p_mode = 1 {
depth = -11 // depth
draw_sprite(player_s,anim_base+round(anim_frame),x,y) // draw sprite
items = 5
if global.playerHasPokedex = true { items += 1}
if global.playerHasPokemon = true { items += 1}
if global.playerHasPokegear = true { items += 1}
drawPokeRect(view_xview[0]+160,view_yview[0]+1,96,14+(14*items))
ty = 0
if global.playerHasPokedex = true {
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"POKEDEX")
ty += 14
}
if global.playerHasPokemon = true {
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"POKEMON")
ty += 14
}
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"PACK")
ty += 14
if global.playerHasPokegear = true {
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"POKEGEAR")
ty += 14
}
draw_text(view_xview[0]+178,view_yview[0]+10+ty,global.playerName)
ty += 14
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"SAVE")
ty += 14
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"OPTIONS")
ty += 14
draw_text(view_xview[0]+178,view_yview[0]+10+ty,"EXIT")
draw_set_color(make_color_rgb(64,0,64));
draw_sprite(sp_purpleArrow,0,view_xview[0]+170,view_yview[0]+10+(14*start_selected))
draw_set_color(c_black);
if keyboard_check_pressed(vk_up) || keyboard_check_pressed(ord('W')) {
start_selected -= 1; if start_selected < 0 { start_selected = 0 }
}
if keyboard_check_pressed(vk_down) || keyboard_check_pressed(ord('S')) {
start_selected += 1; if start_selected > (items-1) { start_selected = (items-1) }
}
if pos_input() = true {
c = 0
if global.playerHasPokedex = false {
c += 1
}
if global.playerHasPokemon = false {
c += 1
}
if global.playerHasPokegear = false {
if start_selected+c > 2 { c+= 1 }
}
mode(start_selected+2+c)
}
if neg_input() || keyboard_check_pressed(vk_space) = true { mode(0) }
}
else {
start_selected = 0
}
/* Pokedex Mode 2*/
if p_mode = 2
{
draw_rectangle_color(view_xview[0],view_yview[0],view_xview[0]+240,view_yview[0]+160,c_black,c_black,c_black,c_black,0)
centerText();
i = -3;
offsetAngle += 5
if offsetAngle > 360 { offsetAngle -= 360 }
repeat(7)
{
if i + pokedexPosition < 0 { i+= 1 }
else if i + pokedexPosition >= ds_grid_height(global.player_pokedex) { }
else
{
//offset = lengthdir_x(24,(i+3)*60)
if ds_grid_get(global.player_pokedex,0,pokedexPosition+i) = false
{
var xpos;
xpos = view_xview[0]+60+lengthdir_x(24,offsetAngle+(i*60))
var xscale,xdif,glowColor;
xscale = 1 - (abs(xpos-(view_xview[0]+60))/192)-(abs(i)/5)
xdif = abs(xpos-508)/24
glowColor = make_color_rgb(255,102,0)
//drawGlowText_ext(xpos, view_yview[0]+82+(20*i), string(pokedexPosition+i+1)+ ". ???", 3, 26-(abs(i)*5), make_color_rgb(228,128,30), make_color_rgb(255,102,0),1-(abs(i)/6),1);
drawGlowText_ext(xpos, view_yview[0]+82+(20*i), string(pokedexPosition+i+1)+ ". ???", 1+(4*xscale), .1 + ceil(40*xscale), make_color_rgb(228,128,30), glowColor,xscale,1);
if i = 0 { draw_sprite(sp_qmark,0,view_xview[0]+180,view_yview[0]+80) }
}
else
{
var xpos;
xpos = view_xview[0]+60+lengthdir_x(24,offsetAngle+(i*60))
var xscale,xdif,glowColor;
xscale = 1 - (abs(xpos-(view_xview[0]+60))/192)-(abs(i)/5)
xdif = abs(xpos-508)/24
glowColor = make_color_rgb(255,102,0)
//drawGlowText_ext(xpos, view_yview[0]+82+(20*i), string(pokedexPosition+i+1)+ ". ???", 3, 26-(abs(i)*5), make_color_rgb(228,128,30), make_color_rgb(255,102,0),1-(abs(i)/6),1);
drawGlowText_ext(xpos, view_yview[0]+82+(20*i), string(pokedexPosition+i+1)+ ". " + pkmn_name(pokedexPosition+i), 1+(4*xscale), .1 + ceil(30*xscale), make_color_rgb(228,128,30), glowColor,xscale,1);
if i = 0 {
draw_sprite(pkmn_pkdex_bg,0,view_xview[0]+180,view_yview[0]+40)
draw_sprite(pkmn_front_s,pokedexPosition,view_xview[0]+180,view_yview[0]+40)
centerText()
}
}
i += 1;
}
}
resetDrawingPrefs();
//ctrl
if pos_input() = true or neg_input() = true { mode(1) }
if keyboard_check_pressed(vk_up) || keyboard_check_pressed(ord('W')) {
pokedexPosition -= 1; if pokedexPosition < 0 { pokedexPosition = 0 }
else { mode(2.1) }
clock = 0;
}
if keyboard_check_pressed(vk_down) || keyboard_check_pressed(ord('S')) {
pokedexPosition += 1; if pokedexPosition >= ( ds_grid_height(global.player_pokedex) ) { pokedexPosition = (ds_grid_height(global.player_pokedex)-1) }
else { mode(2.2) }
clock = 0;
}
if keyboard_check_released(vk_up) or keyboard_check_released(vk_down) or keyboard_check_released(ord('W')) or keyboard_check_released(ord('S'))
{
fastScroll = false;
clock = 0;
}
run_clock();
if clock = 0 and (keyboard_check(vk_up) || keyboard_check(ord('W')) || keyboard_check(vk_down) || keyboard_check(ord('S')))
{
fastScroll = true;
}
else
{
fastScroll = false;
}
if fastScroll = true
{
if keyboard_check(vk_up) || keyboard_check(ord('W')) {
pokedexPosition -= 1; if pokedexPosition < 0 { pokedexPosition = 0 }
else { mode(2.3) }
}
if keyboard_check(vk_down) || keyboard_check(ord('S')) {
pokedexPosition += 1; if pokedexPosition >= ( ds_grid_height(global.player_pokedex) ) { pokedexPosition = (ds_grid_height(global.player_pokedex)-1) }
else { mode(2.4) }
}
}
}
pkmn_pokedex_scroll()
/* Mode 3: Party
global.party_pkmn_kind=-1
global.party_pkmn_name=""
global.party_pkmn_hp_ev=0
global.party_pkmn_atk_ev=0
global.party_pkmn_def_ev=0
global.party_pkmn_spatk_ev=0
global.party_pkmn_spdef_ev=0
global.party_pkmn_spd_ev=0
global.party_pkmn_item=-1
global.party_pkmn_exp=0*/
if p_mode = 3 {
party_anim += .05
if party_anim > 1 { party_anim = 0 }
// CALC PARTY SIZE!!!
partysize = 0
endparty = 0
while endparty = 0 && partysize < 10 {
if global.party_pkmn_kind[partysize] != -1 { partysize += 1 }
else { endparty = 1 }
}
// DRAW WHITE BG
draw_rectangle_color(view_xview[0]+0,view_yview[0]+0,view_xview[0]+240,view_yview[0]+160,c_white,c_white,c_purple,c_purple,0)
if partysize > 0 {
// DRAW TEH SCROWL BARR lol
draw_rectangle(view_xview[0]+0,view_yview[0]+0,view_xview[0]+16,view_yview[0]+160,0)
draw_set_color(make_color_rgb(192,192,192))
draw_rectangle(view_xview[0]+1,view_yview[0]+16,view_xview[0]+15,view_yview[0]+144,0)
draw_set_color(c_blue)
scrollsize = round(129/partysize)
draw_rectangle(view_xview[0]+1,view_yview[0]+16+(scrollsize*party_selected),view_xview[0]+15,view_yview[0]+16+(scrollsize*party_selected)+scrollsize,0)
draw_set_color(make_color_rgb(64,64,255))
draw_rectangle(view_xview[0]+1,view_yview[0]+16+(scrollsize*party_selected),view_xview[0]+8,view_yview[0]+16+(scrollsize*party_selected)+scrollsize,0)
draw_set_color(make_color_rgb(0,0,128))
draw_rectangle(view_xview[0]+1,view_yview[0]+16+(scrollsize*party_selected),view_xview[0]+15,view_yview[0]+16+(scrollsize*party_selected)+scrollsize,1)
draw_set_color(c_black)
// DRAW ACTIVE PKMN
draw_pokerect(view_xview[0]+18,view_yview[0]+1,view_xview[0]+200,view_yview[0]+52)
draw_sprite(pkmn_icon_s,(global.party_pkmn_kind[party_selected]*2)+round(party_anim),view_xview[0]+32,view_yview[0]+2)
draw_text(view_xview[0]+40,view_yview[0]+36,global.party_pkmn_name[party_selected])
draw_text(view_xview[0]+66,view_yview[0]+6,chr(130)+string(calculate_lvl(global.party_pkmn_exp[party_selected])))
show_debug_message(string(global.party_pkmn_gender[party_selected]))
show_debug_message(string(party_selected))
if global.party_pkmn_gender[party_selected] < 100 {
draw_text(view_xview[0]+90,view_yview[0]+7,chr(37))
}
else {
draw_text(view_xview[0]+90,view_yview[0]+7,chr(131))
}
draw_text(view_xview[0]+98,view_yview[0]+6,string(global.party_pkmn_current_hp[party_selected]) + "/" + string(calculate_hp(global.party_pkmn_kind[party_selected],global.party_pkmn_exp[party_selected],global.party_pkmn_hp_ev[party_selected])))
draw_sprite(special_icons,0,view_xview[0]+66,view_yview[0]+20)
hppercent = global.party_pkmn_current_hp[party_selected]/calculate_hp(global.party_pkmn_kind[party_selected],global.party_pkmn_exp[party_selected],global.party_pkmn_hp_ev[party_selected])
draw_set_color(c_blue)
if hppercent < .5 {draw_set_color(c_yellow)}
if hppercent < .25 {draw_set_color(c_red)}
draw_rectangle(view_xview[0]+79,view_yview[0]+19,view_xview[0]+79+(92*hppercent),view_yview[0]+25,0)
draw_set_color(c_white)
draw_set_alpha(.4)
draw_rectangle(view_xview[0]+79,view_yview[0]+19,view_xview[0]+171,view_yview[0]+22,0)
draw_set_color(c_black)
draw_set_alpha(1)
draw_rectangle(view_xview[0]+79,view_yview[0]+19,view_xview[0]+171,view_yview[0]+25,1)
draw_sprite(special_icons,1,view_xview[0]+66,view_yview[0]+28)
pppercent = global.party_pkmn_current_pp[party_selected]/calculate_pp(global.party_pkmn_kind[party_selected],global.party_pkmn_exp[party_selected])
draw_set_color(c_blue)
if pppercent < .5 {draw_set_color(c_yellow)}
if pppercent < .25 {draw_set_color(c_red)}
draw_rectangle(view_xview[0]+79,view_yview[0]+27,view_xview[0]+79+(92*pppercent),view_yview[0]+33,0)
draw_set_color(c_white)
draw_set_alpha(.4)
draw_rectangle(view_xview[0]+79,view_yview[0]+27,view_xview[0]+171,view_yview[0]+30,0)
draw_set_color(c_black)
draw_set_alpha(1)
draw_rectangle(view_xview[0]+79,view_yview[0]+27,view_xview[0]+171,view_yview[0]+33,1)
// DRAW OTHER PKMN
i = 0
repeat(partysize-1-party_selected) {
draw_text(view_xview[0]+31,view_yview[0]+56+(i*16),global.party_pkmn_name[party_selected+i+1])
i += 1
}
// DRAW DIALOG LOL
drawPokeRect(view_xview[0]+18,view_yview[0]+136,220,23)
centerText()
draw_text(view_xview[0]+136,view_yview[0]+148,"Choose a Pokemon")
resetDrawingPrefs();
}
else
{
resetDrawingPrefs();
drawPokeRect(view_xview[0]+1,view_yview[0]+136,238,23)
centerText()
draw_text(view_xview[0]+120,view_yview[0]+148,"No Pokemon")
resetDrawingPrefs();
}
// ctrls
if keyboard_check_pressed(vk_up) || keyboard_check_pressed(ord('W')) {
party_selected -= 1; if party_selected < 0 { party_selected = 0 }
}
if keyboard_check_pressed(vk_down) || keyboard_check_pressed(ord('S')) {
party_selected += 1; if party_selected > (partysize-1) { party_selected = (partysize-1) }
}
if neg_input() = true { mode(1) }
}
else {
party_anim = 0
party_selected = 0
}
/* Mode 6: Trainer Card */
if p_mode = 6 {
draw_sprite(sp_id,0,view_xview[0],view_yview[0])
run_clock()
drawGlowText_ext(view_xview[0]+15, view_yview[0]+108, "ID No. " + string(global.playerID), 2+sqr(abs(clock))/98, 100, make_color_rgb(228,128,30), make_color_rgb(255,102,0),1,1);
drawGlowText_ext(view_xview[0]+15, view_yview[0]+126, "Money: " + string(global.playerMoney), 2+sqr(abs(clock))/98, 100, make_color_rgb(228,128,30), make_color_rgb(255,102,0),1,1);
if neg_input() = true { mode(1) }
}
if p_mode = 9 {
draw_sprite(player_s,anim_base+round(anim_frame),x,y) // draw sprite
mode(0)
}
/* Mode 98: Auto Walk */
if p_mode = 98
{
if targetX > x
{
x += 2
anim_base = 0
anim_frame += .25
if anim_frame >= 3.5 {
anim_frame = 0;
}
}
else if targetX < x
{
x -= 2
anim_base = 8
anim_frame += .25
if anim_frame >= 3.5 {
anim_frame = 0;
}
}
else if targetY > y
{
y += 2
anim_base = 12
anim_frame += .25
if anim_frame >= 3.5 {
anim_frame = 0;
}
}
else if targetY < y
{
y -= 2
anim_base = 4
anim_frame += .25
if anim_frame >= 3.5 {
anim_frame = 0;
}
}
else mode(0);
draw_sprite(player_s,anim_base+round(anim_frame),x,y) // draw sprite
draw_set_alpha(1 - fade_frame) // Fade In
draw_set_color(c_black)
draw_rectangle(0,0,room_width,room_height,0);
fade_frame += .1;
if fade_frame > 1
{
fade_freame = 1;
}
}
/* Mode Swap Mode */
if p_mode = 99 {
p_mode = t_mode;
}