|
if (sender.skills.any { it is MianLiCangZhen }) { // 邵秀 |
|
inFrontOfWhom.messageCards.add(TmpCard(colors)) |
|
var valueSender = -1 |
|
var valueMe = 0 |
|
for (c in sender.cards.filter(Card::isBlack)) { |
|
val v = sender.calculateMessageCardValue(whoseTurn, inFrontOfWhom, c.colors, checkThreeSame) |
|
if (v > valueSender) { |
|
valueSender = v |
|
valueMe = calculateMessageCardValue(whoseTurn, inFrontOfWhom, c.colors, checkThreeSame) |
|
} |
|
} |
|
logger.debug("这是[邵秀]传出的情报,计算[绵里藏针]额外分数为$valueMe") |
|
v1 = merge(v1, valueMe) |
|
inFrontOfWhom.messageCards.removeLast() |
|
} |
|
if (Black in colors && inFrontOfWhom.skills.any { it is YiYaHuanYa }) { // 王魁 |
|
inFrontOfWhom.messageCards.add(TmpCard(colors)) |
|
var valueInFrontOfWhom = -1 |
|
var valueMe = 0 |
|
for (c in inFrontOfWhom.cards.filter(Card::isBlack)) { |
|
for (p in listOf(sender, sender.getNextLeftAlivePlayer(), sender.getNextRightAlivePlayer())) { |
|
val v = inFrontOfWhom.calculateMessageCardValue(whoseTurn, p, c.colors, checkThreeSame) |
|
if (v > valueInFrontOfWhom) { |
|
valueInFrontOfWhom = v |
|
valueMe = calculateMessageCardValue(whoseTurn, p, c.colors, checkThreeSame) |
|
} |
|
} |
|
} |
|
v1 = merge(v1, valueMe) |
|
logger.debug("这是[王魁]接收的情报,计算[以牙还牙]额外分数为$valueMe") |
|
inFrontOfWhom.messageCards.removeLast() |
|
} |
|
if (Black !in colors && sender.skills.any { it is ChiZiZhiXin } && sender !== inFrontOfWhom) { // 青年小九 |
|
inFrontOfWhom.messageCards.add(TmpCard(colors)) |
|
var valueSender = 30 |
|
var valueMe = 0 |
|
for (c in sender.cards.filter { it.colors.any { c -> c in colors } }) { |
|
val v = sender.calculateMessageCardValue(whoseTurn, sender, c.colors, checkThreeSame) |
|
if (v > valueSender) { |
|
valueSender = v |
|
valueMe = calculateMessageCardValue(whoseTurn, sender, c.colors, checkThreeSame) |
|
} |
|
} |
|
logger.debug("这是[SP小九]传出的情报,计算[赤子之心]额外分数为$valueMe") |
|
v1 = merge(v1, when { |
|
valueSender > 30 -> valueMe |
|
isPartnerOrSelf(sender) -> 20 |
|
else -> -20 |
|
}) |
|
inFrontOfWhom.messageCards.removeLast() |
|
} |
边云疆的技能可以替换对方接收到的情报,在争夺阶段AI并不知道防这个技能。
参考这一段代码即可:
TheMessage/src/main/kotlin/MessageCardValue.kt
Lines 246 to 296 in 99ebf4b