mirror of
https://github.com/rakion99/shelter-editor.git
synced 2026-07-28 04:06:42 +00:00
200 lines
8.4 KiB
HTML
200 lines
8.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, width=device-width, user-scalable=no">
|
|
|
|
<title>Fallout Shelter - Save Editor</title>
|
|
<meta name="description" content="Web app to edit Fallout Shelter save games. You can change dwellers SPECIAL, other stats and vault's resources.">
|
|
|
|
<link rel="stylesheet" href="css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="css/style.css">
|
|
</head>
|
|
|
|
<body ng-app="shelter" ng-controller="dwellerController">
|
|
<div class="container">
|
|
|
|
<div class="row box" ng-show="section == 'vault'">
|
|
<div class="col-sm-12 vault_info">
|
|
|
|
<form ng-show="fileName" name="vaultForm">
|
|
<div class="form-group row" ng-class="{ 'has-error': vaultForm.vaultName.$invalid }">
|
|
<div class="col-sm-4">
|
|
<label>Name</label>
|
|
<input type="text" class="form-control" name="vaultName" placeholder="Vault Name" ng-model="save.vault.VaultName" ng-pattern="/^[0-9]{3}$/">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Caps</label>
|
|
<input type="number" class="form-control" name="caps" ng-model="save.vault.storage.resources.Nuka">
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<label>NukaColaQuantum</label>
|
|
<input type="number" class="form-control" name="nuka" ng-model="save.vault.storage.resources.NukaColaQuantum">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
|
|
|
|
<div class="col-sm-4">
|
|
<label>Lunch Boxes</label>
|
|
<input type="number" class="form-control" name="lunchbox" ng-model="lunchboxCount">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Mr. Handies</label>
|
|
<input type="number" class="form-control" name="handy" ng-model="handyCount">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Pet Carrier</label>
|
|
<input type="number" class="form-control" name="petCarrier" ng-model="petCarrierCount">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Starter Pack</label>
|
|
<input type="number" class="form-control" name="starterPack" ng-model="starterPackCount">
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<div class="col-sm-4">
|
|
<label>Food</label>
|
|
<input type="number" class="form-control" name="caps" ng-model="save.vault.storage.resources.Food">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Energy</label>
|
|
<input type="number" class="form-control" name="energy" ng-model="save.vault.storage.resources.Energy">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Water</label>
|
|
<input type="number" class="form-control" name="water" ng-model="save.vault.storage.resources.Water">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<div class="col-sm-6">
|
|
<label>Stimpack</label>
|
|
<input type="number" class="form-control" name="stimpack" ng-model="save.vault.storage.resources.StimPack">
|
|
</div>
|
|
|
|
<div class="col-sm-6">
|
|
<label>RadAway</label>
|
|
<input type="number" class="form-control" name="radaway" ng-model="save.vault.storage.resources.RadAway">
|
|
</div>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row box" ng-show="section == 'dwellers'">
|
|
<div class="dwellers list-group col-sm-4">
|
|
<a ng-repeat="d in save.dwellers.dwellers" ng-click="editDweller(d);" ng-class="{ 'active': dweller == d }" class="list-group-item">{{ d.name }} {{ d.lastName }}</a>
|
|
</div>
|
|
|
|
<div class="dweller_info col-sm-8" ng-hide="!dweller.name">
|
|
<a href="#" class="back_button glyphicon glyphicon-chevron-left" ng-click="closeDweller()">Back</a>
|
|
|
|
<form name="dwellerForm">
|
|
<div class="form-group row">
|
|
<div class="col-sm-4">
|
|
<label>First Name</label>
|
|
<input type="text" class="form-control" name="firstName" placeholder="First Name" ng-model="dweller.name">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Last Name</label>
|
|
<input type="text" class="form-control" name="lastName" placeholder="Last Name" ng-model="dweller.lastName">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Gender</label>
|
|
<select class="form-control" name="gender" ng-model="dweller.gender" ng-options="key*1 as value for (key,value) in { 1: 'Female', 2: 'Male' }"></select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<div class="col-sm-4">
|
|
<label>Happiness</label>
|
|
<input type="number" min="0" max="100" class="form-control" name="happiness" ng-model="dweller.happiness.happinessValue">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Health</label>
|
|
<input type="number" class="form-control" name="health" ng-model="dweller.health.healthValue">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Radiation</label>
|
|
<input type="number" class="form-control" name="radiation" ng-model="dweller.health.radiationValue">
|
|
</div>
|
|
|
|
<div class="col-sm-4">
|
|
<label>Level</label>
|
|
<input type="number" class="form-control" name="level" ng-model="dweller.experience.currentLevel">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group row">
|
|
<div class="col-sm-1 stat" ng-repeat="stat in dweller.stats.stats">
|
|
<label ng-bind="statsName[$index]" class="center"></label>
|
|
|
|
<div class="bar" ng-class="'value' + stat.value"></div>
|
|
<input type="number" class="form-control" ng-model="stat.value" min="0" max="10">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row save">
|
|
<button type="button" class="btn btn-primary pull-right" ng-click="maxSpecial()">Max Stats</button>
|
|
</div>
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row tabs">
|
|
<a href="#" class="tab">Fallout Shelter - Save Editor</a>
|
|
<a href="#shelter" ng-hide="!save.dwellers" class="tab" ng-click="section = 'vault'" ng-class="{ 'active': section == 'vault' }">Vault {{ save.vault.VaultName }}<small></small></a>
|
|
<a href="#dweller" ng-hide="!save.dwellers" class="tab" ng-click="section = 'dwellers'" ng-class="{ 'active': section == 'dwellers' }">Dwellers <small>({{ save.dwellers.dwellers.length }})</small></a>
|
|
</div>
|
|
|
|
<div class="row save">
|
|
<button class="btn btn-primary pull-right" ng-click="download()" ng-show="fileName">Save</button>
|
|
</div>
|
|
<br>
|
|
<div class="instructions">
|
|
Drag a save file here (e.g. Vault1.sav) <br />
|
|
or select one here<br><input type="file" id="sav_file" name="sav_file" />
|
|
</div>
|
|
|
|
<div class="presets">
|
|
<br><label title="Savefile names can only be 'Vault1.sav', 'Vault2.sav' or 'Vault3.sav'">Savefile Name: </label> <input type="text" name="presetSaveName" id="presetSaveName" placeholder="Vault1.sav" value="Vault1.sav" ><hr>
|
|
<button class="btn" onclick="preset('NewSave', document.getElementById('presetSaveName').value)">New Save</button>
|
|
<button class="btn" onclick="preset('Stats9999', document.getElementById('presetSaveName').value)">All 9999</button>
|
|
<button class="btn" onclick="preset('SuperDwellers', document.getElementById('presetSaveName').value)">Super Dwellers</button>
|
|
<button class="btn" onclick="preset('SuperHack', document.getElementById('presetSaveName').value)">Super Hack</button>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
<script src="js/jquery-2.1.4.min.js"></script>
|
|
<script src="js/angular.min.js"></script>
|
|
<script src="js/bootstrap.min.js"></script>
|
|
<script src="js/json2.min.js"></script>
|
|
<script src="js/aes.js"></script>
|
|
<script src="js/FileSaver.js"></script>
|
|
<script src="js/shelter.js"></script>
|
|
</body>
|
|
|
|
</html>
|