[地下城堡3]bwiki是由民间组织建设、官方激励计划支持,致力于向玩家无偿提供数据图鉴、攻略等内容。本WIKI编辑权限开放,欢迎收藏起来防止迷路,也希望有爱的小伙伴和我们一起编辑哟~

全站通知:

模块:StringUtils

来自地下城堡3WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:StringUtils/doc创建

local p = { }
zengyi = {'蓄能', '紫雷之力', '饱腹度', '泉涌', '冰元素法球', '雷元素法球', '暗能量', '举盾', '伺机而动', '狂怒', '战魂', '感知', '且战且退', 
	'聚精会神', '风行', '勇气', '预见', '幻影', '全神贯注', '格挡', '招架', '剑意', '流光', '后发制人', '亡魂之力', '审判', '暗月之力', '拂晓', 
	'暗流', '灵智', '绝缘', '灵动祝福', '风之壁垒', '蛇妖之视', '妖术', '挽歌', '信仰之力', '火元素法球', '清风', '澄清', '月影', '暗月之身', 
	'风切', '利刃', '穿刺', '暗影穿刺', '星辰', '暗月女王', '月华'}
jianyi = {'撕裂', '中毒', '眩晕', '恐惧', '致盲', '时空枷锁', '枯萎', '损毁', '灼热', '灼伤', '麻痹', '即死', '迟缓', '捕缚', '凤鸣', '冻结', 
	'点破', '混乱', '深寒', '魔影', '暗影缠绕', '炼狱', '断罪', '腐败', '暗月诅咒', '醉酒', '雷殒', '捆绑', '毒泉', '地热', '凝霜', '油炸', 
	'恍惚', '惊惧', '裁决', '力竭', '剑气', '惊恐', '弱点暴露', '状态模糊', '霜寒', '神罚', '元素刺伤', '腐化', '石化', '蛇妖蛊咒'}
tianqi = {'雷雨', '晴空', '飞沙', '毒瘴', '迷雾' }

function p.show_number(frame)
	local a = tonumber(frame.args[1])
	if(a >= 100000000) then
		return string.format("%.1f", a/100000000).."亿"
	elseif(a >= 10000) then
		return string.format("%.1f", a/10000).."万"
	else 
		return a
	end
end

function p.mark_numbers(frame)
	local s = frame.args[1]
	local final = ""
	while(string.find(s, "%d+")) do
		a,b = string.find(s, "%d+")
		final = final..string.sub(s, 0, a-1)
		final = final.."<font color=#ff6100>'''"..string.sub(s,a,b).."'''</font>"
		s = string.sub(s, b+1)
	end
	final = final..s
	return final
end

function p.mark_buff(frame)
	local left1 = [[<div class="]]
	local left2 = [[">]]
	local right = "</div>"
	local s = frame.args[1]
	for k,v in pairs(zengyi) do
		s = string.gsub(s, v, left1.."zengyi"..left2..v..right)
	end
	for k,v in pairs(jianyi) do
		s = string.gsub(s, v, left1.."jianyi"..left2..v..right)
	end
	for k,v in pairs(tianqi) do
		s = string.gsub(s, v, '<div style="display: inline-block; position: relative">[[文件:图鉴-天气-'..v..'.png|35px|link=]]<div style="left:6%; top:8%;position: absolute;font-size:8px;color:#fff;font-weight: bold;;text-shadow: #000 -1px 0 0,#763c12 0 -1px 0,#5d2b08 1px 0 0,#1d1515 0 1px 0;">'..v..'</div></div>')
		
		
	end
	return s
end

function p.mark_damage(frame)
	local res = ""
	local list = p.split(frame.args[1], ",")
	for k,v in pairs(list) do
		if(string.find(v, "("))
		then
			tmp = p.replace_kuohao(v)
		else
			tmp = p.replace_numbers(v)
		end
		res = res..","..tmp
	end
	res = string.sub(res, 2)
	res = p.replace_attributions(res)
	return res
end

function p.replace_numbers(s)
	local final = ""
	while(string.find(s, "%d+%%")) do
		a,b = string.find(s, "%d+%%")
		final = final..string.sub(s, 0, a-1)
		final = final..[[<div class="color-number">]]..string.sub(s,a,b).."</div>"
		s = string.sub(s, b+1)
	end
	return final..s
end

function p.replace_kuohao(text)
	local color = ""
	if(string.find(text, "物理攻击")) then
		color = "wuli-text"
	elseif(string.find(text, "魔法攻击")) then
		color = "mofa-text"
	else
		color = "color-number"
	end
	local left = [[<div class="]]..color..[[">]]
	local right = "</div>"
	local text, num = string.gsub(text, "(" , left.."(")
	local text, num = string.gsub(text, ")" , ")"..right)
	text = string.gsub(text, " 不可暴击", ",不可暴击")
	return text
end

function p.replace_attributions(text)
	local text, num = string.gsub(text, "贯穿伤害" , [[<div class="wuli-text">贯穿伤害</div>]])
	local text, num = string.gsub(text, "斩击伤害" , [[<div class="wuli-text">斩击伤害</div>]])
	local text, num = string.gsub(text, "打击伤害" , [[<div class="wuli-text">打击伤害</div>]])
	local text, num = string.gsub(text, "火焰伤害" , [[<div class="mofa-text">火焰伤害</div>]])
	local text, num = string.gsub(text, "寒冰伤害" , [[<div class="mofa-text">寒冰伤害</div>]])
	local text, num = string.gsub(text, "雷电伤害" , [[<div class="mofa-text">雷电伤害</div>]])
	local text, num = string.gsub(text, "大地伤害" , [[<div class="mofa-text">大地伤害</div>]])
	local text, num = string.gsub(text, "暗影伤害" , [[<div class="mofa-text">暗影伤害</div>]])
	local text, num = string.gsub(text, "神圣伤害" , [[<div class="mofa-text">神圣伤害</div>]])
	local text, num = string.gsub(text, "毒素伤害" , [[<div class="mofa-text">毒素伤害</div>]])
	local text, num = string.gsub(text, "真实伤害" , [[<div class="wuli-text">真实伤害</div>]])
	local text, num = string.gsub(text, "护甲" , [[<div class="color-number">护甲</div>]])
	local text, num = string.gsub(text, "魔盾" , [[<div class="color-number">魔盾</div>]])
	local text, num = string.gsub(text, "生命" , [[<div class="color-number">生命</div>]])
	return text
end

function p.split(str, reps)
	local r = {}
	if str == nil then return nil end
	string.gsub(str, "[^"..reps.."]+", function(w) table.insert(r, w) end)
	return r
end

function p.intable(value, tbl)
	for k,v in ipairs(tbl) do
		if v == value then
			return true;
		end
	end
return false;
end


return p