Merge pull request #124 from copcap/dev

新杀张瑾云、段巧笑、孟达,以及其他一些修改和优化
This commit is contained in:
Spmario233 2023-06-03 10:48:31 +08:00 committed by GitHub
commit ba99a6dedf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 483 additions and 13 deletions

View File

@ -3274,6 +3274,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
globalTo:function(from,to,distance){
if(to.countMark('spshidi')%2==1) return distance+1;
},
aiOrder:function(player,card,num){
if(from.countMark('spshidi')%2==0&&card.name=='sha'&&get.color(card)=='black') return num+0.1;
},
},
mark:true,
marktext:'☯',
@ -6016,7 +6019,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xingbu:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
prompt2:'展示牌堆顶的三张牌,并根据其中红色牌的数量,令一名其他角色获得一种效果',
prompt2:'展示牌堆顶的三张牌,并可以根据其中红色牌的数量,令一名其他角色获得一种效果',
check:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
@ -6037,7 +6040,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i of cards){
if(get.color(i,false)=='red') num++;
}
player.chooseTarget('选择一名其他角色获得星卜效果('+get.cnNumber(num)+'张)',lib.filter.notMe,true).set('ai',function(target){
player.chooseTarget('是否选择一名其他角色获得星卜效果('+get.cnNumber(num)+'张)',lib.filter.notMe).set('ai',function(target){
var player=_status.event.player,num=_status.event.getParent().num;
var att=get.attitude(player,target);
if(num<3) att*=(-1);
@ -18472,7 +18475,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiming:'知命',
zhiming_info:'准备阶段开始时或弃牌阶段结束时,你摸一张牌,然后可以将一张牌置于牌堆顶。',
xingbu:'星卜',
xingbu_info:'结束阶段,你可以展示牌堆顶的三张牌,然后根据X值X为这三张牌中红色牌的数量令一名其他角色获得对应的效果直到其下回合结束①三张其摸牌阶段多摸两张牌使用【杀】的次数上限+1。②两张其使用【杀】的次数上限-1跳过弃牌阶段。③小于两张其于准备阶段开始时弃置一张手牌。',
xingbu_info:'结束阶段,你可以展示牌堆顶的三张牌,然后你可以根据X值X为这三张牌中红色牌的数量令一名其他角色获得对应的效果直到其下回合结束①三张其摸牌阶段多摸两张牌使用【杀】的次数上限+1。②两张其使用【杀】的次数上限-1跳过弃牌阶段。③小于两张其于准备阶段开始时弃置一张手牌。',
yuanqing:'渊清',
yuanqing_info:'锁定技,出牌阶段结束时,你随机将弃牌堆中你本阶段使用过的牌类型的各一张牌置于仁库中。',
shuchen:'疏陈',

View File

@ -1800,7 +1800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var targets=game.filterPlayer(current=>{
return !current.hasMark('jsrgzhenglve_mark');
});
if(!targets.length) event._result={bool:true};
if(!targets.length) event.finish();
else if(targets.length<=num) event._result={bool:true,targets:targets};
else player.chooseTarget('令'+get.cnNumber(num)+'名角色获得“猎”标记',true,num,(card,player,target)=>{
return !target.hasMark('jsrgzhenglve_mark');

View File

@ -803,6 +803,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
})%2==0;
},
group:'oldaili_record',
check:function(event,player){
if(get.distance(event.player,player,'absolute')==1&&!player.isTurnedOver()) return false;
return true;
},
content:function(){
player.turnOver();
player.draw(3,'visible').gaintag=['oldaili_tag'];
@ -823,6 +827,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return lib.skill.oldaili.mod.aiValue.apply(this,arguments);
},
},
mark:true,
marktext:'砺',
intro:{
markcount:function(storage,player){
return player.countCards('h',card=>card.hasGaintag('oldaili_tag'));
},
mark:function(dialog,content,player){
var cards=player.getCards('h',card=>card.hasGaintag('oldaili_tag'));
if(cards.length){
dialog.addAuto(cards);
}
else return '无展示牌';
},
},
subSkill:{
record:{
trigger:{player:'showCardsEnd'},
@ -835,7 +853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cards.forEach(card=>card.addGaintag('oldaili_tag'));
},trigger.cards);
}
}
},
}
},
//胡班

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
duanqiaoxiao:['female','wei',3,['dccaizhuang','dchuayi']],
zhangjinyun:['female','shu',3,['dchuizhi','dcjijiao']],
dc_mengda:['male','wei',4,['dclibang','dcwujie']],
huanfan:['male','wei',3,['dcjianzheng','dcfumou'],['unseen']],
mengyou:['male','qun',5,['hmmanyi','dcmanzhi'],['unseen']],
chentai:['male','wei',4,['dcjiuxian','dcchenyong'],['unseen']],
@ -229,7 +232,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_sbfm:["lisu","xinpi","zhangwen"],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou","xinping","hanmeng"],
sp_qihuan:['zhaozhong','re_hejin','fengfang','mushun','dc_fuwan'],
sp_binglin:['re_niujin',"sp_mifangfushiren",'licaiwei','dc_zhaoyan','shiyi','sunlang','sunhuan'],
sp_binglin:['re_niujin',"sp_mifangfushiren",'licaiwei','dc_zhaoyan','shiyi','sunlang','sunhuan','dc_mengda'],
sp_danqi:['dufuren','qinyilu','bianxi','dc_huban','dc_hujinding','dc_zhaoyǎn','wangwei','liyixiejing','guānning'],
sp_fenghuo:['re_nanhualaoxian','tongyuan','zhangning','re_pangdegong'],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie','dc_caiyang','zhoushan'],
@ -256,13 +259,411 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger','zhangfen'],
sp2_yinyu:['zhouyi','luyi'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji','duanqiaoxiao'],
sp2_jichu:['zhaoang','dc_liuye','dc_wangyun','yanghong','huanfan','xizheng'],
sp2_yuxiu:['dongguiren','dc_tengfanglan'],
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun'],
sp_decade:['caobuxing','re_maliang','xin_baosanniang','dongxie','liuhui'],
}
},
skill:{
//段巧笑
dccaizhuang:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'dccaizhuang');
},'h');
},
complexCard:true,
selectCard:[1,4],
filterCard:function(card,player){
var suit=get.suit(card);
if(!lib.suit.contains(suit)) return false;
if(ui.selected.cards.length){
if(ui.selected.cards.some(i=>{
return get.suit(i)==suit;
})) return false;
}
return true;
},
check:function(card){
var player=_status.event.player;
// var _tmpsuits=[],suits=[];
// player.countCards('h',cardx=>{
// if(suits.length>=4||card==cardx) return;
// var suit=get.suit(cardx);
// if(!_tmpsuits.contains(suit)){
// _tmpsuits.add(suit);
// return;
// }
// if(!lib.suit.contains(suit)||ui.selected.cards.contains(cardx)) return;
// suits.add(suit);
// });
var suits=lib.suit.filter(suit=>{
return player.countCards('h',{suit:suit})>1;
})
if(ui.selected.cards.length>=1&&ui.selected.cards.length<=suits.length) return 0;
var suit=get.suit(card);
if(!player.hasCard(cardx=>cardx!=card&&get.suit(cardx)==suit)) return 7.5-get.value(card);
return 6-get.value(card);
},
content:function(){
'step 0'
player.draw();
'step 1'
var suits=[];
player.countCards('h',card=>{
if(suits.length>=4) return;
var suit=get.suit(card);
if(!lib.suit.contains(suit)) return;
suits.add(suit);
});
if(suits.length<cards.length) event.goto(0);
},
ai:{
order:2.5,
result:{
player:1
}
}
},
dchuayi:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
frequent:true,
content:function(){
'step 0'
player.judge(()=>1).judge2=(result)=>result.bool;
'step 1'
var color=result.color;
if(color=='red'||color=='black') player.addTempSkill('dchuayi_'+color,{player:'phaseBegin'});
},
subSkill:{
red:{
trigger:{global:'phaseEnd'},
charlotte:true,
forced:true,
filter:function(event,player){
return event.player!=player;
},
content:function(){
player.draw();
}
},
black:{
trigger:{player:'damageEnd'},
charlotte:true,
forced:true,
content:function(){
player.draw(2);
},
ai:{
maixie:true,
maixie_hp:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(!target.hasFriend()) return;
var num=1;
if(get.attitude(player,target)>0){
if(player.needsToDiscard()){
num=0.5;
}
else{
num=0.3;
}
}
if(target.hp>=4) return [1,num*2];
if(target.hp==3) return [1,num*1.5];
if(target.hp==2) return [1,num*0.5];
}
}
}
}
}
}
},
//张瑾云
dchuizhi:{
audio:2,
trigger:{player:'phaseDrawEnd'},
direct:true,
content:function(){
'step 0'
player.chooseToDiscard(get.prompt('dchuizhi'),'你可以弃置任意张手牌,然后将手牌摸至与全场手牌数最多的角色数相同。',[1,Infinity]).set('logSkill','dchuizhi').set('ai',card=>{
if(_status.event.isMax){
if(ui.selected.cards.length) return -get.value(card);
return 4-get.value(card);
}
return 6-get.value(card);
}).set('isMax',player.isMaxHandcard());
'step 1'
if(result.bool){
var num=0,targets=game.filterPlayer();
for(var current of targets){
if(current.isMaxHandcard()){
num=current.countCards('h');
break;
}
}
num=Math.max(1,Math.min(5,num-player.countCards('h')));
player.draw(num);
}
}
},
dcjijiao:{
audio:2,
enable:'phaseUse',
limited:true,
skillAnimation:true,
animationColor:'orange',
filter:function(event,player){
var cardsx=Array.from(ui.discardPile.childNodes);
var history=_status.globalHistory;
for(var i=0;i<history.length;i++){
var history2=history[i]['cardMove'];
for(var evt of history2){
var evtx=evt.getParent(),evtx2;
if(evtx.name=='orderingDiscard'){
evtx2=evtx.relatedEvent||evtx.getParent();
}
if(evt.name=='lose'||evtx2&&evtx2.name=='useCard'){
if(!evt.getd) continue;
var cards=evt.getd(player);
if(cards.some(i=>get.type(i)=='trick'&&cardsx.contains(i))) return true;
}
}
}
return false;
},
filterTarget:true,
content:function(){
player.awakenSkill('dcjijiao');
var cardsx=Array.from(ui.discardPile.childNodes);
var cards=[];
game.getAllGlobalHistory('cardMove',evt=>{
var evtx=evt.getParent(),evtx2;
if(evtx.name=='orderingDiscard'){
evtx2=evtx.relatedEvent||evtx.getParent();
}
if(evt.name=='lose'||evtx2&&evtx2.name=='useCard'){
if(!evt.getd) return;
var cards2=evt.getd(player);
cards.addArray(cards2.filter(i=>get.type(i)=='trick'&&cardsx.contains(i)));
}
});
if(cards.length){
target.gain(cards,'gain2').gaintag.add('dcjijiao');
target.addSkill('dcjijiao_nowuxie');
}
player.addSkill('dcjijiao_machi');
},
ai:{
order:1,
result:{
target:function(player,target){
if(game.roundNumber==1&&ui.cardPile.childNodes.length>game.countPlayer()*5&&!game.hasPlayer(current=>current.hp<=2)) return 0;
return 5;
}
}
},
subSkill:{
machi:{
charlotte:true,
forced:true,
popup:false,
trigger:{
global:['washCard','die'],
},
filter:function(event,player){
return player.hasSkill('dcjijiao',null,false,false);
},
content:function(){
player.addSkill('dcjijiao_risutoa');
}
},
risutoa:{
charlotte:true,
forced:true,
popup:false,
trigger:{global:'phaseAfter'},
content:function(){
player.restoreSkill('dcjijiao');
game.log(player,'重置了','#g【继椒】');
player.removeSkill('dcjijiao_machi');
player.removeSkill('dcjijiao_risutoa');
}
},
nowuxie:{
trigger:{player:'useCard1'},
forced:true,
charlotte:true,
firstDo:true,
popup:false,
filter:function(event,player){
if(get.type(event.card)!='trick') return false;
return player.hasHistory('lose',function(evt){
if(evt.getParent()!=event) return false;
for(var i in evt.gaintag_map){
if(evt.gaintag_map[i].contains('dcjijiao')) return true;
}
return false;
});
},
content:function(){
trigger.nowuxie=true;
},
onremove:function(player){
player.removeGaintag('kousheng');
},
}
}
},
//孟达
dclibang:{
audio:2,
enable:'phaseUse',
usable:1,
filterCard:true,
position:'he',
filter:function(event,player){
return player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'dclibang');
},'he')&&game.countPlayer(current=>current!=player)>=2;
},
filterTarget:function(card,player,target){
return target!=player;
},
selectTarget:2,
multiline:true,
multitarget:true,
content:function(){
'step 0'
event.num=0;
event.cardsx=[];
'step 1'
var current=targets[event.num];
if(current.countCards('he')) player.gainPlayerCard(current,'he',true,'visibleMove');
event.num++;
'step 2'
if(result.bool){
var card=result.cards[0];
event.cardsx.push(card);
}
if(event.num<targets.length) event.goto(1);
'step 3'
player.judge().set('callback',lib.skill.dclibang.contentx);
},
contentx:function(){
'step 0'
var card=event.judgeResult.card;
var color=event.judgeResult.color;
var player=event.getParent(2).player;
var cards=event.getParent(2).cardsx;
for(var card of cards){
if(get.color(card)==color){
if(get.position(card,true)=='o') player.gain(card,'gain2');
return;
}
}
event.goto(3);
'step 1'
var targets=event.getParent(2).targets.filter(target=>{
return player.canUse('sha',target);
});
if(!targets.length) event.finish();
else player.chooseTarget('利傍:视为对其中一名角色使用一张【杀】',true,(card,player,target)=>{
return _status.event.targets.contains(target);
}).set('targets',targets).set('ai',target=>{
return get.effect(target,{name:'sha'},player,player);
});
'step 2'
if(result.bool){
player.useCard({name:'sha',isCard:true},result.targets[0]);
}
event.finish();
'step 3'
player.chooseCardTarget({
filterCard:function(card){
return get.itemtype(card)=='card';
},
filterTarget:function(card,player,target){
return _status.event.targets.contains(target);
},
selectCard:2,
targets:event.getParent(2).targets,
position:'he',
prompt:'交给其中一名角色两张牌或失去1点体力',
ai1:function(card){
return 1;
},
ai2:function(target){
var player=_status.event.player,card=ui.selected.cards[0];
if(val>0) return get.attitude(player,target)*2;
return (get.value(card,target)-2)*get.attitude(player,target);
},
});
'step 4'
if(result.bool){
player.give(result.cards,result.targets[0]);
}
else player.loseHp();
},
ai:{
order:8,
result:{
target:function(player,target){
if(get.attitude(player,target)>0&&ui.selected.targets.length) return 0.1;
return -1;
}
}
}
},
dcwujie:{
audio:2,
forced:true,
trigger:{
global:['discardBegin','drawBegin'],
},
forced:true,
forceDie:true,
group:'dcwujie_inf',
logTarget:'player',
filter:function(event,player){
return event.getParent().name=='die'&&event.getParent().source==event.player&&event.player!=player;
},
content:function(){
trigger.cancel();
},
subSkill:{
inf:{
trigger:{player:'useCard1'},
forced:true,
popup:false,
firstDo:true,
filter:function(event,player){
if(get.color(event.card)=='none'&&event.addCount!==false) return true;
return false;
},
content:function(){
trigger.addCount=false;
var stat=player.getStat().card,name=trigger.card.name;
if(typeof stat[name]=='number') stat[name]--;
},
}
},
mod:{
targetInRange:function(card,player){
if(get.color(card)=='none') return true;
},
cardUsable:function(card){
if(get.color(card)=='none') return Infinity;
},
}
},
//桓范
dcjianzheng:{
audio:2,
@ -15614,8 +16015,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
filter:function(event,player){
if(player==event.player||!event.player.isIn()) return false;
if(!player.hasHistory('useSkill',function(evt){
return evt.skil=='huguan'&&evt.targets.contains(event.player);
if(!player.hasAllHistory('useSkill',function(evt){
return evt.skill=='huguan'&&evt.targets.contains(event.player);
})) return false;
var suits=[];
event.player.getHistory('lose',function(evt){
@ -27624,6 +28025,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zerong:'笮[zé]融—195年丹杨治今安徽宣城东汉末年豪强生性残暴却笃信佛教为佛教在中国的发展做出了很大贡献。东汉末年投奔徐州刺史陶谦督管下邳、彭城、广陵三郡运粮。将其中大量物资占为己有累积财力遂在徐州一带大规模崇佛修建豪华佛寺铸造金铜大佛衣以锦彩并举行浴佛节招揽信徒万余人。其崇佛活动奠定了中国大型佛事活动的基础。后又投奔赵昱、薛礼、朱皓并将他们杀害扬州牧刘繇因此兴兵讨伐笮融。笮融兵败后逃入深山由于当地山民同样对他恨之入骨便联手搜捕、杀死笮融并将他的首级献给刘繇。',
zhoushan:'周善,《三国演义》中人物,不见于正史记载。为吴侯孙权的家将,此人最有胆量,自幼穿房入户,多随孙策。权为骗其妹回吴,遣善将五百人,扮为商人,分作五船;更诈修国书,以备盘诘;船内暗藏兵器。周善领命,往荆州。正骗得孙夫人带刘禅上船,赵云前来抢走禅,周善在后梢挟住舵,只顾放船下水。正僵持时张飞赶到,周善见张飞上船,提刀来迎,被张飞手起一剑砍倒,提头掷于孙夫人前。',
zhangkai:'张闿[kǎi],陶谦的手下都尉。奉命截杀曹操之父曹嵩,杀死曹嵩,夺去财宝逃往淮南投奔袁术,并担任刺杀陈王刘宠和陈国相骆俊的任务。',
huanfan:'桓范249年字元则沛郡龙亢县今安徽省怀远县龙亢镇人。三国时期曹魏大臣、文学家、画家。建安末年担任丞相府掾联合王象等共同撰写《皇览》。延康元年担任羽林左监。魏明帝时历任中领军、尚书出任征虏将军、东中郎将、兖州刺史等。正始年间授大司农为大将军曹爽出谋划策号称“智囊 ”。高平陵政变249年发生后力劝曹爽挟带皇帝曹芳进入许昌没有得到采纳最终被太傅司马懿诛杀。桓范颇有文才著有《世要论》《桓范新书》。善于画画唐朝张彦远《历代名画记》目为中品。',
mengyou:'孟优,《三国演义》里的人物,南蛮王孟获之弟。与诸葛亮的南征军交战,向败战的兄长推荐朵思大王,劝兄长借助朵思之力与蜀汉军对抗。后来与兄长一起发誓归顺蜀汉。',
sunyu:'孙瑜177年215年字仲异吴郡富春今浙江富阳孙坚之弟孙静的次子孙权的堂兄。官至奋威将军、丹杨太守。孙瑜初以恭义校尉的身份统领士兵曾跟随周瑜、孙权等人征战擅于安抚部下、招降纳顺。孙瑜爱读古籍又请学者马普来为将领官员的子弟讲学于是东吴开始设立学官。215年孙瑜去世时年三十九岁。',
xizheng:'郤正278年本名郤纂字令先司州河南郡偃师县今河南省偃师市三国蜀汉至西晋时期学者、官员。少好学广读古籍。弱冠即善写文章为蜀汉朝廷征为秘书吏官至秘书令。公元263年景耀六年曹魏攻伐蜀汉后主刘禅投降郤正为之撰写投降书。后随刘禅前往洛阳受封关内侯又得到晋武帝司马炎赏识任巴西郡太守公元278年咸宁四年去世。郤正为人不重名利曾作《释讥》表明自己淡泊之心境又醉心于文学共作诗歌、论著、辞赋等近百篇但多散佚于后世。',
liuchongluojun:'刘宠(?~197年汉明帝刘庄玄孙陈敬王刘羡曾孙陈顷王刘崇之孙陈孝王刘承之子陈国第六位国君也是东汉陈国的最后一位国君。骆俊?-197字孝远东汉末年扬州会稽郡乌伤县今浙江义乌人。宗室陈王刘宠的国相在任期间励精图治深得民众爱戴。刘宠勇猛过人善使弓弩箭法高超。在其父刘承死后继承陈王爵位。中平年间黄巾军起义郡县官兵都弃城逃走刘宠于是征兵自守卫。当时天下饥荒诸王侯都已不再享有租赋反屡遭抢掠有的甚至流离在外死于荒野。只有陈国仍很富强邻郡百姓纷纷前去投靠陈国拥有部众达十余万人。初平元年190年各州郡起兵讨伐董卓刘宠率军屯驻阳夏自称辅汉大将军。建安二年197年袁术向陈国求取粮草遭陈国国相骆俊拒绝袁术大为生气便派刺客张闿假装路过陈国乘机杀死骆俊和刘宠。',
yuechen:'乐綝195~257年字号不详阳平郡卫国县今河南省清丰县人。三国时期曹魏将领右将军乐进的儿子。果毅坚毅袭封广昌亭侯累迁扬州刺史。甘露二年为叛乱的征东大将军诸葛诞所杀追赠卫尉。',
zhangjinyun:'张瑾云张星彩的妹妹刘禅的第二任皇后238年正月立为皇后。景耀六年263年蜀汉灭亡刘禅被俘此后受封为安乐公。张皇后也随之成为安乐公夫人咸熙元年264年随刘禅到洛阳。',
duanqiaoxiao:'段巧笑,三国时代魏国魏文帝时的宫人,甚受到魏文帝的宠爱。传说她以原有的化妆品中的米粉和胡粉,再加入葵花子汁,发明了女性化妆用的脂粉。',
},
characterTitle:{
// wulan:'#b对决限定武将',
@ -27793,6 +28202,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
duanwei:['duanwei','junk_duanwei'],
xushao:['xushao','jsrg_xushao'],
huban:['dc_huban','ol_huban'],
mengda:['dc_mengda','pe_mengda'],
},
translate:{
lijue:"李傕",
@ -28423,7 +28833,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huguan:'护关',
huguan_info:'一名角色于出牌阶段内使用第一张牌时,若此牌为红色,则你可以声明一种花色。该花色的牌不计入其本回合的手牌上限。',
yaopei:'摇佩',
yaopei_info:'其他角色的弃牌阶段结束时,若你本回合对其发动过〖护关〗则你可以弃置一张与其于此阶段弃置的牌花色均不相同的牌。然后你选择一项①其摸两张牌你回复1点体力。②其回复1点体力你摸两张牌。',
yaopei_info:'其他角色的弃牌阶段结束时,若你本局游戏内对其发动过〖护关〗则你可以弃置一张与其于此阶段弃置的牌花色均不相同的牌。然后你选择一项①其摸两张牌你回复1点体力。②其回复1点体力你摸两张牌。',
mingluan:'鸣鸾',
mingluan_info:'其他角色的结束阶段开始时若有角色于本回合内回复过体力则你可以弃置任意张牌然后摸X张牌X为当前角色的手牌数且至多摸至5张。',
re_pangdegong:'庞德公',
@ -29046,6 +29456,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcporui_info:'每轮限一次。其他角色的结束阶段你可以弃置一张基本牌并选择另一名于此回合内失去过牌的其他角色你视为对其依次使用X+1张【杀】然后你交给其X张手牌X为你的体力值。',
dcgonghu:'共护',
dcgonghu_info:'锁定技。①当你于回合外失去基本牌后你于〖破锐〗后增加“若其没有因此受到伤害你回复1点体力”。②当你于回合外造成或受到伤害后你删除〖破锐〗中的“然后你交给其X张手牌”。③当你使用红色基本牌/红色普通锦囊牌时,若你已发动过〖共护①〗和〖共护②〗,则此牌不可被响应/可额外增加一个目标。',
dc_zhangmancheng:'张曼成',
dclvecheng:'掠城',
dclvecheng_info:'出牌阶段限一次。你可以选择一名其他角色,你于本回合对其使用【杀】无次数限制。然后回合结束时,其展示所有手牌,若其中有【杀】,其可以选择对你依次使用其中所有的【杀】。',
dczhongji:'螽集',
dczhongji_info:'当你使用牌时若此牌无花色或你手牌区里没有与此牌花色相同的手牌你可以将手牌摸至体力上限并弃置X张牌X为本回合发动〖螽集〗的次数。',
zhangjinyun:'张瑾云',
dchuizhi:'蕙质',
dchuizhi_info:'摸牌阶段结束时,你可以弃置任意张手牌,然后将手牌摸至与全场手牌数最多的角色相同(至少摸一张,至多摸五张)。',
dcjijiao:'继椒',
dcjijiao_info:'限定技。出牌阶段,你可以令一名角色获得所有弃牌堆中你于本局游戏内使用或弃置过的普通锦囊牌,且这些牌不能被【无懈可击】响应。一名角色的回合结束后,若本回合牌堆洗过牌或有角色死亡,你重置〖继椒〗。',
duanqiaoxiao:'段巧笑',
dccaizhuang:'彩妆',
dccaizhuang_info:'出牌阶段限一次。你可以弃置任意张花色各不相同的牌。然后你摸一张牌,若你手牌中的花色数小于你以此法弃置的牌数,你重复此流程。',
dchuayi:'华衣',
dchuayi_info:'结束阶段,你可以判定,然后你获得如下效果直到你下回合开始时:红色,其他角色回合结束时,你摸一张牌;黑色,当你受到伤害后,你摸两张牌。',
dc_mengda:'孟达',
dclibang:'利傍',
dclibang_info:'出牌阶段限一次。你可以弃置一张牌正面向上获得两名其他角色的各一张牌。然后你判定若结果与这两张牌的颜色均不同你交给其中一名角色两张牌或失去1点体力否则你获得判定牌并视为对其中一名角色使用一张【杀】。',
dcwujie:'无节',
dcwujie_info:'锁定技。①你使用无色牌无任何次数限制且无距离限制。②当其他角色执行杀死你的奖惩而摸牌或弃牌时,取消之。',
sp_whlw:"文和乱武",

View File

@ -705,6 +705,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refuseInfo:['不给','拒绝'],
subSkill:{
want:{
audio:'twkaizeng',
forceaudio:true,
enable:'phaseUse',
usable:1,
charlotte:true,
@ -799,7 +801,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.give(cards,player);
}
else{
var refuseInfo=lib.skill.twkaizeng.refuseInfo;
var refuseInfo=lib.skill.twkaizeng.refuseInfo.slice();
if(get.attitude(target,player)<0) refuseInfo.push('没门');
target.chat(refuseInfo.randomGet());
event.finish();

View File

@ -1388,6 +1388,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.addSkill('xinzhaofu_effect');
target.markAuto('xinzhaofu_effect',[player]);
},
ai:{
order:9,
result:{
target:function(player,target){
var targets=game.filterPlayer(function(current){
return current.group=='wu'&&get.attitude(player,current)>0;
});
if(targets.length){
for(var targetx of targets){
if(!targetx.inRange(target)) return -1;
}
return -0.5;
}
return 0;
}
}
},
subSkill:{
effect:{
charlotte:true,

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB