tongquetai

This commit is contained in:
Spmario233 2021-05-28 00:12:07 +08:00
parent c7c886a4d8
commit 9802ae0245
29 changed files with 635 additions and 83 deletions

BIN
audio/die/re_zhoucang.mp3 Normal file

Binary file not shown.

BIN
audio/die/xiahoujie.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liedan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liedan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/zhuangdan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhuangdan2.mp3 Normal file

Binary file not shown.

View File

@ -711,8 +711,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
enable:true,
filterTarget:function(card,player,target){
if(get.mode()=='guozhan'){
if(player.identity=='unknown'||player.identity=='ye') return player==target;
return player.identity==target.identity;
return target.isFriendOf(player);
}
else if(get.is.versus()){
return player.side==target.side;

View File

@ -1744,7 +1744,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
cardEnabled2:function(card,player){
if(!_status.event.addCount_extra||player.hasSkill('zhuge_skill',null,false)) return;
if(card&&card==player.getEquip('zhuge')){
var cardz=get.card();
try{
var cardz=get.card();
}
catch(e){
return;
}
if(!cardz||cardz.name!='sha') return;
_status.zhuge_temp=true;
var bool=lib.filter.cardUsable(get.autoViewAs({name:'sha'},ui.selected.cards.concat([card])),player);

View File

@ -148,6 +148,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu'],[]],
ns_caimao:['male','qun',4,['nsdingzhou']],
ns_luyusheng:['female','wu',3,['nshuaishuang','nsfengli']],
ns_chengpu:['male','wu',4,['decadelihuo','decadechunlao']],
old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
ol_guohuai:['male','wei',3,['rejingce']],
@ -179,7 +180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_yijiang:["key_kud","key_misuzu","key_kamome","key_nao",
"ns_huangchengyan","ns_sunchensunjun","ns_yuanxi","ns_caoshuang"],
diy_tieba:["ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_luyusheng"],
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
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"],
@ -13976,6 +13977,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_trashbin:'垃圾桶',
old_jiakui:'贾逵重制',
ol_guohuai:'三血郭淮',
ns_chengpu:'铁索程普',
ns_chengpu_ab:'程普',
},
};
});

View File

@ -576,7 +576,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i of result.targets) i.addSkill('yufeng2');
if(event.score>result.targets.length) player.draw(event.score-result.targets.length);
}
else player.draw(result.score);
else player.draw(event.score);
},
ai:{
order:10,
@ -2169,7 +2169,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true,
filter:function(event,player){
if(event.name!='gain'&&event.player!=player.storage.jinglve2) return false;
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&(event.name=='gain'||event.position!=ui.ordering));
return event.name=='die'||(event.cards.contains(player.storage.jinglve3)&&(event.name=='gain'||event.position!=ui.ordering&&event.position!=ui.discardPile));
},
content:function(){
player.removeSkill('jinglve2');
@ -2183,7 +2183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
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.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'||event.position==ui.discardPile;
},
forced:true,
charlotte:true,
@ -2194,8 +2194,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.targets.length=0;
}
else{
var next=player.gain(player.storage.jinglve3,trigger.name=='phase'?'giveAuto':'gain2');
if(trigger.name=='phase') next.source=trigger.player;
if(trigger.name=='phase'){
player.gain(player.storage.jinglve3,trigger.player,'giveAuto');
}
else if(get.position(player.storage.jinglve3,true)=='d') player.gain(player.storage.jinglve3,'gain2');
}
player.removeSkill('jinglve2');
},
@ -4476,7 +4478,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardEnabled2:function(card,player){
if(!_status.event.addCount_extra||player.hasSkill('rw_zhuge_skill',null,false)) return;
if(card&&card==player.getEquip('rewrite_zhuge')){
var cardz=get.card();
try{
var cardz=get.card();
}
catch(e){
return;
}
if(!cardz||cardz.name!='sha') return;
_status.rw_zhuge_temp=true;
var bool=lib.filter.cardUsable(get.autoViewAs({name:'sha'},ui.selected.cards.concat([card])),player);
@ -6608,7 +6615,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
derivation:'yizan_rewrite',
},
xinfu_jingxie:{audio:2},
xinfu_jingxie:{
audio:2,
video:function(player,info){
var l2=player.getCards(info[0]?'e':'h'),l1=info[1];
for(var j=0;j<l2.length;j++){
if(l2[j].suit==l1[0]&&l2[j].number==l1[1]&&l2[j].name==l1[2]){
l2[j].init([l2[j].suit,l2[j].number,'rewrite_'+l2[j].name]);
break;
}
}
},
},
"xinfu_jingxie1":{
group:["xinfu_jingxie2"],
position:"he",
@ -6635,14 +6653,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.showCards(cards);
"step 1"
var card=cards[0];
player.removeEquipTrigger(card);
var bool=(get.position(card)=='e');
if(bool) player.removeEquipTrigger(card);
game.addVideo('skill',player,['xinfu_jingxie',[bool,get.cardInfo(card)]])
game.broadcastAll(function(card){
card.init([card.suit,card.number,'rewrite_'+card.name]);
},card);
var info=get.info(card);
if(info.skills){
for(var i=0;i<info.skills.length;i++){
player.addSkillTrigger(info.skills[i]);
if(bool){
var info=get.info(card);
if(info.skills){
for(var i=0;i<info.skills.length;i++){
player.addSkillTrigger(info.skills[i]);
}
}
}
},

View File

@ -463,6 +463,7 @@ window.noname_character_rank={
'sp_wangcan',
'caosong',
'sp_duyu',
'xiahoujie',
],
bp:[
'chess_diaochan',
@ -662,6 +663,7 @@ window.noname_character_rank={
'xin_handang',
'luotong',
'feiyi',
're_zhoucang',
],
b:[
'diy_feishi',
@ -782,7 +784,7 @@ window.noname_character_rank={
'old_madai',
'wangyi',
'guanzhang',
're_chengpu',
'ns_chengpu',
're_sunluban',
're_caoxiu',
'sunluyu',
@ -980,6 +982,10 @@ window.noname_character_rank={
'zongyu',
'sp_sunshao',
'simazhou',
'sp_fuhuanghou',
'sp_jiben',
'sp_fuwan',
're_chengpu',
],
c:[
'xiahoudun',
@ -1309,6 +1315,7 @@ window.noname_character_rank={
'caosong',
'sp_duyu',
'jin_yanghuiyu',
'xiahoujie',
'key_haruko',
'key_akiko',
'key_sunohara',
@ -1617,6 +1624,10 @@ window.noname_character_rank={
'feiyi',
'huangzu',
'simazhou',
'sp_jiben',
'sp_fuhuanghou',
'ns_chengpu',
're_zhoucang',
],
junk:[
'sunshao',

View File

@ -12,12 +12,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','xin_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong','re_fuhuanghou'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan'],
},
},
connect:true,
character:{
re_zhoucang:['male','shu',4,['rezhongyong']],
ol_zhurong:['female','shu',4,['juxiang','lieren','changbiao'],['unseen']],
re_zhangchunhua:['female','wei',3,['rejueqing','reshangshi']],
re_gongsunyuan:['male','qun',4,['rehuaiyi']],
@ -47,7 +48,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_handang:['male','wu',4,['xingongji','xinjiefan']],
yujin_yujin:['male','wei',4,['rejieyue']],
re_caozhang:['male','wei',4,['new_jiangchi']],
re_chengpu:['male','wu',4,['decadelihuo','decadechunlao']],
re_chengpu:['male','wu',4,['ollihuo','rechunlao']],
re_quancong:['male','wu',4,['xinyaoming']],
re_liaohua:['male','shu',4,['xindangxian','xinfuli']],
re_guohuai:['male','wei',4,['xinjingce']],
@ -132,6 +133,140 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//界周仓和程普
ollihuo:{
mod:{
aiOrder:function(player,card,num){
if(card.name=='sha'&&!player.getHistory('useCard').length) return num+7;
},
},
trigger:{player:'useCard1'},
filter:function(event,player){
if(event.card.name=='sha'&&!event.card.nature) return true;
return false;
},
audio:'lihuo',
prompt2:function(event){
return '将'+get.translation(event.card)+'改为火属性';
},
audioname:['re_chengpu'],
check:function(event,player){
return (event.baseDamage>1||player.getHistory('useCard').indexOf(event)==0)&&(player.hp>1||player.getStorage('rechunlao').length)&&game.hasPlayer(function(current){
return !event.targets.contains(current)&&player.canUse(event.card,current)
&&get.attitude(player,current)<0&&!current.hasShan()
&&get.effect(current,{name:'sha',nature:'fire'},player,player)>0;
});
},
content:function(){
trigger.card.nature='fire';
trigger.lihuo_changed=true;
},
group:['ollihuo2','ollihuo3','ollihuo4'],
ai:{
fireAttack:true,
},
},
ollihuo2:{
trigger:{player:'useCard2'},
filter:function(event,player){
if(event.card.name!='sha'||event.card.nature!='fire') return false;
return game.hasPlayer(function(current){
return !event.targets.contains(current)&&player.canUse(event.card,current);
});
},
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt('ollihuo'),'为'+get.translation(trigger.card)+'增加一个目标',function(card,player,target){
return !_status.event.sourcex.contains(target)&&player.canUse(_status.event.card,target);
}).set('sourcex',trigger.targets).set('card',trigger.card).set('ai',function(target){
var player=_status.event.player;
return get.effect(target,_status.event.card,player,player);
});
'step 1'
if(result.bool){
if(!event.isMine()&&!_status.connectMode) game.delayx();
event.target=result.targets[0];
}
else{
event.finish();
}
'step 2'
player.logSkill('ollihuo',event.target);
trigger.targets.push(event.target);
},
},
ollihuo3:{
trigger:{player:'useCardEnd'},
filter:function(event,player){
return event.lihuo_changed==true&&player.getHistory('sourceDamage',function(evt){
return evt.card==event.card;
}).length>0;
},
forced:true,
audio:'lihuo',
audioname:['re_chengpu'],
content:function(){
player.loseHp();
}
},
ollihuo4:{
trigger:{player:'useCardAfter'},
frequent:true,
audio:'lihuo',
audioname:['re_chengpu'],
filter:function(event,player){
return event.card.name=='sha'&&player.getHistory('useCard').indexOf(event)==0&&event.cards.filterInD().length>0;
},
content:function(){
var cards=trigger.cards.filterInD();
player.markAuto('rechunlao',cards);
player.$gain2(cards,false);
game.log(player,'将',cards,'放在了武将牌上');
game.cardsGotoSpecial(cards);
game.delay();
},
},
rezhongyong:{
trigger:{player:'useCardAfter'},
audio:2,
direct:true,
filter:function(event,player){
return event.card.name=='sha';
},
content:function(){
"step 0"
event.cards=trigger.cards.filterInD();
game.countPlayer2(function(current){
current.getHistory('useCard',function(evt){
if(evt.card.name=='shan'&&evt.getParent(3)==trigger) event.cards.addArray(evt.cards.filterInD('od'));
});
});
if(!event.cards.length) event.finish();
player.chooseTarget(get.prompt2('rezhongyong'),'令一名其他角色获得'+get.translation(event.cards),function(card,player,target){
return !_status.event.source.contains(target)&&target!=player;
}).set('ai',function(target){
return get.attitude(_status.event.player,target);
}).set('source',trigger.targets);
"step 1"
if(result.bool){
var target=result.targets[0];
player.logSkill('rezhongyong',target);
target.gain(cards,'gain2');
var red=false,black=false;
for(var i of cards){
var color=get.color(i,false);
if(color=='red') red=true;
if(color=='black') black=true;
if(red&&black) break;
}
if(red) target.chooseToUse('是否使用一张杀?',{name:'sha'}).set('filterTarget',function(card,player,target){
return target!=_status.event.sourcex&&_status.event.sourcex.inRange(target)&&lib.filter.targetEnabled.apply(this,arguments);
}).set('sourcex',player).set('addCount',false);
if(black) target.draw();
}
}
},
//长标
changbiao:{
audio:2,
@ -2918,14 +3053,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
rechunlao:{
trigger:{player:'phaseJieshuBegin'},
trigger:{player:'phaseUseEnd'},
direct:true,
audio:2,
filter:function(event,player){
return player.countCards('h')>0&&(_status.connectMode||player.countCards('h','sha')>0)&&!player.storage.rechunlao.length;
},
init:function(player){
if(!player.storage.rechunlao) player.storage.rechunlao=[];
return player.countCards('h')>0&&(_status.connectMode||player.countCards('h','sha')>0)&&!player.getStorage('rechunlao').length;
},
intro:{
content:'cards',
@ -2940,29 +3072,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
player.chooseCard([1,Math.max(1,player.countCards('h','sha'))],get.prompt('rechunlao'),{name:'sha'}).set('ai',function(){
player.chooseCard([1,Math.max(1,player.countCards('h','sha'))],get.prompt('rechunlao'),'将任意张【杀】置于武将牌上作为“醇”',{name:'sha'}).set('ai',function(){
return 1;
});
'step 1'
if(result.bool){
player.logSkill('rechunlao');
player.storage.rechunlao=player.storage.rechunlao.concat(result.cards);
player.syncStorage('rechunlao');
player.markSkill('rechunlao');
player.markAuto('rechunlao',result.cards);
player.lose(result.cards,ui.special,'toStorage');
player.$give(result.cards,player,false);
}
},
ai:{
effect:{
player:function(card,player,target){
if(_status.currentPhase!=player) return;
if(card.name=='sha'&&!player.needsToDiscard()&&
!player.storage.rechunlao.length&&target.hp>1){
return 'zeroplayertarget';
}
}
},
threaten:1.4
},
group:'rechunlao2'
@ -2970,7 +3091,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rechunlao2:{
enable:'chooseToUse',
filter:function(event,player){
return event.type=='dying'&&event.dying&&event.dying.hp<=0&&player.storage.rechunlao.length>0;
return event.type=='dying'&&event.dying&&event.dying.hp<=0&&player.getStorage('rechunlao').length>0;
},
filterTarget:function(card,player,target){
return target==_status.event.dying;
@ -3004,7 +3125,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
order:6,
skillTagFilter:function(player){
return player.storage.rechunlao.length>0;
return player.getStorage('rechunlao').length>0;
},
save:true,
result:{
@ -9062,7 +9183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_chengpu:'界程普',
rechunlao:'醇醪',
rechunlao2:'醇醪',
rechunlao_info:'结束阶段开始若你没有“醇”你可以将至少一张【杀】置于你的武将牌上称为“醇”。当一名角色处于濒死状态时你可以移去一张“醇”视为该角色使用一张【酒】然后若此“醇”的属性为你回复1点体力、雷你摸两张牌。',
rechunlao_info:'出牌阶段结束若你没有“醇”你可以将至少一张【杀】置于你的武将牌上称为“醇”。当一名角色处于濒死状态时你可以移去一张“醇”视为该角色使用一张【酒】然后若此“醇”的属性为你回复1点体力、雷你摸两张牌。',
re_caozhang:'界曹彰',
yujin_yujin:'界于禁',
rejieyue:'节钺',
@ -9202,6 +9323,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_zhurong:'界祝融',
changbiao:'长标',
changbiao_info:'出牌阶段限一次你可以将任意张手牌当做【杀】使用无距离限制。若你因此【杀】对目标角色造成过伤害则你于出牌阶段结束时摸X张牌X为此【杀】对应的实体牌数量。',
re_zhoucang:'界周仓',
rezhongyong:'忠勇',
rezhongyong_info:'当你使用【杀】后,你可以将此【杀】以及目标角色使用的【闪】交给一名其他角色,若其获得的牌中有红色,则其可以对你攻击范围内的角色使用一张【杀】。若其获得的牌中有黑色,其摸一张牌。',
ollihuo:'疠火',
ollihuo2:'疠火',
ollihuo3:'疠火',
ollihuo4:'疠火',
ollihuo_info:'你使用普通的【杀】可以改为火【杀】若此【杀】造成过伤害你失去1点体力你使用火【杀】可以多选择一个目标。你每回合使用的第一张牌如果是【杀】则此【杀】结算完毕后可置于你的武将牌上。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -5,7 +5,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
sp:{
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","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_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao','wolongfengchu','ol_xinxianying'],
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
@ -17,6 +18,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
character:{
sp_jiben:['male','qun',3,['spduanzhi','spduyi']],
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
zongyu:['male','shu',3,['zyqiao','chengshang']],
luyusheng:['female','wu',3,['zhente','zhiwei']],
ol_xinxianying:['female','wei',3,['xincaishi','xinzhongjian']],
@ -155,6 +159,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//kaisa:["male","western",4,["zhengfu"]],
},
characterIntro:{
jiben:'吉本—218年东汉末年太医令。建安二十三年春正月时金祎自以世为汉臣睹汉祚将移谓可季兴乃喟然发愤遂与太医令本、少府耿纪、司直韦晃、本子邈、邈弟穆等结谋攻许杀曹公长史王必南援刘备。后必营必与典农中郎将严匡讨斩之。在《三国演义》中吉本在此为吉平或吉太因字称平故又唤作吉平。曾参与董承等人刺杀曹操的计划并企图在为曹操治病时毒死曹操但被曹操识破而遭处刑。之后其子吉邈和吉穆都参与了由耿纪和韦晃等人所发动的反叛曹操的行动但都失败被杀。',
zongyu:'宗预264年字德艳 荆州南阳郡安众县今河南省南阳市人。三国时期蜀汉官员、将领。曾随张飞入蜀助平益州又受辟为丞相诸葛亮手下主簿升任参军、右中郎将。诸葛亮逝世后宗预受命出使孙吴得到孙权的赞赏。迁后将军出督永安又升任征西大将军并受封关内侯。公元258年景耀元年因病回成都受任镇军大将军。蜀汉灭亡后宗预随后主刘禅徙往洛阳在中途病逝。宗预为人坦率耿直多次出使孙吴并深得孙权的敬重为吴、汉两国同盟的巩固作出了一定的贡献。',
mifangfushiren:'麋芳(生卒年不详),字子方,东海郡朐县(今江苏省连云港市)人。汉末三国时期蜀国将领,刘备糜夫人的兄弟。麋芳本为徐州牧陶谦部下,曾被曹操表为彭城相。后来辞官,随刘备从徐州辗转至邺城、汝南、新野、长坂坡、江夏等地,奔波多年。傅士仁(生卒年不详),字君义,幽州广阳郡(今北京市)人,刘备手下将领。受到刘备的重用,但被关羽轻慢。<br>刘备称汉中王时,糜芳为南郡太守,但受到关羽的轻慢。后来,因未完成供给军资的任务而被关羽责骂,心中不安。吕蒙袭取荆州时,将已经投降的傅士仁展示给糜芳,麋芳于是选择投降,导致关羽兵败被杀。此后,在吴国担任将军,并且为吴征伐。',
mengda:'孟达(?228字子度本字子敬因刘备的叔父名叫刘子敬为避讳而改字。扶风郡郿人三国时期人物。本为刘璋属下后降刘备。关羽围樊城、襄阳时因不发兵救关羽而触怒刘备于是投奔曹魏。此后劝降刘封未果。在魏官至散骑常侍、建武将军封平阳亭侯。此后又欲反曹魏而归蜀汉事败而死。',
@ -402,6 +407,251 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//铜雀台
spduanzhi:{
trigger:{target:'useCardToTargeted'},
logTarget:'player',
check:function(event,player){
var target=event.player;
if(get.attitude(player,target)>=-2||target.countCards('he',function(card){
return get.value(card,target)>5;
})<2) return false;
if(player.hp>2) return true;
if(player.hp==1){
if(get.tag(event.card,'respondSha')){
if(player.countCards('h',{name:'sha'})==0){
return true;
}
}
else if(get.tag(event.card,'respondShan')){
if(player.countCards('h',{name:'shan'})==0){
return true;
}
}
else if(get.tag(event.card,'damage')){
if(event.card.name=='shuiyanqijunx') return player.countCards('e')==0;
return true;
}
}
return false;
},
filter:function(event,player){
return player!=event.player&&event.player.countDiscardableCards(player,'he')>0;
},
content:function(){
player.discardPlayerCard(trigger.player,true,'he',[1,2]);
player.loseHp();
},
},
spduyi:{
enable:'phaseUse',
usable:1,
content:function(){
'step 0'
event.card=get.cards()[0];
game.cardsGotoOrdering(event.card);
player.showCards(event.card);
'step 1'
player.chooseTarget('令一名角色获得'+get.translation(card),true).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(_status.event.du){
if(target.hasSkillTag('nodu')) return 0;
return -att;
}
if(att>0){
if(target==player) att*=0.6;
return att+Math.sqrt(Math.max(0,5-target.countCards('h')));
}
return att;
}).set('du',card.name=='du');
'step 2'
if(result&&result.bool){
var target=result.targets[0];
target.gain(card,'gain2');
if(get.color(card,false)=='black') target.addTempSkill('spduyi2');
}
},
ai:{
order:0.1,
result:{
player:1,
},
},
},
spduyi2:{
mod:{
cardEnabled2:function(card){
if(get.position(card)=='h') return false;
},
},
mark:true,
intro:{
content:'不能使用或打出手牌',
},
},
spcangni:{
audio:'zhuikong',
trigger:{player:'phaseDiscardBegin'},
direct:true,
content:function(){
'step 0'
player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力然后将武将牌翻面',2).set('ai',function(){
return 'cancel2';
}).logSkill='spcangni';
'step 1'
if(result.control!='cancel2') player.turnOver();
},
group:['spcangni_gain','spcangni_lose'],
subSkill:{
gain:{
audio:'zhuikong',
trigger:{player:'gainAfter'},
usable:1,
filter:function(event,player){
return player.isTurnedOver()&&player!=_status.currentPhase;
},
check:function(event,player){
return get.attitude(player,_status.currentPhase)>0;
},
logTarget:function(){
return _status.currentPhase;
},
prompt2:'令该角色摸一张牌',
content:function(){
_status.currentPhase.draw();
},
},
lose:{
audio:'zhuikong',
trigger:{
player:'loseAfter',
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter'],
},
filter:function(event,player){
if(event.name=='gain'&&player==event.player) return false;
var evt=event.getl(player);
if(!evt||!evt.cards2||!evt.cards2.length) return false;
return player.isTurnedOver()&&player!=_status.currentPhase&&_status.currentPhase.countCards('he')>0;
},
check:function(event,player){
var target=_status.currentPhase;
var att=get.attitude(player,target);
if(target.countCards('e',function(card){
return get.value(card,target)<=0;
})) return att>0;
return att<0;
},
logTarget:function(){
return _status.currentPhase;
},
prompt2:'令该角色弃置一张牌',
content:function(){
_status.currentPhase.chooseToDiscard('he',true);
},
},
},
},
spmixin:{
audio:'qiuyuan',
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('h')>0&&game.countPlayer()>2;
},
filterCard:true,
filterTarget:lib.filter.notMe,
position:'h',
selectTarget:2,
targetprompt:['拿牌打人','被打'],
multitarget:true,
delay:false,
discard:false,
lose:false,
check:function(card){
if(card.name=='sha') return 4;
return 4-get.value(card);
},
content:function(){
'step 0'
targets[0].gain(cards,player,'giveAuto');
'step 1'
if(!targets[0].isAlive()||!targets[1].isAlive()){
event.finish();
return;
}
targets[0].chooseToUse(function(card,player,event){
if(get.name(card)!='sha') return false;
return lib.filter.filterCard.apply(this,arguments);
},'密信:对'+get.translation(targets[1])+'使用一张【杀】,或令其观看并获得你的一张手牌').set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.targetEnabled.apply(this,arguments);
}).set('sourcex',targets[1]);
'step 2'
if(!result.bool&&targets[0].countCards('h')) targets[1].gainPlayerCard(targets[0],'visible','h',true);
},
ai:{
order:1,
expose:0.1,
result:{
target:function(player,target){
var card=ui.selected.cards[0];
if(!card) return 0;
if(ui.selected.targets.length==0){
if(card.name=='sha'||target.hasSha()) return 2;
if(get.value(card,target)<0) return -2;
return 0;
}
var target1=ui.selected.targets[0];
if((card.name=='sha'||target1.hasSha())&&get.effect(target,{name:'sha'},target1,target1)>0) return get.effect(target,{name:'sha'},target1,target);
return 1.5;
},
},
},
},
spfengyin:{
audio:'moukui',
trigger:{global:'phaseZhunbeiBegin'},
direct:true,
filter:function(event,player){
return player!=event.player&&event.player.hp>=player.hp&&player.countCards('h',function(card){
if(_status.connectMode) return true;
return get.name(card,player)=='sha';
})>0;
},
content:function(){
'step 0'
player.chooseCard('h',get.prompt('spfengyin',trigger.player),'交给该角色一张【杀】并令其跳过出牌阶段和弃牌阶段',function(card,player){
return get.name(card,player)=='sha';
}).set('ai',function(card){
if(_status.event.goon) return 5-get.value(card);
return 0;
}).set('goon',function(){
if(get.attitude(player,trigger.player)>=0) return false;
if(trigger.player.countCards('hs')<trigger.player.hp) return false;
return true;
}());
'step 1'
if(result.bool){
var target=trigger.player;
player.logSkill('spfengyin',target);
target.gain(result.cards,player,'give');
target.skip('phaseUse');
target.skip('phaseDiscard');
}
},
},
spchizhong:{
mod:{
maxHandcardBase:function(player,num){
return player.maxHp;
},
},
trigger:{global:'dieAfter'},
forced:true,
content:function(){
player.gainMaxHp();
},
},
//宗预
zyqiao:{
audio:2,
@ -3486,9 +3736,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.logSkill('ol_shichou',targets);
player.line(targets,trigger.card.nature);
trigger.targets.addArray(targets);
trigger.ol_shichou=true;
player.addTempSkill('ol_shichou2');
}
},
},
ol_shichou2:{
trigger:{player:'useCardAfter'},
forced:true,
popup:false,
onremove:true,
filter:function(event,player){
return event.ol_shichou==true&&player.countMark('ol_shichou2')<3&&!player.getHistory('sourceDamage',function(evt){
return evt.card==event.card;
}).length&&event.cards.filterInD().length>0;
},
content:function(){
player.addMark('ol_shichou2',1,false);
player.gain(trigger.cards.filterInD(),'gain2');
},
},
//新大小乔
"new_xingwu":{
audio:"xingwu",
@ -15789,6 +16056,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
guansuo:['guansuo','ol_guansuo'],
zhangxingcai:['zhangxingcai','old_zhangxingcai'],
lisu:['ol_lisu','lisu'],
fuwan:['fuwan','sp_fuwan'],
},
translate:{
"xinfu_lingren":"凌人",
@ -16025,7 +16293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_luoyan_liuli":"流离",
"new_luoyan_liuli_info":"",
ol_shichou:"誓仇",
ol_shichou_info:"当你使用【杀】时你可以令至多X名角色也成为此【杀】的目标。X为你已损失的体力值且至少为1",
ol_shichou_info:"当你使用【杀】时你可以令至多X名角色也成为此【杀】的目标。此牌结算结束后,若你未因【杀】造成过伤害,则你获得此【杀】X为你已损失的体力值且至少为1。每回合限获得三次",
"zhenwei_three":"镇卫",
"zhenwei_three_info":"锁定技,敌方角色至己方其他角色的距离+1。",
"huanshi_three":"缓释",
@ -16672,8 +16940,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
chengshang:'承赏',
chengshang_info:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
chengshang_info_guozhan:'当你于出牌阶段内使用的牌结算完成后,若此牌未造成过伤害且此牌的目标包含其他角色且你本阶段内未因〖承赏〗获得过牌,则你可以从牌堆中获得一张与此牌花色点数相同的牌。',
sp_fuwan:'SP伏完',
spfengyin:'奉印',
spfengyin_info:'其他角色的回合开始时,若其体力值不少于你,你可以交给其一张【杀】,令其跳过出牌阶段和弃牌阶段。',
spchizhong:'持重',
spchizhong_info:'锁定技你的手牌上限等于体力上限其他角色死亡时你加1点体力上限。',
sp_fuhuanghou:'SP伏皇后',
spcangni:'藏匿',
spcangni_info:'弃牌阶段开始时你可以回复1点体力或摸两张牌然后将你的武将牌翻面其他角色的回合内当你获得每回合限一次/失去一次牌时,若你的武将牌背面朝上,你可以令该角色摸/弃置一张牌。',
spmixin:'密信',
spmixin_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,该角色须对你选择的另一名角色使用一张无距离限制的【杀】,否则你选择的角色观看其手牌并获得其中一张。',
sp_jiben:'吉本',
spduanzhi:'断指',
spduanzhi_info:'当你成为其他角色使用的牌的目标后你可以弃置其至多两张牌然后失去1点体力。',
spduyi:'毒医',
spduyi2:'毒医',
spduyi_info:'出牌阶段限一次,你可以亮出牌堆顶的一张牌并交给一名角色,若此牌为黑色,该角色不能使用或打出手牌,直到回到结束。',
sp_default:"常规",
sp_tongque:"铜雀台",
sp_zhongdan:"忠胆英杰",
sp_star:"桌游志·SP",
sp_guozhan:"国战",

View File

@ -4,10 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
xiahoujie:['male','wei',5,['liedan','zhuangdan']],
cheliji:['male','qun',4,['cheliji_skill1','cheliji_skill2'],['unseen']],
simazhou:['male','jin',4,['caiwang','naxiang']],
huangzu:['male','qun',4,['wangong'],['unseen']],
caosong:['male','wei',3,['cslilu','csyizheng']],
caosong:['male','wei',4,['cslilu','csyizheng']],
re_taoqian:['male','qun',3,['zhaohuo','reyixiang','reyirang']],
zhaozhong:['male','qun',6,['yangzhong','huangkong']],
fanyufeng:['female','qun',3,['bazhan','jiaoying']],
@ -102,7 +103,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
sp_sbfm:["lisu","xinpi","zhangwen"],
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong'],
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
@ -115,6 +116,51 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//夏侯杰
liedan:{
audio:2,
trigger:{global:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
return (player!=event.player||player.countMark('liedan')>4)&&!player.hasSkill('zhuangdan_mark');
},
logTarget:'player',
content:function(){
if(player==trigger.player){
player.die();
return;
}
var num=0;
if(player.hp>trigger.player.hp) num++;
if(player.countCards('h')>trigger.player.countCards('h')) num++;
if(player.countCards('e')>trigger.player.countCards('e')) num++;
if(num){
player.draw(num);
if(num==3) player.gainMaxHp();
}
else{
player.addMark('liedan',1);
player.loseHp();
}
},
intro:{content:'mark'},
},
zhuangdan:{
audio:2,
trigger:{global:'phaseEnd'},
forced:true,
filter:function(event,player){
return player!=event.player&&player.isMaxHandcard(true);
},
content:function(){
player.addTempSkill('zhuangdan_mark',{player:'phaseEnd'})
},
},
zhuangdan_mark:{
mark:true,
marktext:'胆',
intro:{content:'我超勇的'},
},
//彻里吉
cheliji_skill1:{
audio:2,
@ -5585,6 +5631,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
mansi_viewas:{
audio:'mansi',
position:'h',
enable:'phaseUse',
usable:1,
filterCard:true,
@ -9654,6 +9701,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
characterIntro:{
tangji:'唐姬,会稽太守唐瑁女,弘农怀王刘辩的妃子。刘辩死后,唐姬回归故里,因节烈不愿改嫁他人,后被汉献帝下诏封为弘农王妃。',
lijue:"李傕jué一说“傕”读音“què”—198年字稚然。北地郡泥阳县今陕西省耀县汉末群雄之一。东汉末年汉献帝时的军阀、权臣官至大司马、车骑将军、开府、领司隶校尉、假节。<br>李傕本为董卓部将后被董卓的女婿牛辅派遣至中牟与朱儁交战大破朱儁进而至陈留、颍川等地劫掠。初平三年192年董卓和牛辅被杀后李傕归无所依于是采用贾诩之谋伙同郭汜、张济、樊稠等原董卓部曲将攻向长安。击败吕布杀死王允等人占领长安把持朝廷大权。后诸将不和李傕在会议上杀死了樊稠又与郭汜分别劫持了汉献帝和众臣相互交战张济率兵赶来和解于是二人罢兵李傕出屯池阳黄白城郭汜、张济等人随汉献帝东归前往弘农。<br>后来李傕、郭汜、张济反悔联合起来追击汉献帝与杨奉、董承等人几番交战。汉献帝一路逃亡狼狈不堪到达安邑与李傕等人讲和。不久汉献帝被曹操迎往许都。建安三年198年曹操派谒者仆射裴茂召集关西诸将段煨等人征讨李傕灭其三族。",
zhangji:"张济196年武威郡祖厉县今甘肃靖远东南人。东汉末年割据军阀之一。 张济原为董卓部将,董卓被诛杀后,张济与李傕一同率军攻破长安,任中郎将。不久,升任镇东将军,封平阳侯,出屯弘农。献帝东迁时,张济升任骠骑将军,率军护卫献帝,后来因与董承等人有矛盾,便与李傕、郭汜一同追赶献帝。 建安元年196年张济因军队缺粮而进攻穰城中流矢而死。死后部队由侄儿张绣接管。",
guosi:"郭汜197年又名郭多凉州张掖今甘肃张掖西北东汉末年将领、军阀献帝时权臣。原为董卓部下。董卓被杀后凉州众将归无所依于是采用贾诩之谋联兵将攻向长安击败吕布杀死王允等人占领长安把持朝廷大权。几年后郭汜被部将伍习杀死。",
@ -9708,6 +9756,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
simazhou:'司马伷zhòu227年283年6月12日字子将河内郡温县今河南省温县人。西晋宗室、将领晋宣帝司马懿第三子伏太妃所生。晋景帝司马师、文帝司马昭的同父异母弟晋武帝司马炎的叔父。司马伷少有才气在曹魏历任宁朔将军、散骑常侍、征虏将军等职先后受封南安亭侯、东武乡侯五等爵制建立后改封南皮伯。西晋建立后获封东莞郡王入朝任尚书右仆射、抚军将军出外拜镇东大将军。后改封琅邪王加开府仪同三司。西晋伐吴时率军出涂中孙皓向他投降并奉上玉玺。战后因功拜大将军增邑三千户。太康四年283年司马伷去世享年五十七岁。谥号为武世称“琅邪武王”。著有《周官宁朔新书》八卷今已亡佚。',
huangzu:'黄祖208年东汉末年将领。刘表任荆州牧时黄祖出任江夏太守。初平二年191年黄祖在与长沙太守孙坚交战时其部下将孙坚射死因此与孙家结下仇怨。之后黄祖多次率部与东吴军队交战射杀凌操、徐琨等人。建安十三年208年在与孙权的交战中兵败被杀。',
cheliji:'彻里吉是历史小说《三国演义》中的虚构人物,西羌国王。蜀相诸葛亮伐魏,魏都督曹真驰书赴羌,国王彻里吉即命雅丹丞相与越吉元帅起羌兵一十五万、并战车直扣西平关。后军大败,越吉亡,雅丹被俘,亮将所获羌兵及车马器械,尽给还雅丹,俱放回国。彻里吉感蜀恩义,与之结盟。正史中没有关于彻里吉的记载。',
xiahoujie:'夏侯杰—208年是罗贯中的小说《三国演义》中曹操的部将征战时常常带在身边。在第42回长坂坡之战中张飞大吼从马儿受惊跌下马来而死。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -10338,6 +10387,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cheliji_tiejixuanyu_info:'其他角色的回合结束时,若其本回合未造成过伤害,你可以令其弃置两张牌,然后弃置此牌。',
cheliji_feilunzhanyu:'飞轮战舆',
cheliji_feilunzhanyu_info:'其他角色的回合结束时,若其本回合使用过非基本牌,你可以令其交给你一张牌,然后弃置此牌。',
xiahoujie:'夏侯杰',
liedan:'烈胆',
liedan_info:'锁定技其他角色的准备阶段开始时若X大于0则你摸X张牌。若X等于3则你加1点体力上限。若X为0则你失去1点体力并获得一枚“裂”X为你的手牌数体力值装备区牌数中大于其的数量。准备阶段若“裂”数大于4则你死亡。',
zhuangdan:'壮胆',
zhuangdan_mark:'壮胆',
zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖烈胆〗失效直到你下回合结束。',
sp_yingbian:'文德武备',
sp_whlw:"文和乱武",

View File

@ -6863,6 +6863,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse',
filterCard:true,
selectCard:-1,
position:'h',
filter:function(event,player){
if(player.getStat().skill.zhanjue_draw&&player.getStat().skill.zhanjue_draw>=2) return false;
var hs=player.getCards('h');
@ -10157,9 +10158,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
else if(get.tag(event.card,'damage')){
if(event.card.name=='shuiyanqijunx') return player.countCards('e')<2;
if(event.card.name=='shuiyanqijunx') return player.countCards('e')==0;
return true;
//if(player.countCards('h')<2) return true;
}
else if((event.card.name=='shunshou'||(event.card.name=='zhujinqiyuan'&&(event.card.yingbian||get.distance(event.player,player)<0)))&&player.hp>2){
return true;
@ -10802,6 +10802,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return {
filterCard:true,
selectCard:-1,
position:'h',
audio:2,
popname:true,
viewAs:{name:links[0][2]},
@ -12083,7 +12084,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liaohua:['xin_liaohua','re_liaohua','liaohua'],
bulianshi:['re_bulianshi','bulianshi','old_bulianshi'],
handang:['xin_handang','re_handang','handang'],
chengpu:['re_chengpu','chengpu','xin_chengpu'],
chengpu:['re_chengpu','ns_chengpu','chengpu','xin_chengpu'],
liubiao:['re_liubiao','xin_liubiao','liubiao'],
manchong:['re_manchong','manchong'],
caochong:['caochong','old_caochong'],

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.1',
'v1.9.110.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -703,6 +703,8 @@ window.noname_asset_list=[
'audio/die/zongyu.mp3',
'audio/die/nanhualaoxian.mp3',
'audio/die/simazhou.mp3',
'audio/die/re_zhoucang.mp3',
'audio/die/xiahoujie.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3097,7 +3099,12 @@ window.noname_asset_list=[
'audio/skill/tianshu2.mp3',
'audio/skill/yufeng1.mp3',
'audio/skill/yufeng2.mp3',
'audio/skill/liedan1.mp3',
'audio/skill/liedan2.mp3',
'audio/skill/rezhongyong1.mp3',
'audio/skill/rezhongyong2.mp3',
'audio/skill/zhuangdan1.mp3',
'audio/skill/zhuangdan2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
'audio/voice/male/2.mp3',
@ -3907,6 +3914,12 @@ window.noname_asset_list=[
'image/character/nanhualaoxian.jpg',
'image/character/key_asara.jpg',
'image/character/key_kotomi.jpg',
'image/character/ns_chengpu.jpg',
'image/character/re_zhoucang.jpg',
'image/character/sp_fuhuanghou.jpg',
'image/character/sp_fuwan.jpg',
'image/character/sp_jiben.jpg',
'image/character/xiahoujie.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -4414,6 +4414,12 @@
frequent:true,
intro:'若开启此选项,选择神武将的玩家需在亮出自己的武将牌之前为自己选择一个势力。'
},
nei_fullscreenpop:{
name:'主内单挑特效',
intro:'在进入主内单挑时,弹出全屏文字特效',
init:true,
unfrequent:true,
},
double_character:{
name:'双将模式',
init:false,
@ -10974,7 +10980,7 @@
game.changeCoin(-3);
}
var hs=game.me.getCards('h');
game.addVideo('lose',game.me,[get.cardsInfo(hs),[],[]]);
game.addVideo('lose',game.me,[get.cardsInfo(hs),[],[],[]]);
for(var i=0;i<hs.length;i++){
hs[i].discard(false);
}
@ -11608,7 +11614,7 @@
if(result&&result.bool){
var hs=player.getCards('h')
game.broadcastAll(function(player,hs){
game.addVideo('lose',player,[get.cardsInfo(hs),[],[]]);
game.addVideo('lose',player,[get.cardsInfo(hs),[],[],[]]);
for(var i=0;i<hs.length;i++){
hs[i].discard(false);
}
@ -23632,8 +23638,8 @@
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'recover');
},
$fullscreenpop:function(str,nature,avatar){
game.broadcast(function(player,str,nature,avatar){
$fullscreenpop:function(str,nature,avatar,broadcast){
if(broadcast!==false) game.broadcast(function(player,str,nature,avatar){
player.$fullscreenpop(str,nature,avatar);
},this,str,nature,avatar);
game.addVideo('fullscreenpop',this,[str,nature,avatar]);
@ -30121,7 +30127,7 @@
},
lose:function(player,info){
if(player&&info){
var hs=info[0],es=info[1],js=info[2],ss=info[3];
var hs=info[0]||[],es=info[1]||[],js=info[2]||[],ss=info[3]||[];
var phs=player.getCards('h'),pes=player.getCards('e'),pjs=player.getCards('j'),pss=player.getCards('s');
var checkMatch=function(l1,l2){
for(var i=0;i<l1.length;i++){
@ -43849,7 +43855,7 @@
ui.sortCard=ui.create.system('整理手牌',function(){
var hs=game.me.getCards('h');
if(!hs.length) return;
game.addVideo('lose',game.me,[get.cardsInfo(hs),[],[]]);
game.addVideo('lose',game.me,[get.cardsInfo(hs),[],[],[]]);
for(var i=0;i<hs.length;i++){
hs[i].goto(ui.special);
}

View File

@ -1,14 +1,15 @@
window.noname_update={
version:'1.9.110.1',
update:'1.9.110',
version:'1.9.110.2',
update:'1.9.110.1',
changeLog:[
'一之濑琴美、井上晶',
'界程普,界周仓,夏侯杰',
'铜雀台武将',
'bug修复',
],
files:[
//'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
@ -16,7 +17,7 @@ window.noname_update={
'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
'card/yingbian.js',
//'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
@ -31,26 +32,26 @@ window.noname_update={
//'character/ow.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
//'character/sp.js',
//'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
'layout/default/layout.css',
//'layout/default/menu.css',
//'layout/nova/layout.css',
//'mode/boss.js',
//'mode/brawl.js',
//'mode/chess.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/identity.js',
'mode/guozhan.js',
'mode/identity.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@ -4483,7 +4483,6 @@ div[data-decoration="bronze"]::after{
}*/
.player.selectable:not(.selected)::before,
.card.glow::before,
.card.glows::before,
.button.glow::before {
opacity: 1;
}
@ -4504,9 +4503,6 @@ div[data-decoration="bronze"]::after{
#me .card.glow::before {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px,rgb(0, 133, 255) 0 0 5px, rgba(0, 133, 255,1) 0 0 10px;
}
#me .card.glows::before {
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px,rgb(255, 153, 51) 0 0 5px, rgba(255, 153, 51,1) 0 0 10px;
}
#me>#handcards1:not(.scrollh),
#me>#handcards2:not(.scrollh) {
@ -4518,8 +4514,10 @@ div[data-decoration="bronze"]::after{
#me>div:not(.scrollh)>.handcards>.card.selected{
top:-20px;
}*/
.glows:not(.button):not(.card){
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(255, 153, 51, 0.4) 0 0 5px, rgba(255, 153, 51, 0.5) 0 0 12px, rgba(255, 153, 51, 0.8) 0 0 15px !important;
#me .card.glows {
opacity: 1;
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px,rgb(255, 153, 51) 0 0 5px, rgba(255, 153, 51,1) 0 0 10px;
}
.glow:not(.button):not(.card){
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.4) 0 0 5px, rgba(0, 133, 255, 0.5) 0 0 12px, rgba(0, 133, 255, 0.8) 0 0 15px !important;

View File

@ -5186,6 +5186,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
filterCard:true,
audio:"qice",
selectCard:-1,
position:'h',
selectTarget:function(){
var select=get.select(get.info(get.card()).selectTarget);
var nh=_status.event.player.countCards('h');
@ -9956,7 +9957,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
return Math.sign(att1)*eff1+Math.sign(att2)*eff2;
},
realAttitude:function(from,toidentity,difficulty){
realAttitude:function(from,to,difficulty,toidentity){
if(from.identity==toidentity&&toidentity!='ye'){
return 4+difficulty;
}
@ -9964,18 +9965,38 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(from.wontYe()) return 4+difficulty;
}
var groups=[];
for(var i=0;i<lib.group.length;i++){
groups.push(get.population(lib.group[i]));
var map={},sides=[],pmap=_status.connectMode?lib.playerOL:game.playerMap,player;
for(var i of game.players){
if(i.identity=='unknown') continue;
var added=false;
for(var j of sides){
if(i.isFriendOf(pmap[j])){
added=true;
map[j].push(i);
if(i==this) player=j;
break;
}
}
if(!added){
map[i.playerid]=[i];
sides.push(i.playerid);
if(i==this) player=i.playerid;
}
}
for(var i in map) groups.push(map[i].length);
var max=Math.max.apply(this,groups);
if(max<=1) return -3;
var from_p=get.population(from.identity!='unknown'?from.identity:lib.character[from.name1][1]);
var to_p=get.population(toidentity);
if(from.identity=='ye') from_p=1;
if(toidentity=='ye') to_p=1;
var from_p;
if(from.identity=='unknown'&&from.wontYe()) from_p=get.population(lib.character[from.name1][1]);
else from_p=game.countPlayer(function(current){
return current.isFriendOf(from);
});
var to_p=game.countPlayer(function(current){
return current.isFriendOf(to);
});
if(to_p==max) return -5;
if(from_p==max) return -2-get.population(toidentity);
if(from_p==max) return -2-to_p;
if(max>=game.players.length/2){
if(to_p<=from_p){
return 0.5;
@ -9993,7 +10014,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var difficulty=0;
if(to==game.me) difficulty=(2-get.difficulty())*1.5;
if(from==to) return 5+difficulty;
if(from.identity==to.identity&&(from.storage.yexinjia_friend==to||to.storage.yexinjia_friend==from||from.identity!='unknown'&&from.identity!='ye')) return 5+difficulty;
if(from.isFriendOf(to)) return 5+difficulty;
if(from.identity=='unknown'&&lib.character[from.name1][1]==to.identity){
if(from.wontYe()) return 4+difficulty;
}
@ -10004,7 +10025,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
toidentity='ye';
}
}
var att=get.realAttitude(from,toidentity,difficulty);
var att=get.realAttitude(from,to,difficulty,toidentity);
if(from.storage.zhibi&&from.storage.zhibi.contains(to)){
return att;
}

View File

@ -2307,7 +2307,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(game.zhu&&game.zhu.isZhu){
if(get.population('zhong')+get.population('nei')==0||
get.population('zhong')+get.population('fan')==0){
game.broadcastAll(game.showIdentity);
game.broadcastAll(function(){
game.showIdentity();
if(game.zhu&&game.zhu.isAlive()&&get.population('nei')==1&&get.config('nei_fullscreenpop')) game.me.$fullscreenpop('<span style="font-family:xinwei"><span data-nature="fire">主公</span><span data-nature="soil"> vs </span><span data-nature="thunder">内奸</span></span>',null,null,false);
});
}
}
if(game.zhu&&game.zhu.storage.enhance_zhu&&get.population('fan')<3){