仅供娱乐,更改一下jquery的引用位置即可,+15功能有点bug
有兴趣的人可以在这个基础上加一个定制御魂功能
(请给我双速18招财头!)
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><h1>陰陽師御魂模擬器</h1><input type="radio" name="location" value="1" >1號位<input type="radio" name="location" value="2" >2號位<input type="radio" name="location" value="3" >3號位<input type="radio" name="location" value="4" >4號位<input type="radio" name="location" value="5" >5號位<input type="radio" name="location" value="6" >6號位<br><button type="button" id="generate">generate</button><div id="result"><span style="display: none;" id="upCount">0</span></div><input type="radio" name="upy" value="1" >+3<input type="radio" name="upy" value="2" >+6<input type="radio" name="upy" value="3" >+9<input type="radio" name="upy" value="4" >+12<input type="radio" name="upy" value="5" >+15<br><button type="button" id="upy">upy</button><div id="resultHistoryList"></div></body><script src="jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">var arrAll = ['攻擊加成','防禦加成','生命加成','速度','效果命中','效果抵抗','暴擊傷害','暴擊'];var arr1 = ['攻擊加成','防禦加成','生命加成','速度'];var arr2 = ['攻擊加成','防禦加成','生命加成','效果命中','效果抵抗'];var arr3 = ['攻擊加成','防禦加成','生命加成','暴擊傷害','暴擊'];function addStatusPreMain(type){switch (type){case '攻擊':return 81;case '防禦':return 14;case '生命':return 342;case '攻擊加成':case '防禦加成':case '生命加成':case '暴擊':case '效果命中':case '效果抵抗':return 10;case '速度':return 12;case '暴擊傷害':return 14;default:break;}}function addStatusMain(type){switch (type){case '攻擊':return 27;case '防禦':return 6;case '生命':return 114;case '攻擊加成':case '防禦加成':case '生命加成':case '暴擊':case '效果命中':case '效果抵抗':case '速度':return 3;case '暴擊傷害':return 5;default:break;}}function addStatusOther(type){switch (type){case '攻擊':return Math.random()*7+20;case '防禦':return Math.random()*2+4;case '生命':return Math.random()*14+100;;case '攻擊加成':case '防禦加成':case '生命加成':case '暴擊':case '速度':return Math.random()+2;case '效果命中':case '效果抵抗':case '暴擊傷害':return Math.random()+3;default:break;}}function addMain(arr){switch($("input[name='location']:checked").val()){case '1':arr.main1 = "攻擊";arr.main1Status = addStatusPreMain(arr.main1);break;case '2':arr.main1 = arr1[Math.floor(Math.random() * (arr1.length))];arr.main1Status = addStatusPreMain(arr.main1);break;case '3':arr.main1 = "防禦";arr.main1Status = addStatusPreMain(arr.main1);break;case '4':arr.main1 = arr2[Math.floor(Math.random() * (arr1.length))];arr.main1Status = addStatusPreMain(arr.main1);break;case '5':arr.main1 = "生命";arr.main1Status = addStatusPreMain(arr.main1);break;case '6':arr.main1 = arr3[Math.floor(Math.random() * (arr1.length))];arr.main1Status = addStatusPreMain(arr.main1);break;default:break;}}function getRandNum(arr,otherTime){if(arr == null){arr = [];for (i = 0 ;i<otherTime;i++) {var ran = Math.floor(Math.random() * (arrAll.length));while(isExist(arr,ran)){ran = Math.floor(Math.random() * (arrAll.length));}arr[i] = ran;}return arr;}else{var newArr = [];for (i = 0 ;i<otherTime;i++) {var ran = Math.floor(Math.random() * (arrAll.length));while(isExist(arr,ran)){ran = Math.floor(Math.random() * (arrAll.length));}newArr[i] = ran;}return newArr;}}function isExist(arr,ran){for (j=0;j<arr.length;j++) {if(arr[j] == ran){return true;}}return false;}function addOther(arr,otherTime){var otherNums = getRandNum(null,otherTime);arr.otherNums = otherNums;switch (otherTime){case 4:arr.other4 = arrAll[otherNums[3]];arr.other4Status = addStatusOther(arr.other4);case 3:arr.other3 = arrAll[otherNums[2]];arr.other3Status = addStatusOther(arr.other3);case 2:arr.other2 = arrAll[otherNums[1]];arr.other2Status = addStatusOther(arr.other2);case 1:arr.other1 = arrAll[otherNums[0]];arr.other1Status = addStatusOther(arr.other1);break;default:break;}}function addNowStatus(arr){var key = "other"+Math.floor(Math.random() * arr.otherTime + 1);var num = arr[key+"Status"];num += addStatusOther(arr[key]);arr[key+"Status"] = num;}function addNewStatus(arr,position){var otherNums = getRandNum(arr.otherNums,1);arr.otherNums[position-1] = otherNums[0];arr["other"+position] = arrAll[otherNums[0]];arr["other"+position+"Status"] = addStatusOther(arr["other"+position]);}var arr = new Object();$("#generate").click(function(){resultHistoryList$("#resultHistoryList").append($("#result").html());$("#result").html("");arr = new Object();addMain(arr);var otherTime = Math.floor(Math.random()*3+2);addOther(arr,otherTime);arr.otherTime = otherTime;arr.upTime = 0;$.each(arr,function(index,value){if(!(index == "otherNums" || index == "upTime" || index == "otherTime")){$("#result").append(arr[index]+"<br/>");}})})$("#upy").click(function(){if(arr.otherTime == undefined){alert("先生成一個");return;}var type = parseInt($("input[name='upy']:checked").val());for (i=0;i<type;i++) {if(arr.upTime >= 5){break;}arr.upTime++;arr.main1Status = (arr.main1Status+=(addStatusMain(arr.main1)*3))if(arr.otherTime < 4){if(Math.random() > 0.5){arr.otherTime = arr.otherTime + 1;addNewStatus(arr,arr.otherTime);}else{addNowStatus(arr);}}else{addNowStatus(arr);}}$("#result").html("");$.each(arr,function(index,value){if(!(index == "otherNums" || index == "upTime" || index == "otherTime")){$("#result").append(arr[index]+"<br/>");}})})</script></html>