mirror of
https://github.com/webxoss/webxoss-client.git
synced 2024-11-20 05:49:55 +01:00
2bdbb3f5d7
This reverts commit 714b956e65
.
151 lines
No EOL
4.3 KiB
JavaScript
151 lines
No EOL
4.3 KiB
JavaScript
'use strict';
|
|
|
|
window.CardDetail = (function () {
|
|
|
|
function $ (id) {
|
|
return document.getElementById(id);
|
|
}
|
|
function newElement (tag) {
|
|
var el = document.createElement(tag);
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
el.classList.add(arguments[i]);
|
|
}
|
|
return el;
|
|
}
|
|
function KeyValue (prop,keyHidden) {
|
|
this.prop = prop;
|
|
this.keyHidden = keyHidden;
|
|
this.value = '';
|
|
|
|
this.eKey = newElement('td','key',prop);
|
|
this.eKey.textContent = Localize.propToKey(prop);
|
|
|
|
this.eValue = newElement('td','value',prop);
|
|
}
|
|
|
|
|
|
function CardDetail (imageManager) {
|
|
this.imageManager = imageManager;
|
|
|
|
this.eDetail = $('detail');
|
|
this.eImage = $('detail-card-image');
|
|
this.eWxid = $('detail-card-wxid');
|
|
this.eName = $('detail-card-name');
|
|
this.eLimiting = $('detail-card-limiting');
|
|
this.eTable = $('detail-table');
|
|
this.eTableBody = $('detail-table-body');
|
|
|
|
this.kvCardType = new KeyValue('cardType');
|
|
this.kvColor = new KeyValue('color');
|
|
this.kvLevel = new KeyValue('level');
|
|
this.kvClasses = new KeyValue('classes');
|
|
this.kvLimit = new KeyValue('limit');
|
|
this.kvPower = new KeyValue('power');
|
|
this.kvLimting = new KeyValue('limting');
|
|
this.kvGuard = new KeyValue('guard');
|
|
this.kvCost = new KeyValue('cost');
|
|
this.kvTimmings = new KeyValue('timmings');
|
|
this.kvEffects = new KeyValue('effects',true);
|
|
this.kvBurst = new KeyValue('burst',true);
|
|
|
|
this._pid = 0;
|
|
}
|
|
|
|
CardDetail.prototype.show = function (pid) {
|
|
if (!pid || this._pid === pid) return;
|
|
this._pid = pid;
|
|
this.eTable.setAttribute('lang',Localize.getLanguage());
|
|
this.eTableBody.innerHTML = '';
|
|
var info = CardInfo[pid];
|
|
this.eWxid.textContent = info.wxid;
|
|
this.eName.innerHTML = '';
|
|
var link = newElement('a');
|
|
link.target = '_blank';
|
|
link.href = 'http://www.takaratomy.co.jp/products/wixoss/card/card_list.php?card=card_detail&card_no=' + info.wxid;
|
|
link.textContent = Localize.cardName(info);
|
|
this.eName.appendChild(link);
|
|
this.eLimiting.textContent = Localize.limiting(info);
|
|
this.eImage.src = this.imageManager.getUrlByPid(pid);
|
|
this.kvColor.value = info.color.split('/').map(Localize.color).join('/');
|
|
this.kvCardType.value = Localize.cardType(info);
|
|
this.kvEffects.value = Localize.effectTexts(info);
|
|
if (inArr(info.cardType,['LRIG','SIGNI','RESONA'])) {
|
|
this.kvClasses.value = Localize.classes(info);
|
|
this.kvLevel.value = info.level;
|
|
}
|
|
if (inArr(info.cardType,['LRIG','SPELL','ARTS'])) {
|
|
this.kvCost.value = Localize.cost(info);
|
|
}
|
|
if (inArr(info.cardType,['SIGNI','SPELL'])) {
|
|
this.kvBurst.value = Localize.burstEffectTexts(info);
|
|
}
|
|
if (info.cardType === 'LRIG') {
|
|
if (info.limit >= 1024) {
|
|
this.kvLimit.value = '∞';
|
|
} else {
|
|
this.kvLimit.value = info.limit;
|
|
}
|
|
this.addKeyValue(
|
|
[this.kvCardType,this.kvColor],
|
|
[this.kvLevel,this.kvClasses],
|
|
[this.kvLimit,this.kvCost],
|
|
[this.kvEffects]
|
|
);
|
|
} else if (info.cardType === 'SIGNI') {
|
|
this.kvPower.value = info.power;
|
|
this.kvGuard.value = Localize.guard(info);
|
|
this.addKeyValue(
|
|
[this.kvCardType,this.kvColor],
|
|
[this.kvLevel,this.kvClasses],
|
|
[this.kvPower,this.kvGuard],
|
|
[this.kvEffects],
|
|
[this.kvBurst]
|
|
);
|
|
} else if (info.cardType === 'RESONA') {
|
|
this.kvPower.value = info.power;
|
|
this.kvGuard.value = Localize.guard(info);
|
|
this.addKeyValue(
|
|
[this.kvCardType,this.kvColor],
|
|
[this.kvLevel,this.kvClasses],
|
|
[this.kvPower,this.kvGuard],
|
|
[this.kvEffects]
|
|
);
|
|
} else if (info.cardType === 'SPELL') {
|
|
this.addKeyValue(
|
|
[this.kvCardType,this.kvColor],
|
|
[this.kvCost],
|
|
[this.kvEffects],
|
|
[this.kvBurst]
|
|
);
|
|
} else if (info.cardType === 'ARTS') {
|
|
this.kvTimmings.value = Localize.timmings(info);
|
|
this.addKeyValue(
|
|
[this.kvCardType,this.kvColor],
|
|
[this.kvCost],
|
|
[this.kvTimmings],
|
|
[this.kvEffects]
|
|
);
|
|
}
|
|
};
|
|
|
|
CardDetail.prototype.addKeyValue = function () {
|
|
for (var i = 0; i < arguments.length; i++) {
|
|
var rowArray = arguments[i];
|
|
var eRow = newElement('tr');
|
|
rowArray.forEach(function (kv) {
|
|
kv.eValue.textContent = kv.value;
|
|
kv.eValue.removeAttribute('colspan');
|
|
if (!kv.keyHidden) eRow.appendChild(kv.eKey);
|
|
eRow.appendChild(kv.eValue);
|
|
},this);
|
|
if (rowArray.length === 1) {
|
|
var kv = rowArray[0];
|
|
var colspan = kv.keyHidden? 4 : 3;
|
|
kv.eValue.setAttribute('colspan',colspan);
|
|
}
|
|
this.eTableBody.appendChild(eRow);
|
|
}
|
|
};
|
|
|
|
return CardDetail;
|
|
})(); |