1. 修复雌雄双股剑
2. 修复变野心家和野心家被变
This commit is contained in:
Nyutanislavsky 2023-08-25 17:14:43 +08:00 committed by GitHub
parent 2da6a49a16
commit b95389beef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 16 deletions

View File

@ -61,8 +61,8 @@ function GetGeneralDetail(name)
})
end
for _, g in pairs(Fk.generals) do
if table.contains(g.companions, general.trueName) then
table.insertIfNeed(ret.companions, g.trueName)
if table.contains(g.companions, general.name) then
table.insertIfNeed(ret.companions, g.name)
end
end
return json.encode(ret)

View File

@ -720,7 +720,6 @@ end
---@param skill_name string @ 技能名
---@param index integer | nil @ 语音编号,默认为-1也就是随机播放
function ServerPlayer:broadcastSkillInvoke(skill_name, index)
print 'Room:broadcastSkillInvoke deprecated; use SPlayer:broadcastSkillInvoke'
index = index or -1
self.room:sendLogEvent("PlaySkillSound", {
name = skill_name,
@ -817,7 +816,7 @@ function ServerPlayer:revealGeneral(isDeputy, no_trigger)
generalName = self:getMark("__heg_general")
end
local general = Fk.generals[generalName]
local general = Fk.generals[generalName] or Fk.generals["blank_shibing"]
for _, s in ipairs(general:getSkillNameList()) do
local skill = Fk.skills[s]
self:loseFakeSkill(skill)
@ -825,7 +824,7 @@ function ServerPlayer:revealGeneral(isDeputy, no_trigger)
local ret = true
if not ((isDeputy and self.general ~= "anjiang") or (not isDeputy and self.deputyGeneral ~= "anjiang")) then
local other = Fk.generals[self:getMark(isDeputy and "__heg_general" or "__heg_deputy")]
local other = Fk.generals[self:getMark(isDeputy and "__heg_general" or "__heg_deputy")] or Fk.generals["blank_shibing"]
for _, sname in ipairs(other:getSkillNameList()) do
local s = Fk.skills[sname]
if s.frequency == Skill.Compulsory and s.relate_to_place ~= (isDeputy and "m" or "d") then
@ -840,15 +839,19 @@ function ServerPlayer:revealGeneral(isDeputy, no_trigger)
local oldKingdom = self.kingdom
room:changeHero(self, generalName, false, isDeputy)
if oldKingdom ~= "wild" then
local kingdom = general.kingdom
self.kingdom = kingdom
if oldKingdom == "unknown" and #table.filter(room:getOtherPlayers(self),
if oldKingdom == "unknown" and #table.filter(room:getOtherPlayers(self, false, true),
function(p)
return p.kingdom == kingdom
end) >= #room.players // 2 then
self.kingdom = "wild"
end
room:broadcastProperty(self, "kingdom")
else
room:setPlayerProperty(self, "kingdom", "wild")
end
if self.gender == General.Agender then
self.gender = general.gender

View File

@ -907,9 +907,11 @@ local doubleSwordsSkill = fk.CreateTriggerSkill{
attached_equip = "double_swords",
events = {fk.TargetSpecified},
can_trigger = function(self, event, target, player, data)
return target == player and player:hasSkill(self.name) and
data.card and data.card.trueName == "slash" and
(player.room:getPlayerById(data.to).gender ~= player.gender)
if target == player and player:hasSkill(self.name) and
data.card and data.card.trueName == "slash" then
local target = player.room:getPlayerById(data.to)
return target.gender ~= player.gender and target.gender ~= General.Agender and player.gender ~= General.Agender
end
end,
on_use = function(self, event, target, player, data)
local room = player.room