あさはかなり!

This commit is contained in:
Spmario233 2020-11-28 10:28:27 +08:00
parent ace76af989
commit aa70ed40ef
59 changed files with 1554 additions and 730 deletions

BIN
audio/die/gz_lukang.mp3 Normal file

Binary file not shown.

BIN
audio/die/simashi.mp3 Normal file

Binary file not shown.

BIN
audio/die/xin_zhuran.mp3 Normal file

Binary file not shown.

BIN
audio/die/yanghuiyu.mp3 Normal file

Binary file not shown.

BIN
audio/skill/baiyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/baiyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/hongyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/hongyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinglve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jinglve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/keshou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/keshou2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/quanfeng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/quanfeng2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shanli1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shanli2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuwei1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuwei2.mp3 Normal file

Binary file not shown.

View File

@ -70,6 +70,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_yuanxi:['male','qun',4,['nsshengyan','nsdaizhan']], ns_yuanxi:['male','qun',4,['nsshengyan','nsdaizhan']],
ns_caoshuang:['male','wei',4,['nsjiquan','nsfuwei']], ns_caoshuang:['male','wei',4,['nsjiquan','nsfuwei']],
ns_lijue:['male','qun','4/6',['nsfeixiong','nscesuan']],
ns_zhangji:['male','qun',4,['nslulve']],
ns_fanchou:['male','qun',4,['nsyangwu']],
ns_jiaxu:['male','qun',3,['nsyice','luanwu']], ns_jiaxu:['male','qun',3,['nsyice','luanwu']],
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']], ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']], ns_chendao:['male','shu',4,['nsjianglie']],
@ -172,7 +175,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"], diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"], diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha"], diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha"],
diy_yongjian:["ns_chendao","yj_caoang","ns_jiaxu"], diy_official:["ns_chendao","yj_caoang","ns_jiaxu","ns_lijue","ns_zhangji","ns_fanchou"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'], diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
}, },
}, },
@ -6364,6 +6367,144 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
nsyangwu:{
enable:'phaseUse',
usable:1,
filterCard:{suit:'heart'},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0;
},
filter:function(event,player){
var info=lib.skill.nsyangwu;
return player.countCards('h',info.filterCard)&&game.hasPlayer(function(target){
return info.filterTarget(null,player,target);
});
},
check:function(card){
var num=0;
var player=_status.event.player;
game.countPlayer(function(current){
if(current!=player&&get.attitude(player,current)<0) num=Math.max(num,current.countCards('h')-player.countCards('h'));
});
return Math.ceil((num+1)/2)*2+4-get.value(card);
},
content:function(){
var num=Math.ceil((target.countCards('h')-player.countCards('h'))/2);
if(num) player.gainPlayerCard(target,true,'h',num,'visible');
},
ai:{
order:4,
result:{
target:function(player,target){
return player.countCards('h')-target.countCards('h');
},
},
},
},
nslulve:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countCards('e')>0&&current.countCards('e')<=player.countCards('he');
});
},
filterCard:function(){
if(ui.selected.targets.length) return false;
return true;
},
position:'he',
selectCard:[1,Infinity],
complexSelect:true,
complexCard:true,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('e')>0&&ui.selected.cards.length==target.countCards('e');
},
check:function(card){
var player=_status.event.player;
if(game.hasPlayer(function(current){
return current!=player&&current.countCards('e')>0&&ui.selected.cards.length==current.countCards('e')&&get.damageEffect(current,player,player)>0;
})) return 0;
switch(ui.selected.cards.length){
case 0:return 8-get.value(card);
case 1:return 6-get.value(card);
case 2:return 3-get.value(card);
default:return 0;
}
},
content:function(){
target.damage('nocard');
},
ai:{
damage:true,
order:2,
result:{
target:function(player,target){
return get.damageEffect(target,player);
}
},
expose:0.3
}
},
nsfeixiong:{
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return player.countCards('h')>0&&game.hasPlayer(function(current){
return current!=player&&player.canCompare(current);
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('nsfeixiong'),function(card,player,target){
return player!=target&&player.canCompare(target);
}).set('ai',function(target){
var player=_status.event.player;
var hs=player.getCards('h').sort(function(a,b){
return b.number-a.number;
});
var ts=target.getCards('h').sort(function(a,b){
return b.number-a.number;
});
if(!hs.length||!ts.length) return 0;
if(hs[0].number>ts[0].number) return get.damageEffect(target,player,player);
return 0;
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('nsfeixiong',target);
player.chooseToCompare(target);
}
else event.finish();
'step 2'
if(!result.tie){
var targets=[player,target];
if(result.bool) targets.reverse();
targets[0].damage(targets[1]);
}
},
},
nscesuan:{
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
'step 0'
trigger.cancel();
event.lose=player.loseMaxHp();
'step 1'
if(event.lose&&event.lose.loseHp) player.draw();
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.player){
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
}
},
},
},
nsyice:{ nsyice:{
trigger:{ trigger:{
player:'loseAfter', player:'loseAfter',
@ -6377,7 +6518,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var evt=event.getParent(); var evt=event.getParent();
if(evt.name!='orderingDiscard'||!evt.relatedEvent||evt.relatedEvent.player!=player||!['useCard','respond'].contains(evt.relatedEvent.name)) return false; if(evt.name!='orderingDiscard'||!evt.relatedEvent||evt.relatedEvent.player!=player||!['useCard','respond'].contains(evt.relatedEvent.name)) return false;
} }
return event.cards.filterInD('d').length>0; return (event.cards2||event.cards).filterInD('d').length>0;
}, },
forced:true, forced:true,
content:function(){ content:function(){
@ -6385,7 +6526,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var evt=trigger.getParent().relatedEvent; var evt=trigger.getParent().relatedEvent;
if((trigger.name=='discard'&&!trigger.delay)||evt&&evt.name=='respond') game.delayx(); if((trigger.name=='discard'&&!trigger.delay)||evt&&evt.name=='respond') game.delayx();
'step 1' 'step 1'
var cards=trigger.cards.filterInD('d'); var cards=(trigger.cards2||trigger.cards).filterInD('d');
player.$gain2(cards); player.$gain2(cards);
if(cards.length==1) event._result={bool:true,links:cards}; if(cards.length==1) event._result={bool:true,links:cards};
else{ else{
@ -12161,10 +12302,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_jiaxu:'贾诩', ns_jiaxu:'贾诩',
nsyice:'遗策', nsyice:'遗策',
nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后你将这些牌以任意顺序置于你的武将牌上称为“策”。若这些“策”中有点数相同的牌则你获得这两张牌中的所有牌将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色则你对一名角色造成1点伤害。', nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后你将这些牌以任意顺序置于你的武将牌上称为“策”。若这些“策”中有点数相同的牌则你获得这两张牌中的所有牌将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色则你对一名角色造成1点伤害。',
ns_lijue:'李傕',
ns_zhangji:'张济',
nsfeixiong:'飞熊',
nsfeixiong_info:'出牌阶段开始时你可以和一名其他角色拼点。赢的角色对没赢的角色造成1点伤害。',
nscesuan:'策算',
nscesuan_info:'锁定技,当你受到伤害时,你防止此伤害并失去一点体力上限。若你因以此法失去体力上限导致体力值减少,则你摸一张牌。',
nslulve:'掳掠',
nslulve_info:'出牌阶段限一次你可以弃置X张牌并选择一名装备区内有牌的其他角色然后对其造成1点伤害X为其装备区内的牌数。',
ns_fanchou:'樊稠',
nsyangwu:'扬武',
nsyangwu_info:'出牌阶段限一次你可以弃置一张♥手牌并选择一名手牌数大于你的其他角色。你观看其手牌并获得其中的X张牌X为其与你手牌数之差的一半且向上取整。',
diy_tieba:'吧友设计', diy_tieba:'吧友设计',
diy_default:'常规', diy_default:'常规',
diy_key:'论外', diy_key:'论外',
diy_yongjian:'其他官方武将', diy_official:'其他官方武将',
diy_yijiang:'设计比赛2020', diy_yijiang:'设计比赛2020',
diy_fakenews:'假新闻', diy_fakenews:'假新闻',
diy_trashbin:'垃圾桶', diy_trashbin:'垃圾桶',

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
mobile:{ mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan"], mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"], mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
mobile_sunben:["re_sunben"], mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun"], mobile_standard:["xin_xiahoudun"],
@ -16,7 +16,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
xin_zhuran:['male','wu',4,['mobiledanshou'],['unseen']], simashi:['male','wei',4,['baiyi','jinglve','shanli']],
yanghuiyu:['female','wei',3,['hongyi','quanfeng']],
xin_zhuran:['male','wu',4,['mobiledanshou']],
xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']], xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']],
dingyuan:['male','qun',4,['beizhu']], dingyuan:['male','qun',4,['beizhu']],
xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']], xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']],
@ -77,6 +79,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']], re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
}, },
characterIntro:{ characterIntro:{
simashi:'司马师208年255年3月23日字子元河内温县今河南省温县人。三国时期曹魏权臣西晋王朝的奠基人之一晋宣帝司马懿与宣穆皇后张春华的长子晋文帝司马昭的同母兄晋武帝司马炎的伯父。司马师沉着坚强雄才大略早年与夏侯玄、何晏齐名。高平陵政变后以功封长平乡侯旋加卫将军。司马懿死后以抚军大将军辅政独揽朝廷大权次年升为大将军。掌权后他制定选拔官吏的法规命百官推荐贤才整顿纲纪使其各有职掌朝野肃然。司马师也有卓越的军事才能曾用计于新城之战击溃吴国诸葛恪的大军。嘉平六年254年魏帝曹芳与中书令李丰等人密谋除司马师事情泄露司马师杀死参与者迫郭太后废曹芳改立高贵乡公曹髦为帝。次年亲自率兵平定毌丘俭、文钦之乱。回师途中病死时年四十八岁谥号“忠武”。后被追尊为晋景王。西晋建立后被追尊为景皇帝庙号世宗。',
yanghuiyu:'羊徽瑜214年278年泰山南城今山东新泰晋景帝司马师第三任妻子。羊徽瑜出身官宦世家泰山羊氏她是南阳太守羊续的孙女上党太守羊衜之女其母为东汉名士左中郎将蔡邕之女、蔡文姬的姐妹。羊徽瑜聪慧贤德嫁给司马师后未有子女。以司马师之弟司马昭的次子司马攸为继子。司马师死后司马攸侍奉羊徽瑜非常孝顺。泰始元年265年司马昭长子司马炎受禅登基建立西晋追谥伯父司马师为景皇帝。泰始二年266年尊奉羊徽瑜为景皇后因居弘训宫故称弘训太后。咸宁四年278年羊徽瑜去世时年六十五岁谥号景献皇后与司马师合葬峻平陵。',
dingyuan:'丁原—189年字建阳兖州泰山郡南城县山东省平邑县郑城镇人。东汉末年军阀官拜执金吾、并州刺史。任并州刺史期间他亲近、善待主簿吕布又调遣部下张杨、张辽等名将到洛阳任职。汉灵帝驾崩后带兵进入洛阳担任执金吾并与大将军何进谋划诛杀十常侍但不久事情败露何进被宦官杀死。在宦官被诛灭之后丁原与军阀董卓在废帝问题上意见不合产生矛盾于是董卓诱使吕布将其杀害其势力亦被吞并。', dingyuan:'丁原—189年字建阳兖州泰山郡南城县山东省平邑县郑城镇人。东汉末年军阀官拜执金吾、并州刺史。任并州刺史期间他亲近、善待主簿吕布又调遣部下张杨、张辽等名将到洛阳任职。汉灵帝驾崩后带兵进入洛阳担任执金吾并与大将军何进谋划诛杀十常侍但不久事情败露何进被宦官杀死。在宦官被诛灭之后丁原与军阀董卓在废帝问题上意见不合产生矛盾于是董卓诱使吕布将其杀害其势力亦被吞并。',
furong:'傅肜róng222年义阳今湖北枣阳三国时蜀汉将领。刘备攻伐吴国时傅肜为别督。后刘备被陆逊击败傅肜率部断后奋战至死。死前怒斥道“吴狗何有汉将军降者”', furong:'傅肜róng222年义阳今湖北枣阳三国时蜀汉将领。刘备攻伐吴国时傅肜为别督。后刘备被陆逊击败傅肜率部断后奋战至死。死前怒斥道“吴狗何有汉将军降者”',
zhengxuan:'郑玄127年200年字康成。北海郡高密县今山东省高密市人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》又从张恭祖学《古文尚书》、《周礼》和《左传》等最后从马融学古文经。游学归里之后复客耕东莱聚徒授课弟子达数千人家贫好学终为大儒。党锢之祸起遭禁锢杜门注疏潜心著述。晚年守节不仕却遭逼迫从军最终病逝于元城年七十四。郑玄治学以古文经学为主兼采今文经学。他遍注儒家经典以毕生精力整理古代文化遗产使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书共百万余言世称“郑学”为汉代经学的集大成者。唐贞观年间列郑玄于二十二“先师”之列配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。', zhengxuan:'郑玄127年200年字康成。北海郡高密县今山东省高密市人。东汉末年儒家学者、经学大师。郑玄曾入太学攻《京氏易》、《公羊春秋》及《三统历》、《九章算术》又从张恭祖学《古文尚书》、《周礼》和《左传》等最后从马融学古文经。游学归里之后复客耕东莱聚徒授课弟子达数千人家贫好学终为大儒。党锢之祸起遭禁锢杜门注疏潜心著述。晚年守节不仕却遭逼迫从军最终病逝于元城年七十四。郑玄治学以古文经学为主兼采今文经学。他遍注儒家经典以毕生精力整理古代文化遗产使经学进入了一个“小统一时代”。著有《天文七政论》、《中侯》等书共百万余言世称“郑学”为汉代经学的集大成者。唐贞观年间列郑玄于二十二“先师”之列配享孔庙。宋代时被追封为高密伯。后人建有郑公祠以纪念。',
@ -298,8 +302,298 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skills:["rw_zhuge_skill"], skills:["rw_zhuge_skill"],
}, },
}, },
characterFilter:{}, characterFilter:{
simashi:function(mode){
return !['boss','chess','tafang','stone','versus'].contains(mode);
},
},
skill:{ skill:{
//司马师夫妇
//垃圾
baiyi:{
enable:'phaseUse',
usable:1,
filterTarget:lib.filter.notMe,
selectTarget:2,
limited:true,
skillAnimation:false,
//animationColor:'thunder',
filter:function(event,player){
return player.isDamaged()&&game.players.length>2;
},
multitarget:true,
multiline:true,
changeSeat:true,
contentBefore:function(){
player.$fullscreenpop('败移','thunder');
},
content:function(){
player.awakenSkill('baiyi');
game.broadcastAll(function(target1,target2){
game.swapSeat(target1,target2);
},targets[0],targets[1])
},
},
jinglve:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
if(player.hasSkill('jinglve2')) return false;
return game.hasPlayer(function(current){
return current!=player&&current.countCards('h')>0;
});
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0;
},
content:function(){
'step 0'
if(!player.storage.jinglve4) player.storage.jinglve4=[];
player.storage.jinglve4.add(target);
player.chooseButton(['选择一张牌作为「死士」',target.getCards('h')],true).set('ai',function(button){
var target=_status.event.getParent().target;
var card=button.link;
var val=target.getUseValue(card);
if(val>0) return val;
return get.value(card);
});
'step 1'
if(result.bool){
player.storage.jinglve2=target;
player.storage.jinglve3=result.links[0];
player.addSkill('jinglve2');
}
},
ai:{
order:12,
result:{
target:-1,
},
},
},
jinglve2:{
mark:true,
intro:{
name:'死士',
mark:function(dialog,content,player){
dialog.addText('记录目标');
dialog.add([content]);
if(player==game.me||player.isUnderControl()){
dialog.addText('死士牌');
dialog.add([player.storage.jinglve3]);
}
},
},
onremove:function(player){
delete player.storage.jinglve2;
delete player.storage.jinglve3;
},
trigger:{global:['dieBegin','loseAfter']},
silent:true,
lastDo:true,
charlotte:true,
filter:function(event,player){
if(event.player!=player.storage.jinglve2) return false;
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&event.getParent().name!='useCard');
},
content:function(){
player.removeSkill('jinglve2');
},
group:'jinglve3',
},
jinglve3:{
audio:'jinglve',
trigger:{global:['loseAfter','useCard','phaseAfter']},
filter:function(event,player){
if(event.player!=player.storage.jinglve2) return false;
if(event.name=='phase') return event.player.getCards('hej').contains(player.storage.jinglve3);
if(!event.cards.contains(player.storage.jinglve3)) return false;
return event.name=='useCard'||get.position(player.storage.jinglve3,true)=='d';
},
forced:true,
charlotte:true,
logTarget:'player',
content:function(){
if(trigger.name=='useCard'){
trigger.all_excluded=true;
trigger.targets.length=0;
}
else{
var next=player.gain(player.storage.jinglve3,trigger.name=='phase'?'giveAuto':'gain2');
if(trigger.name=='phase') next.source=trigger.player;
}
player.removeSkill('jinglve2');
},
},
shanli:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
juexingji:true,
forced:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return player.storage.baiyi&&player.getStorage('jinglve4').length>1;
},
content:function(){
'step 0'
player.awakenSkill('shanli');
player.loseMaxHp();
player.chooseTarget(true,'选择【擅立】的目标').set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
var target=result.targets[0];
event.target=target;
player.line(target,'green');
game.log(player,'拥立',target);
var list=[];
if(!_status.characterlist){
if(_status.connectMode) var list=get.charactersOL();
else{
var list=[];
for(var i in lib.character){
if(lib.filter.characterDisabled2(i)||lib.filter.characterDisabled(i)) continue;
list.push(i);
}
}
game.countPlayer2(function(current){
list.remove(current.name);
list.remove(current.name1);
list.remove(current.name2);
if(current.storage.rehuashen&&current.storage.rehuashen.character) list.removeArray(current.storage.rehuashen.character)
});
_status.characterlist=list;
}
_status.characterlist.randomSort();
var chara=[];
var skills=[];
for(var i of _status.characterlist){
if(i=='key_yuri') continue;
var character=lib.character[i];
if(character&&character[3]){
for(var j of character[3]){
if(skills.contains(j)||j=='yuri_wangxi'||target.hasSkill('j')) continue;
var info=get.info(j);
if(info&&info.zhuSkill){
skills.add(j);
chara.add(i);
continue;
}
}
}
if(skills.length>=3) break;
}
if(!skills.length){event.finish();return}
event.chara=chara;
event.skills=skills;
player.chooseControl(skills).set('dialog',['选择令'+get.translation(target)+'获得一个技能',[chara,'character']]);
'step 2'
target.addSkillLog(result.control);
target.storage.zhuSkill_shanli=[result.control];
target.setAvatarQueue(target.name1||target.name,[event.chara[event.skills.indexOf(result.control)]]);
},
//表情暂时来不及做
},
hongyi:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('he')>=Math.min(2,game.dead.length);
},
selectCard:function(){
return Math.min(2,game.dead.length);
},
filterCard:true,
filterTarget:lib.filter.notMe,
check:function(card){
var num=Math.min(2,game.dead.length);
if(!num) return 1;
if(num==1) return 7-get.value(card);
return 5-get.value(card);
},
position:'he',
content:function(){
player.addTempSkill('hongyi2',{player:'phaseBeginStart'});
player.storage.hongyi2.add(target);
player.markSkill('hongyi2');
},
ai:{
order:1,
result:{
target:function(player,target){
if(target.hasJudge('lebu')) return -0.5;
return -1-target.countCards('h');
},
},
},
},
hongyi2:{
audio:'hongyi',
trigger:{global:'damageBegin1'},
charlotte:true,
forced:true,
logTarget:'source',
filter:function(event,player){
return player.storage.hongyi2.contains(event.source);
},
content:function(){
'step 0'
trigger.source.judge();
'step 1'
if(result.color=='black') trigger.num--;
else trigger.player.draw();
},
onremove:true,
intro:{
content:'已选中$为技能目标',
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
},
quanfeng:{
audio:2,
trigger:{global:'die'},
filter:function(event,player){
return event.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
}).length>0;
},
logTarget:'player',
skillAnimation:true,
limited:true,
forced:true,
animationColor:'thunder',
content:function(){
'step 0'
player.awakenSkill('quanfeng');
var list=trigger.player.getStockSkills('仲村由理','天下第一').filter(function(skill){
var info=get.info(skill);
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
});
if(list.length==1) event._result={control:list[0]};
else player.chooseControl(list).set('prompt','选择获得'+get.translation(trigger.player)+'的一个技能').set('forceDie',true).set('ai',function(){
return list.randomGet();
});
'step 1'
player.addSkillLog(result.control);
game.broadcastAll(function(skill){
var list=[skill];game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.yanghuiyu='quanfeng';
}
},result.control);
player.gainMaxHp();
player.recover();
},
},
//手杀朱然 //手杀朱然
//设计师你改技能有瘾🐴 //设计师你改技能有瘾🐴
mobiledanshou:{ mobiledanshou:{
@ -307,42 +601,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(player.countCards('he')>=event.player.countCards('h')) return true; if(player==event.player) return false;
return game.hasPlayer2(function(current){ var num=event.player.getHistory('useCard',function(evt){
return current.getHistory('useCard',function(evt){ return evt.targets.contains(player);
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
}).length; }).length;
}); return num==0||event.player.isAlive()&&num<=player.countCards('he');
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var list=[]; var num=trigger.player.getHistory('useCard',function(evt){
event.addIndex=0; return evt.targets.contains(player);
var num=game.countPlayer2(function(current){
return current.getHistory('useCard',function(evt){
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
}).length; }).length;
});
event.num=num; event.num=num;
if(num) list.push('摸'+get.cnNumber(num)+'张牌'); if(num==0){
else event.addIndex++; if(player.hasSkill('mobiledanshou')) event._result={bool:true};
var num2=trigger.player.countCards('h'); else player.chooseBool('是否发动【胆守】摸一张牌?',lib.translate.mobiledanshou_info);
event.num2=num2; }
if(num2&&player.countCards('he')>=num2) list.push('弃置'+get.cnNumber(num2)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害'); else event.goto(2);
else if(!num2) list.push('对'+get.translation(trigger.player)+'造成1点伤害');
player.chooseControl('cancel2').set('prompt',get.prompt('mobiledanshou')).set('choiceList',list);
'step 1' 'step 1'
if(result.control!='cancel2'){ if(result.bool){
player.logSkill('mobiledanshou',trigger.player); player.logSkill('mobiledanshou');
if(result.index+event.addIndex==0){ player.draw();
player.draw(num); }
event.finish(); event.finish();
}
else if(event.num2) player.chooseToDiscard('he',true,event.num2);
}
else event.finish();
'step 2' 'step 2'
player.chooseToDiscard(num,get.prompt('mobiledanshou',trigger.player),'弃置'+get.translation(num)+'张牌并对其造成1点伤害','he').set('ai',function(card){
if(!_status.event.goon) return 0;
var num=_status.event.getParent().num;
if(num==1) return 8-get.value(card);
if(num==2) return 6.5-get.value(card);
return 5-get.value(card);
}).set('goon',get.damageEffect(trigger.player,player,player)>0).logSkill=['mobiledanshou',trigger.player];
'step 3'
if(result.bool){
player.addExpose(0.2);
trigger.player.damage(); trigger.player.damage();
}
}, },
}, },
//丁原 //丁原
@ -2723,7 +3017,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(card) cards.push(card); if(card) cards.push(card);
else{ else{
var card=get.cardPile(function(x){ var card=get.cardPile(function(x){
return !cards.contains(card); return !cards.contains(x);
}); });
if(card) cards.push(card); if(card) cards.push(card);
} }
@ -3421,7 +3715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt('liezhi'),'弃置至多两名角色区域内的各一张牌',[1,2],function(card,player,target){ player.chooseTarget(get.prompt('liezhi'),'弃置至多两名其他角色区域内的各一张牌',[1,2],function(card,player,target){
return target!=player&&target.countDiscardableCards(player,'hej')>0; return target!=player&&target.countDiscardableCards(player,'hej')>0;
}).ai=function(target){ }).ai=function(target){
var player=_status.event.player; var player=_status.event.player;
@ -5911,7 +6205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shouye:'守邺', shouye:'守邺',
shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则你取消此牌的目标,且你于此牌结算完成后获得其对应的所有实体牌。', shouye_info:'每回合限一次。当其他角色使用牌指定你为唯一目标时,你可以与其进行【对策】。若你赢,则你取消此牌的目标,且你于此牌结算完成后获得其对应的所有实体牌。',
liezhi:'烈直', liezhi:'烈直',
liezhi_info:'准备阶段,你可以依次弃置至多两名角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。', liezhi_info:'准备阶段,你可以依次弃置至多两名其他角色区域内的各一张牌。若你受到过伤害,则〖烈直〗于你的下个回合无效。',
xinzhanyi:'战意', xinzhanyi:'战意',
xinzhanyi_info:'出牌阶段限一次你可以弃置一张牌并失去1点体力然后根据你弃置的牌获得以下效果直到回合结束基本牌你可以将一张基本牌当作杀、酒或桃使用且你本回合第一次以此法使用的牌的回复值/伤害值+1锦囊牌摸三张牌且你使用的牌不能被【无懈可击】响应装备牌你使用【杀】指定目标角色后其弃置两张牌然后你获得其中的一张。', xinzhanyi_info:'出牌阶段限一次你可以弃置一张牌并失去1点体力然后根据你弃置的牌获得以下效果直到回合结束基本牌你可以将一张基本牌当作杀、酒或桃使用且你本回合第一次以此法使用的牌的回复值/伤害值+1锦囊牌摸三张牌且你使用的牌不能被【无懈可击】响应装备牌你使用【杀】指定目标角色后其弃置两张牌然后你获得其中的一张。',
@ -6071,7 +6365,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liechi_info:'锁定技,当你进入濒死状态时,伤害来源弃置一张牌。', liechi_info:'锁定技,当你进入濒死状态时,伤害来源弃置一张牌。',
xin_liaohua:'手杀廖化', xin_liaohua:'手杀廖化',
redangxian:'当先', redangxian:'当先',
redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的准备阶段。', redangxian_info:'锁定技,回合开始时,你从弃牌堆中获得一张【杀】并进行一个额外的出牌阶段。',
refuli:'伏枥', refuli:'伏枥',
refuli_info:'限定技当你处于濒死状态时你可以将体力值回复至X点X为势力数。然后若你的体力值为全场唯一最多你翻面。', refuli_info:'限定技当你处于濒死状态时你可以将体力值回复至X点X为势力数。然后若你的体力值为全场唯一最多你翻面。',
xin_caozhang:'手杀曹彰', xin_caozhang:'手杀曹彰',
@ -6090,7 +6384,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beizhu_info:'出牌阶段限一次你可以观看一名其他角色的手牌。若其中没有【杀】你弃置其一张牌然后你可令其获得牌堆中的一张【杀】有【杀】其依次对你使用这些【杀】当你因此受到1点伤害后你摸一张牌。', beizhu_info:'出牌阶段限一次你可以观看一名其他角色的手牌。若其中没有【杀】你弃置其一张牌然后你可令其获得牌堆中的一张【杀】有【杀】其依次对你使用这些【杀】当你因此受到1点伤害后你摸一张牌。',
xin_zhuran:'手杀朱然', xin_zhuran:'手杀朱然',
mobiledanshou:'胆守', mobiledanshou:'胆守',
mobiledanshou_info:'一名角色的结束阶段开始时你可选择一项①摸X张牌X为本回合内目标包含你的非装备牌的数量。②弃置Y张牌并对当前回合角色造成1点伤害Y为其手牌数。', mobiledanshou_info:'一名其他角色的结束阶段开始时若X为0你摸一张牌不等于0你可弃置X张牌并对其造成1点伤害X为其本回合内使用的目标包含你的牌的数量',
yanghuiyu:'羊徽瑜',
hongyi:'弘仪',
hongyi2:'弘仪',
hongyi_info:'出牌阶段限一次你可以弃置X张牌并选择一名其他角色X为场上已阵亡的角色数且至多为2。你的下回合开始前该角色造成伤害时进行判定若结果为黑色此伤害-1。红色受到伤害的角色摸一张牌。',
quanfeng:'劝封',
quanfeng_info:'锁定技限定技一名角色死亡时你选择获得其的一个技能主公技限定技觉醒技带有Charlotte标签的技能除外然后加1点体力上限并回复1点体力。',
simashi:'司马师',
baiyi:'败移',
baiyi_info:'限定技,出牌阶段,若你已受伤,你可以交换两名角色的座次。',
jinglve:'景略',
jinglve2:'景略',
jinglve3:'景略',
jinglve_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,将其中一张牌标记为「死士」。当其使用对应的实体牌中包含「死士」的牌时,你取消此牌的所有目标。当「死士」牌不因使用而进入弃牌堆,或其回合结束后,若「死士」牌仍在其区域内,则你获得此牌。',
shanli:'擅立',
shanli_info:'觉醒技准备阶段若你已发动过〖败移〗且对至少两名角色发动过〖景略〗则你减1点体力上限并选择一名其他角色。系统随机选择三个不为〖忘隙(仲村由理)〗的主公技,然后你选择其中一个,令其获得之。',
mobile_standard:'手杀异构·标准包', mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临', mobile_shenhua:'手杀异构·神话再临',
mobile_yijiang1:'手杀异构·一将成名', mobile_yijiang1:'手杀异构·一将成名',

File diff suppressed because it is too large Load Diff

View File

@ -4126,8 +4126,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'xinleiji', audio:'xinleiji',
trigger:{player:'judgeAfter'}, trigger:{player:'judgeAfter'},
direct:true, direct:true,
disableReason:['暴虐','助祭','弘仪'],
filter:function(event,player){ filter:function(event,player){
return event.judgestr!='暴虐'&&event.judgestr!='助祭'&&['spade','club'].contains(event.result.suit); return !lib.skill.xinleiji_misa.disableReason.contains(event.judgestr)&&['spade','club'].contains(event.result.suit);
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -7957,7 +7958,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olzhiba2:'制霸', olzhiba2:'制霸',
xinleiji:'雷击', xinleiji:'雷击',
xinguidao:'鬼道', xinguidao:'鬼道',
xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。<br>②当你不因〖暴虐〗或〖助祭〗而进行的判定的判定牌生效后若结果为黑桃你可对一名其他角色造成2点雷电伤害梅花你回复1点体力并可对一名其他其他角色造成1点雷电伤害。', xinleiji_info:'①当你使用或打出【闪】或【闪电】时,你可以进行判定。<br>②当你不因〖暴虐〗或〖助祭〗或〖弘仪〗而进行的判定的判定牌生效后若结果为黑桃你可对一名其他角色造成2点雷电伤害梅花你回复1点体力并可对一名其他其他角色造成1点雷电伤害。',
xinguidao_info:'一名角色的判定牌生效前你可以打出一张黑色牌作为判定牌并获得原判定牌。若你以此法打出的牌为黑桃2-9则你摸一张牌。', xinguidao_info:'一名角色的判定牌生效前你可以打出一张黑色牌作为判定牌并获得原判定牌。若你以此法打出的牌为黑桃2-9则你摸一张牌。',
reqiangxi:"强袭", reqiangxi:"强袭",
"reqiangxi_info":"出牌阶段对每名其他角色限一次你可以选择一项1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害2. 弃置一张武器牌并对你攻击范围内的一名其他角色造成一点伤害。", "reqiangxi_info":"出牌阶段对每名其他角色限一次你可以选择一项1. 失去一点体力并对你攻击范围内的一名其他角色造成一点伤害2. 弃置一张武器牌并对你攻击范围内的一名其他角色造成一点伤害。",

View File

@ -563,8 +563,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish(); event.finish();
}else{ }else{
var prompt; var prompt;
if(event.num==3) prompt="罪论:请按顺将卡牌置于牌堆顶(先选择的在上)"; if(event.num==3) prompt="罪论:请按顺将卡牌置于牌堆顶(先选择的在上)";
else prompt="罪论:请按顺将"+get.cnNumber(event.num)+"张卡牌置于牌堆顶(先选择的在上),然后获得其余的牌。"; else prompt="罪论:请按顺将"+get.cnNumber(event.num)+"张卡牌置于牌堆顶(先选择的在上),然后获得其余的牌。";
player.chooseCardButton(event.num,true,event.cards,prompt).set('ai',function(button){ player.chooseCardButton(event.num,true,event.cards,prompt).set('ai',function(button){
var player=_status.event.player; var player=_status.event.player;
var next=player.getNext(); var next=player.getNext();

View File

@ -580,7 +580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var info=get.info(skill); var info=get.info(skill);
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited; return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
}); });
if(!list.length) event._result={control:list[0]}; if(list.length==1) event._result={control:list[0]};
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){ else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
return list.randomGet(); return list.randomGet();
}); });
@ -613,7 +613,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var info=get.info(skill); var info=get.info(skill);
return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited; return info&&!info.juexingji&&!info.zhuSkill&&!info.charlotte&&!info.limited;
}); });
if(!list.length) event._result={control:list[0]}; if(list.length==1) event._result={control:list[0]};
else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){ else trigger.player.chooseControl(list).set('prompt','选择令'+get.translation(player)+'获得一个技能').set('forceDie',true).set('ai',function(){
return list.randomGet(); return list.randomGet();
}); });
@ -12404,7 +12404,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
filter:function(event,player){ filter:function(event,player){
return player.hasSkill('duwu2')==false&&game.hasPlayer(function(current){ return player.hasSkill('duwu2')==false&&game.hasPlayer(function(current){
return current.hp<=player.countCards('he')&&player.inRange(current); return current.hp>0&&current.hp<=player.countCards('he')&&player.inRange(current);
}); });
}, },
filterCard:function(){ filterCard:function(){
@ -12416,12 +12416,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
complexSelect:true, complexSelect:true,
complexCard:true, complexCard:true,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&player.inRange(target)&&ui.selected.cards.length==target.hp; return target!=player&&target.hp>0&&player.inRange(target)&&ui.selected.cards.length==target.hp;
}, },
check:function(card){ check:function(card){
var player=_status.event.player; var player=_status.event.player;
if(game.hasPlayer(function(current){ if(game.hasPlayer(function(current){
return current!=player&&player.inRange(current)&&ui.selected.cards.length==current.hp&&get.damageEffect(current,player,player)>0; return current!=player&&current.hp>0&&player.inRange(current)&&ui.selected.cards.length==current.hp&&get.damageEffect(current,player,player)>0;
})) return 0; })) return 0;
switch(ui.selected.cards.length){ switch(ui.selected.cards.length){
case 0:return 8-get.value(card); case 0:return 8-get.value(card);

View File

@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2', name:'sp2',
connect:true, connect:true,
character:{ character:{
liubian:['male','qun',3,['shiyuan','dushi'],['unseen']], liubian:['male','qun',3,['shiyuan','dushi']],
xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']], xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']],
re_hejin:['male','qun',4,['spmouzhu']], re_hejin:['male','qun',4,['spmouzhu']],
hansui:['male','qun',4,['spniluan','spweiwu']], hansui:['male','qun',4,['spniluan','spweiwu']],
@ -67,7 +67,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_baigei:['re_panfeng','xingdaorong','caoxing'], sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"], sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','hansui'], sp_huangjin:['liuhong','zhujun','re_hejin','hansui'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang'], sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang','xin_baosanniang','liubian'],
} }
}, },
skill:{ skill:{
@ -792,6 +792,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juanhui2:{ juanhui2:{
charlotte:true, charlotte:true,
mark:true, mark:true,
mod:{
cardUsable:function(card){
if(card.name=='sha'&&_status.event.skill=='juanhui2_backup') return Infinity;
},
},
intro:{ intro:{
markcount:function(storage,player){ markcount:function(storage,player){
return player.getStorage('juanhui3').length; return player.getStorage('juanhui3').length;
@ -813,7 +818,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i of vcard){ for(var i of vcard){
if(i[2]=='sha'&&i[3]) str+=get.translation(i[3]); if(i[2]=='sha'&&i[3]) str+=get.translation(i[3]);
str+=get.translation(i[2]); str+=get.translation(i[2]);
str+='、' str+='、';
} }
str=str.slice(0,str.length-1); str=str.slice(0,str.length-1);
} }
@ -827,7 +832,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'juanhui3', group:'juanhui3',
enable:'phaseUse', enable:'phaseUse',
filter:function(event,player){ filter:function(event,player){
return player.getStorage('juanhui3').length>0; return player.getStorage('juanhui3').length>0&&player.countCards('h')>0;
}, },
chooseButton:{ chooseButton:{
dialog:function(event,player){ dialog:function(event,player){
@ -1417,7 +1422,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(button){ check:function(button){
var player=_status.event.player; var player=_status.event.player;
if(player.countCards('h',button.link[2])) return 0; if(player.countCards('h',button.link[2])) return 0;
if(_status.event.getParent().type!='phase') return 1; if(_status.event.getParent().type!='phase'&&!_status.event.getParent().lvli6) return 1;
return player.getUseValue({name:button.link[2]}); return player.getUseValue({name:button.link[2]});
}, },
backup:function(links,player){ backup:function(links,player){
@ -4696,6 +4701,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseZhunbeiBegin", player:"phaseZhunbeiBegin",
}, },
direct:true, direct:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return current!=player&&current.hp<=player.hp;
});
},
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('xinfu_langxi'),'对一名体力值不大于你的其他角色造成0-2点随机伤害',function(card,player,target){ player.chooseTarget(get.prompt('xinfu_langxi'),'对一名体力值不大于你的其他角色造成0-2点随机伤害',function(card,player,target){
@ -5805,7 +5815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_tunjun":"屯军", "xinfu_tunjun":"屯军",
"xinfu_tunjun_info":"限定技出牌阶段你可以选择一名角色令其随机使用牌堆中的X张装备牌。(X为你发动过“掠命”的次数)", "xinfu_tunjun_info":"限定技出牌阶段你可以选择一名角色令其随机使用牌堆中的X张装备牌。(X为你发动过“掠命”的次数)",
"xinfu_tanbei":"贪狈", "xinfu_tanbei":"贪狈",
"xinfu_tanbei_info":"出牌阶段限一次,你可以令一名其他角色选择一项:<br>1.令你随机获得其区域内的一张牌,本回合内你不能对其使用牌。<br>2.令你此回合内对其使用牌没有次数与距离限制。", "xinfu_tanbei_info":"出牌阶段限一次,你可以令一名其他角色选择一项:1.令你随机获得其区域内的一张牌本回合内你不能对其使用牌。2.令你此回合内对其使用牌没有次数与距离限制。",
"xinfu_sidao":"伺盗", "xinfu_sidao":"伺盗",
xinfu_sidaox:'伺盗', xinfu_sidaox:'伺盗',
"xinfu_sidao_info":"出牌阶段限一次,当你对一名其他角色连续使用两张牌后,你可以将一张手牌当做【顺手牵羊】对其使用。", "xinfu_sidao_info":"出牌阶段限一次,当你对一名其他角色连续使用两张牌后,你可以将一张手牌当做【顺手牵羊】对其使用。",
@ -5997,7 +6007,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hmmanyi_info:'锁定技,【南蛮入侵】对你无效。', hmmanyi_info:'锁定技,【南蛮入侵】对你无效。',
mansi_viewas:'蛮嗣', mansi_viewas:'蛮嗣',
mansi:'蛮嗣', mansi:'蛮嗣',
mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。', mansi_info:'出牌阶段限一次,你可以将所有手牌当做【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。',
souying:'薮影', souying:'薮影',
souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用【杀】或普通锦囊牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张【杀】或普通锦囊牌,你可以弃置一张牌,获得此牌对应的所有实体牌(或令此牌对你无效)。', souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用【杀】或普通锦囊牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张【杀】或普通锦囊牌,你可以弃置一张牌,获得此牌对应的所有实体牌(或令此牌对你无效)。',
zhanyuan:'战缘', zhanyuan:'战缘',
@ -6086,7 +6096,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
decadezhennan_info:"当你成为锦囊牌的目标后若此牌的目标数大于1则你可以对一名其他角色造成1点伤害。", decadezhennan_info:"当你成为锦囊牌的目标后若此牌的目标数大于1则你可以对一名其他角色造成1点伤害。",
liubian:'刘辩', liubian:'刘辩',
shiyuan:'诗怨', shiyuan:'诗怨',
shiyuan_info:'每回合每项限一次, 当你成为其他角色使用牌的目标后: 1.若其体力值比你多,你摸三张牌; 2.若其体力值与你相同,你摸两张牌; 3.若其体力值比你少,你摸一张牌。', shiyuan_info:'每回合每项限一次,当你成为其他角色使用牌的目标后:①若其体力值大于你,你摸三张牌。②若其体力值等于你,你摸两张牌。③若其体力值小于你,你摸一张牌。',
dushi:'毒逝', dushi:'毒逝',
dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。', dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。',

View File

@ -2267,7 +2267,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.player.line(player); trigger.player.line(player);
game.delay(); game.delay();
} }
} },
ai:{
threaten:1.1,
expose:0.25,
},
}, },
qingxian:{ qingxian:{
audio:2, audio:2,
@ -7062,6 +7066,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
}, },
qinwang_ai:{},
zuoding:{ zuoding:{
trigger:{global:'useCardToPlayered'}, trigger:{global:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.106.1', 'v1.9.106.2',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -635,6 +635,10 @@ window.noname_asset_list=[
'audio/die/re_caoxiu.mp3', 'audio/die/re_caoxiu.mp3',
'audio/die/re_sunxiu.mp3', 'audio/die/re_sunxiu.mp3',
'audio/die/caoxing.mp3', 'audio/die/caoxing.mp3',
'audio/die/gz_lukang.mp3',
'audio/die/simashi.mp3',
'audio/die/xin_zhuran.mp3',
'audio/die/yanghuiyu.mp3',
'audio/skill/anguo1.mp3', 'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3', 'audio/skill/anguo2.mp3',
@ -2804,6 +2808,22 @@ window.noname_asset_list=[
'audio/skill/cxliushi2.mp3', 'audio/skill/cxliushi2.mp3',
'audio/skill/zhanwan1.mp3', 'audio/skill/zhanwan1.mp3',
'audio/skill/zhanwan2.mp3', 'audio/skill/zhanwan2.mp3',
'audio/skill/baiyi1.mp3',
'audio/skill/baiyi2.mp3',
'audio/skill/hongyi1.mp3',
'audio/skill/hongyi2.mp3',
'audio/skill/jinglve1.mp3',
'audio/skill/jinglve2.mp3',
'audio/skill/keshou1.mp3',
'audio/skill/keshou2.mp3',
'audio/skill/mobiledanshou1.mp3',
'audio/skill/mobiledanshou2.mp3',
'audio/skill/quanfeng1.mp3',
'audio/skill/quanfeng2.mp3',
'audio/skill/shanli1.mp3',
'audio/skill/shanli2.mp3',
'audio/skill/zhuwei1.mp3',
'audio/skill/zhuwei2.mp3',
'font/huangcao.ttf', 'font/huangcao.ttf',
'font/shousha.ttf', 'font/shousha.ttf',
@ -2833,6 +2853,7 @@ window.noname_asset_list=[
'image/background/xiongxin_bg.jpg', 'image/background/xiongxin_bg.jpg',
'image/background/zhanyun_bg.jpg', 'image/background/zhanyun_bg.jpg',
'image/background/xinsha_bg.jpg', 'image/background/xinsha_bg.jpg',
'image/background/xiaowu_bg.jpg',
'image/card/minguangkai.png', 'image/card/minguangkai.png',
'image/card/db_atk1.jpg', 'image/card/db_atk1.jpg',
@ -3454,6 +3475,13 @@ window.noname_asset_list=[
'image/character/ns_caimao.jpg', 'image/character/ns_caimao.jpg',
'image/character/caoxing.jpg', 'image/character/caoxing.jpg',
'image/character/ns_jiaxu.jpg', 'image/character/ns_jiaxu.jpg',
'image/cahracter/liubian.jpg',
'image/cahracter/ns_fanchou.jpg',
'image/cahracter/ns_lijue.jpg',
'image/cahracter/ns_zhangji.jpg',
'image/cahracter/simashi.jpg',
'image/cahracter/xin_zhuran.jpg',
'image/cahracter/yanghuiyu.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',
@ -4415,6 +4443,20 @@ window.noname_asset_list=[
'image/emotion/xiaotao_emotion/18.gif', 'image/emotion/xiaotao_emotion/18.gif',
'image/emotion/xiaotao_emotion/19.gif', 'image/emotion/xiaotao_emotion/19.gif',
'image/emotion/xiaotao_emotion/20.gif', 'image/emotion/xiaotao_emotion/20.gif',
'image/emotion/xiaowu_emotion/1.gif',
'image/emotion/xiaowu_emotion/2.gif',
'image/emotion/xiaowu_emotion/3.gif',
'image/emotion/xiaowu_emotion/4.gif',
'image/emotion/xiaowu_emotion/5.gif',
'image/emotion/xiaowu_emotion/6.gif',
'image/emotion/xiaowu_emotion/7.gif',
'image/emotion/xiaowu_emotion/8.gif',
'image/emotion/xiaowu_emotion/9.gif',
'image/emotion/xiaowu_emotion/10.gif',
'image/emotion/xiaowu_emotion/11.gif',
'image/emotion/xiaowu_emotion/12.gif',
'image/emotion/xiaowu_emotion/13.gif',
'image/emotion/xiaowu_emotion/14.gif',
'image/mode/boss/card/chixueqingfeng.png', 'image/mode/boss/card/chixueqingfeng.png',
'image/mode/boss/card/chiyanzhenhunqin.png', 'image/mode/boss/card/chiyanzhenhunqin.png',
@ -5308,4 +5350,7 @@ window.noname_skin_list={
key_rin:3, key_rin:3,
key_miki:1, key_miki:1,
key_shiroha:6, key_shiroha:6,
key_kyoko:1,
key_kotori:1,
key_shiina:1,
}; };

View File

@ -55,6 +55,7 @@
ondb2:[], ondb2:[],
chatHistory:[], chatHistory:[],
emotionList:{ emotionList:{
xiaowu_emotion:14,
shibing_emotion:15, shibing_emotion:15,
guojia_emotion:20, guojia_emotion:20,
zhenji_emotion:20, zhenji_emotion:20,
@ -5848,9 +5849,9 @@
init:true, init:true,
onclick:function(bool){ onclick:function(bool){
if(confirm('调整该设置将清除所有进度,是否继续?')){ if(confirm('调整该设置将清除所有进度,是否继续?')){
for(var i=1;i<6;i++) game.save('save'+i,null); for(var i=1;i<6;i++) game.save('save'+i,null,'chess');
game.saveConfig('chess_leader_allcharacter',bool,this._link.config.mode) game.saveConfig('chess_leader_allcharacter',bool,'chess')
game.reload(); if(get.mode()=='chess') game.reload();
return; return;
} }
else this.classList.toggle('on'); else this.classList.toggle('on');
@ -5861,7 +5862,7 @@
onclick:function(){ onclick:function(){
var node=this; var node=this;
if(node._clearing){ if(node._clearing){
for(var i=1;i<6;i++) game.save('save'+i,null); for(var i=1;i<6;i++) game.save('save'+i,null,'chess');
game.reload(); game.reload();
return; return;
} }
@ -9879,6 +9880,7 @@
baiban:'白板', baiban:'白板',
_disableJudge:"判定区", _disableJudge:"判定区",
xiaowu_emotion:'小无表情',
guojia_emotion:'郭嘉表情', guojia_emotion:'郭嘉表情',
zhenji_emotion:'甄姬表情', zhenji_emotion:'甄姬表情',
shibing_emotion:'士兵表情', shibing_emotion:'士兵表情',
@ -15108,6 +15110,7 @@
"step 0" "step 0"
game.log(player,'减少了'+get.cnNumber(num)+'点体力上限'); game.log(player,'减少了'+get.cnNumber(num)+'点体力上限');
player.maxHp-=num; player.maxHp-=num;
event.loseHp=Math.max(0,player.hp-player.maxHp);
player.update(); player.update();
"step 1" "step 1"
if(player.maxHp<=0){ if(player.maxHp<=0){
@ -40962,7 +40965,7 @@
nodename2.setBackground(video.name2,'character'); nodename2.setBackground(video.name2,'character');
} }
var date=new Date(video.time); var date=new Date(video.time);
var str=date.getFullYear()+'.'+(date.getMonth()+2)+'.'+(date.getDay()+1)+' '+ var str=date.getFullYear()+'.'+(date.getMonth()+1)+'.'+(date.getDate())+' '+
date.getHours()+':'; date.getHours()+':';
var minutes=date.getMinutes(); var minutes=date.getMinutes();
if(minutes<10){ if(minutes<10){
@ -48013,9 +48016,10 @@
cardid:card.cardid, cardid:card.cardid,
wunature:card.wunature, wunature:card.wunature,
storage:card.storage, storage:card.storage,
cards:card.cards,
}; };
if(get.itemtype(cards)=='cards'&&!card.cards) next.cards=cards.slice(0); if(get.itemtype(cards)=='cards'&&!card.cards) next.cards=cards.slice(0);
else next.cards=[card]; else if(get.itemtype(card)=='card') next.cards=[card];
return next; return next;
} }
else if(get.is.object(card)&&get.itemtype(cards)=='cards'&&!card.cards){ else if(get.is.object(card)&&get.itemtype(cards)=='cards'&&!card.cards){

View File

@ -83,11 +83,14 @@ window.noname_package={
}, },
}, },
background:{ background:{
planetarian_bg:'星梦',
ol_bg:'龙纹', ol_bg:'龙纹',
planetarian_bg:'星梦',
heaven_bg:'红烧', heaven_bg:'红烧',
kyoani_bg:'京都', kyoani_bg:'京都',
key_bg:'键社', key_bg:'键社',
xiaowu_bg:'小无',
noname_bg:'璀璨',
wuming_bg:'无名',
zhulin_bg:'竹林', zhulin_bg:'竹林',
shengshi_bg:'盛世', shengshi_bg:'盛世',
taoyuan_bg:'桃园', taoyuan_bg:'桃园',
@ -103,8 +106,6 @@ window.noname_package={
wangshi_bg:'往事', wangshi_bg:'往事',
xiongxin_bg:'雄心', xiongxin_bg:'雄心',
xinsha_bg:'新杀', xinsha_bg:'新杀',
noname_bg:'璀璨',
wuming_bg:'无名',
}, },
music:{ music:{
music_phliosophy:'Philosophy of ours', music_phliosophy:'Philosophy of ours',

View File

@ -1,15 +1,18 @@
window.noname_update={ window.noname_update={
version:'1.9.106.1', version:'1.9.106.2',
update:'1.9.106', update:'1.9.106.1',
changeLog:[ changeLog:[
'S贾诩', '小无表情包、背景',
'刘辩',
'司马师,羊徽瑜,手杀朱然',
'线下版李傕、张济、樊稠',
'bug修复', 'bug修复',
], ],
files:[ files:[
//'card/extra.js', //'card/extra.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/sp.js', //'card/sp.js',
'card/standard.js', //'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/mtg.js', //'card/mtg.js',
//'card/gujian.js', //'card/gujian.js',
@ -24,15 +27,15 @@ window.noname_update={
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
'character/rank.js', 'character/rank.js',
'character/refresh.js', 'character/refresh.js',
//'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
'character/tw.js', //'character/tw.js',
//'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
@ -44,7 +47,7 @@ window.noname_update={
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
//'mode/guozhan.js', 'mode/guozhan.js',
'mode/chess.js', 'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/single.js', //'mode/single.js',
@ -57,7 +60,7 @@ window.noname_update={
//'game/server.js', //'game/server.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',
//'game/package.js', 'game/package.js',
//'game/asset.js', //'game/asset.js',
//'game/source.js', //'game/source.js',
//'theme/style/hp/xinglass.css', //'theme/style/hp/xinglass.css',

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

BIN
image/character/liubian.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
image/character/simashi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
image/skin/key_kotori/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
image/skin/key_kyoko/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
image/skin/key_shiina/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

View File

@ -2172,13 +2172,22 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
} }
var length=Math.ceil(list.length/9);
for(var i in lib.rank){ for(var i in lib.rank){
if(Array.isArray(lib.rank[i])){ if(Array.isArray(lib.rank[i])){
lib.rank[i]=list.splice(0,length); for(var j=0;j<lib.rank[i].length;j++){
if(!list.contains(lib.rank[i][j])){
lib.rank[i].splice(j--,1);
} }
} }
} }
}
//var length=Math.ceil(list.length/9);
//for(var i in lib.rank){
// if(Array.isArray(lib.rank[i])){
// lib.rank[i]=list.splice(0,length);
// }
//}
}
'step 1' 'step 1'
lib.rank.all=lib.rank.s. lib.rank.all=lib.rank.s.
concat(lib.rank.ap). concat(lib.rank.ap).
@ -2799,7 +2808,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
switch(difficulty){ switch(difficulty){
case 'leader_easy':list=lib.rank.d.concat(lib.rank.c).concat(lib.rank.bm);break; case 'leader_easy':list=lib.rank.d.concat(lib.rank.c).concat(lib.rank.bm);break;
case 'leader_medium':list=lib.rank.b.concat(lib.rank.bp).concat(lib.rank.am);break; case 'leader_medium':list=lib.rank.b.concat(lib.rank.bp).concat(lib.rank.am);break;
case 'leader_hard':list=lib.rank.a.concat(lib.rank.ap).concat(lib.rank.s);break; case 'leader_hard':list=lib.rank.a.concat(lib.rank.ap).concat(lib.rank.s).concat(lib.rank.am.randomGets(Math.floor(lib.rank.am.length/2)));break;
} }
for(var i=0;i<lib.hiddenCharacters.length;i++){ for(var i=0;i<lib.hiddenCharacters.length;i++){
if(list.length<=number){ if(list.length<=number){
@ -4571,6 +4580,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
charlotte:true, charlotte:true,
firstDo:true, firstDo:true,
forced:true,
popup:false,
filter:function(event,player){ filter:function(event,player){
return get.type(event.card)=='trick'&&event.player.isFriendOf(player); return get.type(event.card)=='trick'&&event.player.isFriendOf(player);
}, },

View File

@ -816,8 +816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return event.name=='damage'||(event.player.isAlive()&&!event.player.isFriendOf(player)) return event.name=='damage'||(event.player.isAlive()&&!event.player.isFriendOf(player))
}, },
content:function(){ content:function(){
var num=trigger.num||1; var list=_status.characterlist.randomRemove(1);
var list=_status.characterlist.randomRemove(num);
if(list.length){ if(list.length){
player.storage.yigui.character.addArray(list); player.storage.yigui.character.addArray(list);
lib.skill.gzhuashen.drawCharacter(player,list); lib.skill.gzhuashen.drawCharacter(player,list);
@ -830,6 +829,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
xindiaodu:{ xindiaodu:{
audio:"diaodu", audio:"diaodu",
group:'xindiaodu_use', group:'xindiaodu_use',
frequent:true,
subSkill:{ subSkill:{
use:{ use:{
trigger:{ trigger:{
@ -943,15 +943,17 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
audio:['buyi',2], audio:['buyi',2],
}, },
keshou:{ keshou:{
audio:2,
trigger:{player:'damageBegin3'}, trigger:{player:'damageBegin3'},
direct:true, //direct:true,
filter:function(event,player){ filter:function(event,player){
return event.num>0; return event.num>0;
}, },
direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
var check=(player.countCards('h',{color:'red'})>1||player.countCards('h',{color:'black'})>1); var check=(player.countCards('h',{color:'red'})>1||player.countCards('h',{color:'black'})>1);
player.chooseCard(get.prompt2('keshou'),'he',2,function(card){ player.chooseCard(get.prompt('keshou'),'弃置两张颜色相同的牌,令即将受到的伤害-1','he',2,function(card){
if(ui.selected.cards.length) return get.color(card)==get.color(ui.selected.cards[0]); if(ui.selected.cards.length) return get.color(card)==get.color(ui.selected.cards[0]);
return true; return true;
}).set('complexCard',true).set('ai',function(card){ }).set('complexCard',true).set('ai',function(card){
@ -964,14 +966,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
return 6-get.value(card); return 6-get.value(card);
}).set('check',check); }).set('check',check);
'step 1' 'step 1'
var logged=false;
if(result.cards){ if(result.cards){
logged=true;
player.logSkill('keshou'); player.logSkill('keshou');
player.discard(result.cards); player.discard(result.cards);
trigger.num--; trigger.num--;
if(trigger.num<=0) trigger.cancel(); }
if(!game.hasPlayer(function(current){ if(!player.isUnseen()&&!game.hasPlayer(function(current){
return current!=player&&current.isFriendOf(player); return current!=player&&current.isFriendOf(player);
})) player.judge(function(card){ })){
if(!logged) player.logSkill('keshou');
player.judge(function(card){
if(get.color(card)=='red') return 1; if(get.color(card)=='red') return 1;
return 0; return 0;
}); });
@ -982,16 +988,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
}, },
zhuwei:{ zhuwei:{
audio:2,
trigger:{player:'judgeEnd'}, trigger:{player:'judgeEnd'},
filter:function(event){ filter:function(event){
if(get.owner(event.result.card)) return false; if(get.owner(event.result.card)) return false;
if(event.nogain&&event.nogain(event.result.card)) return false; if(event.nogain&&event.nogain(event.result.card)) return false;
return event.result.card.name=='sha'||event.result.card.name=='juedou'; return true;
//return event.result.card.name=='sha'||event.result.card.name=='juedou';
}, },
frequent:true,
content:function(){ content:function(){
'step 0' 'step 0'
player.gain(trigger.result.card,'gain2'); player.gain(trigger.result.card,'gain2');
player.chooseBool('是否令当前回合角色获得【筑围】的加成效果').ai=function(){ player.chooseBool('是否令'+get.translation(_status.currentPhase)+'本回合的手牌上限和使用【杀】的次数上限+1').ai=function(){
return get.attitude(player,_status.currentPhase)>0; return get.attitude(player,_status.currentPhase)>0;
}; };
'step 1' 'step 1'
@ -5124,7 +5133,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(player.hasSkill('huangjintianbingfu')){ if(player.hasSkill('huangjintianbingfu')){
num+=player.storage.huangjintianbingfu.length; num+=player.storage.huangjintianbingfu.length;
} }
player.chooseCardButton(num,true,get.cards(num),'按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){ player.chooseCardButton(num,true,get.cards(num),'按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){
return get.value(button.link); return get.value(button.link);
}); });
'step 1' 'step 1'
@ -7359,9 +7368,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gzbuyi_info:'每回合限一次,当一名与你势力相同的角色脱离濒死状态后,你可以选择一个“军令”,令伤害来源选择一项:执行该军令,或令该脱离濒死状态的角色回复一点体力。', gzbuyi_info:'每回合限一次,当一名与你势力相同的角色脱离濒死状态后,你可以选择一个“军令”,令伤害来源选择一项:执行该军令,或令该脱离濒死状态的角色回复一点体力。',
gz_lukang:'陆抗', gz_lukang:'陆抗',
keshou:'恪守', keshou:'恪守',
keshou_info:'当你受到伤害时,你可以弃置两张颜色相同的牌。若如此做,此伤害-1。然后若场上没有与你势力相同的其他角色,则你进行判定,若结果为红色,你摸一张牌。', keshou_info:'当你受到伤害时,你发动此技能。你可弃置两张颜色相同的牌,若如此做,此伤害-1。你的势力已确定且场上没有与你势力相同的其他角色,则你进行判定,若结果为红色,你摸一张牌。',
zhuwei:'筑围', zhuwei:'筑围',
zhuwei_info:'当你的判定牌生效后,若此牌为【杀】或【决斗】,你可以获得之。然后,你可令当前回合角色本回合内使用【杀】的次数上限和手牌上限+1。', zhuwei_info:'当你的判定牌生效后,你可以获得之。然后,你可令当前回合角色本回合内使用【杀】的次数上限和手牌上限+1。',
gz_yuanshu:'袁术', gz_yuanshu:'袁术',
gzweidi:'伪帝', gzweidi:'伪帝',
gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色并选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。', gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色并选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。',