ナービィ
|
@ -81,7 +81,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
usable:1,
|
||||
updateUsable:'phaseUse',
|
||||
global:'icesha_skill',
|
||||
range:{attack:1},
|
||||
range:function(card,player,target){
|
||||
return player.inRange(target);
|
||||
},
|
||||
selectTarget:1,
|
||||
cardPrompt:function(card){
|
||||
if(card.nature=='stab') return '出牌阶段,对你攻击范围内的一名角色使用。其须使用一张【闪】,且在此之后需弃置一张手牌(没有则不弃)。否则你对其造成1点伤害。';
|
||||
|
|
|
@ -265,11 +265,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
type:'trick',
|
||||
filterTarget:function(card,player,target){
|
||||
if(target==player) return false;
|
||||
if(!ui.selected.targets.length) return target.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return target.countCards('h')>0&&game.hasPlayer(function(current){
|
||||
return target.canCompare(current);
|
||||
});
|
||||
return ui.selected.targets[0].canCompare(target);
|
||||
},
|
||||
filterAddedTarget:function(card,player,target,preTarget){
|
||||
return target!=player&&preTarget.canCompare(target);
|
||||
},
|
||||
enable:function(){
|
||||
return game.countPlayer()>2;
|
||||
},
|
||||
|
@ -287,6 +290,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
complexSelect:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!event.addedTarget||!target.canCompare(event.addedTarget)){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
target.chooseToCompare(event.addedTarget);
|
||||
'step 1'
|
||||
if(!result.tie){
|
||||
|
@ -308,7 +315,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.discardPlayerCard(player);
|
||||
target.line(player);
|
||||
},
|
||||
selectTarget:2,
|
||||
ai:{
|
||||
order:5,
|
||||
value:[7,1],
|
||||
|
|
416
character/diy.js
|
@ -28,7 +28,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_harukakanata:['female','key',3,['haruka_shuangche']],
|
||||
key_inari:['female','key',2,['inari_baiwei','inari_huhun']],
|
||||
key_shiina:['female','key',3,['shiina_qingshen','shiina_feiyan']],
|
||||
key_sunohara:['double','key','3/4',['sunohara_chengshuang','sunohara_tiaoyin','sunohara_jianren']],
|
||||
key_sunohara:['double','key','3/3/2',['sunohara_chengshuang','sunohara_tiaoyin','sunohara_jianren']],
|
||||
key_rin:['female','key',3,['rin_baoqiu']],
|
||||
key_sasami:['female','key',3,['sasami_miaobian']],
|
||||
key_akane:['female','key',3,['akane_jugu','akane_quanqing','akane_yifu'],['zhu']],
|
||||
|
@ -73,6 +73,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_mia:['female','key',3,['mia_shihui','mia_qianmeng']],
|
||||
key_kano:['female','key',3,['kano_liezhen','kano_poyu']],
|
||||
db_key_liyingxia:['female','shu',3,['liyingxia_sanli','liyingxia_zhenjun','liyingxia_wumai'],['doublegroup:shu:key']],
|
||||
key_erika:['female','key','3/3/2',['erika_shisong','erika_yousheng']],
|
||||
key_satomi:['female','key',3,['satomi_luodao','satomi_daohai']],
|
||||
|
||||
key_kud:['female','key',3,['kud_qiaoshou','kud_buhui']],
|
||||
key_misuzu:['female','key',3,['misuzu_hengzhou','misuzu_nongyin','misuzu_zhongxing']],
|
||||
|
@ -198,7 +200,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
diy_xushi:["diy_feishi","diy_hanlong","diy_liufu","diy_liuyan","diy_liuzan","diy_tianyu","diy_xizhenxihong","diy_yangyi","diy_zaozhirenjun"],
|
||||
diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"],
|
||||
diy_noname:['noname'],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia"],
|
||||
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha","key_shizuku","key_hiroto","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi"],
|
||||
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
|
||||
},
|
||||
},
|
||||
|
@ -220,7 +222,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yanghu:'羊祜(221年-278年12月27日),字叔子,泰山郡南城县人。西晋时期杰出的战略家、政治家、文学家,曹魏上党太守羊衜的儿子,名儒蔡邕的女儿蔡文姬的外甥。出身“泰山羊氏”,博学能文,清廉正直。曹魏时期,接受公车征辟,出任中书郎,迁给事黄门侍郎。姐姐嫁给大将军司马师,投靠司马氏家族,仕途平步青云。魏元帝曹奂即位,出任秘书监、相国从事中郎、中领军,统领御林军,兼管内外政事,册封钜平县子,迁。西晋建立后,迁中军将军、散骑常侍、郎中令,册封钜平侯。泰始五年(269年),出任车骑将军、荆州都督,加任开府仪同三司坐镇襄阳,屯田兴学,以德怀柔,深得军民之心;扩充军备,训练士兵,全力准备灭亡孙吴,累迁征南大将军,册封南城侯。咸宁四年,去世,临终前举荐杜预接任职务,获赠侍中、太傅,谥号为“成”。唐宋时期,配享武庙。',
|
||||
},
|
||||
characterTitle:{
|
||||
db_key_liyingxia:'#rヘブンバーンズレッド',
|
||||
key_satomi:'#rHeaven Burns Red',
|
||||
key_erika:'#rHeaven Burns Red',
|
||||
db_key_liyingxia:'#rHeaven Burns Red',
|
||||
key_kano:'#bAIR',
|
||||
key_mia:'#bLoopers',
|
||||
key_kotomi:'#gClannad',
|
||||
|
@ -509,6 +513,216 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_lucia:['key_shizuru'],
|
||||
},
|
||||
skill:{
|
||||
satomi_luodao:{
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
logTarget:'target',
|
||||
filter:function(event,player){
|
||||
return event.card.name=='sha'&&event.target.countCards('h')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var target=trigger.target;
|
||||
event.target=target;
|
||||
target.showHandcards(get.translation(player)+'对'+get.translation(target)+'发动了【落刀】');
|
||||
'step 1'
|
||||
if(target.hasCard(function(card){
|
||||
return get.name(card,target)=='shan';
|
||||
},'h')){
|
||||
player.discardPlayerCard(target,true,'h','visible').set('filterButton',function(button){
|
||||
return get.name(button.link)=='shan';
|
||||
});
|
||||
}
|
||||
else if(player.countCards('he')>0) player.chooseToDiscard('he',true);
|
||||
},
|
||||
},
|
||||
satomi_daohai:{
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
filter:function(event,player){
|
||||
return player.hasHistory('lose',function(evt){
|
||||
return evt.type=='discard'&&evt.cards2.length>0;
|
||||
})&&player.hasUseTarget({name:'wugu'});
|
||||
},
|
||||
check:function(event,player){
|
||||
return player.getUseValue({name:'wugu'})+player.getUseValue({name:'lebu'})>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseUseTarget('wugu',true);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var cards=[];
|
||||
player.getHistory('gain',function(evt){
|
||||
if(evt.getParent().name=='wugu'&&evt.getParent(4)==event){
|
||||
cards.addArray(evt.cards);
|
||||
}
|
||||
});
|
||||
cards=cards.filter(function(card){
|
||||
return player.getCards('h').contains(card)&&game.checkMod(card,player,'unchanged','cardEnabled2',player);
|
||||
});
|
||||
if(cards.length){
|
||||
player.chooseCardTarget({
|
||||
prompt:'是否将获得的牌当做【乐不思蜀】使用?',
|
||||
filterCard:function(card){
|
||||
return _status.event.cards.contains(card);
|
||||
},
|
||||
cards:cards,
|
||||
filterTarget:function(card,player,target){
|
||||
var card=get.autoViewAs({name:'lebu'},ui.selected.cards);
|
||||
return player.canUse(card,target);
|
||||
},
|
||||
ai1:()=>1,
|
||||
ai2:function(target){
|
||||
var player=_status.event.player,card=get.autoViewAs({name:'lebu'},ui.selected.cards);
|
||||
return get.effect(target,{name:'lebu'},player,player);
|
||||
},
|
||||
})
|
||||
}
|
||||
else event.finish();
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
player.useCard({name:'lebu'},result.cards,result.targets[0]);
|
||||
}
|
||||
},
|
||||
},
|
||||
erika_shisong:{
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
if(player!=_status.currentPhase) return false;
|
||||
var index=player.getHistory('useCard').indexOf(event),history=player.actionHistory;
|
||||
for(var i=history.length-2;i>=0;i--){
|
||||
if(history[i].isMe){
|
||||
var evt=history[i].useCard[index];
|
||||
return evt&&get.type2(evt.card)==get.type(event.card);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
},
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.hujia;
|
||||
},
|
||||
},
|
||||
},
|
||||
erika_yousheng:{
|
||||
dutySkill:true,
|
||||
group:['erika_yousheng_achieve','erika_yousheng_fail','erika_yousheng_mamori'],
|
||||
trigger:{global:'useCardToTarget'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return player.getStorage('erika_yousheng').contains(event.target)&&
|
||||
(event.card.name=='sha'||(get.type2(event.card,false)=='trick'&&get.tag(event.card,'damage')>0))&&
|
||||
(player.countMark('erika_yousheng_ruka')+1)<=player.countCards('he');
|
||||
},
|
||||
intro:{
|
||||
content:'已保护$',
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var num=(player.countMark('erika_yousheng_ruka')+1);
|
||||
player.chooseToDiscard('he',num,get.prompt('erika_yousheng',trigger.target),'弃置'+(num)+'张牌,并转移'+get.translation(trigger.card)).logSkill=['erika_yousheng',trigger.target];
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var ruka=trigger.target,evt=trigger.getParent();
|
||||
evt.targets.remove(ruka);
|
||||
evt.triggeredTargets2.remove(ruka);
|
||||
evt.targets.push(player);
|
||||
evt.triggeredTargets2.push(player);
|
||||
player.addTempSkill('erika_yousheng_ruka');
|
||||
var str='erika_yousheng_'+player.playerid;
|
||||
if(!evt[str]) evt[str]=[];
|
||||
evt[str].add(ruka);
|
||||
}
|
||||
},
|
||||
subSkill:{
|
||||
achieve:{
|
||||
trigger:{player:'changeHujiaAfter'},
|
||||
forced:true,
|
||||
skillAnimation:'legend',
|
||||
animationColor:'water',
|
||||
filter:function(event,player){
|
||||
return player.storage.erika_yousheng&&event.num<0&&!player.hujia;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('erika_yousheng');
|
||||
game.log(player,'成功完成使命');
|
||||
var list=[player];
|
||||
list.addArray(player.storage.erika_yousheng);
|
||||
list.sortBySeat();
|
||||
list=list.filter(function(current){
|
||||
return current.isAlive();
|
||||
});
|
||||
player.line(list,'green');
|
||||
game.asyncDraw(list,3);
|
||||
'step 1'
|
||||
game.delayx();
|
||||
},
|
||||
},
|
||||
fail:{
|
||||
trigger:{global:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.getStorage('erika_yousheng').contains(event.player)&&event.card&&(event.card.name=='sha'||(get.type2(event.card,false)=='trick'&&get.tag(event.card,'damage')>0));
|
||||
},
|
||||
content:function(){
|
||||
player.awakenSkill('erika_yousheng');
|
||||
game.log(player,'使命失败');
|
||||
var num=player.hujia;
|
||||
if(num>0){
|
||||
player.changeHujia(-num);
|
||||
player.chooseToDiscard(num,true,'he');
|
||||
}
|
||||
},
|
||||
},
|
||||
mamori:{
|
||||
trigger:{global:'roundStart'},
|
||||
skillAnimation:true,
|
||||
animationColor:'wood',
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('erika_yousheng'),[1,2],lib.filter.notMe,'选择至多两名其他角色。你减2点体力上限并获得3点护甲。').set('ai',function(ruka){
|
||||
return -1;
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('erika_yousheng_mamori',result.targets);
|
||||
player.awakenSkill('erika_yousheng_mamori');
|
||||
player.markAuto('erika_yousheng',result.targets);
|
||||
player.loseMaxHp(2);
|
||||
player.changeHujia(3);
|
||||
}
|
||||
},
|
||||
},
|
||||
ruka:{
|
||||
trigger:{global:'useCardAfter'},
|
||||
direct:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
return event['erika_yousheng_'+player.playerid]&&event.cards.filterInD().length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('是否令一名原目标角色获得'+get.translation(trigger.cards.filterInD())+'?',function(card,player,target){
|
||||
return _status.event.targets.contains(target);
|
||||
}).set('targets',trigger['erika_yousheng_'+player.playerid]);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var ruka=result.targets[0];
|
||||
player.line(ruka,'green');
|
||||
ruka.gain(trigger.cards.filterInD(),'gain2');
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
liyingxia_sanli:{
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
forced:true,
|
||||
|
@ -4603,16 +4817,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
frequent:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(player.isUnderControl()){
|
||||
game.modeSwapPlayer(player);
|
||||
}
|
||||
var num=1+player.countCards('e');
|
||||
var cards=get.cards(num);
|
||||
event.cards=cards;
|
||||
var switchToAuto=function(){
|
||||
_status.imchoosing=false;
|
||||
if(event.dialog) event.dialog.close();
|
||||
if(event.control) event.control.close();
|
||||
game.cardsGotoOrdering(cards);
|
||||
var next=player.chooseToMove();
|
||||
next.set('list',[
|
||||
['牌堆顶',cards],
|
||||
['牌堆底'],
|
||||
]);
|
||||
next.set('prompt','幻梦:点击将牌移动到牌堆顶或牌堆底');
|
||||
next.processAI=function(list){
|
||||
var cards=list[0][1],player=_status.event.player;
|
||||
var top=[];
|
||||
var judges=player.getCards('j');
|
||||
var stopped=false;
|
||||
|
@ -4641,149 +4856,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
bottom=cards;
|
||||
for(var i=0;i<top.length;i++){
|
||||
ui.cardPile.insertBefore(top[i],ui.cardPile.firstChild);
|
||||
}
|
||||
for(i=0;i<bottom.length;i++){
|
||||
ui.cardPile.appendChild(bottom[i]);
|
||||
}
|
||||
player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(bottom.length)+'下');
|
||||
game.log(player,'将'+get.cnNumber(top.length)+'张牌置于牌堆顶');
|
||||
game.delay(2);
|
||||
};
|
||||
var chooseButton=function(online,player,cards){
|
||||
var event=_status.event;
|
||||
player=player||event.player;
|
||||
cards=cards||event.cards;
|
||||
event.top=[];
|
||||
event.bottom=[];
|
||||
event.status=true;
|
||||
event.dialog=ui.create.dialog('按顺序选择置于牌堆顶的牌(先选择的在上)',cards);
|
||||
for(var i=0;i<event.dialog.buttons.length;i++){
|
||||
event.dialog.buttons[i].classList.add('pointerdiv');
|
||||
}
|
||||
event.switchToAuto=function(){
|
||||
event._result='ai';
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
_status.imchoosing=false;
|
||||
},
|
||||
event.control=ui.create.control('ok','pileTop','pileBottom',function(link){
|
||||
var event=_status.event;
|
||||
if(link=='ok'){
|
||||
if(online){
|
||||
event._result={
|
||||
top:[],
|
||||
bottom:[]
|
||||
}
|
||||
for(var i=0;i<event.top.length;i++){
|
||||
event._result.top.push(event.top[i].link);
|
||||
}
|
||||
for(var i=0;i<event.bottom.length;i++){
|
||||
event._result.bottom.push(event.bottom[i].link);
|
||||
}
|
||||
}
|
||||
else{
|
||||
var i;
|
||||
for(i=0;i<event.top.length;i++){
|
||||
ui.cardPile.insertBefore(event.top[i].link,ui.cardPile.firstChild);
|
||||
}
|
||||
for(i=0;i<event.bottom.length;i++){
|
||||
ui.cardPile.appendChild(event.bottom[i].link);
|
||||
}
|
||||
for(i=0;i<event.dialog.buttons.length;i++){
|
||||
if(event.dialog.buttons[i].classList.contains('glow')==false&&
|
||||
event.dialog.buttons[i].classList.contains('target')==false)
|
||||
ui.cardPile.appendChild(event.dialog.buttons[i].link);
|
||||
}
|
||||
player.popup(get.cnNumber(event.top.length)+'上'+get.cnNumber(event.cards.length-event.top.length)+'下');
|
||||
game.log(player,'将'+get.cnNumber(event.top.length)+'张牌置于牌堆顶');
|
||||
}
|
||||
event.dialog.close();
|
||||
event.control.close();
|
||||
game.resume();
|
||||
_status.imchoosing=false;
|
||||
}
|
||||
else if(link=='pileTop'){
|
||||
event.status=true;
|
||||
event.dialog.content.childNodes[0].innerHTML='按顺序选择置于牌堆顶的牌';
|
||||
}
|
||||
else{
|
||||
event.status=false;
|
||||
event.dialog.content.childNodes[0].innerHTML='按顺序选择置于牌堆底的牌';
|
||||
}
|
||||
})
|
||||
for(var i=0;i<event.dialog.buttons.length;i++){
|
||||
event.dialog.buttons[i].classList.add('selectable');
|
||||
}
|
||||
event.custom.replace.button=function(link){
|
||||
var event=_status.event;
|
||||
if(link.classList.contains('target')){
|
||||
link.classList.remove('target');
|
||||
event.top.remove(link);
|
||||
}
|
||||
else if(link.classList.contains('glow')){
|
||||
link.classList.remove('glow');
|
||||
event.bottom.remove(link);
|
||||
}
|
||||
else if(event.status){
|
||||
link.classList.add('target');
|
||||
event.top.unshift(link);
|
||||
}
|
||||
else{
|
||||
link.classList.add('glow');
|
||||
event.bottom.push(link);
|
||||
}
|
||||
}
|
||||
event.custom.replace.window=function(){
|
||||
for(var i=0;i<_status.event.dialog.buttons.length;i++){
|
||||
_status.event.dialog.buttons[i].classList.remove('target');
|
||||
_status.event.dialog.buttons[i].classList.remove('glow');
|
||||
_status.event.top.length=0;
|
||||
_status.event.bottom.length=0;
|
||||
}
|
||||
}
|
||||
game.pause();
|
||||
game.countChoose();
|
||||
};
|
||||
event.switchToAuto=switchToAuto;
|
||||
|
||||
if(event.isMine()){
|
||||
chooseButton();
|
||||
event.finish();
|
||||
}
|
||||
else if(event.isOnline()){
|
||||
event.player.send(chooseButton,true,event.player,event.cards);
|
||||
event.player.wait();
|
||||
game.pause();
|
||||
}
|
||||
else{
|
||||
event.switchToAuto();
|
||||
event.finish();
|
||||
return [top,bottom];
|
||||
}
|
||||
"step 1"
|
||||
if(event.result=='ai'||!event.result){
|
||||
event.switchToAuto();
|
||||
var top=result.moved[0];
|
||||
var bottom=result.moved[1];
|
||||
top.reverse();
|
||||
for(var i=0;i<top.length;i++){
|
||||
ui.cardPile.insertBefore(top[i],ui.cardPile.firstChild);
|
||||
}
|
||||
else{
|
||||
var top=event.result.top||[];
|
||||
var bottom=event.result.bottom||[];
|
||||
for(var i=0;i<top.length;i++){
|
||||
ui.cardPile.insertBefore(top[i],ui.cardPile.firstChild);
|
||||
}
|
||||
for(i=0;i<bottom.length;i++){
|
||||
ui.cardPile.appendChild(bottom[i]);
|
||||
}
|
||||
for(i=0;i<event.cards.length;i++){
|
||||
if(!top.contains(event.cards[i])&&!bottom.contains(event.cards[i])){
|
||||
ui.cardPile.appendChild(event.cards[i]);
|
||||
}
|
||||
}
|
||||
player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(event.cards.length-top.length)+'下');
|
||||
game.log(player,'将'+get.cnNumber(top.length)+'张牌置于牌堆顶');
|
||||
game.updateRoundNumber();
|
||||
game.delay(2);
|
||||
for(i=0;i<bottom.length;i++){
|
||||
ui.cardPile.appendChild(bottom[i]);
|
||||
}
|
||||
player.popup(get.cnNumber(top.length)+'上'+get.cnNumber(bottom.length)+'下');
|
||||
game.log(player,'将'+get.cnNumber(top.length)+'张牌置于牌堆顶');
|
||||
game.updateRoundNumber();
|
||||
game.delayx();
|
||||
},
|
||||
ai:{
|
||||
threaten:1.2
|
||||
|
@ -5224,6 +5312,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
shizuru_benzhan:{
|
||||
trigger:{global:['useCard','respond']},
|
||||
usable:1,
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return Array.isArray(event.respondTo)&&event.respondTo[0]!=event.player&&[event.respondTo[0],event.player].contains(player);
|
||||
|
@ -5264,7 +5353,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return _status.event.choice;
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
else{
|
||||
player.storage.counttrigger[event.name]--;
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
player.addExpose(0.2);
|
||||
if(event.type){
|
||||
|
@ -5601,6 +5693,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
kanade_benzhan:{
|
||||
trigger:{global:['useCard','respond']},
|
||||
direct:true,
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return Array.isArray(event.respondTo)&&event.respondTo[0]!=event.player&&[event.respondTo[0],event.player].contains(player);
|
||||
},
|
||||
|
@ -5640,7 +5733,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return _status.event.choice;
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
else{
|
||||
player.storage.counttrigger[event.name]--;
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
player.addExpose(0.2);
|
||||
if(event.type){
|
||||
|
@ -15245,6 +15341,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
key_mia:'藤川米娅',
|
||||
key_kano:'雾岛佳乃',
|
||||
db_key_liyingxia:'李映夏',
|
||||
key_erika:'苍井えりか',
|
||||
key_satomi:'藏里见',
|
||||
lucia_duqu:'毒躯',
|
||||
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
|
||||
lucia_zhenren:'振刃',
|
||||
|
@ -15435,7 +15533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
kanade_mapo:'麻婆',
|
||||
kanade_mapo_info:'你可以将一张♥牌当做【麻婆豆腐】使用。你使用的【麻婆豆腐】可以多指定一个目标。',
|
||||
kanade_benzhan:'奔战',
|
||||
kanade_benzhan_info:'当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
|
||||
kanade_benzhan_info:'每回合限一次。当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
|
||||
mio_tuifu:'推腐',
|
||||
mio_tuifu_info:'锁定技,当一名角色对一名同性角色造成伤害时,你摸一张牌。',
|
||||
mio_tishen:'替身',
|
||||
|
@ -15455,7 +15553,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shizuru_nianli:'念力',
|
||||
shizuru_nianli_info:'每轮限一次,你可以展示一张♦/♣/♥/♠手牌,然后视为使用一张不计入次数限制和记录的雷【杀】/【闪】/【桃】/【无懈可击】。',
|
||||
shizuru_benzhan:'奔战',
|
||||
shizuru_benzhan_info:'当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
|
||||
shizuru_benzhan_info:'每回合限一次。当你使用或打出牌响应其他角色,或其他角色使用或打出牌响应你后,若此牌为:基本牌,你可令一名角色弃置两张牌或令一名角色摸两张牌;非基本牌,你可对一名角色造成1点伤害或令一名其他角色回复1点体力。',
|
||||
shiorimiyuki_banyin:'伴音',
|
||||
shiorimiyuki_banyin_info:'当你受到伤害或回复体力后,你可令一名其他角色回复1点体力。',
|
||||
shiorimiyuki_tingxian:'铤险',
|
||||
|
@ -15600,6 +15698,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
liyingxia_zhenjun_info:'键势力技。结束阶段,你可以令至多X名角色各摸一张牌,且这些角色于自己的下个回合内第一次造成的伤害+1(X为你本回合内使用【杀】和伤害性锦囊牌的次数)。',
|
||||
liyingxia_wumai:'武脉',
|
||||
liyingxia_wumai_info:'蜀势力技。一轮游戏开始时,你可以选择获得其中一个未选择过的技能直到本轮结束:〖八阵〗/〖集智〗/〖观星〗/〖游龙〗。若均已选择过,则你可以摸X张牌(X为场上已受伤的角色数且至多为3)。',
|
||||
erika_shisong:'识诵',
|
||||
erika_shisong_info:'锁定技。①你的手牌上限+X(X为你的护甲数)。②当你于回合内使用第X张牌时,若此牌与你上回合使用的第X张牌类型相同,则你摸一张牌。',
|
||||
erika_yousheng:'佑生',
|
||||
erika_yousheng_info:'使命技。①限定技。一轮游戏开始时,你可以选择至多两名其他角色。你减2点体力上限并增加3点护甲。②当你因〖佑生①〗选择的角色成为【杀】或伤害类锦囊牌的目标时,你可以弃置X张牌并将此目标转移给自己(X为你本轮内发动过〖佑生②〗的次数)。此牌结算结束后,你可令一名原目标角色获得此牌。③成功:当你失去最后的护甲后,若你已发动过〖佑生①〗,则你和所有〖佑生①〗选择的角色各摸三张牌。④失败:当一名〖佑生①〗选择的角色因【杀】或伤害类锦囊牌而受到伤害时,你失去所有护甲并弃置等量的牌。',
|
||||
erika_yousheng_append:'<span style="font-family: yuanli">Death is not the end of life, but the completion of life.</span>',
|
||||
satomi_luodao:'落刀',
|
||||
satomi_luodao_info:'当你使用【杀】指定目标后,你可以展示目标角色的所有手牌。若其中:有【闪】,则你弃置其中的一张【闪】;没有【闪】,则你弃置一张牌。',
|
||||
satomi_daohai:'稻海',
|
||||
satomi_daohai_info:'结束阶段,若你本回合内弃置过牌,则你可以视为使用一张【五谷丰登】。然后你可以将你于此【五谷丰登】中获得的牌当做【乐不思蜀】使用。',
|
||||
satomi_daohai_append:'<span style="font-family: yuanli">五穀豊穣、刈り入れ時だね!</span>',
|
||||
|
||||
key_kud:'库特莉亚芙卡',
|
||||
kud_qiaoshou:'巧手',
|
||||
|
|
|
@ -17,7 +17,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobile_sunben:["re_sunben"],
|
||||
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
|
||||
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
|
||||
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin"],
|
||||
mobile_yijiang1:["re_xusheng","re_lingtong","ol_yujin","re_wuguotai"],
|
||||
mobile_yijiang2:["old_bulianshi","xin_liaohua","xin_caozhang","re_liubiao","re_handang","xin_chengpu","xin_gongsunzan","re_zhonghui"],
|
||||
mobile_yijiang3:["xin_jianyong","xin_zhuran","xin_guohuai","xin_panzhangmazhong","xin_fuhuanghou","re_yufan"],
|
||||
mobile_yijiang4:["xin_zhoucang","xin_caifuren","xin_guyong","xin_sunluban","xin_caozhen"],
|
||||
|
@ -27,6 +27,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
re_wuguotai:['female','wu',3,['reganlu','buyi']],
|
||||
xin_sunxiu:['male','wu',3,['mobileyanzhu','mobilexingxue','zhaofu'],['zhu']],
|
||||
sp_maojie:['male','wei',3,['bingqing','yingfeng']],
|
||||
sp_zhujun:['male','qun',4,['yangjie','zjjuxiang','houfeng']],
|
||||
|
@ -606,6 +607,62 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
reganlu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
audio:2,
|
||||
selectTarget:2,
|
||||
delay:0,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length==0) return true;
|
||||
if(ui.selected.targets[0].countCards('e')==0&&target.countCards('e')==0) return false;
|
||||
return target==player||ui.selected.targets[0]==player||Math.abs(ui.selected.targets[0].countCards('e')-target.countCards('e'))<=player.maxHp-player.hp;
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
content:function(){
|
||||
targets[0].swapEquip(targets[1]);
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
threaten:function(player,target){
|
||||
return 0.8*Math.max(1+target.maxHp-target.hp);
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var list1=[];
|
||||
var list2=[];
|
||||
var num=player.maxHp-player.hp;
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(get.attitude(player,players[i])>0) list1.push(players[i]);
|
||||
else if(get.attitude(player,players[i])<0) list2.push(players[i]);
|
||||
}
|
||||
list1.sort(function(a,b){
|
||||
return a.countCards('e')-b.countCards('e');
|
||||
});
|
||||
list2.sort(function(a,b){
|
||||
return b.countCards('e')-a.countCards('e');
|
||||
});
|
||||
var delta;
|
||||
for(var i=0;i<list1.length;i++){
|
||||
for(var j=0;j<list2.length;j++){
|
||||
delta=list2[j].countCards('e')-list1[i].countCards('e');
|
||||
if(delta<=0) continue;
|
||||
if(delta<=num||list1[i]==player||list2[j]==player){
|
||||
if(target==list1[i]||target==list2[j]){
|
||||
return get.attitude(player,target);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
//孙休
|
||||
mobilexingxue:{
|
||||
audio:2,
|
||||
|
@ -1276,7 +1333,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
trigger:{player:['phaseZhunbeiBegin','phaseJieshuBegin']},
|
||||
forced:true,
|
||||
zhuanhuanji:true,
|
||||
zhuanhuanji:'number',
|
||||
filter:function(event,player){
|
||||
return (player.countMark('spshidi')%2)==['phaseJieshu','phaseZhunbei'].indexOf(event.name);
|
||||
},
|
||||
|
@ -3238,6 +3295,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.draw(3).gaintag=['poxiang'];
|
||||
player.addTempSkill('poxiang_mark')
|
||||
'step 1'
|
||||
var cards=player.getExpansions('jueyong');
|
||||
if(cards.length) player.loseToDiscardpile(cards);
|
||||
player.unmarkSkill('jueyong');
|
||||
player.loseHp();
|
||||
'step 2'
|
||||
|
@ -4281,7 +4340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
unequip:true,
|
||||
respondSha:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(tag=='unequip') return arg.card&&arg.card.storage&&arg.card.storage.dbchongjian;
|
||||
if(tag=='unequip') return player.group=='wu'&&arg.card&&arg.card.storage&&arg.card.storage.dbchongjian;
|
||||
return player.group=='wu'&&arg=='use'&&player.hasCard(function(card){
|
||||
return get.type(card)=='equip';
|
||||
},'hes');
|
||||
|
@ -11281,7 +11340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
forced:true,
|
||||
audio:'relihuo',
|
||||
filter:function(event,player){
|
||||
return event.getParent(2).relihuo==true;
|
||||
return event.getParent(2).relihuo==true&&event.player.isLinked();
|
||||
},
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
|
@ -16205,7 +16264,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rehuaibi_info:'主公技,锁定技,你的手牌上限+X(X为你因〖邀虎〗选择势力的角色数量)。',
|
||||
simafu:'司马孚',
|
||||
xunde:'勋德',
|
||||
xunde_info:'一名角色受到伤害后,若你至其的距离为1,则你可判定。若判定结果:大于5,你令该角色获得判定牌;小于7,你令伤害来源弃置一张牌。',
|
||||
xunde_info:'一名角色受到伤害后,若你至其的距离不大于1,则你可判定。若判定结果:大于5,你令该角色获得判定牌;小于7,你令伤害来源弃置一张牌。',
|
||||
chenjie:'臣节',
|
||||
chenjie_info:'一名角色的判定牌生效前,你可打出一张花色相同的牌。系统将你打出的牌作为新判定牌,将原判定牌置入弃牌堆。然后你摸两张牌。',
|
||||
mayuanyi:'马元义',
|
||||
|
@ -16331,6 +16390,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
mobileyanzhu_info:'出牌阶段限一次,你可以令一名有牌的其他角色选择一项:①你获得其装备区里所有的牌,然后你失去技能〖宴诛〗。②你获得其一张牌。',
|
||||
mobilexingxue:'兴学',
|
||||
mobilexingxue_info:'结束阶段开始时,你可以令至多X名角色依次摸一张牌并将一张牌置于牌堆顶(X为你的体力值,若你未拥有〖宴诛〗,则将X改为你的体力上限,且其可以改为将一张牌交给一名其他目标角色)。',
|
||||
re_wuguotai:'手杀吴国太',
|
||||
reganlu:'甘露',
|
||||
reganlu_info:'出牌阶段限一次,你可以选择装备区牌数之差的绝对值不大于X的两名角色或包含你在内的两名角色,然后交换这两名角色装备区内的牌。(X为你已损失的体力值)',
|
||||
taoqian:'手杀陶谦',
|
||||
miheng:'手杀祢衡',
|
||||
|
||||
mobile_standard:'手杀异构·标准包',
|
||||
mobile_shenhua:'手杀异构·神话再临',
|
||||
|
|
|
@ -29,6 +29,7 @@ window.noname_character_rank={
|
|||
'ns_zhangwei',
|
||||
'wanglang',
|
||||
'caojinyu',
|
||||
'zhangmancheng',
|
||||
'key_mio',
|
||||
'key_midori',
|
||||
'key_yuri',
|
||||
|
@ -498,6 +499,8 @@ window.noname_character_rank={
|
|||
'sp_zhujun',
|
||||
're_guohuanghou',
|
||||
'tw_liuhong',
|
||||
're_zhangbao',
|
||||
're_dengzhi',
|
||||
],
|
||||
bp:[
|
||||
'chess_diaochan',
|
||||
|
@ -747,6 +750,11 @@ window.noname_character_rank={
|
|||
'ol_xuhuang',
|
||||
'ol_zhuling',
|
||||
'tw_zangba',
|
||||
're_miheng',
|
||||
'fengxi',
|
||||
'tw_chengpu',
|
||||
'key_satomi',
|
||||
'key_erika',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -966,6 +974,7 @@ window.noname_character_rank={
|
|||
'zhaoyan',
|
||||
'huojun',
|
||||
'tw_caocao',
|
||||
'xin_wuguotai',
|
||||
],
|
||||
bm:[
|
||||
'diy_xizhenxihong',
|
||||
|
@ -1301,6 +1310,7 @@ window.noname_character_rank={
|
|||
'shen_xunyu',
|
||||
'tw_gexuan',
|
||||
'fengfangnv',
|
||||
'zhangmancheng',
|
||||
'key_tomoya',
|
||||
'key_masato',
|
||||
'key_shiorimiyuki',
|
||||
|
@ -1319,6 +1329,8 @@ window.noname_character_rank={
|
|||
'key_tenzen',
|
||||
'key_kotarou',
|
||||
'key_kyou',
|
||||
'key_erika',
|
||||
'key_satomi',
|
||||
'noname',
|
||||
],
|
||||
epic:[
|
||||
|
@ -1864,6 +1876,8 @@ window.noname_character_rank={
|
|||
're_guohuanghou',
|
||||
'tw_huojun',
|
||||
'zhaoyan',
|
||||
're_miheng',
|
||||
'tw_chengpu',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
|
|
@ -68,7 +68,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
|
||||
ol_pangtong:['male','shu',3,['ollianhuan','olniepan'],[]],
|
||||
re_zhangyi:['male','shu',5,['rewurong','reshizhi']],
|
||||
re_wuguotai:['female','wu',3,['reganlu','buyi']],
|
||||
xin_wuguotai:['female','wu',3,['xinganlu','xinbuyi']],
|
||||
re_gaoshun:['male','qun',4,['rexianzhen','rejinjiu']],
|
||||
re_caocao:['male','wei',4,['new_rejianxiong','rehujia'],['zhu']],
|
||||
re_simayi:['male','wei',3,['refankui','reguicai']],
|
||||
|
@ -143,6 +143,72 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_xushu:['zhaoyun','sp_zhugeliang'],
|
||||
},
|
||||
skill:{
|
||||
xinganlu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
audio:2,
|
||||
selectTarget:2,
|
||||
delay:0,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length==0) return true;
|
||||
if(ui.selected.targets[0].countCards('e')==0&&target.countCards('e')==0) return false;
|
||||
return true;
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
targets[0].swapEquip(targets[1]);
|
||||
'step 1'
|
||||
game.delayx();
|
||||
var num=Math.abs(targets[0].countCards('e')-targets[1].countCards('e'));
|
||||
if(num>player.getDamagedHp()) player.chooseToDiscard('h',2,true);
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
expose:0.2,
|
||||
threaten:function(player,target){
|
||||
return 0.8*Math.max(1+target.maxHp-target.hp);
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(!ui.selected.targets.length) return -get.value(target.getCards('e'),target);
|
||||
var target2=ui.selected.targets[0];
|
||||
var eff_target=(get.value(target2.getCards('e'),target)-get.value(target.getCards('e'),target));
|
||||
if(get.sgn(eff_target)==get.sgn(-get.value(target2.getCards('e'),target2))) return 0;
|
||||
return eff_target;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
xinbuyi:{
|
||||
audio:2,
|
||||
trigger:{global:'dying'},
|
||||
filter:function(event,player){
|
||||
return event.player.countCards('h')>0;
|
||||
},
|
||||
check:function(event,player){
|
||||
return get.attitude(player,event.player)>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(player==trigger.player) player.chooseCard('h',true).set('ai',function(card){
|
||||
if(get.type(card)!='basic') return 100-get.value(card);
|
||||
return 0;
|
||||
});
|
||||
else player.choosePlayerCard('h',trigger.player,true);
|
||||
'step 1'
|
||||
var card=result.cards[0],target=trigger.player;
|
||||
player.showCards(card,get.translation(player)+'对'+(player==target?'自己':get.translation(target))+'发动了【补益】');
|
||||
if(get.type(card,target)!='basic'){
|
||||
target.discard(card);
|
||||
target.recover();
|
||||
if(target.countCards('h')==1) target.draw();
|
||||
}
|
||||
},
|
||||
logTarget:'player',
|
||||
},
|
||||
rejiaozhao:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
|
@ -2669,8 +2735,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
charlotte:true,
|
||||
onremove:true,
|
||||
mod:{
|
||||
attackFrom:function(){
|
||||
return -Infinity;
|
||||
attackRangeBase:function(){
|
||||
return Infinity;
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(card.name=='sha'&&player.storage.xingongji2.contains(get.suit(card))) return Infinity;
|
||||
|
@ -4523,8 +4589,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
regongji:{
|
||||
mod:{
|
||||
attackFrom:function(player){
|
||||
if(player.getEquip(3)||player.getEquip(4)||player.getEquip(6)) return -Infinity
|
||||
attackRangeBase:function(player){
|
||||
if(player.getEquip(3)||player.getEquip(4)||player.getEquip(6)) return Infinity;
|
||||
},
|
||||
},
|
||||
enable:'phaseUse',
|
||||
|
@ -5954,62 +6020,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
},
|
||||
reganlu:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
audio:2,
|
||||
selectTarget:2,
|
||||
delay:0,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length==0) return true;
|
||||
if(ui.selected.targets[0].countCards('e')==0&&target.countCards('e')==0) return false;
|
||||
return target==player||ui.selected.targets[0]==player||Math.abs(ui.selected.targets[0].countCards('e')-target.countCards('e'))<=player.maxHp-player.hp;
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
content:function(){
|
||||
targets[0].swapEquip(targets[1]);
|
||||
},
|
||||
ai:{
|
||||
order:10,
|
||||
threaten:function(player,target){
|
||||
return 0.8*Math.max(1+target.maxHp-target.hp);
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var list1=[];
|
||||
var list2=[];
|
||||
var num=player.maxHp-player.hp;
|
||||
var players=game.filterPlayer();
|
||||
for(var i=0;i<players.length;i++){
|
||||
if(get.attitude(player,players[i])>0) list1.push(players[i]);
|
||||
else if(get.attitude(player,players[i])<0) list2.push(players[i]);
|
||||
}
|
||||
list1.sort(function(a,b){
|
||||
return a.countCards('e')-b.countCards('e');
|
||||
});
|
||||
list2.sort(function(a,b){
|
||||
return b.countCards('e')-a.countCards('e');
|
||||
});
|
||||
var delta;
|
||||
for(var i=0;i<list1.length;i++){
|
||||
for(var j=0;j<list2.length;j++){
|
||||
delta=list2[j].countCards('e')-list1[i].countCards('e');
|
||||
if(delta<=0) continue;
|
||||
if(delta<=num||list1[i]==player||list2[j]==player){
|
||||
if(target==list1[i]||target==list2[j]){
|
||||
return get.attitude(player,target);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
sishu:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
|
@ -7924,7 +7934,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
trigger:{player:'useCard1'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return (!event.audioed||!player.hasSkill('new_repaoxiao2'))&&event.card.name=='sha';
|
||||
return event.card.name=='sha'&&(!event.audioed||!player.hasSkill('new_repaoxiao2'));
|
||||
},
|
||||
content:function(){
|
||||
trigger.audioed=true;
|
||||
|
@ -10640,6 +10650,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(player.storage.chengzhang) return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。';
|
||||
return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面并获得牌堆中的一张随机锦囊。';
|
||||
},
|
||||
rejiaozhao:function(player){
|
||||
return ['出牌阶段限一次。你可以展示一张手牌,并令一名距离你最近的角色选择一种基本牌或普通锦囊牌的牌名。你可将此牌当做其声明的牌使用直到此阶段结束(你不是此牌的合法目标)。','出牌阶段限一次。你可以将一张手牌当做一张基本牌或普通锦囊牌使用(你不是此牌的合法目标)。','出牌阶段每种类型各限一次。你可以将一张手牌当做一张基本牌或普通锦囊牌使用。'][player.countMark('redanxin')];
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
re_zhangliao:'界张辽',
|
||||
|
@ -10902,10 +10915,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rezhijian_info:'出牌阶段,你可以将手牌中的一张装备牌置于一名其他角色装备区里(不得替换原装备),然后摸一张牌。当你使用装备牌时,你可以摸一张牌。',
|
||||
refangquan:'放权',
|
||||
refangquan_info:'你可跳过你的出牌阶段,若如此做,你本回合的手牌上限为你的体力上限,且回合结束时,你可以弃置一张手牌并令一名其他角色进行一个额外的回合。',
|
||||
re_wuguotai:'界吴国太',
|
||||
re_gaoshun:'界高顺',
|
||||
reganlu:'甘露',
|
||||
reganlu_info:'出牌阶段限一次,你可以选择装备区牌数之差的绝对值不大于X的两名角色或包含你在内的两名角色,然后交换这两名角色装备区内的牌。(X为你已损失的体力值)',
|
||||
repojun:'破军',
|
||||
repojun2:'破军',
|
||||
repojun3:'破军',
|
||||
|
@ -11185,9 +11195,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
rejiaozhao_lv2:'矫诏·升级 Lv.1',
|
||||
rejiaozhao_lv2_info:'出牌阶段限一次。你可以将一张手牌当做一张基本牌或普通锦囊牌使用(你不是此牌的合法目标)。',
|
||||
rejiaozhao_lv3:'矫诏·升级 Lv.2',
|
||||
rejiaozhao_lv3_info:'出牌阶段每种类型各限一次。你可以将一张手牌当做一张基本牌或普通锦囊牌使用(你不是此牌的合法目标)。',
|
||||
rejiaozhao_lv3_info:'出牌阶段每种类型各限一次。你可以将一张手牌当做一张基本牌或普通锦囊牌使用。',
|
||||
redanxin:'殚心',
|
||||
redanxin_info:'当你受到伤害后,你可以摸一张牌并升级〖矫诏〗。',
|
||||
xin_wuguotai:'界吴国太',
|
||||
xinganlu:'甘露',
|
||||
xinganlu_info:'出牌阶段限一次。你可以令两名角色交换装备区内的牌,然后若这两名角色装备区内牌数差的绝对值大于你已损失的体力值,则你弃置两张手牌。',
|
||||
xinbuyi:'补益',
|
||||
xinbuyi_info:'一名角色进入濒死状态时,你可展示其一张手牌。若此牌不为基本牌,则其弃置此牌并回复1点体力。若其以此法弃置的牌移动前为其的唯一一张手牌,则其摸一张牌。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -3372,6 +3372,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dialog:function(event,player){
|
||||
return ui.create.dialog('急袭',player.getExpansions('tuntian'),'hidden');
|
||||
},
|
||||
filter:function(button,player){
|
||||
var card=button.link;
|
||||
if(!game.checkMod(card,player,'unchanged','cardEnabled2',player)) return false;
|
||||
var evt=_status.event.getParent();
|
||||
return evt.filterCard(get.autoViewAs({name:'shunshou'},[card]),player,evt)
|
||||
},
|
||||
backup:function(links,player){
|
||||
var skill=_status.event.buttoned;
|
||||
return {
|
||||
|
@ -6031,8 +6037,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
locked:false,
|
||||
mod:{
|
||||
attackFrom:function(from,to,distance){
|
||||
if(get.zhu(from,'shouyue')) return distance-1;
|
||||
attackRange:function(player,distance){
|
||||
if(get.zhu(player,'shouyue')) return distance+1;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
|
|
@ -74,7 +74,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yangxiu:['male','wei',3,['jilei','danlao']],
|
||||
chenlin:['male','wei',3,['bifa','songci']],
|
||||
caohong:['male','wei',4,['yuanhu']],
|
||||
xiahouba:['male','shu',4,['baobian']],
|
||||
xiahouba:['male','shu',4,['rebaobian']],
|
||||
yuanshu:['male','qun',4,['yongsi','weidi']],
|
||||
sp_diaochan:['female','qun',3,['lihun','rebiyue']],
|
||||
sp_zhaoyun:['male','qun',3,['ollongdan','chongzhen']],
|
||||
|
@ -478,6 +478,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//十周年夏侯霸
|
||||
rebaobian:{
|
||||
audio:2,
|
||||
trigger:{player:'damageEnd'},
|
||||
filter:function(event,player){
|
||||
for(var i of lib.skill.rebaobian.derivation){
|
||||
if(!player.hasSkill(i,null,null,false)) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
for(var i of lib.skill.rebaobian.derivation){
|
||||
if(!player.hasSkill(i,null,null,false)){
|
||||
player.addSkillLog(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
maixie:true,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'damage')&&!target.hasSkill('oltiaoxin',null,null,false)){
|
||||
if(!target.hasFriend()) return;
|
||||
if(target.hp>=4) return [0,1];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
derivation:['oltiaoxin','new_repaoxiao','xinshensu'],
|
||||
},
|
||||
//范强张达
|
||||
yuanchou:{
|
||||
audio:2,
|
||||
|
@ -3779,16 +3811,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return 5.1-get.value(card);
|
||||
},
|
||||
filterCard:{color:'black'},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.hp<=player.hp) return false;
|
||||
return lib.filter.filterTarget.apply(this,arguments);
|
||||
},
|
||||
position:'hes',
|
||||
audio:'niluan',
|
||||
viewAsFilter:function(player){
|
||||
return player.countCards('hes',lib.skill.spniluan.filterCard)>0&&game.hasPlayer(function(current){
|
||||
return current.hp>player.hp&&player.canUse('sha',current);
|
||||
});
|
||||
return player.countCards('hes',lib.skill.spniluan.filterCard)>0;
|
||||
},
|
||||
group:'spniluan_clear',
|
||||
},
|
||||
|
@ -3820,12 +3846,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return 7-get.value(card);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.countCards('h')<=player.countCards('h')) return false;
|
||||
if(target.countCards('h')<player.countCards('h')) return false;
|
||||
return lib.filter.filterTarget.apply(this,arguments);
|
||||
},
|
||||
viewAsFilter:function(player){
|
||||
return player.countCards('hes',lib.skill.spweiwu.filterCard)>0&&game.hasPlayer(function(current){
|
||||
return current.countCards('h')>player.countCards('h')&&player.canUse('shunshou',current);
|
||||
return current.countCards('h')>=player.countCards('h')&&player.canUse('shunshou',current);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -14116,7 +14142,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 2"
|
||||
player.removeSkill('bifa2');
|
||||
},
|
||||
marktext:'檄',
|
||||
intro:{
|
||||
markcount:1,
|
||||
name:'笔伐',
|
||||
content:'已成为〖笔伐〗的目标',
|
||||
},
|
||||
|
@ -15888,13 +15916,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
|
||||
xujing:['xujing','sp_xujing'],
|
||||
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
|
||||
dengzhi:['ol_dengzhi','dengzhi'],
|
||||
dengzhi:['ol_dengzhi','re_dengzhi','dengzhi'],
|
||||
wangrong:['wangrong','ol_wangrong'],
|
||||
zongyu:['sp_zongyu','zongyu'],
|
||||
ol_dongzhao:['ol_dongzhao','tw_dongzhao'],
|
||||
mayunlu:['tw_mayunlu','mayunlu'],
|
||||
zhuling:['ol_zhuling','zhuling'],
|
||||
zangba:['tw_zangba','zangba'],
|
||||
zhangbao:['zhangbao','re_zhangbao'],
|
||||
},
|
||||
translate:{
|
||||
"xinfu_lingren":"凌人",
|
||||
|
@ -16001,7 +16030,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhugedan:'诸葛诞',
|
||||
sp_machao:'SP马超',
|
||||
sp_jiangwei:'SP姜维',
|
||||
zhangbao:'张宝',
|
||||
zhangbao:'OL张宝',
|
||||
yangxiou:'杨修',
|
||||
shixie:'士燮',
|
||||
mayunlu:'马云騄',
|
||||
|
@ -16037,8 +16066,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dongyun:'董允',
|
||||
mazhong:'马忠',
|
||||
huangfusong:'皇甫嵩',
|
||||
miheng:'祢衡',
|
||||
taoqian:'陶谦',
|
||||
wangyun:'王允',
|
||||
sunqian:'孙乾',
|
||||
xizhicai:'戏志才',
|
||||
|
@ -16595,6 +16622,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yongsi_info:'锁定技,摸牌阶段,你多摸X张牌。弃牌阶段开始时,你弃置X张牌。(X为场上势力数)',
|
||||
yicong_info:'锁定技,当你的体力值大于2时,你计算与其他角色的距离时-1;当你的体力值不大于2时,其他角色计算与你的距离时+1。',
|
||||
baobian_info:'锁定技,若你的体力值为3或更少,你视为拥有技能〖挑衅〗;若你的体力值为2或更少;你视为拥有技能〖咆哮〗;若你的体力值为1,你视为拥有技能〖神速〗。',
|
||||
rebaobian:'豹变',
|
||||
rebaobian_info:'锁定技。当你受到伤害后,你获得以下技能中第一个未拥有的技能:〖挑衅〗/〖咆哮〗/〖神速〗。',
|
||||
bingzhao:'秉诏',
|
||||
bingzhao_info:'主公技,游戏开始时,你选择一个其他势力。当你对该势力的角色发动〖骨疽〗时,其可令你额外摸一张牌。',
|
||||
sunshao:'孙邵',
|
||||
|
@ -16628,9 +16657,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
shanzhuan:'擅专',
|
||||
shanzhuan_info:'当你对其他角色造成伤害后,若其判定区没有牌,则你你可以将其的一张牌置于其的判定区。若此牌不为延时锦囊牌且此牌为:红色,此牌视为【乐不思蜀】;黑色,此牌视为【兵粮寸断】。回合结束时,若你本回合内未造成伤害,你可摸一张牌。',
|
||||
spniluan:'逆乱',
|
||||
spniluan_info:'出牌阶段,你可以将一张黑色牌当做【杀】对体力值大于你的角色使用。此【杀】使用结算完成后,若你未因此【杀】造成过伤害,则你令此【杀】不计入使用次数。',
|
||||
spniluan_info:'出牌阶段,你可以将一张黑色牌当做【杀】使用。此【杀】使用结算完成后,若你未因此【杀】造成过伤害,则你令此【杀】不计入使用次数。',
|
||||
spweiwu:'违忤',
|
||||
spweiwu_info:'出牌阶段限一次,你可以将一张红色牌当做【顺手牵羊】对手牌数大于你的角色使用。',
|
||||
spweiwu_info:'出牌阶段限一次,你可以将一张红色牌当做【顺手牵羊】对手牌数不小于你的角色使用。',
|
||||
spmouzhu:'谋诛',
|
||||
spmouzhu_backup:'谋诛',
|
||||
spmouzhu_info:'出牌阶段限一次,你可以从“距离为1”或“体力值等于你”中选择一个条件,然后令此时所有满足条件的角色依次进行以下结算:交给你一张手牌,然后若其手牌数小于你,则其视为对你使用一张【杀】或【决斗】。',
|
||||
|
@ -16717,7 +16746,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fuwei_info:'每回合限一次。当你的牌被其他角色弃置或获得后,你可从牌堆中获得一张与此牌名称相同的牌(若没有则改为摸一张牌)。',
|
||||
yuejian:'约俭',
|
||||
yuejian_info:'每回合限两次。当其他角色对你使用的牌A结算结束后,你可展示所有手牌。若牌A有花色且你的手牌中没有同花色的牌,则你获得牌A对应的所有实体牌。',
|
||||
ol_dengzhi:'邓芝',
|
||||
ol_dengzhi:'OL邓芝',
|
||||
olxiuhao:'修好',
|
||||
olxiuhao_info:'每回合限一次。当你受到其他角色造成的伤害时,或对其他角色造成伤害时,你可防止此伤害,然后令伤害来源摸两张牌。',
|
||||
olsujian:'素俭',
|
||||
|
|
360
character/sp2.js
|
@ -4,6 +4,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
name:'sp2',
|
||||
connect:true,
|
||||
character:{
|
||||
re_dengzhi:['male','shu',3,['jianliang','weimeng']],
|
||||
fengxi:['male','wu',3,['yusui','boyan']],
|
||||
re_miheng:['male','qun',3,['rekuangcai','reshejian']],
|
||||
re_zhangbao:['male','qun',3,['xinzhoufu','xinyingbing']],
|
||||
zhaoyan:['female','wu',3,['jinhui','qingman']],
|
||||
re_sunyi:['male','wu',5,['syjiqiao','syxiongyi']],
|
||||
re_pangdegong:['male','qun',3,['heqia','yinyi']],
|
||||
|
@ -126,10 +130,338 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_zhilan:['liuyong','wanniangongzhu','zhanghu'],
|
||||
sp_fenghuo:['re_nanhualaoxian','tongyuan','zhangning'],
|
||||
sp_guixin:['re_kanze','re_chendeng'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','lvlingqi','caojinyu','wangtao','wangyue','re_pangdegong','re_sunyi'],
|
||||
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','caobuxing','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','ruanyu','liangxing','re_dongzhao','yangwan','re_panshu','dufuren','zhouyi','lvlingqi','caojinyu','wangtao','wangyue','re_pangdegong','re_sunyi','re_miheng','fengxi','re_dengzhi','re_zhangbao'],
|
||||
}
|
||||
},
|
||||
skill:{
|
||||
//邓芝
|
||||
jianliang:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
filter:function(event,player){
|
||||
return !player.isMaxHandcard();
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('jianliang'),'令至多两名角色各摸一张牌',[1,2]).set('ai',function(target){
|
||||
return Math.sqrt(5-Math.min(4,target.countCards('h')))*get.attitude(_status.event.player,target);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var targets=result.targets.sortBySeat();
|
||||
player.logSkill('jianliang',targets);
|
||||
if(targets.length==1){
|
||||
targets[0].draw();
|
||||
event.finish();
|
||||
}
|
||||
else game.asyncDraw(targets);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
game.delayx();
|
||||
},
|
||||
},
|
||||
weimeng:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return player.hp>0&&target!=player&&target.countGainableCards(player,'h')>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.gainPlayerCard(target,'h',true,[1,player.hp]);
|
||||
'step 1'
|
||||
if(result.bool&&target.isIn()){
|
||||
var num=result.cards.length,hs=player.getCards('he');
|
||||
var numx=0;
|
||||
for(var i of result.cards) numx+=get.number(i,player);
|
||||
event.num=numx;
|
||||
event.cards=result.cards;
|
||||
if(!hs.length) event.finish();
|
||||
else if(hs.length<=num) event._result={bool:true,cards:hs};
|
||||
else player.chooseCard('he',true,'选择交给'+get.translation(target)+get.cnNumber(num)+'张牌','(已获得牌的点数和:'+numx+')',num);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
target.gain(result.cards,player,'giveAuto');
|
||||
var numx=0;
|
||||
for(var i of result.cards) numx+=get.number(i,player);
|
||||
if(numx>num) player.draw();
|
||||
else if(numx<num) player.discardPlayerCard(target,true,'hej');
|
||||
},
|
||||
ai:{
|
||||
order:6,
|
||||
tag:{
|
||||
lose:1,
|
||||
loseCard:1,
|
||||
gain:1,
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return -Math.pow(Math.min(player.hp,target.countCards('h')),2)/4;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//冯熙
|
||||
yusui:{
|
||||
audio:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.isIn()&&get.color(event.card)=='black';
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
var target=event.player;
|
||||
if(player.hp<3||get.attitude(player,target)>-3) return false;
|
||||
if(player.hp<target.hp) return true;
|
||||
if(Math.min(target.countCards('h')-player.countCards('h'),target.countCards('h'))>3) return true;
|
||||
return false;
|
||||
},
|
||||
preHidden:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.loseHp();
|
||||
event.target=trigger.player;
|
||||
'step 1'
|
||||
event.addIndex=0;
|
||||
var list=[],num=target.countCards('h')-player.countCards('h');
|
||||
event.num=num;
|
||||
if(num>0&&target.countCards('h')>0) list.push('令其弃置'+get.cnNumber(num)+'张手牌');
|
||||
else event.addIndex++;
|
||||
if(target.hp>player.hp) list.push('令其失去'+get.cnNumber(target.hp-player.hp)+'点体力');
|
||||
if(!list.length) event.finish();
|
||||
else if(list.length==1) event._result={index:0};
|
||||
else player.chooseControl().set('choiceList',list).set('prompt','令'+get.translation(target)+'执行一项').set('ai',function(){
|
||||
var player=_status.event.player,target=_status.event.getParent().target;
|
||||
return (target.hp-player.hp)>(Math.min(_status.event.getParent().num,target.countCards('h'))/2)?1:0;
|
||||
});
|
||||
'step 2'
|
||||
if(result.index+event.addIndex==0) target.chooseToDiscard(num,true,'h');
|
||||
else target.loseHp(target.hp-player.hp);
|
||||
},
|
||||
},
|
||||
boyan:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer((target)=>lib.skill.boyan.filterTarget(null,player,target));
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')<Math.min(5,target.maxHp);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
target.drawTo(Math.min(5,target.maxHp));
|
||||
'step 1'
|
||||
target.addTempSkill('boyan_block');
|
||||
},
|
||||
subSkill:{
|
||||
block:{
|
||||
mark:true,
|
||||
intro:{content:'不能使用或打出手牌'},
|
||||
charlotte:true,
|
||||
mod:{
|
||||
cardEnabled2:function(card){
|
||||
if(get.position(card)=='h') return false;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(get.attitude(player,target)>0) return Math.max(0,Math.min(5,target.maxHp)-target.countCards('h'));
|
||||
if(target.maxHp-target.countCards('h')==1&&target.countCards('h','shan')&&!target.hasSkillTag('respondShan',true,null,true)&&player.countCards('h',function(card){
|
||||
return get.tag(card,'respondShan')&&player.getUseValue(card,null,true)>0&&get.effect(target,card,player,player)>0;
|
||||
})) return -2;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//祢衡
|
||||
rekuangcai:{
|
||||
audio:2,
|
||||
forced:true,
|
||||
trigger:{player:'phaseDiscardBegin'},
|
||||
filter:function(event,player){
|
||||
return !player.getHistory('useCard').length||!player.getHistory('sourceDamage').length;
|
||||
},
|
||||
content:function(){
|
||||
if(!player.getHistory('useCard').length) player.addTempSkill('rekuangcai_more');
|
||||
else player.addTempSkill('rekuangcai_less');
|
||||
},
|
||||
mod:{
|
||||
targetInRange:function(card,player){
|
||||
if(player==_status.currentPhase) return true;
|
||||
},
|
||||
cardUsable:function(card,player){
|
||||
if(player==_status.currentPhase) return Infinity;
|
||||
},
|
||||
},
|
||||
group:'rekuangcai_draw',
|
||||
subSkill:{
|
||||
draw:{
|
||||
audio:'rekuangcai',
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.getHistory('sourceDamage').length>0;
|
||||
},
|
||||
content:function(){
|
||||
player.draw(Math.min(5,player.getStat('damage')));
|
||||
},
|
||||
},
|
||||
less:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num-1;
|
||||
},
|
||||
},
|
||||
charlotte:true,
|
||||
},
|
||||
more:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+1;
|
||||
},
|
||||
},
|
||||
charlotte:true,
|
||||
},
|
||||
},
|
||||
},
|
||||
reshejian:{
|
||||
audio:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
if(player==event.player||event.targets.length!=1) return false;
|
||||
return player.countCards('h')>=2;
|
||||
},
|
||||
direct:true,
|
||||
usable:2,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseToDiscard('he',[2,Infinity],get.prompt('reshejian',trigger.player),'<div class="text center">弃置至少两张手牌,然后选择一项:<br>⒈弃置其等量的牌。⒉对其造成1点伤害。</div>').set('',function(card){
|
||||
if(_status.event.goon&&ui.selected.cards.length<2) return 5.6-get.value(card);
|
||||
return 0;
|
||||
}).set('goon',function(){
|
||||
var target=trigger.player;
|
||||
if(get.damageEffect(target,player,player)>0) return true;
|
||||
if(target.countCards('he',function(card){
|
||||
return get.value(card,target)>6;
|
||||
})>=2) return true;
|
||||
return false;
|
||||
}()).logSkill=['reshejian',trigger.player];
|
||||
'step 1'
|
||||
if(!result.bool){
|
||||
player.storage.counttrigger.reshejian--;
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
var num=result.cards.length;
|
||||
event.num=num;
|
||||
var target=trigger.player,str=get.translation(target);
|
||||
event.target=target;
|
||||
if(!target.isIn()) event.finish();
|
||||
else if(!target.hasCard(function(card){
|
||||
return lib.filter.canBeDiscarded(card,player,target);
|
||||
},'he')) event._result={index:1};
|
||||
else player.chooseControl().set('choiceList',[
|
||||
'弃置'+str+'的'+get.cnNumber(num)+'张牌',
|
||||
'对'+str+'造成1点伤害',
|
||||
]).set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var eff0=get.effect(target,{name:'guohe_copy2'},player,player)*Math.min(1.7,target.countCards('he'));
|
||||
var eff1=get.damageEffect(target,player,player);
|
||||
return eff0>eff1?0:1;
|
||||
});
|
||||
'step 2'
|
||||
if(result.index==0) player.discardPlayerCard(target,num,true,'he');
|
||||
else target.damage();
|
||||
},
|
||||
},
|
||||
//张宝
|
||||
xinzhoufu:{
|
||||
audio:'zhoufu',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0;
|
||||
},
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&!target.getExpansions('xinzhoufu2').length;
|
||||
},
|
||||
check:function(card){
|
||||
return 6-get.value(card)
|
||||
},
|
||||
position:'he',
|
||||
discard:false,
|
||||
lose:false,
|
||||
delay:false,
|
||||
content:function(){
|
||||
target.addToExpansion(cards,player,'give').gaintag.add('xinzhoufu2');
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(player.inRange(target)) return -1.3;
|
||||
return -1;
|
||||
},
|
||||
},
|
||||
},
|
||||
group:['xinzhoufu_judge'],
|
||||
subSkill:{
|
||||
judge:{
|
||||
audio:'zhoufu',
|
||||
trigger:{global:'judgeBefore'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !event.directresult&&event.player.getExpansions('xinzhoufu2').length;
|
||||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
var cards=[trigger.player.getExpansions('xinzhoufu2')[0]];
|
||||
trigger.directresult=cards[0];
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
xinzhoufu2:{
|
||||
intro:{
|
||||
content:'expansion',
|
||||
markcount:'expansion',
|
||||
},
|
||||
},
|
||||
xinyingbing:{
|
||||
audio:'yingbing',
|
||||
trigger:{player:'useCardToPlayered'},
|
||||
forced:true,
|
||||
logTarget:'target',
|
||||
filter:function(event,player){
|
||||
return event.target.getExpansions('xinzhoufu2').length>0&&!player.hasHistory('gain',function(evt){
|
||||
var evtx=evt.getParent(2);
|
||||
return evtx&&evtx.name=='xinyingbing'&&evtx._trigger.target==event.target;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
player.draw(2);
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
player:function(card,player,target){
|
||||
if(target&&target.getExpansions('xinzhoufu2').length>0&&!player.hasHistory('gain',function(evt){
|
||||
var evtx=evt.getParent(2);
|
||||
return evtx&&evtx.name=='xinyingbing'&&evtx._trigger.target==target;
|
||||
})) return [1,1];
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//赵嫣
|
||||
jinhui:{
|
||||
audio:2,
|
||||
|
@ -8030,7 +8362,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 1'
|
||||
if(result.bool){
|
||||
player.addTempSkill('souying2');
|
||||
if(event.triggername=='useCardToPlayered') player.gain(trigger.cards.filterInD());
|
||||
if(event.triggername=='useCardToPlayered') player.gain(trigger.cards.filterInD(),'gain2');
|
||||
else trigger.excluded.add(player);
|
||||
}
|
||||
},
|
||||
|
@ -12262,11 +12594,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
nanhualaoxian:['re_nanhualaoxian','nanhualaoxian'],
|
||||
kanze:['re_kanze','kanze'],
|
||||
yangwan:['yangwan','sp_yangwan'],
|
||||
chendeng:['re_chendeng','chendeng'],
|
||||
chendeng:['ol_chendeng','re_chendeng','chendeng'],
|
||||
pangdegong:['re_pangdegong','pangdegong'],
|
||||
zhujun:['sp_zhujun','zhujun'],
|
||||
sunyi:['re_sunyi','sunyi'],
|
||||
tw_liuhong:['tw_liuhong','liuhong'],
|
||||
miheng:['miheng','re_miheng'],
|
||||
},
|
||||
translate:{
|
||||
lijue:"李傕",
|
||||
|
@ -12907,6 +13240,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
jinhui_info:'出牌阶段限一次,你可以随机展示牌堆中的三张不具有“伤害”标签且使用目标范围为“自己”或“一名角色”的牌,然后选择一名其他角色。该角色选择并按如下“锦绘”规则使用其中一张,然后你可以依次按如下“锦绘”规则使用其余两张:若此牌的使用目标为“自己”,则对自己使用该牌,否则对对方使用该牌(无距离限制且不计入次数限制)。',
|
||||
qingman:'轻幔',
|
||||
qingman_info:'锁定技。一名角色的回合结束时,你将手牌摸至X张(X为其装备区中空栏的数量)。',
|
||||
re_zhangbao:'张宝',
|
||||
xinzhoufu:'咒缚',
|
||||
xinzhoufu2:'咒缚',
|
||||
xinzhoufu_info:'①出牌阶段限一次,你可以将一张手牌置于一名其他角色的武将牌上并称为“咒”。②一名有“咒”的角色判定时,你令其以“咒”作为判定牌。',
|
||||
xinyingbing:'影兵',
|
||||
xinyingbing_info:'锁定技。每回合每名角色限一次,当你使用牌指定有“咒”的角色为目标后,你摸两张牌。',
|
||||
re_miheng:'祢衡',
|
||||
rekuangcai:'狂才',
|
||||
rekuangcai_info:'锁定技。①你于回合内使用牌无距离和次数限制。②弃牌阶段开始时,若你本回合内:未使用过牌,则你本回合的手牌上限+1;使用过牌但未造成过伤害,则你本回合的手牌上限-1。③结束阶段开始时,你摸X张牌(X为你本回合内造成的伤害且至多为5)。',
|
||||
reshejian:'舌箭',
|
||||
reshejian_info:'当你成为其他角色使用牌的唯一目标后,你可以弃置至少两张手牌。若如此做,你选择一项:⒈弃置其等量的牌。⒉对其造成1点伤害。',
|
||||
fengxi:'冯熙',
|
||||
yusui:'玉碎',
|
||||
yusui_info:'当你成为其他角色使用黑色牌的目标后,你可以失去1点体力,然后选择一项:⒈令其将手牌数弃置至与你相同;⒉令其失去Y点体力(Y为其的体力值减去你的体力值,不为正时不可选择)',
|
||||
boyan:'驳言',
|
||||
boyan_info:'出牌阶段限一次,你可令一名其他角色将手牌摸至体力上限(至多摸至五张),然后其本回合不能使用或打出手牌。',
|
||||
re_dengzhi:'邓芝',
|
||||
jianliang:'简亮',
|
||||
jianliang_info:'摸牌阶段开始时,若你的手牌数不为全场最多,则你可以令至多两名角色各摸一张牌。',
|
||||
weimeng:'危盟',
|
||||
weimeng_info:'出牌阶段限一次,你可以获得一名其他角色的至多X张手牌,然后交给其等量的牌(X为你的体力值)。若你给出的牌点数之和:大于获得的牌,则你摸一张牌;小于获得的牌,弃置该角色区域内的一张牌。',
|
||||
|
||||
sp_whlw:"文和乱武",
|
||||
sp_zlzy:"逐鹿中原",
|
||||
|
|
621
character/tw.js
|
@ -5,13 +5,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
connect:true,
|
||||
characterSort:{
|
||||
tw:{
|
||||
tw_mobile:['nashime','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_huojun','tw_caocao'],
|
||||
tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong'],
|
||||
tw_mobile:['nashime','tw_dongzhao','jiachong','duosidawang','wuban','yuejiu','tw_huojun','tw_caocao','tw_zhangmancheng'],
|
||||
tw_mobile2:['tw_beimihu','tw_gexuan','tw_fuwan','tw_yujin','tw_zhaoxiang','tw_hucheer','tw_hejin','tw_mayunlu','tw_re_caohong','tw_zangba','tw_liuhong','tw_chengpu'],
|
||||
tw_yijiang:['tw_caoang','tw_caohong','tw_zumao','tw_dingfeng','tw_maliang','tw_xiahouba'],
|
||||
tw_english:['kaisa'],
|
||||
},
|
||||
},
|
||||
character:{
|
||||
tw_chengpu:['male','wu',4,['twlihuo','twchunlao']],
|
||||
tw_zhangmancheng:['male','qun',4,['twfengji','twyiju','twbudao']],
|
||||
tw_caocao:['male','qun',4,['twlingfa']],
|
||||
tw_liuhong:['male','qun',4,['twyujue','twgezhi','twfengqi'],['zhu']],
|
||||
tw_huojun:['male','shu',4,['twsidai','twjieyu']],
|
||||
|
@ -46,6 +48,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
wuban:'吴班,字元雄,生卒年不详,兖州陈留郡(治今河南省开封市)人。三国时期蜀汉将领。为领军,随刘备参加伐吴之战,后又随蜀汉丞相诸葛亮参加北伐曹魏的战争,并于公元231年(建兴九年)的北伐中大破司马懿。官至骠骑将军,封绵竹侯。吴班以豪爽侠义著称于当时,又因族妹吴氏是蜀汉穆皇后,在蜀汉将领中有较高的地位。',
|
||||
yuejiu:'乐就(?-197),在袁术为攻徐州而大兴七军之际,以督战官之身份担任联络之役。但是,袁术军不幸战败,其也在寿春被曹操军逮捕并遭到斩首。',
|
||||
huojun:'霍峻(178年—217年),字仲邈,南郡枝江(今湖北枝江)人,东汉末年刘备麾下名将。其兄霍笃曾在故乡聚部众数百人。后霍笃逝世,刘表以霍峻继承其部曲。208年(建安十三年),刘表病逝,霍峻便率部曲归降刘备,并被任为中郎将。后随刘备入蜀,刘备从葭萌还袭刘璋,留霍峻守葭萌城。张鲁遣将杨帛劝降霍峻,霍峻严词拒绝,杨帛退去。后刘璋将扶禁、向存等率万余人由阆水上,攻围霍峻,城中兵不过数百人,霍峻坚守一年,伺机将其击破。刘备定蜀,嘉霍峻之功,于是分广汉为梓潼郡,以峻为梓潼太守、裨将军。三年后去世,还葬成都。刘备亲率群僚临会吊祭,留宿墓上,当时的人都为他感到荣幸。',
|
||||
zhangmancheng:'张曼成(?—184年6月),东汉末年黄巾之乱时南阳黄巾军首领,杀郡守褚贡,一度占据宛城数月,后为秦颉所杀。',
|
||||
},
|
||||
card:{
|
||||
dz_mantianguohai:{
|
||||
|
@ -159,6 +162,600 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
twlihuo:{
|
||||
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 game.hasPlayer(function(current){
|
||||
return !event.targets.contains(current)&&player.canUse(event.card,current)&&get.effect(current,{name:'sha',nature:'fire',cards:event.cards.slice(0)},player,player)>0;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
trigger.card.nature='fire';
|
||||
trigger.card.twlihuo_buffed=true;
|
||||
},
|
||||
group:['twlihuo2','twlihuo3'],
|
||||
ai:{
|
||||
fireAttack:true,
|
||||
},
|
||||
},
|
||||
twlihuo2:{
|
||||
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('twlihuo'),'为'+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('twlihuo',event.target);
|
||||
trigger.targets.push(event.target);
|
||||
},
|
||||
},
|
||||
twlihuo3:{
|
||||
trigger:{player:'useCardAfter'},
|
||||
filter:function(event,player){
|
||||
return event.card.twlihuo_buffed=true&&player.getHistory('sourceDamage',function(evt){
|
||||
return evt.card==event.card&&evt._dyinged;
|
||||
}).length>0;
|
||||
},
|
||||
forced:true,
|
||||
audio:'lihuo',
|
||||
audioname:['re_chengpu'],
|
||||
content:function(){
|
||||
player.loseHp();
|
||||
}
|
||||
},
|
||||
twchunlao:{
|
||||
audio:'chunlao',
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(function(current){
|
||||
return current.countCards('hej')>0;
|
||||
})&&!game.hasPlayer(function(current){
|
||||
return current.getExpansions('twchunlao').length>0;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt('twchunlao'),'将一名角色区域内的一张牌作为“醇”置于其武将牌上',function(card,player,target){
|
||||
return target.countCards('hej')>0;
|
||||
}).set('ai',function(target){
|
||||
return (get.attitude(_status.event.player,target))*(player==target?1:2);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.logSkill('twchunlao',target);
|
||||
player.choosePlayerCard(target,'hej',true);
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
target.addToExpansion(result.cards,target,'give').gaintag.add('twchunlao');
|
||||
}
|
||||
},
|
||||
intro:{
|
||||
content:'expansion',
|
||||
markcount:'expansion',
|
||||
},
|
||||
group:['twchunlao_sha','twchunlao_dying'],
|
||||
subSkill:{
|
||||
sha:{
|
||||
trigger:{global:'useCard'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.card.name=='sha'&&event.player.countCards('he')>0&&event.player.getExpansions('twchunlao').length>0;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.target=trigger.player;
|
||||
event.target.chooseCard('he','醇醪:是否交给'+get.translation(player)+'一张牌,令'+get.translation(trigger.card)+'的伤害值基数+1?').set('ai',function(card){
|
||||
if(!_status.event.goon) return 3.5-get.value(card);
|
||||
return 7-get.value(card);
|
||||
}).set('goon',function(){
|
||||
if(get.attitude(target,player)<0) return false;
|
||||
var d1=true;
|
||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false;
|
||||
for(var target of trigger.targets){
|
||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||
target:target,
|
||||
card:trigger.card,
|
||||
},true)){
|
||||
if(!target.hasSkill('gangzhi')) d1=false;
|
||||
if(!target.hasSkillTag('filterDamage',null,{
|
||||
player:trigger.player,
|
||||
card:trigger.card,
|
||||
})&&get.attitude(player,target)<0) return true;
|
||||
}
|
||||
}
|
||||
return d1;
|
||||
}());
|
||||
if(!event.target.isUnderControl(true)&&!event.target.isOnline()) game.delayx();
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
target.logSkill('twchunlao',player);
|
||||
if(!target.hasSkill('twchunlao')) game.trySkillAudio('twchunlao',player);
|
||||
player.gain(result.cards,target,'giveAuto');
|
||||
trigger.baseDamage++;
|
||||
}
|
||||
},
|
||||
},
|
||||
dying:{
|
||||
audio:'chunlao',
|
||||
trigger:{global:'dying'},
|
||||
logTarget:'player',
|
||||
filter:function(event,player){
|
||||
return event.player.getExpansions('twchunlao').length>0;
|
||||
},
|
||||
prompt2:(event,player)=>('移去'+get.translation(event.player)+'武将牌上的“醇”并摸一张牌,然后令其回复1点体力'),
|
||||
check:function(event,player){
|
||||
return get.attitude(player,event.player)>0;
|
||||
},
|
||||
content:function(){
|
||||
var target=trigger.player,cards=target.getExpansions('twchunlao');
|
||||
if(cards.length) target.loseToDiscardpile(cards);
|
||||
player.draw();
|
||||
target.recover();
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//张曼成
|
||||
twfengji:{
|
||||
audio:2,
|
||||
mahouSkill:true,
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
filter:function(event,player){
|
||||
return !player.getExpansions('twfengji').length&&!player.hasSkill('twfengji_mahou')&&player.countCards('he');
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseCard('he',get.prompt2('twfengji')).set('ai',function(card){
|
||||
var name=card.name,num=0;
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
if(ui.cardPile.childNodes[i].name==name) num++;
|
||||
}
|
||||
if(num<2) return false;
|
||||
return 8-get.value(card);
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('twfengji');
|
||||
player.addToExpansion(result.cards,player,'giveAuto').gaintag.add('twfengji');
|
||||
player.chooseControl('1回合','2回合','3回合').set('prompt','请选择施法时长').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var safe=Math.min(player.getHandcardLimit(),player.countCards('h','shan'));
|
||||
if(safe<Math.min(3,game.countPlayer())){
|
||||
var next=player.next;
|
||||
while(next!=player&&get.attitude(next,player)>0){
|
||||
safe++;
|
||||
next=next.next;
|
||||
}
|
||||
}
|
||||
return Math.max(2,Math.min(safe,3,game.countPlayer()))-1;
|
||||
});
|
||||
}
|
||||
else event.finish();
|
||||
'step 2'
|
||||
player.storage.twfengji_mahou=[result.index+1,result.index+1];
|
||||
player.addTempSkill('twfengji_mahou',{player:'die'});
|
||||
},
|
||||
marktext:'示',
|
||||
onremove:function(player,skill){
|
||||
var cards=player.getExpansions(skill);
|
||||
if(cards.length) player.loseToDiscardpile(cards);
|
||||
},
|
||||
intro:{
|
||||
content:'expansion',
|
||||
markcount:'expansion',
|
||||
},
|
||||
subSkill:{
|
||||
mahou:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
var list=player.storage.twfengji_mahou;
|
||||
list[1]--;
|
||||
if(list[1]==0){
|
||||
game.log(player,'的“蜂集”魔法生效');
|
||||
player.logSkill('twfengji');
|
||||
var cards=player.getExpansions('twfengji');
|
||||
if(cards.length){
|
||||
var cards2=[],num=list[0];
|
||||
for(var card of cards){
|
||||
for(var i=0;i<num;i++){
|
||||
var card2=get.cardPile2(function(cardx){
|
||||
return cardx.name==card.name&&!cards2.contains(cardx);
|
||||
});
|
||||
if(card2) cards2.push(card2);
|
||||
else break;
|
||||
}
|
||||
}
|
||||
game.delayx();
|
||||
if(cards2.length) player.gain(cards2,'gain2');
|
||||
player.loseToDiscardpile(cards);
|
||||
}
|
||||
player.removeSkill('twfengji_mahou');
|
||||
}
|
||||
else{
|
||||
game.log(player,'的“蜂集”魔法剩余','#g'+(list[1])+'回合');
|
||||
player.markSkill('twfengji_mahou');
|
||||
}
|
||||
},
|
||||
ai:{threaten:2.5},
|
||||
mark:true,
|
||||
onremove:true,
|
||||
//该图标为灵魂宝石
|
||||
marktext:'♗',
|
||||
intro:{
|
||||
name:'施法:蜂集',
|
||||
markcount:function(storage){
|
||||
if(storage) return storage[1];
|
||||
return 0;
|
||||
},
|
||||
content:function(storage){
|
||||
if(storage){
|
||||
return '经过'+storage[1]+'个“回合结束时”后,若有“示”,则从牌堆中获得'+storage[0]+'张和“示”名称相同的牌';
|
||||
}
|
||||
return '未指定施法效果';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
twyiju:{
|
||||
audio:2,
|
||||
locked:false,
|
||||
mod:{
|
||||
attackRangeBase:function(player,num){
|
||||
if(player.getExpansions('twfengji').length) return player.hp;
|
||||
},
|
||||
cardUsable:function(card,player,num){
|
||||
if(card.name=='sha'&&player.getExpansions('twfengji').length) return num-1+player.hp;
|
||||
},
|
||||
},
|
||||
trigger:{player:'damageBegin3'},
|
||||
filter:function(event,player){
|
||||
return player.getExpansions('twfengji').length>0;
|
||||
},
|
||||
forced:true,
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
var cards=player.getExpansions('twfengji');
|
||||
if(cards.length) player.loseToDiscardpile(cards);
|
||||
},
|
||||
ai:{
|
||||
halfneg:true,
|
||||
combo:'twfengji',
|
||||
},
|
||||
},
|
||||
twbudao:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
derivation:['twzhouhu','twharvestinori','twzuhuo'],
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'metal',
|
||||
check:function(event,player){
|
||||
return !player.hasUnknown()||!player.hasFriend();
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.awakenSkill('twbudao');
|
||||
player.loseMaxHp();
|
||||
player.recover();
|
||||
player.chooseControl(lib.skill.twbudao.derivation).set('prompt','选择获得一个技能').set('ai',function(){
|
||||
return 'twharvestinori';
|
||||
});
|
||||
'step 1'
|
||||
var skill=result.control;
|
||||
player.addSkillLog(skill);
|
||||
event.twbudao_skill=skill;
|
||||
player.chooseTarget(lib.filter.notMe,'是否令一名其他角色也获得【'+get.translation(skill)+'】?').set('ai',function(target){
|
||||
var player=_status.event.player;
|
||||
if(player.identity=='nei') return 0;
|
||||
return get.attitude(player,target)-6;
|
||||
});
|
||||
'step 2'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
event.target=target;
|
||||
player.line(target,'green');
|
||||
target.addSkillLog(event.twbudao_skill);
|
||||
var cards=target.getCards('he');
|
||||
if(!cards.length) event.finish();
|
||||
else if(cards.length==1) event._result={bool:true,cards:cards};
|
||||
else target.chooseCard('he',true,'交给'+get.translation(player)+'一张牌作为学费');
|
||||
}
|
||||
else event.finish();
|
||||
'step 3'
|
||||
if(result.bool) player.gain(result.cards,target,'giveAuto');
|
||||
},
|
||||
},
|
||||
twzhouhu:{
|
||||
audio:2,
|
||||
mahouSkill:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return !player.hasSkill('twzhouhu_mahou')&&player.countCards('h',lib.skill.twzhouhu.filterCard)>0;
|
||||
},
|
||||
filterCard:{color:'red'},
|
||||
check:function(card){
|
||||
if(_status.event.player.isHealthy()) return 0;
|
||||
return 7-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('1回合','2回合','3回合').set('prompt','请选择施法时长').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var safe=1;
|
||||
if(safe<Math.min(3,game.countPlayer(),player.getDamagedHp())){
|
||||
var next=player.next;
|
||||
while(next!=player&&get.attitude(next,player)>0){
|
||||
safe++;
|
||||
next=next.next;
|
||||
}
|
||||
}
|
||||
return Math.max(1,Math.min(safe,3,game.countPlayer(),player.getDamagedHp()))-1;
|
||||
});
|
||||
'step 1'
|
||||
player.storage.twzhouhu_mahou=[result.index+1,result.index+1];
|
||||
player.addTempSkill('twzhouhu_mahou',{player:'die'});
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
mahou:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
var list=player.storage.twzhouhu_mahou;
|
||||
list[1]--;
|
||||
if(list[1]==0){
|
||||
game.log(player,'的“咒护”魔法生效');
|
||||
player.logSkill('twzhouhu');
|
||||
var num=list[0];
|
||||
player.recover(num);
|
||||
player.removeSkill('twzhouhu_mahou');
|
||||
}
|
||||
else{
|
||||
game.log(player,'的“咒护”魔法剩余','#g'+(list[1])+'回合');
|
||||
player.markSkill('twzhouhu_mahou');
|
||||
}
|
||||
},
|
||||
mark:true,
|
||||
onremove:true,
|
||||
marktext:'♗',
|
||||
intro:{
|
||||
name:'施法:咒护',
|
||||
markcount:function(storage){
|
||||
if(storage) return storage[1];
|
||||
return 0;
|
||||
},
|
||||
content:function(storage){
|
||||
if(storage){
|
||||
return '经过'+storage[1]+'个“回合结束时”后,回复'+storage[0]+'点体力';
|
||||
}
|
||||
return '未指定施法效果';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
twharvestinori:{
|
||||
audio:2,
|
||||
mahouSkill:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return !player.hasSkill('twharvestinori_mahou')&&player.countCards('h',lib.skill.twharvestinori.filterCard)>0;
|
||||
},
|
||||
filterCard:{color:'black'},
|
||||
check:function(card){
|
||||
return 8-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('1回合','2回合','3回合').set('prompt','请选择施法时长').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var safe=player.hp;
|
||||
if(safe<Math.min(3,game.countPlayer())){
|
||||
var next=player.next;
|
||||
while(next!=player&&get.attitude(next,player)>0){
|
||||
safe++;
|
||||
next=next.next;
|
||||
}
|
||||
}
|
||||
return Math.max(1,Math.min(safe,3,game.countPlayer()))-1;
|
||||
});
|
||||
'step 1'
|
||||
player.storage.twharvestinori_mahou=[result.index+1,result.index+1];
|
||||
player.addTempSkill('twharvestinori_mahou',{player:'die'});
|
||||
},
|
||||
ai:{
|
||||
order:8,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
mahou:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
var list=player.storage.twharvestinori_mahou;
|
||||
list[1]--;
|
||||
if(list[1]==0){
|
||||
game.log(player,'的“丰祈”魔法生效');
|
||||
player.logSkill('twharvestinori');
|
||||
var num=list[0]*2;
|
||||
player.draw(num);
|
||||
player.removeSkill('twharvestinori_mahou');
|
||||
}
|
||||
else{
|
||||
game.log(player,'的“丰祈”魔法剩余','#g'+(list[1])+'回合');
|
||||
player.markSkill('twharvestinori_mahou');
|
||||
}
|
||||
},
|
||||
mark:true,
|
||||
onremove:true,
|
||||
marktext:'♗',
|
||||
intro:{
|
||||
name:'施法:丰祈',
|
||||
markcount:function(storage){
|
||||
if(storage) return storage[1];
|
||||
return 0;
|
||||
},
|
||||
content:function(storage){
|
||||
if(storage){
|
||||
return '经过'+storage[1]+'个“回合结束时”后,摸'+storage[0]*2+'张牌';
|
||||
}
|
||||
return '未指定施法效果';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
twzuhuo:{
|
||||
audio:2,
|
||||
mahouSkill:true,
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return !player.hasSkill('twzuhuo_mahou')&&player.countCards('he',lib.skill.twzuhuo.filterCard)>0;
|
||||
},
|
||||
filterCard:function(card){
|
||||
return get.type(card)!='basic';
|
||||
},
|
||||
position:'he',
|
||||
check:function(card){
|
||||
return 7-get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseControl('1回合','2回合','3回合').set('prompt','请选择施法时长').set('ai',function(){
|
||||
var player=_status.event.player;
|
||||
var safe=Math.min(player.getHandcardLimit(),player.countCards('h','shan'));
|
||||
if(safe<Math.min(3,game.countPlayer())){
|
||||
var next=player.next;
|
||||
while(next!=player&&get.attitude(next,player)>0){
|
||||
safe++;
|
||||
next=next.next;
|
||||
}
|
||||
}
|
||||
return Math.max(2,Math.min(safe,3,game.countPlayer()))-1;
|
||||
});
|
||||
'step 1'
|
||||
player.storage.twzuhuo_mahou=[result.index+1,result.index+1];
|
||||
player.addTempSkill('twzuhuo_mahou',{player:'die'});
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
mahou:{
|
||||
trigger:{global:'phaseEnd'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
charlotte:true,
|
||||
content:function(){
|
||||
var list=player.storage.twzuhuo_mahou;
|
||||
list[1]--;
|
||||
if(list[1]==0){
|
||||
game.log(player,'的“阻祸”魔法生效');
|
||||
player.logSkill('twzuhuo');
|
||||
var num=list[0];
|
||||
player.addSkill('twzuhuo_effect');
|
||||
player.addMark('twzuhuo_effect',num,false);
|
||||
player.removeSkill('twzuhuo_mahou');
|
||||
}
|
||||
else{
|
||||
game.log(player,'的“阻祸”魔法剩余','#g'+(list[1])+'回合');
|
||||
player.markSkill('twzuhuo_mahou');
|
||||
}
|
||||
},
|
||||
mark:true,
|
||||
onremove:true,
|
||||
marktext:'♗',
|
||||
intro:{
|
||||
name:'施法:阻祸',
|
||||
markcount:function(storage){
|
||||
if(storage) return storage[1];
|
||||
return 0;
|
||||
},
|
||||
content:function(storage){
|
||||
if(storage){
|
||||
return '经过'+storage[1]+'个“回合结束时”后,获得'+storage[0]+'层“防止一次伤害”的效果';
|
||||
}
|
||||
return '未指定施法效果';
|
||||
},
|
||||
},
|
||||
},
|
||||
effect:{
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
trigger:{player:'damageBegin2'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return player.hasMark('twzuhuo_effect');
|
||||
},
|
||||
content:function(){
|
||||
trigger.cancel();
|
||||
player.removeMark('twzuhuo_effect',1,false);
|
||||
if(!player.countMark('twzuhuo_effect')) player.removeSkill('twzuhuo_effect');
|
||||
},
|
||||
marktext:'阻︎',
|
||||
intro:{
|
||||
onremove:true,
|
||||
content:'防止接下来的#次伤害',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//群曹操
|
||||
twlingfa:{
|
||||
audio:2,
|
||||
trigger:{global:'roundStart'},
|
||||
|
@ -2929,6 +3526,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
twlingfa_info:'①第一轮游戏开始时,你可选择获得如下效果直到本轮结束:其他角色使用【杀】时,若其有牌,则其需弃置一张牌,否则受到你造成的1点伤害。②第二轮游戏开始时,你可选择获得如下效果直到本轮结束:其他角色使用【桃】结算结束后,若其有牌,则其需交给你一张牌,否则受到你造成的1点伤害。③第三轮游戏开始时,你失去〖令法〗并获得〖治暗〗。',
|
||||
twzhian:'治暗',
|
||||
twzhian_info:'每回合限一次。一名角色使用装备牌或延时锦囊牌后,你可选择:⒈弃置位于场上的此牌。⒉弃置一张手牌并获得位于场上的此牌。⒊对其造成1点伤害。',
|
||||
tw_zhangmancheng:'张曼成',
|
||||
twfengji:'蜂集',
|
||||
twfengji_info:'出牌阶段开始时,若你没有“示”,则你可以将一张牌作为“示”置于武将牌上并施法:从牌堆中获得X张与“示”牌名相同的牌,然后移去“示”。',
|
||||
twyiju:'蚁聚',
|
||||
twyiju_info:'非锁定技。若你的武将牌上有“示”,则:①你使用【杀】的次数上限和攻击范围的基数改为你的体力值。②当你受到伤害时,你移去“示”,且令此伤害+1。',
|
||||
twbudao:'布道',
|
||||
twbudao_info:'限定技。准备阶段,你可减1点体力上限,回复1点体力并选择获得一个“施法”技能。然后你可以令一名其他角色也获得此技能并交给你一张牌。',
|
||||
twzhouhu:'咒护',
|
||||
twzhouhu_info:'出牌阶段限一次。你可以弃置一张红色手牌并施法:回复1点体力。',
|
||||
twharvestinori:'丰祈',
|
||||
twharvestinori_info:'出牌阶段限一次。你可以弃置一张黑色手牌并施法:摸2X张牌。',
|
||||
twzuhuo:'阻祸',
|
||||
twzuhuo_info:'出牌阶段限一次。你可以弃置一张非基本牌并施法:防止你受到的下X次伤害。',
|
||||
tw_chengpu:'程普',
|
||||
twlihuo:'疠火',
|
||||
twlihuo2:'疠火',
|
||||
twlihuo3:'疠火',
|
||||
twlihuo_info:'①当你声明使用普【杀】时,你可以将此【杀】改为火【杀】。此牌使用结算结束后,若有角色因此【杀】造成的伤害进入过濒死状态,则你失去1点体力。②当你使用火【杀】选择目标后,你可为此牌增加一个目标。',
|
||||
twchunlao:'醇醪',
|
||||
twchunlao_info:'①准备阶段,若场上没有“醇”,则你可将一名角色区域内的一张牌置于其武将牌上,称为“醇”。②一名角色使用【杀】时,若其有“醇”,则你可以交给你一张牌,令此【杀】的伤害值基数+1。③一名角色进入濒死状态时,若其有“醇”,则你可以移去“醇”并摸一张牌,然后令其回复1点体力。',
|
||||
|
||||
tw_mobile:'移动版·海外服',
|
||||
tw_mobile2:'海外服异构',
|
||||
|
|
|
@ -9095,10 +9095,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
trigger:{player:'useCardToPlayer'},
|
||||
filter:function(event,player){
|
||||
if(_status.currentPhase!=player||player.hasSkill('rechanhui2')) return false;
|
||||
if(player.hasSkill('rechanhui2')) return false;
|
||||
if(event.targets.length>1) return false;
|
||||
var card=event.card;
|
||||
if(card.name=='sha'||get.type(card)=='trick'&&get.color(card)=='black') return true;
|
||||
if(card.name=='sha'||get.type(card)=='trick') return true;
|
||||
return false;
|
||||
},
|
||||
direct:true,
|
||||
|
@ -9141,14 +9141,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
rechanhui2:{},
|
||||
rechanhui2:{charlotte:true},
|
||||
rejiaojin2:{charlotte:true},
|
||||
rejiaojin:{
|
||||
audio:2,
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
return (event.card.name=='sha'||get.type(event.card)=='trick')&&event.player&&event.player.hasSex('male')&&player.countCards('he',function(card){
|
||||
return (event.card.name=='sha'||get.type(event.card)=='trick')&&event.player!=player&&player.countCards('he',function(card){
|
||||
return _status.connectMode||get.type(card)=='equip';
|
||||
});
|
||||
})&&!player.hasSkill('rejiaojin2');
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
|
@ -9164,12 +9165,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
});
|
||||
next.set('val',get.value(trigger.cards.filterInD()));
|
||||
next.set('goon2',get.effect(player,trigger.card,trigger.player,player)<0)
|
||||
next.logSkill='rejiaojin';
|
||||
next.logSkill=['rejiaojin',trigger.player];
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
var cards=trigger.cards.filterInD();
|
||||
if(cards.length) player.gain(cards,'gain2','log');
|
||||
trigger.excluded.push(player);
|
||||
if(trigger.player.hasSex('female')) player.addTempSkill('rejiaojin2')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -12055,18 +12057,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fazheng:['re_fazheng','xin_fazheng','fazheng'],
|
||||
masu:['xin_masu','re_masu','masu'],
|
||||
xusheng:['xin_xusheng','re_xusheng','xusheng','old_xusheng'],
|
||||
wuguotai:['re_wuguotai','wuguotai'],
|
||||
wuguotai:['xin_wuguotai','re_wuguotai','wuguotai'],
|
||||
lingtong:['xin_lingtong','re_lingtong','lingtong','old_lingtong'],
|
||||
gaoshun:['gaoshun','re_gaoshun'],
|
||||
zhonghui:['re_zhonghui','xin_zhonghui','zhonghui','old_zhonghui'],
|
||||
wangyi:['wangyi','old_wangyi'],
|
||||
wangyi:['re_wangyi','wangyi','old_wangyi'],
|
||||
caozhang:['re_caozhang','xin_caozhang','caozhang'],
|
||||
guanzhang:['guanzhang','old_guanzhang'],
|
||||
madai:['re_madai','old_madai','madai'],
|
||||
liaohua:['xin_liaohua','re_liaohua','liaohua'],
|
||||
bulianshi:['re_bulianshi','bulianshi','old_bulianshi'],
|
||||
handang:['xin_handang','re_handang','handang'],
|
||||
chengpu:['re_chengpu','ns_chengpu','chengpu','xin_chengpu'],
|
||||
chengpu:['re_chengpu','tw_chengpu','ns_chengpu','chengpu','xin_chengpu'],
|
||||
liubiao:['re_liubiao','xin_liubiao','liubiao'],
|
||||
manchong:['re_manchong','manchong'],
|
||||
caochong:['caochong','old_caochong'],
|
||||
|
@ -12100,6 +12102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
caifuren:['xin_caifuren','re_caifuren','caifuren'],
|
||||
guyong:['re_guyong','xin_guyong','guyong'],
|
||||
yj_jushou:['xin_jushou','yj_jushou'],
|
||||
guohuanghou:['re_guohuanghou','guohuanghou'],
|
||||
},
|
||||
translate:{
|
||||
old_huaxiong:'华雄',
|
||||
|
@ -12475,11 +12478,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
chanhui:'谮毁',
|
||||
chanhui_info:'出牌阶段限一次,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标。',
|
||||
rechanhui:'谮毁',
|
||||
rechanhui_info:'出牌阶段,当你使用【杀】或黑色普通锦囊牌指定唯一目标时,你可令可以成为此牌目标(无距离限制)的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。',
|
||||
rechanhui_info:'当你使用【杀】或普通锦囊牌指定唯一目标时,你可令可以成为此牌目标(无距离限制)的另一名其他角色选择一项:交给你一张牌并成为此牌的使用者;或成为此牌的额外目标且你本回合内不能再次发动〖谮毁〗。',
|
||||
jiaojin:'骄矜',
|
||||
jiaojin_info:'当你受到男性角色造成的伤害时,你可以弃置一张装备牌,令此伤害-1。',
|
||||
rejiaojin:'骄矜',
|
||||
rejiaojin_info:'当你成为男性角色使用的【杀】或普通锦囊牌的目标后,你可以弃置一张装备牌,令此牌对你无效并获得此牌对应的所有实体牌。',
|
||||
rejiaojin_info:'当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以弃置一张装备牌,令此牌对你无效并获得此牌对应的所有实体牌。若此牌的使用者为女性角色,则你令〖骄矜〗失效直到回合结束。',
|
||||
shenxing:'慎行',
|
||||
shenxing_info:'出牌阶段,你可以弃置两张牌,然后摸一张牌。',
|
||||
bingyi:'秉壹',
|
||||
|
|
|
@ -1368,7 +1368,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
filterDamage:true,
|
||||
skillTagFilter:function(player,tag,arg){
|
||||
if(!player.getStorage('qiaoyan').length) return false;
|
||||
if(!player.getExpansions('qiaoyan').length) return false;
|
||||
if(arg&&arg.player){
|
||||
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.113.3',
|
||||
'v1.9.113.4',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -4244,6 +4244,7 @@ window.noname_asset_list=[
|
|||
'image/card/shennongding.png',
|
||||
'image/card/shentoumianju.png',
|
||||
'image/card/shezhanqunru.png',
|
||||
'image/card/shield.png',
|
||||
'image/card/shihuawuqi.png',
|
||||
'image/card/shihuifen.png',
|
||||
'image/card/shijieshu.png',
|
||||
|
@ -4804,7 +4805,6 @@ window.noname_asset_list=[
|
|||
'image/character/xiangchong.jpg',
|
||||
'image/character/xin_zhoucang.jpg',
|
||||
'image/character/duxi.jpg',
|
||||
'image/character/fengxi.jpg',
|
||||
'image/character/heyan.jpg',
|
||||
'image/character/key_mia.jpg',
|
||||
'image/character/liuba.jpg',
|
||||
|
@ -4939,6 +4939,16 @@ window.noname_asset_list=[
|
|||
'image/character/tw_liuhong.jpg',
|
||||
'image/character/tw_zangba.jpg',
|
||||
'image/character/zhaoyan.jpg',
|
||||
'image/character/fengxi.jpg',
|
||||
'image/character/gz_fengxi.jpg',
|
||||
'image/character/key_erika.jpg',
|
||||
'image/character/key_satomi.jpg',
|
||||
'image/character/re_dengzhi.jpg',
|
||||
'image/character/re_miheng.jpg',
|
||||
'image/character/re_zhangbao.jpg',
|
||||
'image/character/tw_chengpu.jpg',
|
||||
'image/character/tw_zhangmancheng.jpg',
|
||||
'image/character/xin_wuguotai.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
212
game/game.js
|
@ -6668,7 +6668,8 @@
|
|||
'<li>护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限。'+
|
||||
'<li>随从:通过技能获得,拥有独立的技能、手牌区和装备区(共享判定区),出场时替代主武将的位置;随从死亡时自动切换回主武将。'+
|
||||
'<li>发现:从三张随机亮出的牌中选择一张,若无特殊说明,则获得此牌。'+
|
||||
'<li>蓄力技:发动时可以增大黄色的数字。若如此做,红色数字于技能的结算过程中改为原来的两倍。'
|
||||
'<li>蓄力技:发动时可以增大黄色的数字。若如此做,红色数字于技能的结算过程中改为原来的两倍。'+
|
||||
'<li>施法:若技能的拥有者未拥有等待执行的同名“施法”效果,则其可以发动“施法”技能。其须选择声明一个数字X(X∈[1, 3]),在此之后的第X个回合结束时,其执行“施法”效果,且效果中的数字X视为与技能发动者声明的X相同。'
|
||||
},
|
||||
setIntro:function(node,func,left){
|
||||
if(lib.config.touchscreen){
|
||||
|
@ -7372,7 +7373,7 @@
|
|||
};
|
||||
window.onerror=function(msg, src, line, column, err){
|
||||
var str=msg;
|
||||
if(window._status&&_status.event){
|
||||
if(_status&&_status.event){
|
||||
var evt=_status.event;
|
||||
str+=('\n'+evt.name+': '+evt.step);
|
||||
if(evt.parent) str+='\n'+evt.parent.name+': '+evt.parent.step;
|
||||
|
@ -16183,26 +16184,7 @@
|
|||
"step 3"
|
||||
event.trigger('damageBegin4');
|
||||
"step 4"
|
||||
if(num>0&&player.hujia&&!player.hasSkillTag('nohujia')){
|
||||
if(num>=player.hujia){
|
||||
event.hujia=player.hujia;
|
||||
num-=player.hujia;
|
||||
}
|
||||
else{
|
||||
event.hujia=num;
|
||||
num=0;
|
||||
}
|
||||
game.log(player,'的护甲抵挡了'+get.cnNumber(event.hujia)+'点伤害');
|
||||
player.changeHujia(-event.hujia).type='damage';
|
||||
}
|
||||
event.num=num;
|
||||
if(num<=0){
|
||||
event.trigger('damageZero');
|
||||
delete event.filterStop;
|
||||
event.finish();
|
||||
event._triggered=null;
|
||||
}
|
||||
"step 5"
|
||||
//moved changeHujia to changeHp
|
||||
if(lib.config.background_audio){
|
||||
game.playAudio('effect','damage'+(num>1?'2':''));
|
||||
}
|
||||
|
@ -16251,7 +16233,8 @@
|
|||
}
|
||||
}
|
||||
},event.nature,player);
|
||||
player.$damagepop(-num,event.nature);
|
||||
var numx=Math.max(0,num-player.hujia);
|
||||
player.$damagepop(-numx,event.nature);
|
||||
}
|
||||
if(!event.notrigger){
|
||||
if(num==0){
|
||||
|
@ -16262,7 +16245,7 @@
|
|||
event.trigger('damage');
|
||||
}
|
||||
}
|
||||
"step 6"
|
||||
"step 5"
|
||||
if(player.hp<=0&&player.isAlive()){
|
||||
game.delayx();
|
||||
event._dyinged=true;
|
||||
|
@ -16308,7 +16291,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
"step 7"
|
||||
"step 6"
|
||||
if(!event.notrigger) event.trigger('damageSource');
|
||||
},
|
||||
recover:function(){
|
||||
|
@ -16380,6 +16363,16 @@
|
|||
player.update();
|
||||
},
|
||||
changeHp:function(){
|
||||
//changeHujia moved here
|
||||
if(num<0&&player.hujia>0&&event.getParent().name=='damage'&&!player.hasSkillTag('nohujia')){
|
||||
event.hujia=Math.min(-num,player.hujia);
|
||||
event.getParent().hujia=event.hujia;
|
||||
event.num+=event.hujia;
|
||||
game.log(player,'的护甲抵挡了'+get.cnNumber(event.hujia)+'点伤害');
|
||||
player.changeHujia(-event.hujia).type='damage';
|
||||
}
|
||||
//old part
|
||||
num=event.num;
|
||||
player.hp+=num;
|
||||
if(isNaN(player.hp)) player.hp=0;
|
||||
if(player.hp>player.maxHp) player.hp=player.maxHp;
|
||||
|
@ -16995,6 +16988,7 @@
|
|||
player:{
|
||||
//新函数
|
||||
setSeatNum:function(num){
|
||||
_status.seatNumSettled=true;
|
||||
game.broadcastAll(function(player,num){
|
||||
player.seatNum=num;
|
||||
},this,num);
|
||||
|
@ -17296,7 +17290,8 @@
|
|||
if(mod1!='unchanged') return mod1;
|
||||
var mod2=game.checkMod(from,to,'unchanged','inRangeOf',to);
|
||||
if(mod2!='unchanged') return mod2;
|
||||
if(from.getAttackRange()<1) return false;
|
||||
var range=from.getAttackRange();
|
||||
if(range<1) return false;
|
||||
var player=from,m,n=1,i;
|
||||
var fxy,txy;
|
||||
if(game.chess){
|
||||
|
@ -17344,9 +17339,6 @@
|
|||
m+=info.globalFrom;
|
||||
n+=info.globalFrom;
|
||||
}
|
||||
if(info.attackFrom){
|
||||
m+=info.attackFrom;
|
||||
}
|
||||
}
|
||||
for(i=0;i<equips2.length;i++){
|
||||
var info=get.info(equips2[i]).distance;
|
||||
|
@ -17359,7 +17351,7 @@
|
|||
m+=info.attaclTo;
|
||||
}
|
||||
}
|
||||
return m<=1;
|
||||
return m<=range;
|
||||
},
|
||||
inRangeOf:function(source){
|
||||
return source.inRange(this);
|
||||
|
@ -17589,6 +17581,7 @@
|
|||
|
||||
var hp1=get.infoHp(info[2]);
|
||||
var maxHp1=get.infoMaxHp(info[2]);
|
||||
var hujia1=get.infoHujia(info[2]);
|
||||
|
||||
this.node.avatar.show();
|
||||
this.node.count.show();
|
||||
|
@ -17599,7 +17592,7 @@
|
|||
this.group=info[1];
|
||||
this.hp=hp1;
|
||||
this.maxHp=maxHp1;
|
||||
this.hujia=0;
|
||||
this.hujia=hujia1;
|
||||
this.node.intro.innerHTML=lib.config.intro;
|
||||
this.node.name.dataset.nature=get.groupnature(this.group);
|
||||
lib.setIntro(this);
|
||||
|
@ -17637,6 +17630,8 @@
|
|||
this.name2=character2;
|
||||
var hp2=get.infoHp(info2[2]);
|
||||
var maxHp2=get.infoMaxHp(info2[2]);
|
||||
var hujia2=get.infoHujia(info2[2]);
|
||||
this.hujia+=hujia2;
|
||||
var double_hp;
|
||||
if(_status.connectMode||get.mode()=='single'){
|
||||
double_hp='pingjun';
|
||||
|
@ -21802,12 +21797,17 @@
|
|||
else{
|
||||
node=ui.create.div('.card.mark.drawinghidden');
|
||||
this.node.marks.insertBefore(node,this.node.marks.childNodes[1]);
|
||||
var str=lib.translate[name+'_bg'];
|
||||
if(!str||str[0]=='+'||str[0]=='-'){
|
||||
str=get.translation(name)[0];
|
||||
if(lib.skill[name]&&lib.skill[name].markimage){
|
||||
node.setBackgroundImage(lib.skill[name].markimage);
|
||||
node.style['box-shadow']='none';
|
||||
}
|
||||
else{
|
||||
var str=lib.translate[name+'_bg'];
|
||||
if(!str||str[0]=='+'||str[0]=='-'){
|
||||
str=get.translation(name)[0];
|
||||
}
|
||||
ui.create.div('.background.skillmark',node).innerHTML=str;
|
||||
}
|
||||
ui.create.div('.background.skillmark',node).innerHTML=str;
|
||||
// node.style.fontFamily=lib.config.card_font;
|
||||
}
|
||||
node.name=name;
|
||||
node.skill=skill||name;
|
||||
|
@ -22689,22 +22689,41 @@
|
|||
getAttackRange:function(raw){
|
||||
var player=this;
|
||||
var range=0;
|
||||
if(raw) range=game.checkMod(player,player,range,'globalFrom',player);
|
||||
range=game.checkMod(player,player,range,'attackFrom',player);
|
||||
var equips=player.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
});
|
||||
for(var i=0;i<equips.length;i++){
|
||||
var info=get.info(equips[i]).distance;
|
||||
if(!info) continue;
|
||||
if(raw&&info.globalFrom){
|
||||
range+=info.globalFrom;
|
||||
if(raw){
|
||||
range=game.checkMod(player,player,range,'globalFrom',player);
|
||||
range=game.checkMod(player,player,range,'attackFrom',player);
|
||||
var equips=player.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
});
|
||||
for(var i=0;i<equips.length;i++){
|
||||
var info=get.info(equips[i],false).distance;
|
||||
if(!info) continue;
|
||||
if(info.globalFrom){
|
||||
range+=info.globalFrom;
|
||||
}
|
||||
if(info.attackFrom){
|
||||
range+=info.attackFrom;
|
||||
}
|
||||
}
|
||||
if(info.attackFrom){
|
||||
range+=info.attackFrom;
|
||||
return (1-range);
|
||||
}
|
||||
var base=game.checkMod(player,'unchanged','attackRangeBase',player);
|
||||
if(base!='unchanged') range=base;
|
||||
else{
|
||||
range=1;
|
||||
var equips=player.getCards('e',function(card){
|
||||
return !ui.selected.cards||!ui.selected.cards.contains(card);
|
||||
});
|
||||
for(var i=0;i<equips.length;i++){
|
||||
var info=get.info(equips[i],false).distance;
|
||||
if(!info) continue;
|
||||
if(info.attackFrom){
|
||||
range-=info.attackFrom;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (1-range);
|
||||
range=game.checkMod(player,range,'attackRange',player);
|
||||
return range;
|
||||
},
|
||||
getGlobalFrom:function(){
|
||||
var player=this;
|
||||
|
@ -26031,7 +26050,8 @@
|
|||
return item;
|
||||
},
|
||||
addText:function(str,center){
|
||||
if(center!==false){
|
||||
if(str&&str.indexOf('<div')==0) this.add(str);
|
||||
else if(center!==false){
|
||||
this.add('<div class="text center">'+str+'</div>');
|
||||
}
|
||||
else{
|
||||
|
@ -26665,21 +26685,22 @@
|
|||
return false;
|
||||
},
|
||||
targetInRange:function(card,player,target){
|
||||
var info=get.info(card);
|
||||
var range=info.range;
|
||||
var outrange=info.outrange;
|
||||
if(range==undefined&&outrange==undefined) return true;
|
||||
|
||||
var mod=game.checkMod(card,player,target,'unchanged','targetInRange',player);
|
||||
var extra=0;
|
||||
if(mod!='unchanged'){
|
||||
if(typeof mod=='boolean') return mod;
|
||||
if(typeof mod=='number') extra=mod;
|
||||
}
|
||||
var info=get.info(card);
|
||||
var range=info.range;
|
||||
var outrange=info.outrange;
|
||||
if(range==undefined&&outrange==undefined) return true;
|
||||
if(typeof info.range=='function') return info.range(card,player,target);
|
||||
|
||||
if(player.hasSkill('undist')||target.hasSkill('undist')) return false;
|
||||
for(var i in range){
|
||||
if(i=='attack'){
|
||||
if(player.inRange(target)) return true;
|
||||
var range2=player.getAttackRange();
|
||||
if(range2<=0) return false;
|
||||
var distance=get.distance(player,target)+extra;
|
||||
|
@ -26741,7 +26762,7 @@
|
|||
else if(get.itemtype(select)=='select') range=select;
|
||||
else if(typeof select=='function') range=select(card,player);
|
||||
game.checkMod(card,player,range,'selectTarget',player);
|
||||
if(info.singleCard) return [range[0]*2,range[1]*2];
|
||||
if(info.singleCard&&info.filterAddedTarget) return [range[0]*2,range[1]*2];
|
||||
return range;
|
||||
},
|
||||
judge:function(card,player,target){
|
||||
|
@ -27458,7 +27479,8 @@
|
|||
content:function(content,player){
|
||||
return '已有'+get.cnNumber(player.hujia)+'点护甲值';
|
||||
}
|
||||
}
|
||||
},
|
||||
markimage:'image/card/shield.png',
|
||||
},
|
||||
counttrigger:{
|
||||
trigger:{global:'phaseAfter'},
|
||||
|
@ -27490,9 +27512,6 @@
|
|||
popup:false,
|
||||
firstDo:true,
|
||||
content:function(){
|
||||
// for(var i=0;i<game.players.length;i++){
|
||||
// game.players[i].in();
|
||||
// }
|
||||
if(player.isTurnedOver()){
|
||||
trigger.cancel();
|
||||
player.turnOver();
|
||||
|
@ -27501,20 +27520,31 @@
|
|||
else{
|
||||
player.phaseSkipped=false;
|
||||
}
|
||||
if((player==_status.roundStart||_status.roundSkipped)&&!trigger.skill){
|
||||
delete _status.roundSkipped;
|
||||
game.roundNumber++;
|
||||
trigger._roundStart=true;
|
||||
game.updateRoundNumber();
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()&&game.players[i].outCount>0){
|
||||
game.players[i].outCount--;
|
||||
if(game.players[i].outCount==0&&!game.players[i].outSkills){
|
||||
game.players[i].in();
|
||||
}
|
||||
if(!trigger.skill){
|
||||
var isRound=_status.roundSkipped;
|
||||
if(_status.seatNumSettled){
|
||||
var seatNum=player.getSeatNum();
|
||||
if(seatNum!=0){
|
||||
if(typeof _status.lastSeatNum!='number'||seatNum<_status.lastSeatNum) isRound=true;
|
||||
_status.lastSeatNum=seatNum;
|
||||
}
|
||||
}
|
||||
event.trigger('roundStart');
|
||||
else if(player==_status.roundStart) isRound=true;
|
||||
if(isRound){
|
||||
delete _status.roundSkipped;
|
||||
game.roundNumber++;
|
||||
trigger._roundStart=true;
|
||||
game.updateRoundNumber();
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].isOut()&&game.players[i].outCount>0){
|
||||
game.players[i].outCount--;
|
||||
if(game.players[i].outCount==0&&!game.players[i].outSkills){
|
||||
game.players[i].in();
|
||||
}
|
||||
}
|
||||
}
|
||||
event.trigger('roundStart');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
@ -33987,6 +34017,10 @@
|
|||
}
|
||||
else{
|
||||
game.addVideo('swapSeat',null,[player1.dataset.position,player2.dataset.position]);
|
||||
var seat1=player1.seatNum;
|
||||
var seat2=player2.seatNum;
|
||||
player2.seatNum=seat1;
|
||||
player1.seatNum=seat2;
|
||||
var temp1,pos,i,num;
|
||||
temp1=player1.dataset.position;
|
||||
player1.dataset.position=player2.dataset.position;
|
||||
|
@ -42397,7 +42431,7 @@
|
|||
delete window.noname_skin_list;
|
||||
var asset_version=updates.shift();
|
||||
|
||||
var skipcharacter=[],skipcard=['tiesuo_mark'];
|
||||
var skipcharacter=[],skipcard=['tiesuo_mark','shield'];
|
||||
if(!lib.config.asset_full){
|
||||
for(var i=0;i<lib.config.all.sgscharacters.length;i++){
|
||||
var pack=lib.characterPack[lib.config.all.sgscharacters[i]];
|
||||
|
@ -45511,7 +45545,7 @@
|
|||
node.node.hp.remove();
|
||||
node.node.group.remove();
|
||||
node.node.intro.remove();
|
||||
if(node.node.replaceButton) node.node.replaceButton.remove();
|
||||
if(node.node.replaceButton) node.node.replaceButton.remove();;
|
||||
}
|
||||
node.node={
|
||||
name:ui.create.div('.name',node),
|
||||
|
@ -45540,7 +45574,13 @@
|
|||
node.node.group.dataset.nature=get.groupnature(double[double.length==2?1:0]);
|
||||
}
|
||||
ui.create.div(node.node.hp);
|
||||
var textnode=ui.create.div('.text',get.numStr(infoitem[2]),node.node.hp);
|
||||
var hp=get.infoHp(infoitem[2]),maxHp=get.infoMaxHp(infoitem[2]),hujia=get.infoHujia(infoitem[2]);
|
||||
var str=get.numStr(hp);
|
||||
if(hp!=maxHp){
|
||||
str+='/';
|
||||
str+=get.numStr(maxHp);
|
||||
}
|
||||
var textnode=ui.create.div('.text',str,node.node.hp);
|
||||
if(infoitem[2]==0){
|
||||
node.node.hp.hide();
|
||||
}
|
||||
|
@ -45550,10 +45590,15 @@
|
|||
else{
|
||||
node.node.hp.dataset.condition='high';
|
||||
}
|
||||
if(hujia>0){
|
||||
ui.create.div(node.node.hp,'.shield');
|
||||
ui.create.div('.text',get.numStr(hujia),node.node.hp);
|
||||
}
|
||||
}
|
||||
else{
|
||||
var hp=get.infoHp(infoitem[2]);
|
||||
var maxHp=get.infoMaxHp(infoitem[2]);
|
||||
var shield=get.infoHujia(infoitem[2]);
|
||||
if(maxHp>14){
|
||||
if(typeof infoitem[2]=='string') node.node.hp.innerHTML=infoitem[2];
|
||||
else node.node.hp.innerHTML=get.numStr(infoitem[2]);
|
||||
|
@ -45564,6 +45609,9 @@
|
|||
var next=ui.create.div('',node.node.hp);
|
||||
if(i>=hp) next.classList.add('exclude');
|
||||
}
|
||||
for(var i=0;i<shield;i++){
|
||||
ui.create.div(node.node.hp,'.shield');
|
||||
}
|
||||
}
|
||||
}
|
||||
if(node.node.hp.childNodes.length==0){
|
||||
|
@ -50267,14 +50315,21 @@
|
|||
infoHp:function(hp){
|
||||
if(typeof hp=='number') return hp;
|
||||
else if(typeof hp=='string'&&hp.indexOf('/')!=-1){
|
||||
return parseInt(hp.slice(0,hp.indexOf('/')));
|
||||
return parseInt(hp.split('/')[0]);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
infoMaxHp:function(hp){
|
||||
if(typeof hp=='number') return hp;
|
||||
else if(typeof hp=='string'&&hp.indexOf('/')!=-1){
|
||||
return parseInt(hp.slice(hp.indexOf('/')+1));
|
||||
return parseInt(hp.split('/')[1]);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
infoHujia:function(hp){
|
||||
if(typeof hp=='string'&&hp.indexOf('/')!=-1){
|
||||
var splited=hp.split('/');
|
||||
if(splited.length>2) return parseInt(splited[2]);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
|
@ -52872,7 +52927,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
var skills=node.getSkills(null,null,false).slice(0);
|
||||
var skills=node.getSkills(null,false,false).slice(0);
|
||||
var skills2=game.filterSkills(skills,node);
|
||||
if(node==game.me&&node.hiddenSkills.length){
|
||||
skills.addArray(node.hiddenSkills);
|
||||
|
@ -54047,6 +54102,7 @@
|
|||
var result=0;
|
||||
var value;
|
||||
if(Array.isArray(card)){
|
||||
if(!card.length) return 0;
|
||||
value=0;
|
||||
for(var i=0;i<card.length;i++){
|
||||
value+=get.value(card[i],player,method);
|
||||
|
|
|
@ -155,6 +155,7 @@ window.noname_source_list=[
|
|||
'theme/style/hp/image/round2.png',
|
||||
'theme/style/hp/image/round3.png',
|
||||
'theme/style/hp/image/round4.png',
|
||||
'theme/style/hp/image/shield.png',
|
||||
'theme/style/hp/image/xinglass1.png',
|
||||
'theme/style/hp/image/xinglass2.png',
|
||||
'theme/style/hp/image/xinglass3.png',
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
window.noname_update={
|
||||
version:'1.9.113.3',
|
||||
update:'1.9.113.2',
|
||||
version:'1.9.113.4',
|
||||
update:'1.9.113.3',
|
||||
changeLog:[
|
||||
'界郭皇后、界马岱、赵嫣',
|
||||
'海外服群曹操、霍峻、刘宏、臧霸',
|
||||
'玩点韩龙',
|
||||
'苍井えりか、藏里见',
|
||||
'海外服张曼成、程普',
|
||||
'十周年界吴国太、冯熙、邓芝、祢衡、张宝',
|
||||
'护甲图标修改',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
|
@ -14,16 +15,16 @@ window.noname_update={
|
|||
//'card/gwent.js',
|
||||
//'card/huanlekapai.js',
|
||||
//'card/mtg.js',
|
||||
'card/sp.js',
|
||||
//'card/sp.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/yunchou.js',
|
||||
'card/yunchou.js',
|
||||
//'card/yingbian.js',
|
||||
//'card/yongjian.js',
|
||||
//'card/zhenfa.js',
|
||||
//'card/zhulu.js',
|
||||
'character/diy.js',
|
||||
'character/extra.js',
|
||||
//'character/extra.js',
|
||||
//'character/hearth.js',
|
||||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
|
@ -31,14 +32,14 @@ window.noname_update={
|
|||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/offline.js',
|
||||
'character/old.js',
|
||||
//'character/old.js',
|
||||
//'character/ow.js',
|
||||
'character/rank.js',
|
||||
'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
'character/sp2.js',
|
||||
'character/standard.js',
|
||||
//'character/standard.js',
|
||||
'character/tw.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
|
@ -47,18 +48,18 @@ window.noname_update={
|
|||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
'layout/default/layout.css',
|
||||
//'layout/newlayout/global.css',
|
||||
//'layout/default/menu.css',
|
||||
//'layout/nova/layout.css',
|
||||
//'layout/mobile/equip.css',
|
||||
//'mode/boss.js',
|
||||
'mode/brawl.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/chess.js',
|
||||
//'mode/connect.js',
|
||||
//'mode/doudizhu.js',
|
||||
'mode/guozhan.js',
|
||||
'mode/identity.js',
|
||||
//'mode/identity.js',
|
||||
//'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/tafang.js',
|
||||
|
@ -70,8 +71,16 @@ window.noname_update={
|
|||
//'game/package.js',
|
||||
//'game/asset.js',
|
||||
//'game/source.js',
|
||||
//'theme/style/hp/xinglass.css',
|
||||
//'theme/style/hp/xinround.css',
|
||||
'theme/style/hp/custom.css',
|
||||
'theme/style/hp/emotion.css',
|
||||
'theme/style/hp/glass.css',
|
||||
'theme/style/hp/image',
|
||||
'theme/style/hp/official.css',
|
||||
'theme/style/hp/ol.css',
|
||||
'theme/style/hp/round.css',
|
||||
'theme/style/hp/xinglass.css',
|
||||
'theme/style/hp/xinround.css',
|
||||
'theme/style/hp/image/shield.png',
|
||||
//'theme/style/hp/image/xinglass1.png',
|
||||
//'theme/style/hp/image/xinglass2.png',
|
||||
//'theme/style/hp/image/xinglass3.png',
|
||||
|
|
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 158 KiB |
After Width: | Height: | Size: 191 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 144 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 171 KiB |
After Width: | Height: | Size: 169 KiB |
|
@ -1977,6 +1977,10 @@ div:not(.handcards)>.card>.info>span,
|
|||
border: 1px solid rgba(39, 79, 7, 1);
|
||||
box-shadow: rgba(0,0,0,0.2) 1px -1px 2px inset, rgba(255,255,255,0.15) -1px 1px 5px inset;
|
||||
}
|
||||
.button.newstyle>.hp>.shield{
|
||||
background: rgba(63, 119, 173,1);
|
||||
border: 1px solid rgba(31, 82, 131, 1);
|
||||
}
|
||||
.button.newstyle>.hp>div.text{
|
||||
background: none !important;
|
||||
box-shadow: none !important;
|
||||
|
@ -2609,31 +2613,35 @@ div:not(.handcards)>.card>.info>span,
|
|||
box-shadow: 0px 1px 1px rgba(0,0,0,0.5);
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
.hp[data-condition="high"]>div:not(.lost) {
|
||||
.button .hp>.shield {
|
||||
background: rgba(63, 119, 173,1);
|
||||
border: 1px solid rgba(63, 119, 173, 1);
|
||||
}
|
||||
.hp[data-condition="high"]>div:not(.lost):not(.shield) {
|
||||
background: rgba(57, 123, 4,1);
|
||||
border: 1px solid rgba(39, 79, 7, 1);
|
||||
}
|
||||
.hp[data-condition="mid"]>div:not(.lost) {
|
||||
.hp[data-condition="mid"]>div:not(.lost):not(.shield) {
|
||||
background: rgba(166, 140, 6,1);
|
||||
border: 1px solid rgba(79, 64, 7, 1);
|
||||
}
|
||||
.hp[data-condition="low"]>div:not(.lost) {
|
||||
.hp[data-condition="low"]>div:not(.lost):not(.shield) {
|
||||
background: rgba(148, 27, 27,1);
|
||||
border: 1px solid rgba(79, 7, 7, 1);
|
||||
}
|
||||
.hp.actcount>div:not(.lost) {
|
||||
.hp.actcount>div:not(.lost):not(.shield) {
|
||||
background: rgba(63, 119, 173,1);
|
||||
border: 1px solid rgba(31, 82, 131, 1);
|
||||
}
|
||||
.treasure>.hp>div:not(.lost) {
|
||||
.treasure>.hp>div:not(.lost):not(.shield) {
|
||||
background: rgba(63, 119, 173,1) !important;
|
||||
border: 1px solid rgba(31, 82, 131, 1) !important;
|
||||
}
|
||||
.hp.actcount>div.overflow:not(.lost) {
|
||||
.hp.actcount>div.overflow:not(.lost):not(.shield) {
|
||||
background: rgb(154, 154, 154);
|
||||
border: 1px solid rgb(109, 109, 109);
|
||||
}
|
||||
.hp.actcount.overflow2>div.overflow:not(.lost) {
|
||||
.hp.actcount.overflow2>div.overflow:not(.lost):not(.shield) {
|
||||
background: rgb(173, 129, 63);
|
||||
border: 1px solid rgb(131, 109, 31);
|
||||
}
|
||||
|
@ -2643,12 +2651,17 @@ div:not(.handcards)>.card>.info>span,
|
|||
filter: grayscale(1);
|
||||
-webkit-filter: grayscale(1);
|
||||
}
|
||||
|
||||
.hp>.lost {
|
||||
background: rgba(57, 123, 4,1);
|
||||
border: 1px solid rgba(39, 79, 7, 1);
|
||||
filter: grayscale(1);
|
||||
-webkit-filter: grayscale(1);
|
||||
}
|
||||
.hp>.shield {
|
||||
background: rgba(63, 119, 173,1);
|
||||
border: 1px solid rgba(31, 82, 131, 1);
|
||||
}
|
||||
.hp.text[data-condition="low"],
|
||||
.hp.textstyle[data-condition="low"] {
|
||||
text-shadow: black 0 0 1px,rgba(232, 53, 53,1) 0 0 2px,rgba(232, 53, 53,1) 0 0 5px,rgba(232, 53, 53,1) 0 0 10px
|
||||
|
@ -5332,3 +5345,4 @@ div[data-decoration="bronze"]::after{
|
|||
::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
|
@ -510,7 +510,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gz_luyusheng:['female','wu',3,['zhente','zhiwei']],
|
||||
gz_zongyu:['male','shu',3,['zyqiao','chengshang']],
|
||||
gz_miheng:['male','qun',3,['gzrekuangcai','gzshejian'],['gzskin']],
|
||||
gz_fengxi:['male','wu',3,['yusui','boyan']],
|
||||
gz_fengxi:['male','wu',3,['gzyusui','gzboyan'],['gzskin']],
|
||||
gz_dengzhi:['male','shu',3,['gzjianliang','gzweimeng'],['gzskin']],
|
||||
gz_re_nanhualaoxian:['male','qun',4,['gzgongxiu','gzjinghe']],
|
||||
gz_zhouyi:['female','wu',3,['gzzhukou','gzduannian','gzlianyou']],
|
||||
|
@ -1831,8 +1831,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
//冯熙
|
||||
yusui:{
|
||||
audio:2,
|
||||
gzyusui:{
|
||||
audio:'yusui',
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player.isIn()&&event.player.isEnemyOf(player)&&get.color(event.card)=='black';
|
||||
|
@ -1867,11 +1867,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else target.loseHp(target.hp-player.hp);
|
||||
},
|
||||
},
|
||||
boyan:{
|
||||
gzboyan:{
|
||||
audio:'boyan',
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer((target)=>lib.skill.boyan.filterTarget(null,player,target));
|
||||
return game.hasPlayer((target)=>lib.skill.gzboyan.filterTarget(null,player,target));
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&target.countCards('h')<target.maxHp;
|
||||
|
@ -1880,7 +1881,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
target.draw(Math.min(5,target.maxHp-target.countCards('h')));
|
||||
'step 1'
|
||||
target.addTempSkill('boyan_block');
|
||||
target.addTempSkill('gzboyan_block');
|
||||
'step 2'
|
||||
if(target.isIn()) player.chooseBool('纵横:是否令'+get.translation(target)+'获得【驳言】?').set('ai',function(){
|
||||
var evt=_status.event.getParent();
|
||||
|
@ -1889,18 +1890,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
else event.finish();
|
||||
'step 3'
|
||||
if(result.bool){
|
||||
target.addTempSkill('boyan_zongheng',{player:'phaseEnd'});
|
||||
target.addTempSkill('gzboyan_zongheng',{player:'phaseEnd'});
|
||||
game.log(player,'发起了','#y纵横',',令',target,'获得了技能','#g【驳言】');
|
||||
}
|
||||
},
|
||||
derivation:'boyan_zongheng',
|
||||
derivation:'gzboyan_zongheng',
|
||||
subSkill:{
|
||||
zongheng:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:lib.filter.notMe,
|
||||
content:function(){
|
||||
target.addTempSkill('boyan_block');
|
||||
target.addTempSkill('gzboyan_block');
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
|
@ -1931,7 +1932,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
target:function(player,target){
|
||||
if(get.attitude(player,target)>0) return Math.min(5,target.maxHp-target.countCards('h'));
|
||||
if(target.maxHp-target.countCards('h')==1&&target.countCards('h','shan')&&!target.hasSkillTag('respondShan',true,null,true)&&player.countCards('h',function(card){
|
||||
return get.tag(card,'respondShan')&&get.effect(target,card,player,player)>0&&player.getUseValue(card)>0;
|
||||
return get.tag(card,'respondShan')&&get.effect(target,card,player,player)>0&&player.getUseValue(card,null,true)>0;
|
||||
})) return -2;
|
||||
},
|
||||
},
|
||||
|
@ -3083,12 +3084,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gzrekuangcai:{
|
||||
audio:'gzkuangcai',
|
||||
forced:true,
|
||||
preHidden:true,
|
||||
trigger:{player:'phaseDiscardBegin'},
|
||||
filter:function(event,player){
|
||||
return player.getHistory('useCard').length&&!player.getHistory('sourceDamage').length;
|
||||
return !player.getHistory('useCard').length||!player.getHistory('sourceDamage').length;
|
||||
},
|
||||
content:function(){
|
||||
player.addTempSkill('gzrekuangcai_less');
|
||||
if(!player.getHistory('useCard').length) player.addTempSkill('gzrekuangcai_more');
|
||||
else player.addTempSkill('gzrekuangcai_less');
|
||||
},
|
||||
mod:{
|
||||
targetInRange:function(card,player){
|
||||
|
@ -3107,6 +3110,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
charlotte:true,
|
||||
},
|
||||
more:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+1;
|
||||
},
|
||||
},
|
||||
charlotte:true,
|
||||
},
|
||||
},
|
||||
},
|
||||
gzkuangcai:{
|
||||
|
@ -3227,8 +3238,24 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
logTarget:'player',
|
||||
content:function(){
|
||||
player.discard(player.getCards('h'));
|
||||
trigger.player.damage();
|
||||
'step 0'
|
||||
var cards=player.getCards('h');
|
||||
event.num=cards.length;
|
||||
player.discard(cards);
|
||||
'step 1'
|
||||
var target=trigger.player,str=get.translation(target);
|
||||
event.target=target;
|
||||
if(!target.isIn()) event.finish();
|
||||
else if(!target.hasCard(function(card){
|
||||
return lib.filter.canBeDiscarded(card,player,target);
|
||||
},'he')) event._result={index:1};
|
||||
else player.chooseControl().set('choiceList',[
|
||||
'弃置'+str+'的'+get.cnNumber(num)+'张牌',
|
||||
'对'+str+'造成1点伤害',
|
||||
]).set('ai',()=>1);
|
||||
'step 2'
|
||||
if(result.index==0) player.discardPlayerCard(target,num,true,'he');
|
||||
else target.damage();
|
||||
},
|
||||
},
|
||||
gzpozhen:{
|
||||
|
@ -11038,12 +11065,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
qingyin_info:'限定技,出牌阶段,你可令所有己方角色将体力值回满,然后移除此武将牌。',
|
||||
gzlianpian:'联翩',
|
||||
gzlianpian_info:'①结束阶段开始时,若你于此回合内弃置过所有角色的牌数之和大于你的体力值,你可令一名与你势力相同的角色将手牌补至X张(X为其体力上限)。②其他角色的结束阶段开始时,若其于此回合内弃置过所有角色的牌数之和大于你的体力值,其可选择:1.弃置你的一张牌;2.令你回复1点体力。',
|
||||
yusui:'玉碎',
|
||||
yusui_info:'当你成为其他势力的角色使用黑色牌的目标后,你可以失去1点体力,然后选择一项:①令其弃置X张手牌(X为其体力上限);②令其失去Y点体力(Y为其的体力值减去你的体力值,不为正时不可选择)',
|
||||
boyan:'驳言',
|
||||
boyan_info:'出牌阶段限一次,你可令一名其他角色将手牌摸至体力上限(至多摸五张),然后其本回合不能使用或打出手牌。',
|
||||
boyan_zongheng:'驳言·纵横',
|
||||
boyan_zongheng_info:'出牌阶段限一次,你可令一名其他角色本回合不能使用或打出手牌。',
|
||||
gzyusui:'玉碎',
|
||||
gzyusui_info:'当你成为其他势力的角色使用黑色牌的目标后,你可以失去1点体力,然后选择一项:①令其弃置X张手牌(X为其体力上限);②令其失去Y点体力(Y为其的体力值减去你的体力值,不为正时不可选择)',
|
||||
gzboyan:'驳言',
|
||||
gzboyan_info:'出牌阶段限一次,你可令一名其他角色将手牌摸至体力上限(至多摸五张),然后其本回合不能使用或打出手牌。',
|
||||
gzboyan_zongheng:'驳言·纵横',
|
||||
gzboyan_zongheng_info:'出牌阶段限一次,你可令一名其他角色本回合不能使用或打出手牌。',
|
||||
gzjinfa:'矜伐',
|
||||
gzjinfa_info:'出牌阶段限一次,你可弃置一张牌并令一名其他角色选择一项:①交给你一张装备牌,若你以此法获得了♠牌,则其视为对你使用一张【杀】。②你获得其一张牌。',
|
||||
gzduwu:'黩武',
|
||||
|
@ -11082,11 +11109,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gzlixia:'礼下',
|
||||
gzlixia_info:'与你势力不同的角色的准备阶段开始时,其可弃置你装备区内的一张牌,然后其选择一项:①弃置两张手牌。②失去1点体力。③令你摸两张牌。',
|
||||
gzrekuangcai:'狂才',
|
||||
gzrekuangcai_info:'锁定技,你于回合内使用牌无距离和次数限制;弃牌阶段开始时,若你本回合内使用过牌但未造成过伤害,则你的手牌上限-1。',
|
||||
gzrekuangcai_info:'锁定技,你于回合内使用牌无距离和次数限制;弃牌阶段开始时,若你本回合内:未使用过牌,则你本回合的手牌上限+1;使用过牌但未造成过伤害,则你本回合的手牌上限-1。',
|
||||
gzkuangcai:'狂才',
|
||||
gzkuangcai_info:'锁定技,你的回合内,你使用牌无距离和次数限制,无视防具且不能被【无懈可击】响应;弃牌阶段开始时,若你本回合使用过牌但没造成伤害,本回合你的手牌上限-2;若你本回合造成的伤害点数不小于你使用的牌数,你将手牌摸至体力上限且本回合手牌上限+2。',
|
||||
gzshejian:'舌箭',
|
||||
gzshejian_info:'当你成为其他角色使用牌的唯一目标后,你可以弃置所有手牌。若如此做,你对其造成1点伤害。',
|
||||
gzshejian_info:'当你成为其他角色使用牌的唯一目标后,你可以弃置所有手牌。若如此做,你选择一项:⒈弃置其等量的牌。⒉对其造成1点伤害。',
|
||||
gzzhidao:'雉盗',
|
||||
gzzhidao2:'雉盗',
|
||||
gzzhidao_info:'锁定技,出牌阶段开始时,你选择一名其他角色,然后直到此回合结束,你与其的距离视为1且你不能使用牌指定除你与其外的角色为目标;当你于出牌阶段内首次对其造成伤害后,你获得其区域内的一张牌。',
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
|
@ -6,7 +6,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
|
@ -14,7 +14,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
|
@ -29,19 +29,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/emotion1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:brightness(0.8) contrast(1.5);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/emotion2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:brightness(0.8) contrast(1.5);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/emotion3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -33,19 +33,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/glass1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/glass2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/glass3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -33,19 +33,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/official1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -6,7 +6,7 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/official2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -14,7 +14,7 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/official3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -30,19 +30,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/ol1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/ol2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/ol3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -35,14 +35,24 @@
|
|||
filter:grayscale(1) opacity(0.8);
|
||||
-webkit-filter:grayscale(1) opacity(0.8);
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.6);
|
||||
border-radius: 0px;
|
||||
filter:grayscale(1) opacity(0.8);
|
||||
-webkit-filter:grayscale(1) opacity(0.8);
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/round1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/round2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/round3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -33,19 +33,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinglass1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinglass2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinglass3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -33,19 +33,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/xinglass4.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinround1.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -7,7 +7,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinround2.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -16,7 +16,7 @@
|
|||
-webkit-filter:none;
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
.hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
background: url('image/xinround3.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
|
@ -33,19 +33,30 @@
|
|||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
.hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
background: url('image/shield.png');
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
background-size: 100% 100%;
|
||||
transform: scale(1.4);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="high"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="mid"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost){
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)[data-condition="low"]>div:not(.lost):not(.shield){
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.lost{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
#arena.oldlayout .player .hp:not(.text):not(.actcount):not(.treasure)>.shield{
|
||||
transform: scale(1.6);
|
||||
}
|
||||
|
||||
.button.newstyle>.hp>.text{
|
||||
margin-left: 5px;
|
||||
|
|