Skip to content

Latest commit

 

History

History
835 lines (829 loc) · 28.2 KB

ChapterW.md

File metadata and controls

835 lines (829 loc) · 28.2 KB

代码速查手册(W区)

#技能索引 完杀婉容忘隙妄尊危殆威重围堰帷幕伪帝温酒无谋无前无双无言无言-旧五灵武魂武继武神武圣

返回目录 ##完杀 相关武将:林·贾诩、SP·贾诩
描述:**锁定技,**在你的回合,除你以外,只有处于濒死状态的角色才能使用【桃】。
引用:LuaWansha
状态:1217验证通过

	LuaWansha=sgs.CreateTriggerSkill{
		name = "LuaWansha",
		events = {sgs.AskForPeaches, sgs.EventPhaseChanging, sgs.Death},
		frequency = sgs.Skill_Compulsory,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			if event == sgs.AskForPeaches then
				local dying = data:toDying()
				local jiaxu = room:getCurrent()
				if jiaxu and jiaxu:isAlive() and jiaxu:hasSkill(self:objectName()) and jiaxu:getPhase() ~= sgs.Player_NotActive then
					if dying.who:objectName() ~= player:objectName() and jiaxu:objectName() ~= player:objectName() then
						room:setPlayerFlag(player, "Global_PreventPeach")
					end
				end
			else
				if event == sgs.EventPhaseChanging then
					local change = data:toPhaseChange()
					if change.to ~= sgs.Player_NotActive then return false end
				elseif event == sgs.Death then
					local death = data:toDeath()
					if death.who:objectName() ~= player:objectName() or death.who:getPhase() == sgs.Player_NotActive then return false end
				end
				for _ , p in sgs.qlist(room:getAllPlayers()) do
					if p:hasFlag("Global_PreventPeach") then
								 room:setPlayerFlag(p, "-Global_PreventPeach")
					end
				end
			end
			return false
		end,
		can_trigger = function(self,target)
			return target
		end
	}

返回索引 ##婉容 相关武将:1v1·大乔
描述:每当你成为【杀】的目标后,你可以摸一张牌。
引用:LuaWanrong
状态:0405验证通过

	LuaWanrong = sgs.CreateTriggerSkill{
		name = "LuaWanrong",
		events = {sgs.TargetConfirmed},
		frequency = sgs.Skill_Frequent,
		on_trigger = function(self, event, player, data)
			local use = data:toCardUse()
			if use.card:isKindOf("Slash") and use.to:contains(player) and player:getRoom():askForSkillInvoke(player, self:objectName(), data) then
				player:drawCards(1, self:objectName())
			end
			return false
		end
	}

返回索引 ##忘隙 相关武将:势·李典
描述:每当你对一名其他角色造成1点伤害后,或你受到其他角色造成的1点伤害后,若该角色存活,你可以与其各摸一张牌。
引用:LuaWangxi
状态:1217验证通过

	LuaWangxi = sgs.CreateTriggerSkill{
		name = "LuaWangxi" ,
		events = {sgs.Damage,sgs.Damaged} ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			local damage = data:toDamage()
			local target = nil
			if event == sgs.Damage then
				target = damage.to
			else
				target = damage.from
			end
			if not target or target:objectName() == player:objectName() then return false end
			local players = sgs.SPlayerList()
				players:append(player)
				players:append(target)
				room:sortByActionOrder(players)
			for i = 1, damage.damage, 1 do
				if not target:isAlive() or not player:isAlive() then return false end
				local value = sgs.QVariant()
					value:setValue(target)
				if room:askForSkillInvoke(player,self:objectName(),value) then
					room:drawCards(players,1,self:objectName())
				end
			end
		end
	}

返回索引 ##妄尊 相关武将:标准·袁术
描述:主公的准备阶段开始时,你可以摸一张牌,然后主公本回合手牌上限-1。
引用:LuaWangzun、LuaWangzunMaxCards
状态:1217验证通过

	LuaWangzun = sgs.CreatePhaseChangeSkill{
		name = "LuaWangzun" ,
		on_phasechange = function(self, target)
			local room = target:getRoom()
			local mode = room:getMode()
			if mode:endsWith("p") or mode:endsWith("pd") or mode:endsWith("pz") then
				if target:isLord() and target:getPhase() == sgs.Player_Start then
					local yuanshu = room:findPlayerBySkillName(self:objectName())
					if yuanshu and room:askForSkillInvoke(yuanshu, self:objectName()) then
						yuanshu:drawCards(1)
						room:setPlayerFlag(target, "LuaWangzunDecMaxCards")
					end
				end
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target
		end
	}
	LuaWangzunMaxCards = sgs.CreateMaxCardsSkill{
		name = "#LuaWangzunMaxCards" ,
		extra_func = function(self, target)
			if target:hasFlag("LuaWangzunDecMaxCards") then
				return -1
			else
				return 0
			end
		end
	}

返回索引 ##威重 相关武将:SP·诸葛诞
描述:**锁定技,**每当你的体力上限改变后,你摸一张牌 引用:LuaWeizhong
状态:0405验证通过

	LuaWeiZhong = sgs.CreateTriggerSkill{
		name = "LuaWeiZhong",
		frequency = sgs.Skill_Compulsory,
		events = {sgs.MaxHpChanged},
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			room:broadcastSkillInvoke(self:objectName(), player)
	        room:sendCompulsoryTriggerLog(player, self:objectName())
			player:drawCards(1, self:objectName())
		end
	}

返回索引 ##危殆 相关武将:智·孙策
描述:**主公技,**当你需要使用一张【酒】时,所有吴势力角色按行动顺序依次选择是否打出一张黑桃2~9的手牌,视为你使用了一张【酒】,直到有一名角色或没有任何角色决定如此做时为止
引用:LuaWeidai
状态:1217验证通过

	hasWuGenerals = function(player)
		for _, p in sgs.qlist(player:getSiblings()) do
			if p:isAlive() and p:getKingdom() == "wu" then
				return true
			end
		end
		return false
	end
	LuaWeidaiCard = sgs.CreateSkillCard{
		name = "LuaWeidaiCard",
		target_fixed = true,
			mute = true,
		on_validate = function(self, card_use)
			card_use.m_isOwnerUse = false
			local sunce = card_use.from
			local room = sunce:getRoom()
			for _ , liege in sgs.qlist(room:getLieges("wu", sunce)) do
				local tohelp = sgs.QVariant()
				tohelp:setValue(sunce)
				local prompt = string.format("@weidai-analeptic:%s", sunce:objectName())
				local card = room:askForCard(liege, ".|spade|2~9|hand", prompt, tohelp, sgs.Card_MethodNone)
				if card then
					local reason=sgs.CardMoveReason(sgs.CardMoveReason_S_REASON_PUT, liege:objectName(), "LuaWeidai", "")
					room:moveCardTo(card, nil, sgs.Player_DiscardPile, reason, true)
					local ana = sgs.Sanguosha:cloneCard("analeptic", card:getSuit(), card:getNumber())
					ana:setSkillName("LuaWeidai")
					ana:addSubcard(card)
					return ana
				end
			end
			room:setPlayerFlag(sunce, "Global_LuaWeidaiFailed")
			return nil
		end,
		on_validate_in_response = function(self, user)
			local room = user:getRoom()
			for _ , liege in sgs.qlist(room:getLieges("wu", user)) do
				local tohelp = sgs.QVariant()
				tohelp:setValue(user)
				local prompt = string.format("@weidai-analeptic:%s", user:objectName())
				local card = room:askForCard(liege, ".|spade|2~9|hand", prompt, tohelp, sgs.Card_MethodNone)
				if card then
					local reason=sgs.CardMoveReason(sgs.CardMoveReason_S_REASON_PUT, liege:objectName(), "LuaWeidai", "")
					room:moveCardTo(card, nil, sgs.Player_DiscardPile, reason, true)
					local ana = sgs.Sanguosha:cloneCard("analeptic", card:getSuit(), card:getNumber())
					ana:setSkillName("LuaWeidai")
					ana:addSubcard(card)
					return ana
				end
			end
			room:setPlayerFlag(user, "Global_LuaWeidaiFailed")
			return nil
		end
	}
	LuaWeidai = sgs.CreateZeroCardViewAsSkill{
		name = "LuaWeidai$",
		view_as = function()
			return LuaWeidaiCard:clone()
		end,
		enabled_at_play = function(self, player)
			return hasWuGenerals(player) and player:hasLordSkill("LuaWeidai")
				   and not player:hasFlag("Global_LuaWeidaiFailed")
				   and sgs.Analeptic_IsAvailable(player)
		end,
		enabled_at_response = function(self, player, pattern)
			return hasWuGenerals(player) and pattern == "peach+analeptic" and not player:hasFlag("Global_LuaWeidaiFailed")
		end
	}

返回索引 ##围堰 相关武将:倚天·陆抗
描述:你可以将你的摸牌阶段当作出牌阶段,出牌阶段当作摸牌阶段执行
引用:LuaLukangWeiyan
状态:1217验证通过

	LuaLukangWeiyan = sgs.CreateTriggerSkill{
		name = "LuaLukangWeiyan" ,
		events = {sgs.EventPhaseChanging} ,
		on_trigger = function(self, event, player, data)
			local change = data:toPhaseChange()
			if change.to == sgs.Player_Draw then
				if not player:isSkipped(sgs.Player_Draw) then
					if player:askForSkillInvoke(self:objectName(), sgs.QVariant("draw2play")) then
						change.to = sgs.Player_Play
						data:setValue(change)
					end
				end
			elseif change.to == sgs.Player_Play then
				if not player:isSkipped(sgs.Player_Play) then
					if player:askForSkillInvoke(self:objectName(), sgs.QVariant("play2draw")) then
						change.to = sgs.Player_Draw
						data:setValue(change)
					end
				end
			else
				return false
			end
			return false
		end
	}

返回索引 ##帷幕 相关武将:林·贾诩、SP·贾诩
描述:**锁定技,**你不能被选择为黑色锦囊牌的目标。
引用:LuaWeimu
状态:0405验证通过

	LuaWeimu = sgs.CreateProhibitSkill{
		name = "LuaWeimu" ,
		is_prohibited = function(self, from, to, card)
			return to:hasSkill(self:objectName()) and (card:isKindOf("TrickCard") or card:isKindOf("QiceCard")) 
			and card:isBlack() and card:getSkillName() ~= "nosguhuo" --特别注意旧蛊惑
		end
	}

返回索引 ##伪帝 相关武将:SP·袁术、SP·台版袁术
描述:**锁定技,**你拥有当前主公的主公技。
状态:0405验证失败--目测永远都实现不了

返回索引 ##温酒 相关武将:智·华雄
描述:**锁定技,**你使用黑色的【杀】造成的伤害+1,你无法闪避红色的【杀】
引用:LuaWenjiu
状态:1217验证通过

	LuaWenjiu = sgs.CreateTriggerSkill{
		name = "LuaWenjiu" ,
		events = {sgs.ConfirmDamage, sgs.SlashProceed} ,
		frequency = sgs.Skill_Compulsory ,
		priority = 3 ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			local hua = room:findPlayerBySkillName(self:objectName())
			if not hua then return false end
			if event == sgs.SlashProceed then
				local effect = data:toSlashEffect()
				if (effect.to:objectName() == hua:objectName()) and effect.slash:isRed() then
					room:slashResult(effect, nil)
					return true
				end
			elseif event == sgs.ConfirmDamage then
				local damage = data:toDamage()
				local reason = damage.card
				if (not reason) or (damage.from:objectName() ~= hua:objectName()) then return false end
				if reason:isKindOf("Slash") and reason:isBlack() then
					damage.damage = damage.damage + 1
					data:setValue(damage)
				end
			end
			return false
		end,
		can_trigger = function(self, target)
			return target
		end
	}

返回索引 ##无谋 相关武将:神·吕布、SP·神吕布
描述:**锁定技,**每当你使用一张非延时锦囊牌时,你须选择一项:失去1点体力,或弃一枚“暴怒”标记。
引用:LuaWumou
状态:0405验证通过

	LuaWumou = sgs.CreateTriggerSkill{
		name = "LuaWumou" ,
		frequency = sgs.Skill_Compulsory ,
		events = {sgs.CardUsed} ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			local use = data:toCardUse()
			if use.card:isNDTrick() then
				room:sendCompulsoryTriggerLog(player, self:objectName())
				local num = player:getMark("@wrath")
				if num >= 1 and room:askForChoice(player, self:objectName(), "discard+losehp") == "discard" then
					player:loseMark("@wrath")
				else
					room:loseHp(player)
				end
			end
			return false
		end
	}

返回索引 ##无前 相关武将:神·吕布、SP·神吕布
描述:出牌阶段,你可以弃两枚“暴怒”标记并选择一名其他角色:若如此做,你拥有“无双”且该角色防具无效,直到回合结束。
引用:LuaWuqian
状态:0405证通过

	LuaWuqianCard = sgs.CreateSkillCard{
		name = "LuaWuqianCard" ,
		filter = function(self, targets, to_select)
			return #targets == 0 and to_select:objectName() ~= sgs.Self:objectName()
		end ,
		on_effect = function(self, effect)
			local room = effect.to:getRoom()
			effect.from:loseMark("@wrath", 2)
			room:acquireSkill(effect.from, "wushuang")
			effect.from:setFlags("LuaWuqianSource")
			effect.to:setFlags("LuaWuqianTarget")
			room:addPlayerMark(effect.to, "Armor_Nullified")
		end
	}
	LuaWuqianVS = sgs.CreateZeroCardViewAsSkill{
		name = "LuaWuqian" ,
		view_as = function()
			return LuaWuqianCard:clone()
		end ,
		enabled_at_play = function(self, player)
			return player:getMark("@wrath") >= 2
		end
	}
	LuaWuqian = sgs.CreateTriggerSkill{
		name = "LuaWuqian" ,
		events = {sgs.EventPhaseChanging, sgs.Death} ,
		view_as_skill = LuaWuqianVS ,
		can_trigger = function(self, target)
			return target and target:hasFlag("LuaWuqianSource")
		end,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			if event == sgs.EventPhaseChanging then
				local change = data:toPhaseChange()
				if change.to ~= sgs.Player_NotActive then
					return false
				end
			end
			if event == sgs.Death then
				local death = data:toDeath()
				if death.who:objectName() ~= player:objectName() then
					return false
				end
			end
			for _, p in sgs.qlist(room:getAllPlayers()) do
				if p:hasFlag("WuqianTarget") then
					p:setFlags("-WuqianTarget")
					if p:getMark("Armor_Nullified") then
						room:removePlayerMark(p, "Armor_Nullified")
					end
				end
			end
			room:detachSkillFromPlayer(player, "wushuang", false, true)
			return false
		end
	}

返回索引 ##无双 相关武将:界限突破·吕布、标准·吕布、SP·最强神话、SP·暴怒战神、SP·台版吕布
描述:**锁定技,**当你使用【杀】指定一名角色为目标后,该角色需连续使用两张【闪】才能抵消;与你进行【决斗】的角色每次需连续打出两张【杀】。
引用:LuaWushuang
状态:0405验证通过 备注:与源码略有不同、体验感稍差

	Table2IntList = function(theTable)
		local result = sgs.IntList()
		for i = 1, #theTable, 1 do
			result:append(theTable[i])
		end
		return result
	end
	LuaWushuang = sgs.CreateTriggerSkill{
		name = "LuaWushuang" ,
		frequency = sgs.Skill_Compulsory ,
		events = {sgs.TargetSpecified,sgs.CardEffected } ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			if event == sgs.TargetSpecified then
				local use = data:toCardUse()
				if use.card:isKindOf("Slash") and player and player:isAlive() and player:hasSkill(self:objectName()) then
					room:sendCompulsoryTriggerLog(player, self:objectName())
					local jink_list = sgs.QList2Table(player:getTag("Jink_" .. use.card:toString()):toIntList())
					for i = 0, use.to:length() - 1, 1 do
						if jink_list[i + 1] == 1 then
							jink_list[i + 1] = 2
						end
					end
					local jink_data = sgs.QVariant()
					jink_data:setValue(Table2IntList(jink_list))
					player:setTag("Jink_" .. use.card:toString(), jink_data)
				end
			elseif event == sgs.CardEffected then
				local effect = data:toCardEffect()
				local can_invoke = false
				if effect.card:isKindOf("Duel") then				
					if effect.from and effect.from:isAlive() and effect.from:hasSkill(self:objectName()) then
						can_invoke = true
					end
					if effect.to and effect.to:isAlive() and effect.to:hasSkill(self:objectName()) then
						can_invoke = true
					end
				end
				if not can_invoke then return false end
				if effect.card:isKindOf("Duel") then
					if room:isCanceled(effect) then
						effect.to:setFlags("Global_NonSkillNullify")
						return true;
					end
					if effect.to:isAlive() then
						local second = effect.from
						local first = effect.to
						room:setEmotion(first, "duel");
						room:setEmotion(second, "duel")
						while true do
							if not first:isAlive() then
								break
							end
							local slash
							if second:hasSkill(self:objectName()) then
								slash = room:askForCard(first,"slash","@Luawushuang-slash-1:" .. second:objectName(),data,sgs.Card_MethodResponse, second);
								if slash == nil then
									break
								end
	
								slash = room:askForCard(first, "slash", "@Luawushuang-slash-2:" .. second:objectName(),data,sgs.Card_MethodResponse,second);
								if slash == nil then
									break
								end
							else
								slash = room:askForCard(first,"slash","duel-slash:" .. second:objectName(),data,sgs.Card_MethodResponse,second)
								if slash == nil then
									break
								end
							end
							local temp = first
							first = second
							second = temp
						end
						local daamgeSource = function() if second:isAlive() then return secoud else return nil end end
						local damage = sgs.DamageStruct(effect.card, daamgeSource() , first)
						if second:objectName() ~= effect.from:objectName() then
							damage.by_user = false;
						end
						room:damage(damage)
					end
					room:setTag("SkipGameRule",sgs.QVariant(true))
				end
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target
		end
	}

返回索引 ##无言 相关武将:一将成名·徐庶
描述:**锁定技,**你防止你造成或受到的任何锦囊牌的伤害。
引用:LuaWuyan
状态:1217验证通过

	LuaWuyan = sgs.CreateTriggerSkill{
		name = "LuaWuyan",
		frequency = sgs.Skill_Compulsory,
		events = {sgs.DamageCaused, sgs.DamageInflicted},
		on_trigger = function(self, event, player, data)
			local damage = data:toDamage()
			if damage.card and (damage.card:getTypeId() == sgs.Card_TypeTrick) then
				if (event == sgs.DamageInflicted) and player:hasSkill(self:objectName()) then
					return true
				elseif (event == sgs.DamageCaused) and (damage.from and damage.from:isAlive() and damage.from:hasSkill(self:objectName())) then
					return true
				end
			end
			return false
		end,
		can_trigger = function(self, target)
			return target
		end
	}

返回索引 ##无言-旧
相关武将:怀旧·徐庶
描述:**锁定技,**你使用的非延时类锦囊牌对其他角色无效;其他角色使用的非延时类锦囊牌对你无效。
引用:LuaNosWuyan
状态:1217验证通过

	LuaNosWuyan = sgs.CreateTriggerSkill{
		name = "LuaNosWuyan" ,
		events = {sgs.CardEffected} ,
		frequency = sgs.Skill_Compulsory ,
		on_trigger = function(self, event, player, data)
			local effect = data:toCardEffect()
			if effect.to:objectName() == effect.from:objectName() then return false end
			if effect.card:isNDTrick() then
				if effect.from and effect.from:hasSkill(self:objectName()) then
					return true
				elseif effect.to:hasSkill(self:objectName()) and effect.from then
					return true
				end
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target
		end
	}

返回索引 ##五灵 相关武将:倚天·晋宣帝
描述:回合开始阶段,你可选择一种五灵效果发动,该效果对场上所有角色生效,该效果直到你的下回合开始为止,你选择的五灵效果不可与上回合重复

  • [风]场上所有角色受到的火焰伤害+1
  • [雷]场上所有角色受到的雷电伤害+1
  • [水]场上所有角色使用桃时额外回复1点体力
  • [火]场上所有角色受到的伤害均视为火焰伤害
  • [土]场上所有角色每次受到的属性伤害至多为1
    引用:LuaWulingExEffect、LuaWulingEffect、LuaWuling
    状态:1217验证通过
	LuaWulingExEffect = sgs.CreateTriggerSkill{
		name = "#LuaWuling-ex-effect" ,
		events = {sgs.PreHpRecover, sgs.DamageInflicted} ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			local xuandi = room:findPlayerBySkillName(self:objectName())
			if not xuandi then return false end
			local wuling = xuandi:getTag("LuaWuling"):toString()
			if (event == sgs.PreHpRecover) and (wuling == "water") then
				local rec = data:toRecover()
				if rec.card and (rec.card:isKindOf("Peach")) then
					rec.recover = rec.recover + 1
					data:setValue(rec)
				end
			elseif (event == sgs.DamageInflicted) and (wuling == "earth") then
				local damage = data:toDamage()
				if (damage.nature ~= sgs.DamageStruct_Normal) and (damage.damage > 1) then
					damage.damage = 1
					data:setValue(damage)
				end
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target
		end
	}
	LuaWulingEffect = sgs.CreateTriggerSkill{
		name = "#LuaWuling-effect" ,
		events = {sgs.DamageInflicted} ,
		on_trigger = function(self, event, player, data)
			local room = player:getRoom()
			local xuandi = room:findPlayerBySkillName(self:objectName())
			if not xuandi then return false end
			local wuling = xuandi:getTag("LuaWuling"):toString()
			local damage = data:toDamage()
			if wuling == "wind" then
				if damage.nature == sgs.DamageStruct_Fire then
					damage.damage = damage.damage + 1
					data:setValue(damage)
				end
			elseif wuling == "thunder" then
				if damage.nature == sgs.DamageStruct_Thunder then
					damage.damage = damage.damage + 1
					data:setValue(damage)
				end
			elseif wuling == "fire" then
				if damage.nature ~= sgs.DamageStruct_Fire then
					damage.nature = sgs.DamageStruct_Fire
					data:setValue(damage)
				end
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target
		end ,
	}
	LuaWuling = sgs.CreateTriggerSkill{
		name = "LuaWuling" ,
		events = {sgs.EventPhaseStart} ,
		on_trigger = function(self, event, player, data)
			local LuaWulingEffects = {"wind", "thunder", "water", "fire", "earth"}
			if player:getPhase() == sgs.Player_Start then
				local current = player:getTag("LuaWuling"):toString()
				local choices = {}
				for _, effect in ipairs(LuaWulingEffects) do
					if effect ~= current then
						table.insert(choices, effect)
					end
				end
				local room = player:getRoom()
				local choice = room:askForChoice(player, self:objectName(), table.concat(choices, "+"))
				if not (current == "" or current == nil) then
					player:loseMark("@" .. current)
				end
				player:gainMark("@" .. choice)
				player:setTag("LuaWuling", sgs.QVariant(choice))
			end
			return false
		end
	}

返回索引 ##武魂 相关武将:神·关羽
描述:**锁定技,**每当你受到伤害扣减体力前,伤害来源获得等于伤害点数的“梦魇”标记。你死亡时,你选择一名存活的“梦魇”标记数最多(不为0)的角色,该角色进行判定:若结果不为【桃】或【桃园结义】,该角色死亡。
引用:LuaWuhun、LuaWuhunRevenge 状态:0405验证通过

	
	LuaWuhun = sgs.CreateTriggerSkill{
		name = "LuaWuhun" ,
		events = {sgs.PreDamageDone},
		frequency = sgs.Skill_Compulsory,
		on_trigger = function(self, event, player, data)
			local damage = data:toDamage()
			local room = player:getRoom()
			if damage.from and damage.from:objectName() ~= player:objectName() then
				damage.from:gainMark("@nightmare", damage.damage)
				room:notifySkillInvoked(player, self:objectName())
			end
			return false
		end
	}
	LuaWuhunRevenge = sgs.CreateTriggerSkill{
		name = "#LuaWuhun" ,
		events = {sgs.Death},
		can_trigger = function(self, target)
			return target ~= nil and target:hasSkill("LuaWuhun");
		end ,
		on_trigger = function(self, event, shenguanyu, data)
			local death = data:toDeath()
			local room = shenguanyu:getRoom()
			if death.who:objectName() ~= shenguanyu:objectName() then
				return false
			end
			local players = room:getOtherPlayers(shenguanyu)
			local max = 0
			for _, player in sgs.qlist(players) do
				max = math.max(max, player:getMark("@nightmare"))
			end
			if max == 0 then return false end
			local foes = sgs.SPlayerList()
			for _, player in sgs.qlist(players) do
				if player:getMark("@nightmare") == max then
					foes:append(player)
				end
			end
			if foes:isEmpty() then
				return false
			end
			local foe
			if foes:length() == 1 then
				foe = foes:first()
			else
				foe = room:askForPlayerChosen(shenguanyu, foes, "wuhun", "@wuhun-revenge")
			end
			room:notifySkillInvoked(shenguanyu, "wuhun")
			local judge = sgs.JudgeStruct()
			judge.pattern = "Peach,GodSalvation"
			judge.good = true
			judge.negative = true
			judge.reason = "wuhun"
			judge.who = foe
			room:judge(judge)
			if judge:isBad() then
				room:killPlayer(foe)
			end
			local killers = room:getAllPlayers()
			for _, player in sgs.qlist(killers) do
				player:loseAllMarks("@nightmare")
			end
			return false
	 	end
	}

返回索引 ##武继 相关武将:SP·关银屏
描述:**觉醒技,**结束阶段开始时,若你于本回合造成了至少3点伤害,你增加1点体力上限,回复1点体力,然后失去“虎啸”。 引用:LuaWuji
状态:0405验证通过

	LuaWuji = sgs.CreatePhaseChangeSkill{
		name = "LuaWuji",
		frequency = sgs.Skill_Wake,
		on_phasechange = function(self, player)
			local room = player:getRoom()
			room:setPlayerMark(player, self:objectName(), 1)
			if room:changeMaxHpForAwakenSkill(player, 1) then
				room:recover(player, sgs.RecoverStruct(player))
				room:detachSkillFromPlayer(player, "huxiao")
			end
			return false
		end ,
		can_trigger = function(self, target)
			return target and target:isAlive() and target:hasSkill(self:objectName()) and target:getPhase() == sgs.Player_Finish 
			and target:getMark(self:objectName()) == 0 and target:getMark("damage_point_round") >= 3
		end
	}

返回索引 ##武神 相关武将:神·关羽
描述:**锁定技,**你的红桃手牌视为普通【杀】。你使用红桃【杀】无距离限制。
引用:LuaWushen、LuaWushenTargetMod
状态:0405验证通过

	LuaWushen = sgs.CreateFilterSkill{
		name = "LuaWushen", 
		view_filter = function(self,to_select)
			local room = sgs.Sanguosha:currentRoom()
			local place = room:getCardPlace(to_select:getEffectiveId())
			return (to_select:getSuit() == sgs.Card_Heart) and (place == sgs.Player_PlaceHand)
		end,
		view_as = function(self, originalCard)
			local slash = sgs.Sanguosha:cloneCard("slash", originalCard:getSuit(), originalCard:getNumber())
			slash:setSkillName(self:objectName())
			local card = sgs.Sanguosha:getWrappedCard(originalCard:getId())
			card:takeOver(slash)
			return card
		end
	}
	LuaWushenTargetMod = sgs.CreateTargetModSkill{
		name = "#LuaWushen-target",
		distance_limit_func = function(self, from, card)
			if from:hasSkill("LuaWushen") and (card:getSuit() == sgs.Card_Heart) then
				return 1000
			else
				return 0
			end
		end
	}

返回索引 ##武圣 相关武将:界限突破·关羽、SP·关羽、JSP·关羽、标准·关羽、翼·关羽、2013-3v3·关羽、1v1·关羽1v1
描述:你可以将一张红色牌当【杀】使用或打出。
引用:LuaWusheng
状态:0405验证通过

	LuaWusheng = sgs.CreateOneCardViewAsSkill{
		name = "LuaWusheng",
		response_or_use = true,
		view_filter = function(self, card)
			if not card:isRed() then return false end
			if sgs.Sanguosha:getCurrentCardUseReason() == sgs.CardUseStruct_CARD_USE_REASON_PLAY then
				local slash = sgs.Sanguosha:cloneCard("slash", sgs.Card_SuitToBeDecided, -1)
				slash:addSubcard(card:getEffectiveId())
				slash:deleteLater()
				return slash:isAvailable(sgs.Self)
			end
			return true
		end,
		view_as = function(self, card)
			local slash = sgs.Sanguosha:cloneCard("slash", card:getSuit(), card:getNumber())
			slash:addSubcard(card:getId())
			slash:setSkillName(self:objectName())
			return slash
		end,
		enabled_at_play = function(self, player)
			return sgs.Slash_IsAvailable(player)
		end, 
		enabled_at_response = function(self, player, pattern)
			return pattern == "slash"
		end
	}

返回索引