Add files via upload

This commit is contained in:
Spmario233 2019-11-14 13:47:38 +08:00 committed by GitHub
parent e49154d19a
commit 74503ed0b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 685 additions and 356 deletions

View File

@ -315,7 +315,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
effect:function(){
if(result.bool==false){
player.skip('phaseDraw');
if(get.is.changban()) player.addTempSkill('bingliang_changban');
else player.skip('phaseDraw');
}
},
ai:{
@ -399,6 +400,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
player.recover();
},
filterLose:function(card,player){
if(player.hasSkillTag('unequip2')) return false;
return player.hp<player.maxHp;
},
skills:['baiyin_skill'],
@ -419,7 +421,26 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
skill:{
bingliang_changban:{
cardSkill:true,
unique:true,
trigger:{player:'phaseDrawBegin'},
silent:true,
content:function(){
trigger.num--;
},
group:'bingliang_changban2'
},
bingliang_changban2:{
cardSkill:true,
trigger:{player:'phaseDrawAfter'},
silent:true,
content:function(){
if(player.enemy) player.enemy.draw();
}
},
muniu_skill:{
equipSkill:true,
enable:'phaseUse',
usable:1,
filterCard:true,
@ -758,8 +779,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
guding_skill:{
equipSkill:true,
audio:true,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event){
if(event.parent.name=='_lianhuan'||event.parent.name=='_lianhuan2') return false;
if(event.card&&event.card.name=='sha'){
@ -780,11 +802,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
tengjia1:{
equipSkill:true,
trigger:{target:['useCardToBefore']},
forced:true,
priority:6,
audio:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -799,6 +823,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function(card,player,target,current){
if(target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -816,9 +841,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
tengjia2:{
trigger:{player:'damageBegin'},
equipSkill:true,
trigger:{player:'damageBegin3'},
filter:function(event,player){
if(event.nature!='fire') return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -844,10 +871,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
tengjia3:{
equipSkill:true,
audio:'tengjia1',
trigger:{target:'shaBegin'},
forced:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -861,11 +890,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
baiyin_skill:{
trigger:{player:'damageBegin'},
equipSkill:true,
trigger:{player:'damageBegin4'},
forced:true,
audio:true,
filter:function(event,player){
if(event.num<=1) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -879,6 +910,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
zhuque_skill:{
equipSkill:true,
trigger:{player:'useCard1'},
priority:7,
filter:function(event,player){

View File

@ -129,6 +129,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
equipValue:6
}
},
onLoseFilter:function(card,player){
if(player.hasSkillTag('unequip2')) return false;
return true;
},
onLose:function(){
'step 0'
player.draw(2);
@ -760,6 +764,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
skill:{
liulongcanjia:{
equipSkill:true,
mod:{
targetEnabled:function(card,player,target){
if(['equip3','equip4'].contains(get.subtype(card))) return false;
@ -767,6 +772,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
minguangkai_cancel:{
equipSkill:true,
trigger:{target:'useCardToTarget'},
forced:true,
check:function(event,player){
@ -791,6 +797,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
minguangkai_link:{
equipSkill:true,
trigger:{player:'linkBefore'},
forced:true,
priority:20,
@ -811,6 +818,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
dinglanyemingzhu_skill:{
equipSkill:true,
inherit:'zhiheng',
filter:function(event,player){
return !player.hasSkill('gzzhiheng',true);
@ -867,6 +875,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
feilongduofeng:{
equipSkill:true,
trigger:{player:'useCardToPlayered'},
logTarget:'target',
check:function(event,player){
@ -880,6 +889,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
feilongduofeng2:{
equipSkill:true,
trigger:{source:'dieAfter'},
filter:function(event,player){
if(event.reason&&event.reason.card&&event.reason.card.name=='sha'){
@ -1005,6 +1015,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
feilongduofeng3:{
equipSkill:true,
trigger:{source:'dying'},
filter:function(event,player){
var evt=event.getParent('damage');
@ -1019,6 +1030,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
taipingyaoshu:{
equipSkill:true,
mod:{
maxHandcard:function(player,num){
if(player.hasSkill('huangjintianbingfu')){
@ -1029,8 +1041,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
});
}
},
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin4'},
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -1047,6 +1060,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
nothunder:true,
effect:{
target:function(card,player,target,current){
if(card.name=='sha'&&player.getEquip('qinggang')||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -1062,6 +1076,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
g_taipingyaoshu:{},
yuxi_skill:{
equipSkill:true,
trigger:{player:'phaseDrawBegin'},
forced:true,
filter:function(event,player){
@ -1076,6 +1091,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
group:'yuxi_skill2'
},
yuxi_skill2:{
equipSkill:true,
trigger:{player:'phaseUseBegin'},
forced:true,
filter:function(event,player){
@ -1242,9 +1258,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
huxinjing:{
trigger:{player:'damageBefore'},
equipSkill:true,
trigger:{player:'damageBegin4'},
// forced:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -1261,6 +1279,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
huxinjing2:{
equipSkill:true,
trigger:{player:['damageEnd','damageZero']},
priority:10,
forced:true,
@ -1273,8 +1292,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
player.removeSkill('huxinjing2');
}
},
wuliu_skill:{},
wuliu_skill:{
equipSkill:true,
},
g_wuliu_skill:{
equipSkill:true,
mod:{
attackFrom:function(from,to,distance){
return distance-game.countPlayer(function(current){
@ -1287,8 +1309,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
sanjian_skill:{
equipSkill:true,
audio:true,
trigger:{source:'damageAfter'},
trigger:{source:'damageSource'},
direct:true,
filter:function(event,player){
if(event.player.isDead()) return false;

View File

@ -442,6 +442,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
skill:{
lanyinjia:{
equipSkill:true,
enable:['chooseToRespond'],
filterCard:true,
viewAs:{name:'shan'},
@ -468,7 +469,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
lanyinjia2:{
trigger:{player:'damageEnd'},
equipSkill:true,
trigger:{player:'damageBegin4'},
forced:true,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&player.getEquip('lanyinjia');
@ -481,6 +483,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
zhungangshuo:{
equipSkill:true,
trigger:{player:'useCardToPlayered'},
logTarget:'target',
filter:function(event,player){
@ -507,7 +510,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
qibaodao:{
trigger:{source:'damageBegin'},
equipSkill:true,
trigger:{source:'damageBegin1'},
forced:true,
filter:function(event){
return event.card&&event.card.name=='sha'&&event.player.isHealthy();
@ -531,11 +535,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
g_jinchan:{
cardSkill:true,
trigger:{target:'useCardToBefore'},
forced:true,
popup:false,
filter:function(event,player){
if(event.player==player) return false;
if(event.getParent().directHitcontains(player)) return false;
var num=player.countCards('h','jinchan');
return num&&num==player.countCards('h');
},
@ -569,6 +575,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
yinyueqiang:{
equipSkill:true,
trigger:{player:['useCard','respondAfter']},
direct:true,
filter:function(event,player){
@ -591,6 +598,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
g_du:{
cardSkill:true,
trigger:{player:'loseEnd'},
popup:false,
forced:true,
@ -614,6 +622,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
caomu_skill:{
cardSkill:true,
unique:true,
trigger:{player:'phaseDrawBegin'},
silent:true,

View File

@ -1157,7 +1157,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
else{
target.chooseToUse('对'+get.translation(event.addedTarget)+'使用一张杀,或令'+get.translation(player)+'获得你的武器牌',
{name:'sha'},event.addedTarget,-1).set('targetRequired',true);
{name:'sha'}).set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',event.addedTarget);
}
"step 1"
if(event.directfalse||result.bool==false){
@ -1394,6 +1397,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
skill:{
qinglong_guozhan:{
equipSkill:true,
trigger:{player:'useCard'},
forced:true,
filter:function(event,player){
@ -1408,6 +1412,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
qinglong_guozhan_mingzhi:{
equipSkill:true,
vanish:true,
silent:true,
onremove:true,
@ -1431,7 +1436,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
hanbing_skill:{
trigger:{source:'damageBefore'},
equipSkill:true,
trigger:{source:'damageBegin2'},
//direct:true,
audio:true,
filter:function(event){
@ -1475,11 +1481,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
renwang_skill:{
equipSkill:true,
trigger:{target:'shaBegin'},
forced:true,
priority:6,
audio:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -1492,7 +1500,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
ai:{
effect:{
target:function(card,player){
target:function(card,player,target){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -1504,6 +1513,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
zhuge_skill:{
equipSkill:true,
mod:{
cardUsable:function(card,player,num){
if(card.name=='sha'){
@ -1516,6 +1526,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
},
cixiong_skill:{
equipSkill:true,
trigger:{player:'useCardToPlayered'},
audio:true,
logTarget:'target',
@ -1536,15 +1547,54 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
qinggang_skill:{
ai:{
equipSkill:true,
audio:true,
trigger:{
player:'useCardToPlayered',
},
filter:function(event){
return event.card.name=='sha';
},
forced:true,
logTarget:'target',
content:function(){
trigger.target.addTempSkill('qinggang2');
trigger.target.storage.qinggang2.add(trigger.card);
},
/*ai:{
unequip:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.name=='sha') return true;
return false;
}
}
}*/
},
qinggang2:{
firstDo:true,
ai:{unequip2:true},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
onremove:true,
trigger:{
player:['damage','damageCancelled','damageZero'],
target:['shaMiss','useCardToExcluded'],
},
charlotte:true,
filter:function(event,player){
return player.storage.qinggang2&&event.card&&player.storage.qinggang2.contains(event.card);
},
silent:true,
forced:true,
popup:false,
priority:12,
content:function(){
player.storage.qinggang2.remove(trigger.card);
if(!player.storage.qinggang2.length) player.removeSkill('qinggang2');
},
},
qinglong_skill:{
equipSkill:true,
trigger:{player:'shaMiss'},
direct:true,
filter:function(event,player){
@ -1568,6 +1618,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
zhangba_skill:{
equipSkill:true,
enable:['chooseToUse','chooseToRespond'],
filterCard:true,
selectCard:2,
@ -1590,6 +1641,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
guanshi_skill:{
equipSkill:true,
trigger:{player:'shaMiss'},
direct:true,
audio:true,
@ -1623,6 +1675,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
fangtian_skill:{
equipSkill:true,
mod:{
selectTarget:function(card,player,range){
if(card.name!='sha') return;
@ -1638,7 +1691,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
fangtian_guozhan:{
trigger:{player:'useCard'},
equipSkill:true,
trigger:{player:'useCard1'},
silent:true,
filter:function(event,player){
if(get.mode()!='guozhan') return false;
@ -1687,7 +1741,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
qilin_skill:{
trigger:{source:'damageBegin'},
equipSkill:true,
trigger:{source:'damageBegin2'},
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.notLink()&&event.player.getCards('e',{subtype:['equip3','equip4','equip6']}).length>0
},
@ -1711,11 +1766,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
bagua_skill:{
equipSkill:true,
trigger:{player:'chooseToRespondBegin'},
filter:function(event,player){
if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false;
if(!lib.filter.cardRespondable({name:'shan'},player,event)) return false;
if(player.hasSkillTag('unequip2')) return false;
var evt=event.getParent();
if(evt.player&&evt.player.hasSkillTag('unequip',false,{
name:evt.card?evt.card.name:null,
@ -1742,6 +1799,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function(card,player,target,effect){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,

View File

@ -1249,7 +1249,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'dawu3'
},
dawu2:{
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin4'},
filter:function(event){
if(event.nature!='thunder') return true;
return false;
@ -1326,14 +1326,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
kuangfeng2:{
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
filter:function(event){
if(event.nature=='fire') return true;
return false;
},
mark:true,
intro:{
content:'已获得大雾标记'
content:'已获得狂风标记'
},
forced:true,
content:function(){

View File

@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_refresh:["old_zhangfei","old_huatuo"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"],
old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai"],
old_yijiang3:["liru","old_zhuran","ol_zhuran","ol_manchong","ol_guohuai","old_fuhuanghou","old_caochong"],
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"],
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
@ -16,6 +16,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
old_fuhuanghou:['female','qun',3,['oldzhuikong','oldqiuyuan']],
old_caochong:['male','wei',3,['oldrenxin','oldchengxiang']],
xuhuang:['male','wei',4,['gzduanliang']],
pangde:['male','qun',4,['mashu','mengjin']],
xiahouyuan:['male','wei',4,['shensu']],
@ -747,7 +749,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
oldqianxi:{
trigger:{source:'damageBefore'},
trigger:{source:'damageBegin2'},
check:function(event,player){
var att=get.attitude(player,event.player);
if(event.player.hp==event.player.maxHp) return att<0;
@ -875,6 +877,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_guohuai:'OL郭淮',
ol_wuyi:'OL吴懿',
ol_liuyu:'OL刘虞',
old_fuhuanghou:'旧伏皇后',
old_caochong:'旧曹冲',
old_fuhun:'父魂',
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',

View File

@ -466,13 +466,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseDrawBegin",
},
direct:true,
priority:-10,
//priority:-10,
filter:function (event){
return event.num>0;
},
content:function (){
"step 0"
player.chooseTarget(get.prompt('new_retuxi'),'获得至多'+get.translation(trigger.num)+'名角色的各一张手牌,然后少摸等量的牌',[1,trigger.num],function(card,player,target){
var num=get.copy(trigger.num);
if(get.mode()=='guozhan'&&num>2) num=2;
player.chooseTarget(get.prompt('new_retuxi'),'获得至多'+get.translation(num)+'名角色的各一张手牌,然后少摸等量的牌',[1,num],function(card,player,target){
return target.countCards('h')>0&&player!=target;
},function(target){
var att=get.attitude(_status.event.player,target);
@ -792,7 +794,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"new_yijue2":{
trigger:{
player:"damageBegin",
player:"damageBegin1",
},
filter:function (event){
return event.source&&event.source.hasSkill('new_yijue')&&event.card&&event.card.name=='sha'&&get.suit(event.card)=='heart'&&event.notLink();
@ -1030,15 +1032,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"new_reyaowu":{
trigger:{
player:"damage",
player:"damageBegin3",
},
priority:1,
audio:"yaowu",
filter:function (event){
if(event.card&&(event.card.name=='sha')){
if(['red','black'].contains(get.color(event.card))) return true;
}
return false;
return event.card&&event.card.name=='sha';
},
forced:true,
check:function (event){
@ -1047,7 +1046,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
content:function (){
if(get.color(trigger.cards)=='black') player.draw();
if(get.color(trigger.card)!='red') player.draw();
else trigger.source.chooseDrawRecover(true);
},
ai:{
@ -1936,7 +1935,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
reluoyi2:{
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink();
},
@ -2810,8 +2809,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
lib.filter.targetEnabled({name:'sha'},player,event.player)&&player.hasSha();
},
content:function(){
player.chooseToUse({name:'sha'},'诛害:是否对'+get.translation(trigger.player)+'使用一张杀?',
trigger.player,-1).set('logSkill','zhuhai');
player.chooseToUse({name:'sha'},'诛害:是否对'+get.translation(trigger.player)+'使用一张杀?').set('logSkill','zhuhai').set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',trigger.player);
}
},
qianxin:{
@ -3014,13 +3015,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xunxun:{
audio:2,
trigger:{player:'phaseDrawBefore'},
check:function(event,player){
return !player.hasSkill('reyiji2');
},
//check:function(event,player){
// return !player.hasSkill('reyiji2');
//},
content:function(){
"step 0"
event.cards=get.cards(4);
player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶').set('ai',ai.get.buttonValue);
player.chooseCardButton(event.cards,2,'选择两张牌置于牌堆顶',true).set('ai',ai.get.buttonValue);
"step 1"
if(result.bool){
var choice=[];
@ -3154,7 +3155,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_liyu":"利驭",
"new_liyu_info":"当你使用【杀】对一名其他角色造成伤害后,你可以获得其一张牌。若此牌不为装备牌,则其摸一张牌。若此牌为装备牌,则视为你对其选择的另一名角色使用一张【决斗】。",
"new_retuxi":"突袭",
"new_retuxi_info":"摸牌阶段摸牌时,你可以少摸任意张牌,然后选择等量的角色的各一张手牌。",
"new_retuxi_info":"摸牌阶段摸牌时,你可以少摸任意张牌,然后获得等量的角色的各一张手牌。",
"new_retuxi_info_guozhan":"摸牌阶段摸牌时,你可以少摸至多两张牌,然后获得等量的角色的各一张手牌。",
"new_reyiji":"遗计",
"new_reyiji_info":"每当你受到1点伤害后你可以摸两张牌然后可以将至多两张手牌交给其他角色。",
"new_rejianxiong":"奸雄",
@ -3180,7 +3182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"new_reqingnang":"青囊",
"new_reqingnang_info":"出牌阶段,你可以弃置一张手牌,令一名本回合内未成为过〖青囊〗的目标的角色回复一点体力。若你弃置的是黑色牌,则你本回合内不能再发动〖青囊〗。",
"new_reyaowu":"耀武",
"new_reyaowu_info":"锁定技,当任意一名角色使用【杀】对你造成伤害时若此杀为红色该角色回复1点体力或摸一张牌。若为黑色,则你摸一张牌。",
"new_reyaowu_info":"锁定技,当一名角色使用【杀】对你造成伤害时若此杀为红色该角色回复1点体力或摸一张牌。否则则你摸一张牌。",
reqingguo:'倾国',
reqingguo_info:'你可以将一张黑色牌当做【闪】使用或打出。',

View File

@ -1154,7 +1154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"tachibana_effect":{
audio:'nzry_huaiju',
trigger:{
global:['damageBefore','phaseDrawBegin'],
global:['damageBegin4','phaseDrawBegin'],
},
forced:true,
filter:function(event,player){
@ -2443,7 +2443,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
"step 0"
target.chooseToUse({name:'sha'},player,-1,'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true);
target.chooseToUse({name:'sha'},'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',player);
"step 1"
if(result.bool==false&&target.countCards('he')>0){
player.discardPlayerCard(target,'he',true);
@ -5225,6 +5228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(event,player){
return get.attitude(player,event.target)<0;
},
logTarget:'target',
content:function(){
player.discardPlayerCard('he',trigger.target,true);
}
@ -5527,7 +5531,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianxiang:{
audio:2,
audioname:['daxiaoqiao'],
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return player.countCards('h',{suit:'heart'})>0&&event.num>0;
@ -5622,7 +5626,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
retianxiang:{
audio:'tianxiang',
audioname:['daxiaoqiao'],
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin4'},
direct:true,
filter:function(event,player){
return player.countCards('he',{suit:'heart'})>0&&event.num>0;

View File

@ -24,7 +24,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
niujin:['male','wei',4,['cuorui','liewei']],
guanlu:['male','wei',3,['tuiyan','busuan','mingjie']],
gexuan:['male','wu',3,['lianhua','zhafu']],
gexuan:['male','wu',3,['gxlianhua','zhafu']],
wenyang:['male','wei',5,['xinlvli','choujue']],
mangyachang:["male","qun",4,["spjiedao"],[]],
xugong:["male","wu",3,["biaozhao","yechou"],[]],
@ -458,6 +458,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
cardimage:"baiyin",
type:"equip",
subtype:"equip2",
onLoseFilter:function(card,player){
if(player.hasSkillTag('unequip2')) return false;
return true;
},
onLose:function (){
player.recover();
player.draw(2);
@ -690,7 +694,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
//管辂和葛玄
lianhua:{
gxlianhua:{
audio:2,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]={
@ -713,28 +717,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.player!=player&&_status.currentPhase!=player;
},
content:function(){
player.storage.lianhua[player.getFriends().contains(trigger.player)?'red':'black']++;
player.markSkill('lianhua');
player.storage.gxlianhua[player.getFriends().contains(trigger.player)?'red':'black']++;
player.markSkill('gxlianhua');
},
group:'lianhua_harmonia',
group:'gxlianhua_harmonia',
subSkill:{
harmonia:{
forced:true,
audio:'lianhua',
audio:'gxlianhua',
sub:true,
trigger:{player:'phaseBegin'},
//filter:function(event,player){
// return player.storage.lianhua&&player.storage.lianhua.red+player.storage.lianhua.black>0;
// return player.storage.gxlianhua&&player.storage.gxlianhua.red+player.storage.gxlianhua.black>0;
//},
forced:true,
content:function(){
var cards=[];
var cards2=[];
var skill='';
var red=player.storage.lianhua.red;
var black=player.storage.lianhua.black;
player.storage.lianhua={red:0,black:0};
player.unmarkSkill('lianhua');
var red=player.storage.gxlianhua.red;
var black=player.storage.gxlianhua.black;
player.storage.gxlianhua={red:0,black:0};
player.unmarkSkill('gxlianhua');
if(red+black<4){
cards=['tao'];
skill='reyingzi';
@ -1298,7 +1302,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spjiedao:{
audio:2,
trigger:{
source:"damageBegin",
source:"damageBegin1",
},
usable:1,
direct:true,
@ -4341,7 +4345,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
zfengshi:{
audio:'fengshi',
audio:2,
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha'&&event.target.countCards('e');
@ -4356,7 +4360,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
chuanxin:{
trigger:{source:'damageBefore'},
audio:2,
trigger:{source:'damageBegin2'},
filter:function(event,player){
if(_status.currentPhase!=player) return false;
if(!_status.event.getParent('phaseUse')) return false;
@ -4379,6 +4384,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
logTarget:'player',
check:function(event,player){
if(get.mode()=='guozhan'){
if(get.guozhanRank(event.player.name2)<4) return false;
}
if(event.player.hasSkill('subplayer')) return false;
if(get.attitude(player,event.player)<0){
if(event.player.hp==1) return false;
@ -4391,6 +4399,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
if(trigger.player.countCards('e')){
trigger.player.chooseControl(function(event,player){
if(get.mode()=='guozhan'&&get.guozhanRank(event.player.name2)<4) return 1;
if(player.hp==1) return 1;
if(player.hp==2&&player.countCards('e')>=2) return 1;
return 0;
@ -4592,12 +4601,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'下一次受到超过1点的伤害时防止此伤害然后$跳过下个回合的摸牌阶段'
},*/
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin4'},
forced:true,
filter:function(event,player){
return event.num>1;
},
priority:-11,
//priority:-11,
content:function(){
trigger.cancel();
player.storage.kuanshi2.skip('phaseDraw');
@ -5791,14 +5800,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shichou2:{
group:'shichou3',
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin3'},
forced:true,
popup:false,
content:function(){
trigger.untrigger();
trigger.player=player.storage.shichou_target;
trigger.player.addSkill('shichou4');
trigger.trigger('damageBefore');
trigger.trigger('damageBegin3');
player.logSkill('shichou2',player.storage.shichou_target);
game.delay(0.5);
},
@ -6147,11 +6156,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return num+player.maxHp;
}
},
trigger:{global:'gameStart',player:'enterGame'},
trigger:{global:'gameDrawAfter',player:'enterGame'},
forced:true,
content:function(){
player.draw(player.maxHp,false);
player.$draw(player.maxHp);
player.draw(player.maxHp);
}
},
tuifeng:{
@ -7181,7 +7189,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jiaozi:{
audio:2,
trigger:{player:'damageBegin',source:'damageBegin'},
trigger:{player:'damageBegin3',source:'damageBegin1'},
forced:true,
filter:function(event,player){
return player.isMaxHandcard(true);
@ -7283,7 +7291,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
intro:{
content:'防止你受到的所有伤害'
},
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin3'},
forced:true,
content:function(){
trigger.cancel();
@ -7452,7 +7460,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jie:{
audio:1,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&event.card.name=='sha'&&get.color(event.card)=='red'&&event.notLink();
},
@ -7863,7 +7871,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
source:{
audio:"anxian",
trigger:{source:'damageBefore'},
trigger:{source:'damageBegin2'},
filter:function(event,player){
return event.card&&event.card.name=='sha';
},
@ -8472,7 +8480,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
nuzhan2:{
audio:'nuzhan',
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin2'},
forced:true,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.cards&&
@ -8583,7 +8591,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
subSkill:{
more:{
audio:true,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
direct:true,
filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){
@ -8620,7 +8628,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
less:{
audio:true,
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin2'},
filter:function(event,player){
if(!player.hasSkill('fenxin_nei')){
if(!player.countCards('h',{color:'red'})) return false;
@ -8830,7 +8838,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shixin:{
audio:2,
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin4'},
filter:function(event){
return event.nature=='fire';
},
@ -9146,7 +9154,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
hanyong3:{
audio:false,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
forced:true,
onremove:true,
filter:function(event,player){
@ -9305,7 +9313,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
fengpo2:{
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink();
},
@ -9414,7 +9422,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
fuji:{
trigger:{global:'damageBegin'},
trigger:{global:'damageBegin1'},
filter:function(event){
return event.source&&event.nature=='thunder';
},
@ -9499,7 +9507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
chouhai:{
audio:2,
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
forced:true,
check:function(){
return false;
@ -10403,7 +10411,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
mingshi:{
audio:2,
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return event.source&&event.source.hp>player.hp;
@ -11035,7 +11043,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(get.damageEffect(trigger.player,player,player)<=0){
nono=true;
}
var next=player.chooseToDiscard('弃置一张装备牌并令'+get.translation(player)+'摸一张牌,或受到一点伤害',get.prompt('xiaoguo',trigger.player),{type:'basic'});
var next=player.chooseToDiscard(get.prompt('xiaoguo',trigger.player),{type:'basic'});
next.set('ai',function(card){
if(_status.event.nono) return 0;
return 8-get.useful(card);
@ -11045,7 +11053,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 1"
if(result.bool){
var nono=(get.damageEffect(trigger.player,player,trigger.player)>=0);
trigger.player.chooseToDiscard('he','弃置一张装备牌,或受到一点伤害',{type:'equip'}).set('ai',function(card){
trigger.player.chooseToDiscard('he','弃置一张装备牌并令'+get.translation(player)+'摸一张牌,或受到一点伤害',{type:'equip'}).set('ai',function(card){
if(_status.event.nono){
return 0;
}
@ -12801,8 +12809,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
busuan_angelbeats:'卜算',
mingjie:'命戒',
mingjie_info:'结束阶段你可以摸一张牌若此牌为红色你可以重复此流程直到摸到黑色牌或摸到第三张牌。当你以此法摸到黑色牌时你失去1点体力。',
lianhua:'炼化',
lianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记 该角色与你阵营一致为红色不一致为黑色此颜色对玩家不可见直到你的准备阶段开始。准备阶段根据你获得的“丹血”标记的数量和颜色你获得相应的游戏牌以及获得相应技能直到回合结束。3枚或以下“英姿”和【桃】超过3枚且红色“丹血”较多“观星”和【无中生有】超过3枚且黑色“丹血”较多“直言”和【顺手牵羊】超过3枚且红色和黑色一样多【杀】、【决斗】和“攻心”。',
gxlianhua:'炼化',
gxlianhua_info:'你的回合外,每当有其他角色受到伤害后,你获得一个“丹血”标记 该角色与你阵营一致为红色不一致为黑色此颜色对玩家不可见直到你的准备阶段开始。准备阶段根据你获得的“丹血”标记的数量和颜色你获得相应的游戏牌以及获得相应技能直到回合结束。3枚或以下“英姿”和【桃】超过3枚且红色“丹血”较多“观星”和【无中生有】超过3枚且黑色“丹血”较多“直言”和【顺手牵羊】超过3枚且红色和黑色一样多【杀】、【决斗】和“攻心”。',
zhafu:'札符',
zhafu_info:' 限定技,出牌阶段,你可以选择一名其他角色。该角色的下一个弃牌阶段开始时,其选择保留一张手牌,然后将其余的手牌交给你。',
xinlvli:'膂力',

View File

@ -340,7 +340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
luoyi2:{
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
filter:function(event){
return event.card&&(event.card.name=='sha'||event.card.name=='juedou')&&event.notLink();
},

View File

@ -72,7 +72,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twbaimei:{
audio:2,
trigger:{
player:"damageBefore",
player:"damageBegin4",
},
forced:true,
priority:15,
@ -350,7 +350,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
twbaobian:{
audio:2,
trigger:{source:'damageBefore'},
trigger:{source:'damageBegin2'},
filter:function(event,player){
var card=event.card;
if(!card||(card.name!='sha'&&card.name!='juedou')) return false;

View File

@ -1136,7 +1136,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
delete player.storage.lingren;
},
trigger:{
player:"damageBegin",
player:"damageBegin3",
},
filter:function (event,player){
var info=player.storage.lingren;
@ -1246,14 +1246,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.line(trigger.player,'fire');
trigger.player.damage('fire');
trigger.player.addTempSkill('xionghuo_disable','phaseAfter');
game.delay();
event.finish();
event.goto(4);
'step 2'
player.line(trigger.player,'water');
trigger.player.loseHp();
trigger.player.addTempSkill('xionghuo_low','phaseAfter');
game.delay();
event.finish();
event.goto(4);
'step 3'
player.line(trigger.player,'green');
var card1=trigger.player.getCards('h').randomGet();
@ -1264,6 +1262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(list.length>0){
player.gain(list,trigger.player,'giveAuto','bySelf');
}
'step 4'
game.delay();
},
},
@ -1272,7 +1271,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sub:true,
forced:true,
trigger:{
source:"damageBegin",
source:"damageBegin1",
},
filter:function (event,player){
return event.player.hasSkill('xionghuo');
@ -1800,10 +1799,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_yinshi":{
audio:2,
trigger:{
player:"damageBefore",
player:"damageBegin4",
},
forced:true,
priority:15,
//priority:15,
filter:function (event,player){
if(player.hasSkill('smh_huoji')||player.hasSkill('smh_lianhuan')) return false;
if(!player.isEmpty(2)) return false;
@ -2220,7 +2219,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"zhenyi_heart":{
trigger:{
source:"damageBegin",
source:"damageBegin1",
},
filter:function (event,player){
return event.source&&player.storage.xinfu_falu_map.heart;
@ -3184,7 +3183,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"xinfu_zengdao2":{
trigger:{
source:"damageBegin",
source:"damageBegin1",
},
audio:"xinfu_zengdao",
forced:true,
@ -3290,7 +3289,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_gongqing":{
audio:true,
trigger:{
player:"damageBegin",
player:"damageBegin4",
},
forced:true,
filter:function (event,player){
@ -3323,7 +3322,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
audio:2,
trigger:{
player:"damageBefore",
player:"damageBegin4",
},
filter:function (event,player){
return (event.source&&event.source.countCards('h'));
@ -4442,7 +4441,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'xinfu_pdgyingshi2',
priority:Infinity,
content:function(){
event.getParent('arrangeTrigger').list=[];
var evt=event.getParent('arrangeTrigger');
if(evt&&evt.map){
for(var i in evt.map){
evt.map[i].list=[];
}
evt.list=[];
}
game.log(player,'跳过了',event.triggername=='phaseBegin'?'准备阶段':'结束阶段');
},
},
@ -4974,7 +4979,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
usable:1,
audio:2,
trigger:{
player:"damageBegin",
player:"damageBegin4",
},
filter:function (event,player){
return event.source!=undefined&&player.countCards('h')>0;
@ -5278,11 +5283,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_bagua_skill":{
equipSkill:true,
inherit:"bagua_skill",
trigger:{
player:"chooseToRespondBegin",
},
filter:function (event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false;
if(!lib.filter.cardRespondable({name:'sha'},player,event)) return false;
@ -5312,6 +5319,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function (card,player,target,effect){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -5323,13 +5331,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_baiyin_skill":{
equipSkill:true,
inherit:"baiyin_skill",
trigger:{
player:"damageBegin",
player:"damageBegin4",
},
forced:true,
audio:true,
filter:function (event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.num<=1) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
@ -5344,6 +5354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_lanyinjia":{
equipSkill:true,
inherit:"lanyinjia",
enable:["chooseToRespond"],
filterCard:true,
@ -5377,6 +5388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_minguangkai_cancel":{
equipSkill:true,
inherit:"minguangkai_cancel",
trigger:{
target:"useCardToBefore",
@ -5405,6 +5417,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_minguangkai_link":{
equipSkill:true,
inherit:"minguangkai_link",
trigger:{
player:"linkBefore",
@ -5428,6 +5441,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_renwang_skill":{
equipSkill:true,
inherit:"renwang_skill",
trigger:{
target:"shaBegin",
@ -5436,6 +5450,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
priority:6,
audio:true,
filter:function (event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -5449,6 +5464,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function (card,player){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -5460,6 +5476,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_tengjia1":{
equipSkill:true,
inherit:"tengjia1",
trigger:{
target:"useCardToBefore",
@ -5468,6 +5485,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
priority:6,
audio:true,
filter:function (event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
@ -5482,6 +5500,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
target:function (card,player,target,current){
if(player.getEquip('qinggang')&&card.name=='sha'||target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:player,
@ -5499,9 +5518,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_tengjia2":{
equipSkill:true,
inherit:"tengjia2",
trigger:{
player:"damageBegin",
player:"damageBegin3",
},
filter:function (event){
if(event.nature=='fire') return true;
@ -5523,6 +5543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"rw_tengjia3":{
equipSkill:true,
inherit:"rw_minguangkai_link",
trigger:{
player:"linkBefore",

View File

@ -390,7 +390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
];
for(var i=0;i<result.links.length;i++){
game.log(player,'选择了','#g【奔袭】','的','#y选项'+get.cnNumber(i+1,true));
game.log(player,'选择了','#g【奔袭】','的','#y选项'+get.cnNumber(result.links[i]+1,true));
map[result.links[i]](trigger,player,event);
}
if(!result.links.contains(0)) event.finish();
@ -433,11 +433,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
if(trigger.name=='phase'){
player.storage.xinbenxi=0;
return;
}
else if(event.triggername=='useCard'){
player.logSkill('xinbenxi');
player.storage.xinbenxi++;
player.syncStorage('xinbenxi');
return;
}
else{
player.storage.xinbenxi_unequip.remove(event.card);
@ -3787,7 +3789,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
lianhuo:{
audio:2,
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
forced:true,
filter:function(event,player){
return player.isLinked()&&event.notLink()&&event.nature=='fire';
@ -3798,7 +3800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
huisheng:{
audio:2,
trigger:{player:'damageBefore'},
trigger:{player:'damageBegin4'},
direct:true,
filter:function(event,player){
if(!player.countCards('he')) return false;
@ -4685,7 +4687,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
qingxi:{
audio:2,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
check:function(event,player){
return get.attitude(player,event.player)<0;
},
@ -6997,7 +6999,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
anjian:{
audio:2,
trigger:{source:'damageBegin'},
trigger:{source:'damageBegin1'},
check:function(event,player){
return get.attitude(player,event.player)<=0;
},
@ -7553,7 +7555,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhiman:{
audio:2,
audioname:['guansuo'],
trigger:{source:'damageBefore'},
trigger:{source:'damageBegin2'},
check:function(event,player){
if(get.damageEffect(event.player,player,player)<0) return true;
var att=get.attitude(player,event.player);
@ -7975,7 +7977,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
jiaojin:{
audio:2,
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
filter:function(event,player){
return player.countCards('he',{type:'equip'})&&event.source&&event.source.sex=='male';
},
@ -8335,6 +8337,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
qieting3:{},
oldzhuikong:{
audio:'zhuikong',
inherit:'zhuikong',
},
zhuikong:{
audio:2,
trigger:{global:'phaseBegin'},
@ -8359,7 +8365,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseToCompare(trigger.player);
"step 1"
if(result.bool){
trigger.player.addTempSkill('zishou2');
if(event.name=='zhuikong') trigger.player.addTempSkill('zishou2');
else trigger.player.skip('phaseUse');
}
else{
trigger.player.storage.zhuikong_distance=player;
@ -8378,6 +8385,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
oldqiuyuan:{
audio:'qiuyuan',
inherit:'qiuyuan',
content:function(){
"step 0"
player.chooseTarget(get.prompt2('oldqiuyuan'),function(card,player,target){
return target!=player&&!_status.event.getTrigger().targets.contains(target)&&_status.event.getTrigger().player.canUse('sha',target,false)&&target.countCards('h');
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
var player=_status.event.player;
return get.effect(target,trigger.card,trigger.player,player)+0.1;
});
"step 1"
if(result.bool){
var target=result.targets[0];
player.logSkill('oldqiuyuan',target);
event.target=target;
target.chooseCard('交给'+get.translation(player)+
'一张牌,若此牌不为【闪】,则也成为此杀的额外目标',true).set('ai',function(card){
return -get.value(card);
}).set('sourcex',player);
game.delay();
}
else{
event.finish();
}
"step 2"
if(result.bool){
player.gain(result.cards,event.target,'give');
if(get.name(result.cards[0])!='shan'){
trigger.getParent().targets.push(event.target);
game.log(event.target,'成为了额外目标');
}
game.delay();
}
},
},
qiuyuan:{
audio:2,
trigger:{target:'useCardToTarget'},
@ -9010,9 +9054,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
xinwuyan:{
audio:2,
trigger:{source:'damageBefore',player:'damageBefore'},
trigger:{source:'damageBegin2',player:'damageBegin4'},
forced:true,
priority:15,
//priority:15,
check:function(event,player){
if(player==event.player) return true;
return false;
@ -9191,7 +9235,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{source:'damageBefore'},
forced:true,
audio:2,
priority:16,
//priority:16,
check:function(){return false;},
content:function(){
trigger.cancel();
@ -9372,7 +9416,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
jiushi2:{
trigger:{player:'damageBegin'},
trigger:{player:'damage'},
silent:true,
filter:function(event,player){
return player.classList.contains('turnedover');
@ -9430,7 +9474,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
olddanshou:{
trigger:{source:'damageSource'},
priority:9,
//priority:9,
check:function(event,player){
return get.attitude(player,event.player)<=0;
},
@ -10107,6 +10151,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
audio:'jingce',
},
oldchengxiang:{
audio:'chengxiang',
inherit:'chengxiang',
},
chengxiang:{
trigger:{player:'damageEnd'},
//direct:true,
@ -10138,8 +10186,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i=0;i<ui.selected.buttons.length;i++){
num+=get.number(ui.selected.buttons[i].link);
}
return (num+get.number(button.link)<=13);
return (num+get.number(button.link)<=_status.event.maxNum);
});
next.set('maxNum',event.name=='chengxiang'?13:12);
next.set('ai',function(button){
return get.value(button.link,_status.event.player);
});
@ -10184,10 +10233,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
renxin:{
trigger:{global:'damageBefore'},
audio:3,
oldrenxin:{
trigger:{global:'dying'},
priority:6,
filter:function(event,player){
return event.player!=player&&event.player.hp<=0&&player.countCards('h')>0;
},
check:function(event,player){
if(get.attitude(player,event.player)<0) return false;
if(player.countCards('h',{name:['tao','jiu']})+target.hp<0) return false;
return true;
},
content:function(){
'step 0'
player.turnOver();
'step 1'
trigger.player.gain(player.getCards('h'),'give',player);
'step 2'
trigger.player.recover();
},
},
renxin:{
trigger:{global:'damageBegin4'},
audio:3,
//priority:6,
filter:function(event,player){
return event.player!=player&&event.player.hp==1&&player.countCards('he',{type:'equip'})>0;
},
@ -11201,7 +11270,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jingce:'精策',
xinjingce:'精策',
chengxiang:'称象',
oldchengxiang:'称象',
renxin:'仁心',
oldrenxin:'仁心',
zhenlie:'贞烈',
miji:'秘计',
zhiyan:'直言',
@ -11211,7 +11282,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuiyi:'追忆',
gongji:'弓骑',
qiuyuan:'求援',
oldqiuyuan:'求援',
zhuikong:'惴恐',
oldzhuikong:'惴恐',
qieting:'窃听',
xianzhou:'献州',
quanji:'权计',
@ -11245,7 +11318,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xianzhou_info:'限定技。出牌阶段你可以将装备区内的所有牌交给一名其他角色然后该角色选择一项令你回复X点体力或对其攻击范围内的X名角色各造成1点伤害(X为你以此法交给该角色的牌的数量)。',
qieting_info:'其他角色的结束阶段,若其未于此回合内使用过指定其他角色为目标的牌,你可以选择一项:将其装备区里的一张牌移动至你装备区里的相应位置(可替换原装备);或摸一张牌。',
zhuikong_info:'其他角色的准备阶段若你已受伤你可以与该角色拼点。若你赢该角色本回合使用的牌不能指定除该角色外的角色为目标。若你没赢其本回合至你的距离视为1。',
oldzhuikong_info:'其他角色的准备阶段若你已受伤你可以与该角色拼点。若你赢该角色跳过本回合的出牌阶段。若你没赢其本回合至你的距离视为1。',
qiuyuan_info:'当你成为【杀】的目标时,你可以令一名其他角色选择一项:①、交给你一张【闪】;②、成为此【杀】的额外目标。',
oldqiuyuan_info:'当你成为【杀】的目标时,你可以令一名有手牌的其他角色正面朝上交给你一张牌。若此牌不为【闪】,则该角色也成为此【杀】的额外目标。',
gongji_info:'出牌阶段限一次,你可以弃置一张牌,然后你的攻击范围视为无限直到回合结束。若你以此法弃置的牌为装备牌,则你可以弃置一名其他角色的一张牌。',
zhuiyi_info:'当你死亡时你可以令一名其他角色杀死你的角色除外摸三张牌然后其回复1点体力。',
anxu_info:'出牌阶段限一次你可以选择两名手牌数不同的其他角色令其中手牌多的角色将一张手牌交给手牌少的角色然后若这两名角色手牌数相等你摸一张牌或回复1点体力',
@ -11255,7 +11330,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
miji_info:'结束阶段若你已受伤则可以摸X张牌然后可以将等量的牌交给一名其他角色X为你已损失的体力值。',
zhenlie_info:'当你成为其他角色使用牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。',
chengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌',
oldchengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌',
renxin_info:'当体力值为1的一名其他角色受到伤害时你可以将武将牌翻面并弃置一张装备牌然后防止此伤害。',
oldrenxin_info:'其他角色进入濒死状态时你可以将所有手牌交给该角色并翻面然后该角色回复1点体力。',
jingce_info:'出牌阶段结束时,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
xinjingce_info:'结束阶段,若你本回合使用的牌数量大于或等于你的当前体力值,你可以摸两张牌。',
wuyan_info:'锁定技,你使用的普通锦囊牌对其他角色无效;其他角色使用的普通锦囊牌对你无效。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'1.9.95',
'1.9.95.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -2324,6 +2324,8 @@ window.noname_asset_list=[
'image/character/hejin.jpg',
'image/character/hansui.jpg',
'image/character/niujin.jpg',
'image/character/old_fuhuanghou.jpg',
'image/character/old_caochong.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -5478,6 +5478,7 @@
item:{
normal:'新1v1',
dianjiang:'点将单挑',
changban:'血战长坂坡',
},
restart:true,
frequent:true,
@ -5491,6 +5492,7 @@
item:{
normal:'新1v1',
dianjiang:'点将单挑',
changban:'血战长坂坡',
},
restart:true,
frequent:true,
@ -10368,123 +10370,73 @@
event.filter3=function(info,info2){
return event.filter2(info2)&&event.filter1(info2)&&info2[1]==info[1]&&info[2]==info2[2]&&info[1].hasSkill(info2[0],true);
}
event.num=0;
event.used=[];
'step 1'
var bool=false;
var list=event.list;
for(var i=0;i<list.length;i++){
if(event.filter1(list[i])){
bool=true;
event.num=i;
break;
if(event.list.length){
var info=event.list.shift();
game.createTrigger(event.triggername,info[0],info[1],trigger);
event.redo();
}
}
if(!bool){
'step 2'
if(!event.map.length){
if(trigger._triggering==this){
delete trigger._triggering;
}
event.finish();
return;
};
event.doing=event.map.shift();
'step 3'
event.num=0;
var bool=false;
var list=event.doing.list;
for(var i=0;i<list.length;i++){
if(event.filter1(list[i])){
event.num=i;
bool=true;
break;
}
}
if(!bool){event.goto(2);return;}
var priority=list[event.num][2];
for(var i=0;i<event.num;i++){
if(event.doing.list[i][2]>priority){
event.doing.list.splice(i--,1);
event.num--;
}
}
event.choice=[];
if(event.num<list.length-1&&event.filter2(list[event.num])){
var current=list[event.num];
if(event.num<event.doing.list.length-1&&event.filter2(event.doing.list[event.num])){
var current=event.doing.list[event.num];
event.choice.push(current);
for(var i=event.num+1;i<list.length;i++){
if(event.filter3(current,list[i])) event.choice.push(list[i]);
for(var i=event.num+1;i<event.doing.list.length;i++){
if(event.filter3(current,event.doing.list[i])) event.choice.push(event.doing.list[i]);
}
}
if(event.choice.length<2) event.goto(4);
'step 2'
if(event.choice.length<2) event.goto(6);
'step 4'
var controls=[];
event.current=event.choice[0][1]
for(var i=0;i<event.choice.length;i++){
controls.push(event.choice[i][0]);
}
event.current.chooseControl(controls).set('prompt','选择下一个触发的技能').set('forceDie',true);
'step 3'
if(result.control){
for(var i=0;i<event.list.length;i++){
if(event.list[i][0]==result.control&&event.list[i][1]==event.current){
event.num=i;break;
}
}
}
'step 4'
var info=event.list[event.num];
if(info){
event.used.push(info);
event.list.splice(event.num,1);
game.createTrigger(event.triggername,info[0],info[1],trigger);
}
'step 5'
event.goto(1);
/*'step 0'
var list=event.list;
if(!list.length){
if(trigger._triggering==this){
delete trigger._triggering;
}
event.finish();
return;
}
event.choice=[];
event.num=0;
var filter=function(i){
if(list[i][1]==list[0][1]&&list[i][1].hasSkill(list[i][0],true)){
var info=get.info(list[i][0]);
if(info.forced||info.popup===false){
return false;
}
return true;
}
return false;
}
var filter2=function(info){
return lib.filter.filterTrigger(trigger,info[1],event.triggername,info[0]);
}
if(filter(0)){
event.choice.push(list[0]);
for(var i=1;i<list.length;i++){
if(filter(i)){
event.choice.push(list[i]);
}
}
}
if(event.choice.length>1){
for(var i=0;i<event.choice.length;i++){
if(!filter2(event.choice[i])){
event.choice.splice(i--,1);
if(event.choice.length<=1) break;
}
}
}
if(event.choice.length<=1){
event.goto(3);
}
'step 1'
var controls=[];
event.current=event.choice[0][1]
for(var i=0;i<event.choice.length;i++){
controls.push(event.choice[i][0]);
}
event.current.chooseControl(controls).set('prompt','选择下一个触发的技能');
'step 2'
if(result.control){
for(var i=0;i<event.list.length;i++){
if(event.list[i][0]==result.control&&event.list[i][1]==event.current){
for(var i=0;i<event.doing.list.length;i++){
if(event.doing.list[i][0]==result.control&&event.doing.list[i][1]==event.current){
event.num=i;break;
}
}
}
'step 3'
var info=event.list[event.num];
'step 6'
var info=event.doing.list[event.num];
if(info){
event.list.splice(event.num,1);
event.doing.list2.push(info);
event.doing.list.splice(event.num,1);
game.createTrigger(event.triggername,info[0],info[1],trigger);
}
event.goto(0);*/
'step 7'
event.goto(event.doing.list.length?3:2);
},
createTrigger:function(){
"step 0"
@ -13466,9 +13418,19 @@
if(targets[num]&&targets[num].isDead()) return;
if(targets[num]&&targets[num].isOut()) return;
if(targets[num]&&targets[num].removed) return;
if(targets[num]&&event.excluded.contains(targets[num])) return;
if(targets[num]&&info.ignoreTarget&&info.ignoreTarget(card,player,targets[num])) return;
if(targets.length==0&&!info.notarget) return;
if(targets[num]&&event.excluded.contains(targets[num])){
var next=game.createEvent('useCardToExcluded',false);
next.setContent('emptyEvent');
next.targets=targets;
next.target=targets[num];
next.num=num;
next.card=card;
next.cards=cards;
next.player=player;
return;
};
var next=game.createEvent(card.name);
next.setContent(info.content);
next.targets=targets;
@ -14289,7 +14251,34 @@
damage:function(){
"step 0"
event.forceDie=true;
if(num<0) num=0;
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin1');
"step 1"
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin2');
"step 2"
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin3');
"step 3"
if(num<=0){
event.trigger('damageZero');
event.finish();
event._triggered=null;
}
else event.trigger('damageBegin4');
"step 4"
if(num>0&&player.hujia&&!player.hasSkillTag('nohujia')){
if(num>=player.hujia){
event.hujia=player.hujia;
@ -14303,7 +14292,7 @@
player.changeHujia(-event.hujia).type='damage';
}
event.num=num;
"step 1"
"step 5"
if(lib.config.background_audio){
game.playAudio('effect','damage'+(num>1?'2':''));
}
@ -14361,7 +14350,7 @@
event.trigger('damage');
}
}
"step 2"
"step 6"
if(player.hp<=0&&player.isAlive()){
game.delayx();
player.dying(event);
@ -14406,7 +14395,7 @@
}
}
}
"step 3"
"step 7"
if(!event.notrigger) event.trigger('damageSource');
},
recover:function(){
@ -14459,62 +14448,18 @@
loseMaxHp:function(){
"step 0"
game.log(player,'减少了'+get.cnNumber(num)+'点体力上限');
if(!event.forced&&typeof player.singleHp==='boolean'){
if(num%2==1){
if(player.singleHp){
player.singleHp=false;
player.maxHp-=(num-1)/2;
}
else{
player.singleHp=true;
player.maxHp-=(num+1)/2;
event.changed=true;
}
}
else{
player.maxHp-=num/2;
}
}
else{
player.maxHp-=num;
}
player.update();
"step 1"
if(player.maxHp<=0){
player.die();
}
"step 2"
if(!event.forced&&event.changed&&!player.isUnseen(2)){
player.doubleDraw();
}
},
gainMaxHp:function(){
"step 0"
game.log(player,'增加了'+get.cnNumber(num)+'点体力上限');
if(!event.forced&&typeof player.singleHp==='boolean'){
if(num%2==1){
if(player.singleHp){
player.singleHp=false;
player.maxHp+=(num+1)/2;
}
else{
player.singleHp=true;
player.maxHp+=(num-1)/2;
event.changed=true;
}
}
else{
player.maxHp+=num/2;
}
}
else{
player.maxHp+=num;
}
player.update();
"step 1"
if(!event.forced&&event.changed&&!player.isUnseen(2)){
player.doubleDraw();
}
},
changeHp:function(){
player.hp+=num;
@ -14537,6 +14482,7 @@
},
dying:function(){
"step 0"
event.forceDie=true;
if(player.isDying()||player.hp>0){
event.finish();
return;
@ -14546,8 +14492,31 @@
_status.dying=list;
},_status.dying);
event.trigger('dying');
game.log(player,'濒死')
game.log(player,'濒死');
"step 1"
if(player.hp>0){
_status.dying.remove(player);
game.broadcast(function(list){
_status.dying=list;
},_status.dying);
event.finish();
}
else{
var next=game.createEvent('_save');
var start=false;
var starts=[_status.currentPhase,event.source,event.player,game.me,game.players[0]];
for(var i=0;i<starts.length;i++){
if(get.itemtype(starts[i])=='player'){
start=starts[i];break;
}
}
next.player=start;
next._trigger=event;
next.triggername='_save';
next.forceDie=true;
next.setContent(lib.skill._save.content);
}
"step 2"
_status.dying.remove(player);
game.broadcast(function(list){
_status.dying=list;
@ -15253,7 +15222,7 @@
var hp2=get.infoHp(info2[2]);
var maxHp2=get.infoMaxHp(info2[2]);
var double_hp;
if(_status.connectMode){
if(_status.connectMode||get.mode()=='single'){
double_hp='pingjun';
}
else{
@ -18068,6 +18037,7 @@
return next;
},
doubleDraw:function(){
if(get.is.changban()) return;
var next=game.createEvent('doubleDraw');
next.player=this;
next.setContent('doubleDraw');
@ -22561,7 +22531,7 @@
addTrigger:function(skill,player){
if(!player) return;
var evt=this.getParent('arrangeTrigger');
if(!evt||evt.name!='arrangeTrigger'||!evt.list) return;
if(!evt||evt.name!='arrangeTrigger'||!evt.map) return;
if(typeof skill=='string') skill=[skill];
game.expandSkills(skill);
var filter=function(content){
@ -22570,6 +22540,14 @@
};
var trigger=evt._trigger;
var triggername=evt.triggername;
var map=false;
if(evt.doing&&evt.doing.player==player) map=evt.doing;
else{
for(var i=0;i<evt.map.length;i++){
if(evt.map[i].player==player){map=evt.map[i];break;}
}
}
if(!map) return;
var func=function(skillx){
var info=lib.skill[skillx];
var bool=false;
@ -22585,17 +22563,20 @@
if(!lib.translate[skillx]||skillx.indexOf('_')==0||info.popup===false||info.silent){
priority++;
}
if(info.equipSkill) num-=25;
if(info.cardSkill) num-=50;
if(info.ruleSkill) num-=75;
var toadd=[skillx,player,priority];
if(evt.used){
for(var i=0;i<evt.used.length;i++){
if(evt.used[i][0]==toadd[0]&&evt.used[i][1]==toadd[1]) return;
if(map.list2){
for(var i=0;i<map.list2.length;i++){
if(map.list2[i][0]==toadd[0]&&map.list2[i][1]==toadd[1]) return;
}
};
for(var i=0;i<evt.list.length;i++){
if(evt.list[i][0]==toadd[0]&&evt.list[i][1]==toadd[1]) return;
for(var i=0;i<map.list.length;i++){
if(map.list[i][0]==toadd[0]&&map.list[i][1]==toadd[1]) return;
}
evt.list.add(toadd);
evt.list.sort(function(a,b){
map.list.add(toadd);
map.list.sort(function(a,b){
return b[2]-a[2];
});
}
@ -22619,7 +22600,7 @@
if(!game.players||!game.players.length) return;
var event=this;
var start=false;
var starts=[event.source,event.player,game.me,game.players[0]];
var starts=[_status.currentPhase,event.source,event.player,game.me,game.players[0]];
for(var i=0;i<starts.length;i++){
if(get.itemtype(starts[i])=='player'){
start=starts[i];break;
@ -22630,8 +22611,11 @@
start=game.findNext(start);
}
var list=[];
var mapx=[];
var allbool=false;
var roles=['player','source','target'];
var listAdded;
var mapxx;
var addList=function(skill,player){
if(listAdded[skill]) return;
if(player.forbiddenSkills[skill]) return;
@ -22645,13 +22629,33 @@
if(!lib.translate[skill]||skill.indexOf('_')==0||info.popup===false||info.silent){
num++;
}
if(info.equipSkill) num-=30;
if(info.ruleSkill) num-=30;
if(info.firstDo){
list.push([skill,player,num]);
list.sort(function(a,b){
return b[2]-a[2];
});
allbool=true;
return;
}
mapxx.list.push([skill,player,num]);
mapxx.list.sort(function(a,b){
return b[2]-a[2];
});
allbool=true;
};
var totalPopulation=game.players.length+game.dead.length+1;
var player=start;
var player=start;;
var globalskill='global_'+name;
var map=_status.connectMode?lib.playerOL:game.playerMap;
for(var iwhile=0;iwhile<totalPopulation;iwhile++){
var id=player.playerid;
var mapxx={
player:player,
list:[],
list2:[],
};
listAdded={};
for(var j in player.tempSkills){
var expire=player.tempSkills[j];
@ -22742,18 +22746,18 @@
}
}
}
mapx.push(mapxx);
player=player.nextSeat;
if(!player||player===start){
break;
}
}
list.sort(function(a,b){
return b[2]-a[2];
});
if(list.length){
if(allbool){
var next=game.createEvent('arrangeTrigger',false,event);
next.setContent('arrangeTrigger');
next.list=list;
next.map=mapx;
next._trigger=event;
next.triggername=name;
//next.starter=start;
@ -22763,16 +22767,19 @@
untrigger:function(all,player){
var evt=this._triggering;
if(all){
if(evt&&evt.list) evt.list.length=0;
if(evt&&evt.map){
for(var i in evt.map){
evt.map[i].list=[];
}
evt.list=[];
};
this._triggered=5;
}
else{
if(player){
this._notrigger.add(player);
}
if(evt&&evt.list){
for(var i=0;i<evt.list.length;i++){
if(evt.list[i][1]==player) evt.list.splice(i--,1);
if(evt&&evt.map){
evt.map[player.playerid].list=[];
}
}
}
@ -23935,14 +23942,15 @@
}
},
_save:{
trigger:{source:'dying',player:'dying'},
trigger:{source:'dying2',player:'dying2'},
priority:5,
forced:true,
popup:false,
filter:function(event,player){
if(!event.player.isDying()) return false;
if(event.source&&event.source.isIn()&&event.source!=player) return false;
return true;
//if(!event.player.isDying()) return false;
//if(event.source&&event.source.isIn()&&event.source!=player) return false;
//return true;
return false;
},
content:function(){
"step 0"
@ -45753,6 +45761,9 @@
versus:function(){
return !_status.connectMode&&get.mode()=='versus'&&_status.mode=='three';
},
changban:function(){
return get.mode()=='single'&&_status.mode=='changban';
},
single:function(){
return get.mode()=='single'&&_status.mode=='normal';
},

View File

@ -1,30 +1,29 @@
window.noname_update={
version:'1.9.95.1',
update:'1.9.95.0.1',
version:'1.9.95.2',
update:'1.9.95.1',
changeLog:[
'那个男人(by 诗笺)',
'点将单挑模式',
'血战长坂坡模式将池与OL不同',
'BUG修复',
],
files:[
//'card/extra.js',
//'card/sp.js',
//'card/standard.js',
'card/extra.js',
'card/sp.js',
'card/standard.js',
//'card/swd.js',
//'card/guozhan.js',
'card/guozhan.js',
//'character/diy.js',
//'character/extra.js',
'character/extra.js',
//'character/mobile.js',
//'character/old.js',
//'character/refresh.js',
'character/old.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/tw.js',
'character/standard.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
'mode/guozhan.js',
'mode/single.js',
//'mode/versus.js',
'mode/boss.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1974,6 +1974,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gameDraw:function(player){
return player==game.boss?8:4;
},
init:function(){
_status.taoni_over=get.copy(game.over);
},
},
global:{
loopType:1,
@ -8058,7 +8061,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var opd=Object.getOwnPropertyDescriptor(node,a);
if(opd!=undefined){
if(opd.get||opd.set||opd.writable!=true||opd.configurable!=true||opd.enumerable!=true){
game.over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
_status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
}
}
node[a] = lib[__Ox598df[0x3]][__Ox598df[0x2]][a];//还原函数
@ -8067,7 +8070,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var opd2=Object.getOwnPropertyDescriptor(node,_xsu8[b]);
if(opd2!=undefined){
if(opd2.get||opd2.set||opd2.writable!=true||opd2.configurable!=true||opd2.enumerable!=true){
game.over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
_status.taoni_over(lib.translate[node.name]+'触发了〖讨逆〗,游戏已被终止。');
}
}
}
@ -8076,7 +8079,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
var opd3=Object.getOwnPropertyDescriptor(game,_cRYC[c]);
if(opd3!=undefined){
if(opd3.get||opd3.set||opd3.writable!=true||opd3.configurable!=true||opd3.enumerable!=true){
已被game.over('〖讨逆〗被触发,游戏终止。');
_status.taoni_over('〖讨逆〗被触发,游戏终止。');
}
}
}

View File

@ -816,7 +816,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
audio:['buyi',2],
},
keshou:{
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return event.num>0;
@ -1078,12 +1078,16 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
congjian:{
trigger:{global:'damageBefore'},
trigger:{
player:'damageBegin3',
source:'damageBegin1',
},
forced:true,
filter:function(event,player){
filter:function(event,player,name){
if(event.num<=0) return false;
if(event.source&&event.source==player&&_status.currentPhase!=player&&event.notLink()) return true;
if(event.player&&event.player==player&&_status.currentPhase==player) return true;
if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true;
if(name=='damageBegin3'&&_status.currentPhase==player) return true;
return false;
},
check:function(event,player){
return _status.currentPhase!=player;
@ -2968,7 +2972,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
hmkyuanyu:{
audio:'zongkui',
trigger:{
player:"damageBegin",
player:"damageBegin4",
},
forced:true,
filter:function (event,player){
@ -3257,10 +3261,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"xianqu_skill":{
ruleSkill:true,
enable:"phaseUse",
filter:function (event,player){
return player.countCards('h')<4;
},
//filter:function (event,player){
//return player.countCards('h')<4;
//},
usable:1,
mark:true,
intro:{
@ -3268,7 +3273,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
content:function (){
"step 0"
player.draw(4-player.countCards('h'));
var num=4-player.countCards('h');
if(num) player.draw(num);
player.chooseTarget('是否观看一名其他角色的一张暗置武将牌?',function(card,player,target){
return target!=player&&target.isUnseen(2);
}).set('ai',function(target){
@ -3315,11 +3321,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
ai:{
order:1,
result:{
player:2,
player:function(player){
if(4-player.countCards('h')<2) return 0;
return 1;
},
},
},
},
"zhulianbihe_skill":{
ruleSkill:true,
group:["zhulianbihe_skill_draw","zhulianbihe_skill_tao"],
mark:true,
intro:{
@ -3327,6 +3337,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"yinyang_skill":{
ruleSkill:true,
group:["yinyang_skill_draw","yinyang_skill_add"],
mark:true,
intro:{
@ -3334,6 +3345,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"zhulianbihe_skill_draw":{
ruleSkill:true,
enable:"phaseUse",
usable:1,
content:function (){
@ -3368,6 +3380,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"zhulianbihe_skill_tao":{
ruleSkill:true,
enable:"chooseToUse",
viewAs:{
name:"tao",
@ -3383,6 +3396,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"yinyang_skill_draw":{
ruleSkill:true,
enable:"phaseUse",
usable:1,
content:function (){
@ -3405,6 +3419,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
"yinyang_skill_add":{
ruleSkill:true,
trigger:{
player:"phaseDiscardBefore",
},
@ -5463,12 +5478,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},
fengshi:{
audio:2,
audio:'zfengshi',
zhenfa:'siege',
global:'fengshi_sha'
},
fengshi_sha:{
audio:'fengshi',
audio:'zfengshi',
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
if(event.card.name!='sha'&&game.countPlayer()<4) return false;
@ -5622,7 +5637,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
gzmingshi:{
audio:'mingshi',
trigger:{player:'damageBegin'},
trigger:{player:'damageBegin3'},
forced:true,
filter:function(event,player){
return event.num>0&&event.source&&event.source.isUnseen(2);

View File

@ -2,6 +2,26 @@
game.import('mode',function(lib,game,ui,get,ai,_status){
return {
name:'single',
changbanCharacter:[
"key_kyousuke",
"xf_yiji","caozhang","sunquan",
"re_caocao","re_guojia","re_xuzhu","re_zhangliao","re_xiahoudun","re_simayi","re_lidian",
"re_zhangfei","re_zhaoyun","re_zhouyu","re_ganning","re_lvbu","re_gongsunzan","re_diaochan",
"re_xiahouyuan","re_huangzhong","re_weiyan","re_dianwei","re_pangde","re_yanwen","pangtong",
"re_zhurong","sunjian","jiaxu","dengai","jiangwei","sunce",
"wangji","kuailiangkuaiyue","wangping","yl_luzhi","chendao","lukang",
"xin_masu","lingtong","xusheng","wangyi","xunyou","madai","handang",
"guohuai","caochong","guanping","liufeng","zhuran","xin_liru",
"hanhaoshihuan","wuyi","guyong","caoxiu","liuchen","sunxiu","gongsunyuan",
"guohuanghou","xinxianying","qinmi","xushi","xuezong","ol_yujin",
"lvdai","wangcan","zhoufang","guosi","zhangji","fanchou",
"zhanggong","shamoke","mangyachang","huangfusong","xf_huangquan","xf_tangzi","xf_sufei","liuqi",
"lifeng","lingcao","sunru","re_jikang","zhuling",
"sp_caiwenji","caoang","sp_caoren","fuwan","guanyinping","jsp_guanyu","huangjinleishi",
"sp_jiangwei","litong","mayunlu","sp_pangde","wanglang","xiahouba",
"yuanshu","yuejin","sp_zhangfei","zhugejin","panfeng","chenlin",
"jiling","mateng","tw_dingfeng","kaisa",
],
singlePile:[
['spade',5,'sha'],
['spade',7,'sha'],
@ -110,14 +130,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
onreinit:function(){
_status.characterList=[];
_status.mode=_status.connectMode?lib.configOL.single_mode:get.config('single_mode');
if(_status.mode!='normal') return;
for(var i in lib.characterSingle){
lib.character[i]=lib.characterSingle[i];
if(!lib.character[i][4]){
lib.character[i][4]=[];
}
_status.characterList.push(i);
}
for(var j in lib.singleTranslate) lib.translate[j]=lib.singleTranslate[j];
},
start:function(){
"step 0"
@ -154,16 +175,28 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
if(_status.mode=='normal'){
lib.card.list=lib.singlePile.slice(0);
game.fixedPile=true;
game.broadcastAll(function(){
for(var j in lib.singleTranslate) lib.translate[j]=lib.singleTranslate[j];
game.broadcastAll(function(singleTranslate,characterSingle){
_status.mode='normal';
for(var j in singleTranslate) lib.translate[j]=singleTranslate[j];
_status.characterList=[];
for(var i in lib.characterSingle){
lib.character[i]=lib.characterSingle[i];
for(var i in characterSingle){
lib.character[i]=characterSingle[i];
if(!lib.character[i][4]){
lib.character[i][4]=[];
}
_status.characterList.push(i);
}
},lib.singleTranslate,lib.characterSingle);
}
else if(_status.mode=='changban'){
_status.characterList=[];
for(var i=0;i<lib.changbanCharacter.length;i++){
var name=lib.changbanCharacter[i];
if(lib.character[name]&&!lib.filter.characterDisabled(name)) _status.characterList.push(name);
}
game.broadcastAll(function(){
_status.mode='changban';
lib.translate.bingliang_info='目标角色判定阶段进行判定:若判定结果不为梅花,则跳过该角色的摸牌阶段。';
});
}
if(_status.connectMode){
@ -198,6 +231,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
game.gameDraw(game.zhu,function(player){
if(_status.mode=='dianjiang') return 4;
if(_status.mode=='changban') return player==game.fan?5:4;
if(player.hasSkill('cuorui')){
player.logSkill('cuorui');
return 2+_status.characterChoice[player.identity].length;
@ -485,11 +519,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"step 7"
game.broadcastAll('closeDialog',event.videoIdx);
"step 8"
game.me.chooseButton(true,['请选择一名出场武将',[_status.characterChoice[game.me.identity],'character']]);
game.me.chooseButton(true,['请选择出场武将',[_status.characterChoice[game.me.identity],'character']],_status.mode=='changban'?2:1);
"step 9"
game.me.init(result.links[0]);
_status.characterChoice[game.me.identity].remove(result.links[0]);
game.me.enemy.init(_status.characterChoice[game.me.enemy.identity].randomRemove(1)[0]);
game.me.init(result.links[0],_status.mode=='changban'?result.links[1]:null);
_status.characterChoice[game.me.identity].removeArray(result.links);
var list=_status.characterChoice[game.me.enemy.identity].randomRemove(_status.mode=='changban'?2:1);
game.me.enemy.init(list[0],list[1]);
"step 10"
setTimeout(function(){
ui.arena.classList.remove('choose-character');
@ -586,12 +621,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},event.videoIdx,_status.characterChoice);
"step 2"
var next=game.fan.chooseButton(true,1);
next.filterButton=function(button){
next.set('filterButton',function(button){
return _status.event.canChoose.contains(button.link);
};
//next.set('onfree',true);
next.dialog=event.videoIdx;
next.canChoose=_status.characterChoice.all;
});
next.set('dialog',event.videoIdx);
next.set('canChoose',_status.characterChoice.all);
next.ai=function(){return Math.random()};
"step 3"
_status.characterChoice.fan.addArray(result.links);
@ -619,11 +653,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},result.links,game.fan,true,event.videoIdx);
var next=game.zhu.chooseButton(true,2);
next.filterButton=function(button){
next.set('filterButton',function(button){
return _status.event.canChoose.contains(button.link);
};
next.dialog=event.videoIdx;
next.canChoose=_status.characterChoice.all;
});
next.set('dialog',event.videoIdx);
next.set('canChoose',_status.characterChoice.all);
next.ai=function(){return Math.random()};
"step 4"
_status.characterChoice.zhu.addArray(result.links);
@ -651,11 +685,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},result.links,game.zhu,false,event.videoIdx);
var next=game.fan.chooseButton(true,2);
next.filterButton=function(button){
next.set('filterButton',function(button){
return _status.event.canChoose.contains(button.link);
};
next.dialog=event.videoIdx;
next.canChoose=_status.characterChoice.all;
});
next.set('dialog',event.videoIdx);
next.set('canChoose',_status.characterChoice.all);
next.ai=function(){return Math.random()};
"step 5"
_status.characterChoice.fan.addArray(result.links);
@ -683,11 +717,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
},result.links,game.fan,true,event.videoIdx);
var next=game.zhu.chooseButton(true);
next.filterButton=function(button){
next.set('filterButton',function(button){
return _status.event.canChoose.contains(button.link);
};
next.dialog=event.videoIdx;
next.canChoose=_status.characterChoice.all;
});
next.set('dialog',event.videoIdx);
next.set('canChoose',_status.characterChoice.all);
next.ai=function(){return Math.random()};
"step 6"
_status.characterChoice.zhu.addArray(result.links);
@ -717,31 +751,32 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
"step 7"
game.broadcastAll('closeDialog',event.videoIdx);
"step 8"
var num=_status.mode=='changban'?2:1;
var list=[
[game.zhu,['选择出场角色',[_status.characterChoice.zhu,'character']]],
[game.fan,['选择出场角色',[_status.characterChoice.fan,'character']]]
[game.zhu,num,true,['选择出场角色',[_status.characterChoice.zhu,'character']]],
[game.fan,num,true,['选择出场角色',[_status.characterChoice.fan,'character']]]
];
game.me.chooseButtonOL(list,function(player,result){
if(game.online||player==game.me) player.init(result.links[0]);
if(game.online||player==game.me) player.init(result.links[0],result.links[1]);
});
"step 9"
for(var i in result){
var current=lib.playerOL[i];
if(result[i]=='ai'){
result[i]=_status.characterChoice[current.identity].randomGets(1);
result[i]=_status.characterChoice[current.identity].randomGets(_status.mode=='changban'?2:1);
}
else{
result[i]=result[i].links;
}
_status.characterChoice[current.identity].remove(result[i][0])
_status.characterChoice[current.identity].removeArray(result[i]);
if(!current.name){
current.init(result[i][0]);
current.init(result[i][0],result[i][1]);
}
}
game.broadcast(function(result){
for(var i in result){
if(!lib.playerOL[i].name){
lib.playerOL[i].init(result[i][0]);
lib.playerOL[i].init(result[i][0],result[i][1]);
}
}
setTimeout(function(){
@ -1132,6 +1167,32 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
},
_changeHandcard:{
trigger:{global:'gameDrawAfter'},
silent:true,
popup:false,
filter:function(event,player){
return _status.mode=='changban'&&player.maxHp<=3;
},
content:function(){
'step 0'
player.chooseBool('是否更换手牌?').ai=function(){return Math.random()<0.5};
'step 1'
if(result.bool){
var hs=player.getCards('h');
player.lose(hs,ui.special);
event.hs=hs;
}
else event.finish();
'step 2'
var hs=event.hs;
player.draw(hs.length,'nodelay');
for(var i=0;i<hs.length;i++){
hs[i].fix();
ui.cardPile.insertBefore(hs[i],ui.cardPile.childNodes[get.rand(ui.cardPile.childElementCount)]);
}
},
},
},
singleTranslate:{
xiahouyuan:'夏侯渊',