forked from GithubMirrors/cardconjurer
svg fix + removed cookies
This commit is contained in:
@@ -1,246 +1,24 @@
|
||||
var localStorageCardKeyList = new Array()
|
||||
var selectedCardKey = ''
|
||||
let rootStyles = document.documentElement.style
|
||||
|
||||
if (localStorage.getItem('cardKeyList') == null) {
|
||||
localStorage.setItem('cardKeyList', '[]')
|
||||
} else {
|
||||
loadSavedCards()
|
||||
function checkLocalStorage() {
|
||||
if (localStorage.getItem('colorPalette')) {
|
||||
loadScript('/data/scripts/palettes/' + localStorage.getItem('colorPalette') + '.js')
|
||||
setTimeout(function() {
|
||||
if (document.getElementById('inputColorPalette').value) {
|
||||
document.getElementById('inputColorPalette').value = localStorage.getItem('colorPalette')
|
||||
}
|
||||
}, 1000)
|
||||
} else {
|
||||
loadScript('/data/scripts/palettes/lowpolyGreen.js')
|
||||
}
|
||||
}
|
||||
checkLocalStorage()
|
||||
|
||||
function loadSavedCards() {
|
||||
localStorageCardKeyList = JSON.parse(localStorage.getItem('cardKeyList'))
|
||||
document.getElementById('inputCardToImport').innerHTML = '<option disabled selected="selected">None selected</option>'
|
||||
for (var i = 0; i < localStorageCardKeyList.length; i ++) {
|
||||
document.getElementById('inputCardToImport').innerHTML += '<option>' + localStorageCardKeyList[i] + '</option>'
|
||||
function loadScript(scriptPath){
|
||||
var script = document.createElement('script')
|
||||
script.setAttribute('type','text/javascript')
|
||||
script.setAttribute('src', scriptPath)
|
||||
if (typeof script != 'undefined') {
|
||||
document.getElementsByTagName('head')[0].appendChild(script)
|
||||
}
|
||||
}
|
||||
|
||||
function saveCard() {
|
||||
var savedCardKey = cardTextList[0].text
|
||||
if (!savedCardKey) {
|
||||
savedCardKey = 'unnamed'
|
||||
}
|
||||
savedCardKey = prompt('Please enter the name you\'d like to save your card as', savedCardKey)
|
||||
if (localStorageCardKeyList.includes(savedCardKey)) {
|
||||
if (!confirm('Would you like to overwrite the card you previously saved as ' + savedCardKey + "? (Pressing 'Cancel' will still save the card, but will affix a version number at the end)")) {
|
||||
var originalCardKey = savedCardKey
|
||||
var duplicateCount = 1
|
||||
while (localStorageCardKeyList.includes(savedCardKey)) {
|
||||
savedCardKey = originalCardKey + ' (' + duplicateCount + ')'
|
||||
duplicateCount ++
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!localStorageCardKeyList.includes(savedCardKey)) {
|
||||
//If the card is new, add it, updated the select element, and update the localstorage
|
||||
localStorageCardKeyList.push(savedCardKey)
|
||||
localStorageCardKeyList.sort()
|
||||
document.getElementById('inputCardToImport').innerHTML = '<option disabled selected="selected">None selected</option>'
|
||||
for (var i = 0; i < localStorageCardKeyList.length; i ++) {
|
||||
document.getElementById('inputCardToImport').innerHTML += '<option>' + localStorageCardKeyList[i] + '</option>'
|
||||
}
|
||||
localStorage.setItem('cardKeyList', JSON.stringify(localStorageCardKeyList))
|
||||
}
|
||||
var cardToBeSaved = new savedCard(savedCardKey)
|
||||
cardToBeSaved.save()
|
||||
}
|
||||
|
||||
function deleteCard() {
|
||||
if (confirm('Are you sure you want to delete ' + selectedCardKey + '?')) {
|
||||
localStorageCardKeyList.splice(localStorageCardKeyList.indexOf(selectedCardKey), 1)
|
||||
document.getElementById('inputCardToImport').innerHTML = '<option disabled selected="selected">None selected</option>'
|
||||
for (var i = 0; i < localStorageCardKeyList.length; i ++) {
|
||||
document.getElementById('inputCardToImport').innerHTML += '<option>' + localStorageCardKeyList[i] + '</option>'
|
||||
}
|
||||
localStorage.setItem('cardKeyList', JSON.stringify(localStorageCardKeyList))
|
||||
localStorage.removeItem(selectedCardKey)
|
||||
}
|
||||
}
|
||||
|
||||
function importSavedCard(localStorageKey = document.getElementById('inputCardToImport').value) {
|
||||
if (localStorageKey) {
|
||||
selectedCardKey = localStorageKey
|
||||
importedCard = JSON.parse(localStorage.getItem(localStorageKey))
|
||||
//Skip trackers
|
||||
skipLoadTextList = 0
|
||||
skipResizeCardArt = 1
|
||||
if (importedCard.version != currentVersion) {
|
||||
skipLoadTextList += 1
|
||||
skipResizeCardArt += 1
|
||||
if (importedCard.version.split('/')[1] != 'version' && (currentVersion.split('/')[0] != importedCard.version.split('/')[0] || currentVersion.split('/')[1] != 'version')) {
|
||||
skipLoadTextList += 1
|
||||
skipResizeCardArt += 1
|
||||
}
|
||||
}
|
||||
//Masks
|
||||
loadMaskImages(importedCard.maskList)
|
||||
//Version
|
||||
document.getElementById('inputFrameVersion').value = importedCard.version.split('/')[0]
|
||||
loadVersion(importedCard.version.split('/')[0])
|
||||
if (!importedCard.version.includes('version')) {
|
||||
loadScript('/data/scripts/versions/' + importedCard.version + '.js')
|
||||
}
|
||||
//Frame
|
||||
document.getElementById('cardMaster').innerHTML = importedCard.cardMaster
|
||||
cardMasterList = cardMasterList.slice(0, 2)
|
||||
cardMasterList = cardMasterList.concat(importedCard.cardMasterList)
|
||||
var tempObject = new cardImage()
|
||||
var tempElement = tempObject.cardMasterElement()
|
||||
for (var i = 2; i < cardMasterList.length; i ++) {
|
||||
cardMasterList[i].image = new Image()
|
||||
cardMasterList[i].image.src = cardMasterList[i].imageSource
|
||||
cardMasterList[i].draw = tempObject.draw
|
||||
}
|
||||
for (var i = 0; i < document.getElementById('cardMaster').children.length; i ++) {
|
||||
if (parseInt(document.getElementById('cardMaster').children[i].id.replace('uniqueNumber', '')) > 1) {
|
||||
document.getElementById('cardMaster').children[i].onclick = tempElement.onclick
|
||||
}
|
||||
}
|
||||
uniqueNumberTracker = importedCard.numberTracker
|
||||
//Art
|
||||
document.getElementById('inputCardArtX').value = importedCard.artX
|
||||
document.getElementById('inputCardArtY').value = importedCard.artY
|
||||
document.getElementById('inputCardArtZoom').value = importedCard.artZoom
|
||||
cardArt.src = importedCard.cardArt
|
||||
//Set Symbol
|
||||
setSymbol.src = importedCard.setSymbol
|
||||
document.getElementById('inputSetSymbolX').value = importedCard.setSymbolX
|
||||
document.getElementById('inputSetSymbolY').value = importedCard.setSymbolY
|
||||
document.getElementById('inputSetSymbolZoom').value = importedCard.setSymbolZoom
|
||||
//Watermark
|
||||
watermark.src = importedCard.watermark
|
||||
document.getElementById('inputWatermarkPrimary').value = importedCard.watermarkPrimary
|
||||
document.getElementById('inputWatermarkSecondary').value = importedCard.watermarkSecondary
|
||||
document.getElementById('inputWatermarkOpacity').value = importedCard.watermarkOpacity
|
||||
//Collector
|
||||
document.getElementById('inputInfoNumber').value = importedCard.number
|
||||
document.getElementById('inputInfoRarity').value = importedCard.rarity
|
||||
document.getElementById('inputInfoSet').value = importedCard.set
|
||||
document.getElementById('inputInfoLanguage').value = importedCard.language
|
||||
document.getElementById('inputInfoArtist').value = importedCard.artist
|
||||
document.getElementById('inputInfoArtist2').value = importedCard.artist
|
||||
bottomInfoUpdated()
|
||||
//Mana Cost
|
||||
if (importedCard.manaCostList) {
|
||||
for (var i = 0; i < importedCard.manaCostList.length; i ++) {
|
||||
if (!manaSymbolCodeList.includes(importedCard.manaCostList[i][0])) {
|
||||
manaSymbolCodeList.push(importedCard.manaCostList[i][0])
|
||||
manaSymbolImageList.push(new Image())
|
||||
manaSymbolImageList[manaSymbolImageList.length - 1].onload = manaCostUpdated
|
||||
manaSymbolImageList[manaSymbolImageList.length - 1].src = importedCard.manaCostList[i][1]
|
||||
}
|
||||
}
|
||||
}
|
||||
document.getElementById('inputManaCost').value = importedCard.manaCost
|
||||
manaCostUpdated()
|
||||
//Text
|
||||
cardTextList = importedCard.text
|
||||
document.getElementById('textPicker').children[0].click()
|
||||
drawCardText()
|
||||
}
|
||||
}
|
||||
|
||||
class savedCard {
|
||||
constructor(keyToUse = 'unnamed') {
|
||||
//Masks
|
||||
this.maskList = []
|
||||
for (var i = 0; i < cardMasterList.length; i ++) {
|
||||
if (cardMasterList[i].masks != undefined) {
|
||||
this.maskList.push([cardMasterList[i].masks[0], maskImageList[maskNameList.indexOf(cardMasterList[i].masks[0])].src])
|
||||
}
|
||||
}
|
||||
//Frame Version
|
||||
this.version = currentVersion
|
||||
//Frame
|
||||
this.cardMaster = document.getElementById('cardMaster').innerHTML.replace(' selected', '')
|
||||
this.cardMasterList = cardMasterList.slice(2)
|
||||
this.numberTracker = uniqueNumberTracker
|
||||
//Art
|
||||
this.cardArt = cardArt.src
|
||||
this.artX = document.getElementById('inputCardArtX').value
|
||||
this.artY = document.getElementById('inputCardArtY').value
|
||||
this.artZoom = document.getElementById('inputCardArtZoom').value
|
||||
//Set Symbol
|
||||
this.setSymbol = setSymbol.src
|
||||
this.setSymbolX = document.getElementById('inputSetSymbolX').value
|
||||
this.setSymbolY = document.getElementById('inputSetSymbolY').value
|
||||
this.setSymbolZoom = document.getElementById('inputSetSymbolZoom').value
|
||||
//Watermark
|
||||
this.watermark = watermark.src
|
||||
this.watermarkPrimary = document.getElementById('inputWatermarkPrimary').value
|
||||
this.watermarkSecondary = document.getElementById('inputWatermarkSecondary').value
|
||||
this.watermarkOpacity = document.getElementById('inputWatermarkOpacity').value
|
||||
//Collector
|
||||
this.number = document.getElementById('inputInfoNumber').value
|
||||
this.rarity = document.getElementById('inputInfoRarity').value
|
||||
this.set = document.getElementById('inputInfoSet').value
|
||||
this.language = document.getElementById('inputInfoLanguage').value
|
||||
this.artist = document.getElementById('inputInfoArtist').value
|
||||
//Mana Cost
|
||||
this.manaCostList = []
|
||||
for (var i = 0; i < usedManaSymbols.length; i ++) {
|
||||
this.manaCostList.push([usedManaSymbols[i], manaSymbolImageList[manaSymbolCodeList.indexOf(usedManaSymbols[i])].src])
|
||||
}
|
||||
this.manaCost = document.getElementById('inputManaCost').value
|
||||
//Text
|
||||
this.text = cardTextList
|
||||
//Key
|
||||
this.key = keyToUse
|
||||
//Version Control
|
||||
this.ccVersion = 1
|
||||
}
|
||||
save() {
|
||||
localStorage.setItem(this.key, JSON.stringify(this))
|
||||
}
|
||||
}
|
||||
|
||||
function downloadSavedCards() {
|
||||
var savedCardsText = ''
|
||||
for (var i = 0; i < localStorageCardKeyList.length; i ++) {
|
||||
savedCardsText += localStorageCardKeyList[i] + '<<cardData>>' + localStorage.getItem(localStorageCardKeyList[i]) + '<<newCard>>'
|
||||
}
|
||||
savedCardsText = savedCardsText.slice(0, -11)
|
||||
var blob = new Blob([savedCardsText], {type: 'text'})
|
||||
var a = document.createElement('a')
|
||||
a.download = 'Card_Conjurer_Saved_Cards'
|
||||
a.href = URL.createObjectURL(blob)
|
||||
a.dataset.downloadurl = ['text', a.download, a.href].join(':')
|
||||
a.style.display = 'none'
|
||||
document.body.appendChild(a)
|
||||
a.click()
|
||||
document.body.removeChild(a)
|
||||
setTimeout(function() { URL.revokeObjectURL(a.href); }, 1500)
|
||||
}
|
||||
|
||||
function uploadSavedCards(event) {
|
||||
var reader = new FileReader()
|
||||
reader.onload = function() {
|
||||
var uploadedCardList = reader.result.split('<<newCard>>')
|
||||
for (var j = 0; j < uploadedCardList.length; j ++) {
|
||||
var uploadedCard = uploadedCardList[j].split('<<cardData>>')
|
||||
var savedCardKey = uploadedCard[0]
|
||||
if (localStorageCardKeyList.includes(savedCardKey)) {
|
||||
if (!confirm('Would you like to overwrite the card you previously saved as ' + savedCardKey + "? (Pressing 'Cancel' will still save the card, but will affix a version number at the end)")) {
|
||||
var originalCardKey = savedCardKey
|
||||
var duplicateCount = 1
|
||||
while (localStorageCardKeyList.includes(savedCardKey)) {
|
||||
savedCardKey = originalCardKey + ' (' + duplicateCount + ')'
|
||||
duplicateCount ++
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!localStorageCardKeyList.includes(savedCardKey)) {
|
||||
//If the card is new, add it, updated the select element, and update the localstorage
|
||||
localStorageCardKeyList.push(savedCardKey)
|
||||
}
|
||||
localStorage.setItem(savedCardKey, uploadedCard[1])
|
||||
}
|
||||
localStorageCardKeyList.sort()
|
||||
document.getElementById('inputCardToImport').innerHTML = '<option disabled selected="selected">None selected</option>'
|
||||
for (var i = 0; i < localStorageCardKeyList.length; i ++) {
|
||||
document.getElementById('inputCardToImport').innerHTML += '<option>' + localStorageCardKeyList[i] + '</option>'
|
||||
}
|
||||
localStorage.setItem('cardKeyList', JSON.stringify(localStorageCardKeyList))
|
||||
}
|
||||
reader.readAsText(event.target.files[0], 'UTF-8')
|
||||
}
|
Reference in New Issue
Block a user