161 lines
5.4 KiB
JavaScript
161 lines
5.4 KiB
JavaScript
(function () {
|
|
const OrgPortal = (window.OrgPortal = window.OrgPortal || {});
|
|
|
|
function cloneValue(value) {
|
|
return JSON.parse(JSON.stringify(value));
|
|
}
|
|
|
|
function replaceObject(target, source) {
|
|
Object.keys(target).forEach((key) => delete target[key]);
|
|
Object.assign(target, cloneValue(source));
|
|
}
|
|
|
|
function replaceArray(target, source) {
|
|
target.splice(0, target.length, ...cloneValue(source));
|
|
}
|
|
|
|
OrgPortal.data = {
|
|
portalData: {
|
|
org: {
|
|
name: "Black Rifle Company",
|
|
tag: "BRC-0160566824",
|
|
type: "Private Military Company",
|
|
status: "Operational",
|
|
headquarters: "Georgetown Command Annex",
|
|
owner: "Jacob Schmidt",
|
|
ownerUid: "uid-jacob-schmidt",
|
|
isDefault: false,
|
|
},
|
|
funds: 482750,
|
|
reputation: 72,
|
|
members: [
|
|
{ name: "Jacob Schmidt" },
|
|
{ name: "Mara Velez" },
|
|
{ name: "Rylan Cross" },
|
|
{ name: "Noah Briggs" },
|
|
{ name: "Elena Price" },
|
|
{ name: "Isaac Rowe" },
|
|
{ name: "Talia Boone" },
|
|
{ name: "Cade Mercer" },
|
|
],
|
|
fleet: [
|
|
{
|
|
name: "UH-80 Ghost Hawk",
|
|
type: "helicopter",
|
|
status: "Ready",
|
|
damage: "16%",
|
|
},
|
|
{
|
|
name: "MH-9 Hummingbird",
|
|
type: "helicopter",
|
|
status: "Ready",
|
|
damage: "8%",
|
|
},
|
|
{
|
|
name: "M-ATV Patrol 1",
|
|
type: "car",
|
|
status: "Fielded",
|
|
damage: "24%",
|
|
},
|
|
{
|
|
name: "M2A1 Slammer",
|
|
type: "armor",
|
|
status: "Ready",
|
|
damage: "11%",
|
|
},
|
|
{
|
|
name: "RHIB Patrol Boat",
|
|
type: "naval",
|
|
status: "Repairing",
|
|
damage: "32%",
|
|
},
|
|
],
|
|
assets: [
|
|
{ name: "First Aid Kits", type: "items", quantity: "36" },
|
|
{ name: "MX 6.5 mm Rifles", type: "weapons", quantity: "18" },
|
|
{
|
|
name: "6.5 mm Magazines",
|
|
type: "magazines",
|
|
quantity: "120",
|
|
},
|
|
{
|
|
name: "Carryall Backpacks",
|
|
type: "backpacks",
|
|
quantity: "24",
|
|
},
|
|
],
|
|
activity: [
|
|
{
|
|
time: "08:20",
|
|
text: "Treasury cleared contractor payment for northern route escort.",
|
|
},
|
|
{
|
|
time: "07:45",
|
|
text: "Viper Flight completed readiness checks on all rotary assets.",
|
|
},
|
|
{
|
|
time: "07:10",
|
|
text: "New recruit Cade Mercer accepted into ground training roster.",
|
|
},
|
|
{
|
|
time: "06:30",
|
|
text: "North Depot inventory count pushed reserve ratio above target.",
|
|
},
|
|
],
|
|
roadmap: [
|
|
{
|
|
name: "Contracts Board",
|
|
status: "Planned",
|
|
detail: "Track payouts, assignments, and claim approvals.",
|
|
},
|
|
{
|
|
name: "Diplomacy",
|
|
status: "Future Review",
|
|
detail: "Possible future module pending a full design and scope review.",
|
|
},
|
|
{
|
|
name: "Logistics Queue",
|
|
status: "Future Review",
|
|
detail: "Possible future module pending a full design and scope review.",
|
|
},
|
|
{
|
|
name: "Permissions",
|
|
status: "Future Review",
|
|
detail: "Possible future module pending a full design and scope review.",
|
|
},
|
|
],
|
|
},
|
|
session: {
|
|
actorName: "Jacob Schmidt",
|
|
actorUid: "uid-jacob-schmidt",
|
|
role: "Leader",
|
|
ceo: false,
|
|
},
|
|
applyLoginPayload(payload) {
|
|
replaceObject(this.portalData.org, payload.portalData.org || {});
|
|
this.portalData.funds = payload.portalData.funds || 0;
|
|
this.portalData.reputation = payload.portalData.reputation || 0;
|
|
|
|
replaceArray(
|
|
this.portalData.members,
|
|
payload.portalData.members || [],
|
|
);
|
|
replaceArray(this.portalData.fleet, payload.portalData.fleet || []);
|
|
replaceArray(
|
|
this.portalData.assets,
|
|
payload.portalData.assets || [],
|
|
);
|
|
replaceArray(
|
|
this.portalData.activity,
|
|
payload.portalData.activity || [],
|
|
);
|
|
replaceArray(
|
|
this.portalData.roadmap,
|
|
payload.portalData.roadmap || [],
|
|
);
|
|
|
|
replaceObject(this.session, payload.session || {});
|
|
},
|
|
};
|
|
})();
|