1
0
Fork 0
webxoss-fixed/index.html
2017-04-17 10:45:17 +08:00

340 lines
8.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Server</title>
<script>
var global = window;
// function require (file) {
// return window[file.replace(/^\.[\/\\]/,'').replace(/.js$/,'')];
// }
function handleCardInfo() {
// var defaultValueMap = {
// "rarity": "LR",
// "cardType": "SIGNI",
// "color": "white",
// "level": 0,
// "limit": 0,
// "power": 0,
// "limiting": "",
// "classes": [],
// "costWhite": 0,
// "costBlack": 0,
// "costRed": 0,
// "costBlue": 0,
// "costGreen": 0,
// "costColorless": 0,
// "guardFlag": false,
// "multiEner": false,
// };
for (var x in CardInfo) {
var info = CardInfo[x];
delete info.timestamp;
delete info.kana;
delete info.imgUrl;
delete info.cardText;
delete info.cardText_zh_CN;
delete info.cardText_en;
delete info.constEffects;
delete info.actionEffects;
delete info.startUpEffects;
delete info.spellEffect;
delete info.artsEffect;
delete info.burstEffect
delete info.faqs;
delete info.cardSkills;
delete info.growCondition;
delete info.useCondition;
delete info.costChange;
delete info.costChangeBeforeUseAsyn;
delete info.resonaPhase;
delete info.resonaCondition;
delete info.resonaAsyn;
delete info.encore;
delete info.bettedCost;
if (info.rise) info.rise = true;
// for (var key in defaultValueMap) {
// if (info[key] === defaultValueMap[key]) {
// delete info[key];
// }
// }
}
// var textarea = document.createElement('textarea');
// textarea.value = JSON.stringify(CardInfo);
// document.body.appendChild(textarea);
// textarea.select();
}
function handleCardInfo_ko(min, max) {
var props = [
"name",
"actionEffectTexts",
"constEffectTexts",
"startUpEffectTexts",
"spellEffectTexts",
"artsEffectTexts",
"burstEffectTexts",
"attachedEffectTexts",
"extraTexts",
];
var suffix = [
"",
"_zh_CN",
"_en"
]
var arr = [];
for (var x in CardInfo) {
// if (x <= 1762) continue;
if (x < min || x > max) continue;
var info = CardInfo[x];
var obj = {
pid: info.pid,
wxid: info.wxid,
};
props.forEach(function(rawprop) {
// suffix.forEach(function (suf) {
// var prop = rawprop + suf;
// if (!info[prop]) return;
// obj[prop] = info[prop];
// });
obj[rawprop + "_ko"] = info[rawprop + "_en"];
});
arr.push(obj);
}
down(arr, `${min}-${max}.json`)
}
function fetchAndHandleRuJson(url) {
let CardInfo_ru = {};
fetch(url).then(res => res.json()).then(arr => {
arr.forEach(info => {
let info_ru = {};
for (let prop in info) {
if (!prop.match(/_ru$/)) continue;
info_ru[prop] = info[prop];
}
CardInfo_ru[info.pid] = info_ru;
});
window.ru = JSON.stringify(CardInfo_ru);
});
}
function getPrCards() {
let ids = [];
for (let pid in CardInfo) {
let card = CardInfo[pid];
let id = +card.wxid.replace('PR-', '');
if (id) ids.push(id);
}
ids.sort((a, b) => a - b);
let ranges = [];
let start = ids[0];
let end = ids[0];
ids.slice(1).concat(0).forEach(id => {
if ((id - end) === 1) {
end = id;
} else {
let range = `${('000'+start).slice(-3)}-${('000'+end).slice(-3)}`;
if (start === end) range = ('000' + start).slice(-3);
ranges.push(range);
start = end = id;
}
})
return ranges;
}
function getUntestedPr() {
let ids = [];
for (let pid in CardInfo) {
if (pid <= 1762) continue;
let card = CardInfo[pid];
if (card.pid !== card.cid) continue;
if (/^PR-/.test(card.wxid)) ids.push(card.wxid);
}
return ids;
}
function getNewCardNames() {
let names = [];
for (let pid in CardInfo) {
if (pid <= 1762) continue;
let card = CardInfo[pid];
if (card.pid !== card.cid) continue;
names.push(card.name_zh_CN);
}
return names;
}
function down(content, filename = 'down.txt') {
if (typeof content === 'object') {
content = JSON.stringify(content, null, ' ')
}
let blob = new Blob([content], {
type: 'application/octet-stream'
})
let url = URL.createObjectURL(blob)
let link = document.createElement('a')
link.href = url
link.download = filename
link.click()
}
</script>
<script src="util.js"></script>
<script src="random.min.js"></script>
<script src="Callback.js"></script>
<script src="Game.js"></script>
<script src="Phase.js"></script>
<script src="IO.js"></script>
<script src="Player.js"></script>
<script src="Card.js"></script>
<script src="Zone.js"></script>
<script src="CardInfo.js"></script>
<script src="Timming.js"></script>
<script src="Mask.js"></script>
<script src="ConstEffect.js"></script>
<script src="ConstEffectManager.js"></script>
<script src="Effect.js"></script>
<script src="EffectManager.js"></script>
<script src="FakeSocket.js"></script>
<script src="Client.js"></script>
<script src="Room.js"></script>
<script src="RoomManager.js"></script>
<script src="test.js"></script>
<script src="testHelper.js"></script>
</head>
<body>
<div class="flex">
<div class="helper">
<div class="flex row">
<div>
<span> p1 </span>
<select id="host-decks"></select>
</div>
<div>
<span> p2 </span>
<select id="guest-decks"></select>
</div>
</div>
<div>
<button id="oben" onclick="startBattle();">oben!</button>
<button onclick="grow();">grow!</button>
<button onclick="draw()">draw</button>
<button onclick="charge();">ener charge</button>
</div>
<div class="flex row">
<div>
<span>add</span>
<input id="card-name" class="card-name" type="text" placeholder="wx15-001" />
</div>
<div>
<span>to</span>
<select id="target-player" class="target-player">
<option value="">turn player&#39;s</option>
<option value="opponent">opponent&#39;s</option>
</select>
</div>
</div>
<div>
<button onclick="addTo('handZone');">hand</button>
<button onclick="addTo('lifeClothZone');">life cloth</button>
<button onclick="addTo('enerZone');">ener zone</button>
<button onclick="addTo('trashZone');">trash zone</button>
</div>
<div>
<button onclick="resetLrigDeck();">reset lrig deck</button>
</div>
<div class="flex-center">
<textarea id="log" readonly="readonly"></textarea>
</div>
<div class="language">
<span>Language:</span>
<select id="select-language" onchange="changeLanguage();">
<option value="en">English</option>
<option value="zh_CN">简体中文</option>
<option value="zh_TW">繁體中文</option>
<option value="jp">日本語</option>
<option value="ko">한국어</option>
<option value="ru">русский</option>
<option value="it">Italiano</option>
</select>
</div>
</div>
<iframe id="deck-editor" src="./webxoss-client/DeckEditor/" scrolling="no" frameborder="no" border="0"></iframe>
</div>
</body>
<style type="text/css">
.flex {
display: flex;
}
.helper {
display: flex;
flex-direction: column;
}
.helper>div {
padding: 0.5em;
}
.row>div {
flex: 1;
}
.row>div>span {
margin-right: 1em;
}
.card-name {
border: none;
border-bottom: 1px solid #000;
text-align: center;
width: 6em;
}
.target-player {
appearance: none;
-moz-appearance: none;
/* Firefox */
-webkit-appearance: none;
/* Safari 和 Chrome */
border: none;
width: 7em;
}
.flex-center {
display: flex;
flex: 1;
justify-content: center;
}
.language {
text-align: right;
}
textarea {
resize: none;
height: auto;
width: 100%;
}
button {
padding: .5em 1em;
color: #fff;
border: 1px solid #999;
border: transparent;
background-color: #0078e7;
text-decoration: none;
border-radius: 2px;
display: inline-block;
zoom: 1;
white-space: nowrap;
vertical-align: middle;
text-align: center;
cursor: pointer;
}
button:disabled,
button[disabled] {
border: none;
opacity: .4;
cursor: not-allowed;
}
body {
font-family: PingFangSC-Regular, 'Helvetica Neue', Tahoma, Arial, 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
}
</style>
</html>