From b0f4616b4fcc0a6106af5d197665500d49d3f6b7 Mon Sep 17 00:00:00 2001 From: Nelsonh Date: Mon, 26 Feb 2024 22:33:00 +0000 Subject: [PATCH 01/73] dungeon --- ChapterMaster.yyp | 1 + scripts/scr_dungeon/scr_dungeon.gml | 5 +++++ scripts/scr_dungeon/scr_dungeon.yy | 11 +++++++++++ 3 files changed, 17 insertions(+) create mode 100644 scripts/scr_dungeon/scr_dungeon.gml create mode 100644 scripts/scr_dungeon/scr_dungeon.yy diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index 697e685794..c1b72f96cb 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -828,6 +828,7 @@ {"id":{"name":"scr_move_unit_info","path":"scripts/scr_move_unit_info/scr_move_unit_info.yy",},}, {"id":{"name":"scr_en_weapon","path":"scripts/scr_en_weapon/scr_en_weapon.yy",},}, {"id":{"name":"scr_special_weapon","path":"scripts/scr_special_weapon/scr_special_weapon.yy",},}, + {"id":{"name":"scr_dungeon","path":"scripts/scr_dungeon/scr_dungeon.yy",},}, {"id":{"name":"spr_narthecium_2","path":"sprites/spr_narthecium_2/spr_narthecium_2.yy",},}, {"id":{"name":"scr_vehicle_weapon","path":"scripts/scr_vehicle_weapon/scr_vehicle_weapon.yy",},}, {"id":{"name":"scr_wep_abbreviate","path":"scripts/scr_wep_abbreviate/scr_wep_abbreviate.yy",},}, diff --git a/scripts/scr_dungeon/scr_dungeon.gml b/scripts/scr_dungeon/scr_dungeon.gml new file mode 100644 index 0000000000..7a3e4de5e3 --- /dev/null +++ b/scripts/scr_dungeon/scr_dungeon.gml @@ -0,0 +1,5 @@ +// Script assets have changed for v2.3.0 see +// https://help.yoyogames.com/hc/en-us/articles/360005277377 for more information +function scr_dungeon(){ + +} \ No newline at end of file diff --git a/scripts/scr_dungeon/scr_dungeon.yy b/scripts/scr_dungeon/scr_dungeon.yy new file mode 100644 index 0000000000..4dadd8d238 --- /dev/null +++ b/scripts/scr_dungeon/scr_dungeon.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "scr_dungeon", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "Scripts", + "path": "folders/Scripts.yy", + }, +} \ No newline at end of file From bebfcca922125db503e3fc78714658bf8c9d8694 Mon Sep 17 00:00:00 2001 From: Nelsonh Date: Sat, 2 Mar 2024 00:45:46 +0000 Subject: [PATCH 02/73] obstacles --- objects/obj_controller/Create_0.gml | 168 ++++++++ objects/obj_controller/Draw_0.gml | 6 +- scripts/scr_cheatcode/scr_cheatcode.gml | 11 + .../scr_draw_unit_image.gml | 2 +- .../scr_draw_unit_stat_data.gml | 2 +- scripts/scr_dungeon/scr_dungeon.gml | 380 +++++++++++++++++- .../scr_marine_struct/scr_marine_struct.gml | 91 +++++ sprites/spr_flamer_new/spr_flamer_new.yy | 2 +- .../spr_mar_collision/spr_mar_collision.yy | 2 +- .../spr_mar_fire_body1/spr_mar_fire_body1.yy | 2 +- .../spr_mar_fire_body2/spr_mar_fire_body2.yy | 2 +- .../spr_mar_fire_body3/spr_mar_fire_body3.yy | 2 +- .../spr_mar_fire_pauldron1.yy | 2 +- .../spr_mar_fire_pauldron2.yy | 2 +- .../spr_mar_walk_body1/spr_mar_walk_body1.yy | 2 +- .../spr_mar_walk_body2/spr_mar_walk_body2.yy | 2 +- .../spr_mar_walk_legs1/spr_mar_walk_legs1.yy | 4 +- sprites/spr_ork_target/spr_ork_target.yy | 2 +- sprites/spr_wings/spr_wings.yy | 2 +- sprites/sprite269/sprite269.yy | 2 +- 20 files changed, 670 insertions(+), 18 deletions(-) diff --git a/objects/obj_controller/Create_0.gml b/objects/obj_controller/Create_0.gml index 9c9aad535b..36891af62d 100644 --- a/objects/obj_controller/Create_0.gml +++ b/objects/obj_controller/Create_0.gml @@ -93,6 +93,7 @@ current_eventing=""; chaos_rating=0; chapter_made = 0; obj_cuicons.alarm[1]=1; // Clean up custom icons +dungeon=false; diplomacy_pathway = ""; option_selections=[]; @@ -1744,3 +1745,170 @@ if (vih>=5){ remov=string_length(string(temp[65])+string(temp[66])+string(temp[67])+string(temp[68])+string(temp[69]))+1; action_set_alarm(2, 0); + + +controller_standard_draw=function(){ + script_execute(scr_ui_manage,0,0,0,0,0); + script_execute(scr_ui_advisors,0,0,0,0,0); + script_execute(scr_ui_diplomacy,0,0,0,0,0); + script_execute(scr_ui_settings,0,0,0,0,0); + var xx =__view_get( e__VW.XView, 0 ); + var yy =__view_get( e__VW.YView, 0 ); + // Main UI + if (zoomed==0) and (zui==0){ + draw_sprite(spr_new_ui,0,xx+0,yy+0); + draw_sprite_ext( + spr_forge_points_icon,0, + xx+4, + yy + 50, + 1, + 1, + 0, + c_white, + 1); + draw_set_color(c_white); + // Buttons here + draw_sprite(spr_ui_but_4,0,xx+1374,yy+8); + draw_sprite(spr_ui_but_4,0,xx+1484,yy+8); + + menu_buttons.chapter_manage.draw(xx+34,yy+838+y_slide, "Chapter Management",1,1,145) + menu_buttons.chapter_settings.draw(xx+179,yy+838+y_slide, "Chapter Settings",1,1,145) + menu_buttons.apoth.draw(xx+357,yy+838+y_slide, "Apothecarium") + menu_buttons.reclu.draw(xx+473,yy+838+y_slide, "Reclusium") + menu_buttons.lib.draw(xx+590,yy+838+y_slide, "Librarium") + menu_buttons.arm.draw(xx+706,yy+838+y_slide, "Armamentarium") + menu_buttons.recruit.draw(xx+822,yy+838+y_slide, "Recruitment") + menu_buttons.fleet.draw(xx+938,yy+838+y_slide, "Fleet") + menu_buttons .diplo.draw(xx+1130,yy+838+y_slide, "Diplomacy",1,1,145) + menu_buttons .event.draw(xx+1275,yy+838+y_slide, "Event Log",1,1,145) + menu_buttons .end_turn.draw(xx+1420,yy+838+y_slide, "End Turn",1,1,145); + + // Highlight here + draw_set_blend_mode(bm_add); + draw_set_alpha(h_options*2); + if (h_options>0) then draw_sprite(spr_ui_hov_4,0,xx+1374,yy+8+y_slide); + draw_set_alpha(h_menu*2); + if (h_menu>0) then draw_sprite(spr_ui_hov_4,0,xx+1484,yy+8+y_slide); + draw_set_blend_mode(bm_normal); + draw_set_alpha(1); + + // Text here + draw_set_color(c_white); + draw_set_halign(fa_center); + draw_set_font(fnt_cul_18); + + draw_text(xx+1427,yy+14,string_hash_to_newline("Help")); + draw_text(xx+1537,yy+14,string_hash_to_newline("Menu")); + + if (y_slide>0) then draw_set_alpha((100-(y_slide*2))/100); + + //forge points number + draw_text_transformed(xx+36-2,yy + 82-4, string(forge_points), 1.7, 1.7, 0); + + draw_set_alpha(1); + draw_sprite(spr_new_banner,0,xx+1439+new_banner_x,yy+62); + draw_sprite(spr_new_ui_cover,0,xx+0,yy+(900-17)); + // Handles custom chapters + if (string_count("custom",obj_ini.icon_name)>0){ + var cusl=string_replace(obj_ini.icon_name,"custom",""); + cusl=real(cusl); + if (obj_cuicons.spr_custom[cusl]>0) and (obj_cuicons.spr_custom_icon[cusl]!=-1){ + draw_sprite_stretched(obj_cuicons.spr_custom_icon[cusl],0,xx+1451+new_banner_x,yy+73,141,141); + } + } + // Handles icon for normal chapters + if (string_count("custom",obj_ini.icon_name)==0){ + var icon_sprite=spr_icon,icc=obj_ini.icon; + if (icc<=20) then scr_image("creation",icc,xx+1451+new_banner_x,yy+73,141,141); + if (icc>20){ + icon_sprite=spr_icon_chapters; + icc-=19; + draw_sprite(icon_sprite,icc,xx+1451+new_banner_x,yy+73); + } + } + + draw_set_color(38144); + draw_set_font(fnt_menu); + draw_set_halign(fa_center); + + draw_text(xx+662,yy+17,string_hash_to_newline("Sector "+string(obj_ini.sector_name))); + draw_text(xx+662.5,yy+17.5,string_hash_to_newline("Sector "+string(obj_ini.sector_name))); + + // Checks if you are penitent + if (obj_controller.faction_status[eFACTION.Imperium]!="War"){ + if (penitent_max==0){ + draw_text(xx+887,yy+17,string_hash_to_newline("Loyal")); + draw_text(xx+887,yy+17.5,string_hash_to_newline("Loyal")); + } + if (penitent_max>0){ + var endb=0,endb2=""; + endb=min(0,(((penitent_turn+1)*(penitent_turn+1))-120)*-1); + if (endb<0) then endb2=" "+string(endb); + draw_set_color(c_red); + draw_text(xx+887,yy+17,string_hash_to_newline(string(min(100,floor((penitent_current/penitent_max)*100)))+"% Penitent")); + draw_text(xx+887,yy+17.5,string_hash_to_newline(string(min(100,floor((penitent_current/penitent_max)*100)))+"% Penitent")); + draw_set_color(38144); + // TODO Need a tooltip for here to display the actual amounts + } + } + // Sets you to renegade + if (obj_controller.faction_status[eFACTION.Imperium]=="War"){ + draw_set_color(255); + draw_text(xx+887,yy+17,string_hash_to_newline("Renegade")); + draw_text(xx+887,yy+17.5,string_hash_to_newline("Renegade")); + draw_set_color(38144); + } + // Checks if the chapter name is less than 140 chars, adjusts chapter_master_name_width accordingly + var chapter_master_name_width=1; + for(var i=0; i<10; i++){ + if ((string_width(string_hash_to_newline(string(global.chapter_name)))*chapter_master_name_width)>140) then chapter_master_name_width-=0.1; + } + + draw_text_transformed(xx+1520+new_banner_x,yy+208,string_hash_to_newline(string(global.chapter_name)),chapter_master_name_width,1,0); + draw_text_transformed(xx+1520.5+new_banner_x,yy+208.5,string_hash_to_newline(string(global.chapter_name)),chapter_master_name_width,1,0); + // Shows the date to be displayed + var yf=""; + if (year_fraction<10) then yf="00"+string(year_fraction); + if (year_fraction>=10) and (year_fraction<100) then yf="0"+string(year_fraction); + if (year_fraction>=100) then yf=string(year_fraction); + draw_text(xx+1520+new_banner_x,yy+228,string_hash_to_newline(string(check_number)+" "+string(yf)+" "+string(year)+".M"+string(millenium))); + // Shows the income on the menu + var inc=""; + if (income_last>0) then inc="+"+string(round(income_last)); + if (income_last<0) then inc=string(round(income_last)); + draw_set_font(fnt_40k_14); + draw_set_halign(fa_left); + // Draws the requisition amount + draw_sprite(spr_new_resource,0,xx+14,yy+16); + draw_set_color(16291875); + draw_text(xx+36,yy+16,string_hash_to_newline(string(floor(requisition))+string(inc))); + draw_text(xx+36.5,yy+16.5,string_hash_to_newline(string(floor(requisition))+string(inc))); + // Draws the current loyalty + draw_sprite(spr_new_resource,1,xx+133+32,yy+17); + draw_set_color(1164001); + draw_text(xx+157+32,yy+16,string_hash_to_newline(string(loyalty))); + draw_text(xx+157.5+32,yy+16.5,string_hash_to_newline(string(loyalty))); + // Draws the current gene seed + draw_sprite(spr_new_resource,2,xx+250,yy+17); + draw_set_color(c_red); + draw_text(xx+267,yy+16,string_hash_to_newline(string(gene_seed))); + draw_text(xx+267.5,yy+16.5,string_hash_to_newline(string(gene_seed))); + // Draws the current marines on your command + draw_sprite(spr_new_resource,3,xx+373-10,yy+17); + draw_set_color(16291875); + draw_text(xx+395-10,yy+16,string_hash_to_newline(string(marines)+"/"+string(command))); + draw_text(xx+395.5-10,yy+16.5,string_hash_to_newline(string(marines)+"/"+string(command))); + } + + draw_set_font(fnt_40k_14b); + draw_set_color(c_red); + draw_set_halign(fa_left); + draw_set_alpha(1); + // Sets up debut mode + if (global.cheat_debug == true){ + draw_text((__view_get((0 << 0), 0) + 1124), (__view_get((1 << 0), 0) + 7), string_hash_to_newline("DEBUG MODE")); + } + + script_execute(scr_ui_popup,0,0,0,0,0); + +} diff --git a/objects/obj_controller/Draw_0.gml b/objects/obj_controller/Draw_0.gml index 48053cd40f..4d0fdf4ec1 100644 --- a/objects/obj_controller/Draw_0.gml +++ b/objects/obj_controller/Draw_0.gml @@ -1,6 +1,5 @@ // Draws the main UI menu. The function is used to highlight if you selected something in the menu var l_hei=37,l_why=0; - if (instance_exists(obj_ncombat)) then exit; if (instance_exists(obj_fleet)) then exit; if (global.load>0) then exit; @@ -12,6 +11,11 @@ if (is_test_map==true){ draw_line_width(room_width/2,room_height/2,(room_width/2)+lengthdir_x(3000,terra_direction),(room_height/2)+lengthdir_y(3000,terra_direction),4); draw_set_alpha(1); } +if (is_struct(dungeon)){ + dungeon.draw(); +} else { + controller_standard_draw(); +} // if (instance_exists(obj_turn_end)) then exit; script_execute(scr_ui_manage,0,0,0,0,0); diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml index 9dee6e28b2..0d42ed5028 100644 --- a/scripts/scr_cheatcode/scr_cheatcode.gml +++ b/scripts/scr_cheatcode/scr_cheatcode.gml @@ -28,6 +28,17 @@ function scr_cheatcode(argument0) { forge_queue_logic(); } } + if (cheatcode_string=="dungeon"){ + obj_controller.dungeon = new dungeon_struct(); + squad=obj_ini.squads[5]; + for (var i =0;i-1 && !is_string(selected_unit)){ + var test; + var mem = members[selected_unit]; + var ob = dungeon.current_obstacle.base_data; + var solution = ob.solutions[dungeon.solution]; + for (var t = 0; t0) + } + if (struct_exists(solution, "requirements")){ + var requirements = solution.requirements; + if (struct_exists(requirements,"weapon")){ + var needed_weapon = requirements.weapon; + if (struct_exists(needed_weapon, "name")){ + for (var i=0;i-1 && mem.action_able){ + if (mouse_check_button(mb_left)){ + + } + } + }; + x_depth++; + if (x_depth==4){ + x_depth=0; + y_depth++; + } + } + draw_set_color(c_black); + draw_rectangle(start_x,start_y,start_x+(170*4), start_y+21, 0); + x_depth=0; + y_depth=0; + for (var i=0;i-1){ + if(!members[i].action_able){ + draw_set_alpha(0.7) + draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+250, 0); + } + } + draw_set_alpha(1) + } + } else if (current_view="mission"){ + + } + } + + + map_data_slate.inside_method = function(){ + var xx =map_data_slate.XX; + var yy =map_data_slate.YY; + if (enter_sequence_completed){ + if (!is_string(selected_unit)){ + members[selected_unit].struct.stat_display(true, [xx+unit_data_slate.width, yy+10]); + } + } else { + var cur_fig; + if (!units_set){ + unit_count = array_length(members); + var x_scatter = 0; + var y_scatter = 0; + for (var i=0; i 0 || armour()=="Tartaros"){ + if (array_contains([obj_ini.role[100][5],obj_ini.role[100][7],obj_ini.role[100][19],"Standard Bearer"],role())){ + ui_coloring="bone"; + } + } + } + }else if ((role()==obj_ini.role[100,2] || role()=="Chapter Master")) and (global.chapter_name=="Blood Angels") then ui_coloring="gold"; + // Chaplain + if (IsSpecialist("chap",true)) || (IsSpecialist("apoth",true) && global.chapter_name=="Space Wolves"){ + shader_set_uniform_f(obj_controller.colour_to_set1, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 30/255,30/255,30/255); + // ttrim=0; + specialist_colours=0; + } + + // Apothecary + else if (IsSpecialist("apoth",true) and (global.chapter_name!="Space Wolves")){ + shader_set_uniform_f(obj_controller.colour_to_set1, 255/255,255/255,255/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 255/255,255/255,255/255); + ttrim=0; + specialist_colours=0; + } + + // Techmarine + else if (IsSpecialist("forge",true)){ + shader_set_uniform_f(obj_controller.colour_to_set1, 150/255,0/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 150/255,0/255,0/255); + // pauldron + shader_set_uniform_f(obj_controller.colour_to_set4, 0/255,70/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set5, 200/255,200/255,200/255); + ttrim=1;specialist_colours=0; + } + + // Death Company + else if (role()=="Death Company"){ + shader_set_uniform_f(obj_controller.colour_to_set1, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set3, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set4, 124/255,0/255,0/255);// Lens + shader_set_uniform_f(obj_controller.colour_to_set5, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set6, 30/255,30/255,30/255); + shader_set_uniform_f(obj_controller.colour_to_set7, 124/255,0/255,0/255);// Weapon + ttrim=0; + specialist_colours=0; + + } + // Deathwing + if (ui_coloring="bone"){ + shader_set_uniform_f(obj_controller.colour_to_set1, 229/255,200/255,123/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 229/255,200/255,123/255); + shader_set_uniform_f(obj_controller.colour_to_set3, 229/255,200/255,123/255); + shader_set_uniform_f(obj_controller.colour_to_set5, 229/255,200/255,123/255); + shader_set_uniform_f(obj_controller.colour_to_set6, 229/255,200/255,123/255); + ttrim=0; + specialist_colours=0; + } + + // Blood Angels + else if (ui_coloring="gold"){ + shader_set_uniform_f(obj_controller.colour_to_set1, 166/255,129/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set2, 166/255,129/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set3, 166/255,129/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set5, 166/255,129/255,0/255); + shader_set_uniform_f(obj_controller.colour_to_set6, 166/255,129/255,0/255); + ttrim=0; + specialist_colours=0; + } + } static equipped_artifacts=function(){ artis = [ weapon_one(true), diff --git a/sprites/spr_flamer_new/spr_flamer_new.yy b/sprites/spr_flamer_new/spr_flamer_new.yy index a2e976f0a0..4d9a8d1c6c 100644 --- a/sprites/spr_flamer_new/spr_flamer_new.yy +++ b/sprites/spr_flamer_new/spr_flamer_new.yy @@ -97,7 +97,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"28bcce15-60d9-4378-a728-9c720c2ffaa1","path":"sprites/spr_flamer_new/spr_flamer_new.yy",},},},"Disabled":false,"id":"e70953da-f7e6-4c0e-bd0c-a1821a4a4d21","IsCreationKey":false,"Key":20.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 0, "yorigin": 0, diff --git a/sprites/spr_mar_collision/spr_mar_collision.yy b/sprites/spr_mar_collision/spr_mar_collision.yy index cb30032c6d..2d590359d6 100644 --- a/sprites/spr_mar_collision/spr_mar_collision.yy +++ b/sprites/spr_mar_collision/spr_mar_collision.yy @@ -89,7 +89,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"8045ea39-103b-4f28-ac8f-8c4e6826fbb7","path":"sprites/spr_mar_collision/spr_mar_collision.yy",},},},"Disabled":false,"id":"00599ad0-601a-4cb3-9583-e321154407ec","IsCreationKey":false,"Key":16.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 0, "yorigin": 0, diff --git a/sprites/spr_mar_fire_body1/spr_mar_fire_body1.yy b/sprites/spr_mar_fire_body1/spr_mar_fire_body1.yy index b212ffd617..33f66480a4 100644 --- a/sprites/spr_mar_fire_body1/spr_mar_fire_body1.yy +++ b/sprites/spr_mar_fire_body1/spr_mar_fire_body1.yy @@ -63,7 +63,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"28560d18-6336-4c17-b74a-90012673caf8","path":"sprites/spr_mar_fire_body1/spr_mar_fire_body1.yy",},},},"Disabled":false,"id":"150b7f86-89d2-44f7-b072-e0a61d54d8d4","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_fire_body2/spr_mar_fire_body2.yy b/sprites/spr_mar_fire_body2/spr_mar_fire_body2.yy index 670ef0f372..7f8398a3ad 100644 --- a/sprites/spr_mar_fire_body2/spr_mar_fire_body2.yy +++ b/sprites/spr_mar_fire_body2/spr_mar_fire_body2.yy @@ -63,7 +63,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"43151143-33ae-4b30-b675-230f6d4b65c3","path":"sprites/spr_mar_fire_body2/spr_mar_fire_body2.yy",},},},"Disabled":false,"id":"c415e46f-1c71-4842-9cf3-0191411cba7a","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_fire_body3/spr_mar_fire_body3.yy b/sprites/spr_mar_fire_body3/spr_mar_fire_body3.yy index 075505b620..23174e3d67 100644 --- a/sprites/spr_mar_fire_body3/spr_mar_fire_body3.yy +++ b/sprites/spr_mar_fire_body3/spr_mar_fire_body3.yy @@ -63,7 +63,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"cfb8c2c7-f509-4ab5-9f9d-7d8eeab20312","path":"sprites/spr_mar_fire_body3/spr_mar_fire_body3.yy",},},},"Disabled":false,"id":"b3f3c26e-0b7a-4e8a-8f75-067fb1384a68","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_fire_pauldron1/spr_mar_fire_pauldron1.yy b/sprites/spr_mar_fire_pauldron1/spr_mar_fire_pauldron1.yy index 83bd46a17a..59464e6bb4 100644 --- a/sprites/spr_mar_fire_pauldron1/spr_mar_fire_pauldron1.yy +++ b/sprites/spr_mar_fire_pauldron1/spr_mar_fire_pauldron1.yy @@ -63,7 +63,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"15ca85c2-a667-484b-ad43-0519cbbe3ad6","path":"sprites/spr_mar_fire_pauldron1/spr_mar_fire_pauldron1.yy",},},},"Disabled":false,"id":"b8188cdf-b45d-4742-8d5b-2d124a5dc1ce","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_fire_pauldron2/spr_mar_fire_pauldron2.yy b/sprites/spr_mar_fire_pauldron2/spr_mar_fire_pauldron2.yy index 0a8337e57c..2791faf3c1 100644 --- a/sprites/spr_mar_fire_pauldron2/spr_mar_fire_pauldron2.yy +++ b/sprites/spr_mar_fire_pauldron2/spr_mar_fire_pauldron2.yy @@ -63,7 +63,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"ccd8433e-0945-4f53-abd2-ccc162d812f8","path":"sprites/spr_mar_fire_pauldron2/spr_mar_fire_pauldron2.yy",},},},"Disabled":false,"id":"a9a12232-13cf-430e-8a54-4e19517033eb","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_walk_body1/spr_mar_walk_body1.yy b/sprites/spr_mar_walk_body1/spr_mar_walk_body1.yy index c2810730b2..b1b471392a 100644 --- a/sprites/spr_mar_walk_body1/spr_mar_walk_body1.yy +++ b/sprites/spr_mar_walk_body1/spr_mar_walk_body1.yy @@ -89,7 +89,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"b9fc0b41-f1ab-489a-88ea-11a8bf17698a","path":"sprites/spr_mar_walk_body1/spr_mar_walk_body1.yy",},},},"Disabled":false,"id":"a302f0b2-b45a-46cc-93ed-04b24e2a1c90","IsCreationKey":false,"Key":16.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_walk_body2/spr_mar_walk_body2.yy b/sprites/spr_mar_walk_body2/spr_mar_walk_body2.yy index c18be1a979..e7aa18fe0b 100644 --- a/sprites/spr_mar_walk_body2/spr_mar_walk_body2.yy +++ b/sprites/spr_mar_walk_body2/spr_mar_walk_body2.yy @@ -89,7 +89,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"03f517fd-fe76-4a54-9034-88e734e84398","path":"sprites/spr_mar_walk_body2/spr_mar_walk_body2.yy",},},},"Disabled":false,"id":"098a5439-72b0-4a86-a7e2-83a6aa6b7031","IsCreationKey":false,"Key":16.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_mar_walk_legs1/spr_mar_walk_legs1.yy b/sprites/spr_mar_walk_legs1/spr_mar_walk_legs1.yy index c98eb1849a..29b5215683 100644 --- a/sprites/spr_mar_walk_legs1/spr_mar_walk_legs1.yy +++ b/sprites/spr_mar_walk_legs1/spr_mar_walk_legs1.yy @@ -64,7 +64,7 @@ "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, "playback": 1, "playbackSpeed": 1.0, - "playbackSpeedType": 1, + "playbackSpeedType": 0, "showBackdrop": true, "showBackdropImage": false, "timeUnits": 1, @@ -89,7 +89,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"944eafd1-f8f9-43e7-9123-47a3efe9740b","path":"sprites/spr_mar_walk_legs1/spr_mar_walk_legs1.yy",},},},"Disabled":false,"id":"54d73ba7-6b05-4f08-9a32-204eb788ec2c","IsCreationKey":false,"Key":16.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 10, "yorigin": 36, diff --git a/sprites/spr_ork_target/spr_ork_target.yy b/sprites/spr_ork_target/spr_ork_target.yy index 75568ea6e5..7daed8ebaa 100644 --- a/sprites/spr_ork_target/spr_ork_target.yy +++ b/sprites/spr_ork_target/spr_ork_target.yy @@ -57,7 +57,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"da401b80-f220-4151-8235-7d11983b9b40","path":"sprites/spr_ork_target/spr_ork_target.yy",},},},"Disabled":false,"id":"5209f4b7-620f-415b-8e5a-03ade6474c7b","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 25, "yorigin": 30, diff --git a/sprites/spr_wings/spr_wings.yy b/sprites/spr_wings/spr_wings.yy index 40beafb2c4..15c7c9411a 100644 --- a/sprites/spr_wings/spr_wings.yy +++ b/sprites/spr_wings/spr_wings.yy @@ -57,7 +57,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"633f09f2-db3b-4b35-afd5-d04b2ce031b9","path":"sprites/spr_wings/spr_wings.yy",},},},"Disabled":false,"id":"e9592866-0134-4230-8307-ca1670527c95","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 0, "yorigin": 0, diff --git a/sprites/sprite269/sprite269.yy b/sprites/sprite269/sprite269.yy index d87b4547aa..6e8e095bbd 100644 --- a/sprites/sprite269/sprite269.yy +++ b/sprites/sprite269/sprite269.yy @@ -89,7 +89,7 @@ {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"9c2ea474-5efe-4235-a8c1-c50e3d076bfd","path":"sprites/sprite269/sprite269.yy",},},},"Disabled":false,"id":"ffc3fc14-3204-43b7-87af-21d871c970d3","IsCreationKey":false,"Key":16.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], - "visibleRange": {"x":0.0,"y":0.0,}, + "visibleRange": null, "volume": 1.0, "xorigin": 0, "yorigin": 0, From eeedf9453da337ed60cd4594acc91c3f33d2da02 Mon Sep 17 00:00:00 2001 From: Nelsonh Date: Sun, 3 Mar 2024 21:40:27 +0000 Subject: [PATCH 03/73] good ui --- scripts/scr_cheatcode/scr_cheatcode.gml | 6 +- .../scr_draw_unit_image.gml | 2 +- .../scr_draw_unit_stat_data.gml | 95 +++++- scripts/scr_dungeon/scr_dungeon.gml | 292 +++++++++++++----- .../scr_marine_struct/scr_marine_struct.gml | 42 +-- 5 files changed, 328 insertions(+), 109 deletions(-) diff --git a/scripts/scr_cheatcode/scr_cheatcode.gml b/scripts/scr_cheatcode/scr_cheatcode.gml index 0d42ed5028..7c8d8b5fb6 100644 --- a/scripts/scr_cheatcode/scr_cheatcode.gml +++ b/scripts/scr_cheatcode/scr_cheatcode.gml @@ -32,11 +32,7 @@ function scr_cheatcode(argument0) { obj_controller.dungeon = new dungeon_struct(); squad=obj_ini.squads[5]; for (var i =0;i-1 && !is_string(selected_unit)){ var test; var mem = members[selected_unit]; @@ -50,7 +80,7 @@ function dungeon_struct() constructor{ if (struct_exists(test.modifiers,"weapon")){ var weapon_mods = test.modifiers.weapon if (struct_exists(weapon_mods, "tag")){ - for (var s=0;s) + //for (var s=0;s) } } } @@ -132,8 +162,8 @@ function dungeon_struct() constructor{ unit_data_slate.inside_method = function(){ selected_unit = "none"; var unit, mem; - var xx =__view_get( e__VW.XView, 0 ); - var yy =__view_get( e__VW.YView, 0 ); + var xx =unit_data_slate.XX; + var yy =unit_data_slate.YY; var x_depth=0; var y_depth=0; var _draw_colour = c_red; @@ -151,58 +181,130 @@ function dungeon_struct() constructor{ var start_x =mis_obj_cords[0]+50; var health_bar; if (current_view=="unit"){ - var unit_draw = [0,0]; - var banner_x_scale = (166/161); - var banner_y_scale = (271/198)/2; - for (var i=0;i-1 && mem.action_able){ + if (unit_data_slate.individual_display>-1 && (unit_data_slate.individual_view_sequence<21 || unit_data_slate.individual_view_sequence>21)) then unit_data_slate.individual_view_sequence++; + if (unit_data_slate.individual_view_sequence<11 || unit_data_slate.individual_view_sequence>32){ + var unit_draw = [0,0]; + var banner_x_scale = (166/161); + var banner_y_scale = (271/198)/2; + for (var i=0;i-1 && selected_unit != i) + if (point_in_rectangle(mouse_x, mouse_y, unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+271)){ + selected_unit=i; + //unit_data_slate.individual_view_sequence++; if (mouse_check_button(mb_left)){ - + unit_data_slate.individual_display = i; + unit_data_slate.individual_view_sequence = 0; } - } - }; - x_depth++; - if (x_depth==4){ - x_depth=0; - y_depth++; - } - } - draw_set_color(c_black); - draw_rectangle(start_x,start_y,start_x+(170*4), start_y+21, 0); - x_depth=0; - y_depth=0; - for (var i=0;i-1 && mem.action_able){ + if (mouse_check_button(mb_left)){ + action_unit = i; + } + } + }; + x_depth++; + if (x_depth==4){ + x_depth=0; + y_depth++; + } } - if (dungeon.solution>-1){ - if(!members[i].action_able){ - draw_set_alpha(0.7) - draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+250, 0); + draw_set_color(c_black); + draw_rectangle(start_x,start_y,start_x+(170*4), start_y+21, 0); + x_depth=0; + y_depth=0; + for (var i=0;i-1){ + if(!members[i].action_able){ + draw_set_alpha(0.7) + draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+250, 0); + } + } + draw_set_alpha(1) + if (unit_data_slate.individual_display>-1 && unit_data_slate.individual_view_sequence<11){ + if (unit_data_slate.individual_display!=i){ + draw_set_color(c_black); + draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+21 + (25*unit_data_slate.individual_view_sequence), 0); + } + } else if (unit_data_slate.individual_view_sequence>32){ + if (unit_data_slate.individual_display!=i){ + draw_set_color(c_black); + draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166,unit_draw[1]+21 + (25*(10-(unit_data_slate.individual_view_sequence-32))), 0); + } + } + if (selected_unit == i && unit_data_slate.individual_view_sequence<11){ + draw_set_color(c_yellow); + draw_set_alpha(1); + draw_rectangle(unit_draw[0], unit_draw[1]+21, unit_draw[0]+166, unit_draw[1]+271, 1); + draw_set_alpha(0.75); + draw_rectangle(unit_draw[0]-1, unit_draw[1]+20, unit_draw[0]+167, unit_draw[1]+272, 1); + draw_set_alpha(0.5); + draw_rectangle(unit_draw[0]-2, unit_draw[1]+19, unit_draw[0]+168, unit_draw[1]+273, 1); + draw_set_alpha(0.25); + draw_rectangle(unit_draw[0]-3, unit_draw[1]+18, unit_draw[0]+169, unit_draw[1]+274, 1); + draw_set_alpha(1); + draw_set_color(c_black); + if (unit_data_slate.individual_view_sequence == 10){ + mem = members[unit_data_slate.individual_display]; + mem.current_draw_loc = [unit_draw[0]-xx,unit_draw[1]-yy]; + mem.return_point = [unit_draw[0]-xx,unit_draw[1]-yy]; + var targ_x = xx+(unit_data_slate.width/2)-133; + var targ_y = start_y+21; + var increment_x = (targ_x-unit_draw[0])/10; + var increment_y = (targ_y-unit_draw[1])/10; + mem.draw_increments = [increment_x,increment_y]; + } + } + if (unit_data_slate.individual_view_sequence==42){ + unit_data_slate.individual_view_sequence=0; + unit_data_slate.individual_display=-1; + } } - draw_set_alpha(1) + } else if (unit_data_slate.individual_view_sequence>10 && unit_data_slate.individual_view_sequence<=20){ + unit = members[unit_data_slate.individual_display].struct; + mem = members[unit_data_slate.individual_display]; + mem.current_draw_loc[0] += mem.draw_increments[0]; + mem.current_draw_loc[1] += mem.draw_increments[1]; + unit.draw_unit_image(mem.current_draw_loc[0], mem.current_draw_loc[1], 38144,xx,yy); + var seq = (unit_data_slate.individual_view_sequence-10)/10; + mem.dungeon_data_panel(mem.current_draw_loc[0]+xx+(166*(seq)), mem.current_draw_loc[1]+yy+(135)); + }else if (unit_data_slate.individual_view_sequence>22 && unit_data_slate.individual_view_sequence<=32){ + unit = members[unit_data_slate.individual_display].struct; + mem = members[unit_data_slate.individual_display]; + mem.current_draw_loc[0] -= mem.draw_increments[0]; + mem.current_draw_loc[1] -= mem.draw_increments[1]; + unit.draw_unit_image(mem.current_draw_loc[0], mem.current_draw_loc[1], 38144,xx,yy); + var seq = (10-(unit_data_slate.individual_view_sequence-22))/10; + mem.dungeon_data_panel(mem.current_draw_loc[0]+xx+(166*(seq)), mem.current_draw_loc[1]+yy+(135)); + }else { + unit = members[unit_data_slate.individual_display].struct; + mem = members[unit_data_slate.individual_display]; + unit.draw_unit_image(mem.current_draw_loc[0], mem.current_draw_loc[1], 38144,xx,yy); + mem.dungeon_data_panel(mem.current_draw_loc[0]+xx+(166), mem.current_draw_loc[1]+yy+(135)); + draw_set_color(c_gray); + draw_set_halign(fa_center); + draw_set_font(fnt_40k_14b); + draw_text_transformed(xx+mem.current_draw_loc[0]+100,mem.current_draw_loc[1]+yy-30,string_hash_to_newline(unit.name_role()),1.5,1.5,0); + draw_set_halign(fa_left); + if (point_and_click(draw_unit_buttons([xx+50,mem.current_draw_loc[1]+yy-30],"<----",[1.5,1.5],c_red))){ + unit_data_slate.individual_view_sequence = 22; + } + unit.stat_display(false,[xx+130,yy+430]); } } else if (current_view="mission"){ @@ -213,9 +315,9 @@ function dungeon_struct() constructor{ map_data_slate.inside_method = function(){ var xx =map_data_slate.XX; var yy =map_data_slate.YY; - if (enter_sequence_completed){ + if (enter_sequence_completed || dungeon.solution>-1){ if (!is_string(selected_unit)){ - members[selected_unit].struct.stat_display(true, [xx+unit_data_slate.width, yy+10]); + members[selected_unit].struct.stat_display(true, [xx+20, yy+10]); } } else { var cur_fig; @@ -255,43 +357,55 @@ function dungeon_struct() constructor{ xx=decision_data_slate.XX; yy = decision_data_slate.YY; var ob = dungeon.current_obstacle.base_data; - draw_set_halign(fa_center); - draw_text_ext(xx+(decision_data_slate.width/2), yy+40, ob.description, -1, decision_data_slate.width-50); - solutions_found = 0; - y_tier=0; - if (obs_calcs = false){ - for (var i=0;i