commit
1cd6b4bf72
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -5336,7 +5336,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var dialog=ui.create.dialog('劝谏:令一名其他角色…','hidden');
|
var dialog=ui.create.dialog('劝谏:令一名其他角色…','hidden');
|
||||||
dialog.add([[
|
dialog.add([[
|
||||||
['damage','对其攻击范围内的一名角色造成1点伤害'],
|
['damage','对其攻击范围内的一名角色造成1点伤害'],
|
||||||
['draw','将其手牌数调整至体力上限(至多摸至五张),且其本回合内不能使用手牌']
|
['draw','将其手牌数调整至手牌上限(至多摸至五张),且其本回合内不能使用手牌']
|
||||||
],'textbutton']);
|
],'textbutton']);
|
||||||
return dialog;
|
return dialog;
|
||||||
},
|
},
|
||||||
|
@ -5349,7 +5349,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
prompt:function(links){
|
prompt:function(links){
|
||||||
if(links[0]=='damage') return '令一名其他角色对攻击范围内的另一名角色造成1点伤害';
|
if(links[0]=='damage') return '令一名其他角色对攻击范围内的另一名角色造成1点伤害';
|
||||||
return '令一名其他角色将手牌数调整至体力上限(至多摸至五张)且本回合内不能使用手牌';
|
return '令一名其他角色将手牌数调整至手牌上限(至多摸至五张)且本回合内不能使用手牌';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -5407,15 +5407,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filterTarget:function(card,player,target){
|
filterTarget:function(card,player,target){
|
||||||
if(target==player) return false;
|
if(target==player) return false;
|
||||||
var num=target.countCards('h');
|
var num=target.countCards('h');
|
||||||
if(num>target.maxHp) return true;
|
if(num>target.getHandcardLimit()) return true;
|
||||||
return num<Math.min(5,target.maxHp);
|
return num<Math.min(5,target.getHandcardLimit());
|
||||||
},
|
},
|
||||||
filterCard:()=>false,
|
filterCard:()=>false,
|
||||||
selectCard:-1,
|
selectCard:-1,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.addTempSkill('dcquanjian_draw','phaseUseAfter');
|
player.addTempSkill('dcquanjian_draw','phaseUseAfter');
|
||||||
var num1=target.countCards('h'),num2=target.maxHp;
|
var num1=target.countCards('h'),num2=target.getHandcardLimit();
|
||||||
var num=0;
|
var num=0;
|
||||||
if(num1>num2){
|
if(num1>num2){
|
||||||
event.index=0;
|
event.index=0;
|
||||||
|
@ -5459,7 +5459,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ai:{
|
ai:{
|
||||||
result:{
|
result:{
|
||||||
target:function(player,target){
|
target:function(player,target){
|
||||||
var num1=target.countCards('h'),num2=target.maxHp;
|
var num1=target.countCards('h'),num2=target.getHandcardLimit();
|
||||||
if(num1>num2) return -1;
|
if(num1>num2) return -1;
|
||||||
return Math.min(5,num2)-num1;
|
return Math.min(5,num2)-num1;
|
||||||
},
|
},
|
||||||
|
@ -10461,7 +10461,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
player.markAuto('dcxunji_effect',[target]);
|
player.markAuto('dcxunji_effect',[target]);
|
||||||
player.addTempSkill('dcxunji_effect',{player:'die'});
|
player.addTempSkill('dcxunji_effect',{player:'die'});
|
||||||
target.markSkill('dcxunji_mark');
|
target.addTempSkill('dcxunji_mark',{player:'phaseEnd'});
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
order:1,
|
order:1,
|
||||||
|
@ -10474,6 +10474,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
mark:{
|
mark:{
|
||||||
|
mark:true,
|
||||||
marktext:'嫉',
|
marktext:'嫉',
|
||||||
intro:{content:'你已经被盯上了!'},
|
intro:{content:'你已经被盯上了!'},
|
||||||
},
|
},
|
||||||
|
@ -10505,10 +10506,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
forced:true,
|
forced:true,
|
||||||
popup:false,
|
popup:false,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card&&event.card.name=='juedou'&&event.getParent().skill=='dcxunji_effect';
|
return event.card&&event.card.name=='juedou'&&event.getParent().skill=='dcxunji_effect'&&event.player.isIn();
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.loseHp(trigger.num);
|
trigger.player.line(player);
|
||||||
|
player.damage(trigger.num,trigger.player);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -11118,7 +11120,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖裂胆〗失效直到你下回合结束。',
|
zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖裂胆〗失效直到你下回合结束。',
|
||||||
dc_caiyang:'蔡阳',
|
dc_caiyang:'蔡阳',
|
||||||
dcxunji:'寻嫉',
|
dcxunji:'寻嫉',
|
||||||
dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其于该回合内造成过伤害,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,你失去等量的体力。',
|
dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其于该回合内造成过伤害,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,其对你造成等量的伤害。',
|
||||||
dcjiaofeng:'交锋',
|
dcjiaofeng:'交锋',
|
||||||
dcjiaofeng_info:'锁定技。每回合限一次,当你造成伤害时,若你本回合内未造成过其他伤害且你已损失的体力值:大于0,则你摸一张牌;大于1,则此伤害+1;大于2,则你回复1点体力。',
|
dcjiaofeng_info:'锁定技。每回合限一次,当你造成伤害时,若你本回合内未造成过其他伤害且你已损失的体力值:大于0,则你摸一张牌;大于1,则此伤害+1;大于2,则你回复1点体力。',
|
||||||
zhoushan:'周善',
|
zhoushan:'周善',
|
||||||
|
@ -11328,7 +11330,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcyongbi_info:'限定技。出牌阶段,你可以将所有手牌交给一名其他男性角色。你将〖媵予〗的发动时机改为“准备阶段和结束阶段开始时”。然后若这些牌中包含的花色数:大于1,则你与其本局游戏的手牌上限+2;大于2,则当你或其于本局游戏内受到大于1的伤害时,此伤害-1。',
|
dcyongbi_info:'限定技。出牌阶段,你可以将所有手牌交给一名其他男性角色。你将〖媵予〗的发动时机改为“准备阶段和结束阶段开始时”。然后若这些牌中包含的花色数:大于1,则你与其本局游戏的手牌上限+2;大于2,则当你或其于本局游戏内受到大于1的伤害时,此伤害-1。',
|
||||||
dc_huangquan:'黄权',
|
dc_huangquan:'黄权',
|
||||||
dcquanjian:'劝谏',
|
dcquanjian:'劝谏',
|
||||||
dcquanjian_info:'出牌阶段每项各限一次。你可以选择一项流程并选择一名其他角色A:⒈令A对其攻击范围内的另一名角色B造成1点伤害。⒉令A将手牌数调整至体力上限(至多摸至五张),且其本回合内不能使用或打出手牌。然后A选择一项:⒈执行此流程。⒉本回合下次受到的伤害+1。',
|
dcquanjian_info:'出牌阶段每项各限一次。你可以选择一项流程并选择一名其他角色A:⒈令A对其攻击范围内的另一名角色B造成1点伤害。⒉令A将手牌数调整至手牌上限(至多摸至五张),且其本回合内不能使用或打出手牌。然后A选择一项:⒈执行此流程。⒉本回合下次受到的伤害+1。',
|
||||||
dctujue:'途绝',
|
dctujue:'途绝',
|
||||||
dctujue_info:'限定技。当你进入濒死状态时,你可以将所有牌交给一名其他角色。然后你回复等量的体力并摸等量的牌。',
|
dctujue_info:'限定技。当你进入濒死状态时,你可以将所有牌交给一名其他角色。然后你回复等量的体力并摸等量的牌。',
|
||||||
chengui:'陈珪',
|
chengui:'陈珪',
|
||||||
|
|
|
@ -482,32 +482,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:'twjieyu',
|
audio:'twjieyu',
|
||||||
trigger:{player:'phaseJieshuBegin'},
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
for(var i=0;i<ui.discardPile.childElementCount;i++){
|
for(let i=0;i<ui.discardPile.childElementCount;i++){
|
||||||
if(get.type(ui.discardPile.childNodes[i])=='basic') return true;
|
if(get.type(ui.discardPile.childNodes[i],false)=='basic') return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
prompt2:function(event,player){
|
prompt2:function(event,player){
|
||||||
const num=lib.skill.jieyu.getNum(player,true);
|
const num=lib.skill.jieyu.getNum(player);
|
||||||
return '获得弃牌堆中'+get.cnNumber(num)+'张'+(num>1?'牌名各不相同的':'')+'基本牌';
|
return '获得弃牌堆中'+get.cnNumber(num)+'张'+(num>1?'牌名各不相同的':'')+'基本牌';
|
||||||
},
|
},
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
const num=lib.skill.jieyu.getNum(player,false);
|
const num=lib.skill.jieyu.getNum(player,event);
|
||||||
let gains=[],names=lib.inpile.filter(name=>get.type(name)=='basic').randomGets(num);
|
let gains=[],names=[];
|
||||||
names.forEach(name=>{
|
for(let i=0;i<ui.discardPile.childElementCount;i++){
|
||||||
let card=get.discardPile(card=>card.name==name);
|
let card=ui.discardPile.childNodes[i];
|
||||||
if(name) gains.push(card);
|
if(get.type(card,false)=='basic'&&!names.includes(card.name)){
|
||||||
});
|
gains.push(card);
|
||||||
if(gains.length) player.gain(gains,'gain2');
|
names.push(card.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(gains.length) player.gain(gains.randomGets(Math.min(gains.length,num)),'gain2');
|
||||||
},
|
},
|
||||||
getNum:function(player,goon){
|
getNum:function(player,event){
|
||||||
let num=3,bool=goon;
|
let num=3;
|
||||||
const history=game.getAllGlobalHistory('everything');
|
const history=game.getAllGlobalHistory('everything');
|
||||||
for(let i=history.length-1;i>=0;i--){
|
for(let i=history.length-1;i>=0;i--){
|
||||||
const evt=history[i];
|
const evt=history[i];
|
||||||
if(evt.name=='useSkill'&&evt.player==player&&evt.skill=='jieyu'){
|
if(evt.name=='jieyu'&&evt.player==player){
|
||||||
if(!bool) bool=true;
|
if(!event||evt!=event) break;
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
if(evt.name=='useCard'&&evt.player!=player&&evt.targets&&evt.targets.includes(player)&&get.tag(evt.card,'damage')){
|
if(evt.name=='useCard'&&evt.player!=player&&evt.targets&&evt.targets.includes(player)&&get.tag(evt.card,'damage')){
|
||||||
num--;
|
num--;
|
||||||
|
@ -599,7 +601,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(to.hujia>0) return distance+1;
|
if(to.hujia>0) return distance+1;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
audio:2,
|
audio:true,
|
||||||
trigger:{player:'damageBegin2'},
|
trigger:{player:'damageBegin2'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.hujia>0&&event.hasNature('fire');
|
return player.hujia>0&&event.hasNature('fire');
|
||||||
|
|
|
@ -129,6 +129,7 @@ window.noname_character_rank={
|
||||||
'caoxian',
|
'caoxian',
|
||||||
'sb_guanyu',
|
'sb_guanyu',
|
||||||
'mb_chengui',
|
'mb_chengui',
|
||||||
|
'sb_caopi',
|
||||||
],
|
],
|
||||||
a:[
|
a:[
|
||||||
'diy_zaozhirenjun',
|
'diy_zaozhirenjun',
|
||||||
|
@ -356,6 +357,7 @@ window.noname_character_rank={
|
||||||
'dc_sb_zhouyu',
|
'dc_sb_zhouyu',
|
||||||
],
|
],
|
||||||
am:[
|
am:[
|
||||||
|
'muludawang',
|
||||||
'diy_caiwenji',
|
'diy_caiwenji',
|
||||||
'diy_liuyan',
|
'diy_liuyan',
|
||||||
'diy_zhenji',
|
'diy_zhenji',
|
||||||
|
@ -650,6 +652,7 @@ window.noname_character_rank={
|
||||||
'mb_huban',
|
'mb_huban',
|
||||||
],
|
],
|
||||||
bp:[
|
bp:[
|
||||||
|
'xin_huojun',
|
||||||
'chess_diaochan',
|
'chess_diaochan',
|
||||||
'chess_huangzhong',
|
'chess_huangzhong',
|
||||||
'chess_sunshangxiang',
|
'chess_sunshangxiang',
|
||||||
|
@ -1019,6 +1022,7 @@ window.noname_character_rank={
|
||||||
'sb_huangyueying',
|
'sb_huangyueying',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
|
'liyi',
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
'diy_liufu',
|
'diy_liufu',
|
||||||
'diy_tianyu',
|
'diy_tianyu',
|
||||||
|
@ -2089,6 +2093,8 @@ window.noname_character_rank={
|
||||||
'dc_sb_zhouyu',
|
'dc_sb_zhouyu',
|
||||||
],
|
],
|
||||||
rare:[
|
rare:[
|
||||||
|
'xin_huojun',
|
||||||
|
'muludawang',
|
||||||
'mb_huban',
|
'mb_huban',
|
||||||
'sp_jianggan',
|
'sp_jianggan',
|
||||||
'ol_caozhang',
|
'ol_caozhang',
|
||||||
|
|
|
@ -6363,7 +6363,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sbfangzhu:'放逐',
|
sbfangzhu:'放逐',
|
||||||
sbfangzhu_info:'出牌阶段限一次,你可以:1.移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束;2.移去2个“颂”标记,令一名其他角色不能响应除其以为的角色使用的牌直到其回合结束;3.移去2个“颂”标记,令一名其他角色将武将牌翻面;4.移去2个“颂”标记,令一名其他角色只能使用你选择的一种类型的牌直到其回合结束。',
|
sbfangzhu_info:'出牌阶段限一次,你可以:1.移去2个“颂”标记,令一名其他角色的非Charlotte技能失效直到其回合结束;2.移去2个“颂”标记,令一名其他角色不能响应除其以为的角色使用的牌直到其回合结束;3.移去2个“颂”标记,令一名其他角色将武将牌翻面;4.移去2个“颂”标记,令一名其他角色只能使用你选择的一种类型的牌直到其回合结束。',
|
||||||
sbsongwei:'颂威',
|
sbsongwei:'颂威',
|
||||||
sbsongwei_info:'①出牌阶段开始时,你获得Y个“颂”标记(Y为场上其他魏势力角色数)。②每局游戏限一次,出牌阶段,你可以令一名其他魏势力角色失去所有武将牌的技能。',
|
sbsongwei_info:'主公技。①出牌阶段开始时,你获得Y个“颂”标记(Y为场上其他魏势力角色数)。②每局游戏限一次,出牌阶段,你可以令一名其他魏势力角色失去所有武将牌的技能。',
|
||||||
|
|
||||||
sb_zhi:'谋攻篇·知',
|
sb_zhi:'谋攻篇·知',
|
||||||
sb_shi:'谋攻篇·识',
|
sb_shi:'谋攻篇·识',
|
||||||
|
|
215
character/sp.js
215
character/sp.js
|
@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
||||||
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan','sunhong','caoxi'],
|
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan','sunhong','caoxi'],
|
||||||
sp_tianzhu:['zhangyan','niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
sp_tianzhu:['zhangyan','niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
||||||
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu',"daxiaoqiao","jin_guohuai"],
|
sp_nvshi:['ol_dingshangwan',"lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu',"daxiaoqiao","jin_guohuai"],
|
||||||
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
||||||
sp_huben:['duanjiong','ol_mengda',"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','luoxian','ol_huban','haopu','ol_qianzhao'],
|
sp_huben:['duanjiong','ol_mengda',"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','luoxian','ol_huban','haopu','ol_qianzhao'],
|
||||||
sp_liesi:['lvboshe','mizhu','weizi','ol_liuba','zhangshiping'],
|
sp_liesi:['lvboshe','mizhu','weizi','ol_liuba','zhangshiping'],
|
||||||
|
@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
||||||
sp_others:["hanba","caiyang"],
|
sp_others:["hanba","caiyang"],
|
||||||
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_dingshangwan','ol_liwan','ol_liuyan','caoyu'],
|
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_liwan','ol_liuyan','caoyu','liyi'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
|
@ -30,6 +30,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
liyi:['male','wu',4,['olchanshuang','olzhanjin']],
|
||||||
caoyu:['male','wei',3,['olgongjie','olxiangxv','olxiangzuo']],
|
caoyu:['male','wei',3,['olgongjie','olxiangxv','olxiangzuo']],
|
||||||
ol_liwan:['female','wei',3,['ollianju','olsilv']],
|
ol_liwan:['female','wei',3,['ollianju','olsilv']],
|
||||||
ol_dingshangwan:['female','wei',3,['olfudao','olfengyan']],
|
ol_dingshangwan:['female','wei',3,['olfudao','olfengyan']],
|
||||||
|
@ -202,6 +203,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
luzhi:['male','wei',3,['qingzhong','weijing']]
|
luzhi:['male','wei',3,['qingzhong','weijing']]
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
liyi:'李异(生卒年不详),三国时期东吴将领。建安末,与谢旌率水陆三千,击破刘备军将领詹晏、陈凤。刘备领兵攻孙权时,李异与陆逊等人屯巫、秭归,为蜀将所破。黄武元年(222年),陆逊破刘备于猇亭,李异追踪蜀军,屯驻南山。清代学者赵一清认为此李异与刘璋部将李异为同一人。',
|
||||||
caoyu:'曹宇(?-278年),字彭祖,沛国谯县(今安徽亳州)人。三国时期魏国宗室,魏武帝曹操与环夫人之子,邓哀王曹冲同母兄弟。太和六年,封为燕王。魏明帝病危,欲以大将军辅政,不果。其子常道乡公曹奂,是魏国末代皇帝,史称魏元帝。晋朝建立后,降封燕公。咸宁四年(278年),曹宇去世。',
|
caoyu:'曹宇(?-278年),字彭祖,沛国谯县(今安徽亳州)人。三国时期魏国宗室,魏武帝曹操与环夫人之子,邓哀王曹冲同母兄弟。太和六年,封为燕王。魏明帝病危,欲以大将军辅政,不果。其子常道乡公曹奂,是魏国末代皇帝,史称魏元帝。晋朝建立后,降封燕公。咸宁四年(278年),曹宇去世。',
|
||||||
zhangyan:'张燕,本姓褚,生卒年不详,常山真定(今河北正定南)人,东汉末年黑山军首领。张燕剽捍,敏捷过人,军中称为“飞燕”。官渡之战时投降曹操,被任命为平北将军,封安国亭侯。死后其子张方袭爵。',
|
zhangyan:'张燕,本姓褚,生卒年不详,常山真定(今河北正定南)人,东汉末年黑山军首领。张燕剽捍,敏捷过人,军中称为“飞燕”。官渡之战时投降曹操,被任命为平北将军,封安国亭侯。死后其子张方袭爵。',
|
||||||
lushi:'卢氏,五斗米教主张衡妻,张鲁母,擅长驻颜之术,常年令自己保持少女的容颜。常拜访刘焉,与其交好。',
|
lushi:'卢氏,五斗米教主张衡妻,张鲁母,擅长驻颜之术,常年令自己保持少女的容颜。常拜访刘焉,与其交好。',
|
||||||
|
@ -705,6 +707,207 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//李异
|
||||||
|
olchanshuang:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
filterTarget:lib.filter.notMe,
|
||||||
|
usable:1,
|
||||||
|
content:function*(event,map){
|
||||||
|
const player=map.player,target=event.target;
|
||||||
|
const choiceList=[
|
||||||
|
'重铸一张牌',
|
||||||
|
'使用一张【杀】',
|
||||||
|
'弃置两张牌',
|
||||||
|
],list=['重铸','出杀','弃牌','无法选择'];
|
||||||
|
let result=[];
|
||||||
|
for(let current of [player,target]){
|
||||||
|
let list1=list.slice(),choiceList1=choiceList.slice();
|
||||||
|
list1=list1.filter(control=>{
|
||||||
|
if(control=='无法选择') return false;
|
||||||
|
if(control=='重铸') return current.countCards('he',card=>current.canRecast(card));
|
||||||
|
if(control=='出杀') return current.countCards('he',card=>card.name=='sha'&¤t.hasUseTarget(card));
|
||||||
|
if(control=='弃牌') return current.countCards('he',card=>lib.filter.cardDiscardable(card,current))>1;
|
||||||
|
});
|
||||||
|
choiceList1=choiceList.filter(control=>{
|
||||||
|
if(choiceList.indexOf(control)==0) return current.countCards('he',card=>current.canRecast(card));
|
||||||
|
if(choiceList.indexOf(control)==1) return current.countCards('he',card=>card.name=='sha'&¤t.hasUseTarget(card));
|
||||||
|
if(choiceList.indexOf(control)==2) return current.countCards('he',card=>lib.filter.cardDiscardable(card,current))>1;
|
||||||
|
});
|
||||||
|
if(list1.length){
|
||||||
|
if(list1.length==1) result.push(list.indexOf(list1[0]));
|
||||||
|
else{
|
||||||
|
let result1=yield current.chooseControl(list1).set('ai',()=>{
|
||||||
|
const current=_status.event.player;
|
||||||
|
const controls=_status.event.controls.slice();
|
||||||
|
if(controls.includes('出杀')&¤t.countCards('hs',card=>card.name=='sha'&¤t.hasValueTarget(card))) return '出杀';
|
||||||
|
if(controls.includes('重铸')) return '重铸';
|
||||||
|
return '弃牌';
|
||||||
|
}).set('choiceList',choiceList1);
|
||||||
|
if(result1.control) result.push(list.indexOf(result1.control));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else result.push(3);
|
||||||
|
}
|
||||||
|
player.popup(list[result[0]]);
|
||||||
|
target.popup(list[result[1]]);
|
||||||
|
for(let current of [player,target]){
|
||||||
|
switch(list[result[current==player?0:1]]){
|
||||||
|
case '重铸':
|
||||||
|
let result2=yield current.chooseCard('he','请重铸一张牌',(card,player)=>player.canRecast(card),true);
|
||||||
|
if(result2.bool) current.recast(result2.cards);
|
||||||
|
break;
|
||||||
|
case '出杀':
|
||||||
|
current.chooseToUse({
|
||||||
|
prompt:'请使用一张【杀】',
|
||||||
|
filterCard:function(card,player){
|
||||||
|
if(card.name!='sha') return false;
|
||||||
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
ai1:function(card){
|
||||||
|
return _status.event.player.getUseValue(card);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case '弃牌':
|
||||||
|
current.chooseToDiscard('he',2,true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:function(item,player){
|
||||||
|
return get.order({name:'sha'},player)-0.1;
|
||||||
|
},
|
||||||
|
result:{
|
||||||
|
target:function(player,target){
|
||||||
|
const att=get.attitude(player,target);
|
||||||
|
if(target.countCards('hs',card=>{
|
||||||
|
return card.name=='sha'&&game.hasPlayer(current=>{
|
||||||
|
return target.canUse(card,current)&&get.effect(current,card,target,target)>0&&get.effect(current,card,target,player)>0;
|
||||||
|
});
|
||||||
|
})) return 3;
|
||||||
|
if(att>0) return 2;
|
||||||
|
if(!target.countCards('h')) return get.sgn(att)+(att==0?1:0);
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
group:'olchanshuang_end',
|
||||||
|
subSkill:{
|
||||||
|
end:{
|
||||||
|
audio:'olchanshuang',
|
||||||
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.getHistory('lose',evt=>{
|
||||||
|
if(evt.type=='discard'){
|
||||||
|
var evtx=evt.getl(player);
|
||||||
|
return evtx&&evtx.cards2.length==2;
|
||||||
|
}
|
||||||
|
return evt.getParent(2).name=='recast';
|
||||||
|
}).length||player.getHistory('useCard',evt=>evt.card.name=='sha').length;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
content:function*(event,map){
|
||||||
|
let num=0,player=map.player;
|
||||||
|
if(player.getHistory('lose',evt=>evt.getParent(2).name=='recast').length) num++;
|
||||||
|
if(player.getHistory('useCard',evt=>evt.card.name=='sha').length) num++;
|
||||||
|
if(player.getHistory('lose',evt=>{
|
||||||
|
if(evt.type=='discard'){
|
||||||
|
var evtx=evt.getl(player);
|
||||||
|
return evtx&&evtx.cards2.length==2;
|
||||||
|
}
|
||||||
|
}).length) num++;
|
||||||
|
if(num&&player.countCards('he',card=>player.canRecast(card))){
|
||||||
|
let result=yield player.chooseCard('he','请重铸一张牌',(card,player)=>player.canRecast(card),true);
|
||||||
|
if(result.bool) yield player.recast(result.cards);
|
||||||
|
}
|
||||||
|
if(num>1&&player.countCards('he',card=>card.name=='sha'&&player.hasUseTarget(card))){
|
||||||
|
yield player.chooseToUse({
|
||||||
|
prompt:'请使用一张【杀】',
|
||||||
|
filterCard:function(card,player){
|
||||||
|
if(card.name!='sha') return false;
|
||||||
|
return lib.filter.filterCard.apply(this,arguments);
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
ai1:function(card){
|
||||||
|
return _status.event.player.getUseValue(card);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(num>2&&player.countCards('he',card=>lib.filter.cardDiscardable(card,player))) yield player.chooseToDiscard('he',2,true);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
olzhanjin:{
|
||||||
|
audio:2,
|
||||||
|
locked:true,
|
||||||
|
group:'olzhanjin_guanshi',
|
||||||
|
subSkill:{
|
||||||
|
guanshi:{
|
||||||
|
audio:'olzhanjin',
|
||||||
|
nobracket:true,
|
||||||
|
equipSkill:true,
|
||||||
|
trigger:{player:['shaMiss','eventNeutralized']},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!player.hasEmptySlot(1)||!lib.card.guanshi) return false;
|
||||||
|
if(event.type!='card'||event.card.name!='sha'||!event.target.isIn()) return false;
|
||||||
|
return player.countCards('he')>=2;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
"step 0"
|
||||||
|
player.chooseToDiscard(get.prompt('olzhanjin_guanshi'),'弃置两张牌,令'+get.translation(trigger.card)+'强制命中',2,'he').set('ai',function(card){
|
||||||
|
var evt=_status.event.getTrigger();
|
||||||
|
if(get.attitude(evt.player,evt.target)<0){
|
||||||
|
if(player.needsToDiscard()) return 15-get.value(card);
|
||||||
|
if(evt.baseDamage+evt.extraDamage>=Math.min(2,evt.target.hp)) return 8-get.value(card);
|
||||||
|
return 5-get.value(card);
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}).set('complexCard',true).logSkill='olzhanjin_guanshi';
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
if(event.triggername=='shaMiss'){
|
||||||
|
trigger.untrigger();
|
||||||
|
trigger.trigger('shaHit');
|
||||||
|
trigger._result.bool=false;
|
||||||
|
trigger._result.result=null;
|
||||||
|
}
|
||||||
|
else trigger.unneutralize();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
attackRange:function(player,num){
|
||||||
|
if(lib.card.guanshi&&player.hasEmptySlot(1)) return num-lib.card.guanshi.distance.attackFrom;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
directHit_ai:true,
|
||||||
|
skillTagFilter:function(player,tag,arg){
|
||||||
|
if(player._olzhanjin_guanshi_temp||!player.hasEmptySlot(1)||!lib.card.guanshi) return;
|
||||||
|
player._guanshi_temp=true;
|
||||||
|
var bool=(get.attitude(player,arg.target)<0&&arg.card&&arg.card.name=='sha'&&player.countCards('he',card=>{
|
||||||
|
return card!=arg.card&&(!arg.card.cards||!arg.card.cards.includes(card))&&get.value(card)<5;
|
||||||
|
})>1);
|
||||||
|
delete player._olzhanjin_guanshi_temp;
|
||||||
|
return bool;
|
||||||
|
},
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target){
|
||||||
|
if(player==target&&get.subtype(card)=='equip1'){
|
||||||
|
if(get.equipValue(card)<=get.equipValue({name:'guanshi'})) return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//曹宇
|
//曹宇
|
||||||
olgongjie:{
|
olgongjie:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -764,9 +967,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
return cards.length-player.countCards('h')>0;
|
return cards.length-player.countCards('h')>0;
|
||||||
},
|
},
|
||||||
|
usable:1,
|
||||||
logTarget:()=>_status.currentPhase,
|
logTarget:()=>_status.currentPhase,
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
player.tempBanSkill('olxiangxv',null,false);
|
|
||||||
player.when({global:'phaseEnd'}).then(()=>{
|
player.when({global:'phaseEnd'}).then(()=>{
|
||||||
if(target&&target.isIn()){
|
if(target&&target.isIn()){
|
||||||
var num=target.countCards('h')-player.countCards('h');
|
var num=target.countCards('h')-player.countCards('h');
|
||||||
|
@ -26815,6 +27018,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olxiangxv_info:'当你的手牌数变为全场最少时,你可以获得以下效果:本回合结束时,将手牌数调整至与当前回合角色手牌数相同(至多摸至五张)。',
|
olxiangxv_info:'当你的手牌数变为全场最少时,你可以获得以下效果:本回合结束时,将手牌数调整至与当前回合角色手牌数相同(至多摸至五张)。',
|
||||||
olxiangzuo:'襄胙',
|
olxiangzuo:'襄胙',
|
||||||
olxiangzuo_info:'限定技,当你进入濒死状态时,你可以交给当前回合角色任意张牌,若如此做,若你本回合已对其发动过〖恭节〗或〖相胥〗,你回复等量的体力。',
|
olxiangzuo_info:'限定技,当你进入濒死状态时,你可以交给当前回合角色任意张牌,若如此做,若你本回合已对其发动过〖恭节〗或〖相胥〗,你回复等量的体力。',
|
||||||
|
liyi:'李异',
|
||||||
|
olchanshuang:'缠双',
|
||||||
|
olchanshuang_info:'①出牌阶段限一次,你可以选择一名其他角色。你与其依次选择〖缠双③〗的一项,然后你与其依次执行各自选择的项。②结束阶段,若X大于0,你执行〖缠双③〗的前X项(X为你本回合以任意形式执行过的〖缠双③〗的选项数)。③选项:1.重铸一张牌;2.使用一张【杀】;3.弃置两张牌。',
|
||||||
|
olzhanjin:'蘸金',
|
||||||
|
olzhanjin_guanshi:'贯石斧(蘸金)',
|
||||||
|
olzhanjin_info:'锁定技,若你有空置的武器栏,则你视为装备【贯石斧】。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
|
|
@ -9182,7 +9182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
huaping:{
|
huaping:{
|
||||||
audio:'huaping',
|
audio:2,
|
||||||
trigger:{global:'die'},
|
trigger:{global:'die'},
|
||||||
limited:true,
|
limited:true,
|
||||||
skillAnimation:true,
|
skillAnimation:true,
|
||||||
|
@ -13859,7 +13859,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcjinjie:'尽节',
|
dcjinjie:'尽节',
|
||||||
dcjinjie_info:'当一名角色进入濒死状态时,可以令其摸一张牌。然后若你本轮未进行过回合,你可以弃置X张手牌令其回复1点体力(X为本轮你发动过〖尽节〗的次数)。',
|
dcjinjie_info:'当一名角色进入濒死状态时,可以令其摸一张牌。然后若你本轮未进行过回合,你可以弃置X张手牌令其回复1点体力(X为本轮你发动过〖尽节〗的次数)。',
|
||||||
dcjue:'举讹',
|
dcjue:'举讹',
|
||||||
dcjue_info:'准备阶段,你可以视为对一名未受伤的角色使用一张【杀】。',
|
dcjue_info:'准备阶段,你可以视为对一名体力值或手牌数大于你的角色使用一张【杀】。',
|
||||||
dc_tengfanglan:'滕芳兰',
|
dc_tengfanglan:'滕芳兰',
|
||||||
dcluochong:'落宠',
|
dcluochong:'落宠',
|
||||||
dcluochong_info:'一轮游戏开始时,你可以弃置任意名角色区域里的共计至多[4]张牌,然后若你以此法弃置了一名角色的至少三张牌,则你方括号内的数字-1。',
|
dcluochong_info:'一轮游戏开始时,你可以弃置任意名角色区域里的共计至多[4]张牌,然后若你以此法弃置了一名角色的至少三张牌,则你方括号内的数字-1。',
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 60 KiB |
Loading…
Reference in New Issue