Skip to content

Instantly share code, notes, and snippets.

@gutenye
Created July 19, 2012 17:02
Show Gist options
  • Save gutenye/3145326 to your computer and use it in GitHub Desktop.
Save gutenye/3145326 to your computer and use it in GitHub Desktop.
三国杀-马腾
module("extensions.mateng", package.seeall)
extension = sgs.Package("mateng")
mateng = sgs.General(extension, "mateng", "qun", "4", true)
mtmashu = sgs.CreateDistanceSkill{
name = "mtmashu",
correct_func = function(self, from, to)
if from:hasSkill("mtmashu") then
return -1
else
return 0
end
end,
}
mtxiongyi = sgs.CreateViewAsSkill{
name = "mtxiongyi",
n = 0,
view_as = function(self, cards)
if #cards == 0 then
local acard = mtxiongyi_card:clone()
acard:setSkillName("mtxiongyi")
return acard
end
end,
enabled_at_play = function(self, player)
return player:getMark("@mtxiongyi") >= 1
end,
}
mtxiongyi_card = sgs.CreateSkillCard{
name = "mtxiongyi_card",
target_fixed = true,
will_throw = true,
-- frequency = sgs.Skill_Limited,
on_use = function(self, room, source, targets)
room:playSkillEffect("mtxiongyi")
local mykingdom = source:getKingdom()
local kingdom
for _,p in sgs.qlist(room:getAlivePlayers()) do
kingdom = p:getKingdom()
if kingdom == mykingdom then
p:drawCards(3)
end
end
if source:isWounded() then
local kingdoms = {}
for _,p in sgs.qlist(room:getAlivePlayers()) do
kingdom = p:getKingdom()
kingdoms[kingdom] = (kingdoms[kingdom] or 0) + 1
end
local mykingdom_count = kingdoms[mykingdom]
kingdoms[mykingdom] = nil
local issmallest = true
for k,v in pairs(kingdoms) do
if mykingdom_count > v then
issmallest = false
break
end
end
if issmallest then
recover = sgs.RecoverStruct()
recover.who = source
room:recover(source, recover)
end
end
source:loseMark("@mtxiongyi")
end,
}
mtxiongyi_trigger = sgs.CreateTriggerSkill{
name = "#mtxiongyi_trigger",
events = {sgs.GameStart},
frequency = sgs.Skill_NotFrequent,
on_trigger = function(self, event, player, data)
player:gainMark("@mtxiongyi", 1)
end,
}
mateng:addSkill(mtmashu)
mateng:addSkill(mtxiongyi)
mateng:addSkill(mtxiongyi_trigger)
sgs.LoadTranslationTable{
["mateng"] = "马腾",
["mtmashu"] = "马术",
[":mtmashu"] = "马术:锁定技,当你计算与其他角色的距离时,始终-1。",
["mtxiongyi"] = "雄异",
[":mtxiongyi"] = "限定技,出牌阶段,你可令所有所有与你势力相同的角色摸三张牌,然后你所属势力的角色数是全场最少的(或之一),你回复1点体力。"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment