mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
300 lines
7.5 KiB
JavaScript
300 lines
7.5 KiB
JavaScript
|
|
const DEMO_UNIT_DATA = {
|
|
["1"]:{
|
|
AI: true,
|
|
name: "F-5E",
|
|
unitName: "Olympus 1-1",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "Aircraft",
|
|
flightData: {
|
|
latitude: 37.2,
|
|
longitude: -115.8,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "blue"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
},
|
|
["2"]:{
|
|
AI: true,
|
|
name: "F-5E",
|
|
unitName: "Olympus 1-2",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "Aircraft",
|
|
flightData: {
|
|
latitude: 37.2,
|
|
longitude: -115.75,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "red"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
},
|
|
["3"]:{
|
|
AI: true,
|
|
name: "2S6 Tunguska",
|
|
unitName: "Olympus 1-3",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "GroundUnit",
|
|
flightData: {
|
|
latitude: 37.175,
|
|
longitude: -115.8,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "blue"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
},
|
|
["4"]:{
|
|
AI: true,
|
|
name: "2S6 Tunguska",
|
|
unitName: "Olympus 1-4",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "GroundUnit",
|
|
flightData: {
|
|
latitude: 37.175,
|
|
longitude: -115.75,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "red"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
},
|
|
["5"]:{
|
|
AI: true,
|
|
name: "M-60",
|
|
unitName: "Olympus 1-3",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "GroundUnit",
|
|
flightData: {
|
|
latitude: 37.15,
|
|
longitude: -115.8,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "blue"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
},
|
|
["6"]:{
|
|
AI: true,
|
|
name: "M-60",
|
|
unitName: "Olympus 1-4",
|
|
groupName: "Group 1",
|
|
alive: true,
|
|
category: "GroundUnit",
|
|
flightData: {
|
|
latitude: 37.15,
|
|
longitude: -115.75,
|
|
altitude: 2000,
|
|
heading: 0.5,
|
|
speed: 300
|
|
},
|
|
missionData: {
|
|
fuel: 0.5,
|
|
flags: {human: false},
|
|
ammo: [],
|
|
targets: [],
|
|
hasTask: true,
|
|
coalition: "red"
|
|
},
|
|
formationData: {
|
|
formation: "Echelon",
|
|
isLeader: false,
|
|
isWingman: false,
|
|
leaderID: null,
|
|
wingmen: [],
|
|
wingmenIDs: []
|
|
},
|
|
taskData: {
|
|
currentTask: "Example task",
|
|
activePath: undefined,
|
|
targetSpeed: 400,
|
|
targetAltitude: 3000
|
|
},
|
|
optionsData: {
|
|
ROE: "None",
|
|
reactionToThreat: "None",
|
|
}
|
|
}
|
|
}
|
|
|
|
class DemoDataGenerator {
|
|
constructor(unitsNumber)
|
|
{
|
|
this.demoUnits = this.generateRandomUnitsDemoData(unitsNumber);
|
|
}
|
|
|
|
unitsRefresh(req, res) {
|
|
var ret = this.demoUnits;
|
|
res.send(JSON.stringify(ret));
|
|
}
|
|
|
|
unitsUpdate(req, res){
|
|
//Object.keys(this.demoUnits.units).forEach((ID) => {
|
|
// this.demoUnits.units[ID].flightData.heading += 0.05;
|
|
// this.demoUnits.units[ID].flightData.latitude += 0.001 * Math.cos(this.demoUnits.units[ID].flightData.heading);
|
|
// this.demoUnits.units[ID].flightData.longitude += 0.001 * Math.sin(this.demoUnits.units[ID].flightData.heading);
|
|
//});
|
|
var ret = this.demoUnits;
|
|
res.send(JSON.stringify(ret));
|
|
};
|
|
|
|
logs(req, res){
|
|
var ret = {logs: {}};
|
|
res.send(JSON.stringify(ret));
|
|
};
|
|
|
|
airbases(req, res){
|
|
var ret = {airbases: {}};
|
|
res.send(JSON.stringify(ret));
|
|
};
|
|
|
|
bullseyes(req, res){
|
|
var ret = {bullseyes: {}};
|
|
res.send(JSON.stringify(ret));
|
|
};
|
|
|
|
generateRandomUnitsDemoData(unitsNumber)
|
|
{
|
|
//var units = {};
|
|
//for (let i = 0; i < unitsNumber; i++)
|
|
//{
|
|
// units[String(i)] = JSON.parse(JSON.stringify(DEMO_UNIT_DATA));
|
|
// units[String(i)].flightData.latitude += (Math.random() - 0.5) * 0.3;
|
|
// units[String(i)].flightData.longitude += (Math.random() - 0.5) * 0.3;
|
|
//}
|
|
return {"units": DEMO_UNIT_DATA};
|
|
}
|
|
}
|
|
|
|
module.exports = DemoDataGenerator; |