feat(webui): add client cheats and new account cheat "Unlock All Focus Schools" (#406)
Co-authored-by: Sainan <Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									94f6d1b941
								
							
						
					
					
						commit
						7cfef6294b
					
				@ -1 +1,2 @@
 | 
				
			|||||||
static/webui/libs/
 | 
					static/webui/libs/
 | 
				
			||||||
 | 
					*.html
 | 
				
			||||||
 | 
				
			|||||||
@ -19,15 +19,18 @@ webuiRouter.use("/webui", (req, res, next) => {
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Serve virtual routes
 | 
					// Serve virtual routes
 | 
				
			||||||
webuiRouter.get("/webui/settings", (_req, res) => {
 | 
					 | 
				
			||||||
    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
webuiRouter.get("/webui/inventory", (_req, res) => {
 | 
					webuiRouter.get("/webui/inventory", (_req, res) => {
 | 
				
			||||||
    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
					    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
webuiRouter.get("/webui/mods", (_req, res) => {
 | 
					webuiRouter.get("/webui/mods", (_req, res) => {
 | 
				
			||||||
    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
					    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					webuiRouter.get("/webui/settings", (_req, res) => {
 | 
				
			||||||
 | 
					    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					webuiRouter.get("/webui/cheats", (_req, res) => {
 | 
				
			||||||
 | 
					    res.sendFile(path.join(rootDir, "static/webui/index.html"));
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Serve static files
 | 
					// Serve static files
 | 
				
			||||||
webuiRouter.use("/webui", express.static(path.join(rootDir, "static/webui")));
 | 
					webuiRouter.use("/webui", express.static(path.join(rootDir, "static/webui")));
 | 
				
			||||||
 | 
				
			|||||||
@ -1,286 +1,269 @@
 | 
				
			|||||||
<!doctype html>
 | 
					<!doctype html>
 | 
				
			||||||
<html lang="en" data-bs-theme="dark">
 | 
					<html lang="en" data-bs-theme="dark">
 | 
				
			||||||
    <head>
 | 
					<head>
 | 
				
			||||||
        <title>OpenWF WebUI</title>
 | 
					    <title>OpenWF WebUI</title>
 | 
				
			||||||
        <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
				
			||||||
        <link rel="stylesheet" href="libs/bootstrap.min.css" />
 | 
					    <link rel="stylesheet" href="libs/bootstrap.min.css" />
 | 
				
			||||||
        <link rel="stylesheet" href="style.css" />
 | 
					    <link rel="stylesheet" href="style.css" />
 | 
				
			||||||
    </head>
 | 
					</head>
 | 
				
			||||||
    <body>
 | 
					<body>
 | 
				
			||||||
        <nav class="navbar sticky-top bg-body-tertiary">
 | 
					    <nav class="navbar sticky-top bg-body-tertiary">
 | 
				
			||||||
            <div class="container">
 | 
					        <div class="container">
 | 
				
			||||||
 | 
					            <button class="navbar-toggler d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#sidebar" aria-controls="sidebar" aria-label="Toggle sidebar">
 | 
				
			||||||
 | 
					                <span class="navbar-toggler-icon"></span>
 | 
				
			||||||
 | 
					            </button>
 | 
				
			||||||
 | 
					            <a class="navbar-brand">OpenWF WebUI</a>
 | 
				
			||||||
 | 
					            <div class="nav-item dropdown">
 | 
				
			||||||
 | 
					                <button class="nav-link dropdown-toggle displayname" data-bs-toggle="dropdown" aria-expanded="false"></button>
 | 
				
			||||||
 | 
					                <ul class="dropdown-menu dropdown-menu-end">
 | 
				
			||||||
 | 
					                    <li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
 | 
				
			||||||
 | 
					                </ul>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </nav>
 | 
				
			||||||
 | 
					    <div class="container pt-3 pb-3" id="main-view">
 | 
				
			||||||
 | 
					        <div class="offcanvas-lg offcanvas-start" tabindex="-1" id="sidebar" aria-labelledby="sidebarLabel">
 | 
				
			||||||
 | 
					            <div class="offcanvas-header">
 | 
				
			||||||
 | 
					                <h5 class="offcanvas-title" id="sidebarLabel">Sidebar</h5>
 | 
				
			||||||
                <button
 | 
					                <button
 | 
				
			||||||
                    class="navbar-toggler d-lg-none"
 | 
					                type="button"
 | 
				
			||||||
                    type="button"
 | 
					                class="btn-close"
 | 
				
			||||||
                    data-bs-toggle="offcanvas"
 | 
					                data-bs-dismiss="offcanvas"
 | 
				
			||||||
                    data-bs-target="#sidebar"
 | 
					                data-bs-target="#sidebar"
 | 
				
			||||||
                    aria-controls="sidebar"
 | 
					                aria-label="Close"
 | 
				
			||||||
                    aria-label="Toggle sidebar"
 | 
					                ></button>
 | 
				
			||||||
                >
 | 
					            </div>
 | 
				
			||||||
                    <span class="navbar-toggler-icon"></span>
 | 
					            <div class="offcanvas-body">
 | 
				
			||||||
                </button>
 | 
					                <div class="navbar p-0">
 | 
				
			||||||
                <a class="navbar-brand">OpenWF WebUI</a>
 | 
					                    <ul class="navbar-nav justify-content-end">
 | 
				
			||||||
                <div class="nav-item dropdown">
 | 
					                        <li class="nav-item">
 | 
				
			||||||
                    <button
 | 
					                            <a class="nav-link" href="/webui/inventory" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Inventory</a>
 | 
				
			||||||
                        class="nav-link dropdown-toggle displayname"
 | 
					                        </li>
 | 
				
			||||||
                        data-bs-toggle="dropdown"
 | 
					                        <li class="nav-item">
 | 
				
			||||||
                        aria-expanded="false"
 | 
					                            <a class="nav-link" href="/webui/mods" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Mods</a>
 | 
				
			||||||
                    ></button>
 | 
					                        </li>
 | 
				
			||||||
                    <ul class="dropdown-menu dropdown-menu-end">
 | 
					                        <li class="nav-item">
 | 
				
			||||||
                        <li><a class="dropdown-item" href="/webui/" onclick="logout();">Logout</a></li>
 | 
					                            <a class="nav-link" href="/webui/cheats" data-bs-dismiss="offcanvas" data-bs-target="#sidebar">Cheats</a>
 | 
				
			||||||
 | 
					                        </li>
 | 
				
			||||||
                    </ul>
 | 
					                    </ul>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </nav>
 | 
					        </div>
 | 
				
			||||||
        <div class="container pt-3 pb-3" id="main-view">
 | 
					        <div class="w-100">
 | 
				
			||||||
            <div class="offcanvas-lg offcanvas-start" tabindex="-1" id="sidebar" aria-labelledby="sidebarLabel">
 | 
					            <div data-route="/webui/" data-title="Login | OpenWF WebUI">
 | 
				
			||||||
                <div class="offcanvas-header">
 | 
					                <p>Login using your OpenWF account credentials.</p>
 | 
				
			||||||
                    <h5 class="offcanvas-title" id="sidebarLabel">Sidebar</h5>
 | 
					                <form onsubmit="doLogin();return false;">
 | 
				
			||||||
                    <button
 | 
					                    <label for="email">Email address</label>
 | 
				
			||||||
                        type="button"
 | 
					                    <input class="form-control" type="email" id="email" required />
 | 
				
			||||||
                        class="btn-close"
 | 
					                    <br />
 | 
				
			||||||
                        data-bs-dismiss="offcanvas"
 | 
					                    <label for="password">Password</label>
 | 
				
			||||||
                        data-bs-target="#sidebar"
 | 
					                    <input class="form-control" type="password" id="password" required />
 | 
				
			||||||
                        aria-label="Close"
 | 
					                    <br />
 | 
				
			||||||
                    ></button>
 | 
					                    <button class="btn btn-primary" type="submit">Login</button>
 | 
				
			||||||
 | 
					                </form>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div data-route="/webui/inventory" data-title="Inventory | OpenWF WebUI">
 | 
				
			||||||
 | 
					                <p id="refresh-note" class="mb-4">
 | 
				
			||||||
 | 
					                    Note: Changes made here will only be reflected in-game when the game re-downloads your
 | 
				
			||||||
 | 
					                    inventory. Visiting the navigation should be the easiest way to trigger that.
 | 
				
			||||||
 | 
					                </p>
 | 
				
			||||||
 | 
					                <div class="card mb-4">
 | 
				
			||||||
 | 
					                    <h5 class="card-header">Add Items</h5>
 | 
				
			||||||
 | 
					                    <form class="card-body input-group" onsubmit="doAcquireMiscItems();return false;">
 | 
				
			||||||
 | 
					                        <input class="form-control" id="miscitem-count" type="number" min="1" value="1" />
 | 
				
			||||||
 | 
					                        <input class="form-control" id="miscitem-type" list="datalist-miscitems" />
 | 
				
			||||||
 | 
					                        <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
 | 
					                    </form>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div class="offcanvas-body">
 | 
					                <div class="row">
 | 
				
			||||||
                    <div class="navbar p-0">
 | 
					                    <div class="col-lg-6">
 | 
				
			||||||
                        <ul class="navbar-nav justify-content-end">
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
                            <li class="nav-item">
 | 
					                            <h5 class="card-header">Warframes</h5>
 | 
				
			||||||
                                <a
 | 
					                            <div class="card-body">
 | 
				
			||||||
                                    class="nav-link"
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireWarframe();return false;">
 | 
				
			||||||
                                    href="/webui/inventory"
 | 
					                                    <input class="form-control" id="warframe-to-acquire" list="datalist-warframes" />
 | 
				
			||||||
                                    data-bs-dismiss="offcanvas"
 | 
					                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
                                    data-bs-target="#sidebar"
 | 
					                                </form>
 | 
				
			||||||
                                >
 | 
					                                <table class="table table-hover w-100">
 | 
				
			||||||
                                    Inventory
 | 
					                                    <tbody id="warframe-list"></tbody>
 | 
				
			||||||
                                </a>
 | 
					                                </table>
 | 
				
			||||||
                            </li>
 | 
					                            </div>
 | 
				
			||||||
                            <li class="nav-item">
 | 
					                        </div>
 | 
				
			||||||
                                <a
 | 
					                    </div>
 | 
				
			||||||
                                    class="nav-link"
 | 
					                    <div class="col-lg-6">
 | 
				
			||||||
                                    href="/webui/mods"
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
                                    data-bs-dismiss="offcanvas"
 | 
					                            <h5 class="card-header">Weapons</h5>
 | 
				
			||||||
                                    data-bs-target="#sidebar"
 | 
					                            <div class="card-body">
 | 
				
			||||||
                                >
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireWeapon();return false;">
 | 
				
			||||||
                                    Mods
 | 
					                                    <input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
 | 
				
			||||||
                                </a>
 | 
					                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
                            </li>
 | 
					                                </form>
 | 
				
			||||||
                            <li class="nav-item">
 | 
					                                <table class="table table-hover w-100">
 | 
				
			||||||
                                <a
 | 
					                                    <tbody id="weapon-list"></tbody>
 | 
				
			||||||
                                    class="nav-link"
 | 
					                                </table>
 | 
				
			||||||
                                    href="/webui/settings"
 | 
					                            </div>
 | 
				
			||||||
                                    data-bs-dismiss="offcanvas"
 | 
					                        </div>
 | 
				
			||||||
                                    data-bs-target="#sidebar"
 | 
					 | 
				
			||||||
                                >
 | 
					 | 
				
			||||||
                                    Settings
 | 
					 | 
				
			||||||
                                </a>
 | 
					 | 
				
			||||||
                            </li>
 | 
					 | 
				
			||||||
                        </ul>
 | 
					 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div>
 | 
					            <div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
 | 
				
			||||||
                <div data-route="/webui/" data-title="Login | OpenWF WebUI">
 | 
					                <p id="refresh-note" class="mb-4">
 | 
				
			||||||
                    <p>Login using your OpenWF account credentials.</p>
 | 
					                    Note: Changes made here will only be reflected in-game when the game re-downloads your
 | 
				
			||||||
                    <form onsubmit="doLogin();return false;">
 | 
					                    inventory. Visiting the navigation should be the easiest way to trigger that.
 | 
				
			||||||
                        <label for="email">Email address</label>
 | 
					                </p>
 | 
				
			||||||
                        <input class="form-control" type="email" id="email" required />
 | 
					                <div class="row">
 | 
				
			||||||
                        <br />
 | 
					                    <div class="col-xxl-6">
 | 
				
			||||||
                        <label for="password">Password</label>
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
                        <input class="form-control" type="password" id="password" required />
 | 
					                            <h5 class="card-header">Add Riven</h5>
 | 
				
			||||||
                        <br />
 | 
					                            <form class="card-body" onsubmit="doAcquireRiven();return false;">
 | 
				
			||||||
                        <button class="btn btn-primary" type="submit">Login</button>
 | 
					                                <select class="form-control mb-3" id="addriven-type">
 | 
				
			||||||
                    </form>
 | 
					                                    <option value="LotusArchgunRandomModRare">LotusArchgunRandomModRare</option>
 | 
				
			||||||
                </div>
 | 
					                                    <option value="LotusModularMeleeRandomModRare">LotusModularMeleeRandomModRare</option>
 | 
				
			||||||
                <div data-route="/webui/inventory" data-title="Inventory | OpenWF WebUI">
 | 
					                                    <option value="LotusModularPistolRandomModRare">LotusModularPistolRandomModRare</option>
 | 
				
			||||||
                    <p id="refresh-note" class="mb-4">
 | 
					                                    <option value="LotusPistolRandomModRare">LotusPistolRandomModRare</option>
 | 
				
			||||||
                        Note: Changes made here will only be reflected in-game when the game re-downloads your
 | 
					                                    <option value="LotusRifleRandomModRare" selected>LotusRifleRandomModRare</option>
 | 
				
			||||||
                        inventory. Visiting the navigation should be the easiest way to trigger that.
 | 
					                                    <option value="LotusShotgunRandomModRare">LotusShotgunRandomModRare</option>
 | 
				
			||||||
                    </p>
 | 
					                                    <option value="PlayerMeleeWeaponRandomModRare">PlayerMeleeWeaponRandomModRare</option>
 | 
				
			||||||
                    <div class="card mb-4">
 | 
					                                </select>
 | 
				
			||||||
                        <h5 class="card-header">Add Items</h5>
 | 
					                                <textarea id="addriven-fingerprint" class="form-control mb-3" placeholder="Fingerprint"></textarea>
 | 
				
			||||||
                        <form class="card-body input-group" onsubmit="doAcquireMiscItems();return false;">
 | 
					                                <button class="btn btn-primary" style="margin-right: 5px" type="submit">Add</button>
 | 
				
			||||||
                            <input class="form-control" id="miscitem-count" type="number" min="1" value="1" />
 | 
					                                <a href="riven-tool/" target="_blank">Need help with the fingerprint?</a>
 | 
				
			||||||
                            <input class="form-control" id="miscitem-type" list="datalist-miscitems" />
 | 
					                            </form>
 | 
				
			||||||
                            <button class="btn btn-primary" type="submit">Add</button>
 | 
					 | 
				
			||||||
                        </form>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                    <div class="row">
 | 
					 | 
				
			||||||
                        <div class="col-lg-6">
 | 
					 | 
				
			||||||
                            <div class="card mb-4">
 | 
					 | 
				
			||||||
                                <h5 class="card-header">Warframes</h5>
 | 
					 | 
				
			||||||
                                <div class="card-body">
 | 
					 | 
				
			||||||
                                    <form class="input-group" onsubmit="doAcquireWarframe();return false;">
 | 
					 | 
				
			||||||
                                        <input
 | 
					 | 
				
			||||||
                                            class="form-control"
 | 
					 | 
				
			||||||
                                            id="warframe-to-acquire"
 | 
					 | 
				
			||||||
                                            list="datalist-warframes"
 | 
					 | 
				
			||||||
                                        />
 | 
					 | 
				
			||||||
                                        <button class="btn btn-primary" type="submit">Add</button>
 | 
					 | 
				
			||||||
                                    </form>
 | 
					 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					 | 
				
			||||||
                                        <tbody id="warframe-list"></tbody>
 | 
					 | 
				
			||||||
                                    </table>
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="col-lg-6">
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
                            <div class="card mb-4">
 | 
					                            <h5 class="card-header">Rivens</h5>
 | 
				
			||||||
                                <h5 class="card-header">Weapons</h5>
 | 
					                            <div class="card-body">
 | 
				
			||||||
                                <div class="card-body">
 | 
					                                <table class="table table-hover w-100">
 | 
				
			||||||
                                    <form class="input-group" onsubmit="doAcquireWeapon();return false;">
 | 
					                                    <tbody id="riven-list"></tbody>
 | 
				
			||||||
                                        <input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
 | 
					                                </table>
 | 
				
			||||||
                                        <button class="btn btn-primary" type="submit">Add</button>
 | 
					 | 
				
			||||||
                                    </form>
 | 
					 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					 | 
				
			||||||
                                        <tbody id="weapon-list"></tbody>
 | 
					 | 
				
			||||||
                                    </table>
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                    <div class="col-xxl-6">
 | 
				
			||||||
                <div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
                    <p id="refresh-note" class="mb-4">
 | 
					                            <h5 class="card-header">Mods</h5>
 | 
				
			||||||
                        Note: Changes made here will only be reflected in-game when the game re-downloads your
 | 
					                            <div class="card-body">
 | 
				
			||||||
                        inventory. Visiting the navigation should be the easiest way to trigger that.
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
 | 
				
			||||||
                    </p>
 | 
					                                    <input class="form-control" id="mod-to-acquire" list="datalist-mods" />
 | 
				
			||||||
                    <div class="row">
 | 
					                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
                        <div class="col-xxl-6">
 | 
					 | 
				
			||||||
                            <div class="card mb-4">
 | 
					 | 
				
			||||||
                                <h5 class="card-header">Add Riven</h5>
 | 
					 | 
				
			||||||
                                <form class="card-body" onsubmit="doAcquireRiven();return false;">
 | 
					 | 
				
			||||||
                                    <select class="form-control mb-3" id="addriven-type">
 | 
					 | 
				
			||||||
                                        <option value="LotusArchgunRandomModRare">LotusArchgunRandomModRare</option>
 | 
					 | 
				
			||||||
                                        <option value="LotusModularMeleeRandomModRare">
 | 
					 | 
				
			||||||
                                            LotusModularMeleeRandomModRare
 | 
					 | 
				
			||||||
                                        </option>
 | 
					 | 
				
			||||||
                                        <option value="LotusModularPistolRandomModRare">
 | 
					 | 
				
			||||||
                                            LotusModularPistolRandomModRare
 | 
					 | 
				
			||||||
                                        </option>
 | 
					 | 
				
			||||||
                                        <option value="LotusPistolRandomModRare">LotusPistolRandomModRare</option>
 | 
					 | 
				
			||||||
                                        <option value="LotusRifleRandomModRare" selected>
 | 
					 | 
				
			||||||
                                            LotusRifleRandomModRare
 | 
					 | 
				
			||||||
                                        </option>
 | 
					 | 
				
			||||||
                                        <option value="LotusShotgunRandomModRare">LotusShotgunRandomModRare</option>
 | 
					 | 
				
			||||||
                                        <option value="PlayerMeleeWeaponRandomModRare">
 | 
					 | 
				
			||||||
                                            PlayerMeleeWeaponRandomModRare
 | 
					 | 
				
			||||||
                                        </option>
 | 
					 | 
				
			||||||
                                    </select>
 | 
					 | 
				
			||||||
                                    <textarea
 | 
					 | 
				
			||||||
                                        id="addriven-fingerprint"
 | 
					 | 
				
			||||||
                                        class="form-control mb-3"
 | 
					 | 
				
			||||||
                                        placeholder="Fingerprint"
 | 
					 | 
				
			||||||
                                    ></textarea>
 | 
					 | 
				
			||||||
                                    <button class="btn btn-primary" style="margin-right: 5px" type="submit">Add</button>
 | 
					 | 
				
			||||||
                                    <a href="riven-tool/" target="_blank">Need help with the fingerprint?</a>
 | 
					 | 
				
			||||||
                                </form>
 | 
					                                </form>
 | 
				
			||||||
                            </div>
 | 
					                                <table class="table table-hover w-100">
 | 
				
			||||||
                            <div class="card mb-4">
 | 
					                                    <tbody id="mods-list"></tbody>
 | 
				
			||||||
                                <h5 class="card-header">Rivens</h5>
 | 
					                                </table>
 | 
				
			||||||
                                <div class="card-body">
 | 
					 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					 | 
				
			||||||
                                        <tbody id="riven-list"></tbody>
 | 
					 | 
				
			||||||
                                    </table>
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="col-xxl-6">
 | 
					 | 
				
			||||||
                            <div class="card mb-4">
 | 
					 | 
				
			||||||
                                <h5 class="card-header">Mods</h5>
 | 
					 | 
				
			||||||
                                <div class="card-body">
 | 
					 | 
				
			||||||
                                    <form class="input-group" onsubmit="doAcquireMod();return false;">
 | 
					 | 
				
			||||||
                                        <input class="form-control" id="mod-to-acquire" list="datalist-mods" />
 | 
					 | 
				
			||||||
                                        <button class="btn btn-primary" type="submit">Add</button>
 | 
					 | 
				
			||||||
                                    </form>
 | 
					 | 
				
			||||||
                                    <table class="table table-hover w-100">
 | 
					 | 
				
			||||||
                                        <tbody id="mods-list"></tbody>
 | 
					 | 
				
			||||||
                                    </table>
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div data-route="/webui/settings" data-title="Settings | OpenWF WebUI">
 | 
					            </div>
 | 
				
			||||||
                    <form onsubmit="doChangeSettings();return false;">
 | 
					            <div data-route="/webui/cheats, /webui/settings" data-title="Cheats | OpenWF WebUI">
 | 
				
			||||||
                        <div class="form-check">
 | 
					                <div class="row">
 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="skipStoryModeChoice" />
 | 
					                    <div class="col-lg-4">
 | 
				
			||||||
                            <label class="form-check-label" for="skipStoryModeChoice">Skip Story Mode Choice</label>
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
 | 
					                            <h5 class="card-header">Server</h5>
 | 
				
			||||||
 | 
					                            <form class="card-body" onsubmit="doChangeSettings();return false;">
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="skipStoryModeChoice" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="skipStoryModeChoice">Skip Story Mode Choice</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="skipTutorial" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="skipTutorial">Skip Tutorial</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllScans" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllScans">Unlock All Scans</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllMissions" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllMissions">Unlock All Missions</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllQuests" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllQuests">Unlock All Quests</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="completeAllQuests" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="completeAllQuests">Complete All Quests</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="infiniteResources" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="infiniteResources">Infinite Credits and Platinum</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllShipFeatures" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllShipFeatures">Unlock All Ship Features</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllShipDecorations" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllShipDecorations">Unlock All Ship Decorations</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllFlavourItems" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllFlavourItems">
 | 
				
			||||||
 | 
					                                        Unlock All <abbr title="Animation Sets, Glyphs, Plattes, etc.">Flavor Items</abbr>
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="unlockAllSkins" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="universalPolarityEverywhere">
 | 
				
			||||||
 | 
					                                        Universal Polarity Everywhere
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-group mt-2">
 | 
				
			||||||
 | 
					                                    <label class="form-label" for="spoofMasteryRank">
 | 
				
			||||||
 | 
					                                        Spoofed Mastery Rank (-1 to disable)
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                    <input class="form-control" id="spoofMasteryRank" type="number" min="-1" />
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <button class="btn btn-primary mt-3" type="submit">Save Settings</button>
 | 
				
			||||||
 | 
					                            </form>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="form-check">
 | 
					                    </div>
 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="skipTutorial" />
 | 
					                    <div class="col-lg-4">
 | 
				
			||||||
                            <label class="form-check-label" for="skipTutorial">Skip Tutorial</label>
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
 | 
					                            <h5 class="card-header">Account</h5>
 | 
				
			||||||
 | 
					                            <div class="card-body">
 | 
				
			||||||
 | 
					                                <button class="btn btn-primary" onclick="doUnlockAllFocusSchools();">Unlock All Focus Schools</button>
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="form-check">
 | 
					                    </div>
 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllScans" />
 | 
					                    <div class="col-lg-4">
 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllScans">Unlock All Scans</label>
 | 
					                        <div class="card mb-4">
 | 
				
			||||||
 | 
					                            <h5 class="card-header">Client</h5>
 | 
				
			||||||
 | 
					                            <div id="client-cheats-nok" class="card-body">
 | 
				
			||||||
 | 
					                                Client cheats are currently unavailable. This could be because your client is not running or using a DLL without an HTTP interface.
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
 | 
					                            <div id="client-cheats-ok" class="card-body d-none">
 | 
				
			||||||
 | 
					                                <div class="form-check">
 | 
				
			||||||
 | 
					                                    <input class="form-check-input" type="checkbox" id="skip_mission_start_timer" />
 | 
				
			||||||
 | 
					                                    <label class="form-check-label" for="skip_mission_start_timer">
 | 
				
			||||||
 | 
					                                        Skip Mission Start Timer
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div class="form-group mt-3">
 | 
				
			||||||
 | 
					                                    <label class="form-label" for="fov_override">FOV Override (0 to disable)</label>
 | 
				
			||||||
 | 
					                                    <input id="fov_override" class="form-range" type="range" min="0" value="0" max="2260000" step="10000">
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="form-check">
 | 
					                    </div>
 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllMissions" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllMissions">Unlock All Missions</label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllQuests" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllQuests">Unlock All Quests</label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="completeAllQuests" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="completeAllQuests">Complete All Quests</label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="infiniteResources" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="infiniteResources">
 | 
					 | 
				
			||||||
                                Infinite Credits and Platinum
 | 
					 | 
				
			||||||
                            </label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllShipFeatures" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllShipFeatures">Unlock All Ship Features</label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllShipDecorations" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllShipDecorations">
 | 
					 | 
				
			||||||
                                Unlock All Ship Decorations
 | 
					 | 
				
			||||||
                            </label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllFlavourItems" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllFlavourItems">
 | 
					 | 
				
			||||||
                                Unlock All <abbr title="Animation Sets, Glyphs, Plattes, etc.">Flavor Items</abbr>
 | 
					 | 
				
			||||||
                            </label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="unlockAllSkins" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="unlockAllSkins">Unlock All Skins</label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-check">
 | 
					 | 
				
			||||||
                            <input class="form-check-input" type="checkbox" id="universalPolarityEverywhere" />
 | 
					 | 
				
			||||||
                            <label class="form-check-label" for="universalPolarityEverywhere">
 | 
					 | 
				
			||||||
                                Universal Polarity Everywhere
 | 
					 | 
				
			||||||
                            </label>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="form-group mt-2 mb-2">
 | 
					 | 
				
			||||||
                            <label class="form-label" for="spoofMasteryRank">
 | 
					 | 
				
			||||||
                                Spoofed Mastery Rank (-1 to disable)
 | 
					 | 
				
			||||||
                            </label>
 | 
					 | 
				
			||||||
                            <input class="form-control" id="spoofMasteryRank" type="number" min="-1" />
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <button class="btn btn-primary mt-3" type="submit">Save Settings</button>
 | 
					 | 
				
			||||||
                    </form>
 | 
					 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <datalist id="datalist-warframes"></datalist>
 | 
					    </div>
 | 
				
			||||||
        <datalist id="datalist-weapons"></datalist>
 | 
					    <datalist id="datalist-warframes"></datalist>
 | 
				
			||||||
        <datalist id="datalist-miscitems"></datalist>
 | 
					    <datalist id="datalist-weapons"></datalist>
 | 
				
			||||||
        <datalist id="datalist-mods"></datalist>
 | 
					    <datalist id="datalist-miscitems"></datalist>
 | 
				
			||||||
        <script src="libs/jquery-3.6.0.min.js"></script>
 | 
					    <datalist id="datalist-mods"></datalist>
 | 
				
			||||||
        <script src="libs/whirlpool-js.min.js"></script>
 | 
					    <script src="libs/jquery-3.6.0.min.js"></script>
 | 
				
			||||||
        <script src="libs/single.js"></script>
 | 
					    <script src="libs/whirlpool-js.min.js"></script>
 | 
				
			||||||
        <script src="riven-tool/RivenParser.js"></script>
 | 
					    <script src="libs/single.js"></script>
 | 
				
			||||||
        <script src="script.js"></script>
 | 
					    <script src="riven-tool/RivenParser.js"></script>
 | 
				
			||||||
        <script src="libs/bootstrap.bundle.min.js"></script>
 | 
					    <script src="script.js"></script>
 | 
				
			||||||
    </body>
 | 
					    <script src="libs/bootstrap.bundle.min.js"></script>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -701,3 +701,83 @@ function doChangeSettings() {
 | 
				
			|||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Cheats route
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fetch("http://localhost:61558/ping", { mode: "no-cors" }).then(() => {
 | 
				
			||||||
 | 
					    $("#client-cheats-nok").addClass("d-none");
 | 
				
			||||||
 | 
					    $("#client-cheats-ok").removeClass("d-none");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fetch("http://localhost:61558/skip_mission_start_timer")
 | 
				
			||||||
 | 
					        .then(res => res.text())
 | 
				
			||||||
 | 
					        .then(res => {
 | 
				
			||||||
 | 
					            document.getElementById("skip_mission_start_timer").checked = res == "1";
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    document.getElementById("skip_mission_start_timer").onchange = function () {
 | 
				
			||||||
 | 
					        fetch("http://localhost:61558/skip_mission_start_timer?" + this.checked);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fetch("http://localhost:61558/fov_override")
 | 
				
			||||||
 | 
					        .then(res => res.text())
 | 
				
			||||||
 | 
					        .then(res => {
 | 
				
			||||||
 | 
					            document.getElementById("fov_override").value = parseFloat(res) * 10000;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    document.getElementById("fov_override").oninput = function () {
 | 
				
			||||||
 | 
					        fetch("http://localhost:61558/fov_override?" + this.value);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function doUnlockAllFocusSchools() {
 | 
				
			||||||
 | 
					    revalidateAuthz(() => {
 | 
				
			||||||
 | 
					        $.get("/api/inventory.php?" + window.authz + "&xpBasedLevelCapDisabled=1").done(async data => {
 | 
				
			||||||
 | 
					            const missingFocusUpgrades = {
 | 
				
			||||||
 | 
					                "/Lotus/Upgrades/Focus/Attack/AttackFocusAbility": true,
 | 
				
			||||||
 | 
					                "/Lotus/Upgrades/Focus/Tactic/TacticFocusAbility": true,
 | 
				
			||||||
 | 
					                "/Lotus/Upgrades/Focus/Ward/WardFocusAbility": true,
 | 
				
			||||||
 | 
					                "/Lotus/Upgrades/Focus/Defense/DefenseFocusAbility": true,
 | 
				
			||||||
 | 
					                "/Lotus/Upgrades/Focus/Power/PowerFocusAbility": true
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            if (data.FocusUpgrades) {
 | 
				
			||||||
 | 
					                for (const focusUpgrade of data.FocusUpgrades) {
 | 
				
			||||||
 | 
					                    if (focusUpgrade.ItemType in missingFocusUpgrades) {
 | 
				
			||||||
 | 
					                        delete missingFocusUpgrades[focusUpgrade.ItemType];
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            for (const upgradeType of Object.keys(missingFocusUpgrades)) {
 | 
				
			||||||
 | 
					                await unlockFocusSchool(upgradeType);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (Object.keys(missingFocusUpgrades).length == 0) {
 | 
				
			||||||
 | 
					                alert("All focus schools are already unlocked.");
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                alert(
 | 
				
			||||||
 | 
					                    "Unlocked " +
 | 
				
			||||||
 | 
					                        Object.keys(missingFocusUpgrades).length +
 | 
				
			||||||
 | 
					                        " new focus schools! An inventory update will be needed for the changes to be reflected in-game. Visiting the navigation should be the easiest way to trigger that."
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function unlockFocusSchool(upgradeType) {
 | 
				
			||||||
 | 
					    return new Promise(resolve => {
 | 
				
			||||||
 | 
					        // Deselect current FocusAbility so we will be able to unlock the way for free
 | 
				
			||||||
 | 
					        $.post({
 | 
				
			||||||
 | 
					            url: "/api/focus.php?" + window.authz + "&op=5",
 | 
				
			||||||
 | 
					            contentType: "text/plain",
 | 
				
			||||||
 | 
					            data: "{}"
 | 
				
			||||||
 | 
					        }).done(function () {
 | 
				
			||||||
 | 
					            // Unlock the way now
 | 
				
			||||||
 | 
					            $.post({
 | 
				
			||||||
 | 
					                url: "/api/focus.php?" + window.authz + "&op=2",
 | 
				
			||||||
 | 
					                contentType: "text/plain",
 | 
				
			||||||
 | 
					                data: JSON.stringify({
 | 
				
			||||||
 | 
					                    FocusType: upgradeType
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            }).done(function () {
 | 
				
			||||||
 | 
					                resolve();
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user