MediaWiki:Ck main.js:修订间差异

无编辑摘要
无编辑摘要
第471行: 第471行:
{
{
// 4星
// 4星
num: 96,
num: 18,
maxStar: 4,
maxStar: 4,
thisStar: 4,
thisStar: 4,
isUp:false,
isUp:false,
roles: roles_4
roles: roles_4
},
{
// 3.5星
num: 40,
maxStar: 4,
thisStar: 3,
isUp:false,
roles: roles_4
},
{
// 3星
num: 38,
maxStar: 3,
thisStar: 3,
isUp:false,
roles: roles_3
}
}
]},
]},
第517行: 第533行:
{
{
// 4星
// 4星
num: 96,
num: 18,
maxStar: 4,
maxStar: 4,
thisStar: 4,
thisStar: 4,
isUp:false,
isUp:false,
roles: roles_4
roles: roles_4
},
{
// 3.5星
num: 40,
maxStar: 4,
thisStar: 3,
isUp:false,
roles: roles_4
},
{
// 3星
num: 38,
maxStar: 3,
thisStar: 3,
isUp:false,
roles: roles_3
}
}
]}
]}

2024年9月11日 (三) 12:45的版本

var roles_3 = [{
	name: '马努埃尔',
},
{
	name: '伊布林',
},
{
	name: '哈利',
},
{
	name: '霍尔赫',
},
{
	name: '萨莉亚',
},
{
	name: '佩妮',
},
{
	name: '迪艾格',
},
{
	name: '费丽妮',
},
{
	name: '比利',
},
{
	name: '赫塞',
},
{
	name: '帕尔',
},
{
	name: '特利',
},
{
	name: '弗昂',
},
{
	name: '卡萝尔',
},
{
	name: '科妮',
},
{
	name: '古提',
},
{
	name: '薇薇安',
},
{
	name: '萨妮',
},
{
	name: '伍格',
},
{
	name: '南娜',
},
{
	name: '梅妮',
},
{
	name: '弗利欧',
},
{
	name: '尤妮丝',
},
{
	name: '多利',
},
];
var roles_4 = [{
	name: '普利基特',
},
{
	name: '洛洛',
},
{
	name: '雪娜',
},
{
	name: '约伦',
},
{
	name: '勒凡',
},
{
	name: '波拉',
},
{
	name: '艾弗伦',
},
{
	name: '肯尼斯',
},
{
	name: '科尔尼利亚',
},
{
	name: '杜兰',
},
{
	name: '纳尔',
},
{
	name: '梅贝儿',
},
{
	name: '伊利斯',
},
{
	name: '法维欧',
},
{
	name: '莉塔',
},
{
	name: '歇尔薇',
},
{
	name: '罗迪恩',
},
{
	name: '玛德蕾妮',
},
{
	name: '诺艾尔',
},
{
	name: '塞德里克',
},
{
	name: '梅诺',
},
{
	name: '巴拉德',
},
{
	name: '贝尔加',
},
{
	name: '阿孜莱特',
},
{
	name: '卡米拉',
},
{
	name: '迈尔斯',
},
{
	name: '贝尔特朗',
},
{
	name: '洁卡莉特',
},
{
	name: '塔希尔',
},
{
	name: '特里休',
},
{
	name: '阿什兰',
},
{
	name: '劳拉',
},
{
	name: '佩雷迪尔',
},
{
	name: '米娜',
},
{
	name: '卢塞塔',
},
{
	name: '拉莫纳',
},
{
	name: '梅蕾特',
},
{
	name: '皮雅',
},
{
	name: '哈因茨',
},
{
	name: '德文',
},
{
	name: '克雷斯',
},
{
	name: '卡尔茨',
},
{
	name: '温格特',
}
];
var roles_5 = [{
	name: '洁卡莉特Ex'
},
{
	name: '亚芬'
},
{
	name: '乌·鲁代'
},
{
	name: '泰蕾兹'
},
{
	name: '莱欧尼尔'
},
{
	name: '海茵特'
},
{
	name: '普里姆萝洁'
},
{
	name: '赛拉斯'
},
{
	name: '斯凯亚克罗'
},
{
	name: '菲欧儿'
},
{
	name: '米罗德'
},
{
	name: '薇欧拉'
},
{
	name: '莉妮特'
},
{
	name: '吉尔德罗伊'
},
{
	name: '特欧'
},
{
	name: '索菲亚'
},
{
	name: '拉斯'
},
{
	name: '赛西莉'
},
{
	name: '莲见'
},
{
	name: '尼兰娜拉'
},
{
	name: '欧尔贝克'
},
{
	name: '欧菲莉亚'
},
{
	name: '希斯柯特'
},
{
	name: '哈雷'
},
];
var roles_sy_5 = [{
name: "奥黛特"
}];
var roles_sy_5_2 = [{
name: "多萝德娅"
}];
var roles_sy_5_3 = roles_5;
var roles_sy_step = [{
name: "奥黛特",
isUp: true,
weight:1
},{
name: "多萝德娅",
isUp: false,
weight:1
}];
//追忆:立夏尔
var roles_zy_5 = [{
name: "利夏尔"
}];
var roles_zy_step = [{
name: "利夏尔",
isUp: true,
weight:roles_5.length
}];

roles_5.forEach(item=>{
	roles_zy_step.push({
		name:item.name,
		isUp:false,
		weight:1
	})
})
var pools = [{
	name: "圣炎的引导:奥黛特",
	step:false,
	stepRole:[],
	stepCount:[],
	roleType: [{
		// 5奥黛特
			num: 0.8,
			maxStar: 5,
			thisStar: 5,
			isUp:true,
			roles: roles_sy_5
		},
		{
			// 4.5奥黛特
			num: 0.4,
			maxStar: 5,
			thisStar: 4,
			isUp:true,
			roles: roles_sy_5
		},
		{
			// 5多萝德娅
			num: 0.6,
			maxStar: 5,
			thisStar: 5,
			isUp:false,
			roles: roles_sy_5_2
		},
		{
			// 4.5多萝德娅
			num: 0.2,
			maxStar: 5,
			thisStar: 4,
			isUp:false,
			roles: roles_sy_5_2
		},
		{
			// 5其他
			num: 0.6,
			maxStar: 5,
			thisStar: 5,
			isUp:false,
			roles: roles_sy_5_3
		},
		{
			// 4.5其他
			num: 1.4,
			maxStar: 5,
			thisStar: 4,
			isUp:false,
			roles: roles_sy_5_3
		},
		{
			// 4星
			num: 96,
			maxStar: 4,
			thisStar: 4,
			isUp:false,
			roles: roles_4
		}
	]},
	{
	name: "圣炎的引导(阶梯):奥黛特",
	step:true,
	stepRole:roles_sy_step,
	stepCount:[7,8,10,10,10],
	roleType: [{
		// 5奥黛特
			num: 0.8,
			maxStar: 5,
			thisStar: 5,
			isUp:true,
			roles: roles_sy_5
		},
		{
			// 4.5奥黛特
			num: 0.4,
			maxStar: 5,
			thisStar: 4,
			isUp:true,
			roles: roles_sy_5
		},
		{
			// 5多萝德娅
			num: 0.6,
			maxStar: 5,
			thisStar: 5,
			isUp:false,
			roles: roles_sy_5_2
		},
		{
			// 4.5多萝德娅
			num: 0.2,
			maxStar: 5,
			thisStar: 4,
			isUp:false,
			roles: roles_sy_5_2
		},
		{
			// 5其他
			num: 0.6,
			maxStar: 5,
			thisStar: 5,
			isUp:false,
			roles: roles_sy_5_3
		},
		{
			// 4.5其他
			num: 1.4,
			maxStar: 5,
			thisStar: 4,
			isUp:false,
			roles: roles_sy_5_3
		},
		{
			// 4星
			num: 96,
			maxStar: 4,
			thisStar: 4,
			isUp:false,
			roles: roles_4
		}
	]},
	{
		name: "追忆的旅人:利夏尔",
		step:false,
		stepRole:[],
		stepCount:[],
		roleType: [{
			// 5利夏尔
				num: 0.8,
				maxStar: 5,
				thisStar: 5,
				isUp:true,
				roles: roles_zy_5
			},
			{
				// 4.5利夏尔
				num: 0.4,
				maxStar: 5,
				thisStar: 4,
				isUp:true,
				roles: roles_zy_5
			},
			{
				// 5其他
				num: 1.2,
				maxStar: 5,
				thisStar: 5,
				isUp:false,
				roles: roles_sy_5_3
			},
			{
				// 4.5其他
				num: 1.6,
				maxStar: 5,
				thisStar: 4,
				isUp:false,
				roles: roles_sy_5_3
			},
			{
				// 4星
				num: 18,
				maxStar: 4,
				thisStar: 4,
				isUp:false,
				roles: roles_4
			},
			{
				// 3.5星
				num: 40,
				maxStar: 4,
				thisStar: 3,
				isUp:false,
				roles: roles_4
			},
			{
				// 3星
				num: 38,
				maxStar: 3,
				thisStar: 3,
				isUp:false,
				roles: roles_3
			}
		]},
		{
		name: "追忆的旅人(阶梯):利夏尔",
		step:true,
		stepRole:roles_zy_step,
		stepCount:[7,8,10,10,10],
		roleType: [{
			// 5利夏尔
				num: 0.8,
				maxStar: 5,
				thisStar: 5,
				isUp:true,
				roles: roles_zy_5
			},
			{
				// 4.5利夏尔
				num: 0.4,
				maxStar: 5,
				thisStar: 4,
				isUp:true,
				roles: roles_zy_5
			},
			{
				// 5其他
				num: 1.2,
				maxStar: 5,
				thisStar: 5,
				isUp:false,
				roles: roles_sy_5_3
			},
			{
				// 4.5其他
				num: 1.6,
				maxStar: 5,
				thisStar: 4,
				isUp:false,
				roles: roles_sy_5_3
			},
			{
				// 4星
				num: 18,
				maxStar: 4,
				thisStar: 4,
				isUp:false,
				roles: roles_4
			},
			{
				// 3.5星
				num: 40,
				maxStar: 4,
				thisStar: 3,
				isUp:false,
				roles: roles_4
			},
			{
				// 3星
				num: 38,
				maxStar: 3,
				thisStar: 3,
				isUp:false,
				roles: roles_3
			}
		]}
];

var currPool = {};
var poolName = "";
var poolRoleTyels = [];
var numStep = [];
	
var stepPoolIndex = 0;

var arr_result = [];
var max_result_level = 3;
var step = 0;


var total_num = 0;
var total_diamond_num = 0;
var up_num = 0;
var up_half_num = 0;
var other_num = 0;
var other_half_num = 0;

// 截取字符串
function extractContentBetweenStrings(text, start, end) {
    var pattern = new RegExp(start + '((.*?)(?=' + end + '))', 'gm');
    var matches = text.match(pattern);
    if (matches) {
        return matches[0].replace(start, '');
    }
    return null;
}

function getRoles(count = 1) {
	for (var i = 0; i < count; i++) {
		cardResult(i);
	}


	$("#ring").css("display","none");


	if (max_result_level == 5) {
		$("#ring_2").css("display","block")
	} else if (max_result_level == 4) {
		$("#ring_1").css("display","block")
	} else {
		$("#ring_0").css("display","block")
	}

	step = 2;

}
function cardResult(index) {
	
	if(stepPoolIndex == 5 && index == 9) {
		var arrRolesThis = currPool.stepRole;
		var stepRoleTotalNum = 0;
		arrRolesThis.forEach(item=>{
			stepRoleTotalNum = stepRoleTotalNum + item.weight;
		})
		var random_index = Math.floor(Math.random() * stepRoleTotalNum);
		for (var i = 0; i < arrRolesThis.length; i++) {
			var objThis = arrRolesThis[i];
			if(random_index < objThis.weight) {
				var result = JSON.parse(JSON.stringify(objThis));
				break;
			} else {
				random_index = random_index - objThis.weight;
			}
			
		}
		// var result = JSON.parse(JSON.stringify(arrRolesThis[random_index]));
		result.maxStar = 5;
		result.thisStar = 5;
		if (max_result_level < 5) {
			max_result_level = 5;
		}
		arr_result.push(result);
		if(result.isUp) {
			up_num = up_num + 1;
		} else {
			other_num = other_num + 1;
		}
	} else {
		var result_num = Math.floor(Math.random() * 1000) / 10.0;
		
		for(var i = 0;i < numStep.length; i ++) {
			var thisStep = numStep[i];
			if(result_num < thisStep) {
				var roleTypeThis = poolRoleTyels[i];
				var arrRolesThis = roleTypeThis.roles;
				var random_index = Math.floor(Math.random() * arrRolesThis.length);
				var result = JSON.parse(JSON.stringify(arrRolesThis[random_index]));
				result.maxStar = roleTypeThis.maxStar;
				result.thisStar = roleTypeThis.thisStar;
				if (max_result_level < roleTypeThis.thisStar) {
					max_result_level = roleTypeThis.thisStar;
				}
				arr_result.push(result);
				console.log(result)
				
				if(roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 5) {
					up_num = up_num + 1;
				} else if(!roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 5){
					other_num = other_num + 1;
				} else if(roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 4){
					up_half_num = up_half_num + 1;
				} else if(!roleTypeThis.isUp && result.maxStar == 5 && result.thisStar == 4){
					other_half_num = other_half_num + 1;
				}
				
				break
				
			}
		}
	}

	
	
}

function clickWindow() {
	if(step != 2) return;
	step = 3;
	
	var obj_result_area = document.getElementsByClassName("result_area")[0];
	obj_result_area.style = "display:flex;"
	
	// 正常流程
	setTimeout(()=>{
		
		obj_result_area.style = "display:flex;background-image: url(https://i.17173cdn.com/g8bz6k/octopathsp/5/58/db_ck_bg.png?20240904091141);background-color:transparent;"
		$(".img_ring").each(function(){
			$(this).css("display","none")
		})
		var obj_all_result = document.getElementsByClassName("all_Result")[0];
		obj_all_result.innerHTML = "<div>" +  "本次抽卡" + total_num + "次,消费" + total_diamond_num + "钻石" + "</div><div>" + "抽到5星当期UP角色" + up_num + "次,4.5星当期UP角色" + up_half_num + "次</div><div>其他5星角色" + other_num  + '次,其他4.5星角色' + other_half_num + '次' + "</div>";
		showResults();
	},2500)
	
	
	
}
function showResults() {
	var str_html = "";
	for (var i = 0; i < arr_result.length; i++) {
		var objThis = arr_result[i];
		str_html = str_html + "<div class='role_area'>" 
			+ "<div class='text'>" + objThis.name + "</div>"
			+ "<div class='text'>";
		for(var j = 0; j < objThis.thisStar ; j ++) {
			str_html = str_html + "★"
		}
		if(objThis.maxStar > objThis.thisStar) {
			str_html = str_html + "☆"
		}
				
		
		var roleData = getRoleDataWithRoleName(objThis.name);
		var img_lh = "https://wiki.17173.com/octopathsp/thumb.php?f=角色立绘-角色编号" + roleData[0] + ".png&width=200x";
		var img_xs = "https://wiki.17173.com/octopathsp/thumb.php?f=" + roleData[2] + ".png&width=100x";
	
		
		str_html = str_html + "</div>" + "<img class='img' src='" + img_lh + "'/>" + "<img class='img_xs' src='" + img_xs + "' />" + "</div>"
	}
	
	
	$(".result_area").each(function(){
		
		$(this).html(str_html).load()
	})
	
	setTimeout(()=>{
		step = 0;
	},1000)
}

function clickStart( count = 1) {

	if(step != 0) return
	step = 1;
	max_result_level = 3;
	arr_result = [];
	
	if(currPool.step) {
		if(stepPoolIndex >= currPool.stepCount.length) {
			stepPoolIndex = 0
		}
		var countThis = currPool.stepCount[stepPoolIndex];
		total_num = total_num + count;
		total_diamond_num = total_diamond_num + countThis * 30;
		stepPoolIndex = stepPoolIndex + 1;
		
		
	} else {
		total_num = total_num + count;
		total_diamond_num = total_diamond_num + count * 30;
	}
	
	
	setTimeout(function(){
		$("#window_area").css("background-color","transparent");
	},1000)
	
	var obj_result_area = document.getElementsByClassName("result_area")[0];
	obj_result_area.style = "display:none;background-color:#FFFFFF;"
	obj_result_area.innerHTML = "";
	

	getRoles(count);

}

function initPool(index) {
	try{
		if(pools.length > index) {
			currPool = pools[index];
		} else {
			currPool = pools[0];
		}
	}catch(e){
		if(e.message == 'pools is not defined') {
			setTimeout(()=>{
				initPool(index)
			},1000)
		}
	}
	
	poolName = currPool.name;
	poolRoleTyels = currPool.roleType;
	numStep = [];
	stepPoolIndex = 0;
	
	var numCurr = 0;
	poolRoleTyels.forEach(item => {
		numCurr = numCurr + item.num;
		numStep.push(numCurr.toFixed(2))
	})
	
	$('#pool_title').html(poolName);
	
	if(currPool.step) {
		$('#btn_start_1').css("display","none")
	} else {
		$('#btn_start_1').css("display","block")
	}
}

function initFunc() {
	
	$(document).ready(function() {
		
		var queryString = window.location.search;
		var urlParams = new URLSearchParams(queryString);
		var poolIndex = urlParams.get("index") || 0;
		initPool(poolIndex)
		
		for(var i = 0; i < pools.length; i ++) {
			var poolThis = pools[i];
			var $button = $('<div>', {
		        class: 'btn_change_pool',
		        text: poolThis.name,
		        "index": i
		    }).on('click', function() {
		    	var dataIndex = $(this).attr("data-index");
		       	var url = new URL(window.location.href);
			    url.searchParams.set("index", dataIndex);
			    window.location.href = url.href;
		    });
		    $button.attr("data-index",i);
		     $('.change_pool').append($button);
		}
		

	
		$('#btn_start_1').on("click",function() {
			console.log('clickStart(1)');
			clickStart(1)
			
		});
		$('#btn_start_2').on("click",()=>{
			console.log('clickStart(10)');
			clickStart(10)
		});
		$('#window_area').on("click",()=>{
			clickWindow()
		});
	});

}

initFunc()