辛笨改改改

This commit is contained in:
Spmario233 2021-02-28 23:59:11 +08:00
parent 4042ece7ac
commit 70c7b38f16
11 changed files with 328 additions and 269 deletions

View File

@ -880,6 +880,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',13,'sha'], ['diamond',13,'sha'],
['diamond',13,'zixin'], ['diamond',13,'zixin'],
['diamond',13,'hualiu'], ['diamond',13,'hualiu'],
['diamond',5,'muniu'],
], ],
help:{ help:{
'应变篇':('<div style="margin:10px">应变机制</div><ul style="margin-top:0">'+ '应变篇':('<div style="margin:10px">应变机制</div><ul style="margin-top:0">'+

View File

@ -1057,7 +1057,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var k of array){ for(var k of array){
numx+=get.number(k); numx+=get.number(k);
} }
if(numx==13) list.push(array); if(numx==num) list.push(array);
} }
if(list.length){ if(list.length){
list.sort(function(a,b){ list.sort(function(a,b){

View File

@ -992,13 +992,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete player.storage.jinglve2; delete player.storage.jinglve2;
delete player.storage.jinglve3; delete player.storage.jinglve3;
}, },
trigger:{global:['dieEnd','loseAfter']}, trigger:{global:['dieEnd','loseEnd','gainEnd']},
silent:true, silent:true,
lastDo:true, lastDo:true,
charlotte:true, charlotte:true,
filter:function(event,player){ filter:function(event,player){
if(event.player!=player.storage.jinglve2) return false; if(event.name!='gain'&&event.player!=player.storage.jinglve2) return false;
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&event.getParent().name!='useCard'); return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&(event.name=='gain'||event.position!=ui.ordering));
}, },
content:function(){ content:function(){
player.removeSkill('jinglve2'); player.removeSkill('jinglve2');
@ -1007,9 +1007,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
jinglve3:{ jinglve3:{
audio:'jinglve', audio:'jinglve',
trigger:{global:['loseAfter','useCard','phaseAfter']}, trigger:{global:['loseAfter','useCard','phaseAfter','cardsDiscardAfter']},
filter:function(event,player){ filter:function(event,player){
if(event.player!=player.storage.jinglve2) return false; if(event.player&&event.player!=player.storage.jinglve2) return false;
if(event.name=='phase') return event.player.getCards('hej').contains(player.storage.jinglve3); if(event.name=='phase') return event.player.getCards('hej').contains(player.storage.jinglve3);
if(!event.cards.contains(player.storage.jinglve3)) return false; if(!event.cards.contains(player.storage.jinglve3)) return false;
return event.name=='useCard'||get.position(player.storage.jinglve3,true)=='d'; return event.name=='useCard'||get.position(player.storage.jinglve3,true)=='d';
@ -2082,6 +2082,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ui.create.dialog(str).videoId=id; ui.create.dialog(str).videoId=id;
}; };
var chooseButton=function(list){ var chooseButton=function(list){
var roundmenu=false;
if(ui.roundmenu&&ui.roundmenu.display!='none'){
roundmenu=true;
ui.roundmenu.style.display='none';
}
var event=_status.event; var event=_status.event;
event.settleed=false; event.settleed=false;
event.finishedx=[]; event.finishedx=[];
@ -2090,7 +2095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.zhengjing_nodes=[]; event.zhengjing_nodes=[];
event.map=[]; event.map=[];
event.dialog=ui.create.dialog('forcebutton','hidden'); event.dialog=ui.create.dialog('forcebutton','hidden');
event.dialog.textPrompt=event.dialog.addText('及时点击卡牌,但不要点到毒了!'); event.dialog.textPrompt=event.dialog.add('<div class="text center">及时点击卡牌,但不要点到毒了!</div>');
event.switchToAuto=function(){ event.switchToAuto=function(){
event._result={ event._result={
bool:true, bool:true,
@ -2099,6 +2104,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.dialog.close(); event.dialog.close();
game.resume(); game.resume();
_status.imchoosing=false; _status.imchoosing=false;
if(roundmenu) ui.roundmenu.style.display='';
}; };
event.dialog.classList.add('fixed'); event.dialog.classList.add('fixed');
event.dialog.classList.add('scroll1'); event.dialog.classList.add('scroll1');
@ -2112,11 +2118,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.settleed=true; event.settleed=true;
if(du){ if(du){
if(lib.config.background_speak) game.playAudio('skill','zhengjing_boom'); if(lib.config.background_speak) game.playAudio('skill','zhengjing_boom');
event.dialog.textPrompt.innerHTML=' <br>叫你别点毒你非得点 这下翻车了吧'; event.dialog.textPrompt.innerHTML='<div class="text center">叫你别点毒你非得点 这下翻车了吧</div>';
} }
else { else {
if(lib.config.background_speak) game.playAudio('skill','zhengjing_finish'); if(lib.config.background_speak) game.playAudio('skill','zhengjing_finish');
event.dialog.textPrompt.innerHTML=' <br>整理经典结束!共整理出'+get.cnNumber(event.finishedx.length)+'份经典'; event.dialog.textPrompt.innerHTML='<div class="text center">整理经典结束!共整理出'+get.cnNumber(event.finishedx.length)+'份经典</div>';
} }
while(event.zhengjing_nodes.length){ while(event.zhengjing_nodes.length){
event.zhengjing_nodes.shift().delete(); event.zhengjing_nodes.shift().delete();
@ -3693,6 +3699,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai2:function(target){ ai2:function(target){
var att=get.attitude(_status.event.player,target); var att=get.attitude(_status.event.player,target);
if(target.hasSkillTag('nogain')) att/=10;
if(target.hasJudge('lebu')) att/=5;
return att; return att;
}, },
prompt:'选择'+get.cnNumber(event.num)+'张牌,交给一名其他角色。', prompt:'选择'+get.cnNumber(event.num)+'张牌,交给一名其他角色。',
@ -5626,14 +5634,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
targetInRange:function(){ targetInRange:function(){
return true; return true;
}, },
aiOrder:function(player,card,num){
var name=get.name(card);
if(name=='tao') return num+7+Math.pow(player.getDamagedHp(),2);
if(name=='sha') return num+6;
if(get.subtype(card)=='equip2') return num+get.value(card)/3;
},
}, },
trigger:{player:'useCard'}, trigger:{player:'useCard'},
forced:true, forced:true,
charlotte:true, charlotte:true,
//audio:'kuangcai',
silent:true, silent:true,
popup:false, popup:false,
//usable:5,
filter:function(event,player){ filter:function(event,player){
if(!player.forceCountChoose||!player.forceCountChoose.phaseUse){ if(!player.forceCountChoose||!player.forceCountChoose.phaseUse){
return false; return false;
@ -5650,10 +5662,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.forceCountChoose.phaseUse--; player.forceCountChoose.phaseUse--;
},player); },player);
}, },
ai:{
presha:true,
pretao:true,
},
}, },
cancel:{ cancel:{
trigger:{player:'phaseUseEnd'}, trigger:{player:'phaseUseEnd'},

View File

@ -12,14 +12,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_yijiang3:["liru","old_zhuran","old_fuhuanghou","old_caochong"], old_yijiang3:["liru","old_zhuran","old_fuhuanghou","old_caochong"],
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"], old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan"],
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"], old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
old_yijiang67:["ol_zhangrang","ol_liuyu","ol_xinxianying"], old_yijiang67:["ol_zhangrang","ol_liuyu"],
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","old_wangyun"], old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","old_wangyun"],
old_mobile:["old_caochun","old_majun"], old_mobile:["old_caochun","old_majun"],
}, },
}, },
character:{ character:{
fazheng:['male','shu',3,['enyuan','xuanhuo']], fazheng:['male','shu',3,['enyuan','xuanhuo']],
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
ol_yuanshu:['male','qun',4,['wangzun','tongji']], ol_yuanshu:['male','qun',4,['wangzun','tongji']],
pangde:['male','qun',4,['mashu','mengjin']], pangde:['male','qun',4,['mashu','mengjin']],
ol_huaxiong:["male","qun",6,["new_reyaowu"]], ol_huaxiong:["male","qun",6,["new_reyaowu"]],
@ -790,7 +789,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldxuanfeng:'旋风', oldxuanfeng:'旋风',
oldxuanfeng_info:'每当你失去一次装备区里的牌时你可以执行下列两项中的一项1.视为对任意一名其他角色使用一张【杀】此【杀】不计入每回合的使用限制2.对与你距离1以内的一名其他角色造成一点伤害', oldxuanfeng_info:'每当你失去一次装备区里的牌时你可以执行下列两项中的一项1.视为对任意一名其他角色使用一张【杀】此【杀】不计入每回合的使用限制2.对与你距离1以内的一名其他角色造成一点伤害',
ol_yuanshu:'旧袁术', ol_yuanshu:'旧袁术',
ol_xinxianying:'旧辛宪英',
fazheng:'旧法正', fazheng:'旧法正',
old_standard:'标准包', old_standard:'标准包',

View File

@ -556,7 +556,7 @@ window.noname_character_rank={
'dianwei', 'dianwei',
're_lusu', 're_lusu',
'panjun', 'panjun',
'xinxianying', 'ol_xinxianying',
'liubiao', 'liubiao',
'zhongyao', 'zhongyao',
'liuchen', 'liuchen',
@ -792,6 +792,7 @@ window.noname_character_rank={
'ns_caimao', 'ns_caimao',
'sp_zhangliao', 'sp_zhangliao',
'jin_simazhao', 'jin_simazhao',
'xinxianying',
'key_haruko', 'key_haruko',
'key_rei', 'key_rei',
'key_komari', 'key_komari',
@ -860,7 +861,6 @@ window.noname_character_rank={
'jianyong', 'jianyong',
'shen_zhangliao', 'shen_zhangliao',
'lvkai', 'lvkai',
'ol_xinxianying',
'xinpi', 'xinpi',
'mangyachang', 'mangyachang',
'xin_baosanniang', 'xin_baosanniang',
@ -1441,6 +1441,7 @@ window.noname_character_rank={
'zhuzhi', 'zhuzhi',
'gongsunyuan', 'gongsunyuan',
'liuyu', 'liuyu',
'ol_xinxianying',
'xinxianying', 'xinxianying',
'qinmi', 'qinmi',
'wuxian', 'wuxian',
@ -1559,7 +1560,6 @@ window.noname_character_rank={
junk:[ junk:[
'sunshao', 'sunshao',
'duji', 'duji',
'yl_luzhi',
'ol_guohuai', 'ol_guohuai',
'gongsunzan', 'gongsunzan',
're_sunce', 're_sunce',

View File

@ -1859,75 +1859,83 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.bottom=true; trigger.bottom=true;
}, },
}, },
"nzry_mingren":{ nzry_mingren:{
audio:"nzry_mingren_1", audio:"nzry_mingren_1",
init:function (player){
if(!player.storage.nzry_mingren) player.storage.nzry_mingren=[];
},
marktext:"任", marktext:"任",
intro:{ intro:{
content:'cards', content:'cards',
onunmark:function(storage,player){ onunmark:'throw',
if(storage&&storage.length){
player.$throw(storage,1000);
game.cardsDiscard(storage);
game.log(storage,'被置入了弃牌堆');
player.storage.nzry_mingren.length=0;
}
},
}, },
mark:true,
group:["nzry_mingren_1","nzry_mingren_2"], group:["nzry_mingren_1","nzry_mingren_2"],
subSkill:{ subSkill:{
'1':{ 1:{
audio:2, audio:2,
trigger:{ trigger:{
global:'gameDrawAfter', global:'gameDrawAfter',
player:'enterGame', player:'enterGame',
}, },
forced:true, forced:true,
locked:false,
filter:function(event,player){ filter:function(event,player){
return !player.storage.nzry_mingren||!player.storage.nzry_mingren.length; return !player.getStorage('nzry_mingren').length;
}, },
content:function (){ content:function(){
'step 0' 'step 0'
player.draw(); player.draw(2);
'step 1' 'step 1'
player.chooseCard('h','请选择一张手牌置于你的武将牌上,称为“任”',true).set('ai',function(card){ if(!player.countCards('h')) event.finish();
else player.chooseCard('h','将一张手牌置于武将牌上,称为“任”',true).set('ai',function(card){
return 6-get.value(card); return 6-get.value(card);
}); });
'step 2' 'step 2'
if(result.bool){ if(result.bool){
player.storage.nzry_mingren.push(result.cards[0]); player.markAuto('nzry_mingren',result.cards);
player.syncStorage('nzry_mingren');
game.log(player,'将',result.cards[0],'置于其武将牌上'); game.log(player,'将',result.cards[0],'置于其武将牌上');
player.lose(result.cards[0],ui.special,'toStorage'); player.lose(result.cards[0],ui.special,'toStorage');
}; };
}, },
}, },
'2':{ 2:{
audio:2, audio:2,
trigger:{ trigger:{
player:'phaseJieshuBegin', player:'phaseJieshuBegin',
}, },
filter:function(event,player){
return player.countCards('h')>0&&player.getStorage('nzry_mingren').length>0;
},
direct:true, direct:true,
content:function (){ content:function(){
'step 0' 'step 0'
player.chooseCard('h','是否用一张手牌替换“任”?').set('ai',function(card){ player.chooseCard('h','是否用一张手牌替换“任”('+get.translation(player.getStorage('nzry_mingren')[0])+'').set('ai',function(card){
return 5-get.value(card); var player=_status.event.player;
var color=get.color(card);
if(color==get.color(player.getStorage('nzry_mingren')[0])) return false;
var num=0;
var list=[];
player.countCards('h',function(cardx){
if(cardx!=card||get.color(cardx)!=color) return false;
if(list.contains(cardx.name)) return false;
list.push(cardx.name);
switch(cardx.name){
case 'wuxie':num+=(game.countPlayer()/2.2);break;
case 'caochuan':num+=1.1;break;
case 'shan':num+=1;break;
}
});
return num*(30-get.value(card));
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.logSkill('nzry_mingren'); player.logSkill('nzry_mingren');
if(player.storage.nzry_mingren!=undefined&&player.storage.nzry_mingren[0]!=undefined){
player.gain(player.storage.nzry_mingren[0],'gain2','fromStorage');
player.storage.nzry_mingren.remove(player.storage.nzry_mingren[0]);
};
player.syncStorage('nzry_mingren');
player.storage.nzry_mingren.push(result.cards[0]);
player.syncStorage('nzry_mingren');
game.log(player,'将',result.cards[0],'置于其武将牌上'); game.log(player,'将',result.cards[0],'置于其武将牌上');
player.lose(result.cards[0],ui.special,'toStorage'); player.lose(result.cards[0],ui.special,'toStorage');
var card=player.getStorage('nzry_mingren')[0];
if(card){
player.gain(card,'gain2','fromStorage');
player.storage.nzry_mingren.remove(card);
player.storage.nzry_mingren.push(result.cards[0]);
player.syncStorage('nzry_mingren');
}
}; };
}, },
}, },
@ -1941,74 +1949,70 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mark:true, mark:true,
locked:false, locked:false,
zhuanhuanji:true, zhuanhuanji:true,
marktext:'贞',
intro:{ intro:{
content:function(storage,player,skill){ content:function(storage,player,skill){
if(player.storage.nzry_zhenliang==true) return '你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌'; if(player.storage.nzry_zhenliang==true) return '当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
return '出牌阶段限一次,你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1'; return '出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。';
}, },
}, },
group:["nzry_zhenliang_1","nzry_zhenliang_2"], group:["nzry_zhenliang_1","nzry_zhenliang_2"],
subSkill:{ subSkill:{
'1':{ 1:{
prompt:"出牌阶段限一次你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1", prompt:'弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。',
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
usable:1,
delay:false,
filter:function(event,player){ filter:function(event,player){
if(player.storage.nzry_zhenliang==true) return false;
var storage=player.getStorage('nzry_mingren'); var storage=player.getStorage('nzry_mingren');
if(get.itemtype(storage)!='cards') return false; if(!storage.length) return false;
var num=player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])}); var color=get.color(storage[0]);
if(player.countCards('he',function(card){
return get.color(card)==color;
})==0) return false;
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
return current!=player&& return player.inRange(current);
player.inRange(current)&& });
player.storage.nzry_mingren!=undefined&& },
num>=Math.max(Math.abs(current.hp-player.hp),1); position:'he',
})&&player.storage.nzry_zhenliang!=true; filterCard:function(card,player){
return get.color(card)==get.color(player.getStorage('nzry_mingren')[0]);
}, },
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&& return player.inRange(target);
player.inRange(target)&& },
player.countCards('he',{color:get.color(player.storage.nzry_mingren[0])})>=Math.max(Math.abs(target.hp-player.hp),1); check:function(card){
return 6.5-get.value(card);
}, },
content:function(){ content:function(){
'step 0' player.storage.nzry_zhenliang=true;
player.chooseToDiscard('请选择发动【贞良】的牌',Math.max(Math.abs(target.hp-player.hp),1),'he',{color:get.color(player.storage.nzry_mingren[0])},true).set('ai',function(card){ target.damage('nocard');
return 6-get.value(card);
});
'step 1'
if(result.bool){
player.storage.nzry_zhenliang=true;
target.damage('nocard');
};
}, },
ai:{ ai:{
order:5, order:5,
result:{ result:{
target:function(player,target){ player:function(player,target){
if(Math.abs(target.hp-player.hp)<=1) return -1; return get.damageEffect(target,player,player);
}, },
}, },
}, },
}, },
'2':{ 2:{
audio:2, audio:2,
trigger:{ trigger:{
player:['useCardAfter','respondAfter'], player:['useCardAfter','respondAfter'],
}, },
filter:function (event,player){ filter:function (event,player){
return _status.currentPhase!=player&& if(_status.currentPhase==player||player.storage.nzry_zhenliang!=true) return false;
player.storage.nzry_mingren!=undefined&& var card=player.getStorage('nzry_mingren')[0];
player.storage.nzry_mingren[0]!=undefined&& return card&&get.color(event.card)==get.color(card);
get.type(player.storage.nzry_mingren[0])==get.type(event.card)&&
player.storage.nzry_zhenliang==true;
}, },
direct:true, direct:true,
content:function(){ content:function(){
"step 0" "step 0"
player.chooseTarget(get.prompt('nzry_zhenliang'),'令一名角色摸一张牌').ai=function(target){ player.chooseTarget(get.prompt('nzry_zhenliang'),'令一名角色摸一张牌').ai=function(target){
return get.attitude(player,target) if(target.hasSkillTag('nogain')) return 0.1;
var att=get.attitude(player,target);
return att*(Math.max(5-target.countCards('h'),2)+3);
}; };
"step 1" "step 1"
if(result.bool){ if(result.bool){
@ -7278,8 +7282,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '转换技,<span class="bluetext">阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。</span>阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。'; return '转换技,<span class="bluetext">阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。</span>阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。';
}, },
nzry_zhenliang:function(player){ nzry_zhenliang:function(player){
if(player.storage.nzry_zhenliang==true) return '转换技,阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1。<span class="bluetext">阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。</span>'; if(player.storage.nzry_zhenliang==true) return '转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。<span class="bluetext">阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。</span>';
return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1。</span>阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。'; return '转换技,<span class="bluetext">阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。</span>阳:当你于回合外使用或打出的牌结算完成后,若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。';
}, },
nzry_chenglve:function(player){ nzry_chenglve:function(player){
if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。<span class="bluetext">阳:你可以摸两张牌,然后弃置一张手牌。</span>若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。'; if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。<span class="bluetext">阳:你可以摸两张牌,然后弃置一张手牌。</span>若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。';
@ -7374,9 +7378,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_shenshi":"审时", "nzry_shenshi":"审时",
"nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。", "nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若此牌仍在该角色的区域内,你将手牌摸至四张。",
"nzry_mingren":"明任", "nzry_mingren":"明任",
"nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”。", "nzry_mingren_info":"游戏开始时,你摸两张牌,然后将一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用一张手牌替换“任”。",
"nzry_zhenliang":"贞良", "nzry_zhenliang":"贞良",
"nzry_zhenliang_info":"转换技,阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色然后弃置X张与“任”颜色相同的牌并对其造成一点伤害X为你与其的体力差且至少为1。阳你的回合外当你使用或打出牌进入弃牌堆时若此牌与“任”类型相同,则你可以令一名角色摸一张牌。", "nzry_zhenliang_info":"转换技,阴:出牌阶段限一次,你可以弃置一张与“任”颜色相同的牌并对攻击范围内的一名角色造成1点伤害。阳当你于回合外使用或打出的牌结算完成后若此牌与“任”颜色相同,则你可以令一名角色摸一张牌。",
"nzry_chenglve1":"成略", "nzry_chenglve1":"成略",
"nzry_chenglve":"成略", "nzry_chenglve":"成略",
"nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。", "nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。",

View File

@ -5,7 +5,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true, connect:true,
characterSort:{ characterSort:{
sp:{ sp:{
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","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'], sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","liuxie","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","fuwan","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","lingju","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'],
sp_zhongdan:["cuiyan","huangfusong"], 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"], sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'], sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
@ -17,6 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
characterFilter:{}, characterFilter:{},
character:{ character:{
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
huaxin:['male','wei',3,['wanggui','xibing']], huaxin:['male','wei',3,['wanggui','xibing']],
wolongfengchu:['male','shu',4,['youlong','luanfeng']], wolongfengchu:['male','shu',4,['youlong','luanfeng']],
sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']], sp_zhangliao:['male','qun',4,['mubing','ziqu','diaoling']],
@ -1849,10 +1850,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var att=get.attitude(player,current); var att=get.attitude(player,current);
if(att==0) return false; if(att==0) return false;
if(att<0) return current.countCards('e',function(card){ if(att<0) return current.countCards('e',function(card){
return get.value(card)>0; return get.value(card,current)>5;
})>0; })>0;
return current.countCards('ej',function(card){ return current.countCards('ej',function(card){
return get.position(card)=='j'||get.value(card)<=0; return get.position(card)=='j'||get.value(card,current)<=0;
})>0; })>0;
})) return 1; })) return 1;
return 0; return 0;
@ -1880,7 +1881,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.position(card)=='j'||get.value(card,target)<=0; return get.position(card)=='j'||get.value(card,target)<=0;
})) return 2*att; })) return 2*att;
else if(att<0&&target.countCards('e',function(card){ else if(att<0&&target.countCards('e',function(card){
return get.value(card)>0; return get.value(card,target)>5;
})) return -att; })) return -att;
return -1; return -1;
}); });
@ -1905,7 +1906,47 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.gainPlayerCard(target,'ej',true); player.gainPlayerCard(target,'ej',true);
} }
'step 3' 'step 3'
player.chooseToDiscard(true,'he'); player.chooseToDiscard(true,'he').set('ai',function(cardx){
var player=_status.event.player;
var num=0;
var hs=player.getCards('h');
var muniu=player.getEquip('muniu');
var subs=[];
if(muniu&&muniu.cards) hs=hs.concat(muniu.cards);
if(get.type(cardx)=='basic'){
var shas=hs.filter(function(card){
return card!=cardx&&get.name(card,player)=='sha'&&player.hasValueTarget(card);
});
var numx=player.countCards('h',function(card){
return get.type(card,player)!='basic';
});
num+=Math.min(numx,Math.max(0,shas.length-player.getCardUsable('sha')))*0.7;
num+=Math.min(player.getCardUsable('sha')+numx,shas.filter(function(card){
return game.countPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0;
})>1;
}).length)*1.1;
var taos=Math.min(player.maxHp-player.hp,hs.filter(function(card){
return cardx!=card&&get.name(card,player)=='tao';
}).length);
num+=taos*player.getDamagedHp()*1.2;
}
else{
var numx=Math.sqrt(Math.min(5,player.countCards('h',function(card){
return get.type(card,player)=='basic';
})));
if(numx) num+=numx*Math.min(2,hs.filter(function(card){
if(card==cardx||get.type(card)!='equip'||!player.hasUseTarget(card)) return false;
subs.add(get.subtype(card));
return true;
}).length)*(2.5+player.countCards('e'))/2.5;
num+=hs.filter(function(card){
return card!=cardx&&get.type2(card)=='trick'&&player.hasValueTarget(card);
}).length*0.65;
}
if(get.position(cardx)=='e'&&cardx.name!='muniu'&&subs.contains(get.subtype(card))) num+=3;
return num*1.5-get.value(cardx);
});
'step 4' 'step 4'
if(result.bool&&result.cards&&result.cards.length){ if(result.bool&&result.cards&&result.cards.length){
var name=get.type(result.cards[0])=='basic'?'neifa_basic':'neifa_nobasic'; var name=get.type(result.cards[0])=='basic'?'neifa_basic':'neifa_nobasic';
@ -3462,7 +3503,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
threaten:1.2, threaten:1.2,
nogain:1 nogain:1,
skillTagFilter:function(player){
return player!=_status.currentPhase;
},
}, },
group:['zishu_draw','zishu_discard','zishu_mark'] group:['zishu_draw','zishu_discard','zishu_mark']
}, },
@ -3486,6 +3530,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var att=get.attitude(_status.event.player,target); var att=get.attitude(_status.event.player,target);
if(att<3) return 0; if(att<3) return 0;
if(target.hasJudge('lebu')) att/=2; if(target.hasJudge('lebu')) att/=2;
if(target.hasSkillTag('nogain')) att/=10;
return att/(1+get.distance(player,target,'absolute')); return att/(1+get.distance(player,target,'absolute'));
}); });
'step 1' 'step 1'
@ -3518,6 +3563,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(target.hasJudge('lebu')) return 0; if(target.hasJudge('lebu')) return 0;
var att=get.attitude(_status.event.player,target); var att=get.attitude(_status.event.player,target);
if(att<3) return 0; if(att<3) return 0;
if(target.hasSkillTag('nogain')) att/=10;
if(target.hasSha()&&_status.event.sha){ if(target.hasSha()&&_status.event.sha){
att/=5; att/=5;
} }
@ -3782,6 +3828,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.set('ai',function(target){ next.set('ai',function(target){
var player=_status.event.player; var player=_status.event.player;
var att=get.attitude(player,target)/Math.sqrt(1+target.countCards('h')); var att=get.attitude(player,target)/Math.sqrt(1+target.countCards('h'));
if(target.hasSkillTag('nogain')) att/=10;
if(player.storage.xianfu2&&player.storage.xianfu2.contains(target)) return att*2; if(player.storage.xianfu2&&player.storage.xianfu2.contains(target)) return att*2;
return att; return att;
}) })
@ -10525,7 +10572,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
ai:{ ai:{
threaten:4.2, threaten:4.2,
nogain:1 nogain:1,
skillTagFilter:function(player){
return player!=_status.currentPhase;
},
}, },
}, },
manjuan:{ manjuan:{
@ -14896,42 +14946,71 @@ game.import('character',function(lib,game,ui,get,ai,_status){
expose:0.25, expose:0.25,
}, },
}, },
"xinfu_yanyu":{ xinfu_yanyu:{
trigger:{ trigger:{
global:"phaseUseBegin", global:"phaseUseBegin",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function(event,player){
return player.countCards('he')>0; return player.countCards('he')>0;
}, },
content:function (){ content:function(){
'step 0' 'step 0'
player.chooseToDiscard(get.prompt('xinfu_yanyu'),get.translation('xinfu_yanyu_info'),'he').set('ai',function(card){ var next=player.chooseToDiscard(get.prompt('xinfu_yanyu'),get.translation('xinfu_yanyu_info'),'he').set('logSkill','xinfu_yanyu');
var map=_status.event.goon; if(player==trigger.player){
var type=get.type(card,'trick'); next.set('goon',function(){
if(!map[type]) return -1; var map={
return map[type]-get.value(card); basic:0,
}).set('logSkill','xinfu_yanyu').set('goon',function(){ trick:0.1,
var map={ };
basic:0, var hs=trigger.player.getCards('h');
trick:0.1, var sha=false;
}; var jiu=false;
var hs=trigger.player.getCards('h'); for(var i=0;i<hs.length;i++){
var sha=false; if(trigger.player.hasValueTarget(hs[i])){
var jiu=false; if(hs[i].name=='sha'&&!sha){
for(var i=0;i<hs.length;i++){ sha=true;
if(trigger.player.hasValueTarget(hs[i])){ map.basic+=2;
if(hs[i].name=='sha'&&!sha){ }
sha=true; if(hs[i].name=='tao') map.basic+=6;
map.basic+=2; if(hs[i].name=='jiu'){jiu=true;map.basic+=2.5;}
if(get.type(hs[i])=='trick') map.trick+=get.value(hs[i],player,'raw');
} }
if(hs[i].name=='tao') map.basic+=6;
if(hs[i].name=='jiu'){jiu=true;map.basic+=2.5;}
if(get.type(hs[i])=='trick') map.trick+=get.value(hs[i],player,'raw');
} }
} return map;
return map; }());
}()); next.set('ai',function(card){
var map=_status.event.goon;
var type=get.type(card,'trick');
if(!map[type]) return -1;
return map[type]-get.value(card);
});
}
else{
next.set('ai',function(cardx){
var map={
basic:0,
trick:0,
};
var hs=trigger.player.getCards('h');
var sha=false;
var jiu=false;
for(var i=0;i<hs.length;i++){
if(hs[i]!=cardx&&trigger.player.hasValueTarget(hs[i])){
if(hs[i].name=='sha'&&!sha){
sha=true;
map.basic+=2;
}
if(hs[i].name=='tao') map.basic+=6;
if(hs[i].name=='jiu'){jiu=true;map.basic+=3;}
if(get.type(hs[i])=='trick') map.trick+=player.getUseValue(hs[i]);
}
}
var type=get.type(cardx,'trick');
if(!map[type]) return -get.value(cardx);
return map[type]-get.value(cardx);
});
}
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.storage.xinfu_yanyu=get.type(result.cards[0],'trick'); player.storage.xinfu_yanyu=get.type(result.cards[0],'trick');
@ -14991,7 +15070,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var att=get.attitude(_status.event.player,target); var att=get.attitude(_status.event.player,target);
var card=_status.event.card; var card=_status.event.card;
var val=get.value(card); var val=get.value(card);
if(target==_status.currentPhase&&target.hasValueTarget(card)) att=att*2; if(player.storage.xinfu_yanyu2<3&&target==_status.currentPhase&&target.hasValueTarget(card,null,true)) att=att*5;
else if(target==player&&!player.hasJudge('lebu')&&get.type(card)=='trick') att=att*3;
if(target.hasSkillTag('nogain')) att/=10;
return att*val; return att*val;
}).set('card',event.togain); }).set('card',event.togain);
} }
@ -15013,7 +15094,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
popup:false, popup:false,
content:function (){ content:function(){
player.removeAdditionalSkill('xinfu_xiaode'); player.removeAdditionalSkill('xinfu_xiaode');
player.removeSkill('xinfu_xiaode_remove'); player.removeSkill('xinfu_xiaode_remove');
}, },
@ -15950,6 +16031,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xibing:'息兵', xibing:'息兵',
xibing_info:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。', xibing_info:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力值(至多摸五张)且本回合不能再使用手牌。',
xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。', xibing_info_guozhan:'当一名其他角色在其出牌阶段内使用第一张黑色【杀】或黑色普通锦囊牌指定唯一角色为目标后,你可令该角色将手牌摸至当前体力(至多摸五张)值且本回合不能再使用手牌。若你与其均明置了所有武将牌,则你可以暗置你与其各一张武将牌且本回合不能再明置此武将牌。',
ol_xinxianying:'辛宪英',
sp_default:"常规", sp_default:"常规",
sp_zhongdan:"忠胆英杰", sp_zhongdan:"忠胆英杰",

View File

@ -2344,7 +2344,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:4, order:4,
result:{ result:{
player:function(player,target){ player:function(player,target){
if(player.hp==1) return -4; if(player.hp==1) return -8;
if(target.countCards('e')>1) return 0; if(target.countCards('e')>1) return 0;
if(player.hp>2||target.countCards('h')>1) return -0.5; if(player.hp>2||target.countCards('h')>1) return -0.5;
return -2; return -2;
@ -2513,7 +2513,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var k of array){ for(var k of array){
numx+=get.number(k); numx+=get.number(k);
} }
if(numx==13) list.push(array); if(numx==num) list.push(array);
} }
if(list.length){ if(list.length){
list.sort(function(a,b){ list.sort(function(a,b){
@ -4615,7 +4615,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return target.isFriendOf(player)&&target.countDiscardableCards(player,'hej')>0; return target.isFriendOf(player)&&target.countDiscardableCards(player,'hej')>0;
},get.prompt2('wlcuorui')).set('ai',function(target){ },get.prompt2('wlcuorui')).set('ai',function(target){
if(target.countCards('e',function(card){ if(target.countCards('e',function(card){
return card.name!='tengjia'&&get.value(card)<=0; return card.name!='tengjia'&&get.value(card,target)<=0;
})) return 10; })) return 10;
if(target.countCards('j',function(card){ if(target.countCards('j',function(card){
return get.effect(target,{name:card.viewAs||card.name},target,target)<0; return get.effect(target,{name:card.viewAs||card.name},target,target)<0;
@ -4762,7 +4762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0' 'step 0'
player.draw(); player.draw();
'step 1' 'step 1'
player.chooseTarget(function(card,player,target){ player.chooseTarget('选择一名体力值最大的敌方角色对其造成2点伤害',function(card,player,target){
return target.isEnemyOf(player)&&!game.hasPlayer(function(current){ return target.isEnemyOf(player)&&!game.hasPlayer(function(current){
return current.isEnemyOf(player)&&current.hp>target.hp; return current.isEnemyOf(player)&&current.hp>target.hp;
}); });
@ -6116,6 +6116,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addTempSkill(result.control,event.triggername=='damageEnd'?'damageAfter':'phaseJieshu'); player.addTempSkill(result.control,event.triggername=='damageEnd'?'damageAfter':'phaseJieshu');
}, },
group:'pingjian_use', group:'pingjian_use',
phaseUse_special:['xinfu_lingren'],
}, },
pingjian_use:{ pingjian_use:{
audio:'pingjian', audio:'pingjian',
@ -6141,7 +6142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var skills2=lib.character[name][3]; var skills2=lib.character[name][3];
for(var j=0;j<skills2.length;j++){ for(var j=0;j<skills2.length;j++){
if(player.storage.pingjian.contains(skills2[j])) continue; if(player.storage.pingjian.contains(skills2[j])) continue;
if(skills.contains(skills2[j])){ if(skills.contains(skills2[j])||lib.skill.pingjian.phaseUse_special.contains(skills2[j])){
list.add(name); list.add(name);
if(!map[name]) map[name]=[]; if(!map[name]) map[name]=[];
map[name].push(skills2[j]); map[name].push(skills2[j]);
@ -7282,24 +7283,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
audio:2, audio:2,
audioname:['tw_beimihu'], audioname:['tw_beimihu'],
filter:function(event,player){ filter:function(event,player,name){
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
if(event.name=='roundStart'&&!current.isMinHp()) return false; if(name=='roundStart'&&!current.isMinHp()) return false;
return current!=player&&!current.hasMark('zongkui_mark'); return current!=player&&!current.hasMark('zongkui_mark');
}); });
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt2('zongkui'),function(card,player,target){ var targets=game.filterPlayer(function(current){
if(_status.event.round&&!target.isMinHp()) return false; if(event.triggername=='roundStart'&&!current.isMinHp()) return false;
return target!=player&&!target.hasMark('zongkui_mark'); return current!=player&&!current.hasMark('zongkui_mark');
}).set('ai',function(target){ });
var num=target.isMinHp()?0.5:(1+Math.random()); if(event.triggername=='roundStart'&&targets.length==1){
if(get.attitude(_status.event.player,target)<0){ event._result={bool:true,targets:targets};
num+=0.5; }
} else{
return num; var next=player.chooseTarget(get.prompt('zongkui'),'令一名'+(event.triggername=='roundStart'?'体力值最小的':'')+'其他角色获得“傀”标记',function(card,player,target){
}).set('round',event.triggername=='roundStart'); if(_status.event.round&&!target.isMinHp()) return false;
return target!=player&&!target.hasMark('zongkui_mark');
}).set('ai',function(target){
var num=target.isMinHp()?0.5:1;
return num*get.threaten(target);
}).set('round',event.triggername=='roundStart');
if(event.triggername=='roundStart') next.set('forced',true);
}
'step 1' 'step 1'
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
@ -8523,7 +8531,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongkui:'纵傀', zongkui:'纵傀',
zongkui_mark:'纵傀', zongkui_mark:'纵傀',
zongkui_mark_bg:'傀', zongkui_mark_bg:'傀',
zongkui_info:'回合开始时,你可以指定一名未拥有“傀”标记的其他角色,令其获得一枚“傀”标记。每轮游戏开始时,你可以指定一名体力值最少且没有“傀”标记的其他角色,令其获得一枚“傀”标记。', zongkui_info:'回合开始时,你可以指定一名未拥有“傀”标记的其他角色,令其获得一枚“傀”标记。每轮游戏开始时,你指定一名体力值最少且没有“傀”标记的其他角色,令其获得一枚“傀”标记。',
guju:'骨疽', guju:'骨疽',
guju_info:'锁定技,拥有“傀”标记的角色受到伤害后,你摸一张牌。', guju_info:'锁定技,拥有“傀”标记的角色受到伤害后,你摸一张牌。',
baijia:'拜假', baijia:'拜假',

View File

@ -84,7 +84,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangrang:['male','qun',3,['taoluan']], zhangrang:['male','qun',3,['taoluan']],
sunziliufang:['male','wei',3,['guizao','jiyu']], sunziliufang:['male','wei',3,['guizao','jiyu']],
xinxianying:['female','wei',3,['xinzhongjian','xincaishi']], xinxianying:['female','wei',3,['zhongjian','caishi']],
wuxian:['female','shu',3,['fumian','daiyan']], wuxian:['female','shu',3,['fumian','daiyan']],
xushi:['female','wu',3,['wengua','fuzhu']], xushi:['female','wu',3,['wengua','fuzhu']],
caojie:['female','qun',3,['shouxi','huimin']], caojie:['female','qun',3,['shouxi','huimin']],
@ -3451,7 +3451,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
if(!player.countCards('h')) return false; if(!player.countCards('h')) return false;
if(player.getStat('skill').zhongjian&&!player.hasSkill('zhongjian2')) return false; if(player.getStat('skill').zhongjian&&!player.hasSkill('zhongjian2')) return false;
return true; return game.hasPlayer(function(current){
return current!=player&&Math.min(current.hp,current.countCards('h'))>0;
});
}, },
filterCard:true, filterCard:true,
check:function(){ check:function(){
@ -3459,18 +3461,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
discard:false, discard:false,
lose:false, lose:false,
delay:false,
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0; return target!=player&&target.hp>0&&target.countCards('h')>0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.showCards(cards); player.showCards(cards);
'step 1' 'step 1'
var num=target.countCards('h')-target.hp; player.choosePlayerCard(target,'h',Math.min(target.countCards('h'),target.hp),true);
if(num<=0){ 'step 2'
num=1; var hs=result.cards;
}
var hs=target.getCards('h').randomGets(num);
target.showCards(hs); target.showCards(hs);
var colors=[]; var colors=[];
var numbers=[]; var numbers=[];
@ -3484,113 +3485,70 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!event.bool1&&colors.contains(get.color(hs[i]))) event.bool1=true; if(!event.bool1&&colors.contains(get.color(hs[i]))) event.bool1=true;
if(!event.bool2&&numbers.contains(get.number(hs[i]))) event.bool2=true; if(!event.bool2&&numbers.contains(get.number(hs[i]))) event.bool2=true;
} }
'step 2' 'step 3'
if(event.bool1){ if(event.bool1){
player.chooseControl(function(event,player){ var filterTarget=function(card,player,target){
return _status.event.bool?0:1; return target!=player&&target.countDiscardableCards(player,'he')>0;
}).set('bool',(get.attitude(player,target)>=0||player.countCards('h')<target.countCards('h'))).set('choiceList',['摸一张牌','弃置'+get.translation(target)+'一张牌']); }
if(!game.hasPlayer(function(current){
return filterTarget(null,player,current);
})) event._result={bool:false};
else player.chooseTarget(filterTarget,'弃置一名其他角色的一张牌或摸一张牌').set('ai',function(target){
var att=get.attitude(player,target);
if(att>=0) return 0;
if(target.countCards('he',function(card){
return get.value(card)>5;
})) return -att;
return 0;
});
} }
else{ else{
event.goto(4); event.goto(5);
}
'step 3'
if(result&&typeof result.index=='number'){
if(result.index==0) player.draw();
else player.discardPlayerCard(target,'he',true);
} }
'step 4' 'step 4'
if(!result.bool) player.draw();
else{
var target=result.targets[0];
player.line(target,'green');
player.discardPlayerCard(target,true,'he');
}
'step 5'
if(event.bool2){ if(event.bool2){
player.addTempSkill('zhongjian2'); player.addTempSkill('zhongjian2');
} }
if(!event.bool1&&!event.bool2){ if(!event.bool1&&!event.bool2){
if(player.hasSkill('caishi')&&typeof player.storage.caishi=='number'){ player.addSkill('caishix');
player.storage.caishi--; if(typeof player.storage.caishix!='number') player.storage.caishix=0;
if(player.storage.caishi<=0){ player.storage.caishix--;
player.unmarkSkill('caishi'); player.markSkill('caishix');
if(player.storage.caishi<0){
player.markSkill('zhongjian');
}
}
else{
player.updateMarks();
}
}
else{
player.unmarkSkill('zhongjian');
if(player.hasSkill('zhongjian3')){
player.storage.zhongjian3--;
}
else{
player.addSkill('zhongjian3');
}
}
player.popup('杯具'); player.popup('杯具');
} }
}, },
intro:{
content:function(storage,player){
return '手牌上限'+player.storage.caishi;
},
markcount:function(storage,player){
return player.storage.caishi;
}
},
ai:{ ai:{
order:8, order:8,
result:{ result:{
player:function(player,target){ player:function(player,target){
var num=Math.max(1,target.countCards('h')-target.hp); return Math.min(target.hp,target.countCards('h'));
if(get.attitude(player,target)<0) return 1.5*num;
return num;
} }
} }
} }
}, },
zhongjian2:{}, zhongjian2:{},
zhongjian3:{
init:function(player){
player.storage.zhongjian3=-1;
},
mark:true,
onremove:true,
intro:{
content:'手牌上限#'
},
mod:{
maxHandcard:function(player,num){
if(typeof player.storage.zhongjian3=='number') return num+player.storage.zhongjian3;
}
}
},
caishi:{ caishi:{
audio:2, audio:2,
trigger:{player:'phaseDrawBegin'}, trigger:{player:'phaseDrawBegin'},
direct:true, direct:true,
init:function(player){
player.storage.caishi=0;
},
onremove:function(player){
player.unmarkSkill('zhongjian');
delete player.storage.caishi;
},
intro:{
content:function(storage){
if(storage>0) return '手牌上限+'+storage;
if(storage<0) return '手牌上限'+storage;
return '手牌上限无变化';
},
},
content:function(){ content:function(){
'step 0' 'step 0'
if(player.isHealthy()){ if(player.isHealthy()){
event.type=0; event.type=0;
player.chooseBool(get.prompt('caishi'),'手牌上限+1,然后本回合你的牌不能对其他角色使用',function(event,player){ player.chooseBool(get.prompt('caishi'),'令自己的手牌上限+1',function(){
return player.skipList.contains('phaseUse')||!player.needsToDiscard(1); return true;
}); });
} }
else{ else{
event.type=1; event.type=1;
player.chooseControlList(get.prompt('caishi'),'手牌上限+1,然后本回合你的牌不能对其他角色使用','回复1点体力然后本回合你的牌不能对自己使用',function(){ player.chooseControlList(get.prompt('caishi'),'令自己的手牌上限+1','回复1点体力然后本回合你的牌不能对自己使用',function(){
return 1; return 1;
}); });
} }
@ -3599,17 +3557,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.control!='cancel2'){ if(result.control!='cancel2'){
player.logSkill('caishi'); player.logSkill('caishi');
if(result.index==0){ if(result.index==0){
player.addTempSkill('caishi2'); player.addSkill('caishix');
player.storage.caishi++; if(typeof player.storage.caishix!='number') player.storage.caishix=0;
if(player.storage.caishi>=0){ player.storage.caishix++;
player.unmarkSkill('zhongjian'); player.markSkill('caishix');
if(player.storage.caishi>0){
player.markSkill('caishi');
}
}
else{
player.updateMarks();
}
} }
else if(result.index==1){ else if(result.index==1){
player.recover(); player.recover();
@ -3620,25 +3571,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
if(result.bool){ if(result.bool){
player.logSkill('caishi'); player.logSkill('caishi');
player.addTempSkill('caishi2'); player.addSkill('caishix');
player.storage.caishi++; if(typeof player.storage.caishix!='number') player.storage.caishix=0;
if(player.storage.caishi>=0){ player.storage.caishix++;
player.unmarkSkill('zhongjian'); player.markSkill('caishix');
if(player.storage.caishi>0){
player.markSkill('caishi');
}
}
else{
player.updateMarks();
}
} }
} }
}, },
},
caishix:{
intro:{
content:function(storage){
if(storage>0) return '手牌上限+'+storage;
if(storage<0) return '手牌上限'+storage;
return '手牌上限无变化';
},
},
mod:{ mod:{
maxHandcard:function(player,num){ maxHandcard:function(player,num){
if(typeof player.storage.caishi=='number') return num+player.storage.caishi; if(typeof player.storage.caishix=='number') return num+player.storage.caishix;
}, },
} },
charlotte:true,
onremove:true,
}, },
caishi2:{ caishi2:{
mod:{ mod:{
@ -12150,7 +12105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yufan:['re_yufan','yufan'], yufan:['re_yufan','yufan'],
zhuran:['re_zhuran','xin_zhuran','zhuran','old_zhuran'], zhuran:['re_zhuran','xin_zhuran','zhuran','old_zhuran'],
liru:['re_liru','xin_liru','liru'], liru:['re_liru','xin_liru','liru'],
fuhuanghou:['re_fuhuanghou','fuhuanghou','old_fuhuanghou'], fuhuanghou:['re_fuhuanghou','xin_fuhuanghou','fuhuanghou','old_fuhuanghou'],
chenqun:['chenqun','old_chenqun'], chenqun:['chenqun','old_chenqun'],
hanhaoshihuan:['re_hanhaoshihuan','hanhaoshihuan'], hanhaoshihuan:['re_hanhaoshihuan','hanhaoshihuan'],
caozhen:['caozhen','old_caozhen'], caozhen:['caozhen','old_caozhen'],
@ -12166,7 +12121,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuyu:['liuyu','ol_liuyu'], liuyu:['liuyu','ol_liuyu'],
zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'], zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'],
jikang:['re_jikang','jikang'], jikang:['re_jikang','jikang'],
xinxianying:['re_xinxianying','xinxianying','sp_xinxianying','ol_xinxianying'], xinxianying:['re_xinxianying','xinxianying','ol_xinxianying','sp_xinxianying'],
}, },
translate:{ translate:{
old_huaxiong:'华雄', old_huaxiong:'华雄',
@ -12235,7 +12190,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huanghao:'黄皓', huanghao:'黄皓',
zhangrang:'张让', zhangrang:'张让',
cenhun:'岑昏', cenhun:'岑昏',
xinxianying:'辛宪英', xinxianying:'OL辛宪英',
wuxian:'吴苋', wuxian:'吴苋',
xushi:'徐氏', xushi:'徐氏',
caojie:'曹节', caojie:'曹节',
@ -12319,9 +12274,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhongjian_bg:'鉴', zhongjian_bg:'鉴',
zhongjian3:'忠鉴', zhongjian3:'忠鉴',
zhongjian3_bg:'鉴', zhongjian3_bg:'鉴',
zhongjian_info:'出牌阶段限一次,你可以展示一张手牌,然后展示手牌数大于体力值的一名其他角色X张手牌X为其手牌数和体力值之差且至少为1)。若以此法展示的牌与你展示的牌:有颜色相同的,你摸一张牌或弃置其一张牌;有点数相同的,本回合此技能改为“出牌阶段限两次”;均不同,你的手牌上限-1', zhongjian_info:'出牌阶段限一次,你可以展示一张手牌,然后展示一名其他角色X张手牌X为其体力值。若以此法展示的牌与你展示的牌有颜色相同的选择:①摸一张牌。②弃置一名其他角色的一张牌;有点数相同的,本回合此技能改为“出牌阶段限两次”;均不同,你的手牌上限-1',
caishi:'才识', caishi:'才识',
caishi_info:'摸牌阶段开始时你可以选择一项1.手牌上限+1然后本回合你的牌不能对其他角色使用2.回复1点体力然后本回合你的牌不能对自己使用', caishix:'才识/忠鉴',
caishi_info:'摸牌阶段开始时你可以选择一项1.手牌上限+12.回复1点体力然后本回合你的牌不能对自己使用',
xincaishi:'才识', xincaishi:'才识',
xincaishi_info:'摸牌阶段你可以选择一项1.少摸一张牌然后本回合发动〖忠鉴〗时可以多展示自己的一张牌2.本回合手牌上限-1然后本回合发动〖忠鉴〗时可以多展示对方的一张牌3.多摸两张牌,本回合不能发动〖忠鉴〗。', xincaishi_info:'摸牌阶段你可以选择一项1.少摸一张牌然后本回合发动〖忠鉴〗时可以多展示自己的一张牌2.本回合手牌上限-1然后本回合发动〖忠鉴〗时可以多展示对方的一张牌3.多摸两张牌,本回合不能发动〖忠鉴〗。',
guizao:'瑰藻', guizao:'瑰藻',

View File

@ -9923,7 +9923,7 @@
shibing_emotion:'士兵表情', shibing_emotion:'士兵表情',
xiaosha_emotion:'小杀表情', xiaosha_emotion:'小杀表情',
xiaotao_emotion:'小桃表情', xiaotao_emotion:'小桃表情',
xiaojiu_emotion:'小表情', xiaojiu_emotion:'小表情',
pause:'暂停', pause:'暂停',
config:'选项', config:'选项',

View File

@ -1,8 +1,9 @@
window.noname_update={ window.noname_update={
version:'1.9.108.5', version:'1.9.108.5.1',
update:'1.9.108.4.2.1', update:'1.9.108.5',
changeLog:[ changeLog:[
'公孙康,手杀郭淮、潘璋马忠、伏皇后,新小乔', '卢植、辛宪英技能调整',
'应变牌堆加入木牛流马',
'bug修复', 'bug修复',
], ],
files:[ files:[
@ -16,10 +17,10 @@ window.noname_update={
//'card/standard.js', //'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/yunchou.js', //'card/yunchou.js',
//'card/yingbian.js', 'card/yingbian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.js',
//'character/diy.js', 'character/diy.js',
//'character/extra.js', //'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
@ -27,14 +28,14 @@ window.noname_update={
//'character/hearth.js', //'character/hearth.js',
'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', 'character/old.js',
//'character/ow.js', //'character/ow.js',
'character/rank.js', 'character/rank.js',
'character/refresh.js', //'character/refresh.js',
'character/shenhua.js', 'character/shenhua.js',
//'character/sp.js', 'character/sp.js',
//'character/sp2.js', 'character/sp2.js',
'character/tw.js', //'character/tw.js',
//'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
@ -45,7 +46,7 @@ window.noname_update={
//'layout/default/layout.css', //'layout/default/layout.css',
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
//'mode/guozhan.js', //'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
@ -55,7 +56,7 @@ window.noname_update={
//'mode/brawl.js', //'mode/brawl.js',
//'mode/versus.js', //'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
//'game/game.js', 'game/game.js',
//'game/keyWords.js', //'game/keyWords.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',