depth = 10; con = 0; customcon = 0; timer = 0; init = 0; siner = 0; turnofflayers("CUT"); turnofflayers("DEBUG"); turnofflayers("NPC"); turnofflayers("TABLES"); var tab = findsprite_all(7384, "TABLES"); for (var i = 0; i < array_length(tab); i++) scr_marker_fromasset(tab[i], undefined, 1); var large_table = findsprite(spr_dw_cafe_table_large, "TABLES"); scr_marker_fromasset(large_table, undefined, 1); if (scr_flag_get(1455) < 30) { var door_block = instance_create(160, 80, obj_solidblockDark); with (door_block) { image_xscale = 2; image_yscale = 2; } } else { var door_sprite = scr_dark_marker(154, 40, spr_dw_cafe_door); with (door_sprite) depth = 1010990; } floradinn = { recruitflag: 670, sprite: spr_enemy_floradin, extflag: "floradinn", inst: -4, recruited: false }; sheary = { recruitflag: 675, extflag: "sheary", sprite: spr_scissordancer, inst: -4, recruited: false }; leafling = { recruitflag: 671, extflag: "leafling", sprite: spr_leafling_serious_idle, inst: -4, recruited: false }; netskie = { recruitflag: 676, sprite: spr_tree_fox_idle, extflag: "netskie", inst: -4, recruited: false }; kawkaw = { recruitflag: 674, sprite: spr_kawkaw_small, extflag: "kawkaw", inst: -4, recruited: false }; shinobeetle = { recruitflag: 673, sprite: spr_shinobeetle_spare, extflag: "shinobeetle", inst: -4, recruited: false }; shi = { recruitflag: 672, sprite: spr_scarecrow_ow, extflag: "shi", inst: -4, recruited: false }; terracotta = { recruitflag: 677, sprite: spr_terracotta_walk_right, extflag: "terracotta", inst: -4, recruited: false }; recNPCs = [floradinn, sheary, leafling, netskie, kawkaw, shinobeetle, shi, terracotta]; for (var i = 0; i < array_length(recNPCs); i++) { var recruitFlag = global.flag[recNPCs[i].recruitflag]; if (global.flag[recNPCs[i].recruitflag] == 1) { var npc = recNPCs[i]; var block = -4; with (obj_genmarker) { if (extflag == npc.extflag) block = id; } npc.inst = instance_create(block.x, block.y, obj_trigger_interact); scr_sizeexact(block.sprite_width, block.sprite_height, npc.inst); with (npc.inst) { strict = true; issolid = true; talked = 0; } npc.inst.marker = scr_marker_fromasset(findsprite(npc.sprite, "NPC_TABLEGUESTS")); npc.inst.marker.image_speed = 0; scr_depth_alt(npc.inst.marker); if (instance_exists(npc.inst)) recNPCs[i].recruited = true; } } vendingmachine = scr_makenpc_fromasset(findsprite(bg_dw_fcastle_vending_machine)); dinermenu = instance_create(0, 0, obj_garden_diner_menu); tableselect = scr_makenpc_fromasset(findsprite(spr_shine, "NPCs", c_yellow)); with (tableselect) { markerstick = false; marker.image_blend = c_white; marker.sprite_index = spr_shine_white; marker.depth = 96870; issolid = false; setxy(x - 50, y - 18); scr_sizeexact(108, 60); siner = 0; marker.depth = 0; } tableleft = -4; tableright = -4; tableselect.marker.depth = 96900; sheary_table = scr_marker(206, 372, spr_dw_cafe_table); with (sheary_table) { image_xscale = 2; image_yscale = 2; depth = 95440; } resetcamera = false; resetcameratimer = 0; resetcamloc = { x: 0, y: 0 }; nameAqua = stringsetloc("Aqua", "obj_dw_fcastle_cafe_slash_Create_0_gml_169_0"); nameSeth = stringsetloc("Seth", "obj_dw_fcastle_cafe_slash_Create_0_gml_170_0"); nameYellow = stringsetloc("Yellow", "obj_dw_fcastle_cafe_slash_Create_0_gml_171_0"); nameGreen = stringsetloc("Green", "obj_dw_fcastle_cafe_slash_Create_0_gml_172_0"); nameBlue = stringsetloc("Blue", "obj_dw_fcastle_cafe_slash_Create_0_gml_173_0"); nameOrange = stringsetloc("Orange", "obj_dw_fcastle_cafe_slash_Create_0_gml_174_0"); nameSusie = stringsetloc("Susie", "obj_dw_fcastle_cafe_slash_Create_0_gml_175_0"); nameRalsei = stringsetloc("Ralsei", "obj_dw_fcastle_cafe_slash_Create_0_gml_176_0"); namePink = stringsetloc("Pink", "obj_dw_fcastle_cafe_slash_Create_0_gml_177_0"); nameKris = stringsetloc("Kris", "obj_dw_fcastle_cafe_slash_Create_0_gml_178_0"); nameAnd = stringsetloc(" & ", "obj_dw_fcastle_cafe_slash_Create_0_gml_179_0"); nameClearTable = stringsetloc("Exit", "obj_dw_fcastle_cafe_slash_Create_0_gml_180_0"); tablecharinteract = []; aqua = 1810; seth = 1811; yellow = 1812; green = 1813; blue = 1814; orange = 1815; pink = 1816; green = 1813; menu = 0; camstart = { x: 0, y: 0 }; cammove = 0; mpos = 0; remmpos = mpos; page = 0; menuOptions = []; cutscene = 0; fadecaterpillars = function(arg0) { with (obj_caterpillarchara) image_alpha = lerp_ease_in(image_alpha, arg0, 0.7, 4); with (obj_mainchara) image_alpha = lerp_ease_in(image_alpha, arg0, 0.7, 4); }; var ok = function(arg0) { if (arg0 == 1810) return true; if (arg0 == 1812 && global.flag[1812] && global.flag[672] == -1) return -2; if (arg0 == 1811 && global.flag[1811] && (global.flag[672] == -1 || global.flag[673] == -1 || global.flag[1906] == -1)) return -2; if (arg0 == 1814 && global.flag[1814] && global.flag[675] == -1) return -2; if (arg0 == 1813 && global.flag[1813] && global.flag[677] == -1) return -2; if (arg0 == 1815 && global.flag[1815] && (global.flag[672] == -1 || global.flag[676] == -1)) return -2; if (global.flag[arg0] == 1) return 1; else return -1; }; array_push(menuOptions, { name1: nameClearTable, name2: "", desc: nameClearTable, cutscene: 0, isnew: false, key: "noone", bought: true, watched: true }); if (ok(aqua)) { array_push(menuOptions, { name1: nameAqua, name2: nameKris, desc: "", cutscene: 1, key: "cut1", bought: false, cost: 20 }); } if (scr_flower_is_recruited_all() && ok(seth)) { array_push(menuOptions, { name1: nameAqua, name2: nameSeth, desc: nameAqua + nameAnd + nameSeth, cutscene: 2, key: "cut2", bought: false }); } if (ok(aqua) && ok(yellow)) { array_push(menuOptions, { name1: nameAqua, name2: nameYellow, desc: nameAqua + nameAnd + nameYellow, cutscene: 3, key: "cut3", bought: false }); } if (ok(aqua) && ok(green)) { array_push(menuOptions, { name1: nameAqua, name2: nameGreen, desc: nameAqua + nameAnd + nameGreen, cutscene: 4, key: "cut4", bought: false }); } if (ok(aqua) && ok(blue)) { array_push(menuOptions, { name1: nameAqua, name2: nameBlue, desc: nameAqua + nameAnd + nameBlue, cutscene: 5, key: "cut5", bought: false }); } if (ok(aqua) && ok(orange)) { array_push(menuOptions, { name1: nameAqua, name2: nameOrange, desc: nameAqua + nameAnd + nameOrange, cutscene: 6, key: "cut6", bought: false }); } if (ok(seth)) { array_push(menuOptions, { name1: nameSeth, name2: nameRalsei, desc: nameSeth + nameAnd + nameRalsei, cutscene: 7, key: "cut7", bought: false }); } if (ok(seth) && ok(yellow)) { array_push(menuOptions, { name1: nameSeth, name2: nameSusie, desc: nameSeth + nameAnd + nameSusie, cutscene: 8, key: "cut8", bought: false }); } if (ok(seth) && ok(yellow)) { array_push(menuOptions, { name1: nameSeth, name2: nameYellow, desc: nameSeth + nameAnd + nameYellow, cutscene: 9, key: "cut9", bought: false }); } if (ok(seth) && ok(green)) { array_push(menuOptions, { name1: nameSeth, name2: nameGreen, desc: nameSeth + nameAnd + nameGreen, cutscene: 10, key: "cut10", bought: false }); } if (ok(seth) && ok(blue)) { array_push(menuOptions, { name1: nameSeth, name2: nameBlue, desc: nameSeth + nameAnd + nameBlue, cutscene: 11, key: "cut11", bought: false }); } if (ok(seth) && ok(orange)) { array_push(menuOptions, { name1: nameSeth, name2: nameOrange, desc: nameSeth + nameAnd + nameOrange, cutscene: 12, key: "cut12", bought: false }); } if (ok(yellow)) { array_push(menuOptions, { name1: nameYellow, name2: nameRalsei, desc: nameYellow + nameAnd + nameRalsei, cutscene: 13, key: "cut13", bought: false }); } if (ok(yellow) && ok(green)) { array_push(menuOptions, { name1: nameYellow, name2: nameGreen, desc: nameYellow + nameAnd + nameGreen, cutscene: 14, key: "cut14", bought: false }); } if (ok(yellow) && ok(blue) && global.flag[1455] >= 50) { array_push(menuOptions, { name1: nameYellow, name2: nameBlue, desc: nameYellow + nameAnd + nameBlue, cutscene: 15, key: "cut15", bought: false }); } if (ok(yellow) && ok(orange)) { array_push(menuOptions, { name1: nameYellow, name2: nameOrange, desc: nameYellow + nameAnd + nameOrange, cutscene: 16, key: "cut16", bought: false }); } if (ok(green)) { array_push(menuOptions, { name1: nameGreen, name2: "", desc: nameGreen, cutscene: 17, key: "cut17", bought: false, cost: 20 }); } if (ok(green) && ok(orange)) { array_push(menuOptions, { name1: nameGreen, name2: nameOrange, desc: nameGreen + nameAnd + nameOrange, cutscene: 18, key: "cut18", bought: false }); } if (ok(blue)) { array_push(menuOptions, { name1: nameBlue, name2: nameSusie, desc: nameBlue + nameAnd + nameSusie, cutscene: 19, key: "cut19", bought: false }); } if (ok(blue) && ok(orange)) { array_push(menuOptions, { name1: nameBlue, name2: nameOrange, desc: nameBlue + nameAnd + nameOrange, cutscene: 20, key: "cut20", bought: false }); } if (ok(blue) && ok(orange)) { array_push(menuOptions, { name1: nameBlue, name2: nameOrange + stringsetloc(" 2", "obj_dw_fcastle_cafe_slash_Create_0_gml_261_0"), desc: nameBlue + nameAnd + nameOrange, cutscene: 21, key: "cut21", bought: false }); } if (ok(blue) && ok(orange)) { array_push(menuOptions, { name1: nameBlue, name2: nameOrange + stringsetloc(" 3", "obj_dw_fcastle_cafe_slash_Create_0_gml_262_0"), desc: nameBlue + nameAnd + nameOrange, cutscene: 22, key: "cut22", bought: false }); } if (ok(blue) && ok(green)) { array_push(menuOptions, { name1: nameBlue, name2: nameGreen, desc: nameBlue + nameAnd + nameGreen, cutscene: 23, key: "cut23", bought: false }); } if (ok(orange)) { array_push(menuOptions, { name1: nameOrange, name2: nameSusie, desc: nameOrange + nameAnd + nameSusie, cutscene: 24, key: "cut24", bought: false }); } if (ok(orange)) { array_push(menuOptions, { name1: nameOrange, name2: nameRalsei, desc: nameOrange + nameAnd + nameRalsei, cutscene: 25, key: "cut25", bought: false }); } if (ok(pink) && ok(orange)) { array_push(menuOptions, { name1: namePink, name2: nameOrange, desc: namePink + nameAnd + nameOrange, cutscene: 26, key: "cut26", bought: false }); } if (ok(pink)) { array_push(menuOptions, { name1: namePink, name2: nameKris, desc: namePink + nameAnd + nameKris, cutscene: 27, key: "cut27", bought: false }); } for (var i = 1; i < array_length(menuOptions); i++) { with (menuOptions[i]) { if (name2 != "") desc = name1 + obj_dw_fcastle_cafe.nameAnd + name2; else desc = name1; show_debug_message_concat(i, ": ", desc); } menuOptions[i].bought = scr_flowercutsceneFlag_get(menuOptions[i].key); if (!variable_struct_exists(menuOptions[i], "cost")) { menuOptions[i].cost = 20; } else if (menuOptions[i].cost <= 0) { scr_flowercutsceneFlag_set(menuOptions[i].key, 1); menuOptions[i].bought = true; } menuOptions[i].isnew = false; menuOptions[i].watched = scr_flowercutsceneWatchedFlag_get(menuOptions[i].key); } previousresult = []; for (var i = 0; i < 7; i++) array_push(previousresult, scr_flag_get_ext(1856, i, 2)); flowerlegend = [1811, 1812, 1813, 1810, 1814, 1815, 1816]; flowerNames = [nameSeth, nameYellow, nameGreen, nameAqua, nameBlue, nameOrange, namePink]; currentresult = []; for (var i = 0; i < array_length(flowerlegend); i++) { var check = ok(flowerlegend[i]); if (check == 1) array_push(currentresult, 1); else if (check == -1) array_push(currentresult, 0); else if (check == -2) array_push(currentresult, 2); } currentresult_bitflagval = scr_array_to_bitmask(currentresult, 2); updatedfriends = 0; friendslost = []; friendsgained = []; for (var i = 0; i < array_length(currentresult); i++) { if (previousresult[i] != currentresult[i]) { if (currentresult[i] == 1) array_push(friendsgained, flowerNames[i]); if (currentresult[i] == 2) array_push(friendslost, flowerNames[i]); } } if (array_length(friendsgained) > 0 || array_length(friendslost) > 0) { if (array_length(friendsgained) > 0) { for (var i = 0; i < array_length(menuOptions); i++) { for (var k = 0; k < array_length(friendsgained); k++) { if (string_pos(string_lower(friendsgained[k]), string_lower(menuOptions[i].desc)) > 0) { show_debug_message_concat(friendsgained[k], " | ", menuOptions[i].desc); menuOptions[i].isnew = true; } } } } updatedfriends = 1; } npcGreen = -4; npcYellow = -4; npcOrange = -4; npcBlue = -4; npcSeth = -4; npcAqua = -4; var counterDepth = layer_get_depth("TILES_Fore") + 10; if (ok(green)) { npcGreen = scr_makenpc_fromasset(findsprite(spr_enemy_green_walk, "NPCs")); with (npcGreen) { marker.depth = counterDepth; x += 14; y += 37; markerstick = false; issolid = false; scr_sizeexact(30, 50); show = true; marker.image_index = 0; with (marker) { memsprite = sprite_index; memdepth = depth; y -= 12; } } npcGreen.canwave = true; } cleanupCutscene = function() { }; resetMainCharacters = function() { var lay = "CUTSCENE_ASSETS"; var kr = findspriteinfo(spr_krisd_dark, lay); var su = findspriteinfo(spr_susie_walk_down_dw, lay); var ra = findspriteinfo(spr_ralsei_walk_down, lay); global.facing = 0; setxy(kr.x, kr.y, 1198); with (obj_caterpillarchara) { if (name == "susie") setxy(su.x, su.y); if (name == "ralsei") setxy(ra.x, ra.y); scr_caterpillar_interpolate(); scr_caterpillar_facing(0); } }; setTable = function(arg0) { var aqua = 7709; var seth = 2001; var blue = 5810; var orange = 8247; var yellow = 5820; var green = 7454; var pink = 4979; var leftLay = "NPC_TABLEFLOWERS_LEFT"; var rightLay = "NPC_TABLEFLOWERS_RIGHT"; var moveGreen = false; with (obj_dw_fcastle_cafe) { with (tableleft) { scr_lerpvar("image_alpha", 1, 0, 3); scr_doom(id, 3); } with (tableright) { scr_lerpvar("image_alpha", 1, 0, 3); scr_doom(id, 3); } tableleft = -4; tableright = -4; switch (arg0) { case 0: break; case 1: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); break; case 2: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); tableright = scr_marker_fromasset(findsprite(seth, rightLay)); break; case 3: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); tableright = scr_marker_fromasset(findsprite(yellow, rightLay)); break; case 4: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); tableright = scr_marker_fromasset(findsprite(green, rightLay)); break; case 5: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); tableright = scr_marker_fromasset(findsprite(blue, rightLay)); break; case 6: tableleft = scr_marker_fromasset(findsprite(aqua, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 7: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); break; case 8: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); break; case 9: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); tableright = scr_marker_fromasset(findsprite(yellow, rightLay)); break; case 10: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); tableright = scr_marker_fromasset(findsprite(green, rightLay)); break; case 11: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); tableright = scr_marker_fromasset(findsprite(blue, rightLay)); break; case 12: tableleft = scr_marker_fromasset(findsprite(seth, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 13: tableleft = scr_marker_fromasset(findsprite(yellow, leftLay)); break; case 14: tableleft = scr_marker_fromasset(findsprite(yellow, leftLay)); tableright = scr_marker_fromasset(findsprite(green, rightLay)); break; case 15: tableleft = scr_marker_fromasset(findsprite(yellow, leftLay)); tableright = scr_marker_fromasset(findsprite(blue, rightLay)); break; case 16: tableleft = scr_marker_fromasset(findsprite(yellow, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 17: tableleft = scr_marker_fromasset(findsprite(green, leftLay)); break; case 18: tableleft = scr_marker_fromasset(findsprite(green, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 19: tableleft = scr_marker_fromasset(findsprite(blue, leftLay)); break; case 20: tableleft = scr_marker_fromasset(findsprite(blue, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 21: tableleft = scr_marker_fromasset(findsprite(blue, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 22: tableleft = scr_marker_fromasset(findsprite(orange, leftLay)); break; case 23: tableleft = scr_marker_fromasset(findsprite(blue, leftLay)); tableright = scr_marker_fromasset(findsprite(green, rightLay)); break; case 24: tableleft = scr_marker_fromasset(findsprite(orange, leftLay)); break; case 25: tableleft = scr_marker_fromasset(findsprite(orange, leftLay)); break; case 26: tableleft = scr_marker_fromasset(findsprite(pink, leftLay)); tableright = scr_marker_fromasset(findsprite(orange, rightLay)); break; case 27: tableleft = scr_marker_fromasset(findsprite(pink, leftLay)); break; } with (tableleft) { image_speed = 0; image_index = 0; scr_depth(); } with (tableright) { image_speed = 0; image_index = 0; scr_depth(); } } }; setTable(0); move_actors_bottom = function() { c_sel(kr); c_setxy(kr_actor.x, 320); c_facing("u"); c_sel(su); c_setxy(342, 304); c_facing("u"); c_autodepth(0); c_depth(96100); c_sel(ra); c_setxy(442, 310); c_facing("u"); c_autodepth(0); c_depth(96100); }; clean_up_marker = function(arg0) { with (arg0) scr_doom(id, 15); }; fade_end_cutscene = function() { c_customfunc(function() { with (instance_create(0, 0, obj_fadeout)) fadespeed = 1/15; }); c_wait(30); c_actortokris(); c_actortocaterpillar(); c_terminatekillactors(); }; _seth_aqua_con = 0;