function LoadData(data) { const objects = JSON.parse(data).cards; for (i of objects) { CreateFace(i); CreateBack(i); } } function acceptFile() { const inp = document.getElementById("inp"); console.log(inp.files[0]); readFileContent(inp.files[0]).then(content => { LoadData(content); }); } function readFileContent(file) { const reader = new FileReader() return new Promise((resolve, reject) => { reader.onload = event => resolve(event.target.result) reader.onerror = error => reject(error) reader.readAsText(file) }) } function GetClassData(baseName) { switch (baseName) { case "fighter": return {Color: "9E3A2F", Name: "Воин", Icon: "ClassIcons/figh.svg"}; case "barbarian": return {Color: "905945", Name: "Варвар", Icon: "ClassIcons/barb.svg"}; case "wizard": return {Color: "4265B8", Name: "Волшебник", Icon: "ClassIcons/wiza.svg"}; case "bard": return {Color: "B15063", Name: "Бард", Icon: "ClassIcons/bard.svg"}; case "paladin": return {Color: "94C6E3", Name: "Паладин", Icon: "ClassIcons/pala.svg"}; case "cleric": return {Color: "ECCE65", Name: "Жрец", Icon: "ClassIcons/cler.svg"}; case "warlock": return {Color: "8576C2", Name: "Колдун", Icon: "ClassIcons/warl.svg"}; case "druid": return {Color: "5FB375", Name: "Друид", Icon: "ClassIcons/drui.svg"}; case "sorcerer": return {Color: "8D578E", Name: "Чародей", Icon: "ClassIcons/sour.svg"}; case "rouge": return {Color: "525247", Name: "Плут", Icon: "ClassIcons/roug.svg"}; case "ranger": return {Color: "66B99E", Name: "Следопыт", Icon: "ClassIcons/rang.svg"}; case "monk": return {Color: "AB8C4E", Name: "Монах", Icon: "ClassIcons/monk.svg"}; case "focuse": return {Color: "B85812", Name: "Фокус", Icon: "ClassIcons/focu.svg"}; } } function CreateFace(card) { let parent = document.getElementById("row"); const template = document.getElementById("FaceTempl"); var clone = template.content.cloneNode(true); var classData = GetClassData(card.ClassName); clone.getElementById("classname").innerHTML = classData.Name; clone.getElementById("level").innerHTML = card.Level; clone.getElementById("spellName").innerHTML = card.SpellName; clone.getElementById("school").innerHTML = card.School; // clone.getElementById("castTime").innerHTML = card.CastTime; // clone.getElementById("distance").innerHTML = card.Distance; // clone.getElementById("components").innerHTML = card.Components; // clone.getElementById("duration").innerHTML = card.Duration; clone.getElementById("classIcon").src = classData.Icon; clone.getElementById("stats").innerHTML = `■ ${card.CastTime} ■ ${card.Distance} ■ ${card.Components} ■ ${card.Duration} ■`; // ■ clone.getElementById("level").style.backgroundImage = GetLevelBg(classData); parent.appendChild(clone); } function CreateBack(card) { let parent = document.getElementById("row"); const template = document.getElementById("BackTempl"); var clone = template.content.cloneNode(true); var container = clone.getElementById("description"); for (i of card.Description) { var newText = document.createElement("p"); newText.innerHTML = i; newText.style.fontSize = `${card.DescriptionScale}px`; container.appendChild(newText); } parent.appendChild(clone); } function GetLevelBg(classData) { return `url("data:image/svg+xml;utf8,")`; }