diff --git a/ChapterMaster.yyp b/ChapterMaster.yyp index e8dac67a17..788d638b4b 100644 --- a/ChapterMaster.yyp +++ b/ChapterMaster.yyp @@ -932,6 +932,7 @@ {"id":{"name":"spr_bionics_eye","path":"sprites/spr_bionics_eye/spr_bionics_eye.yy",},}, {"id":{"name":"spr_bionics_arm","path":"sprites/spr_bionics_arm/spr_bionics_arm.yy",},}, {"id":{"name":"scr_enemy_ai_c","path":"scripts/scr_enemy_ai_c/scr_enemy_ai_c.yy",},}, + {"id":{"name":"spr_ship_back_white","path":"sprites/spr_ship_back_white/spr_ship_back_white.yy",},}, {"id":{"name":"scr_enemy_ai_d","path":"scripts/scr_enemy_ai_d/scr_enemy_ai_d.yy",},}, {"id":{"name":"scr_enemy_ai_e","path":"scripts/scr_enemy_ai_e/scr_enemy_ai_e.yy",},}, {"id":{"name":"scr_mission_reward","path":"scripts/scr_mission_reward/scr_mission_reward.yy",},}, diff --git a/objects/obj_controller/Mouse_50.gml b/objects/obj_controller/Mouse_50.gml index b05e8ca1fe..ad3549e334 100644 --- a/objects/obj_controller/Mouse_50.gml +++ b/objects/obj_controller/Mouse_50.gml @@ -167,7 +167,8 @@ else if (menu==15) and (cooldown<=0){ } } // ** Fleet count ** -if (menu==16) and (cooldown<=0){ +// Moved to scr_fleet_advisor(); +/* if (menu==16) and (cooldown<=0){ var i=ship_current; for(var j=0; j<34; j++){ i+=1; @@ -191,7 +192,7 @@ if (menu==16) and (cooldown<=0){ } } } -} +} */ // ** Diplomacy ** diff --git a/scripts/scr_fleet_advisor/scr_fleet_advisor.gml b/scripts/scr_fleet_advisor/scr_fleet_advisor.gml index 582aed47ed..d36dcf5aa9 100644 --- a/scripts/scr_fleet_advisor/scr_fleet_advisor.gml +++ b/scripts/scr_fleet_advisor/scr_fleet_advisor.gml @@ -54,7 +54,7 @@ function scr_fleet_advisor(){ va = real(temp[42]); if (va = 2) then blurp += " Two of our ships are highly damaged. You may wish to purchase a Repair License from the Sector Governerner."; if (va > 2) then blurp += " Several of our ships are highly damaged. It is advisable that you purchase a Repair License from the Sector Governer."; - blurp += "##Here are the current positions of our ships and their contents:"; + blurp += "\n\nHere are the current positions of our ships and their contents:"; if (menu_adept = 1) { blurp = string_replace(blurp, "Our", "Your"); @@ -66,24 +66,123 @@ function scr_fleet_advisor(){ draw_set_font(fnt_40k_30b); draw_set_halign(fa_center); - draw_text_transformed(xx + 1262, yy + 70, "Fleet", 0.6, 0.6, 0); + draw_text_transformed(xx + 1262, yy + 40, "Fleet", 0.6, 0.6, 0); draw_set_font(fnt_40k_14); draw_set_halign(fa_left); var cn = obj_controller; + // TODO: Probably a good idea to turn this whole interactive list/sheet generating logic into a constructor, that can be reused on many screens. + // I have no passion for this atm. if (instance_exists(cn)) { + var _header_offset = 80; + var _row_height = 20; + var _row_gap = 2; + var _columns = { + name: { + w: 176, + text: "Name", + h_align: fa_left, + }, + class: { + w: 154, + text: "Class", + h_align: fa_left, + }, + location: { + w: 130, + text: "Location", + h_align: fa_left, + }, + hp: { + w: 44, + text: "HP", + h_align: fa_right, + }, + carrying: { + w: 84, + text: "Carrying", + h_align: fa_right, + }, + }; + + var _column_x = xx + 953; + var _columns_array = ["name", "class", "location", "hp", "carrying"]; + + for (var i = 0; i < array_length(_columns_array); i++) { + with(_columns[$ _columns_array[i]]) { + x1 = _column_x; + _column_x += w; + x2 = x1 + w; + y1 = yy + _header_offset; + header_y = (y1 - 2); + switch (h_align) { + case fa_right: + header_x = x2; + break; + case fa_center: + header_x = (x1 + x2) / 2; + break; + case fa_left: + default: + header_x = x1; + break; + } + draw_set_halign(h_align); + draw_text(header_x, header_y, text); + } + } + draw_set_halign(fa_left); + for (var i = ship_current; i < ship_current + 34; i++) { if (obj_ini.ship[i] != "") { - draw_rectangle(xx + 950, yy + 80 + (i * 20), xx + 1546, yy + 100 + (i * 20), 1); - draw_sprite(spr_view_small, 0, xx + 953, yy + 84 + (i * 20)); - draw_text(xx + 970, yy + 80 + (i * 20), $"{obj_ini.ship[i]} ( {obj_ini.ship_class[i]} )"); - draw_text(xx + 1222, yy + 80 + (i * 20), obj_ini.ship_location[i]); - draw_text(xx + 1372, yy + 80 + (i * 20), $"{round((obj_ini.ship_hp[i] / obj_ini.ship_maxhp[i]) * 100)}% HP"); - draw_text(xx + 1450, yy + 80 + (i * 20),$"{obj_ini.ship_carrying[i]} / {obj_ini.ship_capacity[i]} Space"); - - if scr_hit(xx + 950,yy + 80 + (i * 20),xx + 1546,yy + 100 + (i * 20)) { + var _row_y = yy + _header_offset + (i * (_row_height + _row_gap)); + draw_rectangle(xx + 950, _row_y, xx + 1546, _row_y + _row_height, 1); + + var _goto_button = { + x1: _columns.location.x1 - 20, + y1: _row_y + 4, + sprite: spr_view_small, + click: function() { + return point_and_click([x1, y1, x2, y2]); + } + }; + with(_goto_button) { + w = sprite_get_width(sprite); + h = sprite_get_height(sprite); + x2 = x1 + w; + y2 = y1 + h; + draw_sprite(sprite, 0, x1, y1); + } + + with(_columns) { + name.contents = string_truncate(obj_ini.ship[i], _columns.name.w - 6); + class.contents = obj_ini.ship_class[i]; + location.contents = obj_ini.ship_location[i]; + hp.contents = $"{round(obj_ini.ship_hp[i] / obj_ini.ship_maxhp[i] * 100)}%"; + carrying.contents = $"{obj_ini.ship_carrying[i]}/{obj_ini.ship_capacity[i]}"; + } + + for (var g = 0; g < array_length(_columns_array); g++) { + with(_columns[$ _columns_array[g]]) { + draw_set_halign(h_align); + switch (h_align) { + case fa_right: + draw_text(x2, _row_y, contents); + break; + case fa_center: + draw_text((x1 + x2) / 2, _row_y, contents); + break; + case fa_left: + default: + draw_text(x1, _row_y, contents); + break; + } + } + } + + if scr_hit(xx + 950, _row_y, xx + 1546, yy + 100 + (i * (_row_height + _row_gap))) { if (cn.temp[101] != obj_ini.ship[i]) { cn.temp[101] = obj_ini.ship[i]; cn.temp[102] = obj_ini.ship_class[i]; @@ -112,6 +211,29 @@ function scr_fleet_advisor(){ cn.temp[119] = ""; if (obj_ini.ship_carrying[i] > 0) then cn.temp[119] = scr_ship_occupants(i); } + tooltip_draw($"Carrying ({cn.temp[118]}): {cn.temp[119]}"); + if (_goto_button.click()) { + obj_controller.temp[40] = obj_ini.ship[i]; + with(obj_p_fleet) { + for (var k = 0; k <= 40; k++) { + if (capital[k] == obj_controller.temp[40]) then instance_create(x, y, obj_temp7); + if (frigate[k] == obj_controller.temp[40]) then instance_create(x, y, obj_temp7); + if (escort[k] == obj_controller.temp[40]) then instance_create(x, y, obj_temp7); + } + } + if (instance_exists(obj_temp7)) { + obj_controller.x = obj_temp7.x; + obj_controller.y = obj_temp7.y; + obj_controller.menu = 0; + with(obj_fleet_show) { + instance_destroy(); + } + instance_create(obj_temp7.x, obj_temp7.y, obj_fleet_show); + with(obj_temp7) { + instance_destroy(); + } + } + } } } } @@ -120,53 +242,50 @@ function scr_fleet_advisor(){ draw_set_font(fnt_40k_30b); draw_set_halign(fa_center); draw_text_transformed(xx + 622, yy + 434, cn.temp[101], 0.75, 0.75, 0); - draw_text_transformed(xx + 622, yy + 460, cn.temp[102], 0.5, 0.5, 0); + draw_text_transformed(xx + 622, yy + 464, cn.temp[102], 0.5, 0.5, 0); - draw_set_color(c_white); - draw_rectangle(xx + 498, yy + 492, xx + 746, yy + 623, 0); + draw_set_color(c_gray); + draw_rectangle(xx + 488, yy + 492, xx + 756, yy + 634, 1); var ships = ["Battle Barge", "Strike Cruiser","Gladius","Hunter"]; var ship_im = 0; for (var i=0;i","resourceVersion":"1.0","Keyframes":[ - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"10f0ca68-908b-4ee5-a040-ed1074c658aa","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"654701c3-6eb9-47f9-9729-f9ec8b8946dd","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"a6e533e7-1d01-4d43-960a-686a504f379c","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"95dba8bc-79f2-46a9-a56e-f88d685c2fa0","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"e96b4c09-4610-40c7-98ef-c4e76a16cb01","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"ea91669d-8b1b-4d0a-99de-644704ff5f64","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,}, - {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"6589492c-ec33-4530-b55f-16489df31ff4","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"aadbc57c-c6db-4aff-bd66-cb738d401a26","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"41b410c3-01c1-440c-bd9d-40498f3ee679","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"d5b49c97-eb68-44d9-85f7-56308f784f56","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"00dd47db-65d6-4276-90cd-12c8e6708bcc","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"6a3f9dfb-09e6-49d7-9e49-459c61fb20c5","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"f84f2a39-f16e-4874-809b-e99be35df387","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"439c05d6-5612-440b-bd9b-3221d09bd73b","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"7f115bba-8dfa-467c-b850-6053b3321a30","path":"sprites/spr_ship_back_black/spr_ship_back_black.yy",},},},"Disabled":false,"id":"0b8203b0-1a34-40c1-b27e-a6d7d549bb87","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange": null, @@ -76,5 +76,5 @@ }, "type": 0, "VTile": false, - "width": 400, + "width": 268, } \ No newline at end of file diff --git a/sprites/spr_ship_back_white/1aa71696-4ad5-412d-9f14-342cd38f5631.png b/sprites/spr_ship_back_white/1aa71696-4ad5-412d-9f14-342cd38f5631.png new file mode 100644 index 0000000000..945e78504e Binary files /dev/null and b/sprites/spr_ship_back_white/1aa71696-4ad5-412d-9f14-342cd38f5631.png differ diff --git a/sprites/spr_ship_back_white/36a2218b-dff1-41ce-890d-520e37171b31.png b/sprites/spr_ship_back_white/36a2218b-dff1-41ce-890d-520e37171b31.png new file mode 100644 index 0000000000..5666689ccf Binary files /dev/null and b/sprites/spr_ship_back_white/36a2218b-dff1-41ce-890d-520e37171b31.png differ diff --git a/sprites/spr_ship_back_white/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf.png b/sprites/spr_ship_back_white/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf.png new file mode 100644 index 0000000000..286269ecbe Binary files /dev/null and b/sprites/spr_ship_back_white/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf.png differ diff --git a/sprites/spr_ship_back_white/965b4909-9ecd-4504-9ac1-ad7559c50805.png b/sprites/spr_ship_back_white/965b4909-9ecd-4504-9ac1-ad7559c50805.png new file mode 100644 index 0000000000..93ef6c56c0 Binary files /dev/null and b/sprites/spr_ship_back_white/965b4909-9ecd-4504-9ac1-ad7559c50805.png differ diff --git a/sprites/spr_ship_back_white/layers/1aa71696-4ad5-412d-9f14-342cd38f5631/276d1ded-ec39-4e71-8b4a-c08caccf9599.png b/sprites/spr_ship_back_white/layers/1aa71696-4ad5-412d-9f14-342cd38f5631/276d1ded-ec39-4e71-8b4a-c08caccf9599.png new file mode 100644 index 0000000000..5609c03dc9 Binary files /dev/null and b/sprites/spr_ship_back_white/layers/1aa71696-4ad5-412d-9f14-342cd38f5631/276d1ded-ec39-4e71-8b4a-c08caccf9599.png differ diff --git a/sprites/spr_ship_back_white/layers/36a2218b-dff1-41ce-890d-520e37171b31/276d1ded-ec39-4e71-8b4a-c08caccf9599.png b/sprites/spr_ship_back_white/layers/36a2218b-dff1-41ce-890d-520e37171b31/276d1ded-ec39-4e71-8b4a-c08caccf9599.png new file mode 100644 index 0000000000..b2563c7b09 Binary files /dev/null and b/sprites/spr_ship_back_white/layers/36a2218b-dff1-41ce-890d-520e37171b31/276d1ded-ec39-4e71-8b4a-c08caccf9599.png differ diff --git a/sprites/spr_ship_back_white/layers/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf/276d1ded-ec39-4e71-8b4a-c08caccf9599.png b/sprites/spr_ship_back_white/layers/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf/276d1ded-ec39-4e71-8b4a-c08caccf9599.png new file mode 100644 index 0000000000..a0d9de4a72 Binary files /dev/null and b/sprites/spr_ship_back_white/layers/5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf/276d1ded-ec39-4e71-8b4a-c08caccf9599.png differ diff --git a/sprites/spr_ship_back_white/layers/965b4909-9ecd-4504-9ac1-ad7559c50805/276d1ded-ec39-4e71-8b4a-c08caccf9599.png b/sprites/spr_ship_back_white/layers/965b4909-9ecd-4504-9ac1-ad7559c50805/276d1ded-ec39-4e71-8b4a-c08caccf9599.png new file mode 100644 index 0000000000..830a7a2dcc Binary files /dev/null and b/sprites/spr_ship_back_white/layers/965b4909-9ecd-4504-9ac1-ad7559c50805/276d1ded-ec39-4e71-8b4a-c08caccf9599.png differ diff --git a/sprites/spr_ship_back_white/spr_ship_back_white.yy b/sprites/spr_ship_back_white/spr_ship_back_white.yy new file mode 100644 index 0000000000..87038c0d49 --- /dev/null +++ b/sprites/spr_ship_back_white/spr_ship_back_white.yy @@ -0,0 +1,80 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "spr_ship_back_white", + "bbox_bottom": 116, + "bbox_left": 11, + "bbox_right": 255, + "bbox_top": 25, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"1aa71696-4ad5-412d-9f14-342cd38f5631",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"36a2218b-dff1-41ce-890d-520e37171b31",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf",}, + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"965b4909-9ecd-4504-9ac1-ad7559c50805",}, + ], + "gridX": 0, + "gridY": 0, + "height": 142, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"276d1ded-ec39-4e71-8b4a-c08caccf9599","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 0, + "parent": { + "name": "Ships", + "path": "folders/Sprites/Ships.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "spr_ship_back_white", + "autoRecord": true, + "backdropHeight": 768, + "backdropImageOpacity": 0.5, + "backdropImagePath": "", + "backdropWidth": 1366, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "events": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "eventStubScript": null, + "eventToFunction": {}, + "length": 4.0, + "lockOrigin": false, + "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "showBackdrop": true, + "showBackdropImage": false, + "timeUnits": 1, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[ + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"1aa71696-4ad5-412d-9f14-342cd38f5631","path":"sprites/spr_ship_back_white/spr_ship_back_white.yy",},},},"Disabled":false,"id":"7305107d-cd32-473d-89ec-c95e03ea3123","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"36a2218b-dff1-41ce-890d-520e37171b31","path":"sprites/spr_ship_back_white/spr_ship_back_white.yy",},},},"Disabled":false,"id":"0746d0f4-e483-44c7-b37f-73d286bbe7f1","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"5af2c4c0-c4b0-47ad-a7f1-8ec1d4aea4cf","path":"sprites/spr_ship_back_white/spr_ship_back_white.yy",},},},"Disabled":false,"id":"f452a7af-801c-4f84-b0f4-dc73532f0037","IsCreationKey":false,"Key":2.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"965b4909-9ecd-4504-9ac1-ad7559c50805","path":"sprites/spr_ship_back_white/spr_ship_back_white.yy",},},},"Disabled":false,"id":"6d495220-6a63-4ead-840b-771b34989d14","IsCreationKey":false,"Key":3.0,"Length":1.0,"Stretch":false,}, + ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange": null, + "volume": 1.0, + "xorigin": 0, + "yorigin": 0, + }, + "swatchColours": null, + "swfPrecision": 2.525, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "type": 0, + "VTile": false, + "width": 268, +} \ No newline at end of file