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