v1.9.110.10.1

This commit is contained in:
Spmario233 2021-11-26 22:55:37 +08:00
parent bc1c650a56
commit f5df594890
24 changed files with 566 additions and 445 deletions

View File

@ -959,8 +959,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
muniu_skill:'木牛',
muniu_skill7:'木牛流马',
muniu_skill_bg:'辎',
muniu_info:'出牌阶段限一次,你可以将一张手牌扣置于你装备区里的【木牛流马】下,若如此做,你可以将此装备移动到一名其他角色的装备区里;你可以将此装备牌下的牌如手牌般使用或打出。',
muniu_skill_info:'出牌阶段限一次,你可以将一张手牌扣置于你装备区里的【木牛流马】下,若如此做,你可以将此装备移动到一名其他角色的装备区里;你可以将此装备牌下的牌如手牌般使用或打出。',
muniu_info:'出牌阶段限一次,你可以将一张手牌扣置于你装备区里的【木牛流马】下,然后你可以将【木牛流马】移动到一名其他角色的装备区里。②你可以将【木牛流马】下的牌如手牌般使用或打出。③当你失去装备区的【木牛流马】后,你刷新〖木牛流马①〗的使用次数限制。若此牌不是因置入其他角色的装备区而失去的,则你将【木牛流马】下的所有牌置入弃牌堆。',
muniu_skill_info:'将一张手牌扣置于你装备区里的【木牛流马】下,然后可以将此装备移动到一名其他角色的装备区里。',
},
list:[
["heart",4,"sha","fire"],

View File

@ -83,6 +83,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
global:'icesha_skill',
range:{attack:1},
selectTarget:1,
cardPrompt:function(card){
if(card.nature=='stab') return '出牌阶段对你攻击范围内的一名角色使用。其须使用一张【闪】且在此之后需弃置一张手牌没有则不弃。否则你对其造成1点伤害。';
if(lib.linked.contains(card.nature)) return '出牌阶段对你攻击范围内的一名角色使用。其须使用一张【闪】否则你对其造成1点'+get.translation(card.nature)+'属性伤害。';
return '出牌阶段对你攻击范围内的一名角色使用。其须使用一张【闪】否则你对其造成1点伤害。';
},
yingbian_prompt:function(card){
var str='';
if(get.cardtag(card,'yingbian_hit')){
@ -211,6 +216,17 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target.damage(get.nature(event.card),event.baseDamage+event.extraDamage);
event.result={bool:true}
event.trigger('shaDamage');
event.finish();
}
else{
event.trigger('shaMiss');
}
"step 6"
if((!result||!result.bool)&&!event.unhurt){
target.damage(get.nature(event.card),event.baseDamage+event.extraDamage);
event.result={bool:true}
event.trigger('shaDamage');
event.finish();
}
else{
event.result={bool:false}
@ -1856,16 +1872,25 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
content:function(){
if(!_status.qinglong_guozhan) _status.qinglong_guozhan=[];
_status.qinglong_guozhan=[];
_status.qinglong_guozhan.add(trigger);
game.countPlayer2(function(current){
current.addTempSkill('qinglong_guozhan_mingzhi');
});
game.broadcast(function(list){
_status.qinglong_guozhan=list;
},_status.qinglong_guozhan.map(function(i){
return {targets:i.targets};
}))
var next=game.createEvent('qinglong_guozhan');
event.next.remove(next);
trigger.after.add(next);
next.setContent(function(){
_status.qinglong_guozhan.remove(event.parent);
game.broadcast(function(list){
_status.qinglong_guozhan=list;
},_status.qinglong_guozhan.map(function(i){
return {targets:i.targets};
}));
});
}
},
@ -2775,7 +2800,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
hanbing_skill_info:'当你使用杀造成伤害时,你可以防止此伤害,改为依次弃置目标角色的两张牌。',
renwang_info:'锁定技,黑色的杀对你无效',
renwang_skill_info:'锁定技,黑色的杀对你无效',
sha_info:'出牌阶段,对攻击范围内的一名角色使用,令其使用一张【闪】,否则受到一点伤害。',
sha_info:'出牌阶段,对你攻击范围内的一名角色使用。其须使用一张【闪】否则你对其造成1点伤害。',
shan_info:'抵消一张【杀】',
tao_info:'出牌阶段,对自己使用,回复一点体力。',
bagua_info:'当你需要使用或打出一张【闪】时,你可以进行一次判定,若判定结果为红色,视为你使用或打出了一张【闪】。',

View File

@ -333,7 +333,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
direct:true,
equipSkill:true,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.getParent().name=='sha'&&player.countCards('h')>0;
return event.card&&event.card.name=='sha'&&event.getParent().name=='sha'&&player.isDamaged()&&player.countCards('h')>0;
},
content:function(){
'step 0'
@ -649,7 +649,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
tuixinzhifu:'推心置腹',
tuixinzhifu_info:'出牌阶段对一名距离为1的其他角色使用。你获得其区域内的至多两张牌然后交给其等量的牌。',
yitianjian:'倚天剑',
yitianjian_info:'当你因执行【杀】的效果而造成伤害后,你可弃置一张手牌然后回复1点体力。',
yitianjian_info:'当你因执行【杀】的效果而造成伤害后,若你已受伤,则你可弃置一张手牌然后回复1点体力。',
qixingbaodao:'七星宝刀',
qixingbaodao_info:'锁定技。当此牌进入你的装备区后,你弃置装备区和判定区内的所有其他牌。',
duanjian:'断剑',
@ -727,7 +727,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',10,'tuixinzhifu'],
['diamond',11,'tao',null,['gifts']],
['diamond',12,'shan'],
['diamond',13,'','stab'],
['diamond',13,'sha','stab'],
],
}
});

View File

@ -906,9 +906,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var type=get.type(i);
if((type=='basic'||type=='trick')) list.push([type,'',i]);
if(i=='sha'){
list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
for(var j of lib.inpile_nature) list.push([type,'',i,j]);
}
}
if(list.length){
@ -2394,9 +2392,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.filterCard({name:name,isCard:true},player,event)){
list.push([type,'',name]);
if(name=='sha'){
list.push([type,'',name,'fire']);
list.push([type,'',name,'thunder']);
list.push([type,'',name,'ice']);
for(var j of lib.inpile_nature) list.push([type,'',i,j]);
}
}
}
@ -4000,9 +3996,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var type=get.type(i);
if(type=='basic'||type=='trick') list.push([type,'',i]);
if(i=='sha'){
list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
for(var j of lib.inpile_nature) list.push([type,'',i,j]);
}
}
player.chooseButton(['是否视为使用一张基本牌或普通锦囊牌?',[list,'vcard']]).set('filterButton',function(button){
@ -7077,12 +7071,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var name=lib.inpile[i];
if(name=='du'||name=='shan') continue;
if(name=='sha'){
list.addArray([
['基本','','sha'],
['基本','','sha','fire'],
['基本','','sha','thunder'],
['基本','','sha','ice'],
]);
list.push(['基本','','sha']);
for(var j of lib.inpile_nature) list.push(['基本','',name,j]);
}
else if(get.type(name)=='basic'){
list.push(['基本','',name]);
@ -7343,9 +7333,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(name=='boss_mengpohuihun') continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','',name,j]);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -9936,9 +9924,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.junktaoluan.contains(name)) continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','',name,j]);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);

View File

@ -4005,9 +4005,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
forced:true,
filter:function(event,player){
if(player.isLinked()) return false;
if(event.name=='link') return true;
return (event.name!='phase'||game.phaseNumber==0);
if(event.name=='link') return player.isLinked();
return (event.name!='phase'||game.phaseNumber==0)&&!player.isLinked();
},
content:function(){
if(trigger.name!='link') player.link(true);

View File

@ -3467,23 +3467,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin2'},
forced:true,
filter:function(event,player){
if(!event.card||get.color(event.card)=='none') return false;
if(!event.card||get.suit(event.card)=='none') return false;
var all=player.getAllHistory('damage');
if(!all.length) return false;
return all[all.length-1].card&&get.color(all[all.length-1].card)==get.color(event.card);
return all[all.length-1].card&&get.suit(all[all.length-1].card)==get.suit(event.card);
},
content:function(){
trigger.cancel();
},
group:'mjmouzhi_mark',
intro:{content:'上次受到伤害的花色:$'},
ai:{
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
var color=get.color(card);
var color=get.suit(card);
if(color=='none') return;
var all=target.getAllHistory('damage');
if(!all.length||!all[all.length-1].card) return;
if(get.color(all[all.length-1].card)==color) return 'zerotarget';
if(get.suit(all[all.length-1].card)==color) return 'zerotarget';
}
},
},
},
subSkill:{
mark:{
trigger:{player:'damage'},
silent:true,
firstDo:true,
content:function(){
if(!trigger.card||get.suit(trigger.card)=='none') player.unmarkSkill('mjmouzhi');
else{
player.markSkill('mjmouzhi');
game.broadcastAll(function(player,suit){
if(player.marks.mjmouzhi) player.marks.mjmouzhi.firstChild.innerHTML=get.translation(suit);
player.storage.mjmouzhi=suit;
},player,get.suit(trigger.card))
}
},
},
@ -6170,9 +6189,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var name=lib.inpile[i];
if(name=='sha'){
if(event.filterCard({name:name},player,event)) list.push(['基本','','sha']);
if(event.filterCard({name:name,nature:'fire'},player,event)) list.push(['基本','','sha','fire']);
if(event.filterCard({name:name,nature:'thunder'},player,event)) list.push(['基本','','sha','thunder']);
if((get.mode()!='guozhan'||_status.mode=='yingbian')&&event.filterCard({name:name,nature:'ice'},player,event)) list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature){
if(event.filterCard({name:name,nature:j},player,event)) list.push(['基本','','sha',j]);
}
}
else if(get.type2(name)=='trick'&&event.filterCard({name:name},player,event)) list.push(['锦囊','',name]);
else if(get.type(name)=='basic'&&event.filterCard({name:name},player,event)) list.push(['基本','',name]);
@ -10834,9 +10853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=[];
if(event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
if(event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']);
@ -11656,9 +11673,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=[];
if(event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
if(event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']);
@ -13577,7 +13592,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mjchenshi_target:'陈势',
mjchenshi_info:'当有角色使用【兵临城下】指定第一个目标后,其可交给你一张牌,并将牌堆的顶三张牌中所有不为【杀】的牌置入弃牌堆;当有角色成为【兵临城下】的目标后,其可交给你一张牌,然后将牌堆顶三张牌中所有的【杀】置入弃牌堆。',
mjmouzhi:'谋识',
mjmouzhi_info:'锁定技,当你受到伤害时,若伤害渠道对应的牌和你上次受到的伤害色相同,则你防止此伤害。',
mjmouzhi_info:'锁定技,当你受到伤害时,若伤害渠道对应的牌和你上次受到的伤害色相同,则你防止此伤害。',
zhangzhongjing:'张机',
jishi:'济世',
jishi_info:'锁定技。①当你使用的牌结算完成后,若你未因此牌造成过伤害,则你将此牌对应的所有实体牌置于仁库中。②当有牌不因溢出而离开仁库时,你摸一张牌。',

View File

@ -90,8 +90,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i of lib.inpile){
if(i!='du'&&get.type(i)=='basic'&&event.filterCard({name:i,cards:hs},player,event)) vcards.push(['基本','',i]);
if(i=='sha'){
var list=['fire','thunder','ice'];
for(var j of list){
for(var j of lib.inpile_nature){
if(event.filterCard({name:i,nature:j,cards:hs},player,event)) vcards.push(['基本','',i,j]);
}
}
@ -242,9 +241,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.canUse('sha',current);
})){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
}
for(var i of lib.inpile_nature){
if(lib.filter.cardUsable({name:'sha',nature:i},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse({name:'sha',nature:i},current);
})){
list.push(['基本','','sha',i]);
}
}
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current);

View File

@ -909,6 +909,8 @@ window.noname_character_rank={
'sp_chendong',
'sp_zongyu',
'yangyan',
'zuofen',
're_kanze',
],
bm:[
'diy_xizhenxihong',
@ -1762,6 +1764,7 @@ window.noname_character_rank={
'fuqian',
'yangyan',
'yangzhi',
'zuofen',
],
junk:[
'sunshao',

View File

@ -2253,7 +2253,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var ai2=function(target){
var player=_status.event.player;
if(get.attitude(player,target)<=0) return 0;
var list=[null,'fire','thunder','ice','juedou'];
var list=[null,'juedou'].concat(lib.inpile_nature);
if(target.hasSkill('ayato_zenshen')) list.push('kami');
var num=Math.max.apply(Math,list.map(function(i){
if(i=='juedou') return target.getUseValue({name:'juedou',isCard:true},false);
@ -2293,7 +2293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return target!=player&&target!=_status.event.target;
},'选择'+get.translation(target)+'使用【杀】或【决斗】的目标',true).set('target',target).set('ai',function(target){
var evt=_status.event;
var list=[null,'fire','thunder','ice','juedou'];
var list=[null,'juedou'].concat(lib.inpile_nature);
if(evt.target.hasSkill('ayato_zenshen')) list.push('kami')
return Math.max.apply(Math,list.map(function(i){
var card={name:'sha',isCard:true};
@ -2309,9 +2309,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.target2=target2;
player.line(target2);
game.log(player,'选择了',target2);
var list=[null,'fire','thunder','ice'];
var list=lib.inpile_nature.slice(0);
list.unshift(null);
var vcards=[];
if(target.hasSkill('ayato_zenshen')) list.push('kami');
if(target.hasSkill('ayato_zenshen')) list.add('kami');
for(var i of list){
if(target.canUse({name:'sha',isCard:true,nature:i},target2,false)) vcards.push(['基本','','sha',i]);
}
@ -2321,6 +2322,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event._result={index:1};
}
else if(!target.countCards('h')){
event.vcards=vcards;
event._result={index:0};
}
else{
@ -5858,7 +5860,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(i=='shan'||i=='wuxie') continue;
var type=get.type(i);
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true;
if(i=='sha'&&(event.filterCard({name:i,nature:'ice'},player,event)||event.filterCard({name:i,nature:'fire'},player,event)||event.filterCard({name:i,nature:'thunder'},player,event))) return true;
if(i=='sha'){
for(var j of lib.inpile_nature){
if(event.filterCard({name:i,nature:j},player,event)) return true;
}
}
}
return false;
},
@ -5870,9 +5876,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var type=get.type(i);
if(type=='basic'||type=='trick') list.push([type,'',i]);
if(i=='sha'){
list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']);
list.push([type,'',i,'ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
}
return ui.create.dialog('蛊惑',[list,'vcard']);
@ -7959,9 +7963,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return player.canUse('sha',current);
})){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
}
for(var i of lib.inpile_nature){
if(lib.filter.cardUsable({name:'sha',nature:i},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse({name:'sha',nature:i},current);
})){
list.push(['基本','','sha',i]);
}
}
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current);

View File

@ -7038,9 +7038,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(name=='wuxie') continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);

View File

@ -5,10 +5,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao','wolongfengchu','ol_xinxianying','panshu','huangzu','huangchengyan','gaogan','duxi','ol_dengzhi','ol_wangrong'],
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ganfuren","bianfuren"],
sp_sibi:["yangxiu","chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi'],
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan'],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng"],
sp_liesi:['mizhu'],
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_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang'],
sp_wanglang:['wanglang'],
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren","bianfuren"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
@ -16,12 +24,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
character:{
zuofen:['female','jin',3,['zhaosong','lisi']],
ol_wangrong:['female','qun',3,['olfengzi','oljizhan','olfusong']],
ol_dengzhi:['male','shu',3,['olxiuhao','olsujian']],
bianfuren:['female','wei',3,['fuwei','yuejian']],
duxi:['male','wei',3,['quxi','bixiong']],
gaogan:['male','qun',4,['juguan']],
sp_mifangfushiren:['male','shu',4,['mffengshi']],
huangchengyan:['male','qun',3,['guanxu','yashi']],
huangzu:['male','qun',4,['wangong']],
panshu:['female','wu',3,['weiyi','jinzhi']],
@ -144,13 +152,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
zuofen:'左芬约253年300年4月23日出土墓志作左棻字兰芝齐国临淄今山东临淄西晋诗人。少好学善属文。为晋武帝贵人。今存诗、赋、颂、赞、诔等20余篇大都为应诏而作《离思赋》最著名。原有集已失传。',
duxi:'杜袭(生卒年不详),字子绪,颍川郡定陵县(今河南省襄城县)人。三国时期魏国重臣,东汉末年颍川“四大名士”之一,济阴太守杜根的孙子。建安初年,投奔司空曹操,历任西鄂县令、议郎、丞相军咨祭酒、魏王侍中、丞相长史、驸马都尉。魏文帝时期,出任督军粮御史、尚书,累封武平亭侯。魏明帝时期,担任大将军曹真和司马懿的军师,抵御蜀国进攻,拜太中大夫,受封平阳乡侯。卒于任上,获赠少府,谥号为定。',
gaogan:'高干(?~206年字元才陈留郡圉县今河南杞县圉镇人。东汉末年并州割据将领蜀郡太守高躬之子、大将军袁绍外甥。出身陈留高氏才志弘邈文武秀出。早年联合荀谌游说韩馥让出冀州牧。袁绍平定河北后以为并州牧。官渡之战时在西线配合作战。因曹操早有准备没有实质进展。袁绍死后袁谭、袁尚与曹操大战于黎阳郡时联合郭援攻打平阳郡为马腾为首关中将领所败郭援为庞德所斩。袁尚败走中山郡后出降于曹操仍为并州刺史。建安十年兴兵反曹固守壶关成功抵挡乐进进攻。得知曹操亲征后留下别将守城亲往匈奴呼厨泉求救没有成功。引兵攻略河东郡屡为钟繇、张既所败。建安十一年投奔荆州刘表。途经上洛时为上洛都尉捕斩之。',
huangchengyan:'黄承彦,生卒年不详,汉末三国时期沔阳名士,诸葛亮岳父,黄月英之父。南郡大士蔡讽的女婿,与襄阳名士上层社会圈子:庞统(凤雏)、庞德公、司马徽、徐庶等人交好。《襄阳记》:黄承彦者,高爽开列,为沔阳名士,谓诸葛孔明曰:“闻君择妇,身有丑女,黄头黑色,而才堪配。”孔明许,即载送之。时人以为笑乐,乡里为之谚曰:“莫作孔明择妇,正得阿承丑女。”',
panshu:'潘淑252年会稽句章今浙江省宁波市是吴大帝孙权的皇后吴少帝孙亮的母亲。和孙权是中国历代帝后中年龄差距较大的一对。潘淑少时与姐姐俱没入织室容媚有宠拜为夫人生有一子孙亮。赤乌十三年250年孙权立孙亮为皇太子翌年251年立潘淑为皇后。神凤元年252年暴崩合葬蒋陵。世称潘淑为江东绝色有神女之称。',
jiben:'吉本—218年东汉末年太医令。建安二十三年春正月时金祎自以世为汉臣睹汉祚将移谓可季兴乃喟然发愤遂与太医令本、少府耿纪、司直韦晃、本子邈、邈弟穆等结谋攻许杀曹公长史王必南援刘备。后必营必与典农中郎将严匡讨斩之。在《三国演义》中吉本在此为吉平或吉太因字称平故又唤作吉平。曾参与董承等人刺杀曹操的计划并企图在为曹操治病时毒死曹操但被曹操识破而遭处刑。之后其子吉邈和吉穆都参与了由耿纪和韦晃等人所发动的反叛曹操的行动但都失败被杀。',
zongyu:'宗预264年字德艳 荆州南阳郡安众县今河南省南阳市人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州又受辟为丞相诸葛亮手下主簿升任参军、右中郎将。诸葛亮逝世后宗预受命出使孙吴得到孙权的赞赏。迁后将军出督永安又升任征西大将军并受封关内侯。公元258年景耀元年因病回成都受任镇军大将军。蜀汉灭亡后宗预随后主刘禅徙往洛阳在中途病逝。宗预为人坦率耿直多次出使孙吴并深得孙权的敬重为吴、汉两国同盟的巩固作出了一定的贡献。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
mengda:'孟达(?228字子度本字子敬因刘备的叔父名叫刘子敬为避讳而改字。扶风郡郿人三国时期人物。本为刘璋属下后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备于是投奔曹魏。此后劝降刘封未果。在魏官至散骑常侍、建武将军封平阳亭侯。此后又欲反曹魏而归蜀汉事败而死。',
wolongfengchu:'沙比武将,懒得复制粘贴,自己去看诸葛亮和庞统的介绍吧。',
caoshuang:'曹爽249年2月9日字昭伯沛国谯县今安徽亳州市人。三国时期魏国权臣大司马曹真长子。曹爽体态肥胖凭借宗室身份出入宫廷交好太子曹叡。魏明帝即位起家员外散骑侍郎累迁城门校尉、散骑常侍转武卫将军。太和五年231年袭封邵陵侯。景初三年239年魏明帝曹叡病危拜大将军、假黄钺与司马懿并为托孤大臣。少帝曹芳即位加侍中改封武安侯。势倾四海声震天下。任用私人专权乱政侵吞公产。伐蜀失败虚耗国力。起居逾制软禁郭太后。正始十年太傅司马懿发动高平陵政变掌握魏国大权。曹爽失去大将军职务以谋反之罪处死夷灭三族。',
@ -393,6 +401,205 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//左棻
zhaosong:{
trigger:{global:'phaseDrawAfter'},
logTarget:'player',
filter:function(event,player){
if(player==event.player||!event.player.countCards('h')) return false;
var types=['basic','trick','equip'];
for(var i of types){
if(event.player.hasMark('zhaosong_'+i)) return false;
}
return true;
},
prompt2:'令其交给你一张手牌,并根据类型获得对应的标记',
content:function(){
'step 0'
event.target=trigger.player;
event.target.chooseCard('h',true,get.translation(player)+'发动了【诏颂】;请交给其一张手牌');
'step 1'
if(result.bool){
var card=result.cards[0];
player.gain(card,target,'give');
var type=get.type2(card,target);
if(lib.skill['zhaosong_'+type]){
target.addSkill('zhaosong_'+type);
target.addMark('zhaosong_'+type);
}
}
},
subSkill:{
basic:{
marktext:'颂',
intro:{
name:'诏颂(颂)',
name2:'颂',
content:'当你使用【杀】选择唯一目标时你可移去“颂”并为此【杀】增加至多两个目标。然后若此【杀】造成的伤害小于2你失去1点体力。',
},
trigger:{player:'useCard2'},
direct:true,
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_basic')&&event.card.name=='sha'&&
event.targets.length==1&&game.hasPlayer(function(current){
return current!=player&&current!=event.targets[0]&&lib.filter.targetEnabled2(event.card,player,current);
});
},
content:function(){
'step 0'
player.chooseTarget([1,2],'是否弃置“颂”标记?','为'+get.translation(trigger.card)+'增加至多两个目标',function(card,player,target){
var evt=_status.event.getTrigger();
return target!=player&&target!=evt.targets[0]&&lib.filter.targetEnabled2(evt.card,player,target);
}).set('ai',function(target){
var evt=_status.event.getTrigger();
return get.effect(target,evt.card,evt.player,evt.player);
});
'step 1'
if(result.bool){
if(player!=event.player&&!player.isOnline()) game.delayx();
player.addTempSkill('zhaosong_shaloss');
}
else event.finish();
'step 2'
var targets=result.targets;
player.logSkill('zhaosong_basic',targets);
player.removeMark('zhaosong_basic',1);
player.removeSkill('zhaosong_basic');
trigger.targets.addArray(targets);
trigger.zhaosong_basic=true;
},
},
shaloss:{
trigger:{player:'useCardAfter'},
forced:true,
charlotte:true,
filter:function(event,player){
if(!event.zhaosong_basic) return false;
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==event.card) num+=evt.num;
});
return num<2;
},
content:function(){
player.loseHp();
},
},
trick:{
marktext:'诔',
intro:{
name:'诏颂(诔)',
name2:'诔',
content:'当你进入濒死状态时你可移去“诔”并减1点体力上限然后将体力回复至1点并摸一张牌。',
},
trigger:{player:'dying'},
prompt:'是否弃置“诔”标记?',
prompt2:'减1点体力上限然后回复体力至1点并摸一张牌。',
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_trick')&&player.hp<1;
},
check:function(event,player){
if(player.maxHp<2||player.countCards('h',function(card){
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,event.player,'unchanged','cardSavable',player);
if(mod!='unchanged') return mod;
var savable=get.info(card).savable;
if(typeof savable=='function') savable=savable(card,player,event.player);
return savable;
})>=1+event.num-event.player.hp) return false;
return true;
},
content:function(){
'step 0'
player.removeMark('zhaosong_trick',1);
player.removeSkill('zhaosong_trick');
player.loseMaxHp();
'step 1'
if(player.hp<1) player.recover(1-player.hp);
player.draw();
},
},
equip:{
marktext:'赋',
intro:{
name:'诏颂(赋)',
name2:'赋',
content:'出牌阶段开始时,你可移去“赋”并弃置一名角色区域内的一张牌,然后可以令其摸一张牌。',
},
trigger:{player:'phaseUseBegin'},
direct:true,
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_equip')&&game.hasPlayer(function(current){
return current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'hej');
});
},
content:function(){
'step 0'
player.chooseTarget('是否弃置“赋”标记?','弃置一名角色区域内的一张牌,然后可以令其摸一张牌',function(card,player,current){
return current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'hej');
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target)>0?2:1;
return get.effect(target,{name:'guohe_copy'},player,player)*att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('zhaosong_equip',target);
player.removeMark('zhaosong_equip',1);
player.removeSkill('zhaosong_equip');
player.discardPlayerCard(target,true,'hej');
}
else event.finish();
'step 2'
if(target.isIn()){
player.chooseBool('是否令'+get.translation(target)+'摸一张牌?').set('ai',function(){
var evt=_status.event.getParent();
return get.attitude(evt.player,evt.target)>0;
});
}
else event.finish();
'step 3'
if(result.bool) target.draw();
},
},
},
},
lisi:{
audio:2,
trigger:{player:'useCardAfter'},
direct:true,
filter:function(event,player){
if(player==_status.currentPhase||!event.cards.filterInD().length) return false;
var hs=player.countCards('h');
return game.hasPlayer(function(current){
return current!=player&&current.countCards('h')<=hs;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('lisi'),'将'+get.translation(trigger.cards.filterInD())+'交给一名手牌数不大于你的其他角色',function(card,player,target){
return target!=player&&target.countCards('h')<=player.countCards('h');
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('lisi',target);
target.gain(trigger.cards.filterInD(),'gain2');
}
},
},
//王荣
olfengzi:{
audio:2,
@ -1189,63 +1396,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
},
},
//糜芳傅士仁
mffengshi:{
audio:2,
audioname:['sp_mifangfushiren'],
trigger:{
player:'useCardToPlayered',
target:'useCardToTargeted',
},
direct:true,
preHidden:true,
filter:function(event,player){
if(event.player==event.target||event.targets.length!=1) return false;
if(player!=event.player&&!player.hasSkill('mffengshi')) return false;
return event.player.countCards('h')>event.target.countCards('h')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
event.source=trigger.player;
event.target=(player==trigger.target?trigger.player:trigger.target);
var str;
if(player==trigger.player) str='弃置自己的和该角色';
else str='令其弃置其与你的';
var next=trigger.player.chooseBool('是否对'+get.translation(trigger.target)+'发动【锋势】?',str+'的各一张牌,然后令'+get.translation(trigger.card)+'的伤害+1').set('ai',function(){
var player=_status.event.getParent().player;
var target=_status.event.getParent().target;
var viewer=_status.event.player;
if(viewer==player){
if(get.attitude(viewer,target)>=0) return false;
if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
var card=_status.event.getTrigger().card;
if((get.tag(card,'damage')||target.countCards('he',(card)=>get.value(card,target)>6))&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
return false;
}
else{
if(get.attitude(viewer,player)>=0) return false;
if(!get.tag(card,'damage')) return false;
if(viewer.countCards('he')>player.countCards('he')) return true;
if(viewer.countCards('he',(card)=>get.value(card,target)>6)) return false;
return true;
}
});
if(player==next.player) next.setHiddenSkill('mffengshi');
'step 1'
if(result.bool){
if(player==source) player.logSkill('mffengshi',target);
else{
player.logSkill('mffengshi');
source.line(player,'green');
}
if(get.tag(trigger.card,'damage')) trigger.getParent().baseDamage++;
player.chooseToDiscard('he',true);
}
else event.finish();
'step 2'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
},
},
//黄承彦
guanxu:{
enable:'phaseUse',
@ -1488,9 +1638,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.type(i)=='basic'&&event.filterCard({name:i},player,event)){
list.push(['基本','',i]);
if(i=='sha'){
list.push(['基本','',i,'fire']);
list.push(['基本','',i,'thunder']);
list.push(['基本','',i,'ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
}
}
@ -2185,9 +2333,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.filterCard({name:name,isCard:true},player,event)){
list.push([type,'',name]);
if(name=='sha'){
list.push([type,'',name,'fire']);
list.push([type,'',name,'thunder']);
list.push([type,'',name,'ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
}
}
@ -11449,11 +11595,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{global:'useCardToTargeted'},
filter:function(event,player){
return event.card.name=='sha'&&get.distance(player,event.target)<=1;
return event.card.name=='sha'&&get.distance(player,event.target)<=1&&event.target.isIn();
},
check:function(event,player){
return get.attitude(player,event.target)>=0;
},
logTarget:'target',
content:function(){
"step 0"
player.draw();
@ -12431,13 +12578,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=player.getCards('h');
target.gain(cards,player,'giveAuto');
event.num=cards.length;
game.delay();
"step 3"
target.chooseCard('选择还给'+get.translation(player)+'的牌',true,event.num);
game.delay(0.2);
var he=target.getCards('he');
if(!he.length) event.finish();
else if(he.length<=num) event._result={cards:he};
else target.chooseCard('选择还给'+get.translation(player)+'的牌',true,event.num,'he');
"step 4"
player.gain(result.cards,target,'giveAuto');
game.delay();
},
audio:2,
},
@ -15264,7 +15411,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongbai:'OL董白',
zhaoxiang:'赵襄',
heqi:'贺齐',
kanze:'阚泽',
kanze:'OL阚泽',
dongyun:'董允',
mazhong:'马忠',
huangfusong:'皇甫嵩',
@ -15926,9 +16073,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guanxu_info:'出牌阶段限一次你可以观看一名其他角色的手牌然后你可将其中一张手牌与牌堆顶5张牌中的一张交换。若如此做你弃置其手牌中3张花色相同的牌。',
yashi:'雅士',
yashi_info:'当你受到一次伤害后你可选择一项1. 令伤害来源的非锁定技无效直到其下个回合开始2. 对一名其他角色发动〖观虚〗。',
sp_mifangfushiren:'糜芳傅士仁',
mffengshi:'锋势',
mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。',
olwuniang:'武娘',
olwuniang_info:'每回合限一次当你于回合内使用的【杀】结算完成后若此【杀】对应的目标数为1则你可以令目标角色选择是否对你使用使用【杀】。你于其选择结算完成后摸一张牌且本回合内使用【杀】的次数上限+1。',
olxushen:'许身',
@ -15963,8 +16107,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oljizhan_info:'摸牌阶段开始时,你可以放弃摸牌。你展示牌堆顶的一张牌,并猜测牌堆顶的下一张牌点数大于或小于此牌。若你猜对,你可继续重复此流程。然后你获得以此法展示的所有牌。',
olfusong:'赋颂',
olfusong_info:'当你死亡时,你可以选择一名体力上限大于你的其他角色。其选择获得〖吉占〗或〖丰姿〗。',
zuofen:'左棻',
zhaosong:'诏颂',
zhaosong_info:'一名其他角色的摸牌阶段结束时,若其没有因〖诏颂〗而获得的标记,则你可令其正面向上交给你一张手牌。根据此牌的类型,该角色获得对应的标记和效果:<br>锦囊牌“诔”标记。当拥有者进入濒死状态时其可弃置所有“诔”减1点体力上限将体力回复至1点并摸1张牌。<br>装备牌:“赋”标记。拥有者的出牌阶段开始时,其可弃置所有“赋”,弃置一名角色区域内的一张牌,然后可令其摸一张牌。<br>基本牌“颂”标记。当使用者使用仅指定一个目标的【杀】时其可弃置“颂”为此【杀】增加至多两个目标。然后若此【杀】造成的伤害小于2其失去1点体力。',
lisi:'离思',
lisi_info:'每当你于回合外使用牌的置入弃牌堆时,你可将其交给一名手牌数不大于你的其他角色。',
sp_default:"常规",
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',
sp_tianzhu:'天柱·势冠一方',
sp_nvshi:'女史·留史巾帼',
sp_shaowei:'少微·能人异士',
sp_huben:'虎贲·勇冠三军',
sp_liesi:'列肆·豪商巨贾',
sp_default:"天同·同名异势",
sp_qifu:'灯愿·祈福武将',
sp_wanglang:'八萬·饶舌凤鹛',
sp_tongque:"铜雀台",
sp_zhongdan:"忠胆英杰",
sp_guozhan:"国战",

View File

@ -4,6 +4,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
sp_mifangfushiren:['male','shu',4,['mffengshi']],
re_kanze:['male','wu',3,['xiashu','rekuanshi']],
re_nanhualaoxian:['male','qun',4,['gongxiu','jinghe']],
zhouyi:['female','wu',3,['zhukou','mengqing']],
lvlingqi:['female','qun',4,['guowu','zhuangrong']],
@ -106,10 +108,51 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_niujin','re_dongzhao','re_dongcheng','yangwan','heyan','re_panshu','zhanghu','dufuren','zhouyi','re_nanhualaoxian','lvlingqi'],
sp_binglin:['re_niujin',"sp_mifangfushiren"],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','re_dongcheng','yangwan','heyan','re_panshu','zhanghu','dufuren','zhouyi','re_nanhualaoxian','lvlingqi','re_kanze'],
}
},
skill:{
//阚泽
rekuanshi:{
audio:'kuanshi',
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('rekuanshi')).set('animate',false).set('ai',function(target){
var att=get.attitude(player,target);
if(target.hp<3) att/=1.5;
return att;
});
'step 1'
if(result.bool){
player.logSkill('rekuanshi');
player.addTempSkill('rekuanshi_effect',{player:'phaseBegin'});
player.storage.rekuanshi_effect=result.targets[0];
game.delayx();
}
},
subSkill:{
effect:{
audio:'kuanshi',
trigger:{global:'damageEnd'},
forced:true,
charlotte:true,
logTarget:'player',
filter:function(event,player){
if(event.player!=player.storage.rekuanshi_effect||event.player.isHealthy()) return false;
var history=event.player.getHistory('damage',null,event),num=0;
for(var i of history) num+=i.num;
return num>1&&(num-event.num)<2;
},
content:function(){
trigger.player.recover();
player.removeSkill('rekuanshi_effect');
}
},
},
},
//南华老仙
jinghe:{
enable:'phaseUse',
@ -10287,7 +10330,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"enterGame",
},
forced:true,
filter:function(){
filter:function(event){
return game.players.length>1&&(event.name!='phase'||game.phaseNumber==0);
},
content:function(){
@ -10426,6 +10469,63 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
//糜芳傅士仁
mffengshi:{
audio:2,
audioname:['sp_mifangfushiren'],
trigger:{
player:'useCardToPlayered',
target:'useCardToTargeted',
},
direct:true,
preHidden:true,
filter:function(event,player){
if(event.player==event.target||event.targets.length!=1) return false;
if(player!=event.player&&!player.hasSkill('mffengshi')) return false;
return event.player.countCards('h')>event.target.countCards('h')&&event.target.countCards('he')>0;
},
content:function(){
'step 0'
event.source=trigger.player;
event.target=(player==trigger.target?trigger.player:trigger.target);
var str;
if(player==trigger.player) str='弃置自己的和该角色';
else str='令其弃置其与你的';
var next=trigger.player.chooseBool('是否对'+get.translation(trigger.target)+'发动【锋势】?',str+'的各一张牌,然后令'+get.translation(trigger.card)+'的伤害+1').set('ai',function(){
var player=_status.event.getParent().player;
var target=_status.event.getParent().target;
var viewer=_status.event.player;
if(viewer==player){
if(get.attitude(viewer,target)>=0) return false;
if(player.countCards('he',(card)=>get.value(card,player)<5)) return true;
var card=_status.event.getTrigger().card;
if((get.tag(card,'damage')||target.countCards('he',(card)=>get.value(card,target)>6))&&player.countCards('he',(card)=>get.value(card,player)<7)) return true;
return false;
}
else{
if(get.attitude(viewer,player)>=0) return false;
if(!get.tag(card,'damage')) return false;
if(viewer.countCards('he')>player.countCards('he')) return true;
if(viewer.countCards('he',(card)=>get.value(card,target)>6)) return false;
return true;
}
});
if(player==next.player) next.setHiddenSkill('mffengshi');
'step 1'
if(result.bool){
if(player==source) player.logSkill('mffengshi',target);
else{
player.logSkill('mffengshi');
source.line(player,'green');
}
if(get.tag(trigger.card,'damage')) trigger.getParent().baseDamage++;
player.chooseToDiscard('he',true);
}
else event.finish();
'step 2'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
},
},
},
card:{
pyzhuren_heart:{
@ -10575,6 +10675,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dufuren:'杜夫人(生卒年不详),东汉末年至三国时人。有异色,原为吕布将秦宜禄之妻,生子秦朗。后为曹操纳为妾,又生曹林、曹衮、金乡公主。',
lvlingqi:'吕玲绮虚拟人物源于日本光荣株式会社现光荣特库摩公司旗下游戏《真·三国无双》系列初次登场于《真三国无双7猛将传》。吕布的女儿寂寥而威风凛凛的战姬发挥着不亚于父亲的武艺非常勇敢地身先士卒立于前线。虽然有着能够直面困难的坚强意志却由于过去的经历而有着非常害怕孤独的一面。',
zhouyi:'周夷,游卡桌游旗下产品《三国杀》自行杜撰的人物。设定为周瑜的妹妹,和周瑜一同征战。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -10654,6 +10755,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gexuan:['gexuan','tw_gexuan'],
panshu:['panshu','re_panshu'],
nanhualaoxian:['re_nanhualaoxian','nanhualaoxian'],
kanze:['re_kanze','kanze'],
},
translate:{
lijue:"李傕",
@ -11175,7 +11277,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yise:'异色',
yise_info:'其他角色获得你的牌后若这些牌中有红色牌你可令其回复1点体力有黑色牌其下次受到【杀】造成的伤害时此伤害+1。',
shunshi:'顺世',
shunshi_info:'准备阶段开始时,或当你受到伤害后,你可将一张牌交给一名其他角色并获得如下效果直到你的回合结束:摸牌阶段的额定摸牌数+1使用【杀】的次数上限+1手牌上限+1。',
shunshi_info:'准备阶段开始时,或当你受到伤害后,你可将一张牌交给一名不为伤害来源的其他角色并获得如下效果直到你的回合结束:摸牌阶段的额定摸牌数+1使用【杀】的次数上限+1手牌上限+1。',
lvlingqi:'吕玲绮',
guowu:'帼舞',
guowu_info:'出牌阶段开始时,你可以展示全部手牌,根据你展示的类型数,你获得对应效果:至少一类,从弃牌堆获得一张【杀】;至少两类,此阶段使用牌无距离限制;至少三类,此阶段使用【杀】或普通锦囊牌可以多指定两个目标。',
@ -11213,6 +11315,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
nhguanyue_info:'结束阶段,你可以观看牌堆顶两张牌,然后获得其中—张,另一张放回牌堆顶。',
nhyanzheng:'言政',
nhyanzheng_info:'准备阶段若你的手牌数大于1你可以保留一张手牌并弃置其余的牌然后选择至多等于弃牌数量的角色对这些角色各造成1点伤害。',
re_kanze:'阚泽',
rekuanshi:'宽释',
rekuanshi_info:'结束阶段你可以选择一名角色。你获得如下一次性效果直到你下回合开始当其于一回合内受到第2点伤害后其回复1点体力。',
sp_mifangfushiren:'糜芳傅士仁',
mffengshi:'锋势',
mffengshi_info:'当你使用牌指定唯一目标后,或成为其他角色使用牌的唯一目标后,若此牌使用者的手牌数大于此牌目标的手牌数,则此牌的使用者可令你弃置自己和对方的各一张牌,并令此牌的伤害值+1。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -11228,6 +11336,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_caizijiaren:'才子佳人',
sp_qihuan:'戚宦之争',
sp_zhongyuan:'中原狼烟',
sp_binglin:'兵临城下',
sp_decade:'其他新服武将',
},
};

View File

@ -2213,7 +2213,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 4-get.value(card)
},
filterTarget:function(card,player,target){
if(!target.hasSex('female')) return false;
if(!target.hasSex('male')) return false;
if(target.hp>=target.maxHp) return false;
if(target==player) return false;
return true;

View File

@ -1240,9 +1240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.xintaoluan.contains(name)) continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -3932,9 +3930,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.taoluan&&player.storage.taoluan.contains(name)) continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);
@ -4501,9 +4497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var name=lib.inpile[i];
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
else if(get.type(name)=='basic') list.push(['基本','',name]);
else if(player.countMark('xindanxin')>0&&get.type(name)=='trick') list.push(['锦囊','',name]);
@ -4595,8 +4589,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}};
if(event.filterCard(card,player,event)) list.push([type,'',i]);
if(i=='sha'){
var natures=['fire','thunder','ice'];
for(var j of natures){
for(var j of lib.inpile_nature){
card.nature=j;
if(event.filterCard(card,player,event)) list.push([type,'',i,j]);
}
@ -7335,9 +7328,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=[];
if(!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
}
if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']);

View File

@ -6,7 +6,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{
yangzhi:['female','jin',3,['wanyi','maihuo']],
yangyan:['female','jin',3,['xuanbei','xianwan']],
zuofen:['female','jin',3,['zhaosong','lisi'],['unseen']],
ol_huaxin:['male','wei',3,['caozhao','olxibing']],
zhongyan:['female','jin',3,['bolan','yifa']],
weiguan:['male','jin',3,['zhongyun','shenpin']],
@ -38,13 +37,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.hasCard(function(i){
return player.getStorage('wanyi2').length<4&&player.hasCard(function(i){
return get.is.yingbian(i);
},'hs');
},
chooseButton:{
dialog:function(){
return ui.create.dialog('婉嫕',[['zhujinqiyuan','chuqibuyi','shuiyanqijunx','dongzhuxianji'],'vcard'],'unseen');
dialog:function(event,player){
var list=['zhujinqiyuan','chuqibuyi','shuiyanqijunx','dongzhuxianji'];
list.removeArray(player.getStorage('wanyi2'))
return ui.create.dialog('婉嫕',[list,'vcard'],'hidden');
},
filter:function(button,player){
return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
@ -66,6 +67,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 1/Math.max(1,get.value(card));
},
position:'hs',
onuse:function(links,player){
if(!player.storage.wanyi2) player.storage.wanyi2=[];
player.storage.wanyi2.add(links.card.name);
player.addTempSkill('wanyi2');
},
}
},
prompt:function(links){
@ -75,6 +81,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{backup:{}},
ai:{order:8,result:{player:1}},
},
wanyi2:{onremove:true},
maihuo:{
audio:2,
trigger:{target:'useCardToTargeted'},
@ -84,6 +91,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.cards.filterInD().length>0&&event.targets.length==1&&
event.player.isIn()&&(!event.player.storage.maihuo_effect||!event.player.storage.maihuo_effect.length);
},
prompt2:function(event){
return '令'+get.translation(event.card)+'暂时对你无效';
},
check:function(event,player){
return get.effect(player,event.card,event.player,player)<0;
},
@ -102,15 +112,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
charlotte:true,
filter:function(event,player){
if(!player.storage.maihuo_effect||!player.storage.maihuo_effect.length) return false;
var card=player.storage.maihuo_effect[0];
if(card.name!='sha') card=get.autoViewAs({
name:'sha',
isCard:true,
},player.storage.maihuo_effect);
var target=player.storage.maihuo_target;
if(!card||!target||!target.isIn()||!player.canUse(card,target,false)) return false;
return true;
return player.storage.maihuo_effect&&player.storage.maihuo_effect.length>0;
},
content:function(){
var card=player.storage.maihuo_effect[0];
@ -119,8 +121,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
isCard:true,
},player.storage.maihuo_effect);
var target=player.storage.maihuo_target;
player.useCard(card,target,player.storage.maihuo_effect,false);
delete player.storage.maihuo_effect;
if(target.isIn()&&player.canUse(card,target,null,true)){
player.useCard(card,target,player.storage.maihuo_effect);
delete player.storage.maihuo_effect;
}
player.removeSkill('maihuo_effect');
},
intro:{
@ -171,7 +175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCardAfter'},
usable:1,
filter:function(event,player){
return event.card.yingbian&&event.cards.filterInD().length>0;
return (event.card.yingbian||get.is.yingbian(event.card))&&event.cards.filterInD().length>0;
},
direct:true,
content:function(){
@ -304,204 +308,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
zhaosong:{
trigger:{global:'phaseUseBegin'},
logTarget:'player',
filter:function(event,player){
if(player==event.player||!event.player.countCards('h')) return false;
var types=['basic','trick','equip'];
for(var i of types){
if(event.player.hasMark('zhaosong_'+i)) return false;
}
return true;
},
prompt2:'令其交给你一张手牌,并根据类型获得对应的标记',
content:function(){
'step 0'
event.target=trigger.player;
event.target.chooseCard('h',true,get.translation(player)+'发动了【诏颂】;请交给其一张手牌');
'step 1'
if(result.bool){
var card=result.cards[0];
player.gain(card,target,'give');
var type=get.type2(card,target);
if(lib.skill['zhaosong_'+type]){
target.addSkill('zhaosong_'+type);
target.addMark('zhaosong_'+type);
}
}
},
subSkill:{
basic:{
marktext:'颂',
intro:{
name:'诏颂(颂)',
name2:'颂',
content:'当你使用【杀】选择唯一目标时你可移去“颂”并为此【杀】增加至多两个目标。然后若此【杀】造成的伤害小于2你失去1点体力。',
},
trigger:{player:'useCard2'},
direct:true,
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_basic')&&event.card.name=='sha'&&
event.targets.length==1&&game.hasPlayer(function(current){
return current!=player&&current!=event.targets[0]&&lib.filter.targetEnabled2(event.card,player,current);
});
},
content:function(){
'step 0'
player.chooseTarget([1,2],'是否弃置“颂”标记?','为'+get.translation(trigger.card)+'增加至多两个目标',function(card,player,target){
var evt=_status.event.getTrigger();
return target!=player&&target!=evt.targets[0]&&lib.filter.targetEnabled2(evt.card,player,target);
}).set('ai',function(target){
var evt=_status.event.getTrigger();
return get.effect(target,evt.card,evt.player,evt.player);
});
'step 1'
if(result.bool){
if(player!=event.player&&!player.isOnline()) game.delayx();
player.addTempSkill('zhaosong_shaloss');
}
else event.finish();
'step 2'
var targets=result.targets;
player.logSkill('zhaosong_basic',targets);
player.removeMark('zhaosong_basic',1);
player.removeSkill('zhaosong_basic');
trigger.targets.addArray(targets);
trigger.zhaosong_basic=true;
},
},
shaloss:{
trigger:{player:'useCardAfter'},
forced:true,
charlotte:true,
filter:function(event,player){
if(!event.zhaosong_basic) return false;
var num=0;
player.getHistory('sourceDamage',function(evt){
if(evt.card==event.card) num+=evt.num;
});
return num<2;
},
content:function(){
player.loseHp();
},
},
trick:{
marktext:'诔',
intro:{
name:'诏颂(诔)',
name2:'诔',
content:'当你进入濒死状态时你可移去“诔”并减1点体力上限然后将体力回复至1点并摸一张牌。',
},
trigger:{player:'dying'},
prompt:'是否弃置“诔”标记?',
prompt2:'减1点体力上限然后回复体力至1点并摸一张牌。',
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_trick')&&player.hp<1;
},
check:function(event,player){
if(player.maxHp<2||player.countCards('h',function(card){
var mod2=game.checkMod(card,player,'unchanged','cardEnabled2',player);
if(mod2!='unchanged') return mod2;
var mod=game.checkMod(card,player,event.player,'unchanged','cardSavable',player);
if(mod!='unchanged') return mod;
var savable=get.info(card).savable;
if(typeof savable=='function') savable=savable(card,player,event.player);
return savable;
})>=1+event.num-event.player.hp) return false;
return true;
},
content:function(){
'step 0'
player.removeMark('zhaosong_trick',1);
player.removeSkill('zhaosong_trick');
player.loseMaxHp();
'step 1'
if(player.hp<1) player.recover(1-player.hp);
player.draw();
},
},
equip:{
marktext:'赋',
intro:{
name:'诏颂(赋)',
name2:'赋',
content:'出牌阶段开始时,你可移去“赋”并弃置一名角色区域内的一张牌,然后可以令其摸一张牌。',
},
trigger:{player:'phaseUseBegin'},
direct:true,
charlotte:true,
onremove:true,
filter:function(event,player){
return player.hasMark('zhaosong_equip')&&game.hasPlayer(function(current){
return current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'hej');
});
},
content:function(){
'step 0'
player.chooseTarget('是否弃置“赋”标记?','弃置一名角色区域内的一张牌,然后可以令其摸一张牌',function(card,player,current){
return current.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,current);
},'hej');
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target)>0?2:1;
return get.effect(target,{name:'guohe_copy'},player,player)*att;
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('zhaosong_equip',target);
player.removeMark('zhaosong_equip',1);
player.removeSkill('zhaosong_equip');
player.discardPlayerCard(target,true,'hej');
}
else event.finish();
'step 2'
if(target.isIn()){
player.chooseBool('是否令'+get.translation(target)+'摸一张牌?').set('ai',function(){
var evt=_status.event.getParent();
return get.attitude(evt.player,evt.target)>0;
});
}
else event.finish();
'step 3'
if(result.bool) target.draw();
},
},
},
},
lisi:{
audio:2,
trigger:{player:'useCardAfter'},
direct:true,
filter:function(event,player){
if(player==_status.currentPhase||!event.cards.filterInD().length) return false;
var hs=player.countCards('h');
return game.hasPlayer(function(current){
return current!=player&&current.countCards('h')<=hs;
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt('lisi'),'将'+get.translation(trigger.cards.filterInD())+'交给一名手牌数不大于你的其他角色',function(card,player,target){
return target!=player&&target.countCards('h')<=player.countCards('h');
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('lisi',target);
target.gain(trigger.cards.filterInD(),'gain2');
}
},
},
caozhao:{
audio:2,
enable:'phaseUse',
@ -1417,6 +1223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return num>target.hp||num<Math.min(5,target.hp);
});
},
hiddenSkill:true,
content:function(){
'step 0'
player.chooseTarget('请选择【慧容】的目标','令一名角色将手牌数摸至/弃置至与其体力值相同(至多摸至五张)',true,function(card,player,target){
@ -2696,7 +2503,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cheliji:'彻里吉是历史小说《三国演义》中的虚构人物,西羌国王。蜀相诸葛亮伐魏,魏都督曹真驰书赴羌,国王彻里吉即命雅丹丞相与越吉元帅起羌兵一十五万、并战车直扣西平关。后军大败,越吉亡,雅丹被俘,亮将所获羌兵及车马器械,尽给还雅丹,俱放回国。彻里吉感蜀恩义,与之结盟。正史中没有关于彻里吉的记载。',
weiguan:'卫瓘220年291年字伯玉。河东郡安邑县今山西省夏县人。三国曹魏后期至西晋初年重臣、书法家曹魏尚书卫觊之子。卫瓘出身官宦世家年轻时仕官于曹魏历任尚书郎、散骑常侍、侍中、廷尉等职。后以镇西军司、监军身份参与伐蜀战争。蜀汉亡后与钟会一道逮捕邓艾钟会谋反时又成功平息叛乱命田续杀邓艾父子。回师后转任督徐州诸军事、镇东将军封菑阳侯。西晋建立后历任青州、幽州刺史、征东大将军等职成功化解北方边境威胁因功进爵菑阳公。后入朝为尚书令、侍中又升任司空领太子少傅。后逊位拜太保。晋惠帝即位后与贾皇后对立终在政变中满门遇害享年七十二岁。卫瓘善隶书及章草。不仅兼工各体还能学古人之长是颇有创意的书法家。唐朝张怀瓘《书断》中评其章草为“神品”。',
zhongyan:' 钟琰 (?—?年)颍川人,王浑之妻。生卒年不详,约魏末晋初间前后在世。王浑的妻子钟琰,是颍川人,为魏太傅钟繇的曾孙女,父亲钟徽,为黄门郎。她平时广泛阅读各种书籍,因此几岁的时候就能撰写文章。她聪慧弘雅,善于啸咏,她的礼仪法度,为中表所推崇,她写有文集五卷。',
zuofen:'左芬约253年300年4月23日出土墓志作左棻字兰芝齐国临淄今山东临淄西晋诗人。少好学善属文。为晋武帝贵人。今存诗、赋、颂、赞、诔等20余篇大都为应诏而作《离思赋》最著名。原有集已失传。',
yangyan:'杨艳238年274年8月25日字琼芝弘农郡华阴县今陕西省华阴市晋武帝司马炎第一任皇后曹魏通事郎杨炳之女。自幼父母双亡为舅舅赵俊所养跟随继母段氏生活。聪明贤慧善于书法天生丽质娴熟女红嫁给了世子司马炎。泰始元年265年晋武帝即位建立西晋。泰始二年266年杨艳受册为皇后深得晋武帝宠幸生下三子三女包括晋惠帝司马衷。泰始十年274年去世时年三十七陪葬于峻阳陵谥号武元皇后。',
yangzhi:'杨芷259年292年3月6日字季兰小字男胤弘农郡华阴县今陕西省华阴市晋武帝司马炎第二任皇后东汉太尉杨震幼子杨奉后裔东汉末年东莱太守、蓩亭侯杨众曾孙女西晋太傅杨骏与嫡妻庞氏之女武元皇后杨艳堂妹。咸宁二年276年立为皇后史称“婉嫕有妇德 美映椒房”得宠于晋武帝。生渤海殇王早薨之后再无生育。其父杨骏擅权引起皇后贾南风忌恨贾南风联络汝南王司马亮、楚王司马玮发动政变杀死杨骏并唆使大臣上书状告杨芷谋反让晋惠帝司马衷将其贬为庶人押到金墉城居住。元康二年292年杨芷冻饿而死谥号武悼皇后。',
},
@ -2845,11 +2651,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caozhao_info:'出牌阶段限一次你可展示一张手牌并声明一种未以此法声明过的基本牌或普通锦囊牌令一名体力不大于你的其他角色选择一项令此牌视为你声明的牌或其失去1点体力。然后若此牌声明成功然后你可将其交给一名其他角色。',
olxibing:'息兵',
olxibing_info:'每当你受到其他角色造成的伤害后/对其他角色造成伤害后,你可弃置你或该角色两张牌,然后你们中手牌少的角色摸两张牌,以此法摸牌的角色不能使用牌指定你为目标直到回合结束。',
zuofen:'左棻',
zhaosong:'诏颂',
zhaosong_info:'一名其他角色于其出牌阶段开始时,若其没有标记,你可令其正面向上交给你一张手牌,然后根据此牌的类型,令该角色获得对应的标记:锦囊牌,“诔”标记;装备牌,“赋”标记;基本牌,“颂”标记。进入濒死时,你可弃置"诔"减少一点体力上限回复至1体力并摸1张牌出牌阶段开始时你可弃置“赋”弃置一名角色区域内的一张牌然后可令其摸一张牌你使用仅指定一个目标的【杀】时可弃置“颂”为此【杀】额外选择至多两个目标然后若此【杀】造成的伤害小于2你失去1点体力。',
lisi:'离思',
lisi_info:'每当你于回合外使用牌的置入弃牌堆时,你可将其交给一名手牌数不大于你的其他角色。',
recaiwang:'才望',
recaiwang_info:'①当你使用或打出牌响应其他角色使用的牌或其他角色使用或打出牌响应你使用的牌后若这两张牌颜色相同则你可以弃置对方的一张牌。②若你的手牌数为1则你可以将该手牌当做【闪】使用或打出。③若你的装备区牌数为1则你可以将该装备当做【无懈可击】使用或打出。④若你的判定区牌数为1则你可以将该延时锦囊牌当做【杀】使用或打出。',
recaiwang_hand:'才望',
@ -2857,14 +2658,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
recaiwang_judge:'才望',
yangyan:'杨艳',
xuanbei:'选备',
xuanbei_info:'①游戏开始时,你从牌堆中获得两张具有应变标签的牌。②每回合限一次。当你使用的满足应变效果的牌结算结束后,你可将此牌对应的所有实体牌交给一名其他角色。',
xuanbei_info:'①游戏开始时,你从牌堆中获得两张具有应变标签的牌。②每回合限一次。当你使用的具有应变标签的牌结算结束后,你可将此牌对应的所有实体牌交给一名其他角色。',
xianwan:'娴婉',
xianwan_info:'①当你需要使用【闪】时,若你的武将牌未横置,则你可以横置武将牌并视为使用【闪】。②当你需要使用【杀】时,若你的武将牌横置,则你可以横置武将牌并视为使用【杀】。',
yangzhi:'杨芷',
wanyi:'婉嫕',
wanyi_info:'出牌阶段,你可以将一张具有应变效果的牌当做【逐近弃远】/【出其不意】/【水淹七军】/【洞烛先机】使用。',
wanyi_info:'每回合每项限一次。出牌阶段,你可以将一张具有应变效果的牌当做【逐近弃远】/【出其不意】/【水淹七军】/【洞烛先机】使用。',
maihuo:'埋祸',
maihuo_info:'①当你成为其他角色使用【杀】的目标后,若此【杀】不为转化牌且有对应的实体牌且其武将牌上没有“祸”且你是此牌的唯一目标,则你可以令此牌对你无效,并将此【杀】置于其武将牌上,称为“祸”。②一名其他角色的出牌阶段开始时,若其武将牌上有“祸”,则其对你使用此“祸”。③当你对有“祸”的其他角色造成伤害后,你移去其“祸”。',
maihuo_info:'①当你成为其他角色使用【杀】的目标后,若此【杀】不为转化牌且有对应的实体牌且其武将牌上没有“祸”且你是此牌的唯一目标,则你可以令此牌对你无效,并将此【杀】置于其武将牌上,称为“祸”。②一名其他角色的出牌阶段开始时,若其武将牌上有“祸”,则其对你使用此“祸”(有距离限制且计入次数限制)。③当你对有“祸”的其他角色造成伤害后,你移去其“祸”。',
yingbian_pack1:'文德武备·理',
yingbian_pack2:'文德武备·备',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.10',
'v1.9.110.10.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -4638,6 +4638,7 @@ window.noname_asset_list=[
'image/character/zhouyi.jpg',
'image/character/yangyan.jpg',
'image/character/yangzhi.jpg',
'image/character/zuofen.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -79,6 +79,7 @@
arenaReady:[],
onfree:[],
inpile:[],
inpile_nature:[],
extensions:[],
extensionPack:{},
cardType:{},
@ -27708,6 +27709,7 @@
_status.mode=state.mode;
_status.renku=state.renku;
lib.inpile=state.inpile;
lib.inpile_nature=state.inpile_nature;
var pos=state.players[observe||game.onlineID].position;
for(var i in state.players){
var info=state.players[i];
@ -27995,7 +27997,7 @@
},
suit:['club','spade','diamond','heart'],
group:['wei','shu','wu','qun','jin','shen'],
nature:['fire','thunder','poison','kami','ice','stab'],
nature:['fire','thunder','kami','ice','stab','poison'],
linked:['fire','thunder','kami','ice'],
groupnature:{
shen:'thunder',
@ -31291,7 +31293,10 @@
else{
node.style.transform='rotate('+(-deg)+'deg) scaleY(0)';
node.style.height=get.xyDistance(from,to)+'px';
if(game.chess){
if(get.objtype(arguments[1])=='div'){
arguments[1].appendChild(node);
}
else if(game.chess){
ui.chess.appendChild(node);
}
else{
@ -45126,19 +45131,24 @@
if(game.bannedcards&&game.bannedcards.contains(lib.card.list[i][2])) continue;
}
lib.inpile.add(lib.card.list[i][2]);
if(lib.card.list[i][2]=='sha'&&lib.card.list[i][3]) lib.inpile_nature.add(lib.card.list[i][3]);
ui.create.card(ui.cardPile).init(lib.card.list[i]);
}
}
lib.inpile.sort(lib.sort.card);
lib.inpile_nature.sort(function(a,b){
return lib.nature.indexOf(a)-lib.nature.indexOf(b);
})
for(var i in _status.cardtag){
if(!_status.cardtag[i].length) delete _status.cardtag[i];
}
game.broadcastAll(function(num,pile,top,cardtag){
game.broadcastAll(function(num,pile,top,cardtag,inpile2){
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num;
lib.inpile=pile;
_status.pileTop=top;
_status.cardtag=cardtag;
},ui.cardPile.childNodes.length,lib.inpile,ui.cardPile.firstChild,_status.cardtag);
lib.inpile_nature=inpile2;
},ui.cardPile.childNodes.length,lib.inpile,ui.cardPile.firstChild,_status.cardtag,lib.inpile_nature);
},
},
click:{
@ -50303,6 +50313,7 @@
roomId:game.roomId,
over:_status.over,
inpile:lib.inpile,
inpile_nature:lib.inpile_nature,
renku:_status.renku,
};
for(var i in lib.playerOL){
@ -51992,7 +52003,7 @@
uiintro.addText(get.colorspan(lib.characterTitle[node.name]));
}
if(node.isUnderControl()||(!game.observe&&game.me&&game.me.hasSkillTag('viewHandcard',null,node,true))){
if(!node.noclick&&(node.isUnderControl()||(!game.observe&&game.me&&game.me.hasSkillTag('viewHandcard',null,node,true)))){
var hs=node.getCards('h');
if(hs.length){
uiintro.add('<div class="text center">手牌</div>');
@ -52644,7 +52655,13 @@
}
}
}
if(lib.translate[name+'_info']){
if(lib.card[name].cardPrompt){
var str=lib.card[name].cardPrompt(node.link||node),placetext=uiintro.add('<div class="text" style="display:inline">'+str+'</div>');
if(str.indexOf('<div class="skill"')!=0){
uiintro._place_text=placetext;
}
}
else if(lib.translate[name+'_info']){
var placetext=uiintro.add('<div class="text" style="display:inline">'+lib.translate[name+'_info']+'</div>');
if(lib.translate[name+'_info'].indexOf('<div class="skill"')!=0){
uiintro._place_text=placetext;

View File

@ -5,7 +5,7 @@ window.noname_package={
shenhua:'神话再临',
xinghuoliaoyuan:'星火燎原',
yijiang:'一将成名',
sp:'SP',
sp:'璀璨星河',
yingbian:'文德武备',
sp2:'系列专属',
extra:'神将',

View File

@ -1,26 +1,26 @@
window.noname_update={
version:'1.9.110.10',
update:'1.9.110.9.4',
version:'1.9.110.10.1',
update:'1.9.110.10',
changeLog:[
'杨艳、杨芷',
'用间篇卡牌包',
'左棻',
'SP包更名',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
'card/sp.js',
//'card/sp.js',
'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yongjian.js',
//'card/zhenfa.js',
'card/zhulu.js',
//'card/zhulu.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
@ -29,7 +29,7 @@ window.noname_update={
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/offline.js',
'character/offline.js',
//'character/old.js',
//'character/ow.js',
'character/rank.js',
@ -51,7 +51,7 @@ window.noname_update={
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'layout/mobile/equip.css',
//'mode/boss.js',
'mode/boss.js',
'mode/brawl.js',
//'mode/chess.js',
//'mode/connect.js',
@ -65,7 +65,7 @@ window.noname_update={
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',
'game/config.js',
//'game/config.js',
'game/package.js',
//'game/asset.js',
//'game/source.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

BIN
image/character/zuofen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@ -7060,7 +7060,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
trigger:{global:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return event.player!=player&&event.player.countCards('he')>1;
return event.player!=player&&(event.player.countCards('h')>1||event.player.countCards('e')>1);
},
content:function(){
'step 0'
@ -7516,8 +7516,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_zuijiu:{
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&
event.parent.name!='_lianhuan'&&event.parent.name!='_lianhuan2';
return event.card&&event.card.name=='sha'&&event.getParent().name=='sha';
},
forced:true,
content:function(){
@ -9402,7 +9401,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_mengtai:'萌态',
boss_mengtai_info:'锁定技,若你的出牌阶段被跳过,你跳过本回合的弃牌阶段;若你的摸牌阶段被跳过,结束阶段开始时,你摸三张牌',
boss_ruizhi:'睿智',
boss_ruizhi_info:'锁定技,其他角色的准备阶段开始时,其选择一张手牌和一张装备区里的牌,然后弃置其余的牌',
boss_ruizhi_info:'锁定技,其他角色的准备阶段开始时,其选择一张手牌和一张装备区里的牌,然后弃置其余的牌',
boss_jingjue:'警觉',
boss_jingjue_info:'每当你于回合外失去牌时你可以进行一次判定若结果为红色你回复1点体力',
boss_renxing:'任性',
@ -9436,7 +9435,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_danshu_info:'每当你于回合外失去牌时你可以进行一次判定若结果为红色你回复1点体力',
boss_zuijiu:'醉酒',
boss_zuijiu_info:'锁定技,你的【杀】额外造成1点伤害',
boss_zuijiu_info:'锁定技,你因【杀】造成伤害时,此伤害+1。',
boss_taiping:'太平',
boss_taiping_info:'锁定技,摸牌阶段摸牌时,你的摸牌数量+2',
boss_suoming:'索命',

View File

@ -1604,12 +1604,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player1=this.player1;
player2=this.player2;
}
var rect1=player1.getBoundingClientRect();
var rect2=player2.getBoundingClientRect();
var left1=rect1.left+rect1.width/2-ui.arena.offsetLeft;
var left2=rect2.left+rect2.width/2-ui.arena.offsetLeft;
var top1=rect1.top+rect1.height/2-ui.arena.offsetTop;
var top2=rect2.top+rect2.height/2-ui.arena.offsetTop;
var createCard=function(wuxie){
var card;
@ -1628,7 +1622,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
var func=function(){
game.linexy([left1,top1,left2,top2]);
game.linexy([
player1.getLeft()+player1.offsetWidth/2,
player1.getTop()+player1.offsetHeight/2,
player2.getLeft()+player2.offsetWidth/2,
player2.getTop()+player2.offsetHeight/2,
],node);
var card=createCard(true);
card.style.left='43px';
card.style.top='58px';
@ -1660,7 +1659,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
setTimeout(function(){
if(!node.showcaseinterval) return;
player2.node.count.innerHTML='1';
game.linexy([left2,top2,left1,top1]);
game.linexy([
player2.getLeft()+player2.offsetWidth/2,
player2.getTop()+player2.offsetHeight/2,
player1.getLeft()+player1.offsetWidth/2,
player1.getTop()+player1.offsetHeight/2,
],node);
var card=createCard(true);
card.style.left='auto';
card.style.right='43px';
@ -2917,7 +2921,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
player1=this.player1;
}
var rect1=player1.getBoundingClientRect();
var func=function(){
var player2=ui.create.player(null,true).init('caiyang');
player2.node.marks.remove();
@ -2932,32 +2935,34 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ui.refresh(player2);
player2.style.opacity=1;
player2.style.transform='scale(0.9)';
var rect2=player2.getBoundingClientRect();
var left1=rect1.left+rect1.width/2-ui.arena.offsetLeft;
var left2=rect2.left+rect2.width/2-ui.arena.offsetLeft;
var top1=rect1.top+rect1.height/2-ui.arena.offsetTop;
var top2=rect2.top+rect2.height/2-ui.arena.offsetTop;
setTimeout(function(){
if(!player2) return;
game.linexy([left1,top1,left2,top2]);
var popup=ui.create.div('.damage');
popup.innerHTML='-1';
popup.dataset.nature='soil';
player2.appendChild(popup);
ui.refresh(popup);
popup.classList.add('damageadded');
popup.listenTransition(function(){
setTimeout(function(){
popup.delete();
},200);
});
game.linexy([
player1.getLeft()+player1.offsetWidth/2,
player1.getTop()+player1.offsetHeight/2,
player2.getLeft()+player2.offsetWidth/2,
player2.getTop()+player2.offsetHeight/2,
],node);
setTimeout(function(){
var popup=ui.create.div('.damage');
popup.innerHTML='-1';
popup.dataset.nature='soil';
player2.appendChild(popup);
ui.refresh(popup);
popup.classList.add('damageadded');
popup.listenTransition(function(){
setTimeout(function(){
popup.delete();
},300);
});
},250)
},600);
setTimeout(function(){
if(!player2) return;
player2.style.transition='all 0.5s';
player2.style.transform='scale(1.2)';
player2.delete();
},1100);
},1200);
};
node.showcaseinterval=setInterval(func,2600);
func();
@ -3487,8 +3492,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
].randomGet();
}
if(init){
player1=ui.create.player(null,true).init(list[0]);
player2=ui.create.player(null,true).init(list[1]);
player1=ui.create.player(null,true);
player2=ui.create.player(null,true);
player1.node.marks.remove();
player1.node.hp.remove();
player2.node.marks.remove();
@ -3513,8 +3518,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
var player3,player4;
if(init){
player3=ui.create.player(null,true).init(list[3]);
player4=ui.create.player(null,true).init(list[2]);
player3=ui.create.player(null,true);
player4=ui.create.player(null,true);
player3.node.marks.remove();
player3.node.hp.remove();
player4.node.marks.remove();
@ -3537,6 +3542,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player3=this.player3;
player4=this.player4;
}
player1.init(list[0]);
player2.init(list[1]);
player3.init(list[3]);
player4.init(list[2]);
},
intro:['双方使用特定的武将,搭配特定的技能,还原特定的经典场景'],
content:{

View File

@ -3379,8 +3379,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
var switchToAuto=function(){
_status.imchoosing=false;
var listn=['普通','fire','thunder'];
if(_status.mode=='yingbian') listn.add('ice');
var listn=['普通'].concat(lib.inpile_nature);
event._result={
bool:true,
suit:lib.suit.randomGet(),
@ -3430,8 +3429,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
table2.style.margin='0';
table2.style.width='100%';
table2.style.position='relative';
var listn=['普通','fire','thunder'];
if(_status.mode=='yingbian') listn.add('ice');
var listn=['普通'].concat(lib.inpile_nature);
for(var i=0;i<listn.length;i++){
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
var nature=listn[i];
@ -9776,13 +9774,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
else{
event.targets=targets;
target.chooseBool('是否发起【拉拢人心】?','令所有其他不为君主/暴露野心家的角色依次选择是否与你结盟。第一个选择加入的人将势力和胜利条件改为与你相同');
source.chooseBool('是否发起【拉拢人心】?','令所有其他不为君主/暴露野心家的角色依次选择是否与你结盟。第一个选择加入的人将势力和胜利条件改为与你相同');
}
'step 4'
if(!result.bool){
if(event.targets2.length) event.goto(3);
return;
}
'step 5'
var target=targets.shift();
event.target=target;
source.line(target,'green');
@ -9791,7 +9790,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(game.players.length<5) return Math.random()<0.5;
return Math.random()<0.3;
});
'step 5'
'step 6'
if(result.bool){
game.broadcastAll(function(player,target){
player.say('加入');
@ -9807,9 +9806,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else{
target.chat('拒绝');
game.delay(1.5);
if(targets.length) event.goto(4);
if(targets.length) event.goto(5);
}
'step 6'
'step 7'
if(event.targets2.length) event.goto(3);
else delete _status.showYexings;
});