commit
541553e8e1
|
@ -5699,10 +5699,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mod:{
|
||||
aiOrder:(player,card,num)=>{
|
||||
if(num<=0||typeof card!=='object'||!player.isPhaseUsing()) return num;
|
||||
if(player.awakenedSkills.includes('sbaiyin')){
|
||||
if(player.hasSkill('sbaiyin')){
|
||||
if(player.countMark('renjie')<4&&player.getUseValue(card)<Math.min(4,player.hp*player.hp/4)) return 0;
|
||||
}
|
||||
else if(player.hasSkill('jilue')){
|
||||
if(player.countMark('renjie')<3&&player.getUseValue(card)<Math.min(1.8,0.18*player.hp*player.hp)) return 0;
|
||||
}
|
||||
else if(player.countMark('renjie')<4&&player.getUseValue(card)<Math.min(4,player.hp*player.hp/4)) return 0;
|
||||
}
|
||||
},
|
||||
trigger:{
|
||||
|
|
|
@ -164,7 +164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
noh:true,
|
||||
skillTagFilter(player,tag,arg){
|
||||
if(player.countCards('h')!=1||(_status.currentPhase&&_status.currentPhase==player)) return false;
|
||||
if(player===_status.currentPhase||player.countCards('h')!=1) return false;
|
||||
return game.hasPlayer(current=>{
|
||||
return current.hasSkill('dcshoucheng')&&get.attitude(current,player)>0;
|
||||
});
|
||||
|
|
|
@ -7523,6 +7523,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//钟会
|
||||
requanji:{
|
||||
audio:2,
|
||||
mod:{
|
||||
aiOrder:(player,card,num)=>{
|
||||
if(num<=0||typeof card!=='object'||!player.isPhaseUsing()||!player.hasSkill('zili')||player.needsToDiscard()) return num;
|
||||
if(player.getExpansions('quanji').length<3&&player.getUseValue(card)<Math.min(4,player.hp*player.hp/4)) return 0;
|
||||
}
|
||||
},
|
||||
trigger:{player:['damageEnd','phaseUseEnd']},
|
||||
frequent:true,
|
||||
locked:false,
|
||||
|
|
|
@ -22765,6 +22765,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audioname:['liushan']
|
||||
},
|
||||
shoucheng:{
|
||||
init(player){
|
||||
game.addGlobalSkill('shoucheng_draw',player);
|
||||
},
|
||||
trigger:{
|
||||
global:['equipAfter','addJudgeAfter','loseAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
||||
},
|
||||
|
@ -22796,6 +22799,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill(event.name,target);
|
||||
if(player!==target&&(get.mode()!=='identity'||player.identity!=='nei')) player.addExpose(0.15);
|
||||
target.draw();
|
||||
}
|
||||
"step 3"
|
||||
|
@ -22803,8 +22807,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
ai:{
|
||||
threaten:1.3,
|
||||
expose:0.2,
|
||||
noh:true,
|
||||
},
|
||||
subSkill:{
|
||||
draw:{
|
||||
trigger:{player:'dieAfter'},
|
||||
filter(event,player){
|
||||
return !game.hasPlayer(current=>{
|
||||
return current.hasSkill('shoucheng');
|
||||
},true);
|
||||
},
|
||||
content(){
|
||||
game.removeGlobalSkill('shoucheng_draw');
|
||||
},
|
||||
ai:{
|
||||
noh:true,
|
||||
skillTagFilter(player,tag,arg){
|
||||
if(player===_status.currentPhase||player.countCards('h')!==1) return false;
|
||||
return game.hasPlayer(current=>{
|
||||
return current.hasSkill('shoucheng')&&player.isFriendOf(current);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
hengzheng:{
|
||||
|
|
|
@ -1049,7 +1049,10 @@ export const Content = {
|
|||
card.cards = cards.slice(0);
|
||||
event.card = card;
|
||||
}
|
||||
if (!lib.filter.cardEnabled(card, player) || (event.addCount !== false && !lib.filter.cardUsable(card, player))) {
|
||||
let evt = event.getParent('chooseToUse');
|
||||
if (get.itemtype(evt) !== 'event') evt = event;
|
||||
if (!lib.filter.cardEnabled(card, player) || event.addCount !== false &&
|
||||
!lib.filter.cardUsable(card, player, evt)) {
|
||||
event.result = { bool: false };
|
||||
event.finish();
|
||||
return;
|
||||
|
|
|
@ -6892,7 +6892,12 @@ export class Player extends HTMLDivElement {
|
|||
var info = get.info(card);
|
||||
if (info.multicheck && !info.multicheck(card, this)) return false;
|
||||
if (!lib.filter.cardEnabled(card, this)) return false;
|
||||
if (includecard && !lib.filter.cardUsable(card, this)) return false;
|
||||
if (includecard){
|
||||
let evt = includecard;
|
||||
if (typeof evt !== 'object') evt = _status.event.getParent('chooseToUse');
|
||||
if (get.itemtype(evt) !== 'event') evt = undefined;
|
||||
if (!lib.filter.cardUsable(card, this, evt)) return false;
|
||||
}
|
||||
if (distance !== false && !lib.filter.targetInRange(card, this, target)) return false;
|
||||
return lib.filter[includecard ? 'targetEnabledx' : 'targetEnabled'](card, this, target);
|
||||
}
|
||||
|
|
|
@ -9970,8 +9970,10 @@ export class Library extends Uninstantable {
|
|||
targetEnabledx: function (card, player, target) {
|
||||
if (!card) return false;
|
||||
if (!target || !target.isIn()) return false;
|
||||
var event = _status.event;
|
||||
if (event._backup && event._backup.filterCard == lib.filter.filterCard && (!lib.filter.cardEnabled(card, player, event) || !lib.filter.cardUsable(card, player, event))) return false;
|
||||
let event = _status.event, evt = event.getParent('chooseToUse');
|
||||
if(get.itemtype(evt) !== 'event') evt = event;
|
||||
if (event._backup && event._backup.filterCard == lib.filter.filterCard &&
|
||||
(!lib.filter.cardEnabled(card, player, event) || !lib.filter.cardUsable(card, player, evt))) return false;
|
||||
if (event.addCount_extra) {
|
||||
if (!lib.filter.cardUsable2(card, player) && !game.checkMod(card, player, target, false, 'cardUsableTarget', player)) return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue