v1.9.116.2

This commit is contained in:
Spmario233 2022-10-28 16:39:59 +08:00
parent 3159e08176
commit c869b41506
60 changed files with 735 additions and 125 deletions

BIN
audio/die/bianxi.mp3 Normal file

Binary file not shown.

BIN
audio/die/caoxiancaohua.mp3 Normal file

Binary file not shown.

BIN
audio/die/dc_liuba.mp3 Normal file

Binary file not shown.

BIN
audio/die/huzhao.mp3 Normal file

Binary file not shown.

BIN
audio/die/lukai.mp3 Normal file

Binary file not shown.

BIN
audio/die/niufu.mp3 Normal file

Binary file not shown.

BIN
audio/die/re_liufeng.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/xiahoulingnv.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcliuzhuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcliuzhuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcxiaoxi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dcxiaoxi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dczhubi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dczhubi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dunxi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dunxi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fuping1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/fuping2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/huamu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/huamu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jisi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/jisi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liangyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/liangyuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lkbushi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lkbushi2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/midu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/midu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qianmeng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/qianmeng2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rejixu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rejixu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/weilie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/weilie2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/xianwang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xianwang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xiongrao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xiongrao2.mp3 Normal file

Binary file not shown.

View File

@ -2170,20 +2170,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.goto(2);
}
'step 1'
target.storage.resghuishi=result.control;
target.markSkill('resghuishi');
target.storage.resghuishi_mark=result.control;
target.markSkill('resghuishi_mark');
var info=lib.skill[result.control];
if(info.filter&&!info.charlotte&&!info.sghuishi_filter){
info.sghuishi_filter=info.filter;
if(info.filter&&!info.charlotte&&!info.resghuishi_filter){
info.resghuishi_filter=info.filter;
info.filter=function(event,player){
if(player.storage.resghuishi) return true;
return this.sghuishi_filter.apply(this,arguments);
if(player.storage.resghuishi_mark) return true;
return this.resghuishi_filter.apply(this,arguments);
}
}
'step 2'
player.loseMaxHp(2);
},
intro:{content:'发动【$】时无视条件'},
intro:{content:'发动'},
ai:{
order:0.1,
expose:0.2,
@ -2202,6 +2202,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
subSkill:{mark:{intro:{content:'发动【$】时无视条件'}}},
},
sghuishi:{
audio:2,
@ -4127,7 +4128,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
player.addToExpansion(get.cards(7),'gain2').gaintag.add('qixing');
player.addToExpansion(get.cards(7),'draw').gaintag.add('qixing');
"step 1"
var cards=player.getExpansions('qixing');
if(!cards.length||!player.countCards('h')){
@ -4891,7 +4892,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.addVideo('showCards',player,['涉猎',get.cardsInfo(event.cards)]);
game.addVideo('delay',null,2);
"step 1"
var next=player.chooseButton([0,5],true);
var list=[];
for(var i of cards) list.add(get.suit(i,false));
var next=player.chooseButton(list.length,true);
next.set('dialog',event.videoId);
next.set('filterButton',function(button){
for(var i=0;i<ui.selected.buttons.length;i++){

View File

@ -782,6 +782,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
backup:function(links,player){
return {
audio:'buxu',
index:['诗经','尚书','仪礼','易经','乐经','春秋'].indexOf(links.control),
filterCard:true,
position:'he',
@ -1859,7 +1860,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 0'
player.draw();
'step 1'
if(player.canCompare(target)) player.chooseToCompare(target).set('preserve','lose');
if(player.canCompare(target)) player.chooseToCompare(target).set('small',true);
else event.finish();
'step 2'
if(!result.bool){

View File

@ -807,6 +807,9 @@ window.noname_character_rank={
'dc_liuba',
'key_seira',
'lukai',
'niufu',
're_liufeng',
'huzhao',
],
b:[
'diy_feishi',
@ -1045,6 +1048,7 @@ window.noname_character_rank={
'zhaoyǎn',
'zhangxun',
'xiahoulingnv',
're_sp_taishici',
],
bm:[
'diy_xizhenxihong',
@ -1278,6 +1282,7 @@ window.noname_character_rank={
'duanwei',
'wangxiang',
'duji',
'bianxi',
],
rarity:{
legend:[
@ -2016,6 +2021,8 @@ window.noname_character_rank={
'jin_zhouchu',
'lukai',
'caoxiancaohua',
'huzhao',
're_liufeng',
],
junk:[
'sunshao',
@ -2038,6 +2045,7 @@ window.noname_character_rank={
'wangxiang',
'duji',
'dc_liuba',
'bianxi',
],
}
};

View File

@ -11,15 +11,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_shan:['ol_jiangwei','ol_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai','re_zhanghe'],
refresh_yijiang1:['xin_wuguotai','xin_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua','dc_xushu'],
refresh_yijiang2:['re_madai','re_wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','dc_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','xin_yufan','re_liru','re_manchong','re_fuhuanghou','re_guanping','re_liufeng'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan','re_caozhen','re_zhoucang','re_chenqun','re_caifuren','re_guyong','re_jushou'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu','re_gongsunyuan','re_guotufengji','re_xiahoushi','re_liuchen'],
refresh_yijiang6:['re_guohuanghou'],
refresh_xinghuo:['re_duji','dc_gongsunzan'],
refresh_xinghuo:['re_duji','dc_gongsunzan','re_sp_taishici'],
},
},
connect:true,
character:{
re_sp_taishici:['male','qun',4,['rejixu']],
re_liufeng:['male','shu',4,['rexiansi']],
ol_xunyu:['male','wei',3,['quhu','oljieming']],
re_liuchen:['male','shu',4,['rezhanjue','reqinwang'],['zhu']],
dc_gongsunzan:['male','qun',4,['reyicong','dcqiaomeng']],
@ -147,6 +149,178 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xushu:['zhaoyun','sp_zhugeliang'],
},
skill:{
//群太史慈
rejixu:{
audio:2,
enable:"phaseUse",
usable:1,
filter:function(event,player){
return player.hp>0&&player.countCards('h')>0;
},
filterTarget:lib.filter.notMe,
selectTarget:function(){
return [1,_status.event.player.hp];
},
multitarget:true,
multiline:true,
content:function(){
"step 0"
targets.sortBySeat();
event.num=0;
"step 1"
if(!event.caicuolist) event.caicuolist=[];
targets[event.num].chooseBool("是否押杀?").ai=function(event,player){
var evt=_status.event.getParent();
if(get.attitude(targets[event.num],evt.player)>0) return evt.player.countCards('h','sha')?false:true;
return Math.random()<0.5;
};
"step 2"
if(result.bool){
targets[event.num].chat('有杀');
game.log(targets[event.num],'认为',player,'#g有杀');
if(!player.countCards('h','sha')) event.caicuolist.add(targets[event.num]);
}else{
targets[event.num].chat('没杀');
game.log(targets[event.num],'认为',player,'#y没有杀');
if(player.countCards('h','sha')) event.caicuolist.add(targets[event.num]);
}
event.num++;
game.delay();
if(event.num<targets.length) event.goto(1);
"step 3"
player.popup(player.countCards('h','sha')?"有杀":"没杀");
game.log(player,player.countCards('h','sha')?"有杀":"没杀");
if(event.caicuolist.length>0){
if(player.countCards('h','sha')){
player.markAuto('rejixu_sha',event.caicuolist);
player.addTempSkill('rejixu_sha','phaseUseAfter');
player.draw(event.caicuolist.length)
event.finish();
}
else{
event.num=0;
}
}
else event.finish();
"step 4"
var target=event.caicuolist[event.num];
if(target.countCards('he')>0){
player.line(target);
player.discardPlayerCard(true,'he',target);
}
event.num++;
if(event.num<event.caicuolist.length) event.redo();
else player.draw(event.caicuolist.length);
},
ai:{
order:function(){
return get.order({name:'sha'})+0.6;
},
result:{
target:function(player,target){
if(player.countCards('h','sha')){
return get.effect(target,{name:'sha'},player,target);
}
else{
return get.effect(target,{name:'guohe_copy2'},player,target);
}
},
},
expose:0.4,
},
subSkill:{
sha:{
audio:'rejixu',
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha') return num+player.getStorage('rejixu_sha').length;
},
},
charlotte:true,
onremove:true,
trigger:{player:'useCard2'},
filter:function(event,player){
if(event.card.name!='sha') return false;
for(var target of player.getStorage('rejixu_sha')){
if(event.targets.contains(target)||!target.isIn()) return false;
if(lib.filter.targetEnabled2(event.card,player,target)) return true;
}
return false;
},
prompt:'是否发动【击虚】?',
prompt2:function(event,player){
var list=player.getStorage('rejixu_sha').filter(function(target){
if(event.targets.contains(target)||!target.isIn()) return false;
return lib.filter.targetEnabled2(event.card,player,target)
});
return '令'+get.translation(list)+'也成为'+get.translation(event.card)+'的目标';
},
logTarget:function(event,player){
return player.getStorage('rejixu_sha').filter(function(target){
if(event.targets.contains(target)||!target.isIn()) return false;
return lib.filter.targetEnabled2(event.card,player,target)
});
},
check:function(event,player){
var eff=0;
var list=player.getStorage('rejixu_sha').filter(function(target){
if(event.targets.contains(target)||!target.isIn()) return false;
return lib.filter.targetEnabled2(event.card,player,target)
});
for(var i of list) eff+=get.effect(i,event.card,player,player);
return eff>0;
},
content:function(){
var list=player.getStorage('rejixu_sha').filter(function(target){
if(trigger.targets.contains(target)||!target.isIn()) return false;
return lib.filter.targetEnabled2(trigger.card,player,target)
});
if(list.length>0){
trigger.targets.addArray(list);
game.log(list,'也成为了',trigger.card,'的目标');
}
},
},
},
},
//界刘封
rexiansi:{
inherit:'xiansi',
audio:'xiansi',
audioname:['re_liufeng'],
group:['rexiansi2','xiansix'],
},
rexiansi2:{
enable:'chooseToUse',
filter:function(event,player){
return player.getExpansions('xiansi').length>Math.max(0,player.hp)&&event.filterCard({name:'sha',isCard:true},player,event);
},
chooseButton:{
dialog:function(event,player){
return ui.create.dialog('陷嗣',player.getExpansions('xiansi'),'hidden');
},
backup:function(links,player){
return {
viewAs:{name:'sha',isCard:true},
filterCard:()=>false,
selectCard:-1,
card:links[0],
precontent:function(){
player.logSkill('rexiansi');
player.loseToDiscardpile(lib.skill.rexiansi2_backup.card);
delete event.result.skill;
},
};
},
prompt:()=>'请选择【杀】的目标',
},
ai:{
order:function(){
return get.order({name:'sha'})+0.6;
},
result:{player:1},
},
},
//界荀彧
oljieming:{
audio:2,
@ -1211,10 +1385,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.control=='选项一'){
player.chooseCard('h',true,function(card,player){
if(!game.checkMod(card,player,'unchanged','cardEnabled2',player)) return false;
return player.canUse(get.autoViewAs({name:'sha'},[hs]),_status.event.getTrigger().player,false);
return player.canUse(get.autoViewAs({name:'sha'},[card]),_status.event.getTrigger().player,false);
},'选择一张手牌当做【杀】对'+get.translation(trigger.player)+'使用').set('ai',function(card){
var player=_status.event.player;
return get.effect(_status.event.getTrigger().player,get.autoViewAs({name:'sha'},[hs]),player,player)/Math.max(1,get.value(card));
return get.effect(_status.event.getTrigger().player,get.autoViewAs({name:'sha'},[card]),player,player)/Math.max(1,get.value(card));
});
}
else{
@ -12443,6 +12617,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_xunyu:'界荀彧',
oljieming:'节命',
oljieming_info:'当你受到1点伤害后或死亡后你可令一名角色摸X张牌。然后若其手牌数大于X则其将手牌弃置至X张X为其体力上限且至多为5。',
re_liufeng:'界刘封',
rexiansi:'陷嗣',
rexiansi2:'陷嗣',
rexiansi_info:'①准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”。②当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用一张【杀】。③若你的“逆”数大于体力值,则你可以移去一张“逆”并视为使用一张【杀】。',
re_sp_taishici:'界SP太史慈',
re_sp_taishici_ab:'太史慈',
rejixu:"击虚",
rejixu_info:"出牌阶段限一次。若你有手牌则你可以选择至多X名角色令这些角色猜测你的手牌区中是否有【杀】。若你有【杀】则你本阶段使用【杀】的次数上限+Y且当你于本阶段内使用【杀】指定目标后你可以令这Y名角色也成为此【杀】的目标没有【杀】则你弃置这Y名角色的各一张牌。然后你摸Y张牌X为你的体力值Y为这些角色中猜错的角色数。",
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -6936,6 +6936,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (name=='neifa_basic')!=(get.type(cardx,player)=='basic')
}));
if(num>0) player.addMark(name,num,false);
else player.storage[name]=0;
}
},
ai:{

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
huzhao:['male','wei',3,['midu','xianwang']],
niufu:['male','qun','4/7',['dcxiaoxi','xiongrao']],
bianxi:['male','wei',4,['dunxi']],
xiahoulingnv:['female','wei',4,['fuping','weilie']],
dc_liuba:['male','shu',3,['dczhubi','dcliuzhuan']],
zhangxun:['male','qun',4,['suizheng']],
@ -171,10 +174,351 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp2_huangjia:['caomao','liubian','dc_liuyu'],
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger'],
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan','dc_jiling','dc_sunru','zhaoang','dc_wangchang','fengfang','zhangxun','xiahoulingnv','dc_liuba'],
sp_decade:['huaman','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','re_dongzhao','zhouyi','mamidi','dc_jiben','dc_luotong','guanning','dc_huangchengyan','dc_jiling','dc_sunru','zhaoang','dc_wangchang','fengfang','zhangxun','xiahoulingnv','dc_liuba','niufu','huzhao','bianxi'],
}
},
skill:{
//胡昭
midu:{
audio:2,
enable:'phaseUse',
usable:1,
chooseButton:{
dialog:function(event,player){
var dialog=ui.create.dialog('弥笃:选择要废除或恢复的装备栏','hidden');
dialog.classList.add('withbg');
dialog.noforcebutton=true;
var list1=[],list2=[];
for(var i=1;i<6;i++){
(player.isDisabled(i)?list2:list1).push(i);
}
var addTable=function(list){
var table=document.createElement('div');
table.classList.add('add-setting');
table.style.margin='0';
table.style.width='100%';
table.style.position='relative';
for(var i of list){
var td=ui.create.div('.shadowed.reduce_radius.pointerdiv.tdnode');
td.innerHTML='<span>'+get.translation('equip'+i)+'栏</span>';
td.link=i;
td.addEventListener(lib.config.touchscreen?'touchend':'click',ui.click.button);
for(var j in lib.element.button){
td[j]=lib.element.button[j];
}
table.appendChild(td);
dialog.buttons.add(td);
}
dialog.content.appendChild(table);
}
if(list1.length){
dialog.addText('未废除的装备栏');
addTable(list1);
}
if(list2.length){
dialog.addText('已废除的装备栏');
addTable(list2);
}
return dialog;
},
filter:function(button,player){
if(!ui.selected.buttons.length) return true;
if(player.isDisabled(ui.selected.buttons[0]).link) return false;
return !player.isDisabled(button.link);
},
check:function(button){
var player=_status.event.player;
if(player.isDisabled(button.link)){
if(player.hasCard(function(card){
return get.subtype(card)==('equip'+button.link);
},'hs')) return 15;
return 10;
}
if(player.isEmpty(button.link)&&!player.hasCard(function(card){
return get.subtype(card)==('equip'+button.link)&&player.canUse(card,player)&&get.effect(player,card,player,player)>0;
},'hs')) return 5;
return 0;
},
select:[1,5],
backup:function(links,player){
if(player.isDisabled(links[0])){
return {
audio:'midu',
selectCard:-1,
selectTarget:-1,
filterCard:()=>false,
filterTarget:()=>false,
equip:links[0],
content:function(){
player.enableEquip(lib.skill.midu_backup.equip);
player.addTempSkill('huomo',{player:'phaseBegin'});
},
}
}
else{
return {
audio:'midu',
selectCard:-1,
filterCard:()=>false,
filterTarget:true,
equip:links.sort(),
content:function(){
var list=lib.skill.midu_backup.equip;
for(var i of list) player.disableEquip(i);
target.draw(list.length)
},
ai:{
tag:{
draw:1,
},
result:{
target:2,
},
},
}
}
},
prompt:function(links,player){
if(player.isDisabled(links[0])){
return '恢复一个装备栏并获得〖活墨〗';
}
var numc=get.cnNumber(links.length);
return '废除'+numc+'个装备栏并令一名角色摸'+numc+'张牌';
},
},
derivation:'huomo',
ai:{
order:8,
result:{player:1},
},
subSkill:{backup:{}},
},
xianwang:{
mod:{
globalTo:function(source,player,distance){
var num=player.countDisabled();
if(num>0) return distance+(num>2?2:1);
},
},
},
//牛辅
dcxiaoxi:{
auto:2,
trigger:{player:'phaseUseBegin'},
forced:true,
filter:function(event,player){
return player.maxHp>1;
},
content:function(){
'step 0'
if(player.maxHp<=2) event._result={index:0};
else player.chooseControl('1点','2点').set('prompt','宵袭减少1或2点体力上限').set('ai',function(){
var player=_status.event.player;
if(!game.hasPlayer(function(current){
if(!player.inRange(current)||get.attitude(player,current)>=0) return false;
if(get.effect(current,{name:'shunshou_copy2'},player,player)>0&&current.countCards('h')+current.countCards('e',function(card){
return get.value(card,current)>0;
})>1) return true;
if(get.effect(current,{name:'sha'},player,player)>0&&current.countCards('hs','shan')+current.hp>1) return true;
})) return 0;
return 1;
});
'step 1'
player.loseMaxHp(1+result.index);
event.num=1+result.index;
'step 2'
if(!game.hasPlayer((current)=>player.inRange(current))) event.finish();
else player.chooseTarget('请选择【宵袭】的目标','然后你选择一项:⒈获得该角色的'+get.cnNumber(num)+'张牌。⒉视为对其使用'+get.cnNumber(num)+'张【杀】。',function(card,player,target){
return player.inRange(target);
},true).set('ai',function(target){
var player=_status.event.player;
if(get.attitude(player,target)>=0) return 0;
var eff1=get.effect(target,{name:'shunshou_copy2'},player,player);
if(eff1>0&&target.countCards('h')+target.countCards('e',function(card){
return get.value(card,target)>0;
})>1) eff1*=1.6;
var eff2=player.canUse('sha',target)?get.effect(target,{name:'sha'},player,player):0;
if(eff2>0&&target.countCards('hs','shan')+target.hp>1) eff2*=2;
return Math.max(eff1,eff2);
});
'step 3'
var target=result.targets[0];
player.line(target,'green');
event.target=target;
var bool1=target.countGainableCards(player,'he')>0;
var bool2=player.canUse('sha',target);
if(!bool1&&!bool2) event.finish();
else if(bool1&&bool2){
var str=get.translation(target),numx=get.cnNumber(num);
player.chooseControl().set('choiceList',[
'获得'+str+'的'+numx+'张牌',
'视为对'+str+'使用'+numx+'张【杀】',
]).set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().target;
var eff1=get.effect(target,{name:'shunshou_copy2'},player,player);
if(eff1>0&&target.countCards('h')+target.countCards('e',function(card){
return get.value(card,target)>0;
})>1) eff1*=1.6;
var eff2=player.canUse('sha',target)?get.effect(target,{name:'sha'},player,player):0;
if(eff2>0&&target.countCards('hs','shan')+target.hp>1) eff2*=2;
return eff1>eff2?0:1;
});
}
else event._result={index:bool1?0:1};
'step 4'
if(result.index==0){
player.gainPlayerCard(target,true,num,'he');
event.finish();
}
'step 5'
event.num--;
if(player.canUse('sha',target,false)){
player.useCard({name:'sha',isCard:true},target,false);
if(event.num>0) event.redo();
}
},
},
xiongrao:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
limited:true,
skillAnimation:true,
animationColor:'soil',
prompt:function(event,player){
var str='是否发动【熊扰】?';
str+=('(可摸'+get.cnNumber(Math.max(0,7-player.maxHp))+'张牌)');
return str;
},
logTarget:(event,player)=>game.filterPlayer((current)=>current!=player),
check:function(event,player){
return player.maxHp<=3;
},
content:function(){
player.awakenSkill('xiongrao');
game.countPlayer(function(current){
if(current!=player) current.addTempSkill('xiongrao_blocker');
});
var num=7-player.maxHp;
if(num>0){
player.gainMaxHp(num);
player.draw(num);
}
},
subSkill:{
blocker:{
charlotte:true,
init:function(player,skill){
player.addSkillBlocker(skill);
},
onremove:function(player,skill){
player.removeSkillBlocker(skill);
},
charlotte:true,
locked:true,
skillBlocker:function(skill,player){
var info=get.info(skill);
return info&&!info.charlotte&&!get.is.locked(skill)&&!info.limited&&!info.juexingji;
},
mark:true,
marktext:'扰',
intro:{
content:function(list,player,skill){
var storage=player.getSkills(null,false,false).filter(function(i){
return lib.skill.xiongrao_blocker.skillBlocker(i,player);
});
if(storage.length) return '失效技能:'+get.translation(storage);
return '无失效技能';
}
}
},
}
},
//卞喜
dunxi:{
audio:2,
trigger:{player:'useCardAfter'},
direct:true,
filter:function(event,player){
if(!get.tag(event.card,'damage')) return false;
for(var i of event.targets){
if(i!=player&&i.isIn()) return true;
}
return false;
},
content:function(){
'step 0'
var targets=trigger.targets.filter(function(current){
return current!=player&&current.isIn();
});
if(targets.length==1){
event.target=targets[0];
player.chooseBool(get.prompt('dunxi',event.target),'令'+get.translation(event.target)+'获得一枚“钝”标记').set('goon',get.attitude(player,event.target)<0).set('ai',()=>_status.event.goon);
}
else{
player.chooseTarget(get.prompt('dunxi'),'选择一名目标角色获得一枚“钝”标记',function(card,player,target){
return target!=player&&_status.event.getTrigger().targets.contains(target);
}).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(att>=0) return 0;
return -att/(1+target.hasMark('dunxi'));
});
}
'step 1'
if(result.bool){
var target=event.target||result.targets[0];
player.logSkill('dunxi',target);
target.addMark('dunxi',1);
game.delayx();
}
},
intro:{content:'mark',name2:'钝'},
group:'dunxi_random',
subSkill:{
random:{
audio:'dunxi',
trigger:{global:'useCardToPlayer'},
forced:true,
locked:false,
filter:function(event,player){
if(!event.player.hasMark('dunxi')||event.targets.length!=1||event.getParent()._dunxi) return false;
var type=get.type2(event.card,false);
return (type=='basic'||type=='trick');
},
logTarget:'player',
line:'fire',
content:function(){
'step 0'
trigger.getParent()._dunxi=true;
trigger.player.removeMark('dunxi',1);
var target=trigger.target;
event.target=target;
trigger.targets.remove(target);
trigger.getParent().triggeredTargets1.remove(target);
trigger.untrigger();
game.delayx();
'step 1'
var list;
if(get.type(event.card)!='delay') list=game.filterPlayer(function(current){
return lib.filter.targetEnabled2(trigger.card,trigger.player,current);
});
else list=game.filterPlayer(function(current){
return current.canAddJudge(event.card);
});
if(list.length) target=list.randomGet();
trigger.targets.push(target);
trigger.player.line(target,'fire');
game.log(trigger.card,'的目标被改为',target);
if(target==event.target){
trigger.player.loseHp();
var evt=trigger.getParent('phaseUse');
if(evt&&evt.player==trigger.player) evt.skipped=true;
var num=trigger.player.countMark('dunxi');
if(num>0) trigger.player.removeMark('dunxi',num);
}
},
},
},
},
//夏侯令女
fuping:{
audio:2,
@ -830,7 +1174,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'damageBegin1'},
filter:function(event,player){
var source=event.source;
if(!source||event.getParent().type!='card') return false;
if(!source||source!=_status.currentPhase||event.getParent().type!='card') return false;
return !source.hasHistory('sourceDamage',function(evt){
return evt.getParent().type=='card';
});
@ -5385,7 +5729,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'),'h');
return event.source&&player!=event.source&&player.hasCard((card)=>lib.filter.cardDiscardable(card,player,'rewangzu'),'h');
},
usable:1,
content:function(){
@ -5495,7 +5839,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.goon=!player.hasAllHistory('sourceDamage',function(evt){
return evt.player==trigger.player;
});
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt',get.prompt('shanshen')).set('prompt2','令〖隅泣〗中的一个数字+2'+(event.goon?'并回复1点体力':'')).set('ai',function(){
var list=lib.skill.yuqi.getInfo(player);
player.chooseControl('<span class=thundertext>蓝色('+list[0]+')</span>','<span class=firetext>红色('+list[1]+')</span>','<span class=greentext>绿色('+list[2]+')</span>','<span class=yellowtext>黄色('+list[3]+')</span>','cancel2').set('prompt',get.prompt('shanshen')).set('prompt2','令〖隅泣〗中的一个数字+2'+(event.goon?'并回复1点体力':'')).set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
@ -5524,7 +5869,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
content:function(){
'step 0'
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt',get.prompt('xianjing')).set('prompt2','令〖隅泣〗中的一个数字+1').set('ai',function(){
var list=lib.skill.yuqi.getInfo(player);
player.chooseControl('<span class=thundertext>蓝色('+list[0]+')</span>','<span class=firetext>红色('+list[1]+')</span>','<span class=greentext>绿色('+list[2]+')</span>','<span class=yellowtext>黄色('+list[3]+')</span>','cancel2').set('prompt',get.prompt('xianjing')).set('prompt2','令〖隅泣〗中的一个数字+1').set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
@ -5547,7 +5893,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else event.finish();
'step 2'
player.chooseControl('<span class=thundertext>蓝色</span>','<span class=firetext>红色</span>','<span class=greentext>绿色</span>','<span class=yellowtext>黄色</span>','cancel2').set('prompt','是否令〖隅泣〗中的一个数字+1').set('ai',function(){
var list=lib.skill.yuqi.getInfo(player);
player.chooseControl('<span class=thundertext>蓝色('+list[0]+')</span>','<span class=firetext>红色('+list[1]+')</span>','<span class=greentext>绿色('+list[2]+')</span>','<span class=yellowtext>黄色('+list[3]+')</span>','cancel2').set('prompt','是否令〖隅泣〗中的一个数字+1').set('ai',function(){
var player=_status.event.player,info=lib.skill.yuqi.getInfo(player);
if(info[0]<info[3]&&game.countPlayer(function(current){
return get.distance(player,current)<=info[0];
@ -10922,7 +11269,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true,
filter:function(event,player){
var num=1;
if(_status.currentPhase&&_status.currentPhase.group=='qun'&&player.hasZhuSkill('yuwei',_status.currentPhase)) num=2;
if(_status.currentPhase&&_status.currentPhase!=player&&_status.currentPhase.group=='qun'&&player.hasZhuSkill('yuwei',_status.currentPhase)) num=2;
return player!=event.player&&player.getHistory('gain',function(evt){
return evt.getParent(2).name=='shiyuan'&&evt.cards.length==(2+get.sgn(event.player.hp-player.hp));
}).length<num;
@ -16864,6 +17211,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fengfang:'冯方,其字不详,司隶人。初掌校事,监察京师及周边地区,刺探文武百官秘事。十常侍之乱后,董卓进京,掌控朝政。冯方认为他胸怀不臣之心,于是弃官携女儿冯妤至江南避祸。其后董卓果然乱政,京师之地生灵涂炭,更将洛阳付之一炬。冯方因其先见之明得以保全家人。<br>冯妤长大成人后,有倾国之貌。一日袁术登城观景,得见冯妤,心中非常喜欢,于是将其纳为夫人。冯方心忧自家女儿不谙世事,于是将可以让人更显妩媚的家传宝梳交给她,希望能借此使其获得袁术的宠爱。其后果然传来袁术偏爱冯夫人的消息,冯方因此宽心,接受了袁术的征辟,为其效力。然而好景不长,没过多久,冯妤自缢身亡的消息传出,冯方悲愤不已,弃官而走,自此销声匿迹。',
zhangxun:'张勋东汉末年军阀袁术帐下大将袁术称帝后受封大将军。初平四年公元193年袁术引兵入陈留被曹操、袁绍合力击败逃至雍丘。后入九江杀死扬州刺史陈温而自领之并任命张勋、桥蕤为大将。时孙策依附于袁术被表为怀义校尉张勋对其倾心敬服。袁术称帝后任命张勋为大将军攻打吕布大败而还。其后曹操又以袁术称帝为名南下进攻袁术闻之大惊即走度淮留张勋、桥蕤守蕲阳以拒曹。曹操破其军斩桥蕤张勋退走。建安四年公元199年袁术病死张勋率残军欲南投孙策途中被袁术旧部刘勋俘虏其后下落不明。',
xiahoulingnv:'夏侯令女字令女名不详。生卒年不详三国时期人物。夏侯文宁之女《三国演义》中为夏侯令之女曹文叔之妻。其事迹见于《三国志·魏书·诸夏侯曹传第九》裴松之注引皇甫谧《列女传》。而在《三国演义》中由于作者断句错误便认为“夏侯令女”是“夏侯令之女”之意见《三国演义》第107回“乃夏侯令女也”由其语气可推断。',
bianxi:'小说《三国演义》里的人物。汜水关守将,并州人氏。原是黄巾余党,后投曹操,拨来守汜水关。善使流星锤。在镇国寺设下伏兵欲谋害千里寻兄的关羽,但是寺中僧人普净暗示加以解救。最后被关羽斩杀。',
niufu:'牛辅,东汉末年武将,东汉相国董卓的女婿。曾任中郎将,征讨白波军,不能取胜。董卓被杀时,牛辅别屯于陕地。吕布派李肃前去征讨牛辅,被牛辅击败。后来,牛辅营中有士兵半夜背叛出逃,造成内乱,牛辅以为整营皆叛,于是带着金银珠宝,独与亲信胡赤儿等五六人逾城北渡河。赤儿等人以绳索系在牛辅腰间将其从城头放下,但赤儿等因为谋财而在离地面数丈高的地方就松开了绳子使得牛辅重重摔在地上腰部受伤,而后赤儿与诸胡人将牛辅斩首,将其首级送去长安。',
huzhao:'胡昭162年250年字孔明颍川治今河南禹州人。汉末三国时期隐士、书法家。胡昭善长隶书与钟繇、邯郸淳、卫觊、韦诞齐名。有“钟氏小巧胡氏豪放”之说世人并称“钟胡”。',
},
characterTitle:{
wulan:'#b对决限定武将',
@ -17828,6 +18178,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fuping_info:'①其他角色对你使用的结算结束后,若你未因此技能记录过此牌的名称且你有未废除的装备栏,则你可以废除一个装备栏,记录此牌的名称。②每回合每种牌名限一次。你可以将一张非基本牌当做〖浮萍①〗记录过的基本牌或锦囊牌使用或打出。③若你的所有装备栏均已被废除,则你使用牌无距离限制。',
weilie:'炜烈',
weilie_info:'每局游戏限X次。出牌阶段你可以弃置一张牌并选择一名已受伤的角色令该角色回复1点体力。然后若其体力值小于体力上限则其摸一张牌X为你〖浮萍①〗中的记录数+1。',
bianxi:'卞喜',
dunxi:'钝袭',
dunxi_info:'①当你使用具有伤害标签的牌结算结束后你可以令一名不为你的目标角色获得一枚“钝”。②有“钝”的角色使用基本牌或锦囊牌指定唯一目标时你令其移去一枚“钝”。系统随机选择一名角色并将此牌的目标改为该角色。若该角色和原目标相同则其移去所有“钝”失去1点体力。若其正处于出牌阶段内则结束此阶段。',
niufu:'牛辅',
dcxiaoxi:'宵袭',
dcxiaoxi_info:'锁定技。出牌阶段开始时你声明X并减X点体力上限X∈[1,2]。然后你选择一名攻击范围内的其他角色并选择一项⒈获得该角色的X张牌。⒉视为对其使用X张【杀】。',
xiongrao:'熊扰',
xiongrao_info:'限定技。准备阶段开始时你可以选择所有其他角色。这些角色本回合内所有不为锁定技、限定技、觉醒技的普通技能失效。然后你将体力上限增加至7点并摸X张牌X为你以此法增加的体力上限数。',
huzhao:'胡昭',
midu:'弥笃',
midu_info:'出牌阶段限一次。你可以选择一项:⒈废除任意个装备栏,并令一名角色摸等量的牌。⒉恢复一个已经被废除的装备栏,然后你获得〖活墨〗直到下回合开始。',
xianwang:'贤望',
xianwang_info:'锁定技。若你有被废除的装备栏,则其他角色至你的距离+1若废除的装备栏数大于2则改为距离+2。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -1562,6 +1562,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterReplace:{
duji:['re_duji','duji'],
sp_taishici:['re_sp_taishici','sp_taishici'],
},
translate:{
xinghuoliaoyuan:'星火燎原',

View File

@ -7365,67 +7365,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
huomo:{
audio:2,
group:['huomo_count','huomo_count2','huomo_use']
},
huomo2:{},
huomo_count:{
init:function(player){
player.storage.huomo={};
},
trigger:{global:'phaseBefore'},
silent:true,
content:function(){
player.storage.huomo={};
}
},
huomo_count2:{
trigger:{player:['useCard1']},
silent:true,
firstDo:true,
filter:function(event){
return get.type(event.card)=='basic';
},
content:function(){
if(!player.storage.huomo) player.storage.huomo={};
player.storage.huomo[trigger.card.name]=true;
}
},
huomo_use:{
autoname:['huzhao'],
enable:'chooseToUse',
onChooseToUse:function(event){
if(game.online||event.huomo_list) return;
var list=lib.skill.huomo.getUsed(event.player);
event.set('huomo_list',list);
},
getUsed:function(player){
var list=[];
player.getHistory('useCard',function(evt){
if(get.type(evt.card,null,false)=='basic') list.add(evt.card.name);
});
return list;
},
hiddenCard:function(player,name){
return (['sha','shan','tao','jiu'].contains(name)&&(!player.storage.huomo||!player.storage.huomo[name])&&player.hasCard(function(card){
if(get.type(name)!='basic') return false;
var list=lib.skill.huomo.getUsed(player);
if(list.contains(name)) return false;
return player.hasCard(function(card){
return get.color(card)=='black'&&get.type(card)!='basic';
},'he'));
},'eh');
},
filter:function(event,player){
if(!player.storage.huomo) player.storage.huomo={};
if((!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event))||
(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event))||
(!player.storage.huomo.shan&&event.filterCard({name:'shan'},player,event))||
(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event))){
return player.hasCard(function(card){
return get.color(card)=='black'&&get.type(card)!='basic';
},'he');
if(event.type=='wuxie'||!player.hasCard(function(card){
return get.color(card)=='black'&&get.type(card)!='basic';
},'eh')) return false;
var list=event.huomo_list||lib.skill.huomo.getUsed(player);
for(var name of lib.inpile){
if(get.type(name)!='basic'||list.contains(name)) continue;
var card={name:name,isCard:true};
if(event.filterCard(card,player,event)) return true;
if(name=='sha'){
for(var nature of lib.inpile_nature){
card.nature=nature;
if(event.filterCard(card,player,event)) return true;
}
}
}
return false;
},
chooseButton:{
dialog:function(event,player){
var list=[];
if(!player.storage.huomo.sha&&event.filterCard({name:'sha'},player,event)){
list.push(['基本','','sha']);
for(var j of lib.inpile_nature) list.push(['基本','','sha',j]);
var vcards=[];
var list=event.huomo_list||lib.skill.huomo.getUsed(player);
for(var name of lib.inpile){
if(get.type(name)!='basic'||list.contains(name)) continue;
var card={name:name,isCard:true};
if(event.filterCard(card,player,event)) vcards.push(['基本','',name]);
if(name=='sha'){
for(var nature of lib.inpile_nature){
card.nature=nature;
if(event.filterCard(card,player,event)) vcards.push(['基本','',name,nature]);
}
}
}
if(!player.storage.huomo.tao&&event.filterCard({name:'tao'},player,event)){
list.push(['基本','','tao']);
}
if(!player.storage.huomo.shan&&event.filterCard({name:'shan'},player,event)){
list.push(['基本','','shan']);
}
if(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event)){
list.push(['基本','','jiu']);
}
return ui.create.dialog('活墨',[list,'vcard'],'hidden');
return ui.create.dialog('活墨',[vcards,'vcard'],'hidden');
},
check:function(button){
var player=_status.event.player;
@ -7486,7 +7481,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:function(){
var player=_status.event.player;
var event=_status.event;
if(!player.storage.huomo.jiu&&event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0){
var list=lib.skill.huomo.getUsed(player);
if(!list.contains('jiu')&&event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0){
return 3.1;
}
return 2.9;
@ -7499,16 +7495,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.hasCard(function(card){
return get.color(card)=='black'&&get.type(card)!='basic';
},'he')){
if(!player.storage.huomo) player.storage.huomo={};
var list=lib.skill.huomo.getUsed(player);
if(tag=='respondSha'){
if(arg!='use') return false;
if(player.storage.huomo.sha) return false;
if(list.contains('sha')) return false;
}
else if(tag=='respondShan'){
if(player.storage.huomo.shan) return false;
}
else{
if(player.storage.huomo.tao&&player.storage.huomo.jiu) return false;
if(list.contains('shan')) return false;
}
}
else{
@ -11820,11 +11813,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xiansi:{
audio:2,
audioname:['re_liufeng'],
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt2('xiansi'),[1,2],function(card,player,target){
player.chooseTarget(get.prompt2(event.name),[1,2],function(card,player,target){
return target.countCards('he')>0;
},function(target){
return -get.attitude(_status.event.player,target);
@ -11832,7 +11826,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 1"
if(result.bool){
result.targets.sortBySeat();
player.logSkill('xiansi',result.targets);
player.logSkill(event.name,result.targets);
event.targets=result.targets;
}
else{
@ -11857,31 +11851,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:'expansion',
markcount:'expansion',
},
onremove:function(player,skill){
var cards=player.getExpansions(skill);
onremove:function(player){
var cards=player.getExpansions('xiansi');
if(cards.length) player.loseToDiscardpile(cards);
},
ai:{
threaten:2
},
global:'xiansi2'
global:'xiansi2',
group:'xiansix',
},
xiansix:{},
xiansi2:{
enable:'chooseToUse',
audio:2,
audio:true,
audioname:['re_liufeng'],
viewAs:{name:'sha',isCard:true},
filter:function(event,player){
return game.hasPlayer(function(current){
return current.hasSkill('xiansi')&&current.getExpansions('xiansi').length>1&&event.filterTarget({name:'sha'},player,current);
return current.hasSkill('xiansix')&&current.getExpansions('xiansi').length>1&&event.filterTarget({name:'sha'},player,current);
});
},
filterTarget:function(card,player,target){
var bool=false;
var players=ui.selected.targets.slice(0);
for(var i=0;i<players.length;i++){
if(players[i].hasSkill('xiansi')&&players[i].getExpansions('xiansi').length>1) bool=true;break;
if(players[i].hasSkill('xiansix')&&players[i].getExpansions('xiansi').length>1) bool=true;break;
}
if(!bool&&(!target.hasSkill('xiansi')||target.getExpansions('xiansi').length<=1)) return false;
if(!bool&&(!target.hasSkill('xiansix')||target.getExpansions('xiansi').length<=1)) return false;
return _status.event._backup.filterTarget.apply(this,arguments);
},
complexSelect:true,
@ -11896,11 +11893,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
log:false,
precontent:function(){
"step 0"
var targets=game.filterPlayer(function(current){
if(event.result.targets.contains(current)&&current.getExpansions('xiansi')){
return current.getExpansions('xiansi').length>1;
}
return false;
var targets=event.result.targets.filter(function(current){
return current.getExpansions('xiansi').length>1&&current.hasSkill('xiansix');
});
if(targets.length==1){
event.target=targets[0];
@ -12371,6 +12365,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yj_jushou:['re_jushou','xin_jushou','yj_jushou'],
guohuanghou:['re_guohuanghou','guohuanghou'],
liuchen:['re_liuchen','liuchen'],
liufeng:['re_liufeng','liufeng'],
},
translate:{
old_huaxiong:'华雄',
@ -12677,10 +12672,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qinwang2:'勤王',
qinwang_info:'主公技,当你需要使用或打出一张【杀】时,你可以弃置一张牌,然后视为你发动了〖激将①〗。若有角色响应,则该角色打出【杀】时摸一张牌。',
huomo:'活墨',
huomo_use:'活墨',
//huomo_use_backup:'活墨',
huomo_info:'当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,然后视为你使用了此基本牌',
huomo_use_info:'当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,然后视为你使用了此基本牌',
huomo_info:'当你需要使用一张本回合内未使用过的基本牌时,你可以将一张黑色非基本牌置于牌堆顶,视为使用此基本牌。',
zuoding:'佐定',
zuoding_info:'当其他角色于其回合内使用♠牌指定目标后,若本回合内没有角色受到过伤害,则你可以令其中一名目标角色摸一张牌',
taoxi:'讨袭',
@ -12740,6 +12732,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuce:'御策',
yuce_info:'当你受到伤害后,你可以展示一张手牌,并令伤害来源选择一项:弃置一张与此牌类型不同的手牌,或令你回复一点体力。',
xiansi:'陷嗣',
xiansix:'陷嗣',
xiansi_bg:'逆',
xiansi2:'陷嗣',
xiansi_info:'准备阶段开始时,你可以将一至两名角色的各一张牌置于你的武将牌上,称为“逆”;当一名角色需要对你使用【杀】时,其可以移去两张“逆”,然后视为对你使用了一张【杀】。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.116',
'v1.9.116.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -176,6 +176,16 @@ window.noname_asset_list=[
'audio/card/male/yuanjiao.mp3',
'audio/card/male/zhibi.mp3',
'audio/die/bianxi.mp3',
'audio/die/caoxiancaohua.mp3',
'audio/die/dc_liuba.mp3',
'audio/die/huzhao.mp3',
'audio/die/lukai.mp3',
'audio/die/niufu.mp3',
'audio/die/re_liufeng.mp3',
'audio/die/re_sp_taishici.mp3',
'audio/die/xiahoulingnv.mp3',
'audio/die/baosanniang.mp3',
'audio/die/beimihu.mp3',
'audio/die/bianfuren.mp3',
@ -996,6 +1006,42 @@ window.noname_asset_list=[
'audio/effect/tori_no_uta.mp3',
'audio/effect/win.mp3',
'audio/skill/dcliuzhuan1.mp3',
'audio/skill/dcliuzhuan2.mp3',
'audio/skill/dcxiaoxi1.mp3',
'audio/skill/dcxiaoxi2.mp3',
'audio/skill/dczhubi1.mp3',
'audio/skill/dczhubi2.mp3',
'audio/skill/dunxi1.mp3',
'audio/skill/dunxi2.mp3',
'audio/skill/fuping1.mp3',
'audio/skill/fuping2.mp3',
'audio/skill/huamu1.mp3',
'audio/skill/huamu2.mp3',
'audio/skill/jisi1.mp3',
'audio/skill/jisi2.mp3',
'audio/skill/liangyuan1.mp3',
'audio/skill/liangyuan2.mp3',
'audio/skill/lkbushi1.mp3',
'audio/skill/lkbushi2.mp3',
'audio/skill/lkzhongzhuang1.mp3',
'audio/skill/lkzhongzhuang2.mp3',
'audio/skill/midu1.mp3',
'audio/skill/midu2.mp3',
'audio/skill/qianmeng1.mp3',
'audio/skill/qianmeng2.mp3',
'audio/skill/rejixu1.mp3',
'audio/skill/rejixu2.mp3',
'audio/skill/weilie1.mp3',
'audio/skill/weilie2.mp3',
'audio/skill/xiansi_re_liufeng1.mp3',
'audio/skill/xiansi_re_liufeng2.mp3',
'audio/skill/xianwang1.mp3',
'audio/skill/xianwang2.mp3',
'audio/skill/xiongrao1.mp3',
'audio/skill/xiongrao2.mp3',
'audio/skill/aichen1.mp3',
'audio/skill/aichen2.mp3',
'audio/skill/anguo1.mp3',
@ -5024,6 +5070,12 @@ window.noname_asset_list=[
'image/card/zhuangshu_trick.png',
'image/card/zhuangshu_equip.png',
'image/character/bianxi.jpg',
'image/character/huzhao.jpg',
'image/character/niufu.jpg',
'image/character/re_liufeng.jpg',
'image/character/re_sp_taishici.jpg',
'image/character/sp_jiben.jpg',
'image/character/shenpei.jpg',
'image/character/re_menghuo.jpg',
'image/character/re_zhurong.jpg',

View File

@ -4631,7 +4631,7 @@
init:true,
onclick:function(bool){
game.saveConfig('change_identity',bool,this._link.config.mode);
if(!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(get.mode()!='identity'||!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
var dialog;
if(ui.cheat2&&ui.cheat2.backup) dialog=ui.cheat2.backup;
else dialog=_status.event.dialog;
@ -4647,7 +4647,7 @@
init:true,
onclick:function(bool){
game.saveConfig('change_choice',bool,this._link.config.mode);
if(!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(get.mode()!='identity'||!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(!ui.cheat&&get.config('change_choice')) ui.create.cheat();
else if(ui.cheat&&!get.config('change_choice')){
ui.cheat.close();
@ -4670,7 +4670,7 @@
init:false,
onclick:function(bool){
game.saveConfig('continue_game',bool,this._link.config.mode);
if(get.config('continue_game')){
if(get.config('continue_game')&&get.mode()=='identity'){
if(!ui.continue_game&&_status.over&&!_status.brawl&&!game.no_continue_game){
ui.continue_game=ui.create.control('再战',game.reloadCurrent);
}
@ -4687,7 +4687,7 @@
init:true,
onclick:function(bool){
game.saveConfig('dierestart',bool,this._link.config.mode);
if(get.config('dierestart')){
if(get.config('dierestart')&&get.mode()=='identity'){
if(!ui.restart&&game.me.isDead()&&!_status.connectMode){
ui.restart=ui.create.control('restart',game.reload);
}
@ -4703,7 +4703,7 @@
init:false,
onclick:function(bool){
game.saveConfig('revive',bool,this._link.config.mode);
if(get.config('revive')){
if(get.config('revive')&&get.mode()=='identity'){
if(!ui.revive&&game.me.isDead()){
ui.revive=ui.create.control('revive',ui.click.dierevive);
}
@ -5050,7 +5050,7 @@
init:true,
onclick:function(bool){
game.saveConfig('free_choose',bool,this._link.config.mode);
if(!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(get.mode()!='guozhan'||!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(!ui.cheat2&&get.config('free_choose')) ui.create.cheat2();
else if(ui.cheat2&&!get.config('free_choose')){
ui.cheat2.close();
@ -5069,7 +5069,7 @@
init:true,
onclick:function(bool){
game.saveConfig('change_identity',bool,this._link.config.mode);
if(!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(get.mode()!='guozhan'||!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
var dialog;
if(ui.cheat2&&ui.cheat2.backup) dialog=ui.cheat2.backup;
else dialog=_status.event.dialog;
@ -5085,7 +5085,7 @@
init:true,
onclick:function(bool){
game.saveConfig('change_choice',bool,this._link.config.mode);
if(!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(get.mode()!='guozhan'||!_status.event.getParent().showConfig&&!_status.event.showConfig) return;
if(!ui.cheat&&get.config('change_choice')) ui.create.cheat();
else if(ui.cheat&&!get.config('change_choice')){
ui.cheat.close();
@ -5109,7 +5109,7 @@
intro:'游戏结束后可选择用相同的武将再进行一局游戏',
onclick:function(bool){
game.saveConfig('continue_game',bool,this._link.config.mode);
if(get.config('continue_game')){
if(get.config('continue_game')&&get.mode()=='guozhan'){
if(!ui.continue_game&&_status.over&&!_status.brawl&&!game.no_continue_game){
ui.continue_game=ui.create.control('再战',game.reloadCurrent);
}
@ -5125,7 +5125,7 @@
init:true,
onclick:function(bool){
game.saveConfig('dierestart',bool,this._link.config.mode);
if(get.config('dierestart')){
if(get.config('dierestart')&&get.mode()=='guozhan'){
if(!ui.restart&&game.me.isDead()&&!_status.connectMode){
ui.restart=ui.create.control('restart',game.reload);
}
@ -5141,7 +5141,7 @@
init:false,
onclick:function(bool){
game.saveConfig('revive',bool,this._link.config.mode);
if(get.config('revive')){
if(get.config('revive')&&get.mode()=='guozhan'){
if(!ui.revive&&game.me.isDead()){
ui.revive=ui.create.control('revive',ui.click.dierevive);
}
@ -7663,9 +7663,10 @@
if(!alerted&&window.bannedExtensions.contains(lib.config.extensions[i])){
alerted=true;
alert('读取某些扩展时出现问题。');
};
}
var extcontent=localStorage.getItem(lib.configprefix+'extension_'+lib.config.extensions[i]);
if(extcontent){
var backup_onload=lib.init.onload;
_status.evaluatingExtension=true;
try{
eval(extcontent);
@ -7673,6 +7674,7 @@
catch(e){
console.log(e);
}
lib.init.onload=backup_onload;
_status.evaluatingExtension=false;
}
else if(lib.config.mode!='connect'||(!localStorage.getItem(lib.configprefix+'directstart')&&show_splash)){
@ -7682,8 +7684,12 @@
}
else{
if(lib.config.mode!='connect'||(!localStorage.getItem(lib.configprefix+'directstart')&&show_splash)){
var alerted=false;
for(var i=0;i<lib.config.extensions.length;i++){
if(window.bannedExtensions.contains(lib.config.extensions[i])) continue;
if(!alerted&&window.bannedExtensions.contains(lib.config.extensions[i])){
alerted=true;
alert('读取某些扩展时出现问题。');
}
game.import('extension',{name:lib.config.extensions[i]});
}
}
@ -19560,13 +19566,13 @@
var ais=lib.skill[card].check||function(){return 0};
return ais();
}
var addi=(get.value(card)>=8&&get.type(card)!='equip')?-10:0;
var addi=(get.value(card)>=8&&get.type(card)!='equip')?-6:0;
if(card.name=='du') addi-=3;
var source=_status.event.source;
var player=_status.event.player;
var getn=function(card){
if(player.hasSkill('tianbian')&&get.suit(card)=='heart') return 13;
return get.number(card);
if(player.hasSkill('tianbian')&&get.suit(card)=='heart') return 13*(event.small?-1:1);
return get.number(card)*(event.small?-1:1);
}
if(source&&source!=player&&get.attitude(player,source)>1){
return -getn(card)-get.value(card)/2+addi;
@ -19585,12 +19591,12 @@
}
var player=get.owner(card);
var getn=function(card){
if(player.hasSkill('tianbian')&&get.suit(card)=='heart') return 13;
return get.number(card);
if(player.hasSkill('tianbian')&&get.suit(card)=='heart') return 13*(event.small?-1:1);
return get.number(card)*(event.small?-1:1);
}
var event=_status.event.getParent();
var to=(player==event.player?event.target:event.player);
var addi=(get.value(card)>=8&&get.type(card)!='equip')?-10:0;
var addi=(get.value(card)>=8&&get.type(card)!='equip')?-6:0;
if(card.name=='du') addi-=5;
if(player==event.player){
if(get.attitude(player,to)>0&&event.small){
@ -19599,7 +19605,7 @@
return getn(card)-get.value(card)/2+addi;
}
else{
if(get.attitude(player,to)>0&&!event.small){
if(get.attitude(player,to)>0){
return -getn(card)-get.value(card)/2+addi;
}
return getn(card)-get.value(card)/2+addi;
@ -29992,7 +29998,9 @@
},
import:function(type,content){
if(type=='extension'){
var backup_onload=lib.init.onload;
game.loadExtension(content);
lib.init.onload=backup_onload;
}
else{
if(!lib.imported[type]){
@ -36640,7 +36648,7 @@
roundNumber:0,
shuffleNumber:0,
};
window['b'+'ann'+'e'+'dE'+'x'+'ten'+'s'+'i'+'o'+'ns']=['\u5047装\u65e0敌'];
window['b'+'ann'+'e'+'dE'+'x'+'ten'+'s'+'i'+'o'+'ns']=[];
var ui={
updates:[],
thrown:[],
@ -51931,7 +51939,7 @@
case 'event': return get.eventInfoOL(item);
default:
if(typeof level!='number'){
level=5;
level=8;
}
if(Array.isArray(item)){
if(level==0){
@ -53553,7 +53561,7 @@
if(lib.config.show_favourite&&lib.character[node.name]&&game.players.contains(node)&&
(!modepack||!modepack[node.name])&&(!simple||get.is.phoneLayout())){
var addFavourite=ui.create.div('.text.center.pointerdiv');
addFavourite.link=node.link;
addFavourite.link=node.name;
if(lib.config.favouriteCharacter.contains(node.name)){
addFavourite.innerHTML='移除收藏';
}

View File

@ -1,10 +1,8 @@
window.noname_update={
version:'1.9.116.1',
update:'1.9.116',
version:'1.9.116.2',
update:'1.9.116.1',
changeLog:[
'派对浪客、樱庭星罗入选稿公布',
'OL曹宪曹华、十周年刘巴、陆凯、夏侯令女',
'花色字体显示优化',
'十周年卞喜、胡昭、牛辅、界刘封、界SP太史慈',
'技能调整与bug修复',
],
files:[

BIN
image/character/bianxi.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
image/character/huzhao.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
image/character/niufu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 73 KiB