Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.46 KB | None | 0 0
  1. <?
  2. header('Access-Control-Allow-Origin: *');
  3. include_once 'sqlinfo.php';
  4. $mysqli = sql_connect('skypirates');
  5. $user_info = unserialize($_COOKIE['skypirates']);
  6.  
  7. $poll = $mysqli->query('SELECT * FROM characters WHERE owner="'.$user_info['username'].'";');
  8. if($poll->num_rows != 0) {
  9. // echo '<script type="text/javascript">document.location="index.php";</script>';
  10. }
  11. ?>
  12.  
  13. <!DOCTYPE html>
  14. <html>
  15. <head>
  16. <title>Character Generator</title>
  17. <link rel=stylesheet type="text/css" href="bootstrap/css/bootstrap.css">
  18. <link rel=stylesheet type="test/css" href="assets/css/main.css">
  19. <link rel="stylesheet" href="assets/css/chosen.css" />
  20.  
  21. <script src="assets/js/jquery-1.9.1.min.js"></script>
  22. <script src="rulebook.js"></script>
  23.  
  24. <script src="bootstrap/js/bootstrap.js"></script>
  25. <script src="assets/js/chosen.jquery.js"></script>
  26.  
  27. <script type="text/javascript">
  28. $(function() {
  29. $(window).resize(resizeWindow);
  30. resizeWindow();
  31. function resizeWindow() {
  32. if($(window).width() < 1200) {
  33. $("#sidebar").hide();
  34. } else {
  35. $("#sidebar").show();
  36. }
  37. }
  38. //Fun things!
  39. $vals = new Array("The Tidecaller", "The Prodigal Sorcerer", "Shard of the Monolith", "The Eye of Twilight", "The Terror of the Void", "The Tiny Master of Evil", "The Swift Scout", "The Iron Ambassador", "The Eternal Nightmare", "The Frost Archer");
  40. $("#charDesc").attr("placeholder", $vals[Math.floor(Math.random()*$vals.length)]);
  41.  
  42. $vals = new Array("Time for a true display of skill!", "So young, so naive.", "I'll scout ahead!", "This is truly exciting.", "Got axes, need victims.", "Want to see a hat trick?", "Imperials. I hate those guys.", "Face the future.", "Plan? I don't need a plan.", "Suffering awaits!", "Your skills are inferior.", "You belong in a museum!", "I wanna shoot something!", "I like my weapons like I like my music... heavy and metal.");
  43. $(".key-input").each(function(index) {
  44. $repeat = true;
  45. while($repeat == true) {
  46. $val = $vals[Math.floor(Math.random()*$vals.length)];
  47. $repeat = false;
  48. $(".key-input").each(function(index) {
  49. if($(this).attr("placeholder") == $val) {
  50. $repeat = true;
  51. }
  52. });
  53. }
  54. $(this).attr("placeholder", $val);
  55. });
  56. $(".attribute-select").each(function(index){
  57. $atrstr = "<option></option>";
  58. for($i = 0; $i < $Attributes.length; $i++) {
  59. $atrstr += "<option>" + $Attributes[$i].getName() + "</option>";
  60. }
  61. $(this).html($atrstr);
  62. });
  63.  
  64. $(".asset-select").each(function(index){
  65. $atrstr = "<option></option>";
  66. for($i = 0; $i < $Assets.length; $i++) {
  67. if($Assets[$i].getRequirements().indexOf("@Sorcerer's Blood") == -1 && $Assets[$i].getRequirements().indexOf("@Sorcerer's Blood|Petty Mage") == -1) {
  68. $atrstr += "<option>" + $Assets[$i].getName() + "</option>";
  69. }
  70. }
  71. $(this).html($atrstr);
  72. });
  73.  
  74. $(".complication-select").each(function(index){
  75. $atrstr = "<option></option>";
  76. for($i = 0; $i < $Complications.length; $i++) {
  77. $atrstr += "<option>" + $Complications[$i].getName() + "</option>";
  78. }
  79. $(this).html($atrstr);
  80. });
  81.  
  82. $(".complication-select").chosen();
  83. $(".asset-select").chosen();
  84. $(".comp-select").chosen();
  85.  
  86.  
  87.  
  88. $(".asset-select").chosen().change(function() {
  89. $name = $(this).val();
  90. $box = $(this).parent();
  91. $asset = findAsset($name);
  92. $alertstr = "";
  93. $hadQ = false;
  94. $qVal = "";
  95. for(i = 0; i < $asset.getRequirements().length; i++) {
  96. $stat = $asset.getRequirements()[i];
  97. if($stat.substr(0, 1) == "!") {
  98. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> You cannot take this asset and the flaw ' + $stat.substr(1, $stat.length - 1) + '.</div>';
  99. } else if ($stat.substr(0, 1) == "#") {
  100. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> This asset is a Blood asset, and can only be taken at character creation. You cannot have two Blood assets.</div>';
  101. } else if ($stat.substr(0, 1) == "@") {
  102. if($stat.indexOf("|") != -1) {
  103. $spl = $stat.substr(1, $stat.length - 1).split("|");
  104. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> This asset is a magical asset, and requires either the ' + $spl[0] + ' asset or the ' + $spl[1] + ' asset.</div>';
  105. } else {
  106. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> This asset is a magical asset, and requires either the ' + $stat.substr(1, $stat.length - 1) + ' asset.</div>';
  107.  
  108. }
  109. } else if($stat.substr(0, 1) == "?") {
  110. $hadQ = true;
  111. $qVal = $stat.substr(1, $stat.length - 1);
  112. }
  113. }
  114. if($hadQ) {
  115. $box.find(".asset-type").css("display", "inline-block");
  116. $box.find(".asset-input").attr("placeholder", $qVal);
  117. } else {
  118. $box.find(".asset-type").css("display", "none");
  119. }
  120. $box.find('.alerts').html($alertstr);
  121.  
  122.  
  123. $tags = $box.find('.desc');
  124. $tags.html("<blockquote><p>" + $asset.getDescription() + "</p></blockquote>");
  125. updateCounters();
  126.  
  127. });
  128.  
  129. $(document).on('click', "#submit", function(event) {
  130. if($(this).hasClass("disabled")) return;
  131. event.stopPropagation();
  132. $name = $("#charName").val();
  133. if($name.length < 1) {
  134. displayError("<p>You must enter a character name.</p>");
  135. return;
  136. }
  137. $dec = $("#charDesc").val();
  138.  
  139. if($dec.length < 1) {
  140. displayError("<p>You must enter a character title.</p>");
  141. return;
  142. }
  143. $attr = "";
  144. try {
  145. $blooded = false;
  146. $(".attribute-select").each(function(index) {
  147. $box = $(this).parent();
  148. $val = $(this).val();
  149. if($val.indexOf("Master Sorcerer") != -1) {
  150. if($blooded) {
  151. displayError("<p>You can only have a Master Sorcerer attribute once.</p>");
  152. throw 'falure';
  153. }
  154. $blooded = true;
  155. }
  156. $stats = "";
  157.  
  158. if($box.find('.btn-group button').size() > 0) {
  159. $stats += $box.find('.btn-group button.active').html() + "_$_";
  160. }
  161.  
  162. $box.find(".stat").each(function(index) {
  163. $stats += $(this).html() + "_$_";
  164. });
  165.  
  166. $stats = $stats.substr(0, $stats.length - 3);
  167.  
  168.  
  169. $attr += $val + "_~_" + $stats + "_~_";
  170.  
  171. if($box.find('.btn-group button').size() > 0 && $box.find('.btn-group button.active').size() == 0) {
  172. displayError("<p>You must select a defense for the attribute " + $val + ".</p>");
  173. throw 'falure';
  174. }
  175. if($box.find(".tag-box.active").size() < 3) {
  176. displayError("<p>You must have at least 3 tags selected in every attribute.</p>");
  177. throw 'failure';
  178. } else if ($box.find('.tag-box.active').size() > 7) {
  179. displayError("<p>You cannot have more than 7 tags selected in any attribute.</p>");
  180. throw 'failure;'
  181. }
  182.  
  183. $box.find(".tag-box.active").each(function(index) {
  184. $svl = "";
  185. if($(this).find('input').size() > 0) {
  186. if($(this).find("input").val().length < 1) {
  187. displayError("<p>The tag " + $(this).find('.tag-val').html() + " requires a custom value.</p>");
  188. throw 'failure';
  189. }
  190. $svl += ": " + $(this).find("input").val();
  191. }
  192. $attr += $(this).find('.tag-val').html() + $svl + "_$_";
  193. });
  194. $attr = $attr.substr(0, $attr.length - 3);
  195. $attr += "_!_";
  196. });
  197. } catch(flag) {
  198. return;
  199. }
  200. $attr = $attr.substr(0, $attr.length - 3);
  201. if($(".tag-box.active").size() != 20) {
  202. displayError("<p>You must select a total of 20 tags.</p>");
  203. return;
  204. }
  205. $assets = "";
  206. $(".asset-select").each(function(index) {
  207. $val = $(this).val();
  208. if($val.length < 1) {
  209. displayError("<p>You must select an asset.</p>");
  210. return;
  211. }
  212.  
  213. $svl = "";
  214. if($(this).parent().find('.asset-input').is(":visible")) {
  215. if($(this).parent().find(".asset-input").val().length < 1) {
  216. displayError("<p>The asset " + $val + " requires a custom value.</p>");
  217. return;
  218. }
  219.  
  220. $svl += ": " + $(this).parent().find(".asset-input").val();
  221. }
  222.  
  223. $assets += $val + $svl + "_!_";
  224. });
  225.  
  226. $assets = $assets.substr(0, $assets.length - 3);
  227.  
  228. $comps = "";
  229. $comp_ct = 0;
  230. try {
  231. $(".complication-select").each(function(index) {
  232. $val = $(this).val();
  233. if($val.length > 0) {
  234. $comp_ct++;
  235. $svl = "";
  236.  
  237. if($(this).parent().find('.complication-input').is(":visible")) {
  238. if($(this).parent().find(".complication-input").val().length < 1) {
  239. displayError("<p>The complication " + $val + " requires a custom value.</p>");
  240. throw 'field';
  241. }
  242. $svl += ": " + $(this).parent().find(".complication-input").val();
  243. }
  244. if($val == "Custom") {
  245. $val = "";
  246. $svl = $svl.substr(2, $svl.length);
  247. }
  248. $comps += $val + $svl + "_!_";
  249. }
  250. });
  251. } catch (thrown) {
  252. return;
  253. }
  254.  
  255. if($comp_ct == 0) {
  256. displayError("<p>You must select at least one complication.</p>");
  257. return;
  258. }
  259. $comps = $comps.substr(0, $comps.length - 3);
  260.  
  261.  
  262. if($attr.indexOf("Master Sorcerer") != -1) {
  263. if($assets.indexOf("Sorcerer's Blood") == -1) {
  264. displayError("<p>Master Sorcerer requires the asset Sorcerer's Blood.</p>");
  265. return;
  266. }
  267. }
  268. if($assets.indexOf("Sorcerer's Blood") != -1) {
  269. if($attr.indexOf("Master Sorcerer") == -1) {
  270.  
  271. displayError("<p>The asset Sorcerer's Blood requires a Master Sorcerer attribute.</p>");
  272. return;
  273. }
  274. }
  275.  
  276. if($attr.indexOf("Goblin") != -1) {
  277. if($assets.indexOf("Shape Warper") == -1) {
  278. displayError("<p>Goblin requires the asset Shape Warper.</p>");
  279. return;
  280. }
  281. }
  282. if($assets.indexOf("Shape Warper") != -1) {
  283. if($attr.indexOf("Goblin") == -1) {
  284. displayError("<p>The asset Shape Warper requires the Goblin attribute.</p>");
  285. return;
  286. }
  287. }
  288.  
  289. if($assets.indexOf("Deep Pockets") != -1 && $comps.indexOf("Broke") != -1) {
  290. displayError("<p>You cannot have both the complication Broke and the asset Deep Pockets</p>");
  291. return;
  292. }
  293.  
  294. if($("#key1").val().length < 1 || $("#key2").val().length < 1 || $("#key3").val().length < 1) {
  295. displayError("<p>You must create three keys.</p>");
  296. return;
  297. }
  298. $keys = encodeURIComponent($("#key1").val()) + "_!_" + encodeURIComponent($("#key2").val()) + "_!_" + encodeURIComponent($("#key3").val());
  299. $this = $(this);
  300. $this.addClass("disabled");
  301. $this.html("<i class='icon-spinner icon-spin'></i>");
  302. $str = "http://api.studio878software.com/sp/generator/";
  303. $str += "<? echo $user_info['username']; ?>/<? echo $user_info['password']; ?>/";
  304. $str += $name + "/" + $dec + "/" + $attr + "/" + $assets + "/" + $comps + "/" + $keys;
  305. $.ajax({ url: $str, dataType: "jsonp", success:
  306. function(json) {
  307. if(json.message == "success") {
  308. document.location = "index.php";
  309. } else {
  310.  
  311. displayError(json.message);
  312. }
  313. }, error: function (jqXHR, textStatus, errorThrown) {
  314. $(this).removeClass("disabled");
  315. $(this).html("Submit");
  316. displayError("<p> An unknown error occured while trying to process this request. Please try again later.</p>");
  317. }
  318. });
  319. });
  320. $(".complication-select").chosen().change(function() {
  321. $name = $(this).val();
  322. $as = $(this);
  323. $(".complication-select").each(function(index) {
  324. if(!$(this).is($as) && $name == $(this).val()) {
  325. if($(this).parent().find(".complication-type:visible").size() == 0) {
  326. $("#error_modal").find(".modal-body").html("<p>You cannot have the same complication twice.</p>");
  327. $("#error_modal").modal();
  328. $as.val(0).trigger('liszt:updated');
  329. $as.parent().find('.alerts').html("");
  330. $as.parent().find('.desc').html("");
  331. $name = "";
  332. event.stopPropagation();
  333. return;
  334. }
  335. }
  336. });
  337. $box = $(this).parent();
  338. $asset = findComplication($name);
  339. $alertstr = "";
  340. $hadQ = false;
  341. $qVal = "";
  342. for(i = 0; i < $asset.getRequirements().length; i++) {
  343. $stat = $asset.getRequirements()[i];
  344. if($stat.substr(0, 1) == "!") {
  345. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> You cannot take this flaw and the asset ' + $stat.substr(1, $stat.length - 1) + '.</div>';
  346. } else if($stat.substr(0, 1) == "?") {
  347. $hadQ = true;
  348. $qVal = $stat.substr(1, $stat.length - 1);
  349. }
  350. }
  351. if($hadQ) {
  352. $box.find(".complication-type").css("display", "inline-block");
  353. $box.find(".complication-input").attr("placeholder", $qVal);
  354. } else {
  355. $box.find(".complication-type").css("display", "none");
  356. }
  357. $box.find('.alerts').html($alertstr);
  358.  
  359.  
  360. $tags = $box.find('.desc');
  361. $tags.html("<blockquote><p>" + $asset.getDescription() + "</p></blockquote>");
  362. updateCounters();
  363.  
  364. });
  365.  
  366. $(".attribute-select").chosen().change(function(event) {
  367. $name = $(this).val();
  368. $as = $(this);
  369. $(".attribute-select").each(function(index) {
  370. if(!$(this).is($as) && $name == $(this).val()) {
  371. $("#error_modal").find(".modal-body").html("<p>You cannot have the same attribute twice.</p>");
  372. $("#error_modal").modal();
  373. $as.val(0).trigger('liszt:updated');
  374. $as.parent().find('.alerts').html("");
  375. $as.parent().find('.tags').html("");
  376. $name = "";
  377. event.stopPropagation();
  378. }
  379. });
  380. $box = $(this).parent();
  381. $attr = findAttribute($name);
  382. $alertstr = "";
  383. if($attr != null) {
  384. for(i = 0; i < $attr.getStats().length; i++) {
  385. $stat = $attr.getStats()[i];
  386. if($stat.substr(0, 1) == "!") {
  387. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> You cannot take this attribute and the perk ' + $stat.substr(1, $stat.length - 1) + '.</div>';
  388. } else if ($stat.substr(0, 1) == "@") {
  389. $alertstr += '<div class="alert alert-info" style="margin-top: 5px;"> <strong>Warning!</strong> This attribute requires the perk ' + $stat.substr(1, $stat.length - 1) + '.</div>';
  390. } else if($stat.indexOf("|") != -1) {
  391. $alertstr += '<div class="btn-group" data-toggle="buttons-radio">';
  392. $spl = $stat.split("|");
  393. $alertstr += '<button type="button" class="btn">' + $spl[0] + '</button><button type="button" class="btn">' + $spl[1] + '</button></div>';
  394. } else {
  395. $alertstr += '<button type="button" class="btn disabled stat" style="margin-right: 10px;">' + $stat + "</button>";
  396. }
  397. }
  398. $box.find('.alerts').html($alertstr);
  399.  
  400. $tagstr = "";
  401. for(i = 0; i < $attr.getTags().length; i++) {
  402. $tag = $attr.getTags()[i];
  403. if($tag.substr(0, 1) != "?") {
  404. $tagstr += '<button type="button" class="btn tag-box" data-toggle="button"><div class="tag-val">' + $tag + '</div></button>';
  405. } else {
  406. $tagstr += '<br><div type="button" class="btn tag-box" data-toggle="button"><div class="tag-val">' + $tag.substr(1, $tag.length - 1) + '</div>: <input type="text" style="height: 13px; margin-top: 10px"></div>';
  407. }
  408. }
  409. $tags = $box.find('.tags');
  410. $tags.html($tagstr);
  411. updateCounters();
  412. }
  413.  
  414. });
  415.  
  416. $(document).on('click', ".tag-box", function(event) {
  417. $ct = $(".tag-box.active").size();
  418. $sct = $(this).parent().find(".tag-box.active").size();
  419. if($ct > 20) {
  420. event.stopPropagation();
  421. $(this).attr("class", "btn tag-box");
  422. $("#error_modal").find(".modal-body").html("<p>You cannot have more than 20 tags at character creation.</p>");
  423. $("#error_modal").modal();
  424. } else if ($sct > 7) {
  425. event.stopPropagation();
  426. $(this).attr("class", "btn tag-box");
  427. $("#error_modal").find(".modal-body").html("<p>You cannot have more than 7 tags in an attribute at character creation.</p>");
  428. $("#error_modal").modal();
  429.  
  430. } else {
  431. $("#tag-counter").html(20 - $ct);
  432. }
  433. });
  434. $(".btn-group button").click(function(event) {
  435. $(this).parent().find('button').each(function() {
  436. $(this).attr("class", "btn");
  437. })
  438. $(this).attr("class", "btn active");
  439. updateCounters();
  440. });
  441.  
  442. function displayError(body) {
  443. $("#error_modal").find(".modal-body").html(body);
  444. $("#error_modal").modal();
  445. }
  446.  
  447. function updateCounters() {
  448. $("#vit-counter").html(2 + getCounterTotal("Vitality"));
  449. $("#ref-counter").html(2 + getCounterTotal("Reflexes"));
  450. $("#will-counter").html(2 + getCounterTotal("Willpower"));
  451. $("#sd-counter").html(0 + getCounterTotal("Ship Defense"));
  452. $("#wound-counter").html(7 + getCounterTotal("Vitality") + getCounterTotal("Wound Points"));
  453.  
  454. }
  455.  
  456. function getCounterTotal(val) {
  457. $counter = 0;
  458. $(".attribute-select").each(function(index) {
  459. $atr = findAttribute($(this).val());
  460. if($atr != null) {
  461. for(i = 0; i < $atr.getStats().length; i++) {
  462. $stat = $atr.getStats()[i];
  463. if($stat.indexOf("@") == -1 && $stat.indexOf("!") == -1) {
  464. if($stat.indexOf("|") == -1) {
  465. if($stat == val) {
  466. $counter++;
  467. }
  468. } else {
  469. if($(this).parent().find('.btn-group .active').html() == val) {
  470. $counter++;
  471. }
  472. }
  473. }
  474. }
  475. }
  476. });
  477. $(".asset-select").each(function(index) {
  478. $atr = findAsset($(this).val());
  479. if($atr != null) {
  480. for(i = 0; i < $atr.getRequirements().length; i++) {
  481. $stat = $atr.getRequirements()[i];
  482. if($stat.indexOf("$") != -1) {
  483. $spl = $stat.split("$");
  484. if($spl[1] == val) {
  485. $counter += parseInt($spl[0]);
  486. }
  487. }
  488. }
  489. }
  490. });
  491. $(".complication-select").each(function(index) {
  492. $atr = findComplication($(this).val());
  493. if($atr != null) {
  494. for(i = 0; i < $atr.getRequirements().length; i++) {
  495. $stat = $atr.getRequirements()[i];
  496. if($stat.indexOf("$") != -1) {
  497. $spl = $stat.split("$");
  498. if($spl[1] == val) {
  499. $counter += parseInt($spl[0]);
  500. }
  501. }
  502. }
  503. }
  504. });
  505. return $counter;
  506. }
  507.  
  508.  
  509.  
  510. });
  511. </script>
  512. <style type="text/css">
  513.  
  514. body {
  515. background-image: url(assets/images/purty_wood.png);
  516. }
  517.  
  518. .main {
  519. width: 1300px;
  520. margin: 0 auto;
  521. background-color: white;
  522. margin-top: 20px;
  523. box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);
  524. margin-bottom: 20px;
  525. border-radius: 4px;
  526. }
  527. #gen-main {
  528. margin-top: 20px;
  529. }
  530.  
  531. .alerts {
  532. margin-top: 10px;
  533. }
  534.  
  535. .tags {
  536. margin-top: 10px;
  537. }
  538.  
  539. .tag-box {
  540. margin-top: 10px;
  541. margin-right: 10px;
  542. }
  543.  
  544. section {
  545. margin-bottom: 60px;
  546. }
  547.  
  548. .tag-val {
  549. display: inline-block;
  550. }
  551.  
  552. .asset-type {
  553. display: none;
  554. height: 20px;
  555. }
  556.  
  557. .complication-type {
  558. display: none;
  559. height: 20px;
  560. }
  561.  
  562. .key-input {
  563. width: 90%;
  564. margin-left: 5%;
  565. }
  566.  
  567. .stat-counter {
  568. font-size: 1.2em;
  569. font-weight: 800;
  570. text-align: right;
  571. width: 200px;
  572. margin-left: -40px;
  573. margin-bottom: 10px;
  574. }
  575.  
  576. .tag-counter-box {
  577. position: fixed;
  578. top: 350px;
  579. font-weight: 800;
  580. font-size: 1.2em;
  581. margin-left: -50px;
  582. }
  583.  
  584. .icon-chevron-right {
  585. margin-top: 5px !important;
  586. }
  587.  
  588. </style>
  589. </head>
  590.  
  591. <body>
  592. <? include 'banner.php'; ?>
  593. <div id="error_modal" class="modal hide fade">
  594. <div class="modal-header">
  595. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  596. <h3>Error</h3>
  597. </div>
  598. <div class="modal-body">
  599. <p>Something went wrong!</p>
  600. </div>
  601. <div class="modal-footer">
  602. <a href="#" class="btn" data-dismiss="modal">Close</a>
  603. </div>
  604. </div>
  605.  
  606. <div class="main">
  607. <div class="container">
  608. <div class="row">
  609. <div class="span3" id="sidebar">
  610. <ul id="navbar" class="nav nav-list bs-docs-sidenav" style="margin-left: -50px;" data-spy="affix" data-offset-top="0">
  611. <li><a href="#general"><i class="icon-chevron-right"></i>General Information</a></li>
  612. <li><a href="#attributes"><i class="icon-chevron-right"></i>Attributes</a></li>
  613. <li><a href="#assets"><i class="icon-chevron-right"></i> Assets</a></li>
  614. <li><a href="#complications"><i class="icon-chevron-right"></i> Complications</a></li>
  615. <li><a href="#keys"><i class="icon-chevron-right"></i> Keys</a></li>
  616. <li><a href="#stats"><i class="icon-chevron-right"></i> Statistics and Defences</a></li>
  617. <li><a href="#submit"><i class="icon-chevron-right"></i> Finalize and Submit</a></li>
  618.  
  619. </ul>
  620. <div class="tag-counter-box">Tags Remaining: <button class="btn disabled" id="tag-counter">20</button></div>
  621. </div>
  622. <div class="span9" id="gen-main">
  623. <section id="general">
  624. <h1>General Information</h1>
  625. <hr>
  626. <form class="form-horizontal">
  627. <div class="control-group">
  628. <label class="control-label" for="inputEmail">Character Name</label>
  629.  
  630. <div class="controls">
  631. <input type="text" id="charName" placeholder="John Doe">
  632. <span class="help-block">Don't have a name yet? No problem. You can always come back to this later.</span>
  633.  
  634. </div>
  635. </div>
  636. </form>
  637. <form class="form-horizontal">
  638. <div class="control-group">
  639. <label class="control-label" for="inputEmail">Character Title</label>
  640.  
  641. <div class="controls">
  642. <input type="text" id="charDesc" placeholder="The Prodigal Sorcerer">
  643. <span class="help-block">Your character title has no effect on anything mechanically. It's just for fun.</span>
  644.  
  645. </div>
  646. </div>
  647. </form>
  648. </section>
  649. <section id="attributes">
  650. <h1>Attributes</h1>
  651. <hr>
  652. <div class="well">
  653. <select class="attribute-select" data-placeholder="Select an Attribute" tabindex="1">
  654.  
  655. </select>
  656. <div class="alerts"></div>
  657. <div class="tags">
  658. </div>
  659. </div>
  660. <div class="well">
  661. <select class="attribute-select" data-placeholder="Select an Attribute" tabindex="1">
  662.  
  663. </select>
  664. <div class="alerts"></div>
  665. <div class="tags">
  666. </div>
  667. </div>
  668. <div class="well">
  669. <select class="attribute-select" data-placeholder="Select an Attribute" tabindex="1">
  670.  
  671. </select>
  672. <div class="alerts"></div>
  673. <div class="tags">
  674. </div>
  675. </div>
  676. <div class="well">
  677. <select class="attribute-select" data-placeholder="Select an Attribute" tabindex="1">
  678.  
  679. </select>
  680. <div class="alerts"></div>
  681. <div class="tags">
  682. </div>
  683. </div>
  684. </section>
  685. <section id="assets">
  686. <h1>Assets</h1>
  687. <hr>
  688. <h5>Your first asset is free. You may purchase additional assets using Experience from the Experience Shop for 3 Experience.</h5>
  689. <div class="well">
  690. <select class="asset-select" data-placeholder="Select an Asset" tabindex="1">
  691.  
  692. </select>
  693. <div class="asset-type"><input type="text" class="asset-input" placeholder="Custom Value"></div>
  694.  
  695. <div class="alerts"></div>
  696. <div class="desc">
  697. </div>
  698. </div>
  699. </section>
  700. <section id="complications">
  701. <h1>Complications</h1>
  702. <hr>
  703. <h5>You must take at least one Complication at character creation. For each Complication beyond the first, you get one additional Experience, up to a maximum of 2 additional Experience. If you want to have more than four Complications, contact a GM.</h5>
  704. <div class="well">
  705. <select class="complication-select" data-placeholder="Select a Complication" tabindex="1">
  706. </select>
  707. <div class="complication-type"><input type="text" class="complication-input" placeholder="Custom Value"></div>
  708. <div class="alerts"></div>
  709. <div class="desc">
  710. </div>
  711. </div>
  712. <div class="well">
  713. <select class="complication-select" data-placeholder="Select a Complication" tabindex="1">
  714. </select>
  715. <div class="complication-type"><input type="text" class="complication-input" placeholder="Custom Value"></div>
  716. <div class="alerts"></div>
  717. <div class="desc">
  718. </div>
  719. </div>
  720. <div class="well">
  721. <select class="complication-select" data-placeholder="Select a Complication" tabindex="1">
  722. </select>
  723. <div class="complication-type"><input type="text" class="complication-input" placeholder="Custom Value"></div>
  724. <div class="alerts"></div>
  725. <div class="desc">
  726. </div>
  727. </div>
  728. <div class="well">
  729. <select class="complication-select" data-placeholder="Select a Complication" tabindex="1">
  730. </select>
  731. <div class="complication-type"><input type="text" class="complication-input" placeholder="Custom Value"></div>
  732. <div class="alerts"></div>
  733. <div class="desc">
  734. </div>
  735. </div>
  736. </section>
  737. <section id="keys">
  738. <h1>Keys</h1>
  739. <hr>
  740. <h5>You get three keys at character creation. You may purchase additional keys from the Experience Shop for 5 Experience.</h5>
  741. <div class="well">
  742. <form class="form-horizontal" style="margin-left: -100px;">
  743. <div class="control-group">
  744. <label class="control-label" for="inputEmail">Key 1</label>
  745.  
  746. <div class="controls">
  747. <input type="text" id="key1" class="key-input" placeholder="Time for a true display of skill!">
  748.  
  749. </div>
  750. </div>
  751. </form>
  752. <form class="form-horizontal" style="margin-left: -100px;">
  753. <div class="control-group">
  754. <label class="control-label" for="inputEmail">Key 2</label>
  755.  
  756. <div class="controls">
  757. <input type="text" id="key2" class="key-input" placeholder="This is truly exciting.">
  758.  
  759. </div>
  760. </div>
  761. </form>
  762. <form class="form-horizontal" style="margin-left: -100px;">
  763. <div class="control-group">
  764. <label class="control-label" for="inputEmail">Key 3</label>
  765.  
  766. <div class="controls">
  767. <input type="text" id="key3" class="key-input" placeholder="I'll scout ahead!">
  768.  
  769. </div>
  770. </div>
  771. </form>
  772. </div>
  773. </section>
  774. <section id="stats">
  775. <h1>Statistics and Defences</h1>
  776. <hr>
  777. <div class="well">
  778. <div class="stat-counter">Vitality: <button class="btn disabled" id="vit-counter">2</button> </div>
  779. <div class="stat-counter">Reflexes: <button class="btn disabled" id="ref-counter">2</button> </div>
  780. <div class="stat-counter">Willpower: <button class="btn disabled" id="will-counter">2</button> </div>
  781. <div class="stat-counter">Ship Defense: <button class="btn disabled" id="sd-counter">0</button></div>
  782. <div class="stat-counter">Wound Points: <button class="btn disabled" id="wound-counter">7</button></div>
  783.  
  784. </div>
  785. </section>
  786. <section id="submit">
  787. <h1>Finalize and Submit</h1>
  788. <hr>
  789. <h4>If you're content with your character, you can submit them below. Once this is done, you will be unable to make any changes to your character, with the exception of expending Experience points.</h4>
  790. <br><button class="btn btn-large btn-danger" id="#submit">Submit</button>
  791. </section>
  792. </div>
  793. </div>
  794. </div>
  795. </div>
  796. <? include 'footer.php'; ?>
  797.  
  798. </body>
  799. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement