v1.9.112.3

This commit is contained in:
Spmario233 2022-03-22 22:53:37 +08:00
parent d13637b99c
commit aae7f6834d
74 changed files with 1423 additions and 422 deletions

BIN
audio/die/liucheng.mp3 Normal file

Binary file not shown.

BIN
audio/die/ol_dongzhao.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_chendeng.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_xiahoushi.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_lvfan.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_ol_zhanghe.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_yangwan.mp3 Normal file

Binary file not shown.

BIN
audio/die/xin_jushou.mp3 Normal file

Binary file not shown.

BIN
audio/die/yj_huangzhong.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olxianlve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olxianlve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olzaowang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olzaowang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/refuyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/refuyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqiaoshi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reqiaoshi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rewangzu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rewangzu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyanyu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyanyu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyingshui1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reyingshui2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/spdiancai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spdiancai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spdiaodu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spdiaodu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/splveying1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/splveying2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spmingxuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spmingxuan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/spqishe1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spqishe2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spshidi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spshidi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spxianchou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spxianchou2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyanji1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyanji2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyanji3.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyingwu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyingwu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyishi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spyishi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -72,6 +72,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kotomi:['female','key',3,['kotomi_qinji','kotomi_chuanxiang']],
key_mia:['female','key',3,['mia_shihui','mia_qianmeng']],
key_kano:['female','key',3,['kano_liezhen','kano_poyu']],
db_key_liyingxia:['female','shu',3,['liyingxia_sanli','liyingxia_zhenjun','liyingxia_wumai'],['doublegroup:shu:key']],
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
@ -196,7 +197,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao","ns_chengpu"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_noname:['noname'],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
},
},
@ -217,6 +218,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yanghu:'羊祜221年278年12月27日字叔子泰山郡南城县人。西晋时期杰出的战略家、政治家、文学家曹魏上党太守羊衜的儿子名儒蔡邕的女儿蔡文姬的外甥。出身“泰山羊氏”博学能文清廉正直。曹魏时期接受公车征辟出任中书郎迁给事黄门侍郎。姐姐嫁给大将军司马师投靠司马氏家族仕途平步青云。魏元帝曹奂即位出任秘书监、相国从事中郎、中领军统领御林军兼管内外政事册封钜平县子迁。西晋建立后迁中军将军、散骑常侍、郎中令册封钜平侯。泰始五年269年出任车骑将军、荆州都督加任开府仪同三司坐镇襄阳屯田兴学以德怀柔深得军民之心扩充军备训练士兵全力准备灭亡孙吴累迁征南大将军册封南城侯。咸宁四年去世临终前举荐杜预接任职务获赠侍中、太傅谥号为“成”。唐宋时期配享武庙。',
},
characterTitle:{
db_key_liyingxia:'#rヘブンバーンズレッド',
key_kano:'#bAIR',
key_mia:'#bLoopers',
key_kotomi:'#gClannad',
@ -505,6 +507,110 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_lucia:['key_shizuru'],
},
skill:{
liyingxia_sanli:{
trigger:{target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
if(event.player==player||event.player!=_status.currentPhase) return false;
var index=event.player.getHistory('useCard',function(evt){
return evt.targets.contains(player);
}).indexOf(event.getParent());
if(index==2) return event.player.isAlive()&&player.countCards('he')>0;
return index<2&&index>-1;
},
logTarget:'player',
content:function(){
'step 0'
var index=event.player.getHistory('useCard',function(evt){
return evt.targets.contains(player);
}).indexOf(trigger.getParent());
if(index==2){
player.chooseCard('he',true,'三礼:交给'+get.translation(trigger.player)+'一张牌');
}
else{
player.draw();
event.finish();
}
'step 1'
if(result.bool){
trigger.player.gain(result.cards,player,'giveAuto');
}
},
},
liyingxia_zhenjun:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.group=='key'&&player.hasHistory('useCard',function(evt){
return evt.card.name=='sha'||(get.type(evt.card)=='trick'&&get.tag(evt.card,'damage')>0);
});
},
content:function(){
'step 0'
var num=player.getHistory('useCard',function(evt){
return evt.card.name=='sha'||(get.type(evt.card)=='trick'&&get.tag(evt.card,'damage')>0);
}).length;
player.chooseTarget(get.prompt('liyingxia_zhenjun'),[1,num],'令至多'+get.cnNumber(num)+'名角色各摸一张牌').set('ai',(serafu)=>get.attitude(_status.event.player,serafu));
'step 1'
if(result.bool){
var targets=result.targets.sortBySeat();
player.logSkill('liyingxia_zhenjun',targets);
game.asyncDraw(targets);
for(var i of targets) i.addTempSkill('liyingxia_zhenjun_enhance',{player:player==i?'phaseJieshuBegin':'phaseAfter'});
}
else event.finish();
'step 2'
game.delayx();
},
subSkill:{
enhance:{
trigger:{source:'damageBegin1'},
forced:true,
charlotte:true,
mark:true,
filter:(event,player)=>(player==_status.currentPhase),
intro:{content:'下回合首次造成的伤害+1'},
content:function(){
trigger.num++;
player.removeSkill(event.name);
},
},
},
},
liyingxia_wumai:{
trigger:{global:'roundStart'},
direct:true,
filter:function(event,player){
return player.group=='shu'&&(player.getStorage('liyingxia_wumai').length<4||game.hasPlayer((current)=>current.isDamaged()));
},
content:function(){
'step 0'
var list=lib.skill.liyingxia_wumai.derivation.slice(0);
list.removeArray(player.getStorage('liyingxia_wumai'));
if(list.length){
player.chooseControl(list,'cancel2').set('prompt',get.prompt('liyingxia_wumai')).set('prompt2','获得一个技能直到本轮结束');
}
else{
event.num=Math.min(3,game.countPlayer((current)=>current.isDamaged()));
player.chooseBool(get.prompt('liyingxia_wumai')+'(可摸'+get.cnNumber(event.num)+'张牌)')
event.goto(2);
}
'step 1'
if(result.control!='cancel2'){
player.logSkill('liyingxia_wumai');
player.markAuto('liyingxia_wumai',[result.control]);
player.addTempSkill(result.control,'roundStart');
game.log(player,'获得了技能','#g【'+get.translation(result.control)+'】')
}
event.finish();
'step 2'
if(result.bool){
player.logSkill('liyingxia_wumai');
player.draw(num);
}
},
derivation:['bazhen','rejizhi','reguanxing','youlong'],
},
kano_liezhen:{
trigger:{player:'phaseJieshuBegin'},
filter:function(event,player){
@ -695,10 +801,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
var target=result.targets[0];
player.logSkill('mia_qianmeng_fail',target);
var num=player.storage.mia_qianmeng.number,cards=[];
var num=player.storage.mia_qianmeng.number,suit=player.storage.mia_qianmeng.suit,cards=[];
for(var i=0;i<ui.cardPile.childNodes.length;i++){
var card=ui.cardPile.childNodes[i];
if(card.number==num) cards.push(card);
if(card.number==num&&card.suit==suit) cards.push(card);
}
if(cards.length) target.gain(cards,'gain2');
}
@ -2391,7 +2497,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.filterCard({name:name,isCard:true},player,event)){
list.push([type,'',name]);
if(name=='sha'){
for(var j of lib.inpile_nature) list.push([type,'',i,j]);
for(var j of lib.inpile_nature) list.push([type,'',name,j]);
}
}
}
@ -15147,6 +15253,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kotomi:'一之濑琴美',
key_mia:'藤川米娅',
key_kano:'雾岛佳乃',
db_key_liyingxia:'李映夏',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -15487,7 +15594,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mia_shihui:'时迴',
mia_shihui_info:'锁定技摸牌阶段你改为摸X+1张牌X为你上回合弃置的牌数结束阶段你弃置一张牌并回复1点体力。',
mia_qianmeng:'潜梦',
mia_qianmeng_info:'使命技。①游戏开始时,你摸一张牌,然后将一张牌置于牌堆的正中央。②使命:当有角色获得“潜梦”牌时,其将此牌交给你。你将体力值回复至上限,失去〖时迴〗并获得〖风发〗。③失败:当你死亡时,你可令一名角色获得牌堆中所有与“潜梦”牌点数相同的牌。',
mia_qianmeng_info:'使命技。①游戏开始时,你摸一张牌,然后将一张牌置于牌堆的正中央。②使命:当有角色获得“潜梦”牌时,其将此牌交给你。你将体力值回复至上限,失去〖时迴〗并获得〖风发〗。③失败:当你死亡时,你可令一名角色获得牌堆中所有与“潜梦”牌花色点数相同的牌。',
mia_fengfa:'风发',
mia_fengfa_info:'锁定技。摸牌阶段你多摸X张牌X为你上回合使用过的牌数。',
kano_liezhen:'列阵',
@ -15496,6 +15603,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kano_paibingbuzhen_info:'出牌阶段,对至多三名角色使用。目标角色摸一张牌,然后将一张牌置入仁库。若仁库中的牌类型或颜色均相同,则你摸一张牌。',
kano_poyu:'破羽',
kano_poyu_info:'当你成为【杀】或伤害性锦囊牌的目标后,若仁库中有牌,你可判定。然后你可从仁库中移去一张与此牌类型或花色相同的牌,令此牌对你无效。',
liyingxia_sanli:'三礼',
liyingxia_sanli_info:'锁定技。其他角色于其回合内前两次使用牌指定你为目标后,你摸一张牌;第三次使用牌指定你为目标后,你交给其一张牌。',
liyingxia_zhenjun:'振军',
liyingxia_zhenjun_info:'键势力技。结束阶段你可以令至多X名角色各摸一张牌且这些角色于自己的下个回合内第一次造成的伤害+1X为你本回合内使用【杀】和伤害性锦囊牌的次数。',
liyingxia_wumai:'武脉',
liyingxia_wumai_info:'蜀势力技。一轮游戏开始时,你可以选择获得其中一个未选择过的技能直到本轮结束:〖八阵〗/〖集智〗/〖观星〗/〖游龙〗。若均已选择过则你可以摸X张牌X为场上已受伤的角色数且至多为3。',
key_kud:'库特莉亚芙卡',
kud_qiaoshou:'巧手',

View File

@ -26,7 +26,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shen_sunce:['male','shen','1/6',['yingba','scfuhai','pinghe'],['wu']],
shen_xunyu:['male','shen',3,['tianzuo','lingce','dinghan'],['wei']],
shen_taishici:['male','shen',4,['dulie','tspowei','dangmo'],['wu']],
shen_taishici:['male','shen',4,['dulie','tspowei'],['wu']],
shen_guojia:['male','shen',3,['reshuishi','stianyi','resghuishi'],['wei']],
shen_diaochan:['female','shen',3,['meihun','huoxin'],['qun']],
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
@ -93,7 +93,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 3'
game.delayx();
},
onremove:function(){
onremove:function(player){
player.removeGaintag('hina_shenshi');
},
group:'hina_shenshi_yingbian',
@ -467,8 +467,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.broadcastAll(function(){lib.inpile.add('qizhengxiangsheng')});
game.updateRoundNumber();
},
group:'tianzuo_rewrite',
group:'tianzuo_remove',
subSkill:{
remove:{
audio:2,
trigger:{target:'useCardToBefore'},
forced:true,
priority:15,
filter:function(event,player){
return event.card&&event.card.name=='qizhengxiangsheng';
},
content:function(){
trigger.cancel();
},
ai:{
target:function(card,player,target){
if(card&&card.name=='qizhengxiangsheng') return 'zerotarget';
},
},
},
global:{
trigger:{player:'useCardToPlayered'},
forced:true,
@ -618,109 +635,158 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
dulie:{
audio:2,
trigger:{
global:'phaseBefore',
player:'enterGame',
},
trigger:{target:'useCardToTarget'},
forced:true,
logTarget:'player',
filter:function(event,player){
return (event.name!='phase'||game.phaseNumber==0)&&game.players.length>1&&game.hasPlayer(function(current){
return current!=player&&!current.hasMark('dulie');
});
},
logTarget:function(event,player){
return game.filterPlayer(function(current){
return current!=player&&!current.hasMark('dulie');
});
return event.card.name=='sha'&&event.player.hp>player.hp;
},
content:function(){
'step 0'
var targets=game.filterPlayer(function(current){
return current!=player&&!current.hasMark('dulie');
}).sortBySeat();
for(var i of targets) i.addMark('dulie',1);
game.delayx();
player.judge(function(result){
if(get.suit(result)=='heart') return 2;
return -1;
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool){
trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player);
trigger.untrigger();
}
},
mod:{
targetInRange:function(card,player,target){
if(card.name=='sha'&&!target.hasMark('dulie')) return true;
ai:{
effect:{
target:function(card,player,target,current,isLink){
if(card.name=='sha'&&!isLink&&player.hp>target.hp) return 0.5;
},
},
},
marktext:'围',
intro:{
name:'笃烈/破阵 (围)',
name:'破围(围)',
name2:'围',
content:'mark',
},
group:'dulie_sha',
subSkill:{
sha:{
audio:'dulie',
trigger:{target:'useCardToTarget'},
forced:true,
logTarget:'player',
filter:function(event,player){
return event.card.name=='sha'&&event.player.isIn()&&!event.player.hasMark('dulie');
},
content:function(){
'step 0'
player.judge(function(result){
if(get.suit(result)=='heart') return 2;
return -1;
}).judge2=function(result){
return result.bool;
};
'step 1'
if(result.bool){
trigger.targets.remove(player);
trigger.getParent().triggeredTargets2.remove(player);
trigger.untrigger();
}
},
ai:{
effect:{
target:function(card,player,target,current,isLink){
if(card.name=='sha'&&!isLink&&!player.hasMark('dulie')) return 0.5;
},
},
},
},
},
},
tspowei:{
audio:2,
dutySkill:true,
forced:true,
trigger:{source:'damageBegin2'},
trigger:{global:'damageEnd'},
logTarget:'player',
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.player&&
event.player.isIn()&&event.player.hasMark('dulie');
return event.player&&event.player.isIn()&&event.player.hasMark('dulie');
},
content:function(){
trigger.cancel();
trigger.player.removeMark('dulie',trigger.player.countMark('dulie'));
},
derivation:'shenzhu',
group:['tspowei_achieve','tspowei_fail'],
ai:{
combo:'dulie',
effect:{
player:function(card,player,target){
if(card.name=='sha'&&target.hasMark('dulie')&&get.attitude(player,target)>=0) return [1,1,0,0];
if(get.tag(card,'damage')&&_status.event.type=='respondShan'&&_status.event.getParent().name=='sha'&&target.hasMark('dulie')&&get.attitude(target,player)>=0) return [1,1,0,0];
group:['tspowei_init','tspowei_move','tspowei_achieve','tspowei_fail','tspowei_use'],
subSkill:{
use:{
audio:'tspowei',
trigger:{global:'phaseBegin'},
direct:true,
filter:function(event,player){
return event.player!=player&&event.player.hasMark('dulie')&&
(player.countCards('h')>0||player.hp>=event.player.hp&&event.player.countCards('h')>0);
},
content:function(){
'step 0'
var list=[],target=trigger.player,choiceList=[
'弃置一张牌并对其造成1点伤害',
'获得其一张手牌',
];
event.target=target;
if(player.hasCard(function(card){
return lib.filter.cardDiscardable(card,player,'tspowei_use');
},'h')) list.push('选项一');
else choiceList[0]='<span style="opacity:0.5">'+choiceList[0]+'</span>';
if(player.hp>=target.hp&&target.countCards('h')>0) list.push('选项二');
else choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
player.chooseControl(list,'cancel2').set('prompt',get.prompt('tspowei',target)).set('choiceList',choiceList).set('ai',function(){
var evt=_status.event.getParent();
if(evt.player.hasCard(function(card){
return lib.filter.cardDiscardable(card,evt.player,'tspowei_use')&&get.value(card,evt.player)<7;
},'h')&&get.damageEffect(evt.target,evt.player,evt.player)>0) return '选项一';
if(evt.player.hp>=evt.target.hp&&evt.target.countCards('h')>0&&get.attitude(evt.player,evt.target)<=0&&!evt.target.hasSkillTag('noh')) return '选项二';
return 'cancel2';
});
'step 1'
if(result.control!='cancel2'){
if(result.control=='选项二'){
player.logSkill('tspowei',target);
player.gainPlayerCard(target,'h',true);
event.goto(3);
}
}
else event.finish();
'step 2'
player.chooseToDiscard('h',true).logSkill=['tspowei_use',target];
target.damage();
'step 3'
player.addTempSkill('tspowei_inRange');
},
ai:{expose:0.2},
},
inRange:{
charlotte:true,
mod:{
inRangeOf:function(from,to){
if(from==_status.currentPhase) return true;
},
},
},
init:{
audio:'tspowei',
trigger:{
global:'phaseBefore',
player:'enterGame',
},
forced:true,
filter:function(event,player){
return event.name!='phase'||game.phaseNumber==0;
},
logTarget:function(event,player){
return game.filterPlayer((current)=>current!=player&&!current.hasMark('dulie'));
},
content:function(){
var list=game.filterPlayer((current)=>current!=player&&!current.hasMark('dulie')).sortBySeat();
for(var i of list) i.addMark('dulie',1,false);
},
},
move:{
audio:'tspowei',
trigger:{player:'phaseBegin'},
forced:true,
filter:function(event,player){
return game.hasPlayer((current)=>current!=player&&current.hasMark('dulie'));
},
content:function(){
var list=game.filterPlayer((current)=>current!=player&&current.hasMark('dulie')).sortBySeat();
var map={};
for(var i of list){
var num=i.countMark('dulie');
i.removeMark('dulie',num);
map[i.playerid]=num;
}
for(var i of list){
var next=i.next;
if(next==player) next=next.next;
next.addMark('dulie',map[i.playerid]);
}
},
},
},
subSkill:{
achieve:{
audio:'tspowei1',
trigger:{player:'useCardAfter'},
trigger:{player:'phaseBegin'},
forced:true,
skillAnimation:true,
animationColor:'metal',
filter:function(event,player){
return event.card.name=='sha'&&!game.hasPlayer(function(current){
return !game.hasPlayer(function(current){
return current.hasMark('dulie');
});
},
@ -750,32 +816,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tspowei2:{audio:true},
shenzhu:{
audio:2,
mod:{
cardUsable:function(card){
if(card.name=='sha') return Infinity;
},
},
trigger:{player:'useCardAfter'},
forced:true,
filter:function(event,player){
return event.card.name=='sha'&&event.card.isCard&&event.cards.length==1;
},
content:function(){
player.draw();
//player.addTempSkill('shenzhu_less');
//player.addMark('shenzhu_less',1,false);
'step 0'
player.chooseControl().set('choiceList',[
'摸一张牌,且本回合使用【杀】的次数上限+1',
'摸三张牌,且本回合不能再使用【杀】',
]).set('ai',()=>_status.event.player.hasSha()?0:1);
'step 1'
if(result.index==0){
player.draw();
player.addTempSkill('shenzhu_more');
player.addMark('shenzhu_more',1,false);
}
else{
player.draw(3);
player.addTempSkill('shenzhu_less');
}
},
subSkill:{
less:{
onremove:true,
more:{
charlotte:true,
intro:{content:'手牌上限-#'},
onremove:true,
mod:{
maxHandcard:function(player,num){
return num-player.countMark('shenzhu_less');
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.countMark('shenzhu_more');
},
},
},
less:{
charlotte:true,
mod:{
cardEnabled:function(card){
if(card.name=='sha') return false;
}
},
},
},
},
dangmo:{
@ -4843,11 +4923,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sghuishi_info:'限定技出牌阶段你可以选择一名其他角色若其有未发动过的觉醒技则你令其发动这些觉醒技时无视原有条件否则其摸四张牌。然后你减2点体力上限。',
shen_taishici:'神太史慈',
dulie:'笃烈',
dulie_info:'锁定技。①游戏开始时,你令所有其他角色获得“围”。②你对没有“围”的角色使用【杀】无距离限制。③当你成为【杀】的目标时,若使用者没有“围”,则你进行判定。若结果为红桃,则取消此目标。',
dulie_info:'锁定技。当你成为【杀】的目标时,若使用者的体力值大于你,则你进行判定。若结果为红桃,则取消此目标。',
tspowei:'破围',
tspowei_info:'使命技。①当你因使用【杀】而对有“围”的角色造成伤害时,你防止此伤害并移去该角色的“围”。②使命:当你使用【杀】结算完成后,若场上没有“围”,则你获得技能〖神著〗。失败当你进入濒死状态时你将体力值回复至1点然后弃置装备区的所有牌。',
tspowei_info:'使命技。①游戏开始时你令所有其他角色获得一个“围”。②一名角色受到伤害后若其有“围”则其移去“围”。③回合开始时你选择所有有“围”的角色。这些角色失去“围”然后这些角色的第一个不为你的下家获得等量的“围”。④一名其他角色的回合开始时若其有围则你可以选择一项⒈弃置一张手牌并对其造成1点伤害。⒉若其体力值不大于你则你获得其一张手牌。选择完成后你视为在其攻击范围内直到回合结束。⑤使命:当你使用【杀】结算完成后,若场上没有“围”,则你获得技能〖神著〗。失败当你进入濒死状态时你将体力值回复至1点然后弃置装备区的所有牌。',
shenzhu:'神著',
shenzhu_info:'你使用【杀】无次数限制。当你使用有对应实体牌的非转化【杀】结算结束后,你摸一张牌。',
shenzhu_info:'锁定技,当你使用有对应实体牌的非转化【杀】结算结束后,你选择一项:①摸一张牌,且本回合使用【杀】的次数上限+1。②摸三张牌且本回合不能再使用【杀】。',
dangmo:'荡魔',
dangmo_info:'当你于出牌阶段内使用第一张【杀】选择目标后你可以为此牌增加至多Y-1个目标Y为你的体力值。',
reshuishi:'慧识',
@ -4858,7 +4938,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qizhengxiangsheng_info:'出牌阶段对一名其他角色使用。你将目标角色标记为“奇兵”或“正兵”对其他角色不可见。然后目标角色可以打出一张【杀】或【闪】。若其是“奇兵”且未打出【杀】则你对其造成1点伤害若其是“正兵”且未打出【闪】则你获得其一张牌。',
shen_xunyu:'神荀彧',
tianzuo:'天佐',
tianzuo_info:'①游戏开始时你将8张【奇正相生】加入牌堆。②当一名角色成为【奇正相生】的目标后,你可观看其手牌,然后可以更改其标记。',
tianzuo_info:'锁定技。①游戏开始时你将8张【奇正相生】加入牌堆。②【奇正相生】对你无效。',
lingce:'灵策',
lingce_info:'锁定技。当有【奇正相生】或智囊或〖定汉①〗记录过的锦囊牌被使用时若此牌不为转化牌且对应实体牌数量为1则你摸一张牌。',
dinghan:'定汉',

View File

@ -6,13 +6,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua"],
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun","qiaozhou","fuqian","simafu","mayuanyi","yanpu","sunhanhua","sp_maojie"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning",'yj_huangzhong'],
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong','sp_yanghu'],
mobile_shijiren:['caizhenji','xiangchong','sp_huaxin','sp_xujing','zhangzhongjing','sp_zhangwen','liuzhang','qiaogong'],
mobile_shijiyong:['db_wenyang','sp_chendong','yuanhuan','sp_zongyu','sp_wangshuang','sunyi','sp_gaolan','sp_huaman'],
mobile_shijiyan:['sp_cuiyan','sp_zhangchangpu','sp_jiangwan','sp_jiangqing','sp_lvfan','sp_huangfusong'],
mobile_shijiyan:['sp_cuiyan','sp_zhangchangpu','sp_jiangwan','sp_jiangqing','sp_lvfan','sp_huangfusong','sp_zhujun'],
mobile_mougongtong:['sp_yangwan','liucheng'],
mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
@ -21,11 +21,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui"],
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong","xin_sunluban","xin_caozhen"],
mobile_yijiang5:['xin_sunxiu',],
mobile_yijiang67:["re_jikang"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan","xin_hansui"],
},
},
character:{
xin_sunxiu:['male','wu',3,['mobileyanzhu','mobilexingxue','zhaofu'],['zhu']],
sp_maojie:['male','wei',3,['bingqing','yingfeng']],
sp_zhujun:['male','qun',4,['yangjie','zjjuxiang','houfeng']],
liucheng:['female','qun',3,['splveying','spyingwu']],
sp_yangwan:['female','shu',3,['spmingxuan','spxianchou']],
sp_huangfusong:['male','qun',4,['spzhengjun','spshiji','sptaoluan']],
@ -59,7 +63,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qiaogong:['male','wu',3,['yizhu','luanchou']],
liuzhang:['male','qun',3,['jutu','yaohu','rehuaibi'],['zhu']],
sp_zhangwen:['male','wu',3,['gebo','spsongshu']],
zhangzhongjing:['male','qun',3,['jishi','liaoyi','binglun']],
zhangzhongjing:['male','qun',3,['jishi','xinliaoyi','binglun']],
xin_zhoucang:['male','shu',4,['mobilezhongyong']],
sp_xujing:['male','shu',3,['boming','ejian']],
sp_huaxin:['male','wei',3,['yuanqing','shuchen']],
@ -602,6 +606,388 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//孙休
mobilexingxue:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
direct:true,
content:function(){
'step 0'
var num=player.hp;
if(!player.hasSkill('mobileyanzhu')){
num=player.maxHp;
}
player.chooseTarget([1,num],get.prompt2('mobilexingxue')).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.countCards('he')) return att;
return att/10;
});
'step 1'
if(result.bool){
player.logSkill('mobilexingxue',result.targets);
event.targets=result.targets;
event.targets2=event.targets.slice(0);
event.targets.sort(lib.sort.seat);
}
else{
event.finish();
}
'step 2'
if(event.targets.length){
var target=event.targets.shift();
target.draw();
event.current=target;
}
else{
event.finish();
}
'step 3'
if(event.current&&event.current.countCards('he')){
if(player.hasSkill('mobileyanzhu')||event.targets2.length==1) event.current.chooseCard('选择一张牌置于牌堆顶','he',true);
else event.current.chooseCardTarget({
prompt:'选择一张牌置于牌堆顶,或交给其他目标角色',
filterCard:true,
filterTarget:function(card,player,target){
return target!=player&&_status.event.getParent().targets2.contains(target);
},
forced:true,
selectTarget:[0,1],
ai1:(card)=>6-get.value(card),
ai2:(target)=>get.attitude(_status.event.player,target),
});
}
else{
event.goto(2);
}
'step 4'
if(result&&result.cards){
event.card=result.cards[0];
if(!result.targets||!result.targets.length){
event.current.lose(result.cards,ui.cardPile,'insert');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
cardx.classList.add('infoflip');
player.$throw(cardx,1000,'nobroadcast');
},event.current);
}
else{
result.targets[0].gain(result.cards,event.current,'giveAuto');
}
}
else{
event.card=null;
}
'step 5'
event.goto(2);
}
},
mobileyanzhu:{
audio:2,
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target.countCards('he')>0&&target!=player;
},
content:function(){
'step 0'
if(target.countCards('e')){
target.chooseBool('是否将装备区内的所有牌交给'+get.translation(player)+'','若选择“取消”,则其将获得你的一张牌').set('ai',function(){
if(_status.event.player.countCards('e')>=3) return false;
return true;
});
}
else{
player.gainPlayerCard(target,true,'he');
event.finish();
}
'step 1'
if(result.bool){
var es=target.getCards('e');
player.gain(es,target,'give');
player.removeSkill('mobileyanzhu');
}
else{
player.gainPlayerCard(target,true,'he');
}
},
ai:{
order:6,
result:{
target:function(player,target){
var ne=target.countCards('e');
if(!ne) return -2;
if(ne>=2) return -ne;
return 0;
}
}
}
},
//毛玠
bingqing:{
audio:2,
trigger:{player:'useCardAfter'},
direct:true,
filter:function(event,player){
var suit=get.suit(event.card);
if(!lib.suit.contains(suit)) return false;
var evt=event.getParent('phaseUse');
if(!evt||player!=evt.player) return false;
var list=[],history=player.getHistory('useCard');
if(history.length<2) return false;
for(var i of history){
if(i.getParent('phaseUse')!=evt) continue;
var suit2=get.suit(i.card);
if(!lib.suit.contains(suit2)) continue;
if(i!=event&&suit2==suit) return false;
list.add(suit2);
}
return list.length>1&&list.length<5;
},
content:function(){
'step 0'
var suit=get.suit(trigger.card);
var evt=event.getParent('phaseUse');
var list=[],history=player.getHistory('useCard');
for(var i of history){
if(i.getParent('phaseUse')!=evt) continue;
var suit2=get.suit(i.card);
if(!lib.suit.contains(suit2)) continue;
list.add(suit2);
}
var prompt,filterTarget,ai;
switch(list.length){
case 2:
prompt='令一名角色摸两张牌';
filterTarget=function(card,player,target){
return true;
};
ai=function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(target.hasSkill('nogain')) att/=10;
return att/Math.sqrt(Math.min(5,1+target.countCards('h')));
}
break;
case 3:
prompt='弃置一名角色区域内的一张牌';
filterTarget=function(card,player,target){
return target.hasCard(function(card){
return lib.filter.canBeDiscarded(card,player,target);
},'hej');
};
ai=function(target){
var player=_status.event.player;
return get.effect(target,{name:'guohe_copy'},player,player);
}
break;
case 4:
prompt='对一名其他角色造成1点伤害';
filterTarget=function(card,player,target){
return target!=player;
};
ai=function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
}
break;
default:
event.finish();
return;
}
event.num=list.length;
player.chooseTarget(get.prompt('bingqing'),prompt,filterTarget).set('ai',ai);
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('bingqing',target);
event.target=target;
event.goto(num);
}
else event.finish();
'step 2'
target.draw(2);
event.finish();
'step 3'
player.discardPlayerCard(target,true,'hej');
event.finish();
'step 4'
target.damage();
},
},
yingfeng:{
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('yingfeng'),'令一名角色获得“奉”标记',function(card,player,target){
return !target.hasSkill('yingfeng_mark');
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(att<=0) return 0;
var eff=0.1;
var preTarget=game.findPlayer(function(current){
return (current!=target&&current.hasSkill('yingfeng_mark'));
});
if(preTarget){
if(get.attitude(player,preTarget)<0) eff+=4;
else if(preTarget.hasValueTarget({name:'sha'},false)&&!preTarget.hasValueTarget({name:'sha'})) eff-=3;
}
if(target.hasValueTarget({name:'sha'},false)&&!target.hasValueTarget({name:'sha'})) eff+=3;
if(player==target) att*=1.2;
return 0.01+att*eff;
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('yingfeng',target);
target.addAdditionalSkill('yingfeng_'+player.playerid,'yingfeng_mark');
game.countPlayer(function(current){
if(current!=target&&current.hasSkill('yingfeng_mark')) current.removeSkill('yingfeng_mark');
});
}
},
subSkill:{
mark:{
charlotte:true,
mark:true,
marktext:'奉',
mod:{
targetInRange:()=>true,
},
intro:{content:'使用牌无距离限制'},
},
},
},
//朱儁
yangjie:{
audio:2,
group:['yangjie_add'],
enable:'phaseUse',
prompt:'摸一张牌并与一名其他角色进行拼点',
usable:1,
filter:function(event,player){
return !player.hasSkillTag('noCompareSource');
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0&&
!target.hasSkillTag('noCompareTarget');
},
content:function(){
'step 0'
player.draw();
'step 1'
if(player.canCompare(target)) player.chooseToCompare(target).set('preserve','lose');
else event.finish();
'step 2'
if(!result.bool){
var cards=[result.player,result.target].filterInD('d');
if(!cards.length||!game.hasPlayer((current)=>current!=player&&current!=target)) event.finish();
else{
event.cards=cards;
player.chooseTarget('请选择一名角色','令其获得'+get.translation(cards)+',且视为对'+get.translation(target)+'使用一张火【杀】',function(card,player,target){
return target!=player&&target!=_status.event.getParent().target;
}).set('ai',function(target){
var player=_status.event.player,cards=_status.event.getParent().cards,target2=_status.event.getParent().target;
var val=get.value(cards,target)*get.attitude(player,target);
if(val<=0) return 0;
return val+target.canUse({name:'sha',nature:'fire',isCard:true},target2,false)?get.effect(target2,{name:'sha',nature:'fire',isCard:true},target,player):0;
});
}
}
else event.finish();
'step 3'
if(result.bool){
var source=result.targets[0];
event.source=source;
player.line(source);
source.gain(cards,'gain2');
}
else event.finish();
'step 4'
var card={name:'sha',nature:'fire',isCard:true};
if(target.isIn()&&source.isIn()&&source.canUse(card,target,false)) source.useCard(card,target,false);
},
subSkill:{
add:{
trigger:{player:'compare'},
forced:true,
popup:false,
filter:function(event,player){
return event.getParent().name=='yangjie'&&event.num1>1&&player.isDamaged();
},
content:function(){
var num=player.getDamagedHp();
game.log(player,'的拼点牌点数-',num);
trigger.num1=Math.min(1,trigger.num1-num);
}
},
},
ai:{
order:3,
result:{target:-1.5},
},
},
zjjuxiang:{
audio:2,
trigger:{global:'dyingAfter'},
logTarget:'player',
limited:true,
skillAnimation:true,
animationColor:'thunder',
filter:function(event,player){
return event.player!=player&&event.player.isAlive();
},
check:function(event,player){
return get.damageEffect(event.player,player,player)>0;
},
content:function(){
'step 0'
player.awakenSkill('zjjuxiang');
trigger.player.damage();
'step 1'
if(trigger.player.maxHp>0) player.draw(trigger.player.maxHp);
},
ai:{expose:10},
},
houfeng:{
audio:2,
trigger:{global:'phaseUseBegin'},
logTarget:'player',
round:1,
filter:(event,player)=>player.inRange(event.player),
check:function(event,player){
var att=get.attitude(player,event.player);
return att>0;
},
content:function(){
'step 0'
player.chooseButton(['选择'+get.translation(trigger.player)+'要进行的整肃类型',[['zhengsu_leijin','zhengsu_bianzhen','zhengsu_mingzhi'],'vcard']],true).set('ai',()=>Math.random());
'step 1'
if(result.bool){
var name=result.links[0][2],target=trigger.player;
target.addTempSkill('zhengsu',{player:['phaseDiscardAfter','phaseAfter']});
target.addTempSkill(name,{player:['phaseDiscardAfter','phaseAfter']});
target.popup(name,'thunder');
player.addTempSkill('houfeng_share');
game.delayx();
}
},
subSkill:{
share:{
trigger:{global:['drawAfter','recoverAfter']},
forced:true,
popup:false,
charlotte:true,
filter:function(event,player){
return event.getParent(2).name=='zhengsu';
},
content:function(){
player.chooseDrawRecover(2,true);
},
},
},
},
//刘赪
splveying:{
audio:2,
@ -800,8 +1186,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){
player.logSkill('spzhengjun',player);
var name=result.links[0][2];
player.addTempSkill('zhengsu',{player:'phaseDiscardAfter'});
player.addTempSkill(name,{player:'phaseDiscardAfter'});
player.addTempSkill('zhengsu',{player:['phaseDiscardAfter','phaseAfter']});
player.addTempSkill(name,{player:['phaseDiscardAfter','phaseAfter']});
player.popup(name,'thunder');
game.delayx();
}
@ -870,7 +1256,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(list.length==2) player.chooseControl().set('choiceList',[
'获得'+get.translation(trigger.result.card),
'视为对'+get.translation(trigger.player)+'使用一张火【杀】',
]).set('choice',(get.effect(target,{name:'sha'},player,player)>0)?1:0);
]).set('choice',(get.effect(trigger.player,{name:'sha'},player,player)>0)?1:0);
else if(list.length==1) event._result={index:list[0]};
else event.finish();
'step 1'
@ -1143,24 +1529,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
content:function(){
'step 0'
player.chooseToPlayBeatmap({
//歌曲名称
name:'鳥の詩',
//歌曲文件名默认在audio/effect文件夹下 若要重定向到扩展 请写为'ext:扩展名称'的格式 并将文件名重命名为和上面的歌曲名称相同)
filename:'tori_no_uta',
//每个音符的开始时间点(毫秒,相对未偏移的开始播放时间)
timeleap:[1047,3012,4978,5469,5961,6452,6698,7435,8909,10875,12840],
//开始播放时间的偏移量(毫秒)
current:-546,
//判定栏高度(相对整个对话框高度比例)
judgebar_height:0.14,
//Good/Great/Prefect的位置判定范围百分比相对于整个对话框。以滑条的底部作为判定基准
range1:[86,110],
range2:[92,104],
range3:[96,100],
//滑条每相对于整个对话框下落1%所需的时间(毫秒)
speed:25,
});
player.chooseToPlayBeatmap(lib.skill.chongxu.beatmaps.randomGet());
'step 1'
var score=Math.floor(Math.min(5,result.accuracy/17));
event.score=score;
@ -1194,6 +1563,39 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:1,
},
},
beatmaps:[
{
//歌曲名称
name:'鳥の詩',
//歌曲文件名默认在audio/effect文件夹下 若要重定向到扩展 请写为'ext:扩展名称'的格式 并将文件名重命名为和上面的歌曲名称相同)
filename:'tori_no_uta',
//每个音符的开始时间点(毫秒,相对未偏移的开始播放时间)
timeleap:[1047,3012,4978,5469,5961,6452,6698,7435,8909,10875,12840],
//开始播放时间的偏移量(毫秒)
current:-546,
//判定栏高度(相对整个对话框高度比例)
judgebar_height:0.14,
//Good/Great/Prefect的位置判定范围百分比相对于整个对话框。以滑条的底部作为判定基准
range1:[86,110],
range2:[92,104],
range3:[96,100],
//滑条每相对于整个对话框下落1%所需的时间(毫秒)
speed:25,
},
{
name:'竹取飛翔 ~ Lunatic Princess',
filename:'taketori_hishou',
timeleap:[1021,1490,1959,2896,3834,4537,4771,5709,6646,7585,8039,8494,9403,10291,11180,11832,12049,12920,13345,13771,14196],
current:-500,
judgebar_height:0.14,
range1:[86,110],
range2:[92,104],
range3:[96,100],
speed:25,
judgebar_color:'linear-gradient(rgba(240, 120, 123, 1), rgba(230, 115, 113, 1))',
},
],
derivation:'chongxu_faq',
},
miaojian:{
audio:2,
@ -1498,6 +1900,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(current==target) break;
current=current.next;
}
while(true){
if(current==player) break;
num+=get.sgn(get.attitude(player,current))*1.1;
current=current.next;
}
if(num<player.hp) return 0;
return num+1-player.hp;
},
@ -1966,7 +2373,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 1'
if(result.bool) num+=result.cards.length;
player.loseHp();
if(event.num>2) player.loseHp();
player.draw(num);
},
mod:{
@ -2538,6 +2945,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.log(player,'将',trigger.card,'的花色改为','#y♦');
trigger.card.suit='diamond';
},
group:'liubing_gain',
subSkill:{
gain:{
trigger:{global:'useCardAfter'},
forced:true,
audio:'liubing',
filter:function(event,player){
return event.player!=player&&event.card.isCard&&event.card.name=='sha'&&
get.color(event.card)=='black'&&event.cards.filterInD().length>0&&
event.player.isPhaseUsing()&&!event.player.hasHistory('sourceDamage',function(evt){
return evt.card==event.card;
});
},
logTarget:'player',
content:function(){
player.gain(trigger.cards.filterInD(),'gain2');
},
},
},
},
//新刘璋
jutu:{
@ -3582,8 +4008,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseTarget('选择一名其他角色获得星卜效果('+get.cnNumber(num)+'张)',lib.filter.notMe,true).set('ai',function(target){
var player=_status.event.player,num=_status.event.getParent().num;
var att=get.attitude(player,target);
if(num<2) att*=(-1);
if(target.hasJudge('lebu')) att/=4;
if(num<3) att*=(-1);
if(num==2&&target.hasJudge('lebu')) att*=(-1.4);
return att;
});
if(num==0) num=1;
@ -3602,43 +4028,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
effect1:{
charlotte:true,
onremove:true,
intro:{content:'使用杀的次数上限-#'},
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num-player.countMark('xingbu_effect1');
},
intro:{content:'准备阶段开始时弃置#张手牌'},
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return player.countCards('h')>0;
},
content:function(){
player.chooseToDiscard('h',true,player.countMark('xingbu_effect1'));
},
},
effect2:{
charlotte:true,
onremove:true,
intro:{content:'出牌阶段使用第一张牌后弃置#张牌,然后摸两倍的牌'},
trigger:{player:'useCardAfter'},
forced:true,
filter:function(event,player){
var evt=event.getParent('phaseUse');
if(!evt||evt.player!=player) return false;
return player.getHistory('useCard',function(evtx){
return evtx.getParent('phaseUse')==evt;
}).indexOf(event)==0;
intro:{content:'使用【杀】的次数上限-#,跳过弃牌阶段'},
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num-player.countMark('xingbu_effect2');
},
},
trigger:{player:'phaseDiscardBegin'},
forced:true,
content:function(){
player.chooseToDiscard('he',player.countMark('xingbu_effect2'),true);
player.draw(player.countMark('xingbu_effect2')*2);
trigger.cancel();
},
},
effect3:{
charlotte:true,
onremove:true,
intro:{content:'摸牌阶段多摸2*#张牌,使用【杀】的次数上限+#,跳过弃牌阶段。'},
trigger:{player:['phaseDrawBegin2','phaseDiscardBefore']},
intro:{content:'摸牌阶段多摸2*#张牌,使用【杀】的次数上限+#。'},
trigger:{player:['phaseDrawBegin2']},
forced:true,
filter:function(event,player){
return event.name=='phaseDiscard'||!event.numFixed;
return !event.numFixed;
},
content:function(){
if(trigger.name=='phaseDraw') trigger.num+=(player.countMark('xingbu_effect3')*2);
else trigger.cancel();
},
mod:{
cardUsable:function(card,player,num){
@ -4304,7 +4729,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=[card];
if(card.cards&&card.cards.length) cards.addArray(card.cards);
if(ui.selected.cards.length) cards.addArray(ui.selected.cards);
if(!player.countCards('',function(card){
if(!player.countCards('he',function(card){
return !cards.contains(card);
})) return;
if(!player.countCards('h',function(card){
@ -5015,6 +5440,77 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
xinliaoyi:{
audio:'liaoyi',
trigger:{global:'phaseBegin'},
filter:function(event,player){
if(player==event.player) return false;
if(_status.renku.length) return true;
return event.player.countCards('h')>1&&event.player.countCards('h')!=event.player.hp;
},
direct:true,
content:function(){
'step 0'
var target=trigger.player;
event.target=target;
var num=Math.min(9,Math.abs(target.hp-target.countCards('h')));
var choiceList=['令其从仁库中获得一张牌','令其将'+get.cnNumber(num)+'张手牌置入仁库'];
var choices=[];
if(_status.renku.length) choices.push('选项一');
else choiceList[0]='<span style="opacity:0.5">'+choiceList[0]+'</span>';
if(target.countCards('h')>1&&target.countCards('h')!=target.hp){
event.num=num;
choices.push('选项二');
}
else choiceList[1]='<span style="opacity:0.5">'+choiceList[1]+'</span>';
if(!choices.length) event.finish();
else player.chooseControl(choices,'cancel2').set('prompt',get.prompt('xinliaoyi',target)).set('choiceList',choiceList).set('ai',function(){
var player=_status.event.player,target=_status.event.getTrigger().player;
var att=get.attitude(player,target);
if(att>0){
if(_status.renku.length>0) return '选项一';
return 0;
}
if(target.countCards('h')>1&&target.countCards('h')!=target.hp) return '选项二';
return 'cancel2';
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('xinliaoyi',target);
if(result.control=='选项一'){
target.chooseButton(true,['选择获得一张牌',_status.renku]).set('ai',function(button){
return get.value(button.link,_status.event.player);
});
event.goto(4);
}
else{
var hs=target.getCards('h');
if(hs.length<=num) event._result={bool:true,cards:hs};
else target.chooseCard('h',true,'将'+get.cnNumber(num)+'张手牌置于仁库中',num);
}
}
else event.finish();
'step 2'
if(result.bool){
target.$throw(result.cards,1000);
game.log(target,'将',result.cards,'置入了仁库');
target.lose(result.cards,ui.special,'toRenku');
}
else event.finish();
'step 3'
game.delayx();
event.finish();
'step 4'
var cards=result.links;
_status.renku.removeArray(cards);
game.updateRenku();
target.gain(cards,'gain2','fromRenku');
},
init:function(player){
player.storage.renku=true;
},
ai:{threaten:3.4},
},
liaoyi:{
audio:2,
trigger:{global:'phaseBegin'},
@ -7412,8 +7908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
var card=get.cardPile2(function(card){
return true;
//return get.color(card,false)=='red';
return get.color(card,false)=='red';
});
if(card) player.gain(card,'gain2');
},
@ -15513,9 +16008,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianshu_info:'出牌阶段限一次,若场上没有【太平要术】,则你可以弃置一张牌并选择一名角色。该角色获得并使用【太平要术】。',
wujing:'吴景',
heji:'合击',
heji_info:'当有角色使用的【决斗】或红色【杀】结算完成后若此牌对应的目标数为1则你可以对相同的目标使用一张【杀】或【决斗】无距离和次数限制。若你以此法使用的牌不为转化牌则你从牌堆中随机获得一张牌。',
heji_info:'当有角色使用的【决斗】或红色【杀】结算完成后若此牌对应的目标数为1则你可以对相同的目标使用一张【杀】或【决斗】无距离和次数限制。若你以此法使用的牌不为转化牌则你从牌堆中随机获得一张红色牌。',
liubing:'流兵',
liubing_info:'锁定技。当你声明使用【杀】时,若此牌是你本回合使用的第一张有唯一对应实体牌的【杀】,则你将此牌的花色改为♦。',
liubing_info:'锁定技。当你声明使用【杀】时,若此牌是你本回合使用的第一张有唯一对应实体牌的【杀】,则你将此牌的花色改为♦。②其他角色于其出牌阶段内使用的非转化黑色杀结算结束后,若此【杀】未造成伤害,则你获得之。',
sp_mifuren:'糜夫人',
spcunsi:'存嗣',
spcunsi2:'存嗣',
@ -15626,6 +16121,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jishi_info:'锁定技。①当你使用的牌结算完成后,若你未因此牌造成过伤害,则你将此牌对应的所有实体牌置于仁库中。②当有牌不因溢出而离开仁库时,你摸一张牌。',
liaoyi:'疗疫',
liaoyi_info:'其他角色的回合开始时若其①手牌数小于体力值且仁库内牌数大于等于X则你可令其从仁库中获得X张牌②手牌数大于体力值则你可以令其将X张牌置于仁库中X为其手牌数与体力值之差且至多为4。',
xinliaoyi:'疗疫',
xinliaoyi_info:'其他角色的回合开始时你可选择一项①令其从仁库中获得一张牌。②若其手牌数大于1则令其将X张手牌置入仁库X为其手牌数与体力值之差且至多为9。',
binglun:'病论',
binglun_info:'出牌阶段限一次你可以将仁库中的一张牌置于弃牌堆并选择一名角色。该角色选择一项①摸一张牌。②于其下回合结束时回复1点体力。',
sp_zhangwen:'手杀张温',
@ -15695,7 +16192,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiming:'知命',
zhiming_info:'准备阶段开始时或弃牌阶段结束时,你摸一张牌,然后可以将一张牌置于牌堆顶。',
xingbu:'星卜',
xingbu_info:'结束阶段你可以展示牌堆顶的三张牌然后根据X值X为这三张牌中红色牌的数量令一名其他角色获得对应的效果直到其下回合结束①三张其摸牌阶段多摸两张牌使用【杀】的次数上限+1,跳过弃牌阶段。②两张:其于出牌阶段使用的第一张牌结算结束后,弃置一张牌并摸两张牌。③小于两张:其使用【杀】的次数上限-1。',
xingbu_info:'结束阶段你可以展示牌堆顶的三张牌然后根据X值X为这三张牌中红色牌的数量令一名其他角色获得对应的效果直到其下回合结束①三张其摸牌阶段多摸两张牌使用【杀】的次数上限+1。②两张:其使用【杀】的次数上限-1跳过弃牌阶段。③小于两张其于准备阶段开始时弃置一张手牌。',
yuanqing:'渊清',
yuanqing_info:'锁定技,出牌阶段结束时,你随机将弃牌堆中你本阶段使用过的牌类型的各一张牌置于仁库中。',
shuchen:'疏陈',
@ -15765,7 +16262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shanxie_info:'①出牌阶段限一次,你可选择一项:⒈从牌堆中获得一张武器牌。⒉获得其装备区内的一张武器牌并使用,然后其将一张手牌当做【杀】对你使用。②当其他角色使用【闪】响应你使用的【杀】时,若此【闪】没有点数或点数不大于你攻击范围的二倍,则你令此【闪】无效。',
sunyi:'孙翊',
zaoli:'躁厉',
zaoli_info:'锁定技。①你不能于回合内使用你手牌中不为本回合获得的牌。②当你使用或打出手牌时你获得一个“厉”至多4个。③回合开始时若你有“厉”则你移去所有“厉”并弃置任意张牌然后摸X+Y张牌失去1点体力X为你移去的标记数Y为你弃置的牌数。',
zaoli_info:'锁定技。①你不能于回合内使用你手牌中不为本回合获得的牌。②当你使用或打出手牌时你获得一个“厉”至多4个。③回合开始时若你有“厉”则你移去所有“厉”并弃置任意张牌然后摸X+Y张牌。若X大于2失去1点体力X为你移去的标记数Y为你弃置的牌数。',
sp_gaolan:'手杀高览',
spjungong:'峻攻',
spjungong_info:'出牌阶段你可失去X+1点体力或弃置X+1张牌视为对一名其他角色使用【杀】不计入次数和距离限制X为你本回合内发动过〖等力〗的次数。若你因此【杀】造成了伤害则你令此技能失效直到回合结束。',
@ -15800,7 +16297,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spshangyi_info:'出牌阶段限一次。你可以弃置一张牌并选择一名其他角色。其观看你的手牌,然后你观看其手牌并获得其中的一张。',
sunhanhua:'孙寒华',
chongxu:'冲虚',
chongxu_info:'出牌阶段限一次你可以演奏《鳥の詩》的前奏并根据完成度来获得相应的分数至多五分。然后你可修改〖妙剑〗或〖莲华〗消耗3分并使用剩余的分数进行摸牌每张2分。',
chongxu_info:'出牌阶段限一次你可以随机演奏一首音乐并根据完成度来获得相应的分数至多五分。然后你可修改〖妙剑〗或〖莲华〗消耗3分并使用剩余的分数进行摸牌每张2分。',
chongxu_faq:'目前的曲库',
chongxu_faq_info:' <br>《鸟之诗》- 折户伸治<br>《竹取飛翔 ~ Lunatic Princess》- ZUN',
miaojian:'妙剑',
miaojian_info:'出牌阶段限一次。你可将一张【杀】当做刺【杀】使用,或将一张锦囊牌当做【无中生有】使用。',
miaojian1:'妙剑·改',
@ -15842,12 +16341,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spmingxuan:'瞑昡',
spmingxuan_info:'锁定技。出牌阶段开始时你须选择至多X张牌X为未选择过选项①的角色将这些牌随机交给这些角色中的等量角色。然后这些角色依次选择一项①对你使用一张【杀】。②交给你一张牌然后你摸一张牌。',
spxianchou:'陷仇',
spxianchou_info:'当你受到有来源的伤害后,你可选择一名不为伤害来源的其他角色。该角色可以弃置一张牌,然后视为对伤害来源使用一张【杀】。若其因此【杀】造成了伤害则你回复1点体力。',
spxianchou_info:'当你受到有来源的伤害后,你可选择一名不为伤害来源的其他角色。该角色可以弃置一张牌,然后视为对伤害来源使用一张【杀】(无距离限制)。若其因此【杀】造成了伤害则你回复1点体力。',
liucheng:'刘赪',
splveying:'掠影',
splveying_info:'锁定技。①每回合限两次当你使用【杀】指定目标后你获得一个“椎”。②当你使用的【杀】结算结束后若你的“椎”数大于1则你弃置两个“椎”然后弃置所有目标角色的各一张手牌。',
spyingwu:'莺舞',
spyingwu_info:'若你拥有〖掠影〗①每回合限两次当你使用非伤害类普通锦囊牌指定目标后你获得一个“椎”。②当你使用的非伤害类普通锦囊牌结算结束后若你的“椎”数大于1则你弃置两个“椎”然后可以视为使用一张【杀】。',
sp_zhujun:'手杀朱儁',
yangjie:'佯解',
yangjie_info:'出牌阶段限一次你可以摸一张牌并和一名其他角色A拼点。当你以此法展示你的拼点牌时你令此牌点数-XX为你已损失的体力值。若你没赢则你可以令另一名其他角色B获得两张拼点牌然后其视为对A使用一张火【杀】。',
zjjuxiang:'拒降',
zjjuxiang_info:'限定技。一名其他角色脱离濒死状态时你可以对其造成1点伤害然后摸X张牌X为其体力上限且至多为5。',
houfeng:'厚俸',
houfeng_info:'每轮限一次。一名其他角色的出牌阶段开始时若其在你的攻击范围内则你可以令其进行“整肃”。然后当其于本回合内因整肃而摸牌或回复体力后你可选择摸两张牌或回复1点体力。',
sp_maojie:'毛玠',
bingqing:'秉清',
bingqing_info:'当你于出牌阶段内使用的牌结算结束后若你于本阶段内使用的所有其他牌与此牌花色均不相同则你可根据X的值执行对应效果为2你令一名角色摸两张牌为3你弃置一名角色区域内的一张牌为4你对一名其他角色造成1点伤害。X为你本阶段内使用过的牌中包含的花色数',
yingfeng:'迎奉',
yingfeng_info:'准备阶段,你可以令一名角色获得“奉”标记并移除场上所有其他的“奉”标记。有“奉”标记的角色使用牌没有次数限制。',
xin_sunxiu:'手杀孙休',
mobileyanzhu:'宴诛',
mobileyanzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色选择一项:①你获得其装备区里所有的牌,然后你失去技能〖宴诛〗。②你获得其一张牌。',
mobilexingxue:'兴学',
mobilexingxue_info:'结束阶段开始时你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶X为你的体力值若你未拥有〖宴诛〗则将X改为你的体力上限且其可以改为将一张牌交给一名其他目标角色。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',
@ -15855,6 +16371,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_yijiang2:'手杀异构·将2',
mobile_yijiang3:'手杀异构·将3',
mobile_yijiang4:'手杀异构·将4',
mobile_yijiang5:'手杀异构·将5',
mobile_yijiang67:'手杀异构·原创设计',
mobile_sp:'手杀异构·SP',
mobile_shijiren:'始计篇·仁',

View File

@ -42,7 +42,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jsp_caoren:['male','wei',4,['kuiwei','yanzheng']],
old_caochun:['male','wei',4,['shanjia']],
masu:['male','shu',3,['xinzhan','huilei']],
xushu:['male','shu',3,['wuyan','jujian']],
xushu:['male','shu',3,['xswuyan','jujian']],
liru:['male','qun',3,['juece','mieji','fencheng']],
xin_yujin:['male','wei',4,['jieyue']],
//lusu:['male','wu',3,['haoshi','dimeng']],

View File

@ -105,6 +105,7 @@ window.noname_character_rank={
'key_kud',
'key_yukito',
'key_yuuki',
'db_key_liyingxia',
],
a:[
'diy_zaozhirenjun',
@ -261,6 +262,7 @@ window.noname_character_rank={
'fuqian',
'liuyong',
'sunhanhua',
're_pangdegong',
'key_misuzu',
'key_sunohara',
'key_umi',
@ -492,6 +494,7 @@ window.noname_character_rank={
'sp_cuiyan',
'ol_dongzhao',
'xin_jushou',
'sp_zhujun',
],
bp:[
'chess_diaochan',
@ -734,6 +737,10 @@ window.noname_character_rank={
'tw_hucheer',
'sp_lvfan',
're_chendeng',
'wuyan',
'wangyue',
'xin_sunxiu',
'sp_maojie',
],
b:[
'diy_feishi',
@ -946,6 +953,7 @@ window.noname_character_rank={
'yj_huangzhong',
're_xiahoushi',
'sp_yangwan',
'wangtao',
],
bm:[
'diy_xizhenxihong',
@ -1463,6 +1471,12 @@ window.noname_character_rank={
'qiaozhou',
'lvlingqi',
'xin_jushou',
'wangtao',
'wangyue',
're_pangdegong',
'zhongyan',
'kaisa',
'tw_zhaoxiang',
'key_kano',
'key_haruko',
'key_akiko',
@ -1495,9 +1509,7 @@ window.noname_character_rank={
'key_chihaya',
'key_yukito',
'key_kotomi',
'zhongyan',
'kaisa',
'tw_zhaoxiang',
'db_key_liyingxia',
],
rare:[
'pal_shenqishuang',
@ -1828,6 +1840,10 @@ window.noname_character_rank={
'sp_yangwan',
're_xiahoushi',
're_chendeng',
'xin_sunxiu',
'wuyan',
'sp_maojie',
'sp_zhujun',
],
junk:[
'sunshao',

View File

@ -4851,6 +4851,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{name:'jiu'},
viewAsFilter:function(player){
if(!player.countCards('hs',{suit:'spade'})) return false;
return true;
},
prompt:'将一张黑桃手牌当酒使用',
check:function(card){

View File

@ -10,20 +10,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_tianzhu:["wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun"],
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao"],
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan'],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng"],
sp_huben:["caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan"],
sp_liesi:['mizhu'],
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe'],
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv'],
sp_wanglang:['wanglang'],
sp_tongque:["sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","liqueguosi","lvfan","cuimao","jiling","zhangren","zongyu"],
sp_guozhan2:["mateng","tianfeng","sp_dongzhuo","liqueguosi","jiling","zhangren","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
},
characterFilter:{},
character:{
wuyan:['male','wu',4,['lanjiang']],
sp_ol_zhanghe:['male','qun',4,['spolzhouxuan']],
ol_dongzhao:['male','wei',3,['olxianlve','olzaowang']],
fengfangnv:['female','qun',3,['zhuangshu','chuiti']],
@ -138,9 +139,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kongrong:['male','qun',3,['lirang','mingshi']],
dingfeng:['male','wu',4,['reduanbing','refenxun']],
shamoke:['male','shu',4,['gzjili']],
liqueguosi:['male','qun',4,['xiongsuan']],
lvfan:['male','wu',3,['diaodu','diancai']],
cuimao:['male','wei',3,['zhengbi','fengying']],
//liqueguosi:['male','qun',4,['xiongsuan']],
//cuimao:['male','wei',3,['zhengbi','fengying']],
jiling:['male','qun',4,['shuangren']],
zangba:['male','wei',4,['rehengjiang']],
@ -156,6 +156,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
wuyan:'吴国及西晋初年将领。初任通江县吏,后得到大司马陆抗的提拔重用,逐渐升至建平太守。',
fengfangnv:'冯方之女,司隶人,袁术妻妾。在史书中被记载为天姿国色的美人。钱大昭在《三国志辨疑》中认为冯方当为冯芳误字,冯方女实为是西园八校尉之一的冯芳的女儿。然而,在曹丕《典论》、《九州春秋》等书籍都有提及她,皆作冯方女字样,并无一书写作冯芳女或是明提是冯芳之女。最关键的一点是,冯芳是荆州西陵县人,她女儿不可能是司隶籍,冯芳也没担任过任何与司隶有关的官职。同时期名字为“○女”的并不少见,如施绩女儿施淑女,曹植女儿曹行女,夏侯令女等。',
zuofen:'左芬约253年300年4月23日出土墓志作左棻字兰芝齐国临淄今山东临淄西晋诗人。少好学善属文。为晋武帝贵人。今存诗、赋、颂、赞、诔等20余篇大都为应诏而作《离思赋》最著名。原有集已失传。',
duxi:'杜袭(生卒年不详),字子绪,颍川郡定陵县(今河南省襄城县)人。三国时期魏国重臣,东汉末年颍川“四大名士”之一,济阴太守杜根的孙子。建安初年,投奔司空曹操,历任西鄂县令、议郎、丞相军咨祭酒、魏王侍中、丞相长史、驸马都尉。魏文帝时期,出任督军粮御史、尚书,累封武平亭侯。魏明帝时期,担任大将军曹真和司马懿的军师,抵御蜀国进攻,拜太中大夫,受封平阳乡侯。卒于任上,获赠少府,谥号为定。',
@ -206,7 +207,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shamoke:'沙摩柯222年东汉末三国时期五溪蛮首领。汉章武元年221年为报关羽被东吴杀害之仇刘备亲自领兵攻孙权以金锦爵赏诱沙摩柯助战。章武二年222年吴大都督陆逊以火攻破刘备率诸军齐击汉军四十多个营寨被攻破沙摩柯在大乱中匹马奔逃被乱军杀死。',
lvfan:'吕范228年字子衡。汝南郡细阳县今安徽太和人。汉末至三国时期吴国重臣。吕范年轻为汝南县吏后避难寿春结识孙策。此后随孙策、孙权征伐四方对稳固孙氏在江东的统治做出了杰出的贡献孙权将其比之于东汉开国元勋吴汉。吴国建立后吕范累官至前将军、假节、扬州牧封南昌侯。黄武七年228年吕范被拜为大司马未得授官便已病逝。孙权悲痛不已遣使赠其大司马印绶。孙权还都建业后以太牢礼祭祀吕范。',
liqueguosi:"请分别参考武将【李傕】和【郭汜】各自的介绍。",
cuimao:"关于【崔琰】的内容,请查看武将【崔琰】的介绍。<br>毛玠—216年字孝先陈留平丘今河南封丘人。东汉末年大臣。年少时为县吏以清廉公正著称。因战乱而打算到荆州避乱但中途知道刘表政令不严明因而改往鲁阳。后来投靠曹操提出“奉天子以令不臣脩耕植畜军资”的战略规划得到曹操的欣赏。<br>毛玠与崔琰主持选举,所举用的都是清廉正直之士。而毛玠为人廉洁,激起天下廉洁之风,一改朝中奢华风气。曹操大为赞赏,曹丕也亲自去拜访他。<br>曹操获封魏公后,毛玠改任尚书仆射,再典选举。又密谏曹操应该立嫡长子曹丕为魏国太子。崔琰被杀后,毛玠十分不快。后来有人诬告毛玠,曹操大怒,将毛玠收于狱中。及后在桓阶、和洽营救下,只被免职,不久逝世于家中。曹操在他死后赐他棺材和钱帛。",
maojie:"毛玠—216年字孝先陈留平丘今河南封丘人。东汉末年大臣。年少时为县吏以清廉公正著称。因战乱而打算到荆州避乱但中途知道刘表政令不严明因而改往鲁阳。后来投靠曹操提出“奉天子以令不臣脩耕植畜军资”的战略规划得到曹操的欣赏。<br>毛玠与崔琰主持选举,所举用的都是清廉正直之士。而毛玠为人廉洁,激起天下廉洁之风,一改朝中奢华风气。曹操大为赞赏,曹丕也亲自去拜访他。<br>曹操获封魏公后,毛玠改任尚书仆射,再典选举。又密谏曹操应该立嫡长子曹丕为魏国太子。崔琰被杀后,毛玠十分不快。后来有人诬告毛玠,曹操大怒,将毛玠收于狱中。及后在桓阶、和洽营救下,只被免职,不久逝世于家中。曹操在他死后赐他棺材和钱帛。",
huangfusong:'字义真。安定郡朝那县(今宁夏彭阳)人。于黄巾起义时,以中郎将身份讨伐黄巾,用火攻大破张梁、张宝。后接替董卓进攻张梁,连胜七阵。掘张角墓,拜左车骑将军、冀州牧,因拒绝贿赂宦官而被免职。 董卓死,王允命其与吕布等共至郿坞抄籍董卓家产、人口,皇甫嵩将坞中所藏良家子女,尽行释放。',
zangba:'其父臧戒,有二子臧艾与臧舜。年少时曾召集数人将获罪的父亲救出,此后四处流亡。后来成为陶谦麾下的骑都尉,负责募兵抵抗黄巾军。与孙观、尹礼等人拥兵驻屯于开阳,自成一股独立势力,后跟随吕布。吕布战败后,投降了曹操。后与袁绍、孙权等的战役里战功赫赫,官至镇东将军。',
@ -216,7 +217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ganfuren:'刘备起兵后,于沛城娶甘氏为妾。后来,甘夫人随刘备到荆州,生了阿斗(也就是后主刘禅)。223年四月刘备病死于白帝城追谥甘夫人为“昭烈皇后”。',
jiangfei:'请分别查阅【蒋琬】和【费袆】各自的介绍。',
mifuren:'刘备夫人。徐州别驾糜竺之妹。长坂兵败,她怀抱年仅两岁的刘禅在乱军中走散,被赵云发现;但麋夫人因为赵云只有一匹马,不肯上马,在将阿斗托付给赵云后投井而亡。',
chendong:'陈武,东吴将领,孙策攻打刘繇,陈武前来相助,孙策非常喜爱陈武,拜为校尉,使作先锋。陈武以十数骑兵力杀敌五十余人。后于赤壁等战役屡立功勋。董袭献上严虎的人头来降孙策。赤壁之战,董袭受周瑜命,分兵去汉阳,合肥会战时接应太史慈,逍遥津支援孙权。濡须口之战时,董袭在船上督战,船覆董袭坚守殉职。',
chendong:'陈武,东吴将领,孙策攻打刘繇,陈武前来相助,孙策非常喜爱陈武,拜为校尉,使作先锋。陈武以十数骑兵力杀敌五十余人。后于赤壁等战役屡立功勋。董袭献上严虎的人头来降孙策。赤壁之战,董袭受周瑜命,分兵去汉阳,合肥会战时接应太史慈,逍遥津支援孙权。濡须口之战时,董袭在船上督战,船覆董袭坚守殉职。',
jiangqing:'擅长弓术。与周泰原为活跃于长江一带的江贼,孙策脱离袁术下江东自立门户时,和周泰一起率众投靠。 孙策攻刘繇,并引出城中麾下的陈横、薛礼、张英三名将领,陈横后被蒋钦一箭射杀,后与韩当等将乘舟过江,乱箭射杀敌军。曾在赤壁之战与周泰,还有擅使长枪的韩当率领水军在三江口踏江破敌。',
kongrong:'字文举,鲁国人,东汉文学家,“建安七子”之首。献帝即位后任北军中侯、虎贲中郎将、北海相,时称孔北海后因触怒曹操,为曹操所杀。能诗善文。',
mateng:'字寿成,扶风茂陵人,东汉末年征西将军,割据西凉一带的军阀,伏波将军马援的后代,官至卫尉,封爵槐里乡侯。因其子马超谋反,而被杀,夷灭三族。',
@ -464,6 +465,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//吾彦
lanjiang:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
content:function(){
'step 0'
var ph=player.countCards('h');
var targets=game.filterPlayer((current)=>(current==player||current.countCards('h')>=ph)).sortBySeat();
player.line(targets,'green');
event.targets=targets;
event.num=0;
'step 1'
var target=targets[num];
event.num++;
if(target.isIn()){
event.target=target;
target.chooseBool('是否令'+(player==target?'自己':get.translation(player))+'摸一张牌?').set('ai',()=>get.attitude(_status.event.player,_status.event.getParent().player)>0);
}
else{
event.goto(event.num<targets.length?1:3);
}
'step 2'
if(result.bool){
target.line(player);
player.draw();
}
if(num<targets.length) event.goto(1);
'step 3'
player.chooseTarget('是否对一名手牌数等于自己的目标角色造成1点伤害',function(card,player,target){
return _status.event.getParent().targets.contains(target)&&target.countCards('h')==player.countCards('h');
}).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 4'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
target.damage();
}
else event.finish();
'step 5'
player.chooseTarget('是否令一名手牌数小于自己的目标角色摸一张牌?',function(card,player,target){
return _status.event.getParent().targets.contains(target)&&target.countCards('h')<player.countCards('h');
}).set('ai',function(target){
var player=_status.event.player;
return get.attitude(player,target);
});
'step 6'
if(result.bool){
var target=result.targets[0];
player.line(target);
target.draw();
}
},
},
//新SP张郃
spolzhouxuan:{
audio:2,
@ -2195,7 +2252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.addIndex++;
if(game.hasPlayer((current)=>lib.skill.guanxu.filterTarget(null,player,current))) choiceList.push('发动一次〖观虚〗');
player.chooseControl('cancel2').set('prompt',get.prompt('yashi')).set('choiceList',choiceList).set('ai',function(){
var player=_status.event.player,source=_status.event.getTrigger().source,index=_status.event.getParent().index;
var player=_status.event.player,source=_status.event.getTrigger().source,index=_status.event.getParent().addIndex;
if(game.hasPlayer(function(current){
return current!=player&&current.countCards('h')>3&&get.attitude(player,current)<0;
})) return 1-index;
@ -2210,7 +2267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.index+event.addIndex==0){
var target=trigger.source;
player.logSkill('yashi',target);
target.removeSkill('fengyin');
//target.removeSkill('fengyin');
target.addTempSkill('fengyin',{player:'phaseBegin'});
event.finish();
}
@ -4318,6 +4375,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
viewAs:{name:'sha'},
filterCard:{color:'black'},
position:'hes',
selectCard:1,
check:function(card){return 5-get.value(card)},
},
cuorui:{
@ -4648,81 +4706,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
xiongsuan:{
limited:true,
enable:'phaseUse',
filterCard:true,
filter:function(event,player){
return player.countCards('h');
},
check:function(card){
return 7-get.value(card);
},
filterTarget:true,
content:function(){
'step 0'
player.awakenSkill('xiongsuan');
target.damage('nocard');
'step 1'
player.draw(3);
var list=[];
var skills=target.getOriginalSkills();
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].limited&&target.awakenedSkills.contains(skills[i])){
list.push(skills[i]);
}
}
if(list.length==1){
target.storage.xiongsuan_restore=list[0];
target.addTempSkill('xiongsuan_restore','phaseZhunbeiBegin');
event.finish();
}
else if(list.length>1){
player.chooseControl(list).set('prompt','选择一个限定技在回合结束后重置之');
}
else{
event.finish();
}
'step 2'
target.storage.xiongsuan_restore=result.control;
target.addTempSkill('xiongsuan_restore');
},
subSkill:{
restore:{
trigger:{global:'phaseAfter'},
silent:true,
charlotte:true,
content:function(){
player.restoreSkill(player.storage.xiongsuan_restore);
}
}
},
ai:{
order:4,
damage:true,
result:{
target:function(player,target){
if(target.hp>1){
var skills=target.getOriginalSkills();
for(var i=0;i<skills.length;i++){
if(lib.skill[skills[i]].limited&&target.awakenedSkills.contains(skills[i])){
return 8;
}
}
}
if(target!=player) return 0;
if(get.damageEffect(target,player,player)>=0) return 10;
if(target.hp>=4) return 5;
if(target.hp==3){
if(player.countCards('h')<=2&&game.hasPlayer(function(current){
return current.hp<=1&&get.attitude(player,current)<0;
})){
return 3;
}
}
return 0;
}
}
}
audio:2,
},
diancai:{
audio:2,
@ -4732,146 +4716,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
zhengbi:{
audio:2,
trigger:{player:'phaseUseBegin'},
filter:function(event,player){
//if(event.player!=player) return false;
return game.hasPlayer(function(current){return current!=player&&current.isHealthy()})||player.countCards('h',{type:'basic'});
},
content:function(){
'step 0'
var choices=[];
if(game.hasPlayer(function(current){return current.isHealthy()})) choices.push('选择一名未受伤的角色');
if(player.countCards('h',{type:'basic'})) choices.push('交给一名角色一张基本牌');
player.chooseControl(choices,ui.create.dialog('征辟</br></br><div class="center text">选择一项</div>','hidden')).set('ai',function(){
if(choices.length>1){
return 1;
}
return 0;
});
'step 1'
if(result.control=='选择一名未受伤的角色') player.chooseTarget('征辟</br></br><div class="center text">选择一名未受伤的角色,你对其使用牌没有次数和距离限制直到回合结束</div>',function(card,player,target){
return target!=player&&target.isHealthy();
},true);
else player.chooseCardTarget({
prompt:'征辟</br></br><div class="center text">交给一名其他角色一张基本牌,然后该角色交给你一张非基本牌或两张基本牌</div>',
position:'h',
filterCard:function(card){return get.type(card)=='basic'},
filterTarget:function(card,player,target){
return target!=player;
},
ai1:function(card){return 7-get.value(card)},
//ai2:function(card,player,target){}
}).set('forced',true);
'step 2'
event.target=result.targets[0];
player.line(result.targets,'green');
if(result.cards.length){
event.cards=result.cards;
result.targets[0].gain(result.cards,player,'give');
}
else{
player.storage.zhengbi_eff1=result.targets[0];
player.addTempSkill('zhengbi_eff1');
event.finish();
}
'step 3'
var choices=[];
if(target.countCards('he',{type:['trick','delay','equip']})) choices.push('一张非基本牌');
if(target.countCards('h',{type:'basic'})>1) choices.push('两张基本牌');
if(choices.length) target.chooseControl(choices,ui.create.dialog('征辟</br></br><div class="center text">交给'+get.translation(player)+'</div>')).set('ai',function(event,player){
if(choices.length>1){
if(player.countCards('he',{type:['trick','delay','equip']},function(card){return get.value(card)<7})) return 0;
return 1;
}
return 0;
});
else{
if(target.countCards('h')){
var cards=target.getCards('h');
player.gain(cards,target,'giveAuto');
event.finish();
}
else event.finish();
}
'step 4'
var check=(result.control=='一张非基本牌');
target.chooseCard('he',(check?1:2),{type:(check?['trick','delay','equip']:'basic')},true);
'step 5'
if(result.cards){
player.gain(result.cards,target,'giveAuto');
}
},
subSkill:{
eff1:{
sub:true,
mod:{
targetInRange:function (card,player,target){
if(target==player.storage.zhengbi_eff1) return true;
},
cardUsableTarget:function (card,player,target){
if(player.storage.zhengbi_eff1==target) return true;
},
},
onremove:true,
},
eff2:{sub:true},
}
},
fengying:{
audio:2,
limited:true,
enable:'phaseUse',
position:'h',
filterCard:true,
selectCard:-1,
filter:function(event,player){
return !player.storage.fengying&&player.countCards('h')>0;
},
filterTarget:function(card,player,target){
return target==player;
},
selectTarget:-1,
discard:false,
lose:false,
content:function(){
'step 0'
player.awakenSkill('fengying');
player.storage.fengying=true;
player.insertPhase();
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'){
evt.skipped=true;
}
'step 1'
var cards=player.getCards('h');
player.discard(cards);
player.chooseTarget('请选择至多'+cards.length+'名角色,令这些角色将手牌摸至手牌上限。',[1,cards.length],function(card,player,target){
return target.countCards('h')<Math.min(target.maxHp,5);
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>2){
return Math.min(5,target.maxHp)-target.countCards('h');
}
return att/3;
});
'step 2'
if(result.bool){
var list=result.targets;
list.sort(lib.sort.seat);
player.line(list,'thunder');
game.asyncDraw(list,function(current){
return current.maxHp-current.countCards('h');
});
}
},
skillAnimation:'epic',
animationColor:'gray',
ai:{
order:0.1,
result:{
player:0,
}
},
},
//新服曹笨
xinshanjia:{
@ -15892,7 +15739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jsp_huangyueying:'SP黄月英',
guansuo:'关索',
tadun:'蹋顿',
yanbaihu:'严虎',
yanbaihu:'严虎',
wanglang:'王朗',
caochun:'曹纯',
dongbai:'OL董白',
@ -16628,6 +16475,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_ol_zhanghe:'SP张郃',
spolzhouxuan:'周旋',
spolzhouxuan_info:'①弃牌阶段开始时你可将任意张手牌置于武将牌上称为“旋”上限为5。②当你使用牌时你将一张“旋”置入弃牌堆并摸一张牌若你的手牌数不为全场唯一最多则改为摸X张牌X为“旋”数。③出牌阶段结束时你将所有“旋”置入弃牌堆。',
wuyan:'吾彦',
lanjiang:'澜疆',
lanjiang_info:'结束阶段你可以选择令所有手牌数不小于你的角色。这些角色依次选择是否令你摸一张牌。然后你可以对其中一名手牌数等于你的角色造成1点伤害随后可以对其中一名手牌数小于你的角色摸一张牌。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
re_pangdegong:['male','qun',3,['heqia','yinyi']],
wangtao:['female','shu',3,['huguan','yaopei']],
wangyue:['female','shu',3,['huguan','mingluan']],
re_chendeng:['male','qun',3,['refuyuan','reyingshui','rewangzu']],
caojinyu:['female','wei',3,['yuqi','shanshen','xianjing']],
hanmeng:['male','qun',4,['jieliang','quanjiu']],
@ -120,10 +123,347 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_binglin:['re_niujin',"sp_mifangfushiren"],
sp_zhilan:['liuyong','wanniangongzhu','zhanghu'],
sp_fenghuo:['re_nanhualaoxian','tongyuan','zhangning'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','lvlingqi','re_kanze','caojinyu'],
sp_guixin:['re_kanze','re_chendeng'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','lvlingqi','caojinyu','wangtao','wangyue','re_pangdegong'],
}
},
skill:{
//庞德公
heqia:{
audio:2,
trigger:{player:'phaseUseBegin'},
direct:true,
filter:function(event,player){
return game.hasPlayer((current)=>current.countCards(current==player?'he':'h')>0);
},
content:function(){
'step 0'
player.chooseCardTarget({
prompt:get.prompt('heqia'),
prompt2:'操作提示:选择要给出的牌和目标角色,或直接选择一名目标角色,令其将牌交给自己',
filterCard:true,
position:'he',
selectCard:function(){
if(ui.selected.targets.length&&!ui.selected.targets[0].countCards('h')) return [1,Infinity];
return [0,Infinity];
},
filterTarget:function(card,player,target){
if(player==target) return false;
if(!ui.selected.cards.length) return target.countCards('h')>0;
return true;
},
ai1:function(card){
if(!_status.event.nogive||ui.selected.cards.length) return 0-get.value(card);
return 1/Math.max(1,get.value(card));
},
ai2:function(target){
return (get.attitude(player,target)-0.1)*(ui.selected.cards.length?1:-1);
},
nogive:!game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)<=0&&current.countCards('h')>0;
}),
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('heqia',target);
if(result.cards.length){
target.gain(result.cards,player,'giveAuto');
event.source=target;
event.num=result.cards.length;
event.goto(4);
}
}
else event.finish();
'step 2'
var he=target.getCards('he');
if(he.length>0){
if(he.length>1) target.chooseCard('he',true,[1,Infinity],'选择交给'+get.translation(player)+'任意张牌').set('ai',(card)=>-get.value(card));
else event._result={bool:true,cards:he};
}
else event.finish();
'step 3'
if(result.bool){
event.source=player;
player.gain(result.cards,target,'giveAuto');
event.num=result.cards.length;
}
else event.finish();
'step 4'
if(source&&source.isIn()&&source.countCards('h')>0){
var list=[];
for(var name of lib.inpile){
if(get.type(name)!='basic') continue;
if(player.hasUseTarget({name:name},false)) list.push(['基本','',name]);
if(name=='sha'){
for(var nature of lib.inpile_nature){
if(source.hasUseTarget({name:name,nature:nature},false)) list.push(['基本','',name,nature]);
}
}
}
if(list.length){
source.chooseButton(['是否将一张手牌当做一种基本牌使用?',[list,'vcard']]).set('ai',(button)=>_status.event.player.getUseValue({name:button.link[2],nature:button.link[3]},false));
}
else event.finish();
}
else event.finish();
'step 5'
if(result.bool){
var card={name:result.links[0][2],nature:result.links[0][3]};
game.broadcastAll(function(card){
lib.skill.heqia_backup.viewAs=card;
},card);
var next=source.chooseToUse();
next.set('openskilldialog','将一张手牌当做'+get.translation(card)+'使用');
next.set('norestore',true);
next.set('addCount',false);
next.set('_backupevent','heqia_backup');
next.set('custom',{
add:{},
replace:{window:function(){}}
});
next.backup('heqia_backup');
}
},
group:'heqia_add',
subSkill:{
backup:{
filterCard:function(card){
return get.itemtype(card)=='card';
},
position:'h',
filterTarget:lib.filter.targetEnabled,
selectCard:1,
check:(card)=>6-get.value(card),
log:false,
precontent:function(){
delete event.result.skill;
},
},
add:{
trigger:{global:'useCard2'},
charlotte:true,
direct:true,
filter:function(event,player){
var evt=event.getParent(2);
if(evt.name!='heqia'||evt.player!=player||!event.targets||evt.num<=event.targets.length) return false;
var card=event.card,info=get.info(card);
if(info.allowMultiple==false) return false;
if(event.targets&&!info.multitarget){
if(game.hasPlayer(function(current){
return !event.targets.contains(current)&&lib.filter.targetEnabled2(card,event.player,current);
})){
return true;
}
}
return false;
},
content:function(){
'step 0'
var num=trigger.getParent(2).num-trigger.targets.length;
var prompt2='是否为'+get.translation(trigger.card)+'增加至多'+get.cnNumber(num)+'个目标?'
trigger.player.chooseTarget(prompt2,[1,num],function(card,player,target){
var player=_status.event.player;
return !_status.event.targets.contains(target)&&lib.filter.targetEnabled2(_status.event.card,player,target);
}).set('prompt2',prompt2).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,player,player);
}).set('card',trigger.card).set('targets',trigger.targets);
'step 1'
if(result.bool){
trigger.player.line(result.targets);
game.log(result.targets,'也成为了',trigger.card,'的目标')
trigger.targets.addArray(result.targets);
}
},
},
},
},
yinyi:{
audio:2,
trigger:{player:'damageBegin1'},
forced:true,
filter:function(event,player){
return event.source&&event.source.hp!=player.hp&&event.source.countCards('h')!=player.countCards('h');
},
content:function(){
trigger.cancel();
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')){
if(player.hp==target.hp) return;
var cards=[card];
if(card.cards&&card.cards.length) cards.addArray(card.cards);
if(ui.selected.cards.length) cards.addArray(ui.selected.cards);
if(player.countCards('h',function(card){
return !cards.contains(card);
})==target.countCards('h')) return;
return 'zerotarget';
}
},
},
},
},
//王桃王悦
huguan:{
audio:2,
audioname:['wangyue'],
trigger:{global:'useCard'},
direct:true,
filter:function(event,player){
if(get.color(event.card,false)!='red') return false;
var evt=event.getParent('phaseUse');
if(!evt||evt.player!=event.player) return false;
return event.player.getHistory('useCard',function(event){
return event.getParent('phaseUse')==evt;
}).indexOf(event)==0;
},
content:function(){
'step 0'
player.chooseControl(lib.suit,'cancel2').set('prompt',get.prompt('huguan',trigger.player)).set('prompt2','令某种花色的手牌不计入其本回合的手牌上限').set('ai',function(){
var player=_status.event.player,target=_status.event.getTrigger().player;
if(get.attitude(player,target)<=0) return 'cancel2';
var list=lib.suit.slice(0);
list.removeArray(target.getStorage('huguan_add'));
if(list.length) return list.randomGet();
return 'cancel2';
});
'step 1'
if(result.control!='cancel2'){
var target=trigger.player;
player.logSkill('huguan',target);
game.log(player,'选择了','#g'+get.translation(result.control),'花色')
target.addTempSkill('huguan_add');
target.markAuto('huguan_add',[result.control]);
}
},
subSkill:{
add:{
charlotte:true,
onremove:true,
mod:{
ignoredHandcard:function(card,player){
if(player.getStorage('huguan_add').contains(get.suit(card,player))) return true;
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&player.getStorage('huguan_add').contains(get.suit(card,player))) return false;
}
},
intro:{content:'本回合$花色的牌不计入手牌上限'},
},
},
},
yaopei:{
audio:2,
trigger:{global:'phaseDiscardEnd'},
direct:true,
filter:function(event,player){
if(player==event.player||!event.player.isIn()) return false;
var suits=[];
event.player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==event){
for(var i of evt.cards2) suits.add(get.suit(i,evt.hs.contains(i)?evt.player:false));
}
});
if(!suits.length||suits.length>=lib.suit.length) return false;
if(_status.connectMode&&player.countCards('h')>0) return true;
return player.hasCard(function(card){
return !suits.contains(get.suit(card));
},'he');
},
content:function(){
'step 0'
var suits=[];
trigger.player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==trigger){
for(var i of evt.cards2) suits.add(get.suit(i,evt.hs.contains(i)?evt.player:false));
}
});
player.chooseCardTarget({
prompt:get.prompt('yaopei',trigger.player),
prompt2:'操作提示:选择要弃置的牌,并选择执行摸牌选项的角色,另一名角色执行回复体力的选项。',
suits:suits,
position:'he',
filterCard:function(card){
return !_status.event.suits.contains(get.suit(card))&&lib.filter.cardDiscardable(card,player,'yaopei');
},
filterTarget:function(card,player,target){
return target==player||target==_status.event.getTrigger().player;
},
ai1:function(card){
return 8-get.value(card);
},
ai2:function(target){
var player=_status.event.player,source=_status.event.getTrigger().player;
var recoverer=(player==target?source:player);
if(recoverer.isHealthy()) return (get.attitude(player,target)>0?1:0);
if(get.recoverEffect(recoverer,player,player)>0&&get.attitude(player,target)>0) return 2;
return 0;
},
});
'step 1'
if(result.bool){
var target=trigger.player;
player.logSkill('yaopei',target);
player.discard(result.cards);
if(player==result.targets[0]){
target.recover();
player.draw(2);
}
else{
target.draw(2);
player.recover();
}
}
},
},
mingluan:{
audio:2,
trigger:{global:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player!=event.player&&event.player.isIn()&&player.hasSkill('mingluan_mark')&&player.countCards('he')>0;
},
content:function(){
'step 0'
player.chooseToDiscard('he',get.prompt('mingluan'),'弃置一张牌,并摸等同于'+get.translation(trigger.player)+'手牌数的牌(至多摸至五张)').set('ai',function(card){
var player=_status.event.player;
var ph=player.countCards('h');
if(get.position(card)=='h') ph--;
var num=Math.min(_status.event.getTrigger().ph,5-ph);
if(num>0) return 3.5*num+0.01-get.value(card);
}).logSkill=['mingluan',trigger.player];
'step 1'
if(result.bool){
var num=trigger.player.countCards('h'),num2=5-player.countCards('h');
if(num>0&&num2>0) player.draw(Math.min(num,num2));
}
},
group:'mingluan_count',
subSkill:{
count:{
charlotte:true,
trigger:{global:'recoverEnd'},
silent:true,
popup:false,
firstDo:true,
filter:function(event,player){
var current=_status.currentPhase;
return current&&current!=player&&!player.hasSkill('mingluan_mark');
},
content:function(){
player.addTempSkill('mingluan_mark');
},
},
mark:{
charlotte:true,
},
},
},
//陈登
refuyuan:{
audio:2,
@ -188,7 +528,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageBegin1'},
direct:true,
filter:function(event,player){
return player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'rewangzu'),'he');
return player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'rewangzu'),'h');
},
usable:1,
content:function(){
@ -197,7 +537,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!game.hasPlayer(function(current){
return current!=player&&current.getFriends().length>num;
})){
player.chooseToDiscard('he',get.prompt('rewangzu'),'弃置一张牌并令伤害-1').set('ai',function(card){
player.chooseToDiscard('h',get.prompt('rewangzu'),'弃置一张牌并令伤害-1').set('ai',function(card){
return 7-get.value(card);
}).logSkill='rewangzu';
}
@ -209,7 +549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.num--;
if(!result.cards||!result.cards.length){
player.logSkill('rewangzu');
var cards=player.getCards('he',(card)=>lib.filter.cardDiscardable(card,player,'rewangzu'));
var cards=player.getCards('h',(card)=>lib.filter.cardDiscardable(card,player,'rewangzu'));
if(cards.length) player.discard(cards.randomGet());
}
}
@ -11595,6 +11935,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinping:'辛评204年字仲治颍川阳翟人东汉末年人物。曹魏卫尉辛毗之兄。原是韩馥部下韩馥逃亡后转而辅佐袁绍。袁绍死后辛评、郭图欲立袁谭为主与审配等不和。后来曹操破邺其弟辛毗在城下劝降。审配怒遣手下将辛评全家杀害。',
hanmeng:'韩猛,又名韩若、韩荀、韩泣(上荀下大) 东汉末年袁绍帐下名将或与《曹瞒传》所言韩莒子为同一人。公元200年官渡之战爆发。袁绍派遣韩猛劫掠曹操军的西道被曹军部将曹仁击破于鸡洛山。袁绍又派韩猛前去运送粮车因为轻敌被曹军部将徐晃、史涣击退。',
caojinyu:'金乡公主,本姓曹氏,名字不详,沛国谯县(今安徽省亳州市)人。魏武帝曹操的女儿,母为杜夫人。适婚的时候,嫁给曹操的养子何晏。高平陵之变,何晏作为大将军曹爽的党羽,遭到太傅司马懿处死。在何晏母亲尹夫人苦苦哀求下,何晏的儿子得以保全。',
wangtao:'王桃是在《花关索传》中登场的虚拟人物,盗贼王令公的两个女儿之一,王悦的姐姐,与妹妹都是关索之妻。姐妹俩原为卢塘寨山贼,以武艺与美貌而闻名,被众多男性求婚却皆不与理睬。她们在关索回西川认父途中与关索交手时不敌,因意气投合而一齐下嫁。虽为架空之人物,但四川省内有记述夫妻三人共同守护葭萌关一事,民间亦流传如夫妻三人曾共同参与诸葛亮之南蛮征伐等轶事。',
wangyue:'王悦是在《花关索传》中登场的虚拟人物,盗贼王令公的两个女儿之一,王桃的妹妹,与姐姐都是关索之妻。姐妹俩原为卢塘寨山贼,以武艺与美貌而闻名,被众多男性求婚却皆不与理睬。她们在关索回西川认父途中与关索交手时不敌,因意气投合而一齐下嫁。虽为架空之人物,但四川省内有记述夫妻三人共同守护葭萌关一事,民间亦流传如夫妻三人曾共同参与诸葛亮之南蛮征伐等轶事。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -12266,7 +12608,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
difa_info:'每回合限一次。当你于回合内因摸牌而获得红色牌时,你可以弃置之。然后你选择一个锦囊牌的牌名,并从牌堆中获得一张此牌名的牌。',
re_xunchen:'荀谌',
refenglve:'锋略',
refenglve_info:'出牌阶段限一次,你可以和一名其他角色进行拼点。若你赢,其将区域内的两张牌交给你;若平局,则你令此技能于本阶段内的发动次数上限+1若你输你交给其一张牌。',
refenglve_info:'出牌阶段限一次,你可以和一名其他角色进行拼点。若你赢,其将区域内的两张牌交给你;若平局,则你令此技能于本阶段内的发动次数上限+1若你输其获得你的拼点牌。',
anyong:'暗涌',
anyong_info:'当一名角色于其回合内第一次对其他角色造成伤害后若伤害值为1则你可弃置一张牌并对受伤角色造成1点伤害。',
wanniangongzhu:'万年公主',
@ -12297,7 +12639,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reyingshui:'营说',
reyingshui_info:'出牌阶段限一次你可将一张牌交给攻击范围内的一名其他角色然后其选择一项①交给你至少两张装备牌。②受到1点伤害。',
rewangzu:'望族',
rewangzu_info:'每回合限一次。当你受到其他角色造成的伤害时,你可随机弃置一张牌,令此伤害-1。若你所在阵营的存活角色数是全场最多的则你可以自行选择弃置的牌。',
rewangzu_info:'每回合限一次。当你受到其他角色造成的伤害时,你可随机弃置一张手牌,令此伤害-1。若你所在阵营的存活角色数是全场最多的则你可以自行选择弃置的牌。',
wangtao:'王桃',
wangyue:'王悦',
huguan:'护关',
huguan_info:'一名角色于出牌阶段内使用第一张牌时,若此牌为红色,则你可以声明一种花色。该花色的牌不计入其本回合的手牌上限。',
yaopei:'揺佩',
yaopei_info:'其他角色的弃牌阶段结束时若其于本阶段内弃置过的牌的集合A不为空集则你可以弃置一张与A中的牌花色均不相同的牌。然后你选择一项①其摸两张牌你回复1点体力。②其回复1点体力你摸两张牌。',
mingluan:'鸣鸾',
mingluan_info:'其他角色的结束阶段开始时若有角色于本回合内回复过体力则你可以弃置一张牌然后摸X张牌X为当前角色的手牌数且至多摸至5张。',
re_pangdegong:'庞德公',
heqia:'和洽',
heqia_info:'出牌阶段开始时你可选择一项①将任意张牌交给一名其他角色。②令一名有手牌的其他角色交给你任意张牌。然后以此法获得牌的角色可以视为使用一张基本牌且当其声明使用此牌时可以为此牌增加至至多X个目标X为以此法移动的牌数。',
yinyi:'隐逸',
yinyi_info:'锁定技。每回合限一次,当你受到非属性伤害时,若你的手牌数和体力值与伤害来源均不相同,则你防止此伤害。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",
@ -12317,6 +12672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_yinyu:'隐玉包',
sp_zhilan:'芝兰玉树',
sp_fenghuo:'烽火连天',
sp_guixin:'天下归心',
sp_decade:'其他新服武将',
},
};

View File

@ -40,7 +40,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pal_xia:['female','shu',3,['xjzongyu','fanling']],
pal_jiangcheng:['male','qun',4,['yanzhan','fenshi']],
pal_yuejinzhao:['male','wei',4,['ywuhun','yingfeng']],
pal_yuejinzhao:['male','wei',4,['ywuhun','xjyingfeng']],
pal_yueqi:['female','wei',3,['tianwu','liguang','shiying']],
pal_mingxiu:['female','shu',3,['linghuo','guijin','chengxin']],
pal_xianqing:['male','qun',4,['xtanxi','xiaoyue']],
@ -1012,11 +1012,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
yingfeng:{
xjyingfeng:{
trigger:{player:'useCardAfter'},
filter:function(event,player){
if(event.card.name!='sha') return false;
if(event.parent.name=='yingfeng') return false;
if(event.parent.name=='xjyingfeng') return false;
var enemies=player.getEnemies();
return game.hasPlayer(function(current){
return enemies.contains(current)&&!event.targets.contains(current)&&player.canUse('sha',current,false);
@ -4218,8 +4218,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
feichen_info:'',
tanhua:'昙华',
tanhua_info:'锁定技,你回复体力的效果改为摸两张牌;当你进入濒死状态时,你回复一点体力并失去此技能',
yingfeng:'影锋',
yingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀',
xjyingfeng:'影锋',
xjyingfeng_info:'锁定技,每当你使用一张杀结算完毕后,你随机对一名不是此杀目标的敌方角色使用一张杀',
fenglue:'风掠',
fenglue_info:'你可以放弃出牌阶段,改为指定一名其他角色并选择任意张手牌,依次对该角色使用,若如此做,此阶段内该角色每受到一点伤害,你在结算后摸一张牌',
xjzongyu:'纵雨',

View File

@ -10286,8 +10286,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
expose:0.3
}
},
wuyan:{
audio:2,
wuyan:{audio:2},
xswuyan:{
audio:'wuyan',
trigger:{target:'useCardToBefore',player:'useCardToBefore'},
forced:true,
priority:15,
@ -11797,6 +11798,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'damageEnd'},
forced:true,
audio:2,
audioname:['xin_jushou'],
check:function(event,player){
return player.getHistory('damage',function(evt){
return evt!=event
@ -12213,7 +12215,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiahoushi:['re_xiahoushi','xiahoushi'],
zhangyi:['re_zhangyi','zhangyi'],
quancong:['re_quancong','quancong','old_quancong'],
sunxiu:['re_sunxiu','sunxiu'],
sunxiu:['re_sunxiu','xin_sunxiu','sunxiu'],
zhuzhi:['zhuzhi','old_zhuzhi'],
liuyu:['liuyu','ol_liuyu'],
zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'],
@ -12631,7 +12633,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinjunxing:'峻刑',
xinjunxing_info:'出牌阶段限一次,你可以弃置至少一张手牌并选择一名其他角色,该角色需弃置一张与你弃置的牌类别均不同的手牌,否则其先将其武将牌翻面,然后将手牌摸至四张。',
wuyan:'无言',
xswuyan:'无言',
xinwuyan:'无言',
jujian:'举荐',
xinjujian:'举荐',
@ -12748,7 +12750,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldrenxin_info:'其他角色进入濒死状态时你可以将所有手牌交给该角色并翻面然后该角色回复1点体力。',
jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
xinjingce_info:'结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
wuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。',
xswuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。',
xinwuyan_info:'锁定技,当你使用锦囊牌造成伤害时,你防止此伤害;锁定技,当你受到锦囊牌对你造成的伤害时,你防止此伤害。',
jujian_info:'出牌阶段限一次你可以弃至多三张牌然后令一名其他角色摸等量的牌。若你以此法弃牌不少于三张且均为同一类别你回复1点体力。',
xinjujian_info:'结束阶段开始时你可以弃置一张非基本牌并选择一名其他角色令其选择一项1.摸两张牌2.回复1点体力3.将其武将牌翻转至正面朝上并重置之。',

View File

@ -104,7 +104,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
if(trigger.delay===false) game.delayx();
player.storage.qimei_draw.draw();
var evt1=trigger.getl(player);
if((trigger.name=='gain'&&player==trigger.player)||(evt1&&evt1.hs&&evt1.hs.length)) player.storage.qimei_draw.draw();
var evt2=trigger.getl(player.storage.qimei_draw);
if((trigger.name=='gain'&&player==player.storage.qimei_draw)||evt2&&evt2.hs&&evt2.hs.length) player.draw();
},
group:'qimei_hp',
onremove:true,
@ -128,7 +131,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
game.delayx();
player.storage.qimei_draw.draw();
(player==trigger.player?player.storage.qimei_draw:player).draw();
},
},
},
@ -2923,7 +2926,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
gaoling:'高陵',
gaoling_info:'隐匿技。当你于回合外明置此武将牌时你可以令一名角色回复1点体力。',
qimei:'齐眉',
qimei_info:'准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则摸一张牌。',
qimei_info:'准备阶段,你可以选择一名其他角色。你获得如下效果直到下回合开始:①每回合限一次,当你或其获得牌/失去手牌后,若你与其手牌数相等,则另一名角色摸一张牌。②每回合限一次,当你或其的体力值变化后,若你与其体力值相等,则另一名角色摸一张牌。',
ybzhuiji:'追姬',
ybzhuiji_info:'出牌阶段开始时你可选择一项①摸两张牌并于出牌阶段结束时失去1点体力②回复1点体力并于出牌阶段结束时弃置两张牌。',

View File

@ -831,6 +831,15 @@ window.noname_asset_list=[
'audio/die/sp_zhangchangpu.mp3',
'audio/die/sunhanhua.mp3',
'audio/die/xinping.mp3',
'audio/die/liucheng.mp3',
'audio/die/ol_dongzhao.mp3',
'audio/die/re_chendeng.mp3',
'audio/die/re_xiahoushi.mp3',
'audio/die/sp_lvfan.mp3',
'audio/die/sp_ol_zhanghe.mp3',
'audio/die/sp_yangwan.mp3',
'audio/die/xin_jushou.mp3',
'audio/die/yj_huangzhong.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3774,6 +3783,47 @@ window.noname_asset_list=[
'audio/skill/zhongjie2.mp3',
'audio/skill/zhuangshu1.mp3',
'audio/skill/zhuangshu2.mp3',
'audio/skill/olxianlve1.mp3',
'audio/skill/olxianlve2.mp3',
'audio/skill/olzaowang1.mp3',
'audio/skill/olzaowang2.mp3',
'audio/skill/refuyuan1.mp3',
'audio/skill/refuyuan2.mp3',
'audio/skill/reqiaoshi1.mp3',
'audio/skill/reqiaoshi2.mp3',
'audio/skill/rewangzu1.mp3',
'audio/skill/rewangzu2.mp3',
'audio/skill/reyanyu1.mp3',
'audio/skill/reyanyu2.mp3',
'audio/skill/reyingshui1.mp3',
'audio/skill/reyingshui2.mp3',
'audio/skill/shibei_xin_jushou1.mp3',
'audio/skill/shibei_xin_jushou2.mp3',
'audio/skill/spdiancai1.mp3',
'audio/skill/spdiancai2.mp3',
'audio/skill/spdiaodu1.mp3',
'audio/skill/spdiaodu2.mp3',
'audio/skill/splveying1.mp3',
'audio/skill/splveying2.mp3',
'audio/skill/spmingxuan1.mp3',
'audio/skill/spmingxuan2.mp3',
'audio/skill/spolzhouxuan1.mp3',
'audio/skill/spolzhouxuan2.mp3',
'audio/skill/spqishe1.mp3',
'audio/skill/spqishe2.mp3',
'audio/skill/spshidi1.mp3',
'audio/skill/spshidi2.mp3',
'audio/skill/spxianchou1.mp3',
'audio/skill/spxianchou2.mp3',
'audio/skill/spyanji1.mp3',
'audio/skill/spyanji2.mp3',
'audio/skill/spyanji3.mp3',
'audio/skill/spyingwu1.mp3',
'audio/skill/spyingwu2.mp3',
'audio/skill/spyishi1.mp3',
'audio/skill/spyishi2.mp3',
'audio/skill/xinjianying1.mp3',
'audio/skill/xinjianying2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -4798,6 +4848,14 @@ window.noname_asset_list=[
'image/character/sp_yangwan.jpg',
'image/character/xin_jushou.jpg',
'image/character/yj_huangzhong.jpg',
'image/character/db_key_liyingxia.jpg',
'image/character/re_pangdegong.jpg',
'image/character/sp_maojie.jpg',
'image/character/sp_zhujun.jpg',
'image/character/wangtao.jpg',
'image/character/wangyue.jpg',
'image/character/wuyan.jpg',
'image/character/xin_sunxiu.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -13772,10 +13772,7 @@
_status.event._aiexclude.length=0;
}
else{
get.card(true).aiexclude();
game.uncheck();
event.redo();
game.resume();
ui.click.cancel();
}
}
else{
@ -15909,7 +15906,6 @@
else if(event.position==ui.cardPile){
game.updateRoundNumber();
}
if(event.toRenku) _status.renku.addArray(cards);
event.hs=hs;
event.es=es;
event.js=js;
@ -15960,6 +15956,9 @@
event.goto(2);
"step 4"
if(event.toRenku){
_status.renku.addArray(cards.filter(function(card){
return !card.destroyed;
}));
if(_status.renku.length>6){
var cards=_status.renku.splice(0,_status.renku.length-6);
game.log(cards,'从仁库进入了弃牌堆');
@ -17068,7 +17067,7 @@
for(var i=0;i<skills.length;i++){
var ifo=get.info(skills[i]);
if(ifo.viewAs&&typeof ifo.viewAs!='function'&&ifo.viewAs.name==name){
if(!ifo.viewAsFilter||ifo.viewAsFilter(player)){
if(!ifo.viewAsFilter||ifo.viewAsFilter(player)!==false){
return true;
}
}

View File

@ -1,9 +1,10 @@
window.noname_update={
version:'1.9.112.2',
update:'1.9.112.1',
version:'1.9.112.3',
update:'1.9.112.2',
changeLog:[
'界夏侯氏、陈登',
'界沮授、吕范、皇甫嵩、星黄忠、手杀杨婉、刘赪',
'李映夏',
'吾彦、庞德公、王桃、王悦',
'手杀毛玠、孙休、朱儁、武将技能调整',
'bug修复',
],
files:[
@ -18,10 +19,10 @@ window.noname_update={
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yongjian.js',
//'card/yongjian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
@ -30,19 +31,19 @@ window.noname_update={
'character/mobile.js',
//'character/mtg.js',
//'character/offline.js',
//'character/old.js',
'character/old.js',
//'character/ow.js',
'character/rank.js',
'character/refresh.js',
//'character/shenhua.js',
//'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
'character/tw.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
'character/yingbian.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
@ -51,17 +52,17 @@ window.noname_update={
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'layout/mobile/equip.css',
'mode/boss.js',
'mode/brawl.js',
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
//'mode/connect.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
'mode/identity.js',
//'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',
'mode/versus.js',
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

BIN
image/character/wangtao.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
image/character/wangyue.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

BIN
image/character/wuyan.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

View File

@ -10456,9 +10456,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
if(!sides.length) return;
else if(sides.length>1){
if(sides.length==2){
if(map[sides[0]].length==1) map[sides[0]][0].showGiveup();
if(map[sides[1]].length==1) map[sides[1]][0].showGiveup();
if(!hiddens.length&&sides.length==2){
if(map[sides[0]].length==1&&!map[sides[1]].filter(function(i){
return i.identity!='ye'&&i.isUnseen(0);
}).length) map[sides[0]][0].showGiveup();
if(map[sides[1]].length==1&&!map[sides[0]].filter(function(i){
return i.identity!='ye'&&i.isUnseen(0);
}).length) map[sides[1]][0].showGiveup();
}
}
else{

View File

@ -4172,7 +4172,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
're_zhouyu','re_daqiao','sunshangxiang','sunjian','re_xiaoqiao','sunce','re_luxun','zhugejin',
'dingfeng','lingtong','guyong','xusheng','yufan','handang','panzhangmazhong','zhugeke',
'zumao','xuezong','re_huatuo','lvbu','diaochan','re_pangde','jiaxu','chengong',
're_gongsunzan','caifuren','gongsunyuan','yj_jushou','sp_liuqi','quyi','caiyong','key_yuzuru'
're_gongsunzan','caifuren','gongsunyuan','yj_jushou','sp_liuqi','quyi','caiyong','key_yuzuru',
'ol_lisu','zhanghuyuechen','xujing','zhoufang','re_taishici','ol_zhurong',
],
choiceFour:[
'sunquan','zhenji','re_diaochan','zhugeliang','sunshangxiang','re_huangyueying',