Compare commits

..

No commits in common. "master" and "events_in_gem_calc" have entirely different histories.

4 changed files with 631 additions and 723 deletions

View file

@ -183,7 +183,7 @@ You will have 50 love gems on 01/16/2016. Good things come to those who wait!
## The Web App ## The Web App
You asked for a web app, and here it is! The [web_app](web_app) directory contains a fully featured web app version of SIF Tools. In fact, the web app actually does some things that the original Python scripts don't! (yet.) The best part is, you don't need a web server to run it. You should just be able to open the [sif_tools.html](web_app/sif_tools.html) file in your local web browser and run it right on your own computer. You will need to have JavaScript enabled in your browser however. (Of course you can host these files on a web server just like any other website, if you happen to have access to a web server.) Or you can run the copy hosted on my own web server [here](https://beta.DonaldBurr.com/sif_tools/sif_tools.html). You asked for a web app, and here it is! The [web_app](web_app) directory contains a (mostly) fully featured web app version of SIF Tools. The best part is, you don't need a web server to run it. You should just be able to open the [sif_tools.html](web_app/sif_tools.html) file in your local web browser and run it right on your own computer. You will need to have JavaScript enabled in your browser however. (Of course you can host these files on a web server just like any other website, if you happen to have access to a web server.)
## Credits ## Credits

View file

@ -1,13 +1,10 @@
<!DOCTYPE html>
<html> <html>
<head> <head>
<meta name="generator" content="HTML Tidy for HTML5 for Mac OS X version 5.0.0"> <title>SIFTools</title>
<title>SIFTools</title> <META http-equiv="refresh" content="5;URL=sif_tools.html">
<meta http-equiv="refresh" content="5;URL=sif_tools.html"> </head>
</head> <body bgcolor="#ffffff">
<body bgcolor="#FFFFFF"> <center>This is not the web page you're looking for... <A HREF="sif_tools.html">move along, move along</a>
<center> </center>
This is not the web page you're looking for... <a href="sif_tools.html">move along, move along</a> </body>
</center>
</body>
</html> </html>

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
<!DOCTYPE html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta name="generator" content="HTML Tidy for HTML5 for Mac OS X version 5.0.0"> <link rel="apple-touch-icon" href="apple-touch-icon.png" />
<link rel="apple-touch-icon" href="apple-touch-icon.png"> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes"><!-- width=320 --> <!-- width=320 -->
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, minimal-ui"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1.0, maximum-scale=1.0, minimal-ui">
<meta charset="utf-8"> <meta charset="utf-8">
<title>SIF Tools</title> <title>SIF Tools</title>
@ -11,228 +11,175 @@
<link href="css/external/jquery.timepicker.css" rel="stylesheet"> <link href="css/external/jquery.timepicker.css" rel="stylesheet">
<link href="css/external/jquery.keypad.css" rel="stylesheet"> <link href="css/external/jquery.keypad.css" rel="stylesheet">
<link href="css/sif_tools.css" rel="stylesheet"> <link href="css/sif_tools.css" rel="stylesheet">
<script src="js/external/jquery.js"> <script src="js/external/jquery.js"></script>
</script> <script src="js/external/jquery.cookie.js"></script>
<script src="js/external/jquery.cookie.js"> <script src="js/external/jquery.plugin.js"></script>
</script> <script src="js/external/jquery.keypad.js"></script>
<script src="js/external/jquery.plugin.js"> <script src="js/external/jquery-ui.js"></script>
</script> <script src="js/external/jquery.timepicker.js"></script>
<script src="js/external/jquery.keypad.js"> <script src="js/external/jquery-ui-sliderAccess.js"></script>
</script> <script src="js/external/moment.js"></script>
<script src="js/external/jquery-ui.js"> <script src="js/external/sprintf.js"></script>
</script> <script src="js/external/twitterFetcher.js"></script>
<script src="js/external/jquery.timepicker.js"> <script src="js/sif_tools.js"></script>
</script>
<script src="js/external/jquery-ui-sliderAccess.js">
</script>
<script src="js/external/moment.js">
</script>
<script src="js/external/sprintf.js">
</script>
<script src="js/external/twitterFetcher.js">
</script>
<script src="js/sif_tools.js">
</script>
</head> </head>
<body> <body>
<div id="header" align="center"> <div id="header" align="center">
<h1>SIF Tools</h1> <h1>SIF Tools</h1>
</div>
<div id="tabs">
<ul>
<li>
<a href="#tab-rank">Rank</a>
</li>
<li>
<a href="#tab-love-gem">Gems</a>
</li>
<li>
<a href="#tab-card-level">Cards</a>
</li>
<li>
<a href="#tab-event">Events</a>
</li>
</ul>
<div id="tab-rank">
<div id="the-form" align="center">
Current Rank:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_rank" name="current_rank" placeholder="rank" value=""><br>
Current EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_exp" name="current_exp" placeholder="optional" value=""><br>
Desired Rank:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="desired_rank" name="desired_rank" placeholder="rank" value=""><br>
Game Version:&nbsp;&nbsp;&nbsp; <select id="game_version" name="game_version">
<option value="EN">
EN
</option>
<option value="JP">
JP
</option>
</select><br>
<br>
<div id="button-calculate-rank">
Calculate
</div><br>
<br>
<div id="rank-calc-result-area">
<h1>Results</h1>EXP required:&nbsp;&nbsp;&nbsp;<span id="rank-result-exp">-</span><br>
<br>
You will need to play the following number of songs in order to get this amount of EXP:<br>
<br>(Single / 3xMedFes / 3xMedFes w/EXP boost)<br /><br />
EASY:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-easy">-</span> / <span id="rank-result-songs-easy-mf">-</span> / <span id="rank-result-songs-easy-mfb">-</span><br>
NORMAL:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-normal">-</span> / <span id="rank-result-songs-normal-mf">-</span> / <span id="rank-result-songs-normal-mfb">-</span><br>
HARD:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-hard">-</span> / <span id="rank-result-songs-hard-mf">-</span> / <span id="rank-result-songs-hard-mfb">-</span><br>
EXPERT:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-expert">-</span> / <span id="rank-result-songs-expert-mf">-</span> / <span id="rank-result-songs-expert-mfb">-</span><br>
<br>
At this rank you will have <span id="rank-results-lp">-</span> LP and <span id="rank-results-fp">-</span> friend slots.<br>
<br>
<div id="button-reset-rank">
Reset
</div>
</div>
</div>
</div> </div>
<div id="tab-love-gem">
<div id="love-gem-form" align="center"> <div id="tabs">
Current Gems:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_gems" name="current_gems" placeholder="optional" value=""><br> <ul>
Game Version:&nbsp;&nbsp;&nbsp; <select id="gem_game_version" name="gem_game_version"> <li><a href="#tab-rank">Rank</a></li>
<option value="EN"> <li><a href="#tab-love-gem">Gems</a></li>
EN <li><a href="#tab-card-level">Cards</a></li>
</option> <li><a href="#tab-event">Events</a></li>
<option value="JP"> </ul>
JP
</option> <div id="tab-rank">
</select><br> <div id="the-form" align="center">
<br> Current Rank:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_rank" name="current_rank" placeholder="rank" value="" />
<span id="gem_jp_daily_gems"><input type="checkbox" name="gems_include_daily_gems" id="gems_include_daily_gems" value="YES">Include daily "quest" gems? <br />
(<a href="#" id="gem_quest_readme">What is this?</a>)<br></span> Current EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_exp" name="current_exp" placeholder="optional" value="" />
<div id="gem_quest_readme_dialog" title="About JP Daily 'Quest' Gems" style="display: none;"> <br />
<span id="gem_jp_daily_gems"></span> Desired Rank:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="desired_rank" name="desired_rank" placeholder="rank" value="" />
<p><span id="gem_jp_daily_gems">On JP, you can now obtain a gem every day by completing the following steps, in the following order:</span></p> <br />
<ol> Game Version:&nbsp;&nbsp;&nbsp;
<li><span id="gem_jp_daily_gems">Scout three Normal students. (The daily free scout counts.)</span></li> <select id="game_version" name="game_version">
<li><span id="gem_jp_daily_gems">Clear five live shows (any difficulty.)</span></li> <option value="EN">EN</option>
<li><span id="gem_jp_daily_gems">Practice ("feed") 5 cards of any kind.</span></li> <option value="JP">JP</option>
<li><span id="gem_jp_daily_gems">Play a live show (any difficulty) and get a Full Combo.</span></li> </select>
</ol> <br /><br />
</div><input type="checkbox" name="gems_include_events" id="gems_include_events" value="YES">Include gems from events? (<a href="#" id= <div id="button-calculate-rank">Calculate</div>
"gem_event_readme">Read this first</a>)<br> <br /><br />
<div id="gem-event-options-area" align="center"> <div id="rank-calc-result-area">
<div id="gem_event_readme_dialog" title="About the Event Gem Calculator" style="display: none;"> <h1>Results</h1>
<p>Due to the variable nature of events, calculation of gems gotten through events is at best an approximation. To make the calculations simpler, EXP required:&nbsp;&nbsp;&nbsp;<span id="rank-result-exp">-</span><br /><br />
it assumes that each month has 2 events, ending on the 1st and the 15th, and events alternate between token events and score matches (and medley You will need to play the following number of songs in order to get this amount of EXP:<br /><br />
festivals if on JP.) Also, if you are tiering, it assumes that you will spend some gems to tier, and will use an estimate based on your average EASY:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-easy">-</span><br />
tier, but this will only be an estimate.)</p> NORMAL:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-normal">-</span><br />
</div>Average tier:&nbsp;&nbsp;&nbsp; <select id="gems_tier_level" name="gems_tier_level"> HARD:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-hard">-</span><br />
<option value="1"> EXPERT:&nbsp;&nbsp;&nbsp;<span id="rank-result-songs-expert">-</span><br /><br/>
Tier 1 At this rank you will have <span id="rank-results-lp">-</span> LP and <span id="rank-results-fp">-</span> friend slots.<br /><br />
</option> <div id="button-reset-rank">Reset</div>
<option value="2"> </div>
Tier 2 </div>
</option> </div>
<option value="0"> <div id="tab-love-gem">
Event SR only <div id="love-gem-form" align="center">
</option> Current Gems:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="current_gems" name="current_gems" placeholder="optional" value="" />
</select> <br />
</div><br> Game Version:&nbsp;&nbsp;&nbsp;
Mode:<br> <select id="gem_game_version" name="gem_game_version">
<input type="radio" name="gem-mode" id="gem-mode" class="option-button" value="DATE" checked>Number of gems you'll have on a date?<br> <option value="EN">EN</option>
<input type="radio" name="gem-mode" id="gem-mode" class="option-button" value="GEMS">Date you will have this many gems?<br> <option value="JP">JP</option>
<br> </select>
<div id="gem-date-area"> <br /><br />
Date:&nbsp;&nbsp;&nbsp;<input type="text" size="10" id="gem_desired_date" name="gem_desired_date" readonly="true" placeholder="MM/DD/YYYY" value=""> <span id="gem_jp_daily_gems"><input type="checkbox" name="gems_include_daily_gems" id="gems_include_daily_gems" value="YES" />Include daily "quest" gems?
</div> (<a href="#" id="gem_quest_readme">What is this?</a>)<br />
<div id="gem-desired-gems-area"> <div id="gem_quest_readme_dialog" title="About JP Daily 'Quest' Gems" style="display: none;">
Desired gems:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="gem_desired_gems" name="gem_desired_gems" placeholder="gems" value=""> <p>On JP, you can now obtain a gem every day by completing the following steps, in the following order:</p>
</div><br> <ol>
<br> <li>Scout three Normal students. (The daily free scout counts.)</li>
<input type="checkbox" name="gems_verbose" id="gems_verbose" value="YES">Verbose Mode<br> <li>Clear five live shows (any difficulty.)</li>
<br> <li>Practice ("feed") 5 cards of any kind.</li>
<br> <li>Play a live show (any difficulty) and get a Full Combo.</li>
<div id="button-calculate-gems"> </ol>
Calculate
</div><br>
<br>
<div id="gem-calc-result-area">
<h1>Results</h1><span id="gem-result-summary">-</span><br>
<br>
<div id="gem-result-verbose-area">
<div id="gem-result-textarea">
-
</div> </div>
</span>
<input type="checkbox" name="gems_include_events" id="gems_include_events" value="YES" />Include gems from events? (<a href="#" id="gem_event_readme">Read this first</A>)<br />
<div id="gem-event-options-area" align="center">
<div id="gem_event_readme_dialog" title="About the Event Gem Calculator" style="display: none;">
<p>Due to the variable nature of events, calculation of gems gotten through events is at best an approximation. To make the calculations simpler, it assumes that each month has 2 events, ending on the 1st and the 15th, and events alternate between token events and score matches (and medley festivals if on JP.) Also, if you are tiering, it assumes that you will spend some gems to tier, and will use an estimate based on your average tier, but this will only be an estimate.)</p>
</div>
Average tier:&nbsp;&nbsp;&nbsp;
<select id="gems_tier_level" name="gems_tier_level">
<option value="1">Tier 1</option>
<option value="2">Tier 2</option>
<option value="0">Event SR only</option>
</select>
</div>
<br />
Mode:<br />
<input type="radio" name="gem-mode" id="gem-mode" value="DATE" checked />Number of gems you'll have on a date?<br />
<input type="radio" name="gem-mode" id="gem-mode" value="GEMS" />Date you will have this many gems?<br /><br />
<div id="gem-date-area">
Date:&nbsp;&nbsp;&nbsp;<input type="text" size="10" id="gem_desired_date" name="gem_desired_date" readonly="true" placeholder="MM/DD/YYYY" value="" />
</div>
<div id="gem-desired-gems-area">
Desired gems:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="gem_desired_gems" name="gem_desired_gems" placeholder="gems" value="" />
</div>
<br /><br />
<input type="checkbox" name="gems_verbose" id="gems_verbose" value="YES" />Verbose Mode<br />
<br /><br />
<div id="button-calculate-gems">Calculate</div>
<br /><br />
<div id="gem-calc-result-area">
<h1>Results</h1>
<span id="gem-result-summary">-</span><br /><br />
<div id="gem-result-verbose-area">
<div id="gem-result-textarea">-</div>
</div>
<div id="button-reset-gems">Reset</div>
</div> </div>
<div id="button-reset-gems">
Reset
</div>
</div>
</div> </div>
</div>
<div id="tab-card-level">
<div id="love-gem-form" align="center">
Card Rarity:&nbsp;&nbsp;&nbsp; <select id="card_rarity" name="card_rarity">
<option value="N">
N
</option>
<option value="R">
R
</option>
<option value="SR">
SR
</option>
<option value="UR">
UR
</option>
</select><br>
Current Level:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_current_level" name="card_current_level" placeholder="level"
value=""><br>
Current EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_current_exp" name="card_current_exp" placeholder="optional" value=
""><br>
<br>
Mode:<br>
<input type="radio" name="card-mode" id="card-mode" class="option-button" value="LEVEL" checked>EXP needed to get card to a level?<br>
<input type="radio" name="card-mode" id="card-mode" class="option-button" value="EXP">Final level after feeding an amount of EXP?<br>
<br>
<div id="card-level-area">
Desired level:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_desired_level" name="card_desired_level" placeholder="level"
value="">
<div id="button-card-max-level">Max</div>
</div>
<div id="card-exp-area">
EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_feed_exp" name="card_feed_exp" placeholder="exp" value="">
</div><br>
<input type="checkbox" name="card_same_attribute" id="card_same_attribute" value="YES">Assume cards are same attribute<br>
<br>
<div id="button-calculate-card">
Calculate
</div><br>
<br>
<div id="card-calc-result-area">
<h1>Results</h1><span id="card-result-summary">-</span><br>
<br>
<div id="button-reset-card">
Reset
</div>
</div>
</div>
</div>
<div id="tab-event">
<div id="event-timer-form" align="center">
<h3>Enter Event End Date/Time (in UTC):</h3><br>
<input type="text" size="10" id="event_end_date" name="event_end_date" readonly="true" placeholder="MM/DD/YYYY" value=""> <input type="text" size="5"
id="event_end_time" name="event_end_time" readonly="true" placeholder="HH:MM" value=""><br>
<br>
<div id="button-start-stop-timer">
Start Timer
</div>
<div id="timer_output_area" align="center">
<h1>Timer Not Running</h1>
</div>
<div id="tier_info_output_area" align="center"></div>
<div id="button-clear-timer">
Clear Timer
</div>
</div>
<div id="error-dialog" title="Error">
<p><span id="error-text"></span></p>
</div>
</div>
</div> </div>
<div id="tab-card-level">
<div id="love-gem-form" align="center">
Card Rarity:&nbsp;&nbsp;&nbsp;
<select id="card_rarity" name="card_rarity">
<option value="N">N</option>
<option value="R">R</option>
<option value="SR">SR</option>
<option value="UR">UR</option>
</select>
<br />
Current Level:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_current_level" name="card_current_level" placeholder="level" value="" />
<br />
Current EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_current_exp" name="card_current_exp" placeholder="optional" value="" />
<br /><br />
Mode:<br />
<input type="radio" name="card-mode" id="card-mode" value="LEVEL" checked />EXP needed to get card to a level?<br />
<input type="radio" name="card-mode" id="card-mode" value="EXP" />Final level after feeding an amount of EXP?<br /><br />
<div id="card-level-area">
Desired level:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_desired_level" name="card_desired_level" placeholder="level" value="" />
</div>
<div id="card-exp-area">
EXP:&nbsp;&nbsp;&nbsp;<input type="text" readonly="true" size="5" id="card_feed_exp" name="card_feed_exp" placeholder="exp" value="" />
</div>
<br /><br />
<div id="button-calculate-card">Calculate</div>
<br /><br />
<div id="card-calc-result-area">
<h1>Results</h1>
<span id="card-result-summary">-</span><br /><br />
<div id="button-reset-card">Reset</div>
</div>
</div>
</div>
<div id="tab-event">
<div id="event-timer-form" align="center">
<h3>Enter Event End Date/Time (in UTC):</h3><br />
<input type="text" size="10" id="event_end_date" name="event_end_date" readonly="true" placeholder="MM/DD/YYYY" value="" />
<input type="text" size="5" id="event_end_time" name="event_end_time" readonly="true" placeholder="HH:MM" value="" />
<br /><br />
<div id="button-start-stop-timer">Start Timer</div>
<div id="timer_output_area" align="center">
<h1>Timer Not Running</h1>
</div>
<div id="tier_info_output_area" align="center">
</div>
<div id="button-clear-timer">Clear Timer</div>
</div>
<div id="error-dialog" title="Error">
<p><span id="error-text" /></p>
</div>
</div>
</div>
</body> </body>
</html> </html>