• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:碧蓝航线舰船下水日

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

此模块用于渲染模板{{碧蓝航线下水日}}内容,舰船下水日数据位于模块子页面,可按照格式直接添加新舰船,随机问候语位于模块逻辑代码头部,也可按照格式直接添加。

local p = {}

local format = string.format

-- 舰船生日数据
local shipBirthdays = mw.loadData("Module:碧蓝航线舰船下水日/Data")

-- 每日问候数据(数组,用于随机选择)
local dailyGreetings = {
   {name = "企业", text = "你来了?要战斗的话我随时都能出动。"},
   {name = "萨拉托加", text = "咻~!指挥官,怎么样,我的飞机欢迎阵列~"},
   {name = "赤城", text = "哎呀,欢迎回来…指挥官再晚点出现,这里就要被我变成一片火海了呢…嘻嘻"},
   {name = "苏维埃罗西亚", text = "指挥官同志,今天到得有点晚了。不要忘记勤劳奋斗的精神"},
   {name = "逸仙", text = "又见面了,指挥官。请不用担心,我会如约陪伴在您的身边"},
   {name = "俾斯麦", text = "我对你也是抱有期待的"},
   {name = "贝尔法斯特", text = "欢迎回来,指挥官,红茶已经泡好,文档也归类完毕,开始舒适的工作吧。"},
   {name = "伊丽莎白女王", text = "可恶~居然让我等你这么久。"},
   {name = "黎塞留", text = "Bonjour,指挥官。在我结束祈祷之前,请先喝杯茶稍等片刻吧"},
   {name = "光辉", text = "贵安,指挥官,我把这里稍微整理了一下,还满意吗?"},
   {name = "绫波", text = "无论去哪里,我都会跟上你的脚步的...一起出发吧,指挥官"},
   {name = "Z23", text = "指挥官,打起精神,投入紧张的工作中吧"},
   {name = "伊13", text = "欢迎回来,指挥官,今天的天空也是一片碧蓝呢"},
   {name = "标枪", text = "指挥官,欢迎回来!今天标枪是不是特别好看呢?欸嘿嘿♪"},
   {name = "拉菲", text = "拉菲没有一直在等指挥官回来......嗯,大概。"},
   {name = "塔什干", text = "看着塔什干就这么开心?......这样?随你高兴吧"},
   {name = "彼得·史特拉塞", text = "好好工作吧,无论是你的时间还是我的时间,都不是可以轻易浪费的呢。"},
   {name = "利托里奥", text = "指挥官,你来了,今天的我,可是比阳光还要耀眼呢"},
   {name = "加斯科涅", text = "身份确认——欢迎回来,主人——"},
   {name = "吾妻", text = "让我们开始今天的工作吧?放心,我会一直陪在你身边的~"},
   {name = "明石", text = "指挥官,今天也一起加油赚钱喵!"},
   {name = "柴郡", text = "亲〜爱〜的〜!嘿,我抱!……这样的迎接过于热情了?嘿嘿,因为是亲爱的,所以免不了有些激动嘛!"},
   {name = "佐治亚", text = "还是旁边没有人的时候能够放松下来啊~对吧,指挥官?"},
   {name = "君主", text = "欢迎回来,我比威尔士与约克更加优秀,指挥官,这是我们的共识吧?"},
   {name = "鞍山", text = "今天也要打起精神加油!让我给你吹一首振奋精神的行进曲吧!"},
   {name = "罗恩", text = "这里的港区好和平呢,大家也都是易于相处的人……"},
   {name = "路易九世", text = "bonjour,指挥官,告诉我,接下来该做什么"},
   {name = "伊吹", text = "主上,要一起外出吗"},
   {name = "豪", text = "欢迎回来。今天能从早到晚和我一起吧?"},
   {name = "北风", text = "刚好指挥官回来了……北风正要训练刀柄上的小家伙,要让它的站姿具有大将之风才好。"},
   {name = "腓特烈大帝", text = "快拉开今日的帷幕吧,奏者们早已急不可耐了!"},
}

-- 生成舰船头像调用代码
local function getShipAvatar(frame, shipName)
	return frame:expandTemplate { title = '碧蓝航线Q版头像', args = { shipName } }
end

-- 主函数
function p.main(frame)
	local today = frame:callParserFunction('#time:md','+8 hour')
	local dateKey = tonumber(today)

	-- 检查今天是否有舰船生日
	local birthdayShips = shipBirthdays[dateKey]
	if birthdayShips then
		local shipAvatars = {}
		for _, ship in ipairs(birthdayShips) do
			table.insert(shipAvatars, getShipAvatar(frame, ship))
		end
		return format(
			'<div style="display:flex;justify-content: center;padding:0px;line-height:0px;">'..
			'<div style="border-style: solid;border-width: 2px;border-radius: 50px;border-color: #63B8FF;width: auto;padding: 2px 15px 0px 15px;line-height: 16px;text-align: center;">'..
			frame:expandTemplate { title = '碧蓝航线圆角图标', args = { "领航员-TB", ["size"] = "35"} }..'TB:<span style="color:#FFA500;"><big>%s</big></span></div></div>',
			"'''指挥官,今天是"..table.concat(shipAvatars, " ").."的下水日哦,别忘了生日祝福哦~'''"
		)
	end

	-- 没有舰船生日时,随机选择一条问候语
	math.randomseed(os.time())
	local randomIndex = math.random(1, #dailyGreetings)
	local greeting = dailyGreetings[randomIndex]

	return format(
		'<div style="display:flex;justify-content: center;padding:0px;line-height:0px;">'..
		'<div style="border-style: solid;border-width: 2px;border-radius: 50px;border-color: #63B8FF;width: auto;padding: 2px 15px 0px 15px;line-height: 16px;text-align: center;">'..
		"<big>'''%s——%s'''</big></div></div>",		
		greeting.text,
		getShipAvatar(frame, greeting.name)
	)
end

return p