This commit is contained in:
Spmario233 2021-08-18 21:42:06 +08:00
parent d095f7cc16
commit 119d02a195
15 changed files with 781 additions and 47 deletions

View File

@ -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{

View File

@ -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

View File

@ -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"],

View File

@ -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:'夺冀',

View File

@ -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',

View File

@ -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:"铜雀台",

View File

@ -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为你的体力值。这些角色依次选择是否交给你一张牌若选择是该角色摸一张牌且你本回合可多使用一张【杀】若选择否该角色本回合无法响应你使用的牌。',

View File

@ -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&&current.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:'文德武备·备',

View File

@ -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',

View File

@ -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++;

View File

@ -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',

BIN
image/character/gaogan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -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次当你造成伤害时此伤害+1X为游戏轮数且至少为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:{

View File

@ -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&&current.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&&current.identity==group;
})) return true;
return false;
}
if(group=='ye'&&!player.wontYe(group)) return true;
return game.hasPlayer(function(current){
return current.storage.gzguanwei2==player&&current.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:'豹烈',