猜猜看啊

This commit is contained in:
Spmario233 2020-11-07 16:52:28 +08:00
parent 303f2b578e
commit e16c401511
14 changed files with 453 additions and 292 deletions

View File

@ -621,10 +621,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
trigger.untrigger();
trigger.responded=true;
trigger.result={bool:true,card:result.links[0],cards:result.links.slice(0)};
var muniu=player.getEquip(5);
muniu.cards.remove(result.links[0]);
lib.skill.muniu_skill.sync(muniu);
player.updateMarks();
}
},
ai:{
@ -668,18 +664,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
selectCard:-1,
viewAs:links[0],
precontent:function(){
var muniu=player.getEquip(5);
var card=event.result.card;
if(muniu&&muniu.cards){
muniu.cards.remove(event.result.card);
lib.skill.muniu_skill.sync(muniu);
}
event.result.card=get.autoViewAs(card);
event.result.cards=[card];
delete event.result.skill;
player.updateMarks();
}
}
- delete event.result.skill;
- },
};
},
prompt:function(links){
return '选择'+get.translation(links)+'的目标';
@ -742,7 +729,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
muniu_skill7:{
filter:function(){return false},
hiddenCard:function(player,name){
var muniu=player.getEquip(5);
if(!muniu.cards) return false;
@ -752,6 +738,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
return false;
},
trigger:{global:'cardsGotoOrderingEnd'},
silent:true,
firstDo:true,
filter:function(event,player){
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards) return false;
return event.cards&&event.cards.filter(function(card){
return muniu.cards.contains(card);
}).length>0;
},
content:function(){
var muniu=player.getEquip(5);
if(muniu&&muniu.cards){
muniu.cards.remove(trigger.cards);
lib.skill.muniu_skill.sync(muniu);
}
player.updateMarks();
},
},
huogong2:{},
jiu:{

View File

@ -1958,6 +1958,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
delete event.wuxieresult;
delete event.wuxieresult2;
if(trigger.multitarget){
event.targets=trigger.targets;
}
@ -1970,7 +1972,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
event.sourcex2=trigger.player;
}
event.source=trigger.player;
event.state=true;
if(event.state==undefined) event.state=true;
event.card=trigger.card;
event._global_waiting=true;
event.tempnowuxie=(trigger.targets&&trigger.targets.length>1&&!trigger.multitarget);

View File

@ -10952,7 +10952,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
inari_huhun:'狐魂',
inari_huhun_info:'锁定技,你的♣牌的花色均视为♦。你的手牌上限+1。',
shiina_qingshen:'轻身',
shiina_qingshen_info:'当你受到或造成伤害后,你可以获得此次伤害的渠道对应的实体牌,然后将等量的武将牌置于你的武将牌上,称为「轻」。锁定技,你的手牌上限和攻击范围+XX为「轻」数。',
shiina_qingshen_info:'当你受到或造成伤害后,你可以获得此次伤害的渠道对应的实体牌,然后将等量的牌置于你的武将牌上,称为「轻」。锁定技,你的手牌上限和攻击范围+XX为「轻」数。',
shiina_feiyan:'飞燕',
shiina_feiyan_info:'一名其他角色的回合开始时,若其在你的攻击范围内,则你可以将一张「轻」置于弃牌堆,然后视为对其使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。你于此【杀】的结算流程中视为拥有技能【铁骑】。',
shiina_retieji:'铁骑',

View File

@ -3602,7 +3602,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kagari:'篝',
kagari_zongsi:'纵丝',
kagari_zongsi_info:'出牌阶段限一次,你可以选择一张不在游戏外的牌,然后将其置于牌堆/弃牌堆的顶部/底部或一名角色的对应区域内。',
key_shiki:'神山识',
key_shiki:'神山识',
key_shiki_ab:'神山识',
shiki_omusubi:'御结',
shiki_omusubi_info:'一轮游戏开始时你可以减1点体力上限然后将一名其他角色武将牌上的技能加入到你的武将牌上。',
shiki_omusubi_append:'<span style="font-family: yuanli">来吧,羽依里。用你的手,让我变成那只真正的鬼吧!</span>',

View File

@ -11,11 +11,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu","xin_jianyong","xin_gongsunzan","xin_zhuran"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan"],
},
},
character:{
xin_zhuran:['male','wu',4,['mobiledanshou'],['unseen']],
xin_gongsunzan:['male','qun',4,['xinyicong','qiaomeng']],
dingyuan:['male','qun',4,['beizhu']],
xin_jianyong:['male','shu',3,['xinqiaoshui','xinjyzongshi']],
@ -42,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangbiao:['male','qun',3,['zhaohan','rangjie','yizheng']],
re_sp_zhugeliang:["male","shu",3,["bazhen","rehuoji","rekanpo"],[]],
xin_xiahoudun:['male','wei',4,['reganglie','xinqingjian']],
zhangyì:['male','shu',4,['zhiyi']],
zhangyì:['male','shu',4,['rezhiyi']],
jiakui:['male','wei',3,['zhongzuo','wanlan']],
re_jikang:["male","wei",3,["new_qingxian","new_juexiang"]],
old_bulianshi:['female','wu',3,['anxu','zhuiyi']],
@ -299,6 +300,51 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
skill:{
//手杀朱然
//设计师你改技能有瘾🐴
mobiledanshou:{
trigger:{global:'phaseJieshuBegin'},
audio:2,
direct:true,
filter:function(event,player){
if(player.countCards('he')>=event.player.countCards('h')) return true;
return game.hasPlayer2(function(current){
return current.getHistory('useCard',function(evt){
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
}).length;
});
},
content:function(){
'step 0'
var list=[];
event.addIndex=0;
var num=game.countPlayer2(function(current){
return current.getHistory('useCard',function(evt){
return get.type(evt.card)!='equip'&&evt.targets.contains(player);
}).length;
});
event.num=num;
if(num) list.push('摸'+get.cnNumber(num)+'张牌');
else event.addIndex++;
var num2=trigger.player.countCards('h');
event.num2=num2;
if(num2&&player.countCards('he')>=num2) list.push('弃置'+get.cnNumber(num2)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害');
else if(!num2) list.push('对'+get.translation(trigger.player)+'造成1点伤害');
player.chooseControl('cancel2').set('prompt',get.prompt('mobiledanshou')).set('choiceList',list);
'step 1'
if(result.control!='cancel2'){
player.logSkill('mobiledanshou',trigger.player);
if(result.index+event.addIndex==0){
player.draw(num);
event.finish();
}
else if(event.num2) player.chooseToDiscard('he',true,event.num2);
}
else event.finish();
'step 2'
trigger.player.damage();
},
},
//丁原
//程序员和设计师至少有一个脑子有坑
beizhu:{
@ -2389,6 +2435,58 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
},
rezhiyi:{
audio:'zhiyi',
trigger:{global:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.getHistory('useCard',function(card){
return get.type(card.card)=='basic';
}).length>0||player.getHistory('respond',function(card){
return get.type(card.card)=='basic';
}).length>0;
},
content:function(){
'step 0'
var list=[];
player.getHistory('useCard',function(evt){
if(get.type(evt.card)!='basic') return;
var name=evt.card.name;
if(name=='sha'){
var nature=evt.card.nature;
switch(nature){
case 'fire':name='huosha';break;
case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break;
}
}
list.add(name);
});
player.getHistory('respond',function(evt){
if(get.type(evt.card)!='basic') return;
var name=evt.card.name;
if(name=='sha'){
var nature=evt.card.nature;
switch(nature){
case 'fire':name='huosha';break;
case 'thunder':name='leisha';break;
case 'kami':name='kamisha';break;
}
}
list.add(name);
});
player.chooseButton(['执义:选择要使用的牌,或点取消摸一张牌',[list.map(function(name){
return ['基本','',name];
}),'vcard']],function(button){
return _status.event.player.getUseValue({name:button.link[2],nature:button.link[3]});
},function(button){
return _status.event.player.hasUseTarget({name:button.link[2],nature:button.link[3]});
});
'step 1'
if(!result.bool) player.draw();
else player.chooseUseTarget({name:result.links[0][2],isCard:true,nature:result.links[0][3]});
},
},
zhiyi:{
audio:2,
trigger:{player:['useCard','respond']},
@ -5889,6 +5987,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiakui:'贾逵',
zhiyi:'执义',
zhiyi_info:'锁定技当你于一回合内使用或打出第一张基本牌时你选择一项1.摸一张牌。2.于此牌A若此牌是因响应牌B而使用或打出的则改为牌B的使用或打出流程结算完成后视为使用一张与此牌名称和属性相同的卡牌。',
rezhiyi:'执义',
rezhiyi_info:'锁定技一名角色的结束阶段开始时若你本回合内使用或打出过基本牌则你选择一项1.摸一张牌。2.视为使用一张本回合内使用或打出过的基本牌。',
zhongzuo:'忠佐',
zhongzuo_info:'一名角色的结束阶段开始时,若你于此回合内造成或受到过伤害,则你可以令一名角色摸两张牌。若该角色已受伤,则你摸一张牌。',
wanlan:'挽澜',
@ -6103,6 +6203,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beizhu:'备诛',
beizhu_draw:'备诛',
beizhu_info:'出牌阶段限一次你可以观看一名其他角色的手牌。若其中没有【杀】你弃置其一张牌然后你可令其获得牌堆中的一张【杀】有【杀】其依次对你使用这些【杀】当你因此受到1点伤害后你摸一张牌。',
xin_zhuran:'手杀朱然',
mobiledanshou:'胆守',
mobiledanshou_info:'一名角色的结束阶段开始时你可选择一项①摸X张牌X为本回合内目标包含你的非装备牌的数量。②弃置Y张牌并对当前回合角色造成1点伤害Y为其手牌数。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',
mobile_yijiang1:'手杀异构·一将成名',

View File

@ -2446,7 +2446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0"
player.chooseToCompare(target);
"step 1"
if(result.player&&get.name(result.player.name,player)=='sha') player.addTempSkill('rexianzhen4');
if(result.player&&get.name(result.player,player)=='sha') player.addTempSkill('rexianzhen4');
if(result.bool){
player.storage[event.name]=target;
player.addTempSkill(event.name+2);
@ -3382,54 +3382,78 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.updateMarks('rehuashen');
},
},
"reguhuo":{
reguhuo:{
audio:2,
group:["reguhuo_guess","reguhuo_respond","reguhuo_wuxie"],
derivation:'rechanyuan',
enable:"chooseToUse",
filter:function (event,player){
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
var list=['sha','tao','shan','jiu','taoyuan','wugu','juedou','huogong','jiedao','tiesuo','guohe','shunshou','wuzhong','wanjian','nanman'];
if(get.mode()=='guozhan'){
list=list.concat(['xietianzi','shuiyanqijunx','lulitongxin','lianjunshengyan','chiling','diaohulishan','yuanjiao','huoshaolianying']);
}
for(var i=0;i<list.length;i++){
if(event.filterCard({name:list[i]},player)) return true;
}
return false;
enable:'chooseToUse',
filter:function(event,player){
return player.countCards('h')>0&&!player.hasSkill('reguhuo_phase')&&
event.type!='respondShan'&&event.type!='wuxie';
},
chooseButton:{
dialog:function (){
dialog:function(){
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name=='wuxie') continue;
if(name=='sha'){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
for(var i of lib.inpile){
if(i=='shan'||i=='wuxie') continue;
var type=get.type(i);
if(type=='basic'||type=='trick') list.push([type,'',i]);
if(i=='sha'){
list.push([type,'',i,'fire']);
list.push([type,'',i,'thunder']);
}
else if(get.type(name)=='trick') list.push(['锦囊','',name]);
else if(get.type(name)=='basic') list.push(['基本','',name]);
}
return ui.create.dialog('蛊惑',[list,'vcard']);
},
filter:function (button,player){
filter:function(button,player){
var evt=_status.event.getParent();
if(evt&&evt.filterCard){
return evt.filterCard({name:button.link[2]},player,evt);
}
return true;
return evt.filterCard({name:button.link[2],nature:button.link[3]},player,evt);
},
backup:function (links,player){
check:function(button){
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var card={name:button.link[2],nature:button.link[3]};
var val=player.getUseValue(card);
if(val<=0) return 0;
if(hasEnemy){
if(!player.countCards('h',function(cardx){
if(card.name==cardx.name){
if(card.name!='sha') return true;
return get.nature(card)==get.nature(cardx);
}
return false;
})) return 0;
return 3*val;
}
return val;
},
backup:function(links,player){
return {
viewAs:{
name:links[0][2],
nature:links[0][3],
suit:'none',
number:null,
},
ai1:function(card){
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx=lib.skill.reguhuo_backup.viewAs;
if(hasEnemy){
if(card.name==cardx.name&&(card.name!='sha'||card.nature==cardx.nature)) return 10;
return 0;
}
return 6-get.value(card);
},
filterCard:true,
selectCard:1,
viewAs:{name:links[0][2],nature:links[0][3]},
position:'h',
}
},
prompt:function (links,player){
return '将一张手牌当'+get.translation(links[0][2])+'使用';
prompt:function(links){
return '将一张牌当'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
},
},
ai:{
@ -3439,209 +3463,219 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillTagFilter:function(player){
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
},
order:10,
result:{
player:1,
},
},
"reguhuo_guess":{
audio:'reguhuo',
trigger:{
player:"useCardBefore",
},
filter:function (event,player){
return event.skill=="reguhuo_backup"||event.skill=="reguhuo_wuxie";
},
forced:true,
direct:true,
priority:15,
content:function (){
'step 0'
player.logSkill('reguhuo_guess');
player.addTempSkill('reguhuo_phase');
player.popup(trigger.card.name,'metal');
player.lose(trigger.cards,ui.special);
player.line(trigger.targets,trigger.card.nature);
trigger.line=false;
event.prompt=get.translation(player)+'声明了'+get.translation(trigger.card.name)+',是否质疑?';
event.guessers=game.filterPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan');
});
event.guessers.sort(lib.sort.seat);
event.ally=[];
event.betray=[];
'step 1'
if(event.guessers.length==0) event.goto(3);
else{
event.guessers[0].chooseControl('质疑','不质疑').set('prompt',event.prompt).set('ai',function(){
if(get.attitude(event.guessers[0],player)>0) return '不质疑';
return Math.random()<0.5?'不质疑':'质疑';
});
}
'step 2'
if(!result.control) result.control='不质疑';
//event.guessers[0].chat(result.control);
//game.delay();
if(result.control=='不质疑'){
//game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]);
}else{
//game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]);
}
event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(1);
'step 3'
for(var i=0;i<event.ally.length;i++) event.ally[i].chat('不质疑');
for(var i=0;i<event.betray.length;i++) event.betray[i].chat('质疑');
game.delay(1.5);
'step 4'
player.showCards(trigger.cards);
if(event.betray.length){
if(trigger.card.name==trigger.cards[0].name){
event.fake=false;
}
else{
event.fake=true;
game.log(player,'使用的','#y'+get.translation(trigger.card.name),'作废了');
game.cardsDiscard(trigger.cards);
trigger.cancel();
game.asyncDraw(event.betray);
if(trigger.name=='useCard'&&trigger.parent) trigger.parent.goto(0);
}
}
else event.finish();
'step 5'
if(event.fake){
game.delay();
event.finish();
}
'step 6'
var target=event.betray.shift();
event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 7'
if(!result.bool) target.loseHp();
'step 8'
target.addSkill('rechanyuan');
if(event.betray.length) event.goto(6);
},
},
"reguhuo_respond":{
trigger:{
player:"chooseToRespondBegin",
},
filter:function (event,player){
if(event.responded) return false;
if(!event.filterCard({name:'shan'})&&!event.filterCard({name:'sha'})) return false;
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
return true;
},
direct:true,
content:function (){
'step 0'
if(trigger.filterCard({name:'shan'})&&lib.filter.cardRespondable({name:'shan'},player,trigger)) event.name='shan';
else event.name='sha';
player.chooseCard('是否发动【蛊惑】,将一张手牌当做'+get.translation(event.name)+'打出?');
'step 1'
if(result.bool){
player.logSkill('reguhuo_guess');
player.addTempSkill('reguhuo_phase');
player.popup(event.name,'metal');
player.lose(result.cards,ui.special);
event.card=result.cards[0];
event.prompt=get.translation(player)+'声明了'+get.translation(event.name)+',是否质疑?';
event.guessers=game.filterPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan');
});
event.guessers.sort(lib.sort.seat);
event.ally=[];
event.betray=[];
}
else event.finish();
'step 2'
if(event.guessers.length==0) event.goto(4);
else{
event.guessers[0].chooseControl('质疑','不质疑').set('prompt',event.prompt).set('ai',function(){
if(get.attitude(event.guessers[0],player)>0) return '不质疑';
return Math.random()<0.5?'不质疑':'质疑';
});
}
'step 3'
if(!result.control) result.control='不质疑';
//event.guessers[0].chat(result.control);
//game.delay();
if(result.control=='不质疑'){
//game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]);
}else{
//game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]);
}
event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(2);
'step 4'
for(var i=0;i<event.ally.length;i++) event.ally[i].chat('不质疑');
for(var i=0;i<event.betray.length;i++) event.betray[i].chat('质疑');
game.delay(1.5);
'step 5'
var bool=true;
player.showCards(event.card);
if(event.betray.length){
if(event.name==event.card.name){
event.fake=false;
}
else{
event.fake=true;
game.log(player,'打出的','#y'+get.translation(event.name),'作废了');
game.cardsDiscard(event.card);
bool=false;
game.asyncDraw(event.betray);
}
}
else event.finish();
if(bool){
trigger.untrigger();
trigger.responded=true;
trigger.result={bool:true,card:{name:event.name},cards:[event.card]};
}
'step 6'
if(event.fake){
game.delay();
event.finish();
}
'step 7'
var target=event.betray.shift();
event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 8'
if(!result.bool) target.loseHp();
'step 9'
if(target.isAlive()) target.addSkill('rechanyuan');
if(event.betray.length) event.goto(7);
},
ai:{
order:4,
useful:-1,
value:-1,
},
},
"reguhuo_wuxie":{
log:false,
silent:true,
popup:false,
enable:"chooseToUse",
filterCard:true,
viewAsFilter:function (player){
return !player.hasSkill('reguhuo_phase')&&player.countCards('h')>0;
group:['reguhuo_sha','reguhuo_shan','reguhuo_wuxie','reguhuo_guess'],
},
reguhuo_sha:{
enable:'chooseToRespond',
viewAs:{
name:"wuxie",
name:'sha',
suit:'none',
number:null,
},
viewAsFilter:function(player){
return player.countCards('h')&&!player.hasSkill('reguhuo_phase');
},
check:function(card){
if(card.name=='wuxie') return 1000;
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx='sha';
if(hasEnemy){
if(card.name==cardx) return 10;
return 0;
}
return 6-get.value(card);
},
prompt:"将一张手牌当无懈可击使用",
threaten:1.2,
prompt:'将一张牌当做【杀】打出',
filterCard:true,
position:'h',
ai:{
order:4,
},
},
reguhuo_shan:{
enable:['chooseToUse','chooseToRespond'],
viewAs:{
name:'shan',
suit:'none',
number:null,
},
viewAsFilter:function(player){
return player.countCards('h')&&!player.hasSkill('reguhuo_phase');
},
check:function(card){
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx='shan';
if(hasEnemy){
if(card.name==cardx) return 10;
return 0;
}
return 6-get.value(card);
},
prompt:'将一张牌当做【闪】使用或打出',
filterCard:true,
position:'h',
ai:{
order:4,
},
},
reguhuo_wuxie:{
enable:'chooseToUse',
viewAs:{
name:'wuxie',
suit:'none',
number:null,
},
check:function(card){
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx='wuxie';
if(hasEnemy){
if(card.name==cardx) return 10;
return 0;
}
return 6-get.value(card);
},
viewAsFilter:function(player){
return player.countCards('h')&&!player.hasSkill('reguhuo_phase');
},
filterCard:true,
prompt:'将一张牌当做【无懈可击】使用',
position:'h',
ai:{
order:4,
},
},
reguhuo_guess:{
trigger:{
player:['useCardBefore','respondBefore'],
},
forced:true,
silent:true,
popup:false,
firstDo:true,
filter:function(event,player){
return event.skill&&event.skill.indexOf('reguhuo_')==0;
},
content:function(){
'step 0'
player.addTempSkill('reguhuo_phase');
event.fake=false;
var card=trigger.cards[0];
if(card.name!=trigger.card.name||(trigger.name!='respond'&&card.name=='sha'&&(trigger.card.nature||card.nature)&&trigger.card.nature!=card.nature)) event.fake=true;
player.logSkill('reguhuo');
player.line(trigger.targets,get.nature(trigger.card));
event.cardTranslate=get.translation(trigger.card.name);
trigger.card.number=get.number(card);
trigger.card.suit=get.suit(card);
//trigger.line=false;
trigger.skill='reguhuo_backup';
if(trigger.card.name=='sha'&&trigger.card.nature) event.cardTranslate=get.translation(trigger.card.nature)+event.cardTranslate;
player.popup(event.cardTranslate,trigger.name=='useCard'?'metal':'wood');
event.prompt='是否质疑'+get.translation(player)+'声明的'+event.cardTranslate+'';
game.log(player,'声明了','#y'+event.cardTranslate);
event.targets=game.filterPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan');
}).sortBySeat();
event.targets2=event.targets.slice(0);
player.lose(card,ui.ordering).relatedEvent=trigger;
if(!event.targets.length) event.goto(5);
else if(_status.connectMode) event.goto(3);
event.betrays=[];
'step 1'
event.target=targets.shift();
event.target.chooseButton([event.prompt,[['reguhuo_ally','reguhuo_betray'],'vcard']],true,function(button){
var player=_status.event.player;
var evt=_status.event.getParent('reguhuo_guess');
if(!evt) return Math.random();
var ally=button.link[2]=='reguhuo_ally';
if(ally&&(player.hp<=1||get.attitude(player,evt.player)>=0)) return 1.1;
return Math.random();
});
'step 2'
if(result.links[0][2]=='reguhuo_betray'){
event.betrays.push(target);
target.addExpose(0.2);
}
event.goto(targets.length?1:5);
'step 3'
var list=event.targets.map(function(target){
return [target,[event.prompt,[['reguhuo_ally','reguhuo_betray'],'vcard']],true];
});
player.chooseButtonOL(list).set('switchToAuto',function(){
_status.event.result='ai';
}).set('processAI',function(){
var choice=Math.random()>0.5?'reguhuo_ally':'reguhuo_betray';
var player=_status.event.player;
var evt=_status.event.getParent('reguhuo_guess');
if(player.hp<=1||evt&&(get.realAttitude||get.attitude)(player,evt.player)>=0) choice='reguhuo_ally';
return {
bool:true,
links:[['','',choice]],
}
});
'step 4'
for(var i in result){
if(result[i].links[0][2]=='reguhuo_betray'){
event.betrays.push(lib.playerOL[i]);
lib.playerOL[i].addExpose(0.2);
}
}
'step 5'
for(var i of event.targets2){
var b=event.betrays.contains(i);
i.popup(b?'质疑':'不质疑',b?'fire':'wood');
game.log(i,b?'#y质疑':'#g不质疑');
}
game.delay();
'step 6'
player.showCards(trigger.cards);
if(event.betrays.length){
event.betrays.sortBySeat();
if(event.fake){
game.asyncDraw(event.betrays);
trigger.cancel();
trigger.getParent().goto(0);
game.log(player,'声明的','#y'+event.cardTranslate,'作废了')
}
else{
var next=game.createEvent('reguhuo_final',false);
event.next.remove(next);
trigger.after.push(next);
next.targets=event.betrays;
next.setContent(lib.skill.reguhuo_guess.contentx);
event.finish();
}
}
else event.finish();
'step 7'
game.delayx();
},
contentx:function(){
'step 0'
event.target=targets.shift();
event.target.chooseToDiscard('弃置一张牌或失去1点体力').set('ai',function(card){
return 9-get.value(card);
});
'step 1'
if(!result.bool) target.loseHp();
'step 2'
target.addSkill('rechanyuan');
if(targets.length) event.goto(0);
},
},
reguhuo_backup:{},
reguhuo_phase:{},
rechanyuan:{
//charlotte:true,
@ -3650,6 +3684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:["phaseBefore","changeHp"],
},
priority:99,
firstDo:true,
forced:true,
popup:false,
unique:true,
@ -7758,18 +7793,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_yuji:'界于吉',
re_zuoci:'界左慈',
"reguhuo":"蛊惑",
"reguhuo_info":"每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色依次选择是否质疑。然后,你展示此牌。若有质疑的角色:若此牌为假,则此牌作废,且所有质疑者各摸一张牌;为真,则所有质疑角色弃置一张牌或失去1点体力并获得技能〖缠怨〗。",
"reguhuo_guess":"蛊惑",
"reguhuo_guess_info":"",
reguhuo:"蛊惑",
reguhuo_info:"每名角色的回合限一次,你可以扣置一张手牌当一张基本牌或普通锦囊牌使用或打出。其他角色同时选择是否质疑。然后,你展示此牌。若有质疑的角色:若此牌为假,则此牌作废,且所有质疑者各摸一张牌;为真,则所有质疑角色于此牌结算完成后依次弃置一张牌或失去1点体力并获得技能〖缠怨〗。",
reguhuo_guess:"蛊惑",
reguhuo_guess_info:"",
rechanyuan:"缠怨",
"rechanyuan_info":"锁定技你不能质疑于吉只要你的体力值不大于1你失去你的武将技能。",
"reguhuo_respond":"蛊惑",
"reguhuo_respond_info":"",
"reguhuo_wuxie":"蛊惑",
"reguhuo_wuxie_info":"",
"reguhuo_phase":"蛊惑",
"reguhuo_phase_info":"",
rechanyuan_info:"锁定技你不能质疑于吉只要你的体力值不大于1你失去你的武将技能。",
reguhuo_sha:"蛊惑",
reguhuo_shan:"蛊惑",
reguhuo_wuxie:"蛊惑",
reguhuo_ally:'信任',
reguhuo_betray:'质疑',
reguhuo_ally_bg:'真',
reguhuo_betray_bg:'假',
rehuashen:'化身',
rehuashen_info:'游戏开始后,你随机获得三张未加入游戏的武将牌,选一张置于你面前并声明该武将牌的一项技能,你拥有该技能且同时将性别和势力属性变成与该武将相同直到该化身被替换。你的每个准备阶段和结束后,你可以选择一项:①弃置至多两张未展示的化身牌并重新获得等量化身牌;②更换所展示的化身牌或技能。(你不可声明限定技、觉醒技或主公技)。',
rexinsheng:'新生',

View File

@ -2010,7 +2010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:'审',
intro:{
content:function(storage,player,skill){
if(player.storage.nzry_shenshi==true) return '其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张';
if(player.storage.nzry_shenshi==true) return '其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张';
return '出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张';
},
},
@ -7156,8 +7156,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '转换技,出牌阶段限一次,<span class="bluetext">阴:你可以摸一张牌,然后弃置两张手牌。</span>阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
},
nzry_shenshi:function(player){
if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。<span class="bluetext">阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。</span>';
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。</span>阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。';
if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。<span class="bluetext">阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。</span>';
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。</span>阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。';
},
},
translate:{
@ -7205,7 +7205,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。",
"nzry_shenshi1":"审时",
"nzry_shenshi":"审时",
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。",
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
"nzry_mingren":"明任",
"nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”。",
"nzry_zhenliang":"贞良",

View File

@ -957,6 +957,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return {
audio:'xinjingong',
filterCard:true,
popname:true,
position:'he',
viewAs:{name:links[0][2]},
check:function(card){

View File

@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
xin_baosanniang:['male','shu',3,['xinfu_wuniang','decadexushen']],
xin_baosanniang:['female','shu',3,['xinfu_wuniang','decadexushen']],
re_hejin:['male','qun',4,['spmouzhu']],
hansui:['male','qun',4,['spniluan','spweiwu']],
liuhong:['male','qun',4,['yujue','tuxing'],['unseen']],
@ -1426,7 +1426,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.popup(trigger.card.name,trigger.name=='useCard'?'metal':'wood');
'step 1'
var random=0.5+player.countCards('e')*0.1;
if(get.isLuckyStar(player)||trigger.card.name=='wuxie') random=1;
if(get.isLuckyStar(player)) random=1;
if(random>=Math.random()){
player.popup('洗具');
}
@ -1460,7 +1460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lvli4:{
log:false,
enable:'chooseToUse',
filter:function(event,player){
viewAsFilter:function(player){
if(player.storage.lvli>1) return false;
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
return true;
@ -1481,7 +1481,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lvli5:{
log:false,
enable:'chooseToUse',
filter:function(event,player){
viewAsFilter:function(player){
if(player.storage.lvli>1) return false;
if(player.storage.lvli>0&&(player!=_status.currentPhase||!player.storage.choujue)) return false;
return true;
@ -5718,6 +5718,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
str+='伤害后你可选择1若你的体力值大于你的手牌数你摸张牌2若你的手牌数大于你的体力值且你已受伤你回复点体力为你的手牌数与体力值之差。';
return str;
},
lvli:function(player){
var str='每名角色的回合限一次';
if(player.storage.choujue) str+='(自己的回合内则改为限两次)';
str+=',你可以声明一个基本牌或普通锦囊牌的牌名,有随机概率视为使用之(装备区里的牌数越多,成功概率越大)';
if(player.storage.beishui) str+='。当你受到伤害后,你也可以以此法使用一张牌。';
return str;
},
mubing:function(player){
if(player.storage.mubing2) return '出牌阶段开始时,你可以展示牌堆顶的四张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。然后你可将以此法获得的牌以任意方式交给其他角色。';
return '出牌阶段开始时,你可以展示牌堆顶的三张牌。你可弃置任意张手牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。';
@ -5830,7 +5837,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pingjian_info:'结束阶段开始时/当你受到伤害后/出牌阶段限一次,你可以令系统随机从剩余武将牌堆中检索出三张拥有发动时机为结束阶段开始时/当你受到伤害后/出牌阶段的技能的武将牌。然后你可以选择尝试发动其中一个技能或摸一张牌。每个技能每局只能选择一次。',
pingjian_use:'评荐',
pytianjiang:'天匠',
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你装备区里的牌可以移动至其他角色的装备区并替换其原有装备。',
pytianjiang_info:'游戏开始时,你随机获得两张不同副类别的装备牌,并置入你的装备区。出牌阶段,你可以将装备区的牌移动至其他角色的装备区(可替换原装备)。若你以此法移动了〖铸刃〗的衍生装备,你摸两张牌。',
pytianjiang_move:'天匠',
pyzhuren:'铸刃',
pyzhuren_info:'出牌阶段限一次,你可以弃置一张手牌。根据此牌的花色点数,你有一定概率打造成功并获得一张武器牌(若打造失败或武器已有则改为摸一张【杀】,花色决定武器名称,点数决定成功率)。此武器牌进入弃牌堆时,将其移出游戏。',

View File

@ -5284,7 +5284,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
trigger:{player:'useCard2'},
filter:function(event,player){
return (event.card.name=='sha'||get.type(event.card)=='trick')&&
return player.storage.xinxianzhen&&player.storage.xinxianzhen.isAlive()&&
(event.card.name=='sha'||get.type(event.card)=='trick')&&
event.targets&&event.targets.length==1&&!event.targets.contains(player.storage.xinxianzhen);
},
check:function(event,player){
@ -7248,7 +7249,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterCard:function(card){
return get.type(card)!='basic'&&get.color(card)=='black';
},
viewAs:{name:links[0][2],nature:links[0][3],suit:null,number:null,isCard:true},
viewAs:{
name:links[0][2],
nature:links[0][3],
suit:'none',
number:null,
isCard:true,
},
position:'he',
popname:true,
ignoreMod:true,

View File

@ -1,5 +1,5 @@
window.config={
forbidai:['ns_liuzhang','xin_yuji','re_yuji'],
forbidai:['ns_liuzhang','yuji','re_yuji'],
forbidai_user:[],
forbidall:[],
forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','hs_siwangzhiyi',

View File

@ -49007,7 +49007,7 @@
//}
//return suit;
}
else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){
else if(get.itemtype(card.cards)=='cards'&&card.suit!='none'&&!lib.suit.contains(card.suit)){
return get.suit(card.cards,player);
}
else{
@ -49026,7 +49026,7 @@
}
return color;
}
else if(get.itemtype(card.cards)=='cards'&&!lib.suit.contains(card.suit)){
else if(get.itemtype(card.cards)=='cards'&&card.suit!='none'&&!lib.suit.contains(card.suit)){
return get.color(card.cards,player);
}
else{

View File

@ -1,16 +1,16 @@
window.noname_update={
version:'1.9.105.8',
update:'1.9.105.7',
version:'1.9.105.8.1',
update:'1.9.105.8',
changeLog:[
'界曹休、界孙休、新鲍三娘',
'界于吉解禁',
'张翼技能调整',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
@ -20,8 +20,8 @@ window.noname_update={
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
'character/hearth.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
@ -29,7 +29,7 @@ window.noname_update={
//'character/mtg.js',
//'character/old.js',
'character/refresh.js',
//'character/shenhua.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
@ -42,12 +42,12 @@ window.noname_update={
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/nova/layout.css',
'mode/identity.js',
//'mode/identity.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
'mode/chess.js',
'mode/tafang.js',
'mode/single.js',
//'mode/guozhan.js',
//'mode/chess.js',
//'mode/tafang.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/brawl.js',
//'mode/versus.js',
@ -56,7 +56,7 @@ window.noname_update={
//'game/keyWords.js',
//'game/server.js',
//'game/NoSleep.js',
//'game/config.js',
'game/config.js',
//'game/package.js',
//'game/asset.js',
//'game/source.js',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 203 KiB