Files
shelter-editor/index.html
T
rakion99 bf2c0782f8 Removed Presets
i guess no one need it¿?¿?¿? because they come to edit their save
2016-07-27 23:27:47 -05:00

311 lines
13 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="number" class="form-control" name="vaultName" placeholder="Vault Name" ng-model="vaultName" min="0" max="999">
</div>
<div class="col-sm-4">
<label>Caps</label>
<input type="number" class="form-control" min="0" name="caps" ng-model="save.vault.storage.resources.Nuka">
</div>
<div class="col-sm-4">
<label>Nuka Cola Quantums</label>
<input type="number" class="form-control" min="0" 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" min="0" name="lunchbox" ng-model="lunchboxCount">
</div>
<div class="col-sm-4">
<label>Mr. Handies</label>
<input type="number" class="form-control" min="0" name="handy" ng-model="handyCount">
</div>
<div class="col-sm-4">
<label>Pet Carrier</label>
<input type="number" class="form-control" min="0" name="petCarrier" ng-model="petCarrierCount">
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>Starter Pack</label>
<input type="number" class="form-control" min="0" name="starterPack" ng-model="starterPackCount">
</div>
</div>
<hr />
<div class="form-group row">
<div class="col-sm-4">
<label>Vault Mode</label>
<select class="form-control" name="VaultMode" ng-model="save.vault.VaultMode" ng-options="label as value for (label,value) in { Normal: 'Normal', Survival: 'Survival' }"></select>
</div>
<div class="col-sm-4">
<label>Vault Theme</label>
<select class="form-control" name="VaultTheme" ng-model="save.vault.VaultTheme" ng-options="key*1 as value for (key,value) in { 0: 'Normal', 1: 'Xmas', 2: 'Halloween', 3: 'ThanksGiving' }"></select>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>Food</label>
<input type="number" class="form-control" min="0" name="caps" ng-model="save.vault.storage.resources.Food">
</div>
<div class="col-sm-4">
<label>Energy</label>
<input type="number" class="form-control" min="0" name="energy" ng-model="save.vault.storage.resources.Energy">
</div>
<div class="col-sm-4">
<label>Water</label>
<input type="number" class="form-control" min="0" 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" min="0" name="stimpack" ng-model="save.vault.storage.resources.StimPack">
</div>
<div class="col-sm-6">
<label>RadAway</label>
<input type="number" class="form-control" min="0" name="radaway" ng-model="save.vault.storage.resources.RadAway">
</div>
</div>
<hr />
<div class="form-group row">
<div class="col-sm-4">
<label>Remove Rocks</label><br />
<button type="button" class="btn btn-primary" ng-click="removeRocks()">Activate</button>
</div>
<div class="col-sm-4">
<label>Unlock All Rooms</label><br />
<button type="button" class="btn btn-primary" ng-click="unlockrooms()">Activate</button>
</div>
<div class="col-sm-4">
<label>Unlock All Recipes</label><br />
<button type="button" class="btn btn-primary" ng-click="unlockrecipes()">Activate</button>
</div>
</div>
<hr />
<div class="form-group row">
<div class="col-sm-4">
<label>Max All Dweller Stats</label><br />
<button type="button" class="btn btn-primary" ng-click="maxSpecialAll()">Activate</button>
</div>
<div class="col-sm-4">
<label>Max All Dweller Happiness</label><br />
<button type="button" class="btn btn-primary" ng-click="maxhappinessAll()">Activate</button>
</div>
<div class="col-sm-4">
<label>Heal All Dwellers</label><br />
<button type="button" class="btn btn-primary" ng-click="healAll()">Activate</button>
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>Save app Version:</label><label ng-bind="save.appVersion"></label>
</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="firstName">
</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" min="0" max="{{dweller.health.maxHealth}}" ng-model="dweller.health.healthValue">
</div>
<div class="col-sm-4">
<label>Max Health</label>
<input type="number" class="form-control" name="maxhealth" ng-model="dweller.health.maxHealth">
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>Radiation</label>
<input type="number" class="form-control" min="0" max="{{dweller.health.maxHealth}}" name="radiation" ng-model="dweller.health.radiationValue">
</div>
<div class="col-sm-4">
<label>Level</label>
<input type="number" class="form-control" name="level" min="1" ng-model="dweller.experience.currentLevel">
</div>
<div class="col-sm-4">
<label>Skin Color</label>
<input class="form-control jscolor" id="skinColor" name="skincolor" ng-model="skinColor">
</div>
</div>
<div class="form-group row">
<div class="col-sm-4">
<label>Hair Color</label>
<input class="form-control jscolor" name="hairColor" ng-model="hairColor">
</div>
<div class="col-sm-4" ng-if="dweller.gender==1">
<label>Pregnant</label>
<select class="form-control" name="pregnant" ng-model="dweller.pregnant" ng-options="o.v as o.n for o in [{ n: 'Not Pregnant', v: false }, { n: 'Pregnant', v: true }]"></select>
</div>
<div class="col-sm-4" ng-if="dweller.pregnant">
<label>Baby Ready</label>
<select class="form-control" name="babyReady" ng-model="dweller.babyReady" ng-options="o.v as o.n for o in [{ n: 'Not Ready', v: false }, { n: 'Ready', v: true }]"></select>
</div>
</div>
<hr />
<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>
<hr />
<div class="row save">
<button type="button" class="btn btn-primary pull-right" ng-click="maxSpecial()">Max Stats</button>
</div>
<br>
<br>
</form>
</div>
</div>
<div class="row box" ng-show="section == 'extras'">
<div class="col-sm-12 vault_info">
<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="Vault2.sav" ><br>
<br><center><b><a href="SaveDecrypt.html">Fallout Shelter Save Decryptor</a></b></center>
<hr />
<br><center><b><a href="https://github.com/rakion99/shelter-editor">View the Source Code</a></b></center>
<br><center><label>Updated by <a href="https://github.com/rakion99/">rakion99</a> &amp; <a href="https://github.com/TheCreatorJames/">TheCreatorJames</a></label></center>
<br><center><label>Project Originally by <a href="https://github.com/MobileSam/shelter-editor">MobileSam</a>.</label></center>
</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>
<a href="#extras" ng-hide="!save.dwellers" class="tab" ng-click="section = 'extras'" ng-class="{ 'active': section == 'extras' }">Extras</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 <input type="file" id="sav_file" name="sav_file" />
<br /><br/><br />
For the PC Version the save is in<br /> "Documents\My Games\Fallout Shelter"
</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>
<script src="js/jscolor.js"></script>
</body>
</html>