Skip to content

Instantly share code, notes, and snippets.

@Rio6
Last active December 28, 2021 23:00
Show Gist options
  • Save Rio6/ca6b9e3dfdcf5f8c64f3720b9b1237a3 to your computer and use it in GitHub Desktop.
Save Rio6/ca6b9e3dfdcf5f8c64f3720b9b1237a3 to your computer and use it in GitHub Desktop.
A menu that lets you copy all your fleets to another account. Note: the overwrite button overwrites all fleets in the target account, not just one fleet.
// edited from original copy page so it only copies the fleets
//
(function() {
ui.copyPage = function() {
return ui.inScreen("menu", "Copy Import/Export", function() {
onecup.padding_bottom(100);
onecup.position("relative");
onecup.textarea("#commanderCode", function() {
onecup.position("absolute");
onecup.top(70);
onecup.left(10);
onecup.width(500);
onecup.bottom(60);
onecup.border("1px solid rgba(255,255,255,.3)");
onecup.background_color("rgba(0,0,0,.3)");
onecup.color("rgba(255,255,255,.9)");
onecup.font_size(8);
//return onecup.text(commander.fleet);
return onecup.text(JSON.stringify(commander.fleet));
});
onecup.div(".hover-black", function() {
onecup.position("absolute");
onecup.bottom(10);
onecup.left(10);
onecup.height(40);
onecup.width(245);
onecup.color("white");
onecup.font_size(20);
onecup.text_align("center");
onecup.line_height(40);
onecup.text("Overwrite");
return onecup.onclick(function() {
var data, json;
console.log("here");
data = onecup.lookup('#commanderCode').value;
json = JSON.parse(data);
//window.commander = json;
window.commander.fleet = json;
//console.log("local save");
//commander.ts = Date.now();
//db.save("commander", commander);
//rootNet?.sendPlayer()
account.rootSave();
//return location.reload();
ui.go("menu");
});
});
return onecup.div(".hover-black", function() {
onecup.position("absolute");
onecup.bottom(10);
onecup.left(255);
onecup.height(40);
onecup.width(245);
onecup.color("white");
onecup.font_size(20);
onecup.text_align("center");
onecup.line_height(40);
onecup.text("Merge");
return onecup.onclick(function() {
var createMergedFleets = function(fleetA, fleetB) {
if(!fleetA) return fleetB;
if(!fleetB) return fleetA;
var newFleet = {ais: {}, selection: fleetA.selection};
var index = 0;
for(let fleet of [fleetA, fleetB]) {
let keyTable = {};
for(let i in fleet) {
if(fleet[i] && /[0-9]+,[0-9]+/.test(i)) {
let tmp = i.split(","), row = tmp[0], col = tmp[1];
if(!keyTable[row]) {
keyTable[row] = index++;
}
let key = keyTable[row] + "," + col;
newFleet[key] = fleet[i];
}
}
for(let i in fleet.ais) {
if(typeof keyTable[i] !== "undefined")
newFleet.ais[keyTable[i]] = fleet.ais[i];
}
}
return newFleet;
};
var data, json;
console.log("here");
data = onecup.lookup('#commanderCode').value;
json = JSON.parse(data);
var newFleet = createMergedFleets(window.commander.fleet, json);
if(window.commander.fleet.archive || json.archive)
newFleet.archive = createMergedFleets(window.commander.fleet.archive, json.archive);
window.commander.fleet = newFleet;
account.rootSave();
ui.go("menu");
});
});
});
};
}).call(this);
// Fleet screen draw hook
var copyPage = copyPage || {
fleetUIHook: window.fleetUI
}
window.fleetUI = function() {
if(!commander) return;
onecup.div(".hover-black", function() {
onecup.margin(20);
onecup.text_align("center");
onecup.color("white");
onecup.text("Export/Import All Fleets");
onecup.position("absolute");
onecup.top(0);
onecup.right(64);
onecup.z_index("2");
onecup.onclick(function(e) {
ui.go("copy");
});
});
return copyPage.fleetUIHook.call(this);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment