Divine Gate 维基
探索
首页
讨论板
所有页面
社区页
交互式地图
最新博文
遊戲知識
工具
Divine Gate Wikia APK
Divine Gate Tool
體力計算
模擬強化合成
模擬刮卡
隊伍組合
活動時間表
基礎資料
版本更新
帳號升級能力表
任務
抽獎資訊
數據轉移系統
棋子掉落機制
亂入
心得
遊戲開局
朋友系統
遊戲秘技
速刷首抽秘技
光闇無主角開局
無視移動系陷阱
關於所有陷阱的小Bug
Unit相關
經驗值類型: Type2 (Lv 10) Type2 (Lv 15) Type2 (Lv 25) Type2 (Lv 30) Type2 (Lv 50) Type2 (Lv 70) Type3 (Lv 5) Type3 (Lv 10) Type3 (Lv 15) Type3 (Lv 25) Type3 (Lv 30) Type3 (Lv 35) Type3 (Lv 50) Type3 (Lv 70) Type5 (Lv 50) Type5 (Lv 99) 不能升級 合作小怪 Type4 第三世代A 第三世代B 合作刮卡 巨人 Type3e 妖尾II 御坂妹 化合龍A 化合龍B 一夜 大貓 花獸 WEGO — 滿級經驗: — 最大等級: — 成長曲線: 等級基礎經驗升到下級 /**/
@import url(//cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.min.css); #friends th { text-align: right; } #calculate-button { width: 50%; margin: 1em; } #friends { margin: auto; } .highlighted-unit { background: purple; } 合成目標【Base】: 不指定 強化素材【Materials】:Lv數量 經常出現的朋友及路人 火水風光闇無 人類 龍 神 魔物 妖精 獸 機械 強化合成用 var newRowTemplate = '' + '' + '' + '' + ''; function fetchFriendFactors() { var friendFactors = {'': 1}; var elems = ['火','水','風','光','闇','無']; var races = ['人類','龍','神','魔物','妖精','獸','機械','強化合成用']; $.each(elems, function (_, elem) { $.each(races, function (_, race) { friendFactors[elem + race] = 1.0; }); }); $('#friends input:checked').each(function () { var kind = $(this).data('kind').split(/-/); var thisElem = kind[0]; var thisRace = kind[1]; friendFactors[thisElem + thisRace] = 1.5; $.each(elems, function (_, elem) { friendFactors[elem + thisRace] = Math.max(1.25, friendFactors[elem + thisRace]); }); $.each(races, function (_, race) { friendFactors[thisElem + race] = Math.max(1.25, friendFactors[thisElem + race]); }); }); return friendFactors; } function getMinExp(info, level) { if (level >= info.lvmax) { return info.expmax; } else { var ratio = (level - 1) / (info.lvmax - 1); return Math.ceil(info.expmax * Math.pow(ratio, info.exppow)); } } var NEXT_UNIT_KEY = 0; function Unit(unitData, unitId, level) { this.key = NEXT_UNIT_KEY++; this.unitId = unitId; if (!unitData) { return; } var info = this._info = unitData[unitId]; this._exp = getMinExp(info, level); var blendCoeff = info.blendpow * (info.blendmax - info.blendmin) / info.exppow; this._blendCoeff = blendCoeff * Math.pow(info.expmax, -info.blendpow / info.exppow); this.recompute(); }; Unit.prototype.recompute = function () { var info = this._info; if (this._exp >= info.expmax) { this._exp = info.expmax; this._level = info.lvmax; this._blend = info.blendmax; } else { var raw_ratio = Math.pow((this._exp / info.expmax), 1 / info.exppow); this._level = ((raw_ratio * (info.lvmax - 1))|0) + 1; var ratio = Math.pow((this._level - 1) / (info.lvmax - 1), info.blendpow); this._blend = info.blendmin + (((info.blendmax - info.blendmin) * ratio)|0); } var blendPotential = Math.pow(Math.max(1, this._exp), info.blendpow / info.exppow - 1); this._blendPotential = this._blendCoeff * blendPotential; }; Unit.prototype.clone = function () { var newUnit = new Unit(); newUnit.unitId = this.unitId; newUnit._info = this._info; newUnit._exp = this._exp; newUnit._level = this._level; newUnit._blend = this._blend; newUnit._blendCoeff = this._blendCoeff; newUnit._blendPotential = this._blendPotential; return newUnit; }; Unit.prototype.getBlendFactor = function (info, friendFactors) { var factor = friendFactors[info.elem + info.race] || friendFactors; if (this._info.elem == info.elem) { factor *= 1.5; } return factor; }; Unit.prototype.minimizeFriendFactor = function () { var minExp = getMinExp(this._info, this._level); var baseExp = this.target._exp; var targetInfo = this.target._info; for (var ff = 1.0; ff < this.friendFactor; ff += 0.25) { var blend = this.material.getBlend(targetInfo, ff); if (blend + baseExp >= minExp) { this.friendFactor = ff; this._exp = blend + baseExp; break; } } }; Unit.prototype.getBlend = function (info, friendFactors) { return (this.getBlendFactor(info, friendFactors) * this._blend)|0; }; Unit.prototype.getBlendPotential = function (info, friendFactors) { return this.getBlendFactor(info, friendFactors) * this._blendPotential; }; Unit.prototype.toHTMLPartsSimple = function () { var info = this._info; return [ ' Lv.', this._level, '', ]; }; Unit.prototype.toHTMLParts = function () { /* Assume `.target` and `.material` are defined! */ var selfParts = this.toHTMLPartsSimple(); var targetParts = this.target.toHTMLPartsSimple(); var materialParts = this.material.toHTMLPartsSimple(); var ffString = this.friendFactor; if (this.friendFactor == 1) { ffString = '1.0'; } var materialBlend = this._exp - this.target._exp; return [''].concat(selfParts, ' = ', targetParts, ' + ', materialParts, ' (×', ffString, ' = ', materialBlend,')'); }; function blendUnits(target, material, friendFactors) { var result = target.clone(); result.target = target; result.material = material; result.friendFactor = friendFactors[target._info.elem + target._info.race]; result._exp += material.getBlend(target._info, friendFactors); result.recompute(); return result; } function fetchMaterials(unitData) { var materials = []; $('#units-tbody').children().each(function (i, row) { var unitId = $('select.unit', row).val(); var level = $('input.level', row).val()|0; for (var j = $('input.count', row).val()|0; j > 0; -- j) { materials.push(new Unit(unitData, unitId, level)); } }); return materials; } function BlendMatrix(materials, finalTargetInfo, friendFactors) { this._finalTargetInfo = finalTargetInfo; this._friendFactors = friendFactors; this._materials = materials.map(function (x) { return [x.getBlendPotential(finalTargetInfo, friendFactors), x, -1]; }); this._frozenMaterials = []; this.sortMaterials(); } BlendMatrix.prototype.sortMaterials = function () { this._materials.sort(function (a, b) { return b[0] - a[0]; }); }; BlendMatrix.prototype.checkMergeableOneSide = function (target, material) { var finalTargetInfo = this._finalTargetInfo; var friendFactors = this._friendFactors; var targetBlend = target.getBlend(finalTargetInfo, friendFactors); var materialBlend = material.getBlend(finalTargetInfo, friendFactors); var blendThreshold = targetBlend + materialBlend; var merged = blendUnits(target, material, friendFactors); var mergedBlend = merged.getBlend(finalTargetInfo, friendFactors); if (mergedBlend = p2[2]) { return p1; } else { return p2; } }; BlendMatrix.prototype.trySurvive = function () { var warmMaterial = this._materials.pop()[1]; var bestProposal = [0, null, -1]; var bestProposalIndex = -1; for (var i = 0; i < this._frozenMaterials.length; ++ i) { var frozenMaterial = this._frozenMaterials[i]; var proposal = this.checkMergeable(warmMaterial, frozenMaterial); if (proposal) { if (proposal[2] > bestProposal[2]) { bestProposal = proposal; bestProposalIndex = i; } } } if (bestProposalIndex >= 0) { this._frozenMaterials.splice(bestProposalIndex, 1); this._materials.push(bestProposal); return null; } else { return warmMaterial; } }; BlendMatrix.prototype.compress = function () { switch (this._materials.length) { default: { var worstMaterial = this._materials.pop(); var secondMaterial = this._materials.pop(); var proposalLow = this.checkMergeable(worstMaterial[1], secondMaterial[1]); var shouldMerge; if (!proposalLow) { shouldMerge = false; } else { var bestMaterial = this._materials[this._materials.length - 1]; var proposalHigh = this.checkMergeable(secondMaterial[1], bestMaterial[1]); var proposalMid = this.checkMergeable(worstMaterial[1], bestMaterial[1]); if (!(proposalHigh || proposalMid)) { shouldMerge = true; } else { var finalTargetInfo = this._finalTargetInfo; var friendFactors = this._friendFactors; var this_ = this; function computeTotalBlend(proposal, material) { if (!proposal) { return 0; } var merge = this_.checkMergeable(proposal[1], material); if (merge) { return merge[2]; } else { return proposal[2] + material.getBlend(finalTargetInfo, friendFactors); } } var lowTotalBlend = computeTotalBlend(proposalLow, bestMaterial[1]); var highTotalBlend = computeTotalBlend(proposalHigh, worstMaterial[1]); var midTotalBlend = computeTotalBlend(proposalMid, secondMaterial[1]); if (lowTotalBlend >= midTotalBlend) { shouldMerge = (lowTotalBlend >= highTotalBlend); } else { if (midTotalBlend > highTotalBlend) { this._materials[this._materials.length - 1] = secondMaterial; proposalLow = proposalMid; shouldMerge = true; } else { shouldMerge = false; } } } } /* accept low only if high is not better. */ if (shouldMerge) { this._materials.push(proposalLow); } else { this._materials.push(secondMaterial); this._frozenMaterials.push(worstMaterial[1]); } return true; } case 2: { var material1 = this._materials.pop(); var material2 = this._materials.pop(); var proposal = this.checkMergeable(material1[1], material2[1]); if (proposal) { this._materials.push(proposal); return true; } else { this._materials.push(material2, material1); /* fallthrough */ } } case 1: { var frozenMaterial = this.trySurvive(); if (!frozenMaterial) { return true; } else { this._frozenMaterials.push(frozenMaterial); /* fallthrough */ } } case 0: return (this._materials.length); } if (!this._materials.length) { return false; } var material = this._materials.pop(); if (this._materials.length) { var anotherMaterial = this._materials.pop(); var mergeProposal1 = this.checkMergeable(material[1], anotherMaterial[1]); var mergeProposal2 = this.checkMergeable(anotherMaterial[1], material[1]); if (mergeProposal2) { this._materials.push(mergeProposal2); this.sortMaterials(); return true; } else if (mergeProposal1) { this._materials.push(mergeProposal1); this.sortMaterials(); return true; } else { this._materials.push(anotherMaterial); } } for (var i = 0; i < this._frozenMaterials.length; ++ i) { var frozenMaterial = this._frozenMaterials[i]; var mergeResult = this.checkMergeable(material[1], frozenMaterial); if (mergeResult) { this._frozenMaterials.splice(i, 1); this._materials.push(mergeResult); this.sortMaterials(); return true; } } this._frozenMaterials.push(material[1]); return true; }; BlendMatrix.prototype.renderTo = function (elem) { var htmls = []; function appendMaterial(unit, canMinimize) { if (unit.material) { if (canMinimize) { unit.minimizeFriendFactor(); } htmls.push(unit.toHTMLParts()); appendMaterial(unit.material, true); appendMaterial(unit.target, false); } } for (var i = 0; i < this._frozenMaterials.length; ++ i) { appendMaterial(this._frozenMaterials[i], true); } htmls.reverse(); for (var i = 0; i < this._frozenMaterials.length; ++ i) { htmls.push('✓ ', this._frozenMaterials[i].toHTMLPartsSimple(), ''); } var flattened = []; htmls = flattened.concat.apply(flattened, htmls); elem.innerHTML = htmls.join(''); }; var PUBLIC_MATRIX; function pageFn() { var unitData = JSON.parse($('#unit-info').text()); function nextUnitId(x) { var newId = '000' + (1 + (x|0)); newId = newId.substr(newId.length - 3); if (!unitData[newId]) { newId = '001'; } return newId; } function addRow() { var tbody = $('#units-tbody'); var newId = tbody.children().length; tbody.append($(newRowTemplate)); var newRow = tbody.children().last(); makeUnitSelector($('select.unit', newRow), unitData, function (x) { if (newId) { var prevRow = newRow.prev(); $('input.level', newRow).val($('input.level', prevRow).val()); x.select2('val', nextUnitId($('select.unit', prevRow).val())); } else { x.select2('val', '187'); } }); $('select.unit,input.level', newRow).change(function () { var level = $('input.level', newRow); level.val(Math.min(unitData[$('select.unit', newRow).val()].lvmax, level.val() >>> 0)); }); } $('#add-new-button').click(addRow); $('#calculate-button').click(function () { NEXT_UNIT_KEY = 0; var friendFactors = fetchFriendFactors(); var materials = fetchMaterials(unitData); var finalTargetInfo; if ($('#base-type-some').prop('checked')) { finalTargetInfo = unitData[$('#base-unit').val()]; } else { finalTargetInfo = {elem: '', race: ''}; } var matrix = new BlendMatrix(materials, finalTargetInfo, friendFactors); /* this is O(n^3). any faster algorithm? */ var stepCount = 0; for (; stepCount < 10000; ++ stepCount) { if (!matrix.compress()) { break; } } PUBLIC_MATRIX = matrix; if (stepCount >= 10000) { alert('找不到答案!(太複雜啦?)\n\nCannot find answer, maybe too complicated!'); } else { matrix.renderTo(document.getElementById('answer-area')); } }); addRow(); makeUnitSelector($('#base-unit'), unitData); $('#base-unit').change(function(){ $('#base-type-some').prop('checked', true); }); $('#units-tbody').on('click', '.delete-button', function () { var tr = $(this).closest('tr'); if (tr.siblings().length) { tr.remove(); } }); $('#answer-area').on('mouseenter mouseleave', '.blend-unit', function() { var unitKey = this.getAttribute('data-unit-key'); $('.blend-unit[data-unit-key=' + unitKey + ']').toggleClass('highlighted-unit'); }); }
副本
副本列表
戰鬥系統
陷阱系統
Unit索引
Unit一覽表
001–887
888-1754
1755+
屬性索引
水屬
風屬
火屬
光屬
闇屬
無屬
稀有度索引
★3
★6
★1
★2
★4
★5
種族索引
人類
獸
龍
機械
魔物
妖精
神
技能分類
隊長技能
主動技能
普通技能
被動技能
敵人技能
副本資訊
故事副本
都之系列
監獄系列
塔之系列
樓閣系列
休息室系列
研究所系列
遊園地系列
進化神殿
烈火殿ヘパイストス
流水殿ポセイドン
旋風殿ヘルメス
閃光殿アルテミス
常闇殿ハーデス
絶無殿ヘスティア
賭場副本
活動副本
單週副本
合作副本
降臨副本
FANDOM
游戏
电影
电视
wiki
探索wiki
社区中心
创建wiki
尚未注册?
注册
登录
登录
注册
Divine Gate 維基
4,441
个页面
探索
首页
讨论板
所有页面
社区页
交互式地图
最新博文
遊戲知識
工具
Divine Gate Wikia APK
Divine Gate Tool
體力計算
模擬強化合成
模擬刮卡
隊伍組合
活動時間表
基礎資料
版本更新
帳號升級能力表
任務
抽獎資訊
數據轉移系統
棋子掉落機制
亂入
心得
遊戲開局
朋友系統
遊戲秘技
速刷首抽秘技
光闇無主角開局
無視移動系陷阱
關於所有陷阱的小Bug
Unit相關
經驗值類型: Type2 (Lv 10) Type2 (Lv 15) Type2 (Lv 25) Type2 (Lv 30) Type2 (Lv 50) Type2 (Lv 70) Type3 (Lv 5) Type3 (Lv 10) Type3 (Lv 15) Type3 (Lv 25) Type3 (Lv 30) Type3 (Lv 35) Type3 (Lv 50) Type3 (Lv 70) Type5 (Lv 50) Type5 (Lv 99) 不能升級 合作小怪 Type4 第三世代A 第三世代B 合作刮卡 巨人 Type3e 妖尾II 御坂妹 化合龍A 化合龍B 一夜 大貓 花獸 WEGO — 滿級經驗: — 最大等級: — 成長曲線: 等級基礎經驗升到下級 /**/
@import url(//cdnjs.cloudflare.com/ajax/libs/select2/3.4.5/select2.min.css); #friends th { text-align: right; } #calculate-button { width: 50%; margin: 1em; } #friends { margin: auto; } .highlighted-unit { background: purple; } 合成目標【Base】: 不指定 強化素材【Materials】:Lv數量 經常出現的朋友及路人 火水風光闇無 人類 龍 神 魔物 妖精 獸 機械 強化合成用 var newRowTemplate = '' + '' + '' + '' + ''; function fetchFriendFactors() { var friendFactors = {'': 1}; var elems = ['火','水','風','光','闇','無']; var races = ['人類','龍','神','魔物','妖精','獸','機械','強化合成用']; $.each(elems, function (_, elem) { $.each(races, function (_, race) { friendFactors[elem + race] = 1.0; }); }); $('#friends input:checked').each(function () { var kind = $(this).data('kind').split(/-/); var thisElem = kind[0]; var thisRace = kind[1]; friendFactors[thisElem + thisRace] = 1.5; $.each(elems, function (_, elem) { friendFactors[elem + thisRace] = Math.max(1.25, friendFactors[elem + thisRace]); }); $.each(races, function (_, race) { friendFactors[thisElem + race] = Math.max(1.25, friendFactors[thisElem + race]); }); }); return friendFactors; } function getMinExp(info, level) { if (level >= info.lvmax) { return info.expmax; } else { var ratio = (level - 1) / (info.lvmax - 1); return Math.ceil(info.expmax * Math.pow(ratio, info.exppow)); } } var NEXT_UNIT_KEY = 0; function Unit(unitData, unitId, level) { this.key = NEXT_UNIT_KEY++; this.unitId = unitId; if (!unitData) { return; } var info = this._info = unitData[unitId]; this._exp = getMinExp(info, level); var blendCoeff = info.blendpow * (info.blendmax - info.blendmin) / info.exppow; this._blendCoeff = blendCoeff * Math.pow(info.expmax, -info.blendpow / info.exppow); this.recompute(); }; Unit.prototype.recompute = function () { var info = this._info; if (this._exp >= info.expmax) { this._exp = info.expmax; this._level = info.lvmax; this._blend = info.blendmax; } else { var raw_ratio = Math.pow((this._exp / info.expmax), 1 / info.exppow); this._level = ((raw_ratio * (info.lvmax - 1))|0) + 1; var ratio = Math.pow((this._level - 1) / (info.lvmax - 1), info.blendpow); this._blend = info.blendmin + (((info.blendmax - info.blendmin) * ratio)|0); } var blendPotential = Math.pow(Math.max(1, this._exp), info.blendpow / info.exppow - 1); this._blendPotential = this._blendCoeff * blendPotential; }; Unit.prototype.clone = function () { var newUnit = new Unit(); newUnit.unitId = this.unitId; newUnit._info = this._info; newUnit._exp = this._exp; newUnit._level = this._level; newUnit._blend = this._blend; newUnit._blendCoeff = this._blendCoeff; newUnit._blendPotential = this._blendPotential; return newUnit; }; Unit.prototype.getBlendFactor = function (info, friendFactors) { var factor = friendFactors[info.elem + info.race] || friendFactors; if (this._info.elem == info.elem) { factor *= 1.5; } return factor; }; Unit.prototype.minimizeFriendFactor = function () { var minExp = getMinExp(this._info, this._level); var baseExp = this.target._exp; var targetInfo = this.target._info; for (var ff = 1.0; ff < this.friendFactor; ff += 0.25) { var blend = this.material.getBlend(targetInfo, ff); if (blend + baseExp >= minExp) { this.friendFactor = ff; this._exp = blend + baseExp; break; } } }; Unit.prototype.getBlend = function (info, friendFactors) { return (this.getBlendFactor(info, friendFactors) * this._blend)|0; }; Unit.prototype.getBlendPotential = function (info, friendFactors) { return this.getBlendFactor(info, friendFactors) * this._blendPotential; }; Unit.prototype.toHTMLPartsSimple = function () { var info = this._info; return [ ' Lv.', this._level, '', ]; }; Unit.prototype.toHTMLParts = function () { /* Assume `.target` and `.material` are defined! */ var selfParts = this.toHTMLPartsSimple(); var targetParts = this.target.toHTMLPartsSimple(); var materialParts = this.material.toHTMLPartsSimple(); var ffString = this.friendFactor; if (this.friendFactor == 1) { ffString = '1.0'; } var materialBlend = this._exp - this.target._exp; return [''].concat(selfParts, ' = ', targetParts, ' + ', materialParts, ' (×', ffString, ' = ', materialBlend,')'); }; function blendUnits(target, material, friendFactors) { var result = target.clone(); result.target = target; result.material = material; result.friendFactor = friendFactors[target._info.elem + target._info.race]; result._exp += material.getBlend(target._info, friendFactors); result.recompute(); return result; } function fetchMaterials(unitData) { var materials = []; $('#units-tbody').children().each(function (i, row) { var unitId = $('select.unit', row).val(); var level = $('input.level', row).val()|0; for (var j = $('input.count', row).val()|0; j > 0; -- j) { materials.push(new Unit(unitData, unitId, level)); } }); return materials; } function BlendMatrix(materials, finalTargetInfo, friendFactors) { this._finalTargetInfo = finalTargetInfo; this._friendFactors = friendFactors; this._materials = materials.map(function (x) { return [x.getBlendPotential(finalTargetInfo, friendFactors), x, -1]; }); this._frozenMaterials = []; this.sortMaterials(); } BlendMatrix.prototype.sortMaterials = function () { this._materials.sort(function (a, b) { return b[0] - a[0]; }); }; BlendMatrix.prototype.checkMergeableOneSide = function (target, material) { var finalTargetInfo = this._finalTargetInfo; var friendFactors = this._friendFactors; var targetBlend = target.getBlend(finalTargetInfo, friendFactors); var materialBlend = material.getBlend(finalTargetInfo, friendFactors); var blendThreshold = targetBlend + materialBlend; var merged = blendUnits(target, material, friendFactors); var mergedBlend = merged.getBlend(finalTargetInfo, friendFactors); if (mergedBlend = p2[2]) { return p1; } else { return p2; } }; BlendMatrix.prototype.trySurvive = function () { var warmMaterial = this._materials.pop()[1]; var bestProposal = [0, null, -1]; var bestProposalIndex = -1; for (var i = 0; i < this._frozenMaterials.length; ++ i) { var frozenMaterial = this._frozenMaterials[i]; var proposal = this.checkMergeable(warmMaterial, frozenMaterial); if (proposal) { if (proposal[2] > bestProposal[2]) { bestProposal = proposal; bestProposalIndex = i; } } } if (bestProposalIndex >= 0) { this._frozenMaterials.splice(bestProposalIndex, 1); this._materials.push(bestProposal); return null; } else { return warmMaterial; } }; BlendMatrix.prototype.compress = function () { switch (this._materials.length) { default: { var worstMaterial = this._materials.pop(); var secondMaterial = this._materials.pop(); var proposalLow = this.checkMergeable(worstMaterial[1], secondMaterial[1]); var shouldMerge; if (!proposalLow) { shouldMerge = false; } else { var bestMaterial = this._materials[this._materials.length - 1]; var proposalHigh = this.checkMergeable(secondMaterial[1], bestMaterial[1]); var proposalMid = this.checkMergeable(worstMaterial[1], bestMaterial[1]); if (!(proposalHigh || proposalMid)) { shouldMerge = true; } else { var finalTargetInfo = this._finalTargetInfo; var friendFactors = this._friendFactors; var this_ = this; function computeTotalBlend(proposal, material) { if (!proposal) { return 0; } var merge = this_.checkMergeable(proposal[1], material); if (merge) { return merge[2]; } else { return proposal[2] + material.getBlend(finalTargetInfo, friendFactors); } } var lowTotalBlend = computeTotalBlend(proposalLow, bestMaterial[1]); var highTotalBlend = computeTotalBlend(proposalHigh, worstMaterial[1]); var midTotalBlend = computeTotalBlend(proposalMid, secondMaterial[1]); if (lowTotalBlend >= midTotalBlend) { shouldMerge = (lowTotalBlend >= highTotalBlend); } else { if (midTotalBlend > highTotalBlend) { this._materials[this._materials.length - 1] = secondMaterial; proposalLow = proposalMid; shouldMerge = true; } else { shouldMerge = false; } } } } /* accept low only if high is not better. */ if (shouldMerge) { this._materials.push(proposalLow); } else { this._materials.push(secondMaterial); this._frozenMaterials.push(worstMaterial[1]); } return true; } case 2: { var material1 = this._materials.pop(); var material2 = this._materials.pop(); var proposal = this.checkMergeable(material1[1], material2[1]); if (proposal) { this._materials.push(proposal); return true; } else { this._materials.push(material2, material1); /* fallthrough */ } } case 1: { var frozenMaterial = this.trySurvive(); if (!frozenMaterial) { return true; } else { this._frozenMaterials.push(frozenMaterial); /* fallthrough */ } } case 0: return (this._materials.length); } if (!this._materials.length) { return false; } var material = this._materials.pop(); if (this._materials.length) { var anotherMaterial = this._materials.pop(); var mergeProposal1 = this.checkMergeable(material[1], anotherMaterial[1]); var mergeProposal2 = this.checkMergeable(anotherMaterial[1], material[1]); if (mergeProposal2) { this._materials.push(mergeProposal2); this.sortMaterials(); return true; } else if (mergeProposal1) { this._materials.push(mergeProposal1); this.sortMaterials(); return true; } else { this._materials.push(anotherMaterial); } } for (var i = 0; i < this._frozenMaterials.length; ++ i) { var frozenMaterial = this._frozenMaterials[i]; var mergeResult = this.checkMergeable(material[1], frozenMaterial); if (mergeResult) { this._frozenMaterials.splice(i, 1); this._materials.push(mergeResult); this.sortMaterials(); return true; } } this._frozenMaterials.push(material[1]); return true; }; BlendMatrix.prototype.renderTo = function (elem) { var htmls = []; function appendMaterial(unit, canMinimize) { if (unit.material) { if (canMinimize) { unit.minimizeFriendFactor(); } htmls.push(unit.toHTMLParts()); appendMaterial(unit.material, true); appendMaterial(unit.target, false); } } for (var i = 0; i < this._frozenMaterials.length; ++ i) { appendMaterial(this._frozenMaterials[i], true); } htmls.reverse(); for (var i = 0; i < this._frozenMaterials.length; ++ i) { htmls.push('✓ ', this._frozenMaterials[i].toHTMLPartsSimple(), ''); } var flattened = []; htmls = flattened.concat.apply(flattened, htmls); elem.innerHTML = htmls.join(''); }; var PUBLIC_MATRIX; function pageFn() { var unitData = JSON.parse($('#unit-info').text()); function nextUnitId(x) { var newId = '000' + (1 + (x|0)); newId = newId.substr(newId.length - 3); if (!unitData[newId]) { newId = '001'; } return newId; } function addRow() { var tbody = $('#units-tbody'); var newId = tbody.children().length; tbody.append($(newRowTemplate)); var newRow = tbody.children().last(); makeUnitSelector($('select.unit', newRow), unitData, function (x) { if (newId) { var prevRow = newRow.prev(); $('input.level', newRow).val($('input.level', prevRow).val()); x.select2('val', nextUnitId($('select.unit', prevRow).val())); } else { x.select2('val', '187'); } }); $('select.unit,input.level', newRow).change(function () { var level = $('input.level', newRow); level.val(Math.min(unitData[$('select.unit', newRow).val()].lvmax, level.val() >>> 0)); }); } $('#add-new-button').click(addRow); $('#calculate-button').click(function () { NEXT_UNIT_KEY = 0; var friendFactors = fetchFriendFactors(); var materials = fetchMaterials(unitData); var finalTargetInfo; if ($('#base-type-some').prop('checked')) { finalTargetInfo = unitData[$('#base-unit').val()]; } else { finalTargetInfo = {elem: '', race: ''}; } var matrix = new BlendMatrix(materials, finalTargetInfo, friendFactors); /* this is O(n^3). any faster algorithm? */ var stepCount = 0; for (; stepCount < 10000; ++ stepCount) { if (!matrix.compress()) { break; } } PUBLIC_MATRIX = matrix; if (stepCount >= 10000) { alert('找不到答案!(太複雜啦?)\n\nCannot find answer, maybe too complicated!'); } else { matrix.renderTo(document.getElementById('answer-area')); } }); addRow(); makeUnitSelector($('#base-unit'), unitData); $('#base-unit').change(function(){ $('#base-type-some').prop('checked', true); }); $('#units-tbody').on('click', '.delete-button', function () { var tr = $(this).closest('tr'); if (tr.siblings().length) { tr.remove(); } }); $('#answer-area').on('mouseenter mouseleave', '.blend-unit', function() { var unitKey = this.getAttribute('data-unit-key'); $('.blend-unit[data-unit-key=' + unitKey + ']').toggleClass('highlighted-unit'); }); }
副本
副本列表
戰鬥系統
陷阱系統
Unit索引
Unit一覽表
001–887
888-1754
1755+
屬性索引
水屬
風屬
火屬
光屬
闇屬
無屬
稀有度索引
★3
★6
★1
★2
★4
★5
種族索引
人類
獸
龍
機械
魔物
妖精
神
技能分類
隊長技能
主動技能
普通技能
被動技能
敵人技能
副本資訊
故事副本
都之系列
監獄系列
塔之系列
樓閣系列
休息室系列
研究所系列
遊園地系列
進化神殿
烈火殿ヘパイストス
流水殿ポセイドン
旋風殿ヘルメス
閃光殿アルテミス
常闇殿ハーデス
絶無殿ヘスティア
賭場副本
活動副本
單週副本
合作副本
降臨副本
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
正在編輯
ケリ姫スイーツ
返回页面
编辑
可视化编辑器
查看历史
讨论 (0)
正在编辑
ケリ姫スイーツ
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
[[File:Kerihime_banner2.jpg]] 本關卡於 2014 年 1 月 29 日首次開放。此關卡共包含 3 個區域,分別為: * ケリ姫スイーツⅠ:初級、中級、上級 * ケリ姫スイーツⅡ:超級、神級、姬級 * ケリ姫スイーツⅢ:超姬級 首次挑戰者共可獲得 {{銀幣}}×3。公主踢是第一個合作有多於1個區域。 是次合作對象是同為 GungHo 運營的手機遊戲《Princess Punt Sweets 公主踢騎士》,玩法類似《Angry Birds 憤怒的小鳥》,由主人公「克莉公主」將她的隨從踢到敵方怪物作攻擊。同時亦加入了育成、抽獎等手機JRPG元素。 因公主踢屬自家遊戲,所以 Divine Gate 亦出現於對方關卡之中,而雙方玩家參與對方遊戲的活動亦可獲得獎勵。詳情可參閱[http://www.gungho.jp/kps/event/140519_divinegate_w79ad.html 公主踢方面的活動頁]。 == 開放時間記錄== {| class=wikitable style="text-align:center" |- ! 次數 !! 開放日期 !! 結束時間 !! 備註 |- ! 1 | 2014年01月29日07時 || 2014年02月10日06時 || |- ! 2 | 2014年05月19日10時 || 2014年05月26日06時 || 新增區域[[ケリ姫スイーツⅢ]] |- ! 3 | 2015年06月01日09時 || 2014年06月12日10時 || 新增任務 |} == 亂入Unit == {{亂入Unit簡介}} {{#invoke:Enemy|List| 472. !. atk 106. hp 2128. def 0. next 3. drop 472 Lv1. quest 初級 472. !. atk 522. hp 5492. def 73. next 3. drop 472 Lv1. quest 中級 472. !. atk 3937. hp 6984. def 110. next 2. drop 472 Lv1. quest 上級 472. !. atk 10881. hp 12968. def 252. next 1. drop 472 Lv1. quest 超級 472. !. atk 13522. hp 31872. def 571. next 1. drop 472 Lv1. quest 神級 472. !. atk 18307. hp 91104. def 1180. next 1. drop 472 Lv1. quest 姫級 472. !. atk 19662. hp 2350000. def 2000. next 1. drop 472 Lv1. quest 超姫級 }} == -{ケリ姫スイーツ:初級}- == {{QuestInfo|tickets=0|sta=5|floor=1|exp=20|money=100 |min-money=380|max-money=1,955|avg-money=1,220|traps=}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 58. hp 155. def 0. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 42. hp 288. def 0. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 48. hp 357. def 0. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 35. hp 214. def 0. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 73. hp 330. def 0. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 38. hp 412. def 0. next 1. drop 469 Lv1 471. Boss. atk 148. hp 4521. def 0. next 4. drop 470 Lv1 }} {{Story|【ケリ姫スイーツ:初級】<br>ケットバス王国の城内。姫君がスイーツ片手に紅茶を楽しむ頃。舞い込んできた1通の紙飛行機が姫に知らせたのは、幻のスイーツの噂。その味を想像するだけで緩む口元。飲みかけの紅茶もそのままに、姫は不思議な扉への出発準備を始めた。}} == -{ケリ姫スイーツ:中級}- == {{QuestInfo|tickets=0|sta=5|floor=1|exp=40|money=280 |min-money=1,000|max-money=2,990|avg-money=2,012|traps=地雷Ⅰ,トラⅠ,空腹Ⅰ,ダーⅠ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 255. hp 466. def 46. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 152. hp 762. def 53. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 233. hp 1138. def 74. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 123. hp 598. def 29. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 363. hp 1078. def 128. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 138. hp 1360. def 91. next 1. drop 469 Lv1 471. Boss. atk 1498. hp 11642. def 140. next 3. drop 470 Lv1 }} {{Story|【ケリ姫スイーツ:中級】<br>紙飛行機が記された地へと向かった姫と兵士達。辿り着いたのは古ぼけた扉。気味が悪いと怖がる兵士達を尻目に、足どり軽く扉の奥へと進んでいく姫。顔を見合わせ、意を決した兵士達。彼等も又、主を追って駆け足で扉の奥へと飛び込んでいった。}} == -{ケリ姫スイーツ:上級}- == {{QuestInfo|tickets=0|sta=7|floor=1|exp=70|money=640 |min-money=2,040|max-money=5,760|avg-money=3,833|traps=ブロ,地雷Ⅱ,ダーⅡ,毒Ⅱ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 994. hp 1449. def 56. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 730. hp 2098. def 75. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 952. hp 3260. def 100. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 551. hp 1889. def 42. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 1189. hp 2540. def 170. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 600. hp 4507. def 153. next 1. drop 469 Lv1 471. Boss. atk 5135. hp 43284. def 229. next 2. drop 470 Lv1 }} * 首次通關獲贈 {{銀幣}} × 1 {{Story|【ケリ姫スイーツ:上級】<br>扉の中に飛び込んだ姫は、辺りに広がる甘い香りに心を躍らせる。きっとここに幻のスイーツが、そう姫は確信した。いくらモンスター達が行く手を阻もうとも、お気に入りのヒールを履いた姫は、兵士達を豪快に蹴り飛ばし、奥へと進んでいく。}} == -{ケリ姫スイーツ:超級}- == {{QuestInfo|tickets=0|sta=15|floor=1|exp=180|money=1,500 |min-money=4,300|max-money=13,280|avg-money=8,589|traps=テレ,地雷Ⅲ,ダーⅢ,毒Ⅲ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 3582. hp 6432. def 69. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 2291. hp 10835. def 92. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 2864. hp 16105. def 118. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 1875. hp 8367. def 55. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 3924. hp 12213. def 190. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 2173. hp 20805. def 173. next 1. drop 469 Lv1 471. Boss. atk 7341. hp 96568. def 518. next 2. drop 470 Lv1 }} {{Story|【ケリ姫スイーツ:超級】<br>無数の扉に、無数のスイーツ。いくら食べても無くならない、それはまるで楽園の様な世界。だが、それでも満たされないのは幻のスイーツへの期待からか。それとも何か別の理由が。何はともあれ、更なるスイーツを求めて姫は次の扉へと手をかけた。}} == -{ケリ姫スイーツ:神級}- == {{QuestInfo|tickets=0|sta=25|floor=1|exp=410|money=3,200 |min-money=8,000|max-money=18,080|avg-money=12,835|traps=テレ,地雷Ⅲ,毒Ⅲ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 5161. hp 10485. def 88. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 3577. hp 24926. def 115. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 4726. hp 38325. def 133. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 2748. hp 15613. def 79. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 6845. hp 29777. def 220. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 3144. hp 43694. def 197. next 1. drop 469 Lv1 471. Boss. atk 8438. hp 329272. def 1188. next 1. drop 470 Lv1 }} {{Story|【ケリ姫スイーツ:神級】<br>やけに暑い部屋へ辿り着いた姫と兵士達。部屋の中央には、白く大きな卵が鎮座していた。卵を使った様々なスイーツに思いを巡らせ、スキップで近付いていく姫。その手が卵に触れる直前、空気が割れる程の鳴き声が耳へと突き刺さった。}} == -{ケリ姫スイーツ:姫級}- == {{QuestInfo|tickets=0|sta=40|floor=1|exp=800|money=6,000 |min-money=13,200|max-money=26,810|avg-money=19,568|traps=テレ,地雷Ⅲ,毒Ⅲ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 8742. hp 30970. def 108. next 4. drop 464 Lv1 465. 1,2,5,6,!. atk 6866. hp 59852. def 139. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 7589. hp 72650. def 157. next 2. drop 466 Lv1 467. 3,4,5,6,!. atk 4922. hp 53226. def 99. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 9768. hp 61554. def 256. next 3. drop 468 Lv1 469. 3,4,5,6,!. atk 5516. hp 107388. def 212. next 1. drop 469 Lv1 471. Boss. atk 12120. hp 2203904. def 2100. next 1. drop 470 Lv1 }} * 首次通關獲贈 {{銀幣}} × 1 {{Story|【ケリ姫スイーツ:姫級】<br>一際甘い香りの漂う扉の前。部屋の中へと進む姫と兵士達の目に飛び込んできたのは天辺が見えない程のスイーツの山。その山の中から漏れ出す、神々しい程の光。そこに幻のスイーツが。姫は息を呑み、ゆっくりとその光へと手を伸ばしていった。}} == -{ケリ姫スイーツ:超姫級}- == {{QuestInfo|tickets=0|sta=50|floor=1|exp=1280|money=7,750 |min-money=16,150|max-money=31,460|avg-money=23,365|traps=テレ,地雷Ⅰ,地雷Ⅱ,地雷Ⅲ,地雷Ⅳ,地雷Ⅴ,地雷Ⅶ,トラⅠ,トラⅡ,トラⅢ,トラⅣ,トラⅤ,トラⅥ,トラⅦ,ダーⅠ,ダーⅡ,ダーⅢ,毒Ⅰ,毒Ⅱ,毒Ⅲ}} {{#invoke:Enemy|List| 464. 1,2,5,6,!. atk 12400. hp 120058. def 287. next 2. drop 464 Lv1 465. 1,2,5,6,!. atk 12400. hp 118660. def 264. next 2. drop 465 Lv1 466. 1,2,5,6,!. atk 18800. hp 145162. def 554. next 3. drop 466 Lv1 467. 3,4,5,6,!. atk 6180. hp 96044. def 302. next 1. drop 467 Lv1 468. 3,4,5,6,!. atk 6180. hp 98982. def 301. next 1. drop 468 Lv1 469. 3,4,5,6,!. atk 7100. hp 100006. def 108. next 1. drop 469 Lv1 653. Boss. atk 17882. hp 4800000. def 3000. next 1. drop 653 Lv1 * HP≤100%. 順序循環. 150,500660,150,200,500670,500680 }} * 首次通關獲贈 {{銀幣}} × 1 {{Story|【ケリ姫スイーツ:超姫級】<br>紙飛行機が記された地へと向かった姫と兵士達。辿り着いたのは古ぼけた扉。気味が悪いと怖がる兵士達を尻目に、足どり軽く扉の奥へと進んでいく姫。顔を見合わせ、意を決した兵士達。彼等も又、主を追って駆け足で扉の奥へと飛び込んでいった。}} == 任務 == {{#invoke:Missions|Quest|ケリ姫スイーツ:上級| 1: 462 Lv1 × 1 2: 金錢 × 1000 3: 友情點 × 500 5: 188 Lv1 × 1 10: 470 Lv1 × 1 }} {{#invoke:Missions|Quest|ケリ姫スイーツ:神級| 1: 金錢 × 3000 2: 友情點 × 200 3: 188 Lv1 × 1 5: 入場券 × 15 10: 188 Lv1 × 3 15: 189 Lv1 × 1 }} {{#invoke:Missions|Quest|ケリ姫スイーツ:超姫級| 1: 金錢 × 3000 2: 友情點 × 300 3: 189 Lv1 × 1 5: 入場券 × 25 10: 友情點 × 600 20: 189 Lv1 × 2 30: 入場券 × 50 40: 189 Lv1 × 3 50: 1116 Lv1 × 1 }} {{#invoke:Missions|Unit|470| 10: 銀幣 × 1 20: 銀幣 × 1 }} {{#invoke:Missions|Unit|653| 5: 銀幣 × 1 10: 銀幣 × 1 20: 銀幣 × 1 }} == 獲得 ケリ姫:聖服 == 只要完成《公主踢騎士》中 Divine Gate 的合作關卡便可獲贈 {{462|Monster}}。 取得方法: # 安裝《公主踢騎士》。 # 完成教學關卡。 # 按右上角的「イベント」按鈕進入活動關卡。 # 完成「Divine Gate Rush」中第一關。 # 打完後,會跳出視窗,在此按「GET」。 # 重開《Divine Gate》。 {{AreaInfo}}
摘要:
请注意在Divine Gate 维基上的所有贡献都将依据CC-BY-SA进行发布。
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
Template:!
(
查看源代码
)
Template:462
(
查看源代码
)
Template:AreaInfo
(
查看源代码
)
Template:Ifeq
(
查看源代码
)
Template:P2
(
查看源代码
)
Template:QuestInfo
(
查看源代码
)
Template:Story
(
查看源代码
)
Template:Texttip
(
查看源代码
)
Template:Traps
(
查看源代码
)
Template:Unit Info Direct
(
查看源代码
)
Template:亂入Unit簡介
(
查看源代码
)
Template:銀幣
(
查看源代码
)
Module:Enemy
(
编辑
)
Module:JSON
(
编辑
)
Module:Missions
(
编辑
)
Module:Quest
(
编辑
)
Module:QuestData
(
编辑
)
Module:Skill
(
编辑
)
Module:SkillData/AS
(
编辑
)
Module:SkillData/BS
(
编辑
)
Module:SkillData/EA
(
编辑
)
Module:SkillData/ES
(
编辑
)
Module:SkillData/LS
(
编辑
)
Module:SkillData/NS
(
编辑
)
Module:SkillData/PS
(
编辑
)
Module:SkillData/SA
(
编辑
)
Module:T
(
编辑
)
Module:Translate
(
编辑
)
Module:Unit
(
编辑
)
Module:UnitData
(
编辑
)
Module:UnitNameJP
(
编辑
)
Follow on IG
TikTok
Join Fan Lab