This commit is contained in:
Spmario233 2020-10-15 13:41:31 +08:00
parent 9421219f15
commit 843bfcf453
20 changed files with 412 additions and 227 deletions

View File

@ -408,12 +408,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
subtype:'equip2',
loseDelay:false,
onLose:function(){
if(player.isDamaged()) player.logSkill('baiyin_skill');
var next=game.createEvent('baiyin_recover');
event.next.remove(next);
event.getParent().after.push(next);
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
next.player=player;
next.setContent(function(){
if(player.isDamaged()) player.logSkill('baiyin_skill');
player.recover();
});
},

View File

@ -132,8 +132,19 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(player.hasSkillTag('unequip2')) return false;
return true;
},
loseDelay:false,
onLose:function(){
var next=game.createEvent('taipingyaoshu');
event.next.remove(next);
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
next.player=player;
next.setContent(lib.card.taipingyaoshu.onLosex);
},
onLosex:function(){
'step 0'
player.logSkill('taipingyaoshu');
player.draw(2);
'step 1'
if(player.hp>1) player.loseHp();

View File

@ -1663,7 +1663,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
onremove:true,
trigger:{
player:['damage','damageCancelled','damageZero'],
target:['shaMiss','useCardToExcluded'],
target:['shaMiss','useCardToExcluded','shaEnd'],
global:['useCardEnd'],
},
charlotte:true,
filter:function(event,player){

View File

@ -319,11 +319,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterTarget:lib.filter.notMe,
selectTarget:1,
toself:false,
onEquip:function(){
var cards=player.getCards('e',function(cardz){
return cardz!=card;
});
if(cards.length) player.discard(cards);
loseThrow:true,
customSwap:function(){
return true;
},
ai:{
order:9,
@ -467,9 +465,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(player.sex!='male') return;
var next=game.createEvent('nvzhuang_lose');
event.next.remove(next);
event.getParent().after.push(next);
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
next.player=player;
next.card=card;
next.setContent(function(){
if(player.countCards('he')){
player.popup('nvzhuang');

View File

@ -444,6 +444,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return ['equip','delay'].contains(get.type(card,false));
},
filterTarget:function(card,player,target){
if(player==target) return false;
var card=ui.selected.cards[0];
if(get.type(card,false)=='delay') return target.canAddJudge({name:card.name});
return target.isEmpty(get.subtype(card,false));
@ -948,10 +949,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
misuzu_zhongxing:{
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
return event.js&&event.js.length>0&&!player.hasSkill('misuzu_zhongxing_haruko');
var evt=event.getl(player);
return evt&&evt.js&&evt.js.length>0&&!player.hasSkill('misuzu_zhongxing_haruko');
},
content:function(){
'step 0'
@ -979,16 +985,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
kamome_yangfan:{
trigger:{
global:'gameDrawAfter',
player:['enterGame','loseAfter'],
player:['loseAfter','enterGame'],
source:'gainAfter',
global:['equipAfter','addJudgeAfter','gameDrawAfter'],
},
forced:true,
filter:function(event,player){
if(event.name!='lose') return true;
return event.es&&event.es.length;
if(typeof event.getl!='function') return true;
var evt=event.getl(player);
return evt&&evt.player==player&&evt.es&&evt.es.length;
},
content:function(){
if(trigger.name=='lose') player.draw(2*trigger.es.length);
if(trigger.getl) player.draw(2*trigger.getl(player).es.length);
else player.equip(game.createCard2('kamome_suitcase','spade',1));
},
ai:{
@ -1469,6 +1477,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
'step 1'
if(result.control=='cancel2'){event.finish();return;}
player.logSkill('shiorimiyuki_tingxian');
var num=1+result.index;
player.draw(num);
'step 2'

View File

@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_shiki:['female','shen','3/5',['shiki_omusubi'],['key']],
//key_hina:['female','shen',3,[],['key']],
//shen_diaochan:['female','shen',3,[],['qun']],
shen_guanyu:['male','shen',5,['new_wuhun','wushen'],['shu']],
shen_zhaoyun:['male','shen',2,['xinjuejing','relonghun'],['shu']],
shen_zhugeliang:['male','shen',3,['qixing','kuangfeng','dawu'],['shu']],
@ -3422,6 +3423,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
qixian_info:'锁定技你的手牌上限视为7。',
caopi_xingdong:'行动',
caopi_xingdong_info:'出牌阶段限一次,你可以将一张【杀】或普通锦囊牌交给一名其他角色,然后该角色选择一项:对除你以外的角色使用此牌并在此牌结算完成后和你各摸一张牌;或跳过下回合的判定阶段和摸牌阶段。',
//shen_diaochan:'神貂蝉',
key_kagari:'篝',
kagari_zongsi:'纵丝',
@ -3429,7 +3431,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_shiki:'神山识',
shiki_omusubi:'御结',
shiki_omusubi_info:'一轮游戏开始时你可以减1点体力上限然后将一名其他角色武将牌上的技能加入到你的武将牌上。',
//key_hina:'雏',
shiki_omusubi_append:'<span style="font-family: yuanli">来吧,羽依里。用你的手,让我变成那只真正的鬼吧!</span>',
//key_hina:'佐藤雏',
extra_feng:'神话再临·风',
extra_huo:'神话再临·火',

View File

@ -12,7 +12,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_standard:["xin_xiahoudun"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"],
mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","old_liuzan"],
mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","liuzan"],
mobile_trashbin:['old_jiakui'],
},
},
@ -47,7 +47,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_bulianshi:['female','wu',3,['anxu','zhuiyi']],
miheng:['male','qun',3,['kuangcai','shejian']],
taoqian:['male','qun',3,['zhaohuo','yixiang','yirang']],
old_liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']],
liuzan:['male','wu',4,['fenyin']],lingcao:['male','wu',4,['dujin']],
sunru:['female','wu',3,['yingjian','shixin']],
lifeng:['male','shu',3,['tunchu','shuliang']],
zhuling:['male','wei',4,['xinzhanyi']],
@ -178,12 +178,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
loseDelay:false,
onLose:function(){
player.logSkill('rw_baiyin_skill');
var next=game.createEvent('rw_baiyin_recover');
var next=game.createEvent('rewrite_baiyin_recover');
event.next.remove(next);
event.getParent().after.push(next);
var evt=event.getParent();
if(evt.getlx===false) evt=evt.getParent();
evt.after.push(next);
next.player=player;
next.setContent(function(){
player.logSkill('rw_baiyin_skill');
player.draw(2);
player.recover();
});
@ -5594,7 +5596,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
translate:{
old_liuzan:'手杀留赞',
liuzan:'手杀留赞',
re_sp_zhugeliang:"手杀卧龙",
ly_piliche:'霹雳车',
ly_piliche_info:'当你对其他角色造成伤害后,若造成伤害的牌不为延时锦囊牌,你可以弃置其装备区里的防具牌与+1坐骑牌当你失去此装备时销毁之。',

View File

@ -1107,7 +1107,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rexuanfeng:{
audio:'xuanfeng',
audioname:['boss_lvbu3','re_heqi','re_lingtong'],
trigger:{player:['loseAfter','phaseDiscardEnd']},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
if(!game.hasPlayer(function(current){
@ -1120,7 +1124,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
return cards.length>1;
}
else return event.es&&event.es.length>0;
var evt=event.getl(player);
return evt&&evt.es&&evt.es.length>0;
},
content:function(){
'step 0'
@ -5727,16 +5732,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
relianying:{
audio:2,
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
if(player.countCards('h')) return false;
return event.hs&&event.hs.length;
var evt=event.getl(player);
return evt&&evt.hs&&evt.hs.length;
},
content:function(){
"step 0"
var num=trigger.hs.length;
player.chooseTarget('选择发动连营的目标',[1,num]).ai=function(target){
var num=trigger.getl(player).hs.length;
player.chooseTarget(get.prompt('relianying'),'令至多'+get.cnNumber(num)+'名角色各摸一张牌',[1,num]).ai=function(target){
var player=_status.event.player;
if(player==target) return get.attitude(player,target)+10;
return get.attitude(player,target);

View File

@ -3148,11 +3148,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tuntian:{
audio:2,
audioname:['gz_dengai'],
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
frequent:true,
filter:function(event,player){
if(player==_status.currentPhase) return false;
return event.cards2&&event.cards2.length>0;
var evt=event.getl(player);
return evt&&evt.cards2&&evt.cards2.length>0;
},
content:function(){
'step 0'
@ -4912,9 +4917,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
weimu:{
trigger:{global:'useCard'},
trigger:{global:'useCard1'},
audio:2,
forced:true,
firstDo:true,
filter:function (event,player,card){
if(get.color(event.card)!='black') return false;
return event.card.name=='nanman'&&player!=event.player||event.card.name=='wanjian'&&player!=event.player||event.card.name=='taoyuan'&&player.hp<player.maxHp||event.card.name=='wugu';

View File

@ -5089,7 +5089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
refuhan:{
audio:'fuhan',
trigger:{player:'phaseBegin'},
trigger:{player:'phaseZhunbeiBegin'},
unique:true,
limited:true,
skillAnimation:true,
@ -5128,6 +5128,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
list.remove(players[i].name1);
list.remove(players[i].name2);
}
list.remove('zhaoyun');
list.remove('re_zhaoyun');
list.remove('ol_zhaoyun');
list=list.randomGets(Math.max(4,game.countPlayer()));
var skills=[];
for(var i of list){
@ -6111,12 +6114,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
hongde:{
audio:2,
trigger:{player:['gainAfter','loseAfter']},
trigger:{
player:['loseAfter','gainAfter'],
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
if(event.name=='lose'&&event.type=='gain'&&event.getParent().player==player) return false;
if(event.name=='gain') return event.cards&&event.cards.length>1;
return event.cards2&&event.cards2.length>1;
if(event.name=='gain'&&event.player==player) return event.cards&&event.cards.length>1;
var evt=event.getl(player);
return evt&&evt.cards2&&evt.cards2.length>1;
},
content:function(){
'step 0'
@ -11314,19 +11321,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname:['liushan']
},
shoucheng:{
trigger:{global:'loseAfter'},
trigger:{
global:['equipAfter','addJudgeAfter','loseAfter','gainAfter'],
},
audio:2,
check:function(event,player){
return get.attitude(player,event.player)>0;
},
direct:true,
filter:function(event,player){
if(event.player==player||event.player.isDead()||event.player.countCards('h')) return false;
if(_status.currentPhase==event.player) return false;
return event.hs&&event.hs.length>0;
return game.hasPlayer(function(current){
if(current==_status.currentPhase) return false;
var evt=event.getl(current);
return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0;
});
},
logTarget:'player',
content:function(){
trigger.player.draw();
"step 0"
event.list=game.filterPlayer(function(current){
if(current==_status.currentPhase) return false;
var evt=trigger.getl(current);
return evt&&evt.hs&&evt.hs.length;
}).sortBySeat(_status.currentPhase);
"step 1"
var target=event.list.shift();
event.target=target;
if(target.isAlive()&&target.countCards('h')==0){
player.chooseBool(get.prompt2('shoucheng',target)).set('ai',function(){
return get.attitude(_status.event.player,_status.event.getParent().target)>0;
});
}
else event.goto(3);
"step 2"
if(result.bool){
player.logSkill(event.name,target);
target.draw();
}
"step 3"
if(event.list.length) event.goto(1);
},
ai:{
threaten:1.3,

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caobuxing:['male','wu',3,['moying','juanhui'],[]],
//sp_zhangliao:['male','qun',4,['mubing','diaoling']],
re_sunluyu:['female','wu',3,['remeibu','remumu']],
liuzan:['male','wu',4,['refenyin','liji']],
re_liuzan:['male','wu',4,['refenyin','liji']],
wenyang:['male','wei',5,['xinlvli','choujue']],
wangshuang:['male','wei',8,['spzhuilie']],
huaman:['female','shu',3,['hmmanyi','mansi','souying','zhanyuan']],
@ -61,7 +61,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
}
},
skill:{
@ -231,14 +231,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
moying:{
audio:2,
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
return player!=_status.currentPhase&&event.getParent().name!='useCard'&&event.cards2&&event.cards2.length==1&&!player.hasSkill('moying2')&&['equip','trick'].contains(get.type2(event.cards2[0],event.hs.contains(event.cards2[0])?player:false));
if(player==_status.currentPhase||event.getParent().name=='useCard') return false;
var evt=event.getl(player);
return evt&&evt.cards2&&evt.cards2.length==1&&
['equip','trick'].contains(get.type2(evt.cards2[0],(evt.type=='discard'&&evt.hs.contains(evt.cards2[0]))?player:false))&&
!player.hasSkill('moying2');
},
content:function(){
"step 0"
var number=trigger.cards2[0].number;
var number=trigger.getl(player).cards2[0].number;
var numbers=[number-2,number-1,number,number+1,number+2].filter(function(number){
return number>=1&&number<=13;
});
@ -2594,8 +2602,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:"biaozhao",
filter:function (event,player){
if(!player.storage.biaozhao) return false;
var evt=event.getParent();
if(evt&&(evt.name=='useCard'||evt.name=='respond'||evt.name=='biaozhao2')) return false;
var suit=get.suit(player.storage.biaozhao[0]);
var num=get.number(player.storage.biaozhao[0]);
for(var i=0;i<event.cards.length;i++){
@ -4011,11 +4017,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
player.chooseControl(list).set('prompt','秉诏:请选择一个势力').set('ai',function(){
var listx=list.slice(0);
list.sort(function(a,b){
listx.sort(function(a,b){
return game.countPlayer(function(current){
return current.group==b;
return current!=player&&current.group==b;
})-game.countPlayer(function(current){
return current.group==a;
return current!=player&&current.group==a;
});
})
return listx[0];
@ -5523,7 +5529,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
beishui_info:'觉醒技准备阶段若你的手牌数或体力值小于2你减1点体力上限并获得技能〖清剿〗然后将〖膂力〗改为受到伤害后也可以发动。',
qingjiao:'清剿',
qingjiao_info:'出牌阶段开始时,你可以弃置所有手牌,然后从牌堆或弃牌堆中随机获得八张牌名各不相同且副类别不同的牌。若如此做,结束阶段,你弃置所有牌。',
liuzan:'留赞',
re_liuzan:'留赞',
refenyin:'奋音',
refenyin_info:'锁定技,你的回合内,当一张牌进入弃牌堆后,若本回合内没有过与此牌花色相同的卡牌进入过弃牌堆,则你摸一张牌。',
liji:'力激',

View File

@ -2063,11 +2063,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
lianying:{
audio:2,
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
frequent:true,
filter:function(event,player){
if(player.countCards('h')) return false;
return event.hs&&event.hs.length>0;
var evt=event.getl(player);
return evt&&evt.player==player&&evt.hs&&evt.hs.length>0;
},
content:function(){
player.draw();
@ -2090,14 +2095,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiaoji:{
audio:2,
audioname:['sp_sunshangxiang','re_sunshangxiang'],
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
frequent:true,
filter:function(event,player){
return event.es&&event.es.length>0;
var evt=event.getl(player);
return evt&&evt.player==player&&evt.es&&evt.es.length>0;
},
content:function(){
"step 0"
event.count=trigger.es.length;
event.count=trigger.getl(player).es.length;
"step 1"
event.count--;
player.draw(2);

View File

@ -52,11 +52,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.chooseToUse({
prompt:'请使用得到的一张牌,或者受到来自'+get.translation(player)+'的一点伤害',
filterCard:function(card,player,event){
var cards=_status.event.cards;
if(!cards||get.itemtype(card)!='card'||!cards.contains(card)) return false;
if(get.itemtype(card)!='card'||!cards.contains(card)) return false;
return lib.filter.filterCard(card,player,event);
},
cards:event.cards,
});
'step 2'
if(result.bool){
@ -521,10 +519,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
'step 0'
var list=[];
game.countPlayer(function(current){
if(current.group!=player.group&&current.group!='shen') list.add(current.group);
var list=lib.group.filter(function(group){
return group!=player.group&&game.hasPlayer(function(current){
return current.group==group;
});
})
if(!event.renshe) list.push('cancel2');
player.chooseControl(list).set('prompt',event.renshe?'请选择一个势力':get.prompt('chijie')).set('prompt2',event.renshe?'':'将自己的势力变更为场上存在的一个势力').set('',function(){
return list.randomGet();

View File

@ -421,33 +421,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
},
"qinguo_use":{
audio:2,
trigger:{
player:"equipEnd",
},
filter:function (event,player){
if(!event.swapped&&player.countCards('e')==player.hp&&player.isDamaged()){
return true;
};
return false;
},
frequent:true,
content:function (){
player.recover();
},
ai:{
reverseEquip:true,
effect:{
target:function (card,player,target,current){
if(get.type(card)=='equip'&&player==target&&player==_status.currentPhase) return [1,3];
},
},
},
},
"xinfu_qinguo":{
group:["qinguo_use","qinguo_lose"],
group:"xinfu_qinguo_recover",
audio:2,
subfrequent:['recover'],
trigger:{
player:"useCardEnd",
},
@ -455,25 +432,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return get.type(event.card)=='equip';
},
direct:true,
content:function (){
content:function(){
player.chooseUseTarget({name:'sha'},get.prompt('xinfu_qinguo'),'视为使用一张【杀】',false).logSkill='qinguo_use';
},
},
"qinguo_lose":{
audio:2,
subSkill:{
recover:{
audio:'xinfu_qinguo',
trigger:{
player:"loseAfter",
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
prompt:'是否发动【勤国】回复1点体力',
filter:function (event,player){
if(event.getParent().name=='equip') return false;
if(player.hp!=player.countCards('e')||!player.isDamaged()) return false;
return event.es&&event.es.length>0;
if(player.isHealthy()||player.countCards('e')!=player.hp) return false;
var evt=event.getl(player);
if(event.name=='equip') return !evt||evt.cards.length!=1;
return evt&&evt.es.length;
},
frequent:true,
content:function (){
content:function(){
player.recover();
},
},
},
},
"xinfu_jijun":{
ai:{
reverseEquip:true,

View File

@ -239,13 +239,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
reshangshi:{
audio:'shangshi',
trigger:{player:['loseAfter','changeHp']},
trigger:{
player:['loseAfter','changeHp','gainMaxHpAfter','loseMaxHpAfter'],
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
frequent:true,
prompt:function(event,player){
return '是否发动【伤逝】将手牌摸至'+get.cnNumber(player.getDamagedHp())+'张?'
},
prompt2:false,
filter:function(event,player){
if(event.getl&&!event.getl(player)) return false;
return player.countCards('h')<player.getDamagedHp();
},
content:function(){
@ -8433,6 +8438,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'zhiman',
audioname:['guansuo','re_masu'],
trigger:{source:'damageBegin2'},
filter:function(event,player){
return player!=event.player;
},
check:function(event,player){
if(get.damageEffect(event.player,player,player)<0) return true;
var att=get.attitude(player,event.player);
@ -10837,7 +10845,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xuanfeng:{
audio:2,
audioname:['boss_lvbu3','re_heqi'],
trigger:{player:['loseAfter','phaseDiscardEnd']},
trigger:{
player:['loseAfter','phaseDiscardEnd'],
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
if(event.name=='phaseDiscard'){
@ -10847,7 +10859,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
return cards.length>1;
}
else return event.es&&event.es.length>0;
else{
var evt=event.getl(player);
return evt&&evt.es&&evt.es.length>0;
}
},
content:function(){
"step 0"

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.105.2',
'v1.9.105.3',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -3292,7 +3292,7 @@ window.noname_asset_list=[
'image/character/key_doruji.jpg',
'image/character/key_riki.jpg',
'image/character/key_yuiko.jpg',
'image/character/old_liuzan.jpg',
'image/character/re_liuzan.jpg',
'image/character/re_caozhang.jpg',
'image/character/re_chengpu.jpg',
'image/character/re_guohuai.jpg',

View File

@ -11974,12 +11974,12 @@
event.result.num2[event.iwhile]=event.num2;
var str;
if(event.num1>event.num2){
str=get.translation(player.name)+'拼点成功';
str=get.translation(player)+'拼点成功';
player.popup('胜');
target.popup('负');
}
else{
str=get.translation(player.name)+'拼点失败';
str=get.translation(player)+'拼点失败';
if(event.num1==event.num2){
player.popup('平');
target.popup('平');
@ -12139,13 +12139,13 @@
if(event.num1>event.num2){
event.result.bool=true;
event.result.winner=player;
str=get.translation(player.name)+'拼点成功';
str=get.translation(player)+'拼点成功';
player.popup('胜');
target.popup('负');
}
else{
event.result.bool=false;
str=get.translation(player.name)+'拼点失败';
str=get.translation(player)+'拼点失败';
if(event.num1==event.num2){
event.result.tie=true;
player.popup('平');
@ -14447,7 +14447,7 @@
if(cards){
var owner=event.source||get.owner(cards[0]);
if(owner){
var next=owner.lose(cards,ui.special).set('type','gain').set('forceDie',true);
var next=owner.lose(cards,ui.special).set('type','gain').set('forceDie',true).set('getlx',false);
if(event.animate=='give'||event.visible==true) next.visible=true;
event.relatedLose=next;
}
@ -15226,7 +15226,7 @@
equip:function(){
"step 0"
var owner=get.owner(card)
if(owner) owner.lose(card,ui.special,'visible').set('type','equip');
if(owner) owner.lose(card,ui.special,'visible').set('type','equip').set('getlx',false);
"step 1"
if(event.cancelled){
event.finish();
@ -15257,9 +15257,16 @@
}
player.equiping=true;
"step 3"
var current=player.getCards('e',{subtype:get.subtype(card)});
var info=get.info(card,false);
var current=player.getCards('e',function(card){
if(info.customSwap) return info.customSwap(card);
return get.subtype(card,false)==info.subtype;
});
if(current.length){
player.lose(current,false,'visible');
player.lose(current,false,'visible').set('type','equip').set('getlx',false);
if(info.loseThrow){
player.$throw(current);
}
event.swapped=true;
event.redo();
}
@ -15310,7 +15317,7 @@
if(cards){
var owner=get.owner(cards[0]);
if(owner){
owner.lose(cards,'visible');
event.relatedLose=owner.lose(cards,'visible').set('getlx',false);
}
}
"step 1"
@ -18728,6 +18735,27 @@
}
}
next.setContent('gain');
next.getl=function(player){
var that=this;
var map={
player:player,
hs:[],
es:[],
js:[],
cards:[],
cards2:[],
};
player.getHistory('lose',function(evt){
if(evt.parent==that){
map.hs.addArray(evt.hs);
map.es.addArray(evt.es);
map.js.addArray(evt.js);
map.cards.addArray(evt.cards);
map.cards2.addArray(evt.cards2);
}
});
if(map.cards.length>0) return map;
};
return next;
},
give:function(cards,target,visible){
@ -18774,6 +18802,9 @@
next.cards=next.cards.slice(0);
}
next.setContent('lose');
next.getl=function(player){
if(this.getlx!==false&&this.player==player) return this;
};
return next;
},
damage:function(){
@ -19130,6 +19161,28 @@
}
next.setContent(lib.element.content.equip);
if(get.is.object(next.card)&&next.card.cards) next.card=next.card.cards[0];
next.cards=[next.card];
next.getl=function(player){
var that=this;
var map={
player:player,
hs:[],
es:[],
js:[],
cards:[],
cards2:[],
};
player.getHistory('lose',function(evt){
if(evt.parent==that){
map.hs.addArray(evt.hs);
map.es.addArray(evt.es);
map.js.addArray(evt.js);
map.cards.addArray(evt.cards);
map.cards2.addArray(evt.cards2);
}
});
if(map.cards.length>0) return map;
};
return next;
},
addJudge:function(card,cards){
@ -19140,6 +19193,27 @@
if(get.itemtype(next.cards)=='card') next.cards=[next.cards];
next.player=this;
next.setContent('addJudge');
next.getl=function(player){
var that=this;
var map={
player:player,
hs:[],
es:[],
js:[],
cards:[],
cards2:[],
};
player.getHistory('lose',function(evt){
if(evt.parent==that){
map.hs.addArray(evt.hs);
map.es.addArray(evt.es);
map.js.addArray(evt.js);
map.cards.addArray(evt.cards);
map.cards2.addArray(evt.cards2);
}
});
if(map.cards.length>0) return map;
};
return next;
},
canAddJudge:function(card){

View File

@ -1,50 +1,51 @@
window.noname_update={
version:'1.9.105.2',
update:'1.9.105.1',
version:'1.9.105.3',
update:'1.9.105.2',
changeLog:[
'庆祝《成神之日》开播!联机服务器全新升级!',
'新留赞插画',
'getl机制',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
//'card/guozhan.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
//'character/diy.js',
//'character/extra.js',
'card/zhulu.js',
'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
//'character/refresh.js',
//'character/shenhua.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
'character/tw.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
///'character/yijiang.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/nova/layout.css',
//'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
'mode/guozhan.js',
//'mode/chess.js',
//'mode/tafang.js',
//'mode/single.js',
@ -53,8 +54,8 @@ window.noname_update={
//'mode/versus.js',
//'mode/boss.js',
'game/game.js',
'game/keyWords.js',
'game/server.js',
//'game/keyWords.js',
//'game/server.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -829,28 +829,26 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
xindiaodu:{
audio:"diaodu",
global:"xindiaodu_use",
subfrequent:['use'],
group:'xindiaodu_use',
subSkill:{
use:{
trigger:{
player:"useCard",
},
popup:false,
frequent:true,
prompt:'是否发动【调度】摸一张牌?',
filter:function (event,player){
return get.type(event.card)=='equip'&&game.hasPlayer(function(current){
return current.hasSkill('xindiaodu')&&current.isFriendOf(player);
});
return get.type(event.card)=='equip'&&event.player.isAlive()&&
event.player.isFriendOf(player)&&(player==event.player||player.hasSkill('xindiaodu'));
},
content:function (){
var logger=game.findPlayer(function(current){
return current.isFriendOf(player)&&current.hasSkill('xindiaodu');
});
logger.line(player,'green');
logger.logSkill('xindiaodu');
player.draw('nodelay');
direct:true,
content:function(){
'step 0'
var next=trigger.player.chooseBool('是否发动【调度】摸一张牌?');
if(player.hasSkill('xindiaodu')) next.set('frequentSkill','xindiaodu');
'step 1'
if(result.bool){
player.logSkill('xindiaodu',trigger.player);
trigger.player.draw('nodelay');
}
},
ai:{
reverseEquip:true,
@ -900,7 +898,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
else event.finish();
'step 2'
if(result.bool){
if(result.bool&&player.getCards('h').contains(result.cards[0])){
event.card=result.cards[0];
player.chooseTarget('是否将'+get.translation(event.card)+'交给一名其他角色?',function(card,player,current){
return current!=player&&current!=_status.event.target1&&current.isFriendOf(player);
@ -4090,10 +4088,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
xuanlve:{
trigger:{player:'loseAfter'},
trigger:{
player:'loseAfter',
source:'gainAfter',
global:['equipAfter','addJudgeAfter'],
},
direct:true,
filter:function(event,player){
return event.es&&event.es.length>0;
var evt=event.getl(player);
return evt&&evt.es&&evt.es.length>0;
},
content:function(){
'step 0'
@ -5495,13 +5498,35 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
inherit:'shoucheng',
audio:'shoucheng',
filter:function(event,player){
if(event.player.isDead()||event.player.countCards('h')) return false;
if(!event.player.isFriendOf(player)) return false;
if(_status.currentPhase==event.player) return false;
for(var i=0;i<event.cards.length;i++){
if(event.cards[i].original=='h') return true;
return game.hasPlayer(function(current){
if(current==_status.currentPhase||!current.isFriendOf(player)) return false;
var evt=event.getl(current);
return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0;
});
},
content:function(){
"step 0"
event.list=game.filterPlayer(function(current){
if(current==_status.currentPhase||!current.isFriendOf(player)) return false;
var evt=trigger.getl(current);
return evt&&evt.hs&&evt.hs.length;
}).sortBySeat(_status.currentPhase);
"step 1"
var target=event.list.shift();
event.target=target;
if(target.isAlive()&&target.countCards('h')==0){
player.chooseBool(get.prompt2('gzshoucheng',target)).set('ai',function(){
return get.attitude(_status.event.player,_status.event.getParent().target)>0;
});
}
return false;
else event.goto(3);
"step 2"
if(result.bool){
player.logSkill(event.name,target);
target.draw();
}
"step 3"
if(event.list.length) event.goto(1);
},
},
yicheng:{