Merge pull request #129 from copcap/dev

新增张世平,bug修复
This commit is contained in:
Spmario233 2023-06-07 18:02:35 +08:00 committed by GitHub
commit 3ab657e354
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 247 additions and 29 deletions

View File

@ -4774,6 +4774,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'enterGame',
},
forced:true,
locked:false,
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0);
},

View File

@ -793,6 +793,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:3,
trigger:{global:'phaseBefore',player:'enterGame'},
forced:true,
locked:false,
global:'spdaming_give',
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0);
@ -17623,6 +17624,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gnjinfan:{
trigger:{player:'phaseDiscardBegin'},
direct:true,
locked:false,
audio:2,
filter:function(event,player){
var list=[];
@ -18670,7 +18672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tongduo_info:'每回合限一次。当你成为其他角色使用牌的唯一目标后,你可令一名角色重铸一张牌。',
xin_jushou:'手杀沮授',
xinjianying:'渐营',
xinjianying_info:'锁定技。①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
xinjianying_info:'①当你于出牌阶段内使用与此阶段你使用的上一张牌点数或花色相同的牌时,你可以摸一张牌。②出牌阶段限一次,你可以将一张牌当做任意基本牌使用(不计入次数限制)。若你于此阶段内使用的上一张牌有花色,则此牌的花色视为上一张牌的花色。',
re_xunyu:"手杀荀彧",
rejieming:"节命",
rejieming_info:"当你受到1点伤害后你可以令一名角色摸两张牌。然后若其手牌数小于体力上限则你摸一张牌。",

View File

@ -3338,6 +3338,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
psliaozou:{
audio:2,
enable:'phaseUse',
locked:false,
filter:function(event,player){
return !player.hasSkill('psliaozou_blocker',null,null,false);
},
@ -4225,6 +4226,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:true,
selectCard:-1,
position:'h',
locked:false,
filter:function(event,player){
if(player.hasSkill('pssheji_used')) return false;
var hs=player.getCards('h');
@ -5410,6 +5412,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
usable:1,
locked:false,
filter:function(event,player){
for(var card of ui.discardPile.childNodes){
if(get.type(card)=='equip') return true;
@ -6660,6 +6663,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spyicong:{
trigger:{player:'phaseDiscardEnd'},
direct:true,
locked:false,
filter:function(event,player){
return player.countCards('he')>0;
},
@ -6697,6 +6701,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sptuji:{
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
locked:false,
filter:function(event,player){
return player.getExpansions('spyicong').length>0;
},
@ -6924,6 +6929,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCardToPlayered'},
silent:true,
firstDo:true,
locked:false,
content:function(){
trigger.target.addTempSkill('chixin3');
}
@ -6955,7 +6961,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
}
},
chixin3:{},
chixin3:{charlotte:true},
suiren:{
trigger:{player:'phaseZhunbeiBegin'},
skillAnimation:true,
@ -7515,6 +7521,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'phaseJieshuBegin'},
forced:true,
locked:false,
filter:function(event,player){
return player.hasSkill('fenyong2')&&event.player.isAlive();
},
@ -7573,6 +7580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
trigger:{player:'loseEnd'},
forced:true,
locked:false,
filter:function(event,player){
return player._mouduan_mark&&player._mouduan_mark.name=='武'&&player.countCards('h')<=2;
},

View File

@ -3234,6 +3234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
group:'rejiaozhao_base',
locked:false,
mod:{
targetEnabled:function(card,player,target){
if(player==target&&card.storage&&card.storage.rejiaozhao) return false;
@ -5311,6 +5312,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false;
},
audio:'lihuo',
locked:false,
prompt2:function(event){
return '将'+get.translation(event.card)+'改为火属性';
},
@ -13267,7 +13269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
else if(get.mode()=='guozhan'){
player.chooseBool('是否将'+get.translation(card)+'作为【田】置于武将牌上?').set('frequentSkill','retuntian').ai=function(){
player.chooseBool('是否将'+get.translation(card)+'作为“田”置于武将牌上?').set('frequentSkill','retuntian').ai=function(){
return true;
};
}
@ -13868,7 +13870,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_baosanniang:'手杀鲍三娘',
retuntian:'屯田',
rebeige:'悲歌',
retuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果为♥,你获得此判定牌。否则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目',
retuntian_info:'①当你于回合外失去牌后,你可以判定。若判定结果为♥,你获得此判定牌。否则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-XX为你武将牌上“田”的数目',
rebeige_info:'当有角色受到【杀】造成的伤害后你可以弃一张牌并令其进行一次判定若判定结果为♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
re_liushan:'手杀刘禅',
re_sunben:'界孙笨',
@ -14004,8 +14006,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_dengai:'界邓艾',
oltuntian:'屯田',
olzaoxian:'凿险',
oltuntian_info:'当你于回合外失去牌后,或于回合内因弃置而失去【杀】后,你可以进行判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目',
olzaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。',
oltuntian_info:'当你于回合外失去牌后,或于回合内因弃置而失去【杀】后,你可以判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-XX为你武将牌上“田”的数目',
olzaoxian_info:'觉醒技,准备阶段,若你武将牌上“田”的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗。你于当前回合结束后进行一个额外的回合。',
re_sunxiu:'界孙休',
re_caoxiu:'界曹休',
xin_lingtong:'界凌统',

View File

@ -3770,6 +3770,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return str;
},
logTarget:'target',
locked:false,
check:function(event,player){
var target=event.target;
if(get.attitude(player,target)>0) return false;

View File

@ -1139,6 +1139,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_yongsi":{
audio:2,
group:["drlt_yongsi_1","drlt_yongsi_2"],
locked:true,
subSkill:{
'1':{
audio:"drlt_yongsi",
@ -3194,6 +3195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['re_huangzhong','ol_huangzhong'],
trigger:{player:'useCardToTargeted'},
logTarget:'target',
locked:false,
check:function(event,player){
return get.attitude(player,event.target)<=0;
},
@ -3655,7 +3657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return;
}
event.card=result.card;
player.chooseBool('是否将'+get.translation(event.card)+'作为【田】置于武将牌上?').ai=function(){
player.chooseBool('是否将'+get.translation(event.card)+'作为“田”置于武将牌上?').ai=function(){
return true;
};
'step 2'
@ -7904,7 +7906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
retianxiang_info:'当你受到伤害时你可以弃置一张红桃手牌防止此次伤害并选择一名其他角色然后你选择一项1.令其受到伤害来源对其造成的1点伤害然后摸X张牌X为其已损失体力值且至多为52.令其失去1点体力然后获得你弃置的牌。',
xinjiewei_info:'你可以将装备区里的牌当【无懈可击】使用;当你的武将牌从背面翻至正面时,你可以弃置一张牌,然后移动场上的一张牌',
xinjushou_info:'结束阶段,你可以翻面并摸四张牌,然后弃置一张手牌,若以此法弃置的是装备牌,则你改为使用之',
jixi_info:'出牌阶段,你可以将任意一张【田】当作【顺手牵羊】使用',
jixi_info:'出牌阶段,你可以将任意一张“田”当作【顺手牵羊】使用',
xinqiangxi_info:'出牌阶段各限一次你可以选择一项1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害2. 弃置一张装备牌并对你攻击范围内的一名其他角色造成一点伤害 ',
qimou_info:'限定技,出牌阶段,你可以失去任意点体力,然后直到回合结束,你计算与其他角色的距离时-X且你可以多使用X张【杀】X为你失去的体力值',
tiaoxin_info:'出牌阶段限一次,你可以指定一名攻击范围内包含你的角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
@ -7913,11 +7915,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fangquan_info:'你可跳过你的出牌阶段,若如此做,回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
ruoyu_info:'主公技,觉醒技,准备阶段,若你的体力是全场最少的(或之一)你须增加1点体力上限并回复1点体力然后获得技能〖激将〗。',
qiaobian_info:'你可以弃置一张手牌并跳过自己的一个阶段(准备阶段和结束阶段除外);若你以此法跳过了摸牌阶段,则你可以获得至多两名其他角色的各一张手牌;若你以此法跳过了出牌阶段,则你可以移动场上的一张牌。',
tuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目)',
zaoxian_info:'觉醒技,准备阶段,若你武将牌上【田】的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗',
tuntian_info:'①当你于回合外失去牌后,你可以判定。若判定结果不为♥,则你将此牌置于你的武将牌上,称为“田”。②你计算与其他角色的距离时-XX为你武将牌上“田”的数目)',
zaoxian_info:'觉醒技,准备阶段,若你武将牌上“田”的数量达到3张或更多则你减1点体力上限并获得技能〖急袭〗',
jiang_info:'每当你使用(指定目标后)或被使用(成为目标后)一张【决斗】或红色的【杀】时,你可以摸一张牌。',
hunzi_info:'觉醒技准备阶段若你的体力值为1你减1点体力上限并获得技能〖英姿〗和〖英魂〗。',
zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌;你的觉醒技发动后,你可以拒绝此拼点。',
zhiba_info:'主公技,其他吴势力角色的出牌阶段限一次,其可与你进行一次拼点。若该角色没赢,你可以获得双方拼点的牌。若你已发动过〖魂姿〗,你可以拒绝此拼点。',
zhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。',
guzheng_info:'其他角色的弃牌阶段结束时,你可以令其获得本阶段内进入弃牌堆的牌中的一张,然后你获得其余的牌。',
beige_info:'当有角色受到【杀】造成的伤害后你可以弃一张牌并令其进行一次判定若判定结果为♥该角色回复1点体力该角色摸两张牌♣伤害来源弃两张牌♠伤害来源将其武将牌翻面',
@ -7985,7 +7987,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yinghun_old_info:'准备阶段,若你已受伤,则你可以令一名其他角色执行下列两项中的一项: 1.摸X张牌然后弃一张牌。 2.摸一张牌然后弃X张牌。 X为你已损失的体力值',
jiuchi_info:'你可以将一张♠手牌当作【酒】使用。',
roulin_info:'锁定技。你对女性角色、女性角色对你使用【杀】时,都需连续使用两张【闪】才能抵消。',
benghuai_info:'结束阶段,若你的体力不是全场最少的(或之一)你须减1点体力或体力上限。',
benghuai_info:'锁定技。结束阶段若你的体力不为全场最少你失去1点体力或减1点体力上限。',
baonue_info:'主公技其他群雄角色造成伤害后可进行一次判定若为♠你回复1点体力。',
luanwu_info:'限定技出牌阶段你可令除你外的所有角色依次对与其距离最近的另一名角色使用一张【杀】否则失去1点体力。',
wansha_info:'锁定技,你的回合内,除你以外,不处于濒死状态的角色不能使用【桃】。',

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"],
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','ol_puyuan','zhangzhi'],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie'],
sp_liesi:['mizhu','weizi','ol_liuba'],
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
sp_waitforsort:['sunhong','luoxian','ol_huban','wangguan'],
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
@ -29,6 +29,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
zhangshiping:['male','shu',3,['olhongji','olxinggu']],
sunhong:['male','wu',3,['olxianbi','olzenrun']],
luoxian:['male','shu',4,['oldaili']],
ol_huban:['male','wei',4,['olhuiyun']],
@ -677,6 +678,169 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//张世平
olhongji:{
audio:2,
trigger:{global:'phaseZhunbeiBegin'},
filter:function(event,player){
if(event.player.isMinHandcard(true)&&!player.hasSkill('olhongji_min')) return true;
if(event.player.isMaxHandcard(true)&&!player.hasSkill('olhongji_max')) return true;
return false;
},
logTarget:'player',
check:function(event,player){
return get.attitude(player,event.player)>0;
},
prompt2:function(event,player){
if(event.player.isMinHandcard(true)){
return '其手牌数为全场唯一最少。你可以令其于本回合摸牌阶段结束后执行一个额外的摸牌阶段,然后本轮你不能再发动该分支。';
}
return '其手牌数为全场唯一最多。你可以令其于本回合出牌阶段结束后执行一个额外的出牌阶段,然后本轮你不能再发动该分支。';
},
content:function(){
var target=trigger.player;
if(target.isMinHandcard(true)){
player.addTempSkill('olhongji_min','roundStart');
target.addTempSkill('olhongji_draw');
}
if(target.isMaxHandcard(true)){
player.addTempSkill('olhongji_max','roundStart');
target.addTempSkill('olhongji_use');
}
},
ai:{expose:0.25},
subSkill:{
min:{charlotte:true},
max:{charlotte:true},
draw:{
trigger:{player:'phaseDrawAfter'},
charlotte:true,
forced:true,
popup:false,
content:function(){
var next=trigger.player.phaseDraw();
event.next.remove(next);
trigger.getParent('phase').next.push(next);
player.removeSkill('olhongji_draw');
}
},
use:{
trigger:{player:'phaseUseAfter'},
charlotte:true,
forced:true,
popup:false,
content:function(){
var next=trigger.player.phaseUse();
event.next.remove(next);
trigger.getParent('phase').next.push(next);
player.removeSkill('olhongji_use');
}
}
}
},
olxinggu:{
audio:2,
trigger:{global:'phaseBefore',player:'enterGame'},
forced:true,
locked:false,
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0);
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
group:'olxinggu_trade',
content:function(){
'step 0'
var cards=[];
for(var i=0;i<3;i++){
var card=get.cardPile2(function(card){
if(cards.contains(card)) return false;
var type=get.subtype(card);
return type=='equip3'||type=='equip4'||type=='equip6';
});
if(card) cards.add(card);
else break;
}
if(cards.length) player.addToExpansion(cards,'draw').gaintag.add('olxinggu');
},
marktext:'贾',
intro:{
markcount:'expansion',
mark:function(dialog,content,player){
var content=player.getExpansions('olxinggu');
if(content&&content.length){
if(player==game.me||player.isUnderControl()){
dialog.addAuto(content);
}
else{
return '剩余'+get.cnNumber(content.length)+'匹马';
}
}
}
},
subSkill:{
trade:{
audio:'olxinggu',
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
return player.getExpansions('olxinggu').length;
},
direct:true,
content:function(){
'step 0'
var cards=player.getExpansions('olxinggu');
if(_status.connectMode) game.broadcastAll(function(){_status.noclearcountdown=true});
player.chooseButton([get.prompt('olxinggu'),cards]).set('ai',button=>{
if(_status.event.toChoose==button.link) return 1;
return 0;
}).set('toChoose',!event.aiCancel&&cards.find(card=>{
return game.hasPlayer(current=>{
if(!lib.skill.zhijian.filterTarget(card,player,current)) return false;
return get.effect(current,card,player,player)>0;
});
}));
'step 1'
if(result.bool){
var card=result.links[0];
event.card=card;
player.chooseTarget('将'+get.translation(card)+'置入一名其他角色的装备区',lib.skill.zhijian.filterTarget).set('ai',target=>{
var player=_status.event.player;
return get.effect(target,_status.event.card,player,player);
}).set('card',card);
}
else{
if(_status.connectMode){game.broadcastAll(function(){delete _status.noclearcountdown;game.stopCountChoose()});}
event.finish();
}
'step 2'
if(result.bool){
var target=result.targets[0];
event.target=target;
if(_status.connectMode){game.broadcastAll(function(){delete _status.noclearcountdown;game.stopCountChoose()});}
player.logSkill('olxinggu',target);
player.$give(card,target,false);
}
else{
if(!event.isMine()&&!event.isOnline()) event.aiCancel=true;
event.goto(0);
}
'step 3'
target.equip(card);
'step 4'
var card=get.cardPile2(cardx=>{
return get.suit(cardx)=='diamond';
});
if(card) player.gain(card,'gain2');
else{
game.log('但是牌堆中并没有♦牌了!');
player.chat('做了个亏本买卖…');
}
}
}
}
},
//孙弘
olxianbi:{
audio:2,
@ -804,6 +968,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})%2==0;
},
group:'oldaili_record',
locked:false,
check:function(event,player){
if(get.distance(event.player,player,'absolute')==1&&!player.isTurnedOver()) return false;
return true;
@ -1208,7 +1373,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.chooseControl('cancel2').set('choiceList',[
'令'+get.translation(trigger.player)+'回复1点体力',
'令'+get.translation(trigger.player)+'于本回合下次造成的伤害+1且造成伤害本回合手牌上限为0',
'令'+get.translation(trigger.player)+'于本回合下次造成的伤害+1且造成伤害本回合手牌上限为0',
]).set('prompt',get.prompt('olkangrui',trigger.player)).set('ai',()=>{
return _status.event.choice;
}).set('choice',function(){
@ -1262,7 +1427,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
nil:{
trigger:{source:'damageSource'},
trigger:{source:'damageBegin1'},
charlotte:true,
forced:true,
onremove:true,
@ -3768,6 +3933,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huamu:{
audio:2,
trigger:{player:'useCardAfter'},
locked:false,
filter:function(event,player){
var color=get.color(event.card);
if(color=='none') return false;
@ -9052,6 +9218,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
source:'damageSource',
},
forced:true,
locked:false,
content:function(){
player.addMark('reluanzhan',1,false);
},
@ -9107,6 +9274,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'luanzhan',
trigger:{player:'useCardToPlayered'},
forced:true,
locked:false,
filter:function(event,player){
if(!event.isFirstTarget||(event.card.name!='sha'&&(get.color(event.card)!='black'||get.type(event.card)!='trick'))||!player.countMark('reluanzhan')) return false;
var info=get.info(event.card);
@ -11060,6 +11228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.removeAdditionalSkill('new_luoyan');
},
derivation:['oltianxiang','liuli'],
locked:true,
},
//新孙鲁育
"new_meibu":{
@ -13701,6 +13870,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xinyongsi:{
group:['xinyongsi1','xinyongsi2'],
locked:true,
},
xinyongsi1:{
audio:'yongsi1',
@ -15533,6 +15703,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xunzhi:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
locked:false,
init:function(player){
player.storage.xunzhi=0;
},
@ -16565,7 +16736,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuhua:{
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
forced:true,
locked:false,
audio:2,
content:function(){
"step 0"
@ -17293,6 +17463,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guiming:{
unique:true,
zhuSkill:true,
locked:true,
},
canshi:{
audio:2,
@ -19847,6 +20018,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
yongsi:{
group:['yongsi1','yongsi2'],
locked:true,
ai:{
threaten:2.2
}
@ -22490,7 +22662,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chongzhen_info:'当你因发动〖龙胆〗而使用或打出【杀】或【闪】时,你可以获得对方的一张手牌。',
bifa_info:'结束阶段开始时你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段开始时其观看你移出游戏的牌并选择一项交给你一张与此牌类型相同的手牌并获得此牌或将此牌置入弃牌堆然后失去1点体力。',
songci_info:'①出牌阶段,你可以选择一名未以此法选择过的角色。若其手牌数:大于其体力值,其弃置两张牌;不大于其体力值,其摸两张牌。②弃牌阶段结束时,若你已对场上所有存活角色发动过〖颂词①〗,则你摸一张牌。',
yongsi_info:'锁定技摸牌阶段你多摸X张牌。弃牌阶段开始时你弃置X张牌。X为场上势力数',
yongsi_info:'锁定技。①摸牌阶段你多摸X张牌。②弃牌阶段开始时你弃置X张牌。X为场上势力数',
yicong_info:'锁定技当你的体力值大于2时你计算与其他角色的距离时-1当你的体力值不大于2时其他角色计算与你的距离时+1。',
baobian_info:'锁定技若你的体力值为3或更少你视为拥有技能〖挑衅〗若你的体力值为2或更少你视为拥有技能〖咆哮〗若你的体力值为1你视为拥有技能〖神速〗。',
rebaobian:'豹变',
@ -22639,7 +22811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lisi_info:'当你于回合外使用的牌结算结束后,你可将其交给一名手牌数不大于你的其他角色。',
ol_yangyi:'杨仪',
oljuanxia:'狷狭',
oljuanxia_info:'锁定技。结束阶段,你选择一名其他角色。你依次视为对其使用至多三种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。',
oljuanxia_info:'结束阶段,你可以选择一名其他角色。你依次视为对其使用至多三种单目标普通锦囊牌。然后其下回合结束时,可视为对你使用等量的【杀】。',
oldingcuo:'定措',
oldingcuo_info:'每回合限一次。当你受到或造成伤害后,你可摸两张牌。若这两张牌颜色不同,则你弃置一张手牌。',
fengfangnv:'OL冯妤',
@ -22852,7 +23024,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldianjun:'殿军',
oldianjun_info:'锁定技。回合结束时你受到1点无来源伤害然后执行一个额外的出牌阶段。',
olkangrui:'亢锐',
olkangrui_info:'当一名角色于其回合内首次受到伤害后你可以摸一张牌并选择一项1.令其回复1点体力2.令其于本回合下次造成的伤害+1然后当其于本回合造成伤害其本回合手牌上限基数为0。',
olkangrui_info:'当一名角色于其回合内首次受到伤害后你可以摸一张牌并选择一项1.令其回复1点体力2.令其于本回合下次造成的伤害+1然后当其于本回合造成伤害其本回合手牌上限基数为0。',
wangguan:'王瓘',
olmiuyan:'谬焰',
olmiuyan_tag:'invisible',
@ -22872,6 +23044,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldaili:'带砺',
oldaili_tag:'带砺',
oldaili_info:'一名角色的回合结束时,若你被展示过的手牌数为偶数,则你可以翻面,摸三张牌并展示之。',
zhangshiping:'张世平',
olhongji:'鸿济',
olhongji_info:'每轮每项各限一次。一名角色的准备阶段,若其手牌数为唯一最少/最多,你可以令其于本回合第一个摸牌阶段/出牌阶段后执行一个额外的摸牌阶段/出牌阶段。',
olxinggu:'行贾',
olxinggu_info:'①游戏开始时,你将牌堆中的三张坐骑牌扣置于武将牌上。②结束阶段,你可以将一张〖行贾①〗牌置于一名其他角色的装备区,然后你从牌堆获得一张♦牌。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',

View File

@ -4800,6 +4800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.getHandcardLimit()!=player.countCards('h');
},
direct:true,
locked:false,
content:function(){
'step 0'
var del=player.getHandcardLimit()-player.countCards('h');
@ -5971,6 +5972,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:'phaseBefore',
},
forced:true,
locked:false,
direct:true,
onremove:['dcsilve','dcsilve_self'],
filter:function(event,player){
@ -6265,6 +6267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'dying'},
usable:1,
forced:true,
locked:false,
derivation:'dcshouze',
group:['dclianzhi_connect','dclianzhi_reproach'],
filter:function(event,player){
@ -6355,6 +6358,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'chooseToUse',
group:'dcfengying_record',
locked:false,
filter:function(event,player){
return player.storage.dcfengying&&player.storage.dcfengying.length&&player.storage.dcfengying.filter(name=>{
return event.filterCard({name:name},player,event);
@ -8915,7 +8919,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'enterGame',
},
forced:true,
locked:true,
locked:false,
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0)&&game.hasPlayer((current)=>current!=player);
},
@ -9963,6 +9967,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ui.cardPile.childNodes.length>0;
},
frequent:true,
locked:false,
content:function(){
'step 0'
var card=false;
@ -12636,6 +12641,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcjinggong:{
audio:2,
enable:'chooseToUse',
locked:false,
mod:{
targetInRange:function(card){
if(card.storage&&card.storage.dcjinggong) return true;
@ -15157,6 +15163,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
derivation:'refenyin',
trigger:{global:'roundStart'},
forced:true,
locked:false,
content:function(){
'step 0'
var next=player.chooseTarget('请选择【预言】的目标',true).set('animate',false).set('ai',function(){
@ -18590,7 +18597,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return game.hasPlayer((current)=>lib.skill.reqingcheng.filterTarget(null,player,current));
},
filterTarget:function(card,player,target){
return target!=player&&target.hasSex('male')&&target.countCards('h')<player.countCards('h');
return target!=player&&target.hasSex('male')&&target.countCards('h')<=player.countCards('h');
},
content:function(){
player.swapHandcards(target);
@ -21997,6 +22004,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
yuwei:{
zhuSkill:true,
locked:true,
ai:{combo:'shiyuan'},
},
decadexushen:{
@ -26255,6 +26263,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
trigger:{global:'damageEnd'},
forced:true,
locked:false,
filter:function(event,player){
return event.player!=player&&event.player.isAlive()&&_status.currentPhase!=player;
},
@ -26608,6 +26617,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true,
zhuSkill:true,
forced:true,
locked:false,
intro:{
content:function(group){
return '已选择了'+get.translation(group)+'势力'
@ -28866,7 +28876,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rehuoshui:'祸水',
rehuoshui_info:'准备阶段你可以选择至多X名角色X为你已损失的体力值且至少为1。你令这些角色中第一名角色的非锁定技失效直到回合结束第二名角色交给你一张手牌第三名及之后角色弃置装备区内的所有牌。',
reqingcheng:'倾城',
reqingcheng_info:'出牌阶段限一次,你可以与一名手牌数于你的男性角色交换手牌。',
reqingcheng_info:'出牌阶段限一次,你可以与一名手牌数不大于你的男性角色交换手牌。',
re_panshu:'潘淑',
zhiren:'织纴',
zhiren_info:'当你于你的回合内使用第一张非转化牌时你可依次执行以下选项中的前X项①卜算X。②可弃置场上的一张装备牌和延时锦囊牌。③回复1点体力。④摸三张牌。X为此牌的名称的字数',

View File

@ -2207,8 +2207,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
onChooseToUse:function(event){
if(game.online||!event.player.hasSkill('twmouli')) return;
var cards=[];
for(var i of ui.cardPile.childNodes){
if(get.type(i)=='basic') cards.push(i);
for(var i=0;i<ui.cardPile.childNodes.length;i++){
var card=ui.cardPile.childNodes[i];
if(get.type(card)=='basic') cards.push(card);
}
event.set('twmouli',cards);
},
@ -2277,8 +2278,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillTagFilter:function(player,tag,arg){
if(arg=='respond') return false;
var list=[];
for(var i of ui.cardPile.childNodes){
if(get.type(i,player)=='basic'&&!list.contains(i.name)) list.push(i.name);
for(var i=0;i<ui.cardPile.childNodes.length;i++){
var card=ui.cardPile.childNodes[i];
if(get.type(card,player)=='basic'&&!list.contains(card.name)) list.push(card.name);
}
if(tag=='respondSha') return list.contains('sha');
if(tag=='respondShan') return list.contains('shan');
@ -3879,6 +3881,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
position:'he',
filterCard:true,
locked:false,
filter:function(event,player){
return player.countCards('he');
},
@ -3956,6 +3959,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return false;
},
forced:true,
locked:false,
popup:false,
firstDo:true,
content:function(){
@ -4370,7 +4374,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'tweqianxi'),'he')) player.chooseToDiscard('he',true);
else event.finish();
'step 2'
if(!result.bool){
if(!result.bool||!game.hasPlayer(target=>{
return player!=target&&get.distance(player,target)<=1;
})){
event.finish();
return;
}
@ -6415,6 +6421,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
locked:false,
group:['twxiawei_init','twxiawei_lose','twxiawei_unmark'],
content:function(){
'step 0'
@ -13153,7 +13160,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twtijin:'替巾',
twtijin_info:'当你攻击范围内的一名其他角色使用【杀】指定另一名其他角色为目标时,你可以将此【杀】的目标改为你。若如此做,此【杀】结算完成后,你弃置该角色的一张牌。',
twxiaolian:'孝廉',
twxiaolian_info:'当一名其他角色使用【杀】指定另一名其他角色为目标时,你可以将此【杀】的目标改为你。若如此做,当你受到此【杀】的伤害后,你可以将一张牌放在此【杀】原目标的武将牌旁,称之为“马”。锁定技,场上的一名角色每有一张“马”,其他角色计算与其的距离便+1。',
twxiaolian_info:'当一名其他角色使用【杀】指定另一名其他角色为目标时,你可以将此【杀】的目标改为你。若如此做,当你受到此【杀】的伤害后,你可以将一张牌置于此【杀】原目标的武将牌旁,称为“马”,且令其获得如下效果:其他角色计算至其的距离+XX为其武将牌旁的“马”数。',
twqijia:'弃甲',
twqijia_info:'出牌阶段,你可以弃置一张装备区内的牌(每种类型的装备牌限一次),然后视为对攻击范围内的一名其他角色使用了一张【杀】。',
twzhuchen:'诛綝',

View File

@ -7793,7 +7793,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhaofu:{
unique:true,
global:'zhaofu2',
zhuSkill:true
zhuSkill:true,
locked:true,
},
zhaofu2:{
mod:{

View File

@ -237,6 +237,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return player!=event.target&&event.targets.length==1&&(event.card.name=='sha'||get.type(event.card,false)=='trick')&&event.target.countCards('he')>0;
},
locked:false,
logTarget:'target',
check:function(event,player){
return get.effect(event.target,{name:'guohe_copy2'},player,player)>0;
@ -523,6 +524,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
},
forced:true,
locked:false,
content:function(){
'step 0'
var num=0;
@ -578,6 +580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:['huaiyuan_init','huaiyuan_die'],
subSkill:{
init:{
audio:'huaiyuan',
trigger:{
global:'phaseBefore',
player:'enterGame',
@ -2569,6 +2572,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
taoyin:{
audio:2,
trigger:{player:'showCharacterAfter'},
hiddenSkill:true,
logTarget:function(){
return _status.currentPhase;
},
@ -2734,6 +2738,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{player:'showCharacterAfter'},
forced:true,
hiddenSkill:true,
filter:function(event,player){
return event.toShow&&event.toShow.contains('jin_xiahouhui');
},
@ -2843,6 +2848,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{player:'showCharacterAfter'},
forced:true,
locked:false,
hiddenSkill:true,
filter:function(event,player){
var target=_status.currentPhase;
return player!=target&&target&&target.isAlive()&&event.toShow&&event.toShow.contains('jin_simazhao');

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB