mirror of
https://github.com/ikrpg/ikrpg.github.io.git
synced 2026-05-13 06:26:26 +00:00
VERSION 2
This commit is contained in:
parent
1bcfb52b9e
commit
c2ca780c11
109 changed files with 18462 additions and 12046 deletions
|
|
@ -1,211 +1,401 @@
|
|||
function addListener(elem, event, f) {
|
||||
if (elem.addEventListener) elem.addEventListener(event, f, false);
|
||||
else elem.attachEvent("on"+event, f);
|
||||
}
|
||||
// global
|
||||
// var ikrpg
|
||||
|
||||
function Heroic(Hero) {
|
||||
var self = this;
|
||||
self.search = "";
|
||||
self.url = function() {
|
||||
document.location.search = self.search;
|
||||
var ikrpg = ikrpg || {};
|
||||
|
||||
(function () {
|
||||
//'use strict';
|
||||
|
||||
ikrpg.cards = ikrpg.cards || {};
|
||||
|
||||
ikrpg.cards.data = {
|
||||
"portrait": { "url": "", "top": 0, "left": 0, "width": 0 },
|
||||
"hero-name": "Hero's name",
|
||||
"archetype": "Archetype",
|
||||
"race": "Race",
|
||||
"level": "Level",
|
||||
"careers": "Careers",
|
||||
"phy": 0,
|
||||
"spd": 0,
|
||||
"str": 0,
|
||||
"agl": 0,
|
||||
"poi": 0,
|
||||
"prw": 0,
|
||||
"int": 0,
|
||||
"arc": 0,
|
||||
"per": 0,
|
||||
"def": 0,
|
||||
"ini": 0,
|
||||
"cmd": 0,
|
||||
"arm": 0,
|
||||
"wil": 0,
|
||||
"rat1": { "name": "Weapon name", "rat": 0, "rng": 0, "aoe": 0, "pow": 0 },
|
||||
"rat2": { "name": "Weapon name", "rat": 0, "rng": 0, "aoe": 0, "pow": 0 },
|
||||
"mat1": { "name": "Weapon name", "mat": 0, "pow": 0, "ps": 0 },
|
||||
"mat2": { "name": "Weapon name", "mat": 0, "pow": 0, "ps": 0 },
|
||||
"mat3": { "name": "Weapon name", "mat": 0, "pow": 0, "ps": 0 },
|
||||
"feats": 0,
|
||||
"ini_mod": 0,
|
||||
"def_mod": 0,
|
||||
"arm_mod": 0,
|
||||
"cmd_mod": 0,
|
||||
"xp": 0,
|
||||
"r1m1": true,
|
||||
"r2m1": false,
|
||||
"r1m2": false,
|
||||
"r2": false,
|
||||
"m2": false,
|
||||
"ability1": { "title": "ability", "description": "description" },
|
||||
"ability2": { "title": "", "description": "" },
|
||||
"ability3": { "title": "", "description": "" },
|
||||
"ability4": { "title": "", "description": "" },
|
||||
"ability5": { "title": "", "description": "" },
|
||||
"ability6": { "title": "", "description": "" },
|
||||
"ability7": { "title": "", "description": "" },
|
||||
"ability8": { "title": "", "description": "" },
|
||||
"ability9": { "title": "", "description": "" },
|
||||
"ability10": { "title": "", "description": "" },
|
||||
"ability11": { "title": "", "description": "" },
|
||||
"ability12": { "title": "", "description": "" },
|
||||
"s1": { "title": "skill", "stat": "INI", "base": "0", "lvl": "0", "sum": "0" },
|
||||
"s2": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s3": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s4": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s5": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s6": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s7": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s8": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s9": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s10": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s11": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s12": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s13": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s14": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s15": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s16": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s17": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s18": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s19": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s20": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
"s21": { "title": "", "stat": "", "base": "", "lvl": "", "sum": "" },
|
||||
//"benefit1": { "title": "Common Feats", "description": "Boost Non-Attack Skill Roll - Heroic Dodge - Make a Quick Action - Parry - Relentless Charge - Reroll Failed Attack/Skill/Willpower roll - Run and Gun - Shake Continuous Effect - Shake Knockdown - Shake Stationary - Sprint - Two-Fister - Walk it Off" },
|
||||
//"benefit2": { "title": "Benefit/Feat name", "description": "Benefit/Feat description" },
|
||||
//"benefit3": { "title": "...", "description": "..." },
|
||||
"benefit1": { "title": "benefit/feat", "description": "description" },
|
||||
"benefit2": { "title": "", "description": "" },
|
||||
"benefit3": { "title": "", "description": "" },
|
||||
"benefit4": { "title": "", "description": "" },
|
||||
"benefit5": { "title": "", "description": "" },
|
||||
"benefit6": { "title": "", "description": "" },
|
||||
"benefit7": { "title": "", "description": "" },
|
||||
"benefit8": { "title": "", "description": "" },
|
||||
"benefit9": { "title": "", "description": "" },
|
||||
"benefit10": { "title": "", "description": "" },
|
||||
"benefit11": { "title": "", "description": "" },
|
||||
"spell1": { "title": "spell", "cost": 0, "rng": 0, "aoe": "-", "pow": 0, "up": "NO", "off": "YES", "description": "description" },
|
||||
"spell2": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell3": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell4": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell5": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell6": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell7": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell8": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell9": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell10": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"spell11": { "title": "", "cost": "", "rng": "", "aoe": "", "pow": "", "up": "", "off": "", "description": "" },
|
||||
"gear1": { "title": "gear", "benefit": "benefit" },
|
||||
"gear2": { "title": "", "benefit": "" },
|
||||
"gear3": { "title": "", "benefit": "" },
|
||||
"gear4": { "title": "", "benefit": "" },
|
||||
"gear5": { "title": "", "benefit": "" },
|
||||
"gear6": { "title": "", "benefit": "" },
|
||||
"gear7": { "title": "", "benefit": "" },
|
||||
"gear8": { "title": "", "benefit": "" },
|
||||
"gear9": { "title": "", "benefit": "" },
|
||||
"gear10": { "title": "", "benefit": "" },
|
||||
"gear11": { "title": "", "benefit": "" },
|
||||
"gear12": { "title": "", "benefit": "" },
|
||||
"gear13": { "title": "", "benefit": "" },
|
||||
"gear14": { "title": "", "benefit": "" },
|
||||
"gear15": { "title": "", "benefit": "" },
|
||||
"gear16": { "title": "", "benefit": "" },
|
||||
"gear17": { "title": "", "benefit": "" },
|
||||
"gear18": { "title": "", "benefit": "" },
|
||||
"gear19": { "title": "", "benefit": "" },
|
||||
"gear20": { "title": "", "benefit": "" },
|
||||
"gear21": { "title": "", "benefit": "" },
|
||||
"gear22": { "title": "", "benefit": "" },
|
||||
"gear23": { "title": "", "benefit": "" },
|
||||
"playerName": "Player's Name",
|
||||
"sex": "sex",
|
||||
"definingCharacteristics": "Defining Characteristics",
|
||||
"faith": "Faith",
|
||||
"weight": "Weight",
|
||||
"height": "Height",
|
||||
"injury1": "Injury 1",
|
||||
"injury2": "Injury 2",
|
||||
"injury3": "...",
|
||||
"belief1": "Religious Belief 1",
|
||||
"belief2": "Religious Belief 2",
|
||||
"belief3": "...",
|
||||
"connection1": "Connection 1",
|
||||
"connection2": "Connection 2",
|
||||
"connection3": "...",
|
||||
"connection4": "",
|
||||
"language1": "Language 1",
|
||||
"language2": "Language 2",
|
||||
"language3": "...",
|
||||
"language4": "",
|
||||
"language5": "",
|
||||
"language6": "",
|
||||
"language7": "",
|
||||
"language8": "",
|
||||
"note1": { "title": "Permanent Injuries", "text": "None" },
|
||||
"note2": { "title": "Spoken Languages", "text": "" },
|
||||
"note3": { "title": "Religious Beliefs", "text": "" },
|
||||
"note4": { "title": "Connections", "text": "None" },
|
||||
"note5": { "title": "Gold", "text": "0 gc" },
|
||||
"note6": { "title": "", "text": "" },
|
||||
"note7": { "title": "", "text": "" },
|
||||
"note8": { "title": "", "text": "" },
|
||||
"note9": { "title": "", "text": "" },
|
||||
"note10": { "title": "", "text": "" },
|
||||
"note11": { "title": "", "text": "" },
|
||||
"note12": { "title": "", "text": "" }
|
||||
};
|
||||
self.redirect = function(link) {
|
||||
link.href = self.url();
|
||||
link.click();
|
||||
|
||||
ikrpg.cards.updateData = function () {
|
||||
var data = ikrpg.cards.data;
|
||||
for (var key in data) {
|
||||
var value = data[key];
|
||||
|
||||
if (key == "hero-name") {
|
||||
var currentData = $(".hero-name").val();
|
||||
ikrpg.cards.data["hero-name"] = currentData;
|
||||
} else if (typeof value === "object") {
|
||||
for (var subkey in value) {
|
||||
var subvalue = value[subkey];
|
||||
var currentData = $("#"+key+" ."+subkey).val();
|
||||
ikrpg.cards.data[key][subkey] = currentData;
|
||||
}
|
||||
} else { // not object
|
||||
var currentData = $("#"+key).val();
|
||||
ikrpg.cards.data[key] = currentData;
|
||||
}
|
||||
}
|
||||
};
|
||||
self.switchWeapons = function() {
|
||||
var r1m1 = Hero.r1m1;
|
||||
var r2m1 = Hero.r2m1;
|
||||
var r1m2 = Hero.r1m2;
|
||||
var r2 = Hero.r2;
|
||||
var m2 = Hero.m2;
|
||||
if (r1m1 == true) { Hero.r1m1 = false; Hero.r2m1 = true; }
|
||||
else if (r2m1 == true) { Hero.r2m1 = false; Hero.r1m2 = true; }
|
||||
else if (r1m2 == true) { Hero.r1m2 = false; Hero.r2 = true; }
|
||||
else if (r2 == true) { Hero.r2 = false; Hero.m2 = true; }
|
||||
else if (m2 == true) { Hero.m2 = false; Hero.r1m1 = true; }
|
||||
else { Hero.r1m1 = true; }
|
||||
document.location.search = encodeURIComponent(JSON.stringify(Hero));
|
||||
|
||||
ikrpg.cards.switchWeapons = function (event) {
|
||||
if(event) event.preventDefault();
|
||||
|
||||
var data = ikrpg.cards.data;
|
||||
if (data.r1m1 == true) { data.r1m1 = false; data.r2m1 = true; }
|
||||
else if (data.r2m1 == true) { data.r2m1 = false; data.r1m2 = true; }
|
||||
else if (data.r1m2 == true) { data.r1m2 = false; data.r2 = true; }
|
||||
else if (data.r2 == true) { data.r2 = false; data.m2 = true; }
|
||||
else if (data.m2 == true) { data.m2 = false; data.r1m1 = true; }
|
||||
else { data.r1m1 = true; }
|
||||
|
||||
ikrpg.cards.data = data;
|
||||
|
||||
var showElements = function(array) { $.each(array, function(i, e) { e.show(); }); };
|
||||
var hideElements = function(array) { $.each(array, function(i, e) { e.hide(); }); };
|
||||
var r1m1 = $("div#r1m1:first");
|
||||
var r2m1 = $("div#r2m1:first");
|
||||
var r1m2 = $("div#r1m2:first");
|
||||
var r2 = $("div#r2:first");
|
||||
var m2 = $("div#m2:first");
|
||||
var rat1 = $("div#rat1:first");
|
||||
var rat2 = $("div#rat2:first");
|
||||
var mat1 = $("div#mat1:first");
|
||||
var mat2 = $("div#mat2:first");
|
||||
var mat3 = $("div#mat3:first");
|
||||
if (data.r1m1) {
|
||||
showElements([ r1m1, rat1, mat2 ]);
|
||||
hideElements([ r2m1, r1m2, r2, m2, mat1, rat2, mat3 ]);
|
||||
} else if (data.r2m1) {
|
||||
showElements([ r2m1, rat1, rat2, mat3 ]);
|
||||
hideElements([ r1m1, r1m2, r2, m2, mat1, mat2 ]);
|
||||
} else if (data.r1m2) {
|
||||
showElements([ r1m2, rat1, mat2, mat3 ]);
|
||||
hideElements([ r1m1, r2m1, r2, m2, mat1, rat2 ]);
|
||||
} else if (data.r2) {
|
||||
showElements([ r2, rat1, rat2 ]);
|
||||
hideElements([ r1m1, r2m1, r1m2, m2, mat1, mat2, mat3 ]);
|
||||
} else if (data.m2) {
|
||||
showElements([ m2, mat1, mat2 ]);
|
||||
hideElements([ r1m1, r2m1, r1m2, r2, rat1, rat2, mat3 ]);
|
||||
}
|
||||
};
|
||||
self.bind = function() {
|
||||
var query = window.location.search;
|
||||
var Query = (query == "") ? {} : JSON.parse(unescape(query.substring(1)));
|
||||
|
||||
for (attr in Query) Hero[attr] = Query[attr];
|
||||
|
||||
var isArray = function(someVar) { return Object.prototype.toString.call(someVar) === "[object Array]"; };
|
||||
var isBoolean = function(someVar) { return Object.prototype.toString.call(someVar) === "[object Boolean]"; };
|
||||
var isDefined = function(someVar) { return typeof someVar !== "undefined" && someVar != null; };
|
||||
var isString = function(someVar) { return typeof someVar === "string"; };
|
||||
var isNumber = function(someVar) { return typeof someVar === "number"; };
|
||||
var isObject = function(someVar) { return typeof someVar === "object"; };
|
||||
|
||||
var observe;
|
||||
if (window.attachEvent) observe = function (element, event, handler) { element.attachEvent('on'+event, handler); };
|
||||
else observe = function (element, event, handler) { element.addEventListener(event, handler, false); };
|
||||
|
||||
var resizeTextarea = function(textarea) {
|
||||
return function() {
|
||||
textarea.style.height = "auto";
|
||||
textarea.style.height = (textarea.scrollHeight)+"px";
|
||||
};
|
||||
|
||||
ikrpg.cards.weaponSwitch = function () {
|
||||
$("a#weapons-switch:first").on("click", ikrpg.cards.switchWeapons);
|
||||
};
|
||||
|
||||
ikrpg.cards.resize = function(textarea) {
|
||||
return function() {
|
||||
textarea.css("height", "auto");
|
||||
var height = Math.max($(textarea)[0].scrollHeight, "24");
|
||||
textarea.css("height", height+"px");
|
||||
};
|
||||
var delayedTextareaResize = function(textarea) {
|
||||
return function() { window.setTimeout(resizeTextarea(textarea), 0); };
|
||||
};
|
||||
|
||||
ikrpg.cards.resizableTextareas = function () {
|
||||
var resize = ikrpg.cards.resize;
|
||||
var delayedResize = function(textarea) {
|
||||
return function() { window.setTimeout(resize(textarea), 0); };
|
||||
};
|
||||
var autoresizableTextarea = function(textarea) {
|
||||
observe(textarea, "change", resizeTextarea(textarea));
|
||||
observe(textarea, "cut", delayedTextareaResize(textarea));
|
||||
observe(textarea, "paste", delayedTextareaResize(textarea));
|
||||
observe(textarea, "drop", delayedTextareaResize(textarea));
|
||||
observe(textarea, "keydown", delayedTextareaResize(textarea));
|
||||
};
|
||||
|
||||
var redirect = function() {
|
||||
self.search = encodeURIComponent(JSON.stringify(Hero));
|
||||
};
|
||||
|
||||
var initialize = function() {
|
||||
var textareas = document.querySelectorAll("textarea");
|
||||
var fillOut = function(attribute, value) {
|
||||
if (isString(value) || isNumber(value)) {
|
||||
var element = document.querySelector("input#"+attribute);
|
||||
if (element != null && isDefined(element.value)) {
|
||||
element.value = value;
|
||||
if (element.nodeName == "TEXTAREA") resizeTextarea(element)();
|
||||
}
|
||||
} else if (isObject(value)) {
|
||||
var parent = document.querySelector("#"+attribute);
|
||||
for (key in value) {
|
||||
var child = parent.querySelector("input."+key+", textarea."+key);
|
||||
if (child != null && isDefined(child.value)) {
|
||||
child.value = value[key];
|
||||
if (child.nodeName == "TEXTAREA") resizeTextarea(child)();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var saveOnChange = function(attribute, value) {
|
||||
var updateSearchString;
|
||||
if (isString(value) || isNumber(value)) {
|
||||
var input = document.querySelector("input#"+attribute);
|
||||
updateSearchString = function() {
|
||||
Hero[attribute] = input.value;
|
||||
//Hero["focus"] = attribute;
|
||||
redirect();
|
||||
};
|
||||
if (isDefined(input)) {
|
||||
//input.addEventListener("change", updateSearchString, false);
|
||||
addListener(input, "change", updateSearchString);
|
||||
}
|
||||
} else if (isObject(value)) {
|
||||
var parent = document.querySelector("#"+attribute);
|
||||
updateSearchString = function(key, input) {
|
||||
return function() {
|
||||
Hero[attribute][key] = input.value;
|
||||
//Hero["focus"] = attribute;
|
||||
redirect();
|
||||
};
|
||||
};
|
||||
for (key in value) {
|
||||
var child = parent.querySelector("input."+key+", textarea."+key);
|
||||
if (isDefined(child)) { observe(child, "change", updateSearchString(key, child)); }
|
||||
}
|
||||
}
|
||||
};
|
||||
var showWeapons = function(hero) {
|
||||
var setDisplay = function(element, bool) { if (isDefined(element.style)) element.style.display = (bool) ? "block" : "none"; };
|
||||
var showElement = function(element) { setDisplay(element, true); };
|
||||
var hideElement = function(element) { setDisplay(element, false); };
|
||||
var showElements = function(array) { if (isDefined(array.forEach)) array.forEach(showElement); };
|
||||
var hideElements = function(array) { if (isDefined(array.forEach)) array.forEach(hideElement); };
|
||||
var r1m1 = document.querySelector("div#r1m1");
|
||||
var r2m1 = document.querySelector("div#r2m1");
|
||||
var r1m2 = document.querySelector("div#r1m2");
|
||||
var r2 = document.querySelector("div#r2");
|
||||
var m2 = document.querySelector("div#m2");
|
||||
var rat1 = document.querySelector("div#rat1");
|
||||
var rat2 = document.querySelector("div#rat2");
|
||||
var mat1 = document.querySelector("div#mat1");
|
||||
var mat2 = document.querySelector("div#mat2");
|
||||
var mat3 = document.querySelector("div#mat3");
|
||||
if (isBoolean(hero.r1m1) && hero.r1m1 == true) {
|
||||
showElements([ r1m1, rat1, mat2 ]);
|
||||
hideElements([ r2m1, r1m2, r2, m2, mat1, rat2, mat3 ]);
|
||||
} else if (isBoolean(hero.r2m1) && hero.r2m1 == true) {
|
||||
showElements([ r2m1, rat1, rat2, mat3 ]);
|
||||
hideElements([ r1m1, r1m2, r2, m2, mat1, mat2 ]);
|
||||
} else if (isBoolean(hero.r1m2) && hero.r1m2 == true) {
|
||||
showElements([ r1m2, rat1, mat2, mat3 ]);
|
||||
hideElements([ r1m1, r2m1, r2, m2, mat1, rat2 ]);
|
||||
} else if (isBoolean(hero.r2) && hero.r2 == true) {
|
||||
showElements([ r2, rat1, rat2 ]);
|
||||
hideElements([ r1m1, r2m1, r1m2, m2, mat1, mat2, mat3 ]);
|
||||
} else if (isBoolean(hero.m2) && hero.m2 == true) {
|
||||
showElements([ m2, mat1, mat2 ]);
|
||||
hideElements([ r1m1, r2m1, r1m2, r2, rat1, rat2, mat3 ]);
|
||||
}
|
||||
};
|
||||
//var focusLastInput = function(hero) {
|
||||
// if (isDefined(hero["focus"])) {
|
||||
// var input = document.querySelector("input#"+hero["focus"]);
|
||||
// if (input == null) input = document.querySelector("#"+hero["focus"]+" input");
|
||||
// if (input != null) { input.focus(); input.scrollIntoView(); }
|
||||
// }
|
||||
//};
|
||||
var setPortrait = function(hero) {
|
||||
var portrait = hero["portrait"]
|
||||
, portraitDiv = document.querySelector("#portrait");
|
||||
if (portrait && portraitDiv) {
|
||||
var url = portrait["url"]
|
||||
, x = portrait["x"]
|
||||
, y = portrait["y"]
|
||||
, size = portrait["size"];
|
||||
if (url != null && x != null && y != null && size != null) {
|
||||
var sheet = document.querySelector("div.sheet");
|
||||
if (sheet) {
|
||||
sheet.style["backgroundImage"] = "url("+url+")";
|
||||
sheet.style["backgroundPosition"] = x+"px "+y+"px";
|
||||
sheet.style["backgroundSize"] = isNaN(parseInt(size, 10)) ? size : size+"px";
|
||||
}
|
||||
|
||||
$("textarea").each(function (index, elem) {
|
||||
var textarea = $(elem);
|
||||
textarea.on("change", resize(textarea));
|
||||
textarea.on("cut", delayedResize(textarea));
|
||||
textarea.on("paste", delayedResize(textarea));
|
||||
textarea.on("drop", delayedResize(textarea));
|
||||
textarea.on("keydown", delayedResize(textarea));
|
||||
})
|
||||
};
|
||||
|
||||
ikrpg.cards.fillOut = function () {
|
||||
for (var attribute in ikrpg.cards.data) { fill(attribute, ikrpg.cards.data[attribute]); }
|
||||
|
||||
function fill(attribute, value) {
|
||||
if (typeof value === "object") {
|
||||
var parent = $("#"+attribute+":first");
|
||||
for (var key in value) {
|
||||
var child = $("#"+attribute+":first input."+key+", #"+attribute+":first textarea."+key);
|
||||
if (child) {
|
||||
child[0].value = value[key];
|
||||
if (child[0].nodeName == "TEXTAREA") ikrpg.cards.resize(child)();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
for (var i = 0; i < textareas.length; i++) { autoresizableTextarea(textareas[i]); }
|
||||
showWeapons(Hero);
|
||||
for (attribute in Hero) { fillOut(attribute, Hero[attribute]); }
|
||||
for (attribute in Hero) { saveOnChange(attribute, Hero[attribute]); }
|
||||
setPortrait(Hero);
|
||||
//focusLastInput(Hero);
|
||||
|
||||
//var names = document.querySelectorAll("section > input.name");
|
||||
//for (name in names) { names[name].value = Hero["name"]; }
|
||||
|
||||
var displayPortrait = function(portrait, value, pointerEvent) {
|
||||
return function(event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
var inputs = portrait.querySelectorAll("input");
|
||||
|
||||
for (var index = 0; index < inputs.length; index++) {
|
||||
var input = inputs.item(index);
|
||||
input.style["display"] = value;
|
||||
portrait.style["pointerEvents"] = pointerEvent;
|
||||
} else {
|
||||
var element = $("input#"+attribute+":first");
|
||||
if (element && element[0]) {
|
||||
element.val(value);
|
||||
} else {
|
||||
element = $("input."+attribute);
|
||||
if (element) {
|
||||
element.val(value);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
var portrait = document.querySelector("#portrait");
|
||||
if (portrait != null) {
|
||||
addListener(portrait, "click", displayPortrait(portrait, "block", "none"));
|
||||
var button = portrait.querySelector("input[type='button']");
|
||||
addListener(button, "click", function(event) { displayPortrait(portrait, "none", "auto")(event); setPortrait(Hero); });
|
||||
}
|
||||
}
|
||||
|
||||
redirect();
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", initialize, false);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
ikrpg.cards.generateSeed = function () {
|
||||
$("#generate-seed").on("click", function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
ikrpg.cards.updateData();
|
||||
|
||||
var json = JSON.stringify(ikrpg.cards.data);
|
||||
var compressed = LZString.compressToBase64(json);
|
||||
$("#seed").val(compressed);
|
||||
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
ikrpg.cards.updateSeed = function () {
|
||||
$("#update-seed").on("click", function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
var seed = $("#seed").val();
|
||||
var decompressed = LZString.decompressFromBase64(seed);
|
||||
var json = JSON.parse(decompressed);
|
||||
ikrpg.cards.data = json;
|
||||
|
||||
ikrpg.cards.fillOut();
|
||||
ikrpg.cards.switchWeapons();
|
||||
ikrpg.cards.heroNameHack();
|
||||
|
||||
ikrpg.cards.setPortrait();
|
||||
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
ikrpg.cards.heroNameHack = function () {
|
||||
var heroNames = $("input.hero-name");
|
||||
heroNames.each(function (index, input) {
|
||||
$(input).on("change", function () {
|
||||
var val = $(input).val();
|
||||
heroNames.val(val);
|
||||
ikrpg.cards.data["hero-name"] = val;
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
ikrpg.cards.setupPortrait = function () {
|
||||
var zoom_in = function(event) {
|
||||
var width = $(this).width() * 1.2;
|
||||
$(this).animate({ width: width });
|
||||
$("#portrait input.width").val(width);
|
||||
|
||||
return false;
|
||||
};
|
||||
var zoom_out = function () {
|
||||
var width = $(this).width() / 1.2;
|
||||
$(this).animate({ width: width });
|
||||
$("#portrait input.width").val(width);
|
||||
|
||||
return false;
|
||||
};
|
||||
var show_url = function () {
|
||||
$("#portrait input.url").show().focus();
|
||||
};
|
||||
var hide_url = function () {
|
||||
$("#portrait input.url").hide();
|
||||
};
|
||||
var set_img_src = function () {
|
||||
var val = $("#portrait input.url").val();
|
||||
var img = $("#pic > img");
|
||||
if(val && img.attr("src") != val) {
|
||||
img.attr("src", val);
|
||||
$("#portrait input.top").val(0);
|
||||
$("#portrait input.left").val(0);
|
||||
}
|
||||
};
|
||||
|
||||
var portrait = $("#pic > img");
|
||||
portrait.draggable({
|
||||
cursor: "crosshair",
|
||||
stop: function (event, ui) {
|
||||
var pos = ui.position;
|
||||
$("#portrait input.top").val(pos.top);
|
||||
$("#portrait input.left").val(pos.left);
|
||||
}
|
||||
});
|
||||
portrait.on("click", zoom_in);
|
||||
portrait.on("dblclick", zoom_out);
|
||||
portrait.on("contextmenu", zoom_out);
|
||||
portrait.on("mouseover", show_url);
|
||||
portrait.on("mouseout", function () {
|
||||
hide_url();
|
||||
set_img_src();
|
||||
});
|
||||
};
|
||||
|
||||
ikrpg.cards.setPortrait = function () {
|
||||
var img = $("#pic > img");
|
||||
if(img) {
|
||||
var portrait = ikrpg.cards.data["portrait"];
|
||||
img.attr("src", portrait["url"]);
|
||||
img.css("top", portrait["top"]+"px");
|
||||
img.css("left", portrait["left"]+"px");
|
||||
img.css("width", portrait["width"]+"px");
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
ikrpg.cards.init = function () {
|
||||
ikrpg.cards.fillOut();
|
||||
ikrpg.cards.resizableTextareas();
|
||||
ikrpg.cards.weaponSwitch();
|
||||
ikrpg.cards.heroNameHack();
|
||||
ikrpg.cards.generateSeed();
|
||||
ikrpg.cards.updateSeed();
|
||||
ikrpg.cards.setupPortrait();
|
||||
};
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue