Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 9 additions & 27 deletions objects/obj_fleet_select/Draw_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -84,30 +84,8 @@ if (owner == eFACTION.Player) and (player_fleet.action==""){


if (sys_dist<32) and (sys.id!=mine.id){
var has_capitals = false;
var has_frigates = false;
var has_escorts = false;
with (player_fleet){
for (i=0; i<array_length(capital);i++){
if(capital[i]!="" && capital_sel[i]){
has_capitals=true
break;
}
}
for (i=0; i<array_length(frigate);i++){
if(frigate[i]!="" && frigate_sel[i]){
has_frigates=true
break;
}
}
for (i=0; i<array_length(escort);i++){
if(escort[i]!="" && escort_sel[i]){
has_escorts=true
break;
}
}
}
var selection_travel_speed = calculate_action_speed(has_capitals,has_frigates,has_escorts);

var selection_travel_speed = calculate_action_speed(player_fleet,true);
player_fleet.action_spd = selection_travel_speed;
if (is_array(star_travel)){
star_travel = new FastestRouteAlgorithm(mine.x,mine.y,sys.x,sys.y, player_fleet);
Expand All @@ -134,11 +112,15 @@ if (owner == eFACTION.Player) and (player_fleet.action==""){
eta = "ETA "+string(eta) + "#Press SHIFT to ignore way points";
var speed_string = "";
var viable=true;
if (!has_capitals){
var types = [0,0,0];
with (player_fleet){
types = selected_ship_types();
}
if (!types[0]){
speed_string = "#Speed bonus *1.25 frigates and smaller";
if (!has_frigates){
if (!types[1]){
speed_string = "#Speed bonus *1.75 Escort fleet"
if (!has_escorts){
if (!types[2]){
speed_string = "#No Ships Selected"
viable=false;
}
Expand Down
2 changes: 1 addition & 1 deletion objects/obj_p_fleet/Step_0.gml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if (action!="") and (orbiting!=0){
orbiting=0;
}

action_spd = calculate_action_speed(capital_number,frigate_number,escort_number);
action_spd = calculate_action_speed();

if (ii_check=0){set_player_fleet_image()}

Expand Down
46 changes: 34 additions & 12 deletions scripts/scr_fleet_functions/scr_fleet_functions.gml
Original file line number Diff line number Diff line change
Expand Up @@ -225,19 +225,41 @@ function calculate_fleet_eta(xx,yy,xxx,yyy, fleet_speed,star1=true, star2=true,w
}




function calculate_action_speed(capitals=true, frigates=true, escorts=true){
var fleet_speed=128;
if (capitals>0){
fleet_speed=100;
} else if (frigates>0){
fleet_speed=128;
}else if (escorts>0){
fleet_speed=174;
function calculate_action_speed(fleet="none", selected=false){
if (fleet=="none"){
var capitals=0,frigates=0,escorts=0,i;
var _is_player_fleet = object_index==obj_p_fleet;
if (_is_player_fleet){
if (!selected){
player_fleet_ship_count();
capitals=capital_number;
frigates=frigate_number;
escorts=escort_number;
} else{
//TODO extract to a fleet selected function
var types = selected_ship_types();
capitals=types[0];
frigates=types[1];
escorts=types[2];
}
}
var fleet_speed=128;
if (capitals>0){
fleet_speed=100;
} else if (frigates>0){
fleet_speed=128;
}else if (escorts>0){
fleet_speed=174;
}
if (_is_player_fleet){
if (obj_controller.stc_ships>=6) and (fleet_speed>=100) then fleet_speed*=1.2;
}
return fleet_speed;
} else {
with (fleet){
return calculate_action_speed(,selected);
}
}
if (obj_controller.stc_ships>=6) and (fleet_speed>=100) then fleet_speed*=1.2;
return fleet_speed;
}

function scr_efleet_arrive_at_trade_loc(){
Expand Down
29 changes: 26 additions & 3 deletions scripts/scr_player_fleet_functions/scr_player_fleet_functions.gml
Original file line number Diff line number Diff line change
Expand Up @@ -166,21 +166,21 @@ function fleet_full_ship_array(fleet="none", exclude_capitals=false, exclude_fri
var i;
if (fleet=="none"){
if (!exclude_capitals){
for (i=1; i<=capital_number;i++){
for (i=0; i<=capital_number;i++){
if (i>=0 && i < array_length(capital_num)){
array_push(all_ships, capital_num[i]);
}
}
}
if (!exclude_frigates){
for (i=1; i<=frigate_number;i++){
for (i=0; i<=frigate_number;i++){
if (i>=0 && i < array_length(frigate_num)){
array_push(all_ships, frigate_num[i]);
}
}
}
if (!exclude_escorts){
for (i=1; i<=escort_number;i++){
for (i=0; i<=escort_number;i++){
if (i>=0 && i < array_length(escort_num)){
array_push(all_ships, escort_num[i]);
}
Expand All @@ -203,6 +203,29 @@ function set_fleet_location(location){
}
}
}

function selected_ship_types(){
var capitals=0,frigates=0,escorts=0,i;
for (i=0; i<array_length(capital);i++){
if(capital[i]!="" && capital_sel[i]){
capitals=true
break;
}
}
for (i=0; i<array_length(frigate);i++){
if(frigate[i]!="" && frigate_sel[i]){
frigates=true
break;
}
}
for (i=0; i<array_length(escort);i++){
if(escort[i]!="" && escort_sel[i]){
escorts=true
break;
}
}
return [capitals,frigates,escorts];
}
function player_fleet_ship_count(fleet="none"){
var ship_count = 0;
if (fleet=="none"){
Expand Down