Created
July 21, 2012 01:50
-
-
Save gutenye/3154220 to your computer and use it in GitHub Desktop.
神杀-迷当.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module("extensions.midang", package.seeall) | |
extension = sgs.Package("midang") | |
midang = sgs.General(extension, "midang", "qun", "4", true) | |
--借兵:出牌阶段,你可以指定另一角色装备区里的一张牌并弃一张与之相同花色的手牌,令目标角色对你攻击范围内一名角色(可以是你)使用一张杀,否则交给你这张装备牌。每回合限一次。 | |
-- TODO: 少SkilCard#target_assigned Lua接口. | |
-- ViewAsSkill => jiebing_card | |
-- SkillCard | |
jiebing = sgs.CreateViewAsSkill{ | |
name = "jiebing", | |
n = 1, | |
view_filter = function(self, selected, to_select) | |
return not to_select:isEquipped() | |
end, | |
view_as = function(self, cards) | |
if #cards == 1 then | |
local card = cards[1] | |
local acard = jiebing_card:clone() | |
acard:setSuit(card:getSuit()) | |
acard:setNumber(card:getNumber()) | |
acard:addSubcard(card) | |
acard:setSkillName("jiebing") | |
return acard | |
end | |
end, | |
enabled_at_play = function(self, player) | |
return not player:hasFlag("jiebing_used") | |
end, | |
} | |
jiebing_card = sgs.CreateSkillCard{ | |
name = "jiebing_card", | |
target_fixed = false, | |
will_throw = true, | |
filter = function(self, targets, to_select, player) | |
if #targets >= 1 then return end | |
if to_select:objectName() == player:objectName() then return end | |
for _,e in sgs.qlist(to_select:getEquips()) do | |
if e:getSuit() == self:getSuit() then | |
return true | |
end | |
end | |
end, | |
on_effect = function(self, effect) | |
local from = effect.from | |
local to = effect.to | |
local room = to:getRoom() | |
room:playSkillEffect("jiebing") | |
local card_id = room:askForCardChosen(from, to, "e", "jiebing") | |
local card = sgs.Sanguosha:getCard(card_id) | |
local targets = sgs.SPlayerList() | |
for _, p in sgs.qlist(room:getOtherPlayers(to)) do | |
if from:inMyAttackRange(p) then | |
targets:append(p) | |
end | |
end | |
if targets:isEmpty() then return end | |
local target = room:askForPlayerChosen(from, targets, "jiebing") | |
local log = sgs.LogMessage() | |
log.type = "#Jiebing" | |
log.from = from | |
log.to:append(to) | |
log.arg = card:objectName() | |
log.arg2 = target:getGeneralName() | |
room:sendLog(log) | |
local prompt = string.format("@jiebing-collateral:%s:%s", from:objectName(), target:objectName()) | |
if not room:askForUseSlashTo(to, target, prompt) then | |
from:obtainCard(card) | |
end | |
room:setPlayerFlag(from, "jiebing_used") | |
end, | |
} | |
--羌笛:觉醒技:当你的装备区已满时,你须立即弃掉一匹装备着的马,然后永久获得【义从】技能 | |
-- TriggerSkill{Phase-Start} | |
qiangdi = sgs.CreateTriggerSkill{ | |
name = "qiangdi", | |
events = {sgs.PhaseChange}, | |
frequency = sgs.Skill_Wake, | |
can_trigger = function(self, target) | |
return target and target:getPhase() == sgs.Player_Start and | |
target:hasSkill("qiangdi") and | |
target:isAlive() and | |
target:getMark("qiangdi") == 0 | |
end, | |
on_trigger = function(self, event, player, data) | |
local room = player:getRoom() | |
if player:getEquips():length() == 4 then | |
room:playSkillEffect("qiangdi") | |
local log = sgs.LogMessage() | |
log.type = "#QiangdiWake" | |
log.from = player | |
log.arg = self:objectName() | |
room:sendLog(log) | |
room:setPlayerMark(player, "qiangdi", 1) | |
player:gainMark("@waked") | |
room:acquireSkill(player, "yicong") | |
end | |
end, | |
} | |
midang:addSkill(jiebing) | |
midang:addSkill(qiangdi) | |
--[[ | |
midang:addSkill("testshenshou") -- 神手 | |
midang:addSkill("testshelie") -- 涉猎 | |
midang:addSkill("testguhuo") -- 蛊惑 | |
midang:addSkill("kurou") -- 苦肉 | |
midang:addSkill("testnalai") --拿来 | |
midang:addSkill("rende") -- 仁德 | |
midang:addSkill("zhijian") -- 直谏 | |
midang:addSkill("qicai") -- 奇才 | |
midang:addSkill("paoxiao") -- 咆哮 | |
midang:addSkill("testqingnang") -- 青囊 | |
--]] | |
sgs.LoadTranslationTable{ | |
["midang"] = "迷当", | |
["jiebing"] = "借兵", | |
[":jiebing"] = "出牌阶段,你可以指定另一角色装备区里的一张牌并弃一张与之相同花色的手牌,令目标角色对你攻击范围内一名角色(可以是你)使用一张杀,否则交给你这张装备牌。每回合限一次。", | |
["#Jiebing"] = "%from 指定了 %to 装备区里的 【%arg】,令他对 %arg2 使用一张杀。 ", | |
["@jiebing-collateral"] = "%src 使用了【借兵】,令你砍 %dest,请你使用一张【杀】进行响应", | |
["qiangdi"] = "羌笛", | |
[":qiangdi"] = "觉醒技:当你的装备区已满时,你须立即弃掉一匹装备着的马,然后永久获得【义从】技能", | |
["#QiangdiWake"] = "%from 当你的装备区已满时, 触发【%arg】。" | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment