|
|
| Linha 1: |
Linha 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /*global jQuery */ |
| function updateTable () {
| | /*! |
| updateAbilityTotals ();
| | * Lettering.JS 0.7.0 |
| updatePointCosts ();
| | * |
| }
| | * Copyright 2010, Dave Rupert http://daverupert.com |
| | | * Released under the WTFPL license |
| function updateMod () {
| | * http://sam.zoy.org/wtfpl/ |
| updateAbilityTotals ();
| | * |
| }
| | * Thanks to Paul Irish - http://paulirish.com - for the feedback. |
| | | * |
| //Updates Total Scores and Ability Modifiers | | * Date: Mon Sep 20 17:14:00 2010 -0600 |
| function updateAbilityTotals () {
| | */ |
| var strBaseScore = Number(document.getElementById("forcaBaseScore").value);
| | (function($){ |
| var dexBaseScore = Number(document.getElementById("destrezaBaseScore").value);
| | function injector(t, splitter, klass, after) { |
| var conBaseScore = Number(document.getElementById("constituicaoBaseScore").value);
| | var text = t.text() |
| var intBaseScore = Number(document.getElementById("inteligenciaBaseScore").value);
| | , a = text.split(splitter) |
| var wisBaseScore = Number(document.getElementById("sabedoriaBaseScore").value);
| | , inject = ''; |
| var chaBaseScore = Number(document.getElementById("carismaBaseScore").value);
| | if (a.length) { |
| | | $(a).each(function(i, item) { |
| var strMod = Number(document.getElementById("forcaRacialMod").value);
| | inject += '<span class="'+klass+(i+1)+'" aria-hidden="true">'+item+'</span>'+after; |
| var dexMod = Number(document.getElementById("destrezaRacialMod").value);
| | }); |
| var conMod = Number(document.getElementById("constituicaoRacialMod").value);
| | t.attr('aria-label',text) |
| var intMod = Number(document.getElementById("inteligenciaRacialMod").value);
| | .empty() |
| var wisMod = Number(document.getElementById("sabedoriaRacialMod").value);
| | .append(inject) |
| var chaMod = Number(document.getElementById("carismaRacialMod").value);
| |
| | |
| var totalStr = strBaseScore + strMod;
| |
| var totalDex = dexBaseScore + dexMod;
| |
| var totalCon = conBaseScore + conMod;
| |
| var totalInt = intBaseScore + intMod;
| |
| var totalWis = wisBaseScore + wisMod;
| |
| var totalCha = chaBaseScore + chaMod;
| |
| | |
| var forcaMod = Math.floor((totalStr - 10) / 2);
| |
| var destrezaMod = Math.floor((totalDex - 10) / 2);
| |
| var constituicaoMod = Math.floor((totalCon - 10) / 2);
| |
| var inteligenciaMod = Math.floor((totalInt - 10) / 2);
| |
| var sabedoriaMod = Math.floor((totalWis - 10) / 2);
| |
| var carismaMod = Math.floor((totalCha - 10) / 2);
| |
| | |
| //alert("strBaseScore: "+strBaseScore+" strRaceMod: "+strRaceMod+" totalStr: "+totalStr+" forcaMod: "+forcaMod);
| |
| | |
| document.getElementById("forcaTotalScore").innerHTML = totalStr;
| |
| document.getElementById("destrezaTotalScore").innerHTML = totalDex; | |
| document.getElementById("constituicaoTotalScore").innerHTML = totalCon;
| |
| document.getElementById("inteligenciaTotalScore").innerHTML = totalInt;
| |
| document.getElementById("sabedoriaTotalScore").innerHTML = totalWis;
| |
| document.getElementById("carismaTotalScore").innerHTML = totalCha;
| |
| | |
| if (forcaMod < 1) {
| |
| document.getElementById("forcaAbilityMod").innerHTML = forcaMod;
| |
| } else {
| |
| document.getElementById("forcaAbilityMod").innerHTML = "+"+forcaMod;
| |
| }
| |
| | |
| if (destrezaMod < 1) {
| |
| document.getElementById("destrezaAbilityMod").innerHTML = destrezaMod;
| |
| } else {
| |
| document.getElementById("destrezaAbilityMod").innerHTML = "+"+destrezaMod;
| |
| }
| |
| | |
| if (constituicaoMod < 1) {
| |
| document.getElementById("constituicaoAbilityMod").innerHTML = constituicaoMod;
| |
| } else {
| |
| document.getElementById("constituicaoAbilityMod").innerHTML = "+"+constituicaoMod;
| |
| }
| |
| | |
| if (inteligenciaMod < 1) {
| |
| document.getElementById("inteligenciaAbilityMod").innerHTML = inteligenciaMod;
| |
| } else {
| |
| document.getElementById("inteligenciaAbilityMod").innerHTML = "+"+inteligenciaMod;
| |
| }
| |
|
| |
|
| if (sabedoriaMod < 1) {
| | } |
| document.getElementById("sabedoriaAbilityMod").innerHTML = sabedoriaMod; | |
| } else {
| |
| document.getElementById("sabedoriaAbilityMod").innerHTML = "+"+sabedoriaMod;
| |
| } | | } |
|
| |
|
| if (carismaMod < 1) {
| |
| document.getElementById("carismaAbilityMod").innerHTML = carismaMod;
| |
| } else {
| |
| document.getElementById("carismaAbilityMod").innerHTML = "+"+carismaMod;
| |
| }
| |
| }
| |
|
| |
| //Updates the Point Buy data based on table changes
| |
| function updatePointCosts () {
| |
| var strBaseScore = Number(document.getElementById("forcaBaseScore").value);
| |
| var dexBaseScore = Number(document.getElementById("destrezaBaseScore").value);
| |
| var conBaseScore = Number(document.getElementById("constituicaoBaseScore").value);
| |
| var intBaseScore = Number(document.getElementById("inteligenciaBaseScore").value);
| |
| var wisBaseScore = Number(document.getElementById("sabedoriaBaseScore").value);
| |
| var chaBaseScore = Number(document.getElementById("carismaBaseScore").value);
| |
|
| |
| var strCost = setCost(strBaseScore);
| |
| var dexCost = setCost(dexBaseScore);
| |
| var conCost = setCost(conBaseScore);
| |
| var intCost = setCost(intBaseScore);
| |
| var wisCost = setCost(wisBaseScore);
| |
| var chaCost = setCost(chaBaseScore);
| |
| var totalCost = strCost + dexCost + conCost + intCost + wisCost + chaCost;
| |
|
| |
| document.getElementById("forcaPointCost").innerHTML = strCost;
| |
| document.getElementById("destrezaPointCost").innerHTML = dexCost;
| |
| document.getElementById("constituicaoPointCost").innerHTML = conCost;
| |
| document.getElementById("inteligenciaPointCost").innerHTML = intCost;
| |
| document.getElementById("sabedoriaPointCost").innerHTML = wisCost;
| |
| document.getElementById("carismaPointCost").innerHTML = chaCost;
| |
| document.getElementById("pointsUsed").innerHTML = "Pontos Usados: "+totalCost+" / 27";
| |
|
| |
|
| }
| | var methods = { |
| | init : function() { |
|
| |
|
| //Sets how many points a set ability score costs
| | return this.each(function() { |
| function setCost (baseScore) {
| | injector($(this), '', 'char', ''); |
| if (baseScore === 8) {
| | }); |
| return 0
| |
| } else if (baseScore === 9) {
| |
| return 1
| |
| } else if (baseScore === 10) {
| |
| return 2
| |
| } else if (baseScore === 11) {
| |
| return 3
| |
| } else if (baseScore === 12) {
| |
| return 4
| |
| } else if (baseScore === 13) {
| |
| return 5
| |
| } else if (baseScore === 14) {
| |
| return 7
| |
| } else if (baseScore === 15) {
| |
| return 9
| |
| }
| |
| }
| |
|
| |
|
| //Resets Base Scores that are out of range to 8
| | }, |
| function correctImproperBaseScores () {
| |
| var strBaseScore = Number(document.getElementById("forcaBaseScore").value);
| |
| var dexBaseScore = Number(document.getElementById("destrezaBaseScore").value);
| |
| var conBaseScore = Number(document.getElementById("constituicaoBaseScore").value);
| |
| var intBaseScore = Number(document.getElementById("inteligenciaBaseScore").value);
| |
| var wisBaseScore = Number(document.getElementById("sabedoriaBaseScore").value);
| |
| var chaBaseScore = Number(document.getElementById("carismaBaseScore").value);
| |
|
| |
|
| if (!(strBaseScore >= 8 && strBaseScore <= 15)) {
| | words : function() { |
| document.getElementById("forcaBaseScore").value = "8";
| |
| }
| |
| if (!(dexBaseScore >= 8 && dexBaseScore <= 15)) {
| |
| document.getElementById("destrezaBaseScore").value = "8";
| |
| }
| |
| if (!(conBaseScore >= 8 && conBaseScore <= 15)) {
| |
| document.getElementById("constituicaoBaseScore").value = "8";
| |
| }
| |
| if (!(intBaseScore >= 8 && intBaseScore <= 15)) {
| |
| document.getElementById("inteligenciaBaseScore").value = "8";
| |
| }
| |
| if (!(wisBaseScore >= 8 && wisBaseScore <= 15)) {
| |
| document.getElementById("sabedoriaBaseScore").value = "8"; | |
| }
| |
| if (!(chaBaseScore >= 8 && chaBaseScore <= 15)) {
| |
| document.getElementById("carismaBaseScore").value = "8";
| |
| }
| |
|
| |
|
| } | | return this.each(function() { |
| | injector($(this), ' ', 'word', ' '); |
| | }); |
|
| |
|
| function correctImproperBaseScores () {
| | }, |
| var strModScore = Number(document.getElementById("forcaBaseScore").value);
| |
| var dexModScore = Number(document.getElementById("destrezaBaseScore").value);
| |
| var conModScore = Number(document.getElementById("constituicaoBaseScore").value);
| |
| var intModScore = Number(document.getElementById("inteligenciaBaseScore").value);
| |
| var wisBaseScore = Number(document.getElementById("sabedoriaBaseScore").value);
| |
| var chaBaseScore = Number(document.getElementById("carismaBaseScore").value);
| |
|
| |
|
| if (!(strBaseScore >= 8 && strBaseScore <= 15)) {
| | lines : function() { |
| document.getElementById("forcaBaseScore").value = "8";
| |
| }
| |
| if (!(dexBaseScore >= 8 && dexBaseScore <= 15)) {
| |
| document.getElementById("destrezaBaseScore").value = "8";
| |
| }
| |
| if (!(conBaseScore >= 8 && conBaseScore <= 15)) {
| |
| document.getElementById("constituicaoBaseScore").value = "8";
| |
| }
| |
| if (!(intBaseScore >= 8 && intBaseScore <= 15)) {
| |
| document.getElementById("inteligenciaBaseScore").value = "8";
| |
| }
| |
| if (!(wisBaseScore >= 8 && wisBaseScore <= 15)) {
| |
| document.getElementById("sabedoriaBaseScore").value = "8"; | |
| }
| |
| if (!(chaBaseScore >= 8 && chaBaseScore <= 15)) {
| |
| document.getElementById("carismaBaseScore").value = "8";
| |
| }
| |
|
| |
|
| } | | return this.each(function() { |
| | var r = "eefec303079ad17405c889e092e105b0"; |
| | // Because it's hard to split a <br/> tag consistently across browsers, |
| | // (*ahem* IE *ahem*), we replace all <br/> instances with an md5 hash |
| | // (of the word "split"). If you're trying to use this plugin on that |
| | // md5 hash string, it will fail because you're being ridiculous. |
| | injector($(this).children("br").replaceWith(r).end(), r, 'line', ''); |
| | }); |
|
| |
|
| function correctImproperModScores () {
| | } |
| var strRacialMod = Number(document.getElementById("forcaRacialMod").value); | | }; |
| var dexRacialMod = Number(document.getElementById("destrezaRacialMod").value);
| |
| var conRacialMod = Number(document.getElementById("constituicaoRacialMod").value);
| |
| var intRacialMod = Number(document.getElementById("inteligenciaRacialMod").value);
| |
| var wisRacialMod = Number(document.getElementById("sabedoriaRacialMod").value);
| |
| var chaRacialMod = Number(document.getElementById("carismaRacialMod").value);
| |
|
| |
|
| if (!(strRacialMod >= -4 && strRacialMod <= 2)) { | | $.fn.lettering = function( method ) { |
| document.getElementById("forcaRacialMod").value = "0"; | | // Method calling logic |
| }
| | if ( method && methods[method] ) { |
| if (!(dexRacialMod >= -4 && dexRacialMod <= 2)) {
| | return methods[ method ].apply( this, [].slice.call( arguments, 1 )); |
| document.getElementById("destrezaRacialMod").value = "0";
| | } else if ( method === 'letters' || ! method ) { |
| }
| | return methods.init.apply( this, [].slice.call( arguments, 0 ) ); // always pass an array |
| if (!(conRacialMod >= -4 && conRacialMod <= 2)) {
| | } |
| document.getElementById("constituicaoRacialMod").value = "0"; | | $.error( 'Method ' + method + ' does not exist on jQuery.lettering' ); |
| }
| | return this; |
| if (!(intRacialMod >= -4 && intRacialMod <= 2)) {
| | }; |
| document.getElementById("inteligenciaRacialMod").value = "0";
| |
| }
| |
| if (!(wisRacialMod >= -4 && wisRacialMod <= 2)) {
| |
| document.getElementById("sabedoriaRacialMod").value = "0"; | |
| }
| |
| if (!(chaRacialMod >= -4 && chaRacialMod <= 2)) {
| |
| document.getElementById("carismaRacialMod").value = "0"; | |
| } | |
|
| |
|
| } | | })(jQuery); |