huaxin
This commit is contained in:
parent
d095f7cc16
commit
119d02a195
|
@ -729,7 +729,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
selectTarget:-1,
|
||||
chooseai:function(event,player){
|
||||
if(player.hasSkillTag('mingzhi_yes')) return '选项一';
|
||||
if(_status.event.controls.contains('选项三')){
|
||||
if(player.hasSkillTag('mingzhi_no')) return '选项三';
|
||||
return Math.random()<0.5?'选项一':'选项三';
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -158,7 +158,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
value:9.2
|
||||
},
|
||||
result:{
|
||||
target:2.1,
|
||||
target:2.5,
|
||||
},
|
||||
tag:{
|
||||
draw:2
|
||||
|
|
|
@ -189,7 +189,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy:{
|
||||
diy_yijiang:["key_kud","key_misuzu","key_kamome","key_nao",
|
||||
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
|
||||
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko",
|
||||
diy_yijiang2:["key_yuuki","key_tenzen","key_kyouko","key_kotarou","key_kyou",
|
||||
"ns_chentai","ns_huangwudie","ns_sunyi","ns_zhangning","ns_yanghu"],
|
||||
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
|
||||
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
|
||||
|
|
|
@ -1231,7 +1231,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return lib.filter.filterCard.apply(this,arguments);
|
||||
},'引裾:对'+get.translation(player)+'使用一张杀,或跳过下回合的出牌阶段和弃牌阶段').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
|
||||
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
|
||||
return lib.filter.filterTarget.apply(this,arguments);
|
||||
return lib.filter.targetEnabled.apply(this,arguments);
|
||||
}).set('sourcex',player);
|
||||
"step 1"
|
||||
if(!result.bool) target.addSkill('spyinju2');
|
||||
|
@ -9411,7 +9411,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_xinpi:'SP辛毗',
|
||||
spyinju:'引裾',
|
||||
spyinju2:'引裾',
|
||||
spyinju_info:'出牌阶段限一次,你可令一名其他角色选择一项:①对你使用一张【杀】。②其下个回合的准备阶段开始时,跳过出牌阶段和弃牌阶段。',
|
||||
spyinju_info:'出牌阶段限一次,你可令一名其他角色选择一项:①对你使用一张【杀】(无距离限制)。②其下个回合的准备阶段开始时,跳过出牌阶段和弃牌阶段。',
|
||||
spchijie:'持节',
|
||||
spchijie_info:'每回合限一次。当你成为其他角色使用牌的唯一目标时,你可判定。若结果大于6,则你取消此牌的所有目标。',
|
||||
reduoji:'夺冀',
|
||||
|
|
|
@ -479,6 +479,7 @@ window.noname_character_rank={
|
|||
'yangwan',
|
||||
're_dongcheng',
|
||||
'ol_yujin',
|
||||
'ol_huaxin',
|
||||
],
|
||||
bp:[
|
||||
'chess_diaochan',
|
||||
|
@ -690,6 +691,7 @@ window.noname_character_rank={
|
|||
'jsp_liubei',
|
||||
'liangxing',
|
||||
'tangji',
|
||||
'gaogan',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -1374,6 +1376,7 @@ window.noname_character_rank={
|
|||
'ns_sunyi',
|
||||
'ns_zhangning',
|
||||
'ns_yanghu',
|
||||
'ol_huaxin',
|
||||
'key_haruko',
|
||||
'key_akiko',
|
||||
'key_sunohara',
|
||||
|
@ -1696,6 +1699,7 @@ window.noname_character_rank={
|
|||
'zhouchu',
|
||||
'dongcheng',
|
||||
'tangji',
|
||||
'gaogan',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
|
139
character/sp.js
139
character/sp.js
|
@ -5,7 +5,7 @@ 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'],
|
||||
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'],
|
||||
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
||||
sp_zhongdan:["cuiyan","huangfusong"],
|
||||
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
|
||||
|
@ -18,6 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterFilter:{},
|
||||
character:{
|
||||
gaogan:['male','qun',4,['juguan']],
|
||||
sp_mifangfushiren:['male','shu',4,['mffengshi']],
|
||||
huangchengyan:['male','qun',3,['guanxu','yashi']],
|
||||
huangzu:['male','qun',4,['wangong']],
|
||||
|
@ -163,6 +164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
//kaisa:["male","western",4,["zhengfu"]],
|
||||
},
|
||||
characterIntro:{
|
||||
gaogan:'高干(?~206年),字元才,陈留郡圉县(今河南杞县圉镇)人。东汉末年并州割据将领,蜀郡太守高躬之子、大将军袁绍外甥。出身陈留高氏,才志弘邈,文武秀出。早年联合荀谌游说韩馥让出冀州牧。袁绍平定河北后,以为并州牧。官渡之战时,在西线配合作战。因曹操早有准备,没有实质进展。袁绍死后,袁谭、袁尚与曹操大战于黎阳郡时,联合郭援攻打平阳郡,为马腾为首关中将领所败,郭援为庞德所斩。袁尚败走中山郡后,出降于曹操,仍为并州刺史。建安十年,兴兵反曹,固守壶关,成功抵挡乐进进攻。得知曹操亲征后,留下别将守城,亲往匈奴呼厨泉求救,没有成功。引兵攻略河东郡,屡为钟繇、张既所败。建安十一年,投奔荆州刘表。途经上洛时,为上洛都尉捕斩之。',
|
||||
huangchengyan:'黄承彦,生卒年不详,汉末三国时期沔阳名士,诸葛亮岳父,黄月英之父。南郡大士蔡讽的女婿,与襄阳名士上层社会圈子:庞统(凤雏)、庞德公、司马徽、徐庶等人交好。《襄阳记》:黄承彦者,高爽开列,为沔阳名士,谓诸葛孔明曰:“闻君择妇,身有丑女,黄头黑色,而才堪配。”孔明许,即载送之。时人以为笑乐,乡里为之谚曰:“莫作孔明择妇,正得阿承丑女。”',
|
||||
panshu:'潘淑(?-252年),会稽句章(今浙江省宁波市)人,是吴大帝孙权的皇后,吴少帝孙亮的母亲。和孙权是中国历代帝后中年龄差距较大的一对。潘淑少时与姐姐俱没入织室,容媚有宠,拜为夫人,生有一子孙亮。赤乌十三年(250年),孙权立孙亮为皇太子,翌年(251年)立潘淑为皇后。神凤元年(252年)暴崩,合葬蒋陵。世称潘淑为江东绝色,有神女之称。',
|
||||
jiben:'吉本(?—218年),东汉末年太医令。建安二十三年春正月,时金祎自以世为汉臣,睹汉祚将移,谓可季兴,乃喟然发愤,遂与太医令本、少府耿纪、司直韦晃、本子邈、邈弟穆等结谋攻许,杀曹公长史王必,南援刘备。后必营,必与典农中郎将严匡讨斩之。在《三国演义》中,吉本在此为吉平或吉太,因字称平,故又唤作吉平。曾参与董承等人刺杀曹操的计划,并企图在为曹操治病时毒死曹操,但被曹操识破而遭处刑。之后其子吉邈和吉穆都参与了由耿纪和韦晃等人所发动的反叛曹操的行动,但都失败被杀。',
|
||||
|
@ -430,6 +432,106 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//高干
|
||||
juguan:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return event.filterCard({
|
||||
name:'sha',
|
||||
},player,event)||event.filterCard({
|
||||
name:'juedou',
|
||||
},player,event);
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(){
|
||||
return ui.create.dialog('拒关',[['sha','juedou'],'vcard']);
|
||||
},
|
||||
filter:function(button,player){
|
||||
var evt=_status.event.getParent();
|
||||
return evt.filterCard({
|
||||
name:button.link[2],
|
||||
},player,evt);
|
||||
},
|
||||
check:function(button){
|
||||
return _status.event.player.getUseValue({
|
||||
name:button.link[2],
|
||||
})*(button.link[2]=='juedou'?3:1);
|
||||
},
|
||||
backup:function(links){
|
||||
return {
|
||||
audio:'juguan',
|
||||
viewAs:{name:links[0][2]},
|
||||
filterCard:true,
|
||||
check:function(card){
|
||||
return 6-get.value(card);
|
||||
},
|
||||
position:'h',
|
||||
onuse:function(result,player){
|
||||
player.addTempSkill('juguan_effect');
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links){
|
||||
return '将一张手牌当做'+get.translation(links[0][2])+'使用';
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:function(item,player){
|
||||
return Math.max(get.order({name:'sha'}),get.order({name:'juedou'}))+0.2;
|
||||
},
|
||||
result:{player:1},
|
||||
},
|
||||
subSkill:{
|
||||
effect:{
|
||||
trigger:{source:'damage'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
firstDo:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
var evt=event.getParent('useCard');
|
||||
return event.card&&evt&&event.card==evt.card&&evt.skill=='juguan_backup';
|
||||
},
|
||||
content:function(){
|
||||
player.addSkill('juguan_draw');
|
||||
player.markAuto('juguan_draw',[trigger.player]);
|
||||
},
|
||||
},
|
||||
draw:{
|
||||
audio:'juguan',
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
content:function(){
|
||||
player.removeSkill('juguan_draw');
|
||||
if(!trigger.numFixed) trigger.num+=2;
|
||||
},
|
||||
group:'juguan_clear',
|
||||
intro:{
|
||||
content:'若没有受到$的伤害,则下个摸牌阶段多摸两张牌',
|
||||
},
|
||||
},
|
||||
clear:{
|
||||
trigger:{player:'damage'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
firstDo:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return player.storage.juguan_draw&&player.storage.juguan_draw.contains(event.source);
|
||||
},
|
||||
content:function(){
|
||||
player.unmarkAuto('juguan_draw',[trigger.source]);
|
||||
if(!player.storage.juguan_draw||!player.storage.juguan_draw.length) player.removeSkill('juguan_draw');
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//OL鲍三娘
|
||||
olwuniang:{
|
||||
audio:'xinfu_wuniang',
|
||||
|
@ -14023,14 +14125,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var evt=event.getParent(2);
|
||||
evt.set('aocai',true);
|
||||
var cards=get.cards(player.countCards('h')==0?4:2);
|
||||
var cards=get.cards((get.mode()!='guozhan'&&player.countCards('h')==0)?4:2);
|
||||
for(var i=cards.length-1;i>=0;i--){
|
||||
ui.cardPile.insertBefore(cards[i].fix(),ui.cardPile.firstChild);
|
||||
}
|
||||
var aozhan=player.hasSkill('aozhan');
|
||||
player.chooseButton(['傲才:选择要'+(evt.name=='chooseToUse'?'使用':'打出')+'的牌',cards]).set('filterButton',function(button){
|
||||
return _status.event.cards.contains(button.link);
|
||||
}).set('cards',cards.filter(function(card){
|
||||
return evt.filterCard(card,evt.player,evt)
|
||||
if(aozhan&&card.name=='tao'){
|
||||
return evt.filterCard({
|
||||
name:'sha',isCard:true,cards:[card],
|
||||
},evt.player,evt)||evt.filterCard({
|
||||
name:'shan',isCard:true,cards:[card],
|
||||
},evt.player,evt);
|
||||
}
|
||||
return evt.filterCard(card,evt.player,evt);
|
||||
})).set('ai',function(button){
|
||||
var evt=_status.event.getParent(3);
|
||||
if(evt&&evt.ai){
|
||||
|
@ -14045,11 +14155,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
var evt=event.getParent(2);
|
||||
if(result.bool&&result.links&&result.links.length){
|
||||
var name=result.links[0].name,aozhan=(player.hasSkill('aozhan')&&name=='tao');
|
||||
if(aozhan){
|
||||
name=evt.filterCard({
|
||||
name:'sha',isCard:true,cards:[card],
|
||||
},evt.player,evt)?'sha':'shan';
|
||||
}
|
||||
if(evt.name=='chooseToUse'){
|
||||
game.broadcastAll(function(result){
|
||||
lib.skill.aocai_backup.viewAs={name:result.name,cards:[result],isCard:true};
|
||||
game.broadcastAll(function(result,name){
|
||||
lib.skill.aocai_backup.viewAs={name:name,cards:[result],isCard:true};
|
||||
lib.skill.aocai_backup.prompt='选择'+get.translation(result)+'的目标';
|
||||
},result.links[0]);
|
||||
},result.links[0],name);
|
||||
evt.set('_backupevent','aocai_backup');
|
||||
evt.backup('aocai_backup');
|
||||
}
|
||||
|
@ -14057,6 +14173,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
delete evt.result.skill;
|
||||
delete evt.result.used;
|
||||
evt.result.card=get.autoViewAs(result.links[0]);
|
||||
if(aozhan) evt.result.card.name=name;
|
||||
evt.result.cards=[result.links[0]];
|
||||
evt.redo();
|
||||
return;
|
||||
|
@ -14086,8 +14203,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sourceSkill:'aocai',
|
||||
precontent:function(){
|
||||
delete event.result.skill;
|
||||
var name=event.result.card.name;
|
||||
event.result.cards=event.result.card.cards;
|
||||
event.result.card=get.autoViewAs(event.result.cards[0])
|
||||
event.result.card=get.autoViewAs(event.result.cards[0]);
|
||||
event.result.card.name=name;
|
||||
},
|
||||
filterCard:function(){return false},
|
||||
selectCard:-1,
|
||||
|
@ -16619,6 +16738,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
|
||||
lisu:['ol_lisu','lisu'],
|
||||
fuwan:['fuwan','sp_fuwan'],
|
||||
huaxin:['ol_huaxin','huaxin'],
|
||||
},
|
||||
translate:{
|
||||
"xinfu_lingren":"凌人",
|
||||
|
@ -17378,6 +17498,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xueji_info:'出牌阶段限一次,你可以弃置一张红色牌,然后选择至多X名角色,横置这些角色并对其中一名角色造成1点火焰伤害。(X为你已损失的体力值且至少为1)',
|
||||
huxiao_info:'锁定技,当你造成火属性伤害时,该角色摸一张牌。然后,你于此回合内对其使用牌没有次数限制。',
|
||||
aocai_info:'当你于回合外需要使用或打出一张基本牌时,你可以观看牌堆顶的两张牌(若你没有手牌则改为四张)。若你观看的牌中有此牌,你可以使用打出之。',
|
||||
aocai_info_guozhan:'当你于回合外需要使用或打出一张基本牌时,你可以观看牌堆顶的两张牌。若你观看的牌中有此牌,你可以使用打出之。',
|
||||
hongyuan_info:'摸牌阶段,你可以少摸一张牌并指定至多两名其他角色。若如此做,这些角色各摸一张牌。',
|
||||
hongyuan_info_combat:'摸牌阶段,你可以少摸一张牌。若如此做,其他友方角色各摸一张牌。',
|
||||
huanshi_info:'一名角色的判定牌生效前,你可令其观看你的手牌。若如此做,该角色选择你的一张牌,你打出此牌代替之。',
|
||||
|
@ -17548,6 +17669,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olzhennan:'镇南',
|
||||
olzhennan2:'镇南',
|
||||
olzhennan_info:'【南蛮入侵】对你无效。出牌阶段限一次,你可以将任意张手牌当做【南蛮入侵】对等量的角色使用。',
|
||||
gaogan:'高干',
|
||||
juguan:'拒关',
|
||||
juguan_backup:'拒关',
|
||||
juguan_info:'出牌阶段限一次,你可将一张手牌当【杀】或【决斗】使用。若受到此牌伤害的角色未在你的下回合开始前对你造成过伤害,你的下个摸牌阶段摸牌数+2。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_tongque:"铜雀台",
|
||||
|
|
|
@ -318,7 +318,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
youyan:{
|
||||
audio:2,
|
||||
trigger:{player:'loseAfter'},
|
||||
usable:1,
|
||||
//usable:1,
|
||||
filter:function(event,player){
|
||||
if(event.type!='discard'||!event.cards2||!event.cards2.length||player!=_status.currentPhase) return false;
|
||||
var list=[];
|
||||
|
@ -326,9 +326,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
list.add(get.suit(i,player));
|
||||
if(list.length>=lib.suit.length) return false;
|
||||
}
|
||||
return true;
|
||||
var evt=event.getParent('phaseUse');
|
||||
if(evt&&evt.player==player&&!evt.youyaned) return true;
|
||||
var evt=event.getParent('phaseDiscard');
|
||||
if(evt&&evt.player==player&&!evt.youyaned) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
var evt=event.getParent('phaseUse');
|
||||
if(evt&&evt.player==player) evt.youyaned=true;
|
||||
else{
|
||||
var evt=event.getParent('phaseDiscard');
|
||||
if(evt) evt.youyaned=true;
|
||||
}
|
||||
var list=[],cards=[];
|
||||
for(var i of trigger.cards2){
|
||||
list.add(get.suit(i,player));
|
||||
|
@ -346,10 +356,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
effect:{
|
||||
player_use:function(card,player,target){
|
||||
if(typeof card=='object'&&player==_status.currentPhase&&
|
||||
(!player.storage.counttrigger||!player.storage.counttrigger.youyan)&&
|
||||
//(!player.storage.counttrigger||!player.storage.counttrigger.youyan)&&
|
||||
player.needsToDiscard()==1&&card.cards&&card.cards.filter(function(i){
|
||||
return get.position(i)=='h';
|
||||
}).length>0&&!get.tag(card,'draw')&&!get.tag(card,'gain')) return 'zeroplayertarget';
|
||||
}).length>0&&!get.tag(card,'draw')&&!get.tag(card,'gain')&&!get.tag(card,'discard')) return 'zeroplayertarget';
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -372,16 +382,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(target.hasSkill('maixie')||target.hasSkill('maixie_defend')) att/=3;
|
||||
if(target!=player) att/=Math.pow(game.players.length-get.distance(player,target,'absolute'),0.7);
|
||||
return att;
|
||||
});
|
||||
}).set('animate',false);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('zhuihuan',target);
|
||||
target.addTempSkill('zhuihuan2',{player:'phaseZhunbeiBegin'});
|
||||
player.logSkill('zhuihuan');
|
||||
target.addSkill('zhuihuan2_new');
|
||||
game.delayx();
|
||||
}
|
||||
},
|
||||
},
|
||||
zhuihuan2_new:{
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
charlotte:true,
|
||||
forced:true,
|
||||
onremove:true,
|
||||
filter:function(event,player){
|
||||
if(player.storage.zhuihuan2_new){
|
||||
for(var source of player.storage.zhuihuan2_new){
|
||||
if(!source.isIn()) continue;
|
||||
if(source.hp>player.hp) return true;
|
||||
return source.countCards('h')>0;
|
||||
}
|
||||
}
|
||||
},
|
||||
logTarget:function(event,player){
|
||||
return player.storage.zhuihuan2_new.filter(function(target){
|
||||
return target.isIn();
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.targets=player.storage.zhuihuan2_new;
|
||||
player.removeSkill('zhuihuan2_new');
|
||||
'step 1'
|
||||
var target=targets.shift();
|
||||
if(target.isIn()){
|
||||
if(target.hp>player.hp) target.damage(2);
|
||||
else{
|
||||
var hs=target.getCards('h');
|
||||
if(hs.length) target.discard(hs.randomGets(2));
|
||||
}
|
||||
}
|
||||
if(targets.length) event.redo();
|
||||
},
|
||||
group:'zhuihuan2_new_count',
|
||||
subSkill:{
|
||||
count:{
|
||||
trigger:{player:'damage'},
|
||||
forced:true,
|
||||
silent:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return get.itemtype(event.source)=='player';
|
||||
},
|
||||
content:function(){
|
||||
player.markAuto('zhuihuan2_new',[trigger.source]);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
zhuihuan2:{
|
||||
trigger:{player:'damageEnd'},
|
||||
forced:true,
|
||||
|
@ -9697,10 +9758,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
kangge_info:'当你受到除自己和“节烈”角色以外的角色造成的伤害时,你可以防止此伤害并选择一种花色,然后你失去X点体力,从弃牌堆中随机获得X张此花色的牌(X为伤害值)。',
|
||||
yangwan:'杨婉',
|
||||
youyan:'诱言',
|
||||
youyan_info:'你的回合内限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
|
||||
youyan_info:'出牌阶段/弃牌阶段各限一次,当你的牌因弃置进入弃牌堆后,你可以从牌堆中获得本次弃牌中没有的花色的牌各一张。',
|
||||
zhuihuan:'追还',
|
||||
zhuihuan2:'追还',
|
||||
zhuihuan_info:'结束阶段,你可以选择一名角色,直到该角色的下个准备阶段,此期间内对其造成过伤害的角色:若体力值大于该角色,则受到其造成的1点伤害;若体力值小于等于该角色,则随机弃置一张手牌。',
|
||||
zhuihuan2_new:'追还',
|
||||
zhuihuan_info:'结束阶段开始时,你可以选择一名角色(对其他角色不可见)。记录所有对该角色造成过伤害的角色。该角色的下个准备阶段开始时停止记录,且所有记录过的角色:若体力值大于该角色,则受到其造成的2点伤害;若体力值小于等于该角色,则随机弃置两张手牌。',
|
||||
re_dongcheng:'董承',
|
||||
xuezhao:'血诏',
|
||||
xuezhao_info:'出牌阶段限一次,你可弃置一张手牌并选择至多X名其他角色(X为你的体力值)。这些角色依次选择是否交给你一张牌,若选择是,该角色摸一张牌且你本回合可多使用一张【杀】;若选择否,该角色本回合无法响应你使用的牌。',
|
||||
|
|
|
@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'yingbian',
|
||||
connect:true,
|
||||
character:{
|
||||
ol_huaxin:['male','wei',3,['caozhao','olxibing']],
|
||||
zhongyan:['female','jin',3,['bolan','yifa']],
|
||||
weiguan:['male','jin',3,['zhongyun','shenpin']],
|
||||
cheliji:['male','qun',4,['chexuan','qiangshou']],
|
||||
|
@ -22,13 +23,204 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterSort:{
|
||||
yingbian:{
|
||||
yingbian_pack1:['jin_simayi','jin_zhangchunhua','ol_lisu','simazhou','cheliji'],
|
||||
yingbian_pack1:['jin_simayi','jin_zhangchunhua','ol_lisu','simazhou','cheliji','ol_huaxin'],
|
||||
yingbian_pack2:['jin_simashi','jin_xiahouhui','zhanghuyuechen','shibao','jin_yanghuiyu'],
|
||||
yingbian_pack3:['jin_simazhao','jin_wangyuanji','duyu','weiguan'],
|
||||
yingbian_pack4:['zhongyan'],
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
caozhao:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
if(player.countCards('h')==0||!game.hasPlayer(function(current){
|
||||
return current!=player&¤t.hp<=player.hp;
|
||||
})) return false;
|
||||
var list=player.getStorage('caozhao');
|
||||
for(var i of lib.inpile){
|
||||
if(!list.contains(i)&&['basic','trick'].contains(get.type(i))) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
chooseButton:{
|
||||
dialog:function(event,player){
|
||||
var list=player.getStorage('caozhao'),vcards=[];
|
||||
for(var i of lib.inpile){
|
||||
if(!list.contains(i)){
|
||||
var type=get.type(i);
|
||||
if(type=='basic'||type=='trick') vcards.push([type,'',i]);
|
||||
}
|
||||
}
|
||||
return ui.create.dialog('草诏',[vcards,'vcard']);
|
||||
},
|
||||
check:function(button){
|
||||
return _status.event.player.getUseValue({name:button.link[2],isCard:true},null,true);
|
||||
},
|
||||
backup:function(links,player){
|
||||
return {
|
||||
audio:'caozhao',
|
||||
cardname:links[0][2],
|
||||
filterCard:true,
|
||||
position:'h',
|
||||
check:function(card){
|
||||
return player.getUseValue({name:lib.skill.caozhao_backup.cardname})-((player.getUseValue(card,null,true)+0.1)/(get.value(card)/6));
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.hp<=player.hp;
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.showCards(cards,get.translation(player)+'发动【草诏】,声明'+get.translation(lib.skill.caozhao_backup.cardname));
|
||||
if(!player.storage.caozhao) player.storage.caozhao=[];
|
||||
player.storage.caozhao.push(lib.skill.caozhao_backup.cardname);
|
||||
'step 1'
|
||||
target.chooseControl().set('choiceList',[
|
||||
'令'+get.translation(player)+'将'+get.translation(cards[0])+'的牌名改为'+get.translation(lib.skill.caozhao_backup.cardname),
|
||||
'失去1点体力',
|
||||
]).set('ai',function(event,player){
|
||||
var target=_status.event.getParent().player;
|
||||
if(get.attitude(player,target)>0) return 0;
|
||||
if(player.hp>3||(player.hp>1&&player.hasSkill('zhaxiang'))) return 1;
|
||||
if(player.hp>2) return Math.random()>0.5?0:1;
|
||||
return 0;
|
||||
});
|
||||
'step 2'
|
||||
if(result.index==1){
|
||||
target.addExpose(0.2);
|
||||
target.loseHp();
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
player.chooseTarget('是否将'+get.translation(lib.skill.caozhao_backup.cardname)+'('+get.translation(card)+')交给一名其他角色?',lib.filter.notMe).set('ai',()=>-1);
|
||||
}
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
if(!target.storage.caozhao_info) target.storage.caozhao_info={};
|
||||
target.storage.caozhao_info[cards[0].cardid]=lib.skill.caozhao_backup.cardname;
|
||||
target.addSkill('caozhao_info');
|
||||
target.gain(cards,player,'give').gaintag.add('caozhao');
|
||||
}
|
||||
else{
|
||||
if(!player.storage.caozhao_info) player.storage.caozhao_info={};
|
||||
player.storage.caozhao_info[cards[0].cardid]=lib.skill.caozhao_backup.cardname;
|
||||
player.addGaintag(cards,'caozhao');
|
||||
player.addSkill('caozhao_info');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
result:{
|
||||
player:2,
|
||||
target:0.1,
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
prompt:function(links,player){
|
||||
return '将一张手牌声明为'+get.translation(links[0][2]);
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
},
|
||||
caozhao_info:{
|
||||
charlotte:true,
|
||||
mod:{
|
||||
cardname:function(card,player){
|
||||
var map=player.storage.caozhao_info;
|
||||
if(map&&map[card.cardid]&&get.itemtype(card)=='card'&&card.hasGaintag('caozhao')) return map[card.cardid];
|
||||
},
|
||||
cardnature:function(card,player){
|
||||
var map=player.storage.caozhao_info;
|
||||
if(map&&map[card.cardid]&&get.itemtype(card)=='card'&&card.hasGaintag('caozhao')) return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
olxibing:{
|
||||
audio:2,
|
||||
trigger:{
|
||||
player:'damageEnd',
|
||||
source:'damageSource',
|
||||
},
|
||||
filter:function(event,player){
|
||||
return event.player&&event.source&&event.player!=event.source&&
|
||||
event.player.isAlive()&&event.source.isAlive()&&
|
||||
(event.player.countCards('he')>0||event.source.countCards('he')>0);
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=(player==trigger.player?trigger.source:trigger.player);
|
||||
event.target=target;
|
||||
player.chooseTarget(get.prompt('olxibing'),'弃置自己或'+get.translation(target)+'的两张牌,然后手牌数较少的角色摸两张牌且不能对你使用牌直到回合结束',function(card,player,target){
|
||||
if(target!=player&&target!=_status.event.target) return false;
|
||||
return target.countCards('he')>0;
|
||||
}).set('target',target).set('ai',function(targetx){
|
||||
var player=_status.event.player,target=_status.event.target;
|
||||
if(target==targetx){
|
||||
if(get.attitude(player,target)>0) return 0;
|
||||
var cards=target.getCards('he',function(card){
|
||||
return lib.filter.canBeDiscarded(card,player,target);
|
||||
}).sort(function(a,b){
|
||||
return get.buttonValue(b)-get.buttonValue(a);
|
||||
});
|
||||
if((target.countCards('h')-player.countCards('h'))>=Math.max(0,Math.min(2,cards.length)-target.countCards('e',function(card){
|
||||
var index=cards.indexOf(card);
|
||||
return index!=-1&&index<2;
|
||||
}))) return 1;
|
||||
return 0;
|
||||
}
|
||||
var cards=player.getCards('he',function(card){
|
||||
return lib.filter.cardDiscardable(card,player,'olxibing')
|
||||
}).sort(function(a,b){
|
||||
return get.useful(a)-get.useful(b);
|
||||
});
|
||||
if(player.countCards('h')-target.countCards('h')<Math.max(0,Math.min(cards.length,2)-player.countCards('e',function(card){
|
||||
var index=cards.indexOf(card);
|
||||
return index!=-1&&index<2;
|
||||
}))&&(cards.length<2||get.value(cards[1])<5.5)) return 0.8;
|
||||
return 0;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('olxibing',target);
|
||||
var target=result.targets[0];
|
||||
if(target==player) player.chooseToDiscard('he',2,true);
|
||||
else player.discardPlayerCard(target,'he',true,2);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(player.isIn()&&target.isIn()){
|
||||
var hs=player.countCards('h'),ts=target.countCards('h');
|
||||
if(hs!=ts){
|
||||
var drawer=hs>ts?target:player;
|
||||
drawer.draw(2);
|
||||
player.addTempSkill('olxibing2');
|
||||
player.markAuto('olxibing2',[drawer]);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
olxibing2:{
|
||||
mod:{
|
||||
targetEnabled:function(card,player,target){
|
||||
if(target.getStorage('olxibing2').contains(player)) return false;
|
||||
},
|
||||
cardSavable:function(card,player,target){
|
||||
if(target.getStorage('olxibing2').contains(player)) return false;
|
||||
},
|
||||
},
|
||||
onremove:true,
|
||||
},
|
||||
bolan:{
|
||||
audio:2,
|
||||
initList:function(player){
|
||||
|
@ -768,6 +960,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(player!=game.me&&!player.isOnline()) game.delayx();
|
||||
player.chooseToDiscard(get.prompt('ciwei',trigger.player),'弃置一张牌,取消'+get.translation(trigger.card)+'的所有目标','he').set('ai',function(card){
|
||||
return (_status.event.goon/1.4)-get.value(card);
|
||||
}).set('goon',function(){
|
||||
|
@ -1434,6 +1627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(trigger.delay===false) game.delayx();
|
||||
var list=[];
|
||||
var suits=get.copy(player.storage.zhaoran2);
|
||||
suits.addArray(player.getCards('h').map(function(card){
|
||||
|
@ -2114,6 +2308,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yifa:'仪法',
|
||||
yifa2:'仪法',
|
||||
yifa_info:'锁定技,其他角色使用【杀】或黑色普通锦囊牌指定你为目标后,其手牌上限-1直到回合结束。',
|
||||
ol_huaxin:'OL华歆',
|
||||
caozhao:'草诏',
|
||||
caozhao_backup:'草诏',
|
||||
caozhao_info:'出牌阶段限一次,你可展示一张手牌并声明一种未以此法声明过的基本牌或普通锦囊牌,令一名体力不大于你的其他角色选择一项:令此牌视为你声明的牌,或其失去1点体力。然后若此牌声明成功,然后你可将其交给一名其他角色。',
|
||||
olxibing:'息兵',
|
||||
olxibing_info:'每当你受到其他角色造成的伤害后/对其他角色造成伤害后,你可弃置你或该角色两张牌,然后你们中手牌少的角色摸两张牌,以此法摸牌的角色不能使用牌指定你为目标直到回合结束。',
|
||||
|
||||
yingbian_pack1:'文德武备·理',
|
||||
yingbian_pack2:'文德武备·备',
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.110.8.3.2',
|
||||
'v1.9.110.8.3.3',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -4202,6 +4202,8 @@ window.noname_asset_list=[
|
|||
'image/character/yangwan.jpg',
|
||||
'image/character/zhangheng.jpg',
|
||||
'image/character/key_kyou.jpg',
|
||||
'image/character/ol_huaxin.jpg',
|
||||
'image/character/gaogan.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
|
@ -7860,7 +7860,7 @@
|
|||
lib.init.cordovaReady=function(){
|
||||
if(lib.device=='android'){
|
||||
document.addEventListener("pause", function(){
|
||||
if(!_status.paused2&&!_status.event.isMine()){
|
||||
if(!_status.paused2&&(typeof _status.event.isMine=='function'&&!_status.event.isMine())){
|
||||
ui.click.pause();
|
||||
}
|
||||
if(ui.backgroundMusic){
|
||||
|
@ -15250,7 +15250,10 @@
|
|||
lose:function(){
|
||||
"step 0"
|
||||
var evt=event.getParent();
|
||||
if(evt.name!='discard'&&event.type!='discard') return;
|
||||
if(evt.name!='discard'&&event.type!='discard'){
|
||||
event.delay=false;
|
||||
return;
|
||||
}
|
||||
if(evt.delay===false) event.delay=false;
|
||||
if(evt.animate!=false){
|
||||
evt.discardid=lib.status.videoId++;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
window.noname_update={
|
||||
version:'1.9.110.8.3.2',
|
||||
update:'1.9.110.8.3.1',
|
||||
version:'1.9.110.8.3.3',
|
||||
update:'1.9.110.8.3.2',
|
||||
changeLog:[
|
||||
'藤林杏',
|
||||
'国战许攸、夏侯霸、野司马昭',
|
||||
'华歆、高干',
|
||||
'国战潘濬、诸葛恪、黄祖、野公孙渊',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
|
@ -17,7 +17,7 @@ window.noname_update={
|
|||
//'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/yingbian.js',
|
||||
'card/yingbian.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
|
@ -31,17 +31,17 @@ window.noname_update={
|
|||
//'character/old.js',
|
||||
//'character/ow.js',
|
||||
'character/rank.js',
|
||||
'character/refresh.js',
|
||||
//'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
//'character/sp.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
//'character/tw.js',
|
||||
'character/standard.js',
|
||||
//'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
//'character/yingbian.js',
|
||||
'character/yijiang.js',
|
||||
'character/yingbian.js',
|
||||
//'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
|
@ -50,14 +50,14 @@ window.noname_update={
|
|||
//'mode/boss.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/doudizhu.js',
|
||||
'mode/doudizhu.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/identity.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/versus.js',
|
||||
//'game/game.js',
|
||||
'game/game.js',
|
||||
//'game/keyWords.js',
|
||||
//'game/NoSleep.js',
|
||||
//'game/config.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
|
@ -1793,10 +1793,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
zhuSkill_xiangyang:'襄阳',
|
||||
zhuSkill_xiangyang_info:'回合结束时,你可获得一个额外的出牌阶段或摸牌阶段。',
|
||||
zhuSkill_jiangling:'江陵',
|
||||
zhuSkill_jiangling_info:'当你使用【杀】或普通锦囊牌选择唯一目标时,你可为此牌增加一个目标。',
|
||||
zhuSkill_jiangling_info:'当你使用【杀】或普通锦囊牌选择唯一目标时,你可为此牌增加一个目标(该目标不可响应此牌)。',
|
||||
zhuSkill_fancheng:'樊城',
|
||||
zhuSkill_fancheng2:'樊城',
|
||||
zhuSkill_fancheng_info:'限定技,出牌阶段,你可获得如下效果:每回合限两次,当你造成伤害时,此伤害+1。',
|
||||
zhuSkill_fancheng_info:'限定技,出牌阶段,你可获得如下效果直到回合结束:每回合限X次,当你造成伤害时,此伤害+1(X为游戏轮数且至少为2)。',
|
||||
binglin_shaxue:'歃血',
|
||||
binglin_shaxue_info:'锁定技,每局游戏限三次,当你受到队友造成的伤害时,你防止此伤害。',
|
||||
binglin_neihong:'内讧',
|
||||
|
@ -1967,7 +1967,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(event.targets){
|
||||
player.logSkill('zhuSkill_jiangling',event.targets);
|
||||
if(trigger.targets.contains(event.targets[0])) trigger.targets.removeArray(event.targets);
|
||||
else trigger.targets.addArray(event.targets);
|
||||
else{
|
||||
trigger.directHit.addArray(event.targets);
|
||||
trigger.targets.addArray(event.targets);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -1986,10 +1989,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{source:'damageBegin2'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
usable:2,
|
||||
onremove:true,
|
||||
filter:function(event,player){
|
||||
return player.countMark('zhuSkill_fancheng2')<Math.max(2,game.roundNumber);
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
player.addMark('zhuSkill_fancheng2',1,false);
|
||||
},
|
||||
},
|
||||
binglin_shaxue:{
|
||||
|
|
343
mode/guozhan.js
343
mode/guozhan.js
|
@ -259,7 +259,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'5':[
|
||||
'gz_lukang','gz_caoren','gz_lvfan',
|
||||
'gz_machao','gz_ganfuren','gz_madai',
|
||||
'gz_jiling','gz_pangde',
|
||||
'gz_jiling','gz_pangde','gz_huangzu',
|
||||
],
|
||||
'4':[
|
||||
'gz_re_lidian','gz_yuejin','gz_huangzhong',
|
||||
|
@ -269,6 +269,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'3':[
|
||||
'gz_simayi','gz_luxun','gz_wuguotai',
|
||||
'gz_caiwenji','gz_shibao','gz_xuyou',
|
||||
'gz_zhugeke',
|
||||
],
|
||||
'2':[
|
||||
'gz_re_lusu','gz_zhangzhang',
|
||||
|
@ -279,6 +280,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'gz_xunyu','gz_caopi','gz_liubei',
|
||||
'gz_fazheng','gz_dongzhuo','gz_yuji',
|
||||
'gz_liqueguosi','gz_huanggai','gz_re_xushu',
|
||||
'gz_panjun',
|
||||
],
|
||||
},
|
||||
guozhanRank:{
|
||||
|
@ -296,6 +298,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'gz_lingtong','gz_sunshangxiang','gz_sunce',
|
||||
'gz_re_yuanshao','gz_yuanshu','gz_hetaihou',
|
||||
'gz_jin_simashi','gz_sp_duyu','gz_shibao',
|
||||
'gz_gongsunyuan',
|
||||
],
|
||||
'6':[
|
||||
'gz_zhenji','gz_guojia','gz_yujin',
|
||||
|
@ -310,7 +313,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'gz_re_lusu','gz_sunquan','gz_ganning',
|
||||
'gz_zhangxiu','gz_liqueguosi','gz_huatuo',
|
||||
'gz_zhanghuyuechen','gz_re_xushu','gz_mifangfushiren',
|
||||
'gz_wujing','gz_weiguan','gz_miheng',
|
||||
'gz_huangzu','gz_weiguan','gz_miheng',
|
||||
],
|
||||
'4':[
|
||||
'gz_dianwei','gz_dengai','gz_xunyu',
|
||||
|
@ -319,6 +322,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'gz_zhangjiao','gz_pangde','gz_liuqi',
|
||||
'gz_jin_zhangchunhua','gz_zongyu','gz_shixie',
|
||||
'gz_jin_yanghuiyu','gz_tangzi','gz_yanbaihu',
|
||||
'gz_wujing','gz_zhugeke',
|
||||
],
|
||||
'3':[
|
||||
'gz_xiahoudun','gz_yuejin','gz_caoren',
|
||||
|
@ -339,6 +343,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'gz_menghuo','gz_ganfuren','gz_guanyu',
|
||||
'gz_lukang','gz_jiangqing','gz_chendong',
|
||||
'gz_zoushi','gz_panfeng','gz_tianfeng',
|
||||
'gz_panjun',
|
||||
],
|
||||
},
|
||||
characterSort:{
|
||||
|
@ -350,9 +355,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
guozhan_quan:["gz_cuimao","gz_yujin","gz_wangping","gz_fazheng","gz_wuguotai","gz_lukang","gz_yuanshu","gz_zhangxiu"],
|
||||
guozhan_jun:["gz_jun_caocao","gz_jun_sunquan","gz_jun_liubei","gz_jun_zhangjiao"],
|
||||
guozhan_jin:['gz_jin_simayi','gz_jin_simazhao','gz_jin_simashi','gz_jin_zhangchunhua','gz_jin_wangyuanji','gz_jin_xiahouhui','gz_duyu','gz_zhanghuyuechen','gz_jin_yanghuiyu','gz_simazhou','gz_shibao','gz_weiguan','gz_zhongyan'],
|
||||
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao'],
|
||||
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_xuyou','gz_xiahouba'],
|
||||
guozhan_yexinjia:['gz_zhonghui','gz_simazhao'],
|
||||
guozhan_single:['gz_re_xushu','gz_yanbaihu','gz_wujing','gz_dongzhao','gz_huangzu','gz_zhugeke'],
|
||||
guozhan_double:['gz_tangzi','gz_liuqi','gz_mengda','gz_mifangfushiren','gz_zhanglu','gz_shixie','gz_xuyou','gz_xiahouba','gz_panjun'],
|
||||
guozhan_yexinjia:['gz_zhonghui','gz_simazhao','gz_gongsunyuan'],
|
||||
guozhan_zongheng:['gz_huaxin','gz_luyusheng','gz_zongyu','gz_miheng'],
|
||||
guozhan_others:["gz_lingcao","gz_lifeng","gz_beimihu","gz_jianggan","gz_key_ushio","gz_sp_duyu"],
|
||||
}
|
||||
|
@ -376,10 +381,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
gz_zhonghui:['male','ye',4,['gzquanji','gzpaiyi']],
|
||||
gz_simazhao:['male','ye',3,['gzzhaoxin','gzsuzhi']],
|
||||
gz_gongsunyuan:['male','ye',4,['gzhuaiyi','gzzisui']],
|
||||
gz_tangzi:['male','wei',4,['gzxingzhao'],['doublegroup:wei:wu','gzskin']],
|
||||
gz_mengda:['male','wei',4,['qiuan','liangfan'],['doublegroup:wei:shu']],
|
||||
gz_liuqi:['male','qun',3,['gzwenji','gztunjiang'],['doublegroup:qun:shu','gzskin']],
|
||||
gz_mifangfushiren:['male','wu',4,['mffengshi'],['doublegroup:wu:shu']],
|
||||
gz_mifangfushiren:['male','shu',4,['mffengshi'],['doublegroup:shu:wu']],
|
||||
gz_shixie:['male','qun',3,['gzbiluan','gzlixia'],['doublegroup:qun:wu','gzskin']],
|
||||
gz_zhanglu:['male','qun',3,['gzbushi','gzmidao'],['doublegroup:qun:wei','gzskin']],
|
||||
gz_dongzhao:['male','wei',3,['quanjin','zaoyun']],
|
||||
|
@ -388,6 +394,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gz_yanbaihu:['male','qun',4,['gzzhidao','gzyjili'],['gzskin']],
|
||||
gz_xuyou:['male','wei',3,['gzchenglve','gzshicai'],['doublegroup:wei:qun']],
|
||||
gz_xiahouba:['male','shu',4,['gzbaolie'],['doublegroup:shu:wei']],
|
||||
gz_panjun:['male','wu',3,['gzguanwei','xinfu_gongqing'],['doublegroup:wu:shu']],
|
||||
gz_huangzu:['male','qun',4,['gzwangong']],
|
||||
gz_zhugeke:['male','wu',3,['aocai','gzduwu']],
|
||||
|
||||
gz_caocao:['male','wei',4,['jianxiong']],
|
||||
gz_simayi:['male','wei',3,['fankui','guicai']],
|
||||
|
@ -522,6 +531,308 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
skill:{
|
||||
//诸葛恪
|
||||
gzduwu:{
|
||||
limited:true,
|
||||
audio:'duwu',
|
||||
enable:'phaseUse',
|
||||
delay:false,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('gzduwu');
|
||||
player.addSkill('gzduwu_count');
|
||||
event.players=game.filterPlayer(function(current){
|
||||
if(current==player) return false;
|
||||
return player.inRange(current)&&!current.isFriendOf(player);
|
||||
}).sort(lib.sort.seat);
|
||||
player.line(event.players,'green');
|
||||
game.delayx();
|
||||
player.chooseJunlingFor(event.players[0]).set('prompt','为所有目标角色选择军令牌');
|
||||
'step 1'
|
||||
event.junling=result.junling;
|
||||
event.targets=result.targets;
|
||||
event.num=0;
|
||||
'step 2'
|
||||
if(num<event.players.length) event.current=event.players[num];
|
||||
if(event.current&&event.current.isAlive()){
|
||||
event.current.chooseJunlingControl(player,event.junling,targets).set('prompt','黩武').set('choiceList',[
|
||||
'执行该军令',
|
||||
'不执行该军令并受到1点伤害',
|
||||
]).set('ai',function(){
|
||||
var evt=_status.event.getParent(2);
|
||||
return get.junlingEffect(evt.player,evt.junling,evt.current,evt.targets,evt.current)>(get.damageEffect(evt.current,evt.player,evt.current)/get.attitude(evt.current,evt.current))?0:1;
|
||||
});
|
||||
}
|
||||
else event.goto(4);
|
||||
'step 3'
|
||||
if(result.index==0){
|
||||
event.current.carryOutJunling(player,event.junling,targets);
|
||||
}
|
||||
else event.current.damage();
|
||||
'step 4'
|
||||
game.delayx();
|
||||
event.num++;
|
||||
if(event.num<event.players.length) event.goto(2);
|
||||
'step 5'
|
||||
player.draw();
|
||||
var list=player.getStorage('gzduwu_count').filter(function(target){
|
||||
return target.isAlive();
|
||||
});
|
||||
if(list.length) player.loseHp();
|
||||
player.removeSkill('gzduwu_count');
|
||||
},
|
||||
animationColor:'wood',
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
player:function(player){
|
||||
if(game.countPlayer(function(current){
|
||||
return !current.isFriendOf(player)&&!player.inRange(current);
|
||||
})<=Math.min(2,Math.max(0,game.roundNumber-1))) return 1;
|
||||
if(player.hp==1) return 1;
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
count:{
|
||||
sub:true,
|
||||
trigger:{global:'dyingBegin'},
|
||||
silent:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return event.getParent('gzduwu').player==player;
|
||||
},
|
||||
content:function(){
|
||||
player.markAuto('gzduwu_count',[trigger.player]);
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
//黄祖
|
||||
gzwangong:{
|
||||
audio:'wangong',
|
||||
trigger:{global:'phaseZhunbeiBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.isIn()&&player.countCards('e')>0&&player.canUse('sha',event.player,false);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCard('e',get.prompt('gzwangong',trigger.player),'将装备区内的一张牌当做'+(player.hp>trigger.player.hp?'不可响应的':'')+'【杀】对其使用',function(card,player){
|
||||
return player.canUse({
|
||||
name:'sha',
|
||||
cards:[card],
|
||||
},_status.event.target,false);
|
||||
}).set('target',trigger.player).set('ai',function(card){
|
||||
var evt=_status.event,eff=get.effect(evt.target,{
|
||||
name:'sha',
|
||||
cards:[card],
|
||||
},evt.player,evt.player);
|
||||
if(eff<=0) return 0;
|
||||
var val=get.value(card);
|
||||
if(get.attitude(evt.player,evt.target)<-2&&evt.target.hp<=Math.min(2,evt.player.countCards('e'),evt.player.hp-1)) return 2/Math.max(1,val);
|
||||
return eff-val;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var next=player.useCard({name:'sha'},result.cards,'gzwangong',trigger.player,false);
|
||||
if(player.hp>trigger.player.hp) next.oncard=function(){
|
||||
_status.event.directHit.add(trigger.player);
|
||||
}
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(trigger.player.isDead()){
|
||||
player.mayChangeVice();
|
||||
}
|
||||
else if(lib.skill.gzwangong.filter(trigger,player)) event.goto(0);
|
||||
},
|
||||
ai:{
|
||||
directHit_ai:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(_status.event.getParent().name=='gzwangong'&&arg.card&&arg.card.name=='sha'&&
|
||||
arg.target&&arg.target==_status.event.target&&player.hp>arg.target.hp) return true;
|
||||
return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
//公孙渊
|
||||
gzhuaiyi:{
|
||||
audio:'rehuaiyi',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
delay:false,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h',{color:'red'})&&player.countCards('h',{color:'black'});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.showHandcards();
|
||||
'step 1'
|
||||
player.chooseControl('红色','黑色').set('ai',function(){
|
||||
var player=_status.event.player,num=player.maxHp-player.getStorage('gzhuaiyi').length;
|
||||
if(player.countCards('h',{color:'red'})<=num&&
|
||||
player.countCards('h',{color:'black'})>num) return '红色';
|
||||
return '黑色';
|
||||
});
|
||||
'step 2'
|
||||
event.control=result.control;
|
||||
var cards;
|
||||
if(event.control=='红色'){
|
||||
cards=player.getCards('h',{color:'red'});
|
||||
}
|
||||
else{
|
||||
cards=player.getCards('h',{color:'black'});
|
||||
}
|
||||
player.discard(cards);
|
||||
event.num=cards.length;
|
||||
'step 3'
|
||||
player.chooseTarget('请选择至多'+get.cnNumber(event.num)+'名有牌的其他角色,获得这些角色的各一张牌。',[1,event.num],function(card,player,target){
|
||||
return target!=player&&target.countCards('he')>0;
|
||||
}).set('ai',function(target){
|
||||
return -get.attitude(_status.event.player,target)+0.5;
|
||||
});
|
||||
'step 4'
|
||||
if(result.bool&&result.targets){
|
||||
player.line(result.targets,'green');
|
||||
event.targets=result.targets;
|
||||
event.targets.sort(lib.sort.seat);
|
||||
event.cards=[];
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
'step 5'
|
||||
if(player.isAlive()&&event.targets.length){
|
||||
player.gainPlayerCard(event.targets.shift(),'he',true);
|
||||
}
|
||||
else event.finish();
|
||||
'step 6'
|
||||
if(result.bool&&result.cards&&result.cards.length) event.cards.addArray(result.cards);
|
||||
if(event.targets.length) event.goto(5);
|
||||
'step 7'
|
||||
var hs=player.getCards('h');
|
||||
cards=cards.filter(function(card){
|
||||
return get.type(card)=='equip'&&hs.contains(card);
|
||||
});
|
||||
if(cards.length){
|
||||
player.lose(cards,ui.special,'toStorage');
|
||||
game.log(player,'将',cards,'作为“异”置于武将牌上');
|
||||
player.markAuto('gzhuaiyi',cards);
|
||||
}
|
||||
else event.finish();
|
||||
'step 8'
|
||||
game.delayx();
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
player:function(player,target){
|
||||
var num=player.maxHp-player.getStorage('gzhuaiyi').length;
|
||||
if(player.countCards('h',{color:'red'})<=num) return 1;
|
||||
if(player.countCards('h',{color:'black'})<=num) return 1;
|
||||
return 0;
|
||||
},
|
||||
}
|
||||
},
|
||||
marktext:'异',
|
||||
intro:{content:'cards',onunmark:'throw'},
|
||||
},
|
||||
gzzisui:{
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !event.numFixed&&player.getStorage('gzhuaiyi').length>0;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num+=player.getStorage('gzhuaiyi').length;
|
||||
},
|
||||
group:'gzzisui_die',
|
||||
subSkill:{
|
||||
die:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.getStorage('gzhuaiyi').length>player.maxHp;
|
||||
},
|
||||
content:function(){
|
||||
player.die();
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//潘濬
|
||||
gzguanwei:{
|
||||
audio:'xinfu_guanwei',
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.isUnseen();
|
||||
})
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('gzguanwei'),function(card,player,target){
|
||||
return target!=player&&target.isUnseen();
|
||||
}).set('ai',function(target){
|
||||
if(get.attitude(_status.event.player,target)>0) return Math.random()+Math.sqrt(target.hp);
|
||||
return Math.random()+Math.sqrt(Math.max(1,4-target.hp));
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.logSkill('gzguanwei',target);
|
||||
player.storage.gzguanwei2=target;
|
||||
player.addTempSkill('gzguanwei2',{player:'phaseBegin'});
|
||||
target.addSkill('gzguanwei_ai');
|
||||
game.delayx();
|
||||
}
|
||||
},
|
||||
},
|
||||
gzguanwei_ai:{
|
||||
charlotte:true,
|
||||
ai:{
|
||||
mingzhi_yes:true,
|
||||
mingzhi_no:true,
|
||||
skillTagFilter:function(player,tag){
|
||||
if(_status.brawl) return false;
|
||||
var group=lib.character[player.name1][1];
|
||||
if(tag=='mingzhi_yes'){
|
||||
if(group!='ye'&&player.wontYe(group)&&game.hasPlayer(function(current){
|
||||
return current.storage.gzguanwei2==player&¤t.identity==group;
|
||||
})) return true;
|
||||
return false;
|
||||
}
|
||||
if(group=='ye'&&!player.wontYe(group)) return true;
|
||||
return game.hasPlayer(function(current){
|
||||
return current.storage.gzguanwei2==player&¤t.identity!=group;
|
||||
})
|
||||
},
|
||||
},
|
||||
},
|
||||
gzguanwei2:{
|
||||
trigger:{global:'showCharacterAfter'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
filter:function(event,player){
|
||||
return event.player==player.storage.gzguanwei2;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.removeSkill('gzguanwei2');
|
||||
trigger.player.removeSkill('gzguanwei_ai');
|
||||
if(player.isFriendOf(trigger.player)) game.asyncDraw([player,trigger.player].sortBySeat(_status.currentPhase),2);
|
||||
else trigger.player.loseHp();
|
||||
'step 1'
|
||||
game.delayx();
|
||||
},
|
||||
mark:'character',
|
||||
intro:{content:'已指定$为目标'},
|
||||
},
|
||||
//司马昭
|
||||
gzzhaoxin:{
|
||||
audio:'zhaoran',
|
||||
|
@ -8058,6 +8369,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var group=lib.character[player.name1][1];
|
||||
player.chooseControl('bumingzhi','明置'+get.translation(player.name1),
|
||||
'明置'+get.translation(player.name2),'tongshimingzhi',true).ai=function(event,player){
|
||||
if(player.hasSkillTag('mingzhi_yes')) return get.rand(1,2);
|
||||
if(player.hasSkillTag('mingzhi_no')) return 0;
|
||||
var popu=get.population(lib.character[player.name1][1])
|
||||
if(popu>=2||(popu==1&&game.players.length<=4)){
|
||||
return Math.random()<0.5?3:(Math.random()<0.5?2:1);
|
||||
|
@ -8114,6 +8427,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
var nai=function(){
|
||||
var player=_status.event.player;
|
||||
if(!_status.event.yes) return false;
|
||||
if(player.hasSkillTag('mingzhi_no')) return false;
|
||||
if(player.hasSkillTag('mingzhi_yes')) return true;
|
||||
if(player.identity!='unknown') return true;
|
||||
if(Math.random()<0.5) return true;
|
||||
var info=get.info(_status.event.hsskill);
|
||||
|
@ -8203,7 +8518,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
||!lib.junList.contains(name.slice(3))||!lib.character['gz_jun_'+name.slice(3)]
|
||||
||(player.identity!='ye'&&player.identity!='unknown'&&lib.character[player.name1][1]!=player.identity)) event.finish();
|
||||
else{
|
||||
player.chooseBool("是否将主武将牌替换为君主武将?").ai=function(){return true};
|
||||
player.chooseBool("是否将主武将牌替换为君主武将?").ai=function(){
|
||||
var player=_status.event.player;
|
||||
return player.name1=='gz_liubei'||!player.hasSkillTag('mingzhi_no');
|
||||
};
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
|
@ -9286,6 +9604,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gzzhaoxin_info:'当你受到伤害后,你可展示所有手牌,然后与一名手牌数不大于你的其他角色交换手牌。',
|
||||
gzsuzhi:'夙智',
|
||||
gzsuzhi_info:'锁定技,每回合累计限三次;①当你于回合内因执行【杀】或【决斗】造成伤害时,此伤害+1;②你于回合内使用锦囊牌时摸一张牌,且无距离限制;③当有其他角色于你的回合内弃置牌后,你获得其中的一张;④结束阶段,你获得〖反馈〗直到下回合开始。',
|
||||
gzhuaiyi:'怀异',
|
||||
gzhuaiyi_info:'出牌阶段限一次,你可以展示所有手牌。若其中包含两种颜色,则你可以弃置其中一种颜色的所有牌,然后获得至多等量名角色的各一张牌。然后你将以此法获得的装备牌置于武将牌上,称为“异”',
|
||||
gzzisui:'恣睢',
|
||||
gzzisui_info:'锁定技,摸牌阶段,你多摸X张牌。结束阶段开始时,若X大于你的体力上限,你死亡(X为“异”数)。',
|
||||
|
||||
gz_tangzi:'唐咨',
|
||||
gz_mengda:'孟达',
|
||||
|
@ -9293,6 +9615,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gz_mifangfushiren:'糜芳傅士仁',
|
||||
gz_shixie:'士燮',
|
||||
gz_zhanglu:'张鲁',
|
||||
gzduwu:'黩武',
|
||||
gzduwu_info:'限定技,出牌阶段,你可以选择一个“军令”。你令攻击范围内所有的非己方角色选择是否执行。若有角色选择否,则你对其造成1点伤害。你摸一张牌。若有角色于此技能结算过程中进入濒死状态且存活,则你失去1点体力。',
|
||||
gzwangong:'挽弓',
|
||||
gzwangong_info:'其他角色的准备阶段开始时,你可将装备区内的一张牌当做【杀】对其使用且可重复此流程。若你的体力值大于该角色,则此【杀】不可被响应。若该角色于此技能的结算流程中死亡,则你可以变更副将。',
|
||||
gzguanwei:'观微',
|
||||
gzguanwei2:'观微',
|
||||
gzguanwei_info:'准备阶段开始时,你可以选择一名未确定势力的其他角色。当其于你的下回合开始前首次明置武将牌后,若其:与你势力相同,则你与其各摸两张牌;与你势力不同,则其失去1点体力。',
|
||||
gzchenglve:'成略',
|
||||
gzchenglve_info:'己方角色使用牌指定第一个目标后,若此牌的目标数大于1,则你可以令其摸一张牌。此牌结算结束后,若你受到过渠道为此牌的伤害,则你可以令一名没有“阴阳鱼”的己方角色获得一枚“阴阳鱼”。',
|
||||
gzbaolie:'豹烈',
|
||||
|
|
Loading…
Reference in New Issue