v1.9.97.3

This commit is contained in:
Spmario233 2020-01-22 14:04:55 +08:00 committed by GitHub
parent cb1fdd9f6b
commit 7cccb7e7fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 444 additions and 393 deletions

View File

@ -69,6 +69,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
} }
else{ else{
game.addVideo('jiuNode',player,true);
if(cards&&cards.length){ if(cards&&cards.length){
card=cards[0]; card=cards[0];
} }
@ -739,6 +740,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(!trigger.baseDamage) trigger.baseDamage=1; if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage+=player.storage.jiu; trigger.baseDamage+=player.storage.jiu;
trigger.jiu=true; trigger.jiu=true;
game.addVideo('jiuNode',player,false);
game.broadcastAll(function(player){ game.broadcastAll(function(player){
player.removeSkill('jiu'); player.removeSkill('jiu');
},player); },player);
@ -775,6 +777,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
game.broadcastAll(function(player){ game.broadcastAll(function(player){
player.removeSkill('jiu'); player.removeSkill('jiu');
},player); },player);
game.addVideo('jiuNode',player,false);
}, },
}, },
guding_skill:{ guding_skill:{

View File

@ -50,12 +50,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.source!=undefined; return event.source!=undefined;
}, },
content:function (){ content:function (){
var source=trigger.source trigger.source.addMark('new_wuhun_mark',trigger.num);
if(!source.storage.new_wuhun_mark){
source.storage.new_wuhun_mark=0;
}
source.storage.new_wuhun_mark+=trigger.num;
source.markSkill('new_wuhun_mark');
}, },
subSkill:{ subSkill:{
die:{ die:{
@ -70,7 +65,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
return current!=player&&current.storage.new_wuhun_mark!=undefined; return current!=player&&current.hasMark('new_wuhun_mark');
}); });
}, },
content:function (){ content:function (){
@ -78,15 +73,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var num=0; var num=0;
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
var current=game.players[i]; var current=game.players[i];
if(current!=player&&current.storage.new_wuhun_mark&&current.storage.new_wuhun_mark>num){ if(current!=player&&current.countMark('new_wuhun_mark')>num){
num=current.storage.new_wuhun_mark; num=current.countMark('new_wuhun_mark');
} }
} }
player.chooseTarget(true,'请选择【武魂】的目标',function(card,player,target){ player.chooseTarget(true,'请选择【武魂】的目标',function(card,player,target){
return target!=player&&target.storage.new_wuhun_mark==num; return target!=player&&target.countMark('new_wuhun_mark')==_status.event.num;
}).set('ai',function(target){ }).set('ai',function(target){
return -get.attitude(_status.event.player,target); return -get.attitude(_status.event.player,target);
}).set('forceDie',true); }).set('forceDie',true).set('num',num);
"step 1" "step 1"
if(result.bool&&result.targets&&result.targets.length){ if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0]; var target=result.targets[0];
@ -225,16 +220,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
filter:function(event,player){ filter:function(event,player){
return player.storage.baonu>=6; return player.countMark('baonu')>=6;
}, },
usable:1, usable:1,
skillAnimation:true, skillAnimation:true,
animationColor:'metal', animationColor:'metal',
content:function(){ content:function(){
"step 0" "step 0"
player.storage.baonu-=6; player.removeMark('baonu',6);
player.syncStorage('baonu');
player.updateMarks('baonu');
event.targets=game.filterPlayer(); event.targets=game.filterPlayer();
event.targets.remove(player); event.targets.remove(player);
event.targets.sort(lib.sort.seat); event.targets.sort(lib.sort.seat);
@ -277,15 +270,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
derivation:'wushuang', derivation:'wushuang',
filter:function(event,player){ filter:function(event,player){
return player.storage.baonu>=2; return player.countMark('baonu')>=2;
}, },
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&!target.hasSkill('ol_wuqian_targeted'); return target!=player&&!target.hasSkill('ol_wuqian_targeted');
}, },
content:function(){ content:function(){
player.storage.baonu-=2; player.removeMark('baonu',2);
player.syncStorage('baonu');
player.updateMarks('baonu');
player.addTempSkill('wushuang'); player.addTempSkill('wushuang');
player.storage.ol_wuqian_target=target; player.storage.ol_wuqian_target=target;
player.addTempSkill('ol_wuqian_target'); player.addTempSkill('ol_wuqian_target');
@ -320,7 +311,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
if(player.storage.baonu>0){ if(player.hasMark('baonu')){
player.chooseControlList([ player.chooseControlList([
'移去一枚【暴怒】标记', '移去一枚【暴怒】标记',
'失去一点体力' '失去一点体力'
@ -336,9 +327,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 1' 'step 1'
if(result.index==0){ if(result.index==0){
player.storage.baonu--; player.removeMark('baonu',1);
player.syncStorage('baonu');
player.updateMarks('baonu');
} }
else{ else{
player.loseHp(); player.loseHp();
@ -450,12 +439,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
baonu:{ baonu:{
audio:2, audio:2,
mark:true,
marktext:'暴', marktext:'暴',
unique:true, unique:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
trigger:{ trigger:{
source:'damageSource', source:'damageSource',
player:['damageEnd','enterGame'], player:['damageEnd','enterGame'],
@ -466,15 +451,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.name!='damage'||event.num>0; return event.name!='damage'||event.num>0;
}, },
content:function(){ content:function(){
player.storage.baonu+=trigger.name=='damage'?trigger.num:2; player.addMark('baonu',trigger.name=='damage'?trigger.num:2);
player.markSkill('baonu');
player.syncStorage('baonu');
}, },
intro:{ intro:{
name:'暴怒',
content:'mark' content:'mark'
}, },
ai:{ ai:{
combo:'shenfen', combo:'ol_shenfen',
maixie:true, maixie:true,
maixie_hp:true maixie_hp:true
} }
@ -564,19 +548,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
group:'renjie2', group:'renjie2',
notemp:true, notemp:true,
mark:true, //mark:true,
filter:function(event){ filter:function(event){
return event.num>0; return event.num>0;
}, },
init:function(player){
player.storage.renjie=0;
game.addVideo('storage',player,['renjie',player.storage.renjie]);
},
content:function(){ content:function(){
player.storage.renjie+=trigger.num; player.addMark('renjie',trigger.num);
game.addVideo('storage',player,['renjie',player.storage.renjie]);
}, },
intro:{ intro:{
name2:'忍',
content:'mark' content:'mark'
}, },
ai:{ ai:{
@ -618,8 +598,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return evt&&evt.name=='phaseDiscard' return evt&&evt.name=='phaseDiscard'
}, },
content:function(){ content:function(){
player.storage.renjie+=trigger.cards.length; player.addMark('renjie',trigger.cards.length);
game.addVideo('storage',player,['renjie',player.storage.renjie]);
} }
}, },
sbaiyin:{ sbaiyin:{
@ -631,7 +610,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
unique:true, unique:true,
audio:true, audio:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.renjie>=4; return player.countMark('renjie')>=4;
}, },
content:function(){ content:function(){
player.loseMaxHp(); player.loseMaxHp();
@ -648,7 +627,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'judge'}, trigger:{global:'judge'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0&&player.storage.renjie>0; return player.countCards('he')>0&&player.hasMark('renjie');
}, },
content:function(){ content:function(){
"step 0" "step 0"
@ -674,9 +653,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
"step 2" "step 2"
if(result.bool){ if(result.bool){
//player.logSkill('jilue_guicai'); player.removeMark('renjie',1);
player.storage.renjie--;
player.updateMarks();
if(trigger.player.judging[0].clone){ if(trigger.player.judging[0].clone){
trigger.player.judging[0].clone.delete(); trigger.player.judging[0].clone.delete();
game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone])); game.addVideo('deletenode',player,get.cardsInfo([trigger.player.judging[0].clone]));
@ -701,7 +678,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
//priority:-1, //priority:-1,
filter:function(event,player){ filter:function(event,player){
return player.storage.renjie>0; return player.hasMark('renjie');
}, },
content:function(){ content:function(){
"step 0" "step 0"
@ -721,8 +698,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.storage.renjie--; player.removeMark('renjie',1);
player.updateMarks();
player.logSkill('jilue_fangzhu',result.targets); player.logSkill('jilue_fangzhu',result.targets);
result.targets[0].draw(player.maxHp-player.hp); result.targets[0].draw(player.maxHp-player.hp);
result.targets[0].turnOver(); result.targets[0].turnOver();
@ -734,11 +710,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filter:function(event,player){ filter:function(event,player){
return player.storage.renjie>0; return player.hasMark('renjie');
}, },
content:function(){ content:function(){
player.storage.renjie--; player.removeMark('renjie',1);
player.updateMarks();
player.addTempSkill('wansha'); player.addTempSkill('wansha');
} }
}, },
@ -747,7 +722,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:'phaseUse', enable:'phaseUse',
usable:1, usable:1,
filter:function(event,player){ filter:function(event,player){
return player.storage.renjie>0; return player.hasMark('renjie');
}, },
position:'he', position:'he',
filterCard:true, filterCard:true,
@ -764,8 +739,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.storage.renjie--; player.removeMark('renjie',1);
player.updateMarks();
event.num=player.hasSkill('rezhiheng_delay')?1:0; event.num=player.hasSkill('rezhiheng_delay')?1:0;
'step 1' 'step 1'
player.draw(event.num+cards.length); player.draw(event.num+cards.length);
@ -793,15 +767,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:true, audio:true,
trigger:{player:'useCard'}, trigger:{player:'useCard'},
filter:function(event,player){ filter:function(event,player){
return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card)&&player.storage.renjie>0; return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card)&&player.hasMark('renjie');
}, },
init:function(player){ init:function(player){
player.storage.jilue_jizhi=0; player.storage.jilue_jizhi=0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.storage.renjie--; player.removeMark('renjie',1);
player.updateMarks();
player.draw(); player.draw();
'step 1' 'step 1'
event.card=result[0]; event.card=result[0];
@ -2056,23 +2029,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"nzry_junlve":{ "nzry_junlve":{
audio:2, audio:2,
init:function(player){ //marktext:"军",
if(!player.storage.nzry_junlve) player.storage.nzry_junlve=0;
},
marktext:"军",
intro:{ intro:{
content:'当前有#个“军略”标记', content:'当前有#个标记',
}, },
mark:true, //mark:true,
trigger:{ trigger:{
player:"damageAfter", player:"damageAfter",
source:"damageSource", source:"damageSource",
}, },
forced:true, forced:true,
content:function(){ content:function(){
player.storage.nzry_junlve+=trigger.num; player.addMark('nzry_junlve',trigger.num);
game.log(player,'获得了',trigger.num,'个“军略”标记');
player.syncStorage('nzry_junlve');
}, },
}, },
"nzry_cuike":{ "nzry_cuike":{
@ -2083,30 +2051,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
if(player.storage.nzry_junlve%2==1){ if(player.countMark('nzry_junlve')%2==1){
player.chooseTarget('是否发动【摧克】对一名角色造成一点伤害?').ai=function(target){ player.chooseTarget('是否发动【摧克】对一名角色造成一点伤害?').ai=function(target){
return -get.attitude(player,target); return -get.attitude(player,target);
}; };
} }
else{ else{
player.chooseTarget('是否发动【摧克】横置一名角色并弃置其区域内的一张牌?').ai=function(target){ player.chooseTarget('是否发动【摧克】横置一名角色并弃置其区域内的一张牌?').ai=function(target){
return -get.attitude(player,target); return -get.attitude(player,target);
}; };
} }
'step 1' 'step 1'
if(result.bool){ if(result.bool){
player.line(result.targets); player.logSkill('nzry_cuike',result.targets);
player.logSkill('nzry_cuike'); if(player.countMark('nzry_junlve')%2==1){
if(player.storage.nzry_junlve%2==1){
result.targets[0].damage(); result.targets[0].damage();
} }
else{ else{
result.targets[0].link(true); result.targets[0].link(true);
player.discardPlayerCard(result.targets[0],1,'hej'); player.discardPlayerCard(result.targets[0],1,'hej',true);
}; };
}; };
'step 2' 'step 2'
if(player.storage.nzry_junlve&&player.storage.nzry_junlve>7){ if(player.countMark('nzry_junlve')>7){
player.chooseBool().set('ai',function(){ player.chooseBool().set('ai',function(){
return true; return true;
}).set('prompt','是否弃置所有“军略”标记并对所有其他角色造成一点伤害?'); }).set('prompt','是否弃置所有“军略”标记并对所有其他角色造成一点伤害?');
@ -2115,13 +2082,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}; };
'step 3' 'step 3'
if(result.bool){ if(result.bool){
player.line(game.players); var players=game.players.slice(0).sortBySeat();
player.logSkill('nzry_cuike'); player.line(players);
player.storage.nzry_junlve=0; player.removeMark('nzry_junlve',player.countMark('nzry_junlve'));
player.syncStorage('nzry_junlve'); for(var i=0;i<players.length;i++){
game.log(player,'移去了所有“军略”标记'); if(players[i]!=player) players[i].damage();
for(var i=0;i<game.players.length;i++){
if(game.players[i]!=player) game.players[i].damage();
}; };
}; };
}, },
@ -2141,7 +2106,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
animationColor:'metal', animationColor:'metal',
enable:'phaseUse', enable:'phaseUse',
filter:function (event,player){ filter:function (event,player){
return !player.storage.nzry_dinghuo&&player.storage.nzry_junlve>0; return !player.storage.nzry_dinghuo&&player.countMark('nzry_junlve')>0;
}, },
check:function (event,player){ check:function (event,player){
var num=game.countPlayer(function(current){return get.attitude(player,current)<0&&current.isLinked()}); var num=game.countPlayer(function(current){return get.attitude(player,current)<0&&current.isLinked()});
@ -2151,7 +2116,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return target.isLinked(); return target.isLinked();
}, },
selectTarget:function(){ selectTarget:function(){
return [1,_status.event.player.storage.nzry_junlve]; return [1,_status.event.player.countMark('nzry_junlve')];
}, },
multiline:true, multiline:true,
multitarget:true, multitarget:true,
@ -2160,9 +2125,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.awakenSkill('nzry_dinghuo'); player.awakenSkill('nzry_dinghuo');
player.storage.nzry_dinghuo=true; player.storage.nzry_dinghuo=true;
'step 1' 'step 1'
player.storage.nzry_junlve=0; player.removeMark('nzry_junlve',player.countMark('nzry_junlve'));
player.syncStorage('nzry_junlve');
game.log(player,'移去了所有“军略”标记');
for(var i=0;i<targets.length;i++){ for(var i=0;i<targets.length;i++){
targets[i].discard(targets[i].getCards('e')); targets[i].discard(targets[i].getCards('e'));
} }
@ -2442,27 +2405,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
drlt_jieying_mark:{ drlt_jieying_mark:{
init:function(player){
game.log(player,'获得了“营”标记');
},
onremove:function(player){
game.log(player,'失去了“营”标记');
},
mark:true,
marktext:"营", marktext:"营",
intro:{ intro:{
content:function(storage){ name:'营',
return '已获得“营”标记'; content:'mark',
},
}, },
mod:{ mod:{
cardUsable:function (card,player,num){ cardUsable:function (card,player,num){
if(game.hasPlayer(function(current){ if(player.hasMark('drlt_jieying_mark')&&game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying'); return current.hasSkill('drlt_jieying');
})&&card.name=='sha') return num+1; })&&card.name=='sha') return num+1;
}, },
maxHandcard:function (player,num){ maxHandcard:function (player,num){
if(game.hasPlayer(function(current){ if(player.hasMark('drlt_jieying_mark')&&game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying'); return current.hasSkill('drlt_jieying');
})) return num+1; })) return num+1;
}, },
@ -2473,18 +2428,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return game.hasPlayer(function(current){ return player.hasMark('drlt_jieying_mark')&&game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying'); return current.hasSkill('drlt_jieying');
}); });
}, },
content:function(){ content:function(){
trigger.num++; trigger.num++;
}, },
ai:{nokeep:true}, ai:{
nokeep:true,
skillTagFilter:function(player){
return player.hasMark('drlt_jieying_mark');
},
},
}, },
'drlt_jieying':{ 'drlt_jieying':{
audio:2, audio:2,
locked:false, locked:false,
global:'drlt_jieying_mark',
group:["drlt_jieying_1","drlt_jieying_2","drlt_jieying_3"], group:["drlt_jieying_1","drlt_jieying_2","drlt_jieying_3"],
subSkill:{ subSkill:{
'1':{ '1':{
@ -2495,11 +2456,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !game.hasPlayer(function(current){ return !game.hasPlayer(function(current){
return current.hasSkill('drlt_jieying_mark'); return current.hasMark('drlt_jieying_mark');
}); });
}, },
content:function(){ content:function(){
player.addSkill('drlt_jieying_mark'); player.addMark('drlt_jieying_mark',1);
}, },
}, },
'2':{ '2':{
@ -2509,7 +2470,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.hasSkill('drlt_jieying_mark'); return player.hasMark('drlt_jieying_mark');
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -2531,26 +2492,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=result.targets[0]; var target=result.targets[0];
player.line(target); player.line(target);
player.logSkill('drlt_jieying',target); player.logSkill('drlt_jieying',target);
player.removeSkill('drlt_jieying_mark'); player.removeMark('drlt_jieying_mark',1);
target.addSkill('drlt_jieying_mark'); target.addMark('drlt_jieying_mark',1);
}; };
}, },
}, },
'3':{ '3':{
audio:'drlt_jieying', audio:'drlt_jieying',
trigger:{ trigger:{
global:'phaseAfter', global:'phaseEnd',
}, },
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player!=event.player&&event.player.hasSkill('drlt_jieying_mark')&&event.player.isAlive(); return player!=event.player&&event.player.hasMark('drlt_jieying_mark')&&event.player.isAlive();
}, },
logTarget:'player', logTarget:'player',
content:function(){ content:function(){
if(trigger.player.countCards('h')>0){ if(trigger.player.countCards('h')>0){
trigger.player.give(trigger.player.getCards('h'),player); trigger.player.give(trigger.player.getCards('h'),player);
} }
trigger.player.removeSkill('drlt_jieying_mark'); trigger.player.removeMark('drlt_jieying_mark',1);
}, },
}, },
}, },

View File

@ -42,37 +42,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pss_paper:{ pss_paper:{
type:'pss', type:'pss',
fullskin:true, fullskin:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
pss_scissor:{ pss_scissor:{
type:'pss', type:'pss',
fullskin:true, fullskin:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
pss_stone:{ pss_stone:{
type:'pss', type:'pss',
fullskin:true, fullskin:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
db_atk1:{ db_atk1:{
type:'db_atk', type:'db_atk',
fullimage:true, fullimage:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
db_atk2:{ db_atk2:{
type:'db_atk', type:'db_atk',
fullimage:true, fullimage:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
db_def1:{ db_def1:{
type:'db_def', type:'db_def',
fullimage:true, fullimage:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
db_def2:{ db_def2:{
type:'db_def', type:'db_def',
fullimage:true, fullimage:true,
derivation:'shenpei', //derivation:'shenpei',
}, },
}, },
characterFilter:{}, characterFilter:{},
@ -199,6 +199,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
return player.hp<=2&&!player.storage.rehunzi; return player.hp<=2&&!player.storage.rehunzi;
}, },
ai:{
threaten:function(player,target){
if(target.hp<=2) return 2;
return 0.5;
},
maixie:true,
effect:{
target:function(card,player,target){
if(!target.hasFriend()) return;
if(get.tag(card,'damage')==1&&target.hp==3&&!target.isTurnedOver()&&
_status.currentPhase!=target&&get.distance(_status.currentPhase,target,'absolute')<=3) return [0.5,1];
}
}
}
}, },
rezhijian:{ rezhijian:{
inherit:'zhijian', inherit:'zhijian',

View File

@ -447,18 +447,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 2' 'step 2'
if(!result.control) result.control='不质疑'; if(!result.control) result.control='不质疑';
event.guessers[0].chat(result.control); //event.guessers[0].chat(result.control);
game.delay(); //game.delay();
if(result.control=='不质疑'){ if(result.control=='不质疑'){
game.log(event.guessers[0],'#g不质疑'); //game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]); event.ally.push(event.guessers[0]);
}else{ }else{
game.log(event.guessers[0],'#y质疑'); //game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]); event.betray.push(event.guessers[0]);
} }
event.guessers.remove(event.guessers[0]); event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(1); if(event.guessers.length) event.goto(1);
'step 3' 'step 3'
for(var i=0;i<event.ally.length;i++) event.ally[i].chat('不质疑');
for(var i=0;i<event.betray.length;i++) event.betray[i].chat('质疑');
game.delay(1.5);
'step 4'
player.showCards(trigger.cards); player.showCards(trigger.cards);
if(event.betray.length){ if(event.betray.length){
if(trigger.card.name==trigger.cards[0].name){ if(trigger.card.name==trigger.cards[0].name){
@ -474,20 +478,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
else event.finish(); else event.finish();
'step 4' 'step 5'
if(event.fake){ if(event.fake){
game.delay(); game.delay();
event.finish(); event.finish();
} }
'step 5' 'step 6'
var target=event.betray.shift(); var target=event.betray.shift();
event.target=target; event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check; target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 6'
if(!result.bool) target.loseHp();
'step 7' 'step 7'
if(!result.bool) target.loseHp();
'step 8'
target.addSkill('rechanyuan'); target.addSkill('rechanyuan');
if(event.betray.length) event.goto(5); if(event.betray.length) event.goto(6);
}, },
}, },
"reguhuo_respond":{ "reguhuo_respond":{
@ -532,18 +536,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
'step 3' 'step 3'
if(!result.control) result.control='不质疑'; if(!result.control) result.control='不质疑';
event.guessers[0].chat(result.control); //event.guessers[0].chat(result.control);
game.delay(); //game.delay();
if(result.control=='不质疑'){ if(result.control=='不质疑'){
game.log(event.guessers[0],'#g不质疑'); //game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]); event.ally.push(event.guessers[0]);
}else{ }else{
game.log(event.guessers[0],'#y质疑'); //game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]); event.betray.push(event.guessers[0]);
} }
event.guessers.remove(event.guessers[0]); event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(2); if(event.guessers.length) event.goto(2);
'step 4' 'step 4'
for(var i=0;i<event.ally.length;i++) event.ally[i].chat('不质疑');
for(var i=0;i<event.betray.length;i++) event.betray[i].chat('质疑');
game.delay(1.5);
'step 5'
var bool=true; var bool=true;
player.showCards(event.card); player.showCards(event.card);
if(event.betray.length){ if(event.betray.length){
@ -564,20 +572,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.responded=true; trigger.responded=true;
trigger.result={bool:true,card:{name:event.name},cards:[event.card]}; trigger.result={bool:true,card:{name:event.name},cards:[event.card]};
} }
'step 5' 'step 6'
if(event.fake){ if(event.fake){
game.delay(); game.delay();
event.finish(); event.finish();
} }
'step 6' 'step 7'
var target=event.betray.shift(); var target=event.betray.shift();
event.target=target; event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check; target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 7'
if(!result.bool) target.loseHp();
'step 8' 'step 8'
if(!result.bool) target.loseHp();
'step 9'
if(target.isAlive()) target.addSkill('rechanyuan'); if(target.isAlive()) target.addSkill('rechanyuan');
if(event.betray.length) event.goto(6); if(event.betray.length) event.goto(7);
}, },
ai:{ ai:{
order:4, order:4,
@ -2058,13 +2066,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true, frequent:true,
content:function(){ content:function(){
"step 0" "step 0"
if(!player.storage.reluoshen) player.storage.reluoshen=[];
if(event.cards==undefined) event.cards=[]; if(event.cards==undefined) event.cards=[];
var next=player.judge(function(card){ var next=player.judge(function(card){
if(get.color(card)=='black') return 1.5; if(get.color(card)=='black') return 1.5;
return -1.5; return -1.5;
}); });
if(get.mode()!='guozhan'&&!player.hasSkillTag('rejudge')) next.set('callback',function(){ if(get.mode()!='guozhan'&&!player.hasSkillTag('rejudge')) next.set('callback',function(){
if(event.judgeResult.color=='black'&&get.position(card,true)=='o') player.gain(card,'gain2'); if(event.judgeResult.color=='black'&&get.position(card,true)=='o'){
player.storage.reluoshen.push(card);
player.gain(card,'gain2');
}
}); });
else next.set('callback',function(){ else next.set('callback',function(){
if(event.judgeResult.color=='black') event.getParent().orderingCards.remove(card); if(event.judgeResult.color=='black') event.getParent().orderingCards.remove(card);
@ -2072,7 +2084,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 1" "step 1"
if(result.judge>0){ if(result.judge>0){
event.cards.push(result.card); event.cards.push(result.card);
if(lib.config.autoskilllist.contains('luoshen')){ if(lib.config.autoskilllist.contains('reluoshen')){
player.chooseBool('是否再次发动【洛神】?'); player.chooseBool('是否再次发动【洛神】?');
} }
else{ else{
@ -2086,7 +2098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
} }
player.gain(event.cards,'gain2'); player.gain(event.cards,'gain2');
player.storage.reluoshen=event.cards.slice(0); player.storage.reluoshen.addArray(event.cards);
event.finish(); event.finish();
} }
"step 2" "step 2"
@ -2094,6 +2106,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.goto(0); event.goto(0);
} }
else{ else{
for(var i=0;i<event.cards.length;i++){
if(get.position(event.cards[i],true)!='o'){
event.cards.splice(i,1);i--;
}
}
if(event.cards.length){ if(event.cards.length){
player.gain(event.cards,'gain2'); player.gain(event.cards,'gain2');
player.storage.reluoshen=event.cards.slice(0); player.storage.reluoshen=event.cards.slice(0);

View File

@ -440,6 +440,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"drlt_qianjie":{ "drlt_qianjie":{
group:["drlt_qianjie_1","drlt_qianjie_2","drlt_qianjie_3"], group:["drlt_qianjie_1","drlt_qianjie_2","drlt_qianjie_3"],
locked:true, locked:true,
ai:{
effect:{
target:function(card){
if(card.name=='tiesuo') return 'zeroplayertarget';
},
},
},
subSkill:{ subSkill:{
'1':{ '1':{
audio:2, audio:2,
@ -1151,22 +1158,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_binglve":{audio:2}, "nzry_binglve":{audio:2},
"nzry_huaiju":{ "nzry_huaiju":{
marktext:"橘", marktext:"橘",
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
intro:{ intro:{
name:'怀橘',
name2:'橘',
content:'当前有#个“橘”', content:'当前有#个“橘”',
}, },
mark:true, //mark:true,
audio:2, audio:2,
trigger:{ trigger:{
global:'gameDrawAfter' global:'gameDrawAfter'
}, },
forced:true, forced:true,
content:function(){ content:function(){
player.storage.nzry_huaiju+=3; player.addMark('nzry_huaiju',3);
player.syncStorage('nzry_huaiju');
game.log(player,'获得了3个“橘”');
}, },
group:['tachibana_effect'], group:['tachibana_effect'],
}, },
@ -1178,20 +1182,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return !event.tachibanaed&&event.player.storage.nzry_huaiju&&event.player.storage.nzry_huaiju>0; return event.player.hasMark('nzry_huaiju');
}, },
content:function(){ content:function(){
trigger.tachibanaed=true;
player.line(trigger.player,'green'); player.line(trigger.player,'green');
if(trigger.name=='damage'){ if(trigger.name=='damage'){
trigger.cancel(); trigger.cancel();
trigger.player.storage.nzry_huaiju--; trigger.player.removeMark('nzry_huaiju',1);
if(!trigger.player.storage.nzry_huaiju) trigger.player.unmarkSkill('nzry_huaiju');
else{
trigger.player.syncStorage('nzry_huaiju');
trigger.player.updateMarks('nzry_huaiju');
}
game.log(trigger.player,'移去了1个“橘”');
} }
else trigger.num++; else trigger.num++;
}, },
@ -1214,7 +1211,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
if(result.bool){ if(result.bool){
event.target=result.targets[0]; event.target=result.targets[0];
if(player.storage.nzry_huaiju>0){ if(player.hasMark('nzry_huaiju')){
player.chooseControl().set('choiceList',['流失一点体力','移去一个“橘”']).set('ai',function(){ player.chooseControl().set('choiceList',['流失一点体力','移去一个“橘”']).set('ai',function(){
if(player.hp>2) return 0; if(player.hp>2) return 0;
return 1; return 1;
@ -1228,18 +1225,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//player.line(event.target,'green'); //player.line(event.target,'green');
player.logSkill('nzry_yili',target); player.logSkill('nzry_yili',target);
if(result.index==1){ if(result.index==1){
player.storage.nzry_huaiju--; player.removeMark('nzry_huaiju',1);
player.syncStorage('nzry_huaiju');
if(player.storage.nzry_huaiju<=0) player.unmarkSkill('nzry_huaiju');
game.log(player,'移去了1个“橘”');
}else{ }else{
player.loseHp(); player.loseHp();
}; };
if(event.target.storage.nzry_huaiju==undefined) event.target.storage.nzry_huaiju=0; target.addMark('nzry_huaiju',1);
event.target.markSkill('nzry_huaiju');
event.target.storage.nzry_huaiju++;
event.target.syncStorage('nzry_huaiju');
game.log(event.target,'获得了1个“橘”');
}, },
}, },
"nzry_zhenglun":{ "nzry_zhenglun":{
@ -1248,18 +1238,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'phaseDrawBefore' player:'phaseDrawBefore'
}, },
filter:function (event,player){ filter:function (event,player){
return player.storage.nzry_huaiju==undefined||player.storage.nzry_huaiju==0; return !player.hasMark('nzry_huaiju');
}, },
check:function (event,player){ check:function (event,player){
return player.countCards('h')>=2||player.skipList.contains('phaseUse'); return player.countCards('h')>=2||player.skipList.contains('phaseUse');
}, },
content:function(){ content:function(){
trigger.cancel(); trigger.cancel();
if(player.storage.nzry_huaiju==undefined) player.storage.nzry_huaiju=0; player.addMark('nzry_huaiju',1);
player.storage.nzry_huaiju++;
player.syncStorage('nzry_huaiju');
player.markSkill('nzry_huaiju');
game.log(player,'获得了1个“橘”');
}, },
}, },
"nzry_kuizhu":{ "nzry_kuizhu":{

View File

@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
huaman:['male','shu',3,['hmmanyi','mansi','souying'],['unseen']], huaman:['male','shu',3,['hmmanyi','mansi','souying','zhanyuan']],
xujing:['male','shu',3,['yuxu','xjshijian']], xujing:['male','shu',3,['yuxu','xjshijian']],
xushao:['male','qun',3,['pingjian'],['unseen']], xushao:['male','qun',3,['pingjian'],['unseen']],
puyuan:['male','shu',4,['pytianjiang','pyzhuren']], puyuan:['male','shu',4,['pytianjiang','pyzhuren']],
@ -503,22 +503,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"wolong_card":{ "wolong_card":{
type:"takaramono", type:"takaramono",
fullskin:true, fullskin:true,
derivation:"pangdegong", //derivation:"pangdegong",
}, },
"fengchu_card":{ "fengchu_card":{
type:"takaramono", type:"takaramono",
fullskin:true, fullskin:true,
derivation:"pangdegong", //derivation:"pangdegong",
}, },
"xuanjian_card":{ "xuanjian_card":{
fullskin:true, fullskin:true,
type:"takaramono", type:"takaramono",
derivation:"pangdegong", //derivation:"pangdegong",
}, },
"shuijing_card":{ "shuijing_card":{
fullskin:true, fullskin:true,
type:"takaramono", type:"takaramono",
derivation:"pangdegong", //derivation:"pangdegong",
}, },
"rewrite_bagua":{ "rewrite_bagua":{
derivation:"majun", derivation:"majun",
@ -677,12 +677,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
frequent:true, frequent:true,
content:function(){ content:function(){
player.draw(game.countPlayer(function(current){ var num=game.countPlayer(function(current){
return current.getHistory('damage',function(evt){ return current.getHistory('damage',function(evt){
return evt.getParent(2)==trigger; return evt.getParent(2)==trigger;
}).length>0; }).length>0;
})); });
player.draw(num);
player.addMark('mansi',num,false);
}, },
intro:{content:'已因此技能获得了#张牌'},
}, },
souying:{ souying:{
audio:2, audio:2,
@ -733,6 +736,66 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
souying2:{}, souying2:{},
zhanyuan:{
unique:true,
audio:2,
derivation:'hmxili',
skillAnimation:true,
animationColor:'soil',
juexingji:true,
forced:true,
filter:function(event,player){
return player.countMark('mansi')>7;
},
trigger:{player:'phaseZhunbeiBegin'},
content:function(){
'step 0'
player.awakenSkill('zhanyuan');
player.gainMaxHp();
'step 1'
player.chooseTarget('是否失去〖蛮嗣〗,令一名其他男性角色和自己一同获得技能〖系力〗?',function(card,player,target){
return target!=player&&target.sex=='male';
}).ai=function(target){
return 5-get.attitude(_status.event.player,target);
};
'step 2'
if(result.bool){
var target=result.targets[0];
player.line(target,'fire');
player.addSkill('hmxili');
target.addSkill('hmxili');
player.removeSkill('mansi');
}
},
},
hmxili:{
trigger:{global:'useCardToPlayered'},
direct:true,
audio:2,
filter:function(event,player){
return event.player!=player&&event.card.name=='sha'&&event.player.isPhaseUsing()&&event.player.hasSkill('hmxili')&&player.countCards('h')>0;
},
content:function(){
'step 0'
player.chooseToDiscard('是否弃置一张手牌,令'+get.translation(trigger.card)+'对'+get.translation(trigger.target)+'的伤害+1','h').set('logSkill',['hmxili',trigger.target]).set('goon',function(){
var target=trigger.target;
if(get.attitude(player,target)>=0) return false;
if(target.getEquip('baiyin')||target.mayHaveShan()) return false;
return true;
}()).ai=function(card){
if(_status.event.goon) return 5-get.value(card);
return -1;
};
'step 1'
if(result.bool){
var id=trigger.target.playerid;
var map=trigger.customArgs;
if(!map[id]) map[id]={};
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
}
},
},
//许邵许靖 //许邵许靖
yuxu:{ yuxu:{
audio:2, audio:2,
@ -1236,17 +1299,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
forced:true, forced:true,
trigger:{player:'damageBegin4'}, trigger:{player:'damageBegin4'},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
marktext:'珠', marktext:'珠',
intro:{ intro:{
name2:'珠',
content:'共有#个“珠”', content:'共有#个“珠”',
}, },
content:function(){ content:function(){
trigger.cancel(); trigger.cancel();
player.storage.lslixun+=trigger.num; player.addMark('lslixun',trigger.num);
player.markSkill('lslixun');
}, },
group:'lslixun_fate', group:'lslixun_fate',
}, },
@ -1255,12 +1315,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseUseBegin'}, trigger:{player:'phaseUseBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.lslixun&&player.storage.lslixun>0; return player.countMark('lslixun')>0;
}, },
content:function(){ content:function(){
'step 0' 'step 0'
event.forceDie=true; event.forceDie=true;
_status.lslixun=player.storage.lslixun; _status.lslixun=player.countMark('lslixun');
player.judge(function(card){ player.judge(function(card){
if(get.number(card)<_status.lslixun) return -_status.lslixun; if(get.number(card)<_status.lslixun) return -_status.lslixun;
return 1; return 1;
@ -1268,11 +1328,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
delete _status.lslixun; delete _status.lslixun;
if(!result.bool){ if(!result.bool){
player.chooseToDiscard([1,player.storage.lslixun],'h').ai=lib.skill.qiangxi.check; player.chooseToDiscard([1,player.countMark('lslixun')],'h').ai=lib.skill.qiangxi.check;
} }
else event.finish(); else event.finish();
'step 2' 'step 2'
var num=player.storage.lslixun; var num=player.countMark('lslixun');
if(result.cards&&result.cards.length) num-=result.cards.length; if(result.cards&&result.cards.length) num-=result.cards.length;
if(num) player.loseHp(num); if(num) player.loseHp(num);
}, },
@ -1329,8 +1389,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result.targets[0].damage(target); result.targets[0].damage(target);
} }
else{ else{
player.storage.lslixun--; player.removeMark('lslixun',1);
player[player.storage.lslixun?'markSkill':'unmarkSkill']('lslixun');
} }
}, },
}, },
@ -3770,8 +3829,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.recover(); player.recover();
var list=game.filterPlayer(); var list=game.filterPlayer();
for(var i=0;i<list.length;i++){ for(var i=0;i<list.length;i++){
if(list[i]!=player&&!list[i].hasSkill('zongkui_mark')){ if(list[i]!=player&&!list[i].hasMark('zongkui_mark')){
list[i].addSkill('zongkui_mark'); list[i].addMark('zongkui_mark',1);
player.line(list[i],'green'); player.line(list[i],'green');
} }
} }
@ -3794,7 +3853,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(info.type=='equip') return false; if(info.type=='equip') return false;
if(info.type=='delay') return false; if(info.type=='delay') return false;
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
if(!current.hasSkill('zongkui_mark')) return false; if(!current.hasMark('zongkui_mark')) return false;
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current); return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current);
}); });
}, },
@ -3802,7 +3861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt2('bmcanshi'),[1,Infinity],function(card,player,target){ player.chooseTarget(get.prompt2('bmcanshi'),[1,Infinity],function(card,player,target){
if(!target.hasSkill('zongkui_mark')) return false; if(!target.hasMark('zongkui_mark')) return false;
var trigger=_status.event.getTrigger(); var trigger=_status.event.getTrigger();
return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(trigger.card,player,target); return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(trigger.card,player,target);
}).set('ai',function(target){ }).set('ai',function(target){
@ -3814,7 +3873,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!event.isMine()&&!_status.connectMode) game.delayx(); if(!event.isMine()&&!_status.connectMode) game.delayx();
event.targets=result.targets.slice(0); event.targets=result.targets.slice(0);
for(var i=0;i<event.targets.length;i++){ for(var i=0;i<event.targets.length;i++){
event.targets[i].removeSkill('zongkui_mark'); event.targets[i].removeMark('zongkui_mark',1);
} }
} }
else{ else{
@ -3836,12 +3895,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player', logTarget:'player',
filter:function(event,player){ filter:function(event,player){
if(!event.targets||event.targets.length!=1) return false; if(!event.targets||event.targets.length!=1) return false;
return event.player.hasSkill('zongkui_mark'); return event.player.hasMark('zongkui_mark');
}, },
content:function(){ content:function(){
trigger.getParent().excluded.add(player); trigger.getParent().excluded.add(player);
game.delay(); game.delay();
trigger.player.removeSkill('zongkui_mark'); trigger.player.removeMark('zongkui_mark');
} }
} }
} }
@ -3857,7 +3916,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'damageEnd'}, trigger:{global:'damageEnd'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return event.player!=player&&event.player.isAlive()&&event.player.hasSkill('zongkui_mark'); return event.player!=player&&event.player.isAlive()&&event.player.hasMark('zongkui_mark');
}, },
content:function(){ content:function(){
'step 0' 'step 0'
@ -3884,20 +3943,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
zongkui:{ zongkui:{
trigger:{player:'phaseZhunbeiBegin',global:'roundStart'}, trigger:{player:'phaseBefore',global:'roundStart'},
direct:true, direct:true,
audio:2, audio:2,
filter:function(event,player){ filter:function(event,player){
return game.hasPlayer(function(current){ return game.hasPlayer(function(current){
if(event.name=='roundStart'&&!current.isMinHp()) return false; if(event.name=='roundStart'&&!current.isMinHp()) return false;
return current!=player&&!current.hasSkill('zongkui_mark'); return current!=player&&!current.hasMark('zongkui_mark');
}); });
}, },
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(get.prompt2('zongkui'),function(card,player,target){ player.chooseTarget(get.prompt2('zongkui'),function(card,player,target){
if(_status.event.round&&!target.isMinHp()) return false; if(_status.event.round&&!target.isMinHp()) return false;
return target!=player&&!target.hasSkill('zongkui_mark'); return target!=player&&!target.hasMark('zongkui_mark');
}).set('ai',function(target){ }).set('ai',function(target){
var num=target.isMinHp()?0.5:(1+Math.random()); var num=target.isMinHp()?0.5:(1+Math.random());
if(get.attitude(_status.event.player,target)<0){ if(get.attitude(_status.event.player,target)<0){
@ -3909,16 +3968,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('zongkui',target); player.logSkill('zongkui',target);
target.addSkill('zongkui_mark'); target.addMark('zongkui_mark',1);
} }
}, },
subSkill:{ subSkill:{
mark:{ mark:{
charlotte:true, marktext:'傀',
locked:true,
mark:true,
intro:{ intro:{
content:'已获得“傀”标记' name2:'傀',
content:'mark'
} }
} }
}, },
@ -7393,9 +7451,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
player.chooseToCompare(targets).callback=lib.skill.gushe.callback; player.chooseToCompare(targets).callback=lib.skill.gushe.callback;
}, },
init:function(player){
player.storage.gushe=0;
},
intro:{ intro:{
name:'饶舌', name:'饶舌',
content:'mark' content:'mark'
@ -7404,11 +7459,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
callback:function(){ callback:function(){
'step 0' 'step 0'
if(event.num1<=event.num2){ if(event.num1<=event.num2){
target.chat(lib.skill.gushe.chat[player.storage.gushe]); target.chat(lib.skill.gushe.chat[player.countMark('gushe')]);
game.delay(); game.delay();
player.storage.gushe++; player.addMark('gushe',1);
player.markSkill('gushe'); if(player.countMark('gushe')>=7){
if(player.storage.gushe>=7){
player.die(); player.die();
} }
} }
@ -7460,11 +7514,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
trigger:{player:'compare'}, trigger:{player:'compare'},
filter:function(event,player){ filter:function(event,player){
return event.getParent().name=='gushe'&&!event.iwhile&&event.num1<=player.storage.gushe; return event.getParent().name=='gushe'&&!event.iwhile&&event.num1<=player.countMark('gushe');
}, },
content:function(){ content:function(){
if(trigger.num1<player.storage.gushe){ if(trigger.num1<player.countMark('gushe')){
trigger.num1+=player.storage.gushe; trigger.num1+=player.countMark('gushe');
} }
else{ else{
player.getStat().skill.gushe--; player.getStat().skill.gushe--;
@ -10092,24 +10146,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
return event.nature=='fire'; return event.nature=='fire';
}, },
init:function(player){
player.storage.ranshang=0;
},
forced:true, forced:true,
check:function(){ check:function(){
return false; return false;
}, },
content:function(){ content:function(){
if(player.storage.ranshang){ player.addMark('ranshang',trigger.num);
player.storage.ranshang+=trigger.num;
}
else{
player.storage.ranshang=trigger.num;
}
player.markSkill('ranshang');
game.addVideo('storage',player,['ranshang',player.storage.ranshang]);
}, },
intro:{ intro:{
name2:'燃',
content:'mark' content:'mark'
}, },
ai:{ ai:{
@ -10129,10 +10174,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJieshuBegin'}, trigger:{player:'phaseJieshuBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.storage.ranshang>0; return player.countMark('ranshang')>0;
}, },
content:function(){ content:function(){
player.loseHp(player.storage.ranshang); player.loseHp(player.countMark('ranshang'));
} }
}, },
hanyong:{ hanyong:{
@ -13860,7 +13905,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mansi:'蛮嗣', mansi:'蛮嗣',
mansi_info:'一名角色使用的【南蛮入侵】结算完成后你可以摸X张牌X为受到过此牌伤害的角色数。', mansi_info:'一名角色使用的【南蛮入侵】结算完成后你可以摸X张牌X为受到过此牌伤害的角色数。',
souying:'薮影', souying:'薮影',
souying_info:'每回合限一次', souying_info:'每回合限一次,当你对一名男性角色造成伤害(或一名男性角色对你造成伤害时)若此伤害是你对其(或其对你)本回合内造成的第二次伤害,你可以弃置一张手牌令此伤害+1或-1。',
zhanyuan:'战缘',
zhanyuan_info:'觉醒技准备阶段若你已因蛮嗣累计获得超过7张牌你加一点体力上限并可以选择一名男性角色你与其获得技能〖系力〗然后你失去技能〖蛮嗣〗',
hmxili:'系力',
hmxili_info:'你的回合外,当其他拥有〖系力〗技能的角色在其回合内使用【杀】指定目标后,你可以弃置一张手牌,令此【杀】伤害+1。',
yuxu:'誉虚', yuxu:'誉虚',
yuxu_info:'当你于出牌阶段内使用牌时,你可以摸一张牌。若如此做,当你于出牌阶段内使用下一张牌时,你弃置一张牌。', yuxu_info:'当你于出牌阶段内使用牌时,你可以摸一张牌。若如此做,当你于出牌阶段内使用下一张牌时,你弃置一张牌。',
yuxu2:'誉虚(弃牌)', yuxu2:'誉虚(弃牌)',

View File

@ -1129,24 +1129,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:["xinfu_xionghuo_damage","xinfu_xionghuo_begin","xinfu_xionghuo_init"], group:["xinfu_xionghuo_damage","xinfu_xionghuo_begin","xinfu_xionghuo_init"],
subSkill:{ subSkill:{
begin:{ begin:{
silent:true, audio:'xinfu_xionghuo',
popup:false, logTarget:'player',
sub:true, line:false,
forced:true, forced:true,
trigger:{ trigger:{
global:"phaseUseBegin", global:"phaseUseBegin",
}, },
filter:function (event,player){ filter:function (event,player){
return event.player.hasSkill('xionghuo')&&event.player!=player; return event.player.countMark('xionghuo')>0&&event.player!=player;
}, },
content:function (){ content:function (){
'step 0' 'step 0'
player.logSkill("xinfu_xionghuo"); trigger.player.removeMark('xionghuo',1);
if(trigger.player.storage.xionghuo>1) trigger.player.storage.xionghuo--;
else{
delete trigger.player.storage.xionghuo;
trigger.player.removeSkill('xionghuo');
}
var list=[1,2,3]; var list=[1,2,3];
var num=list.randomGet(); var num=list.randomGet();
event.goto(num); event.goto(num);
@ -1182,7 +1177,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
source:"damageBegin1", source:"damageBegin1",
}, },
filter:function (event,player){ filter:function (event,player){
return event.player.hasSkill('xionghuo'); return event.player.countMark('xionghuo')>0;
}, },
content:function (){ content:function (){
trigger.num++; trigger.num++;
@ -1196,45 +1191,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
locked:false, locked:false,
content:function(){ content:function(){
player.storage.xinfu_xionghuo+=3; player.addMark("xionghuo",3);
player.markSkill("xinfu_xionghuo");
}, },
}, },
}, },
audio:2, audio:2,
enable:"phaseUse", enable:"phaseUse",
usable:null,
init:function (player){
if(player.storage.xinfu_xionghuo==undefined) player.storage.xinfu_xionghuo=0;
},
//mark:true,
marktext:"戾",
intro:{
content:"mark",
},
filter:function(event,player){ filter:function(event,player){
return player.storage.xinfu_xionghuo>0; return player.countMark('xionghuo')>0;
}, },
filterTarget:function (card,player,target){ filterTarget:function (card,player,target){
if(target.storage.xionghuo!=undefined&&target.storage.xionghuo>0) return false; if(target.hasMark('xionghuo')) return false;
return player!=target&&player.storage.xinfu_xionghuo>0; return player!=target>0;
}, },
content:function (){ content:function (){
if(target.storage.xionghuo==undefined||target.storage.xionghuo==0){ player.removeMark('xionghuo',1);
target.addSkill('xionghuo'); target.addMark('xionghuo',1);
target.storage.xionghuo=0;
}
target.storage.xionghuo++;
player.storage.xinfu_xionghuo--;
target.syncStorage('xionghuo');
player.syncStorage('xinfu_xionghuo');
if(player.storage.xinfu_xionghuo==0) player.unmarkSkill('xinfu_xionghuo');
}, },
ai:{ ai:{
order:11, order:11,
result:{ result:{
target:function (player,target){ target:function (player,target){
return Math.min(-(1+player.storage.xinfu_xionghuo-target.hp),0); var mark=player.countMark('xionghuo');
if(mark>2) return -1;
return Math.min(-(1+mark-target.hp),0);
}, },
}, },
threaten:1.1, threaten:1.1,
@ -1244,6 +1224,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:"戾", marktext:"戾",
mark:true, mark:true,
intro:{ intro:{
name:'暴戾',
content:"mark", content:"mark",
}, },
locked:true, locked:true,
@ -1286,10 +1267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0],true)=='o'){ if(trigger.parent.name=='damage'&&get.itemtype(trigger.parent.cards)=='cards'&&get.position(trigger.parent.cards[0],true)=='o'){
player.gain(trigger.parent.cards,"gain2"); player.gain(trigger.parent.cards,"gain2");
} }
if(!player.storage.xinfu_xionghuo) player.storage.xinfu_xionghuo=0; player.addMark('xionghuo',1);
player.storage.xinfu_xionghuo++;
player.markSkill('xinfu_xionghuo');
player.syncStorage('xinfu_xionghuo');
}, },
}, },
"xinfu_jianjie":{ "xinfu_jianjie":{
@ -1914,27 +1892,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
"xinfu_falu":{ "xinfu_falu":{
init:function (player,skill){ subSkill:{
if(player.storage[skill]==undefined) player.storage[skill]=0; spade:{
if(player.storage[skill+'_map']==undefined) player.storage[skill+'_map']={ marktext:'♠︎️',
spade:false,heart:false,diamond:false,club:false, intro:{
}; name:'紫薇',
}, content:'mark',
//mark:true, },
intro:{ },
content:function (content,player){ heart:{
var storage=player.storage.xinfu_falu_map; marktext:'♥︎️',
var str='紫薇:'; intro:{
str+=storage.spade?1:0; name:'玉清',
str+='、玉清:'; content:'mark',
str+=storage.heart?1:0; },
str+='、后土:'; },
str+=storage.club?1:0; club:{
str+='、勾陈:'; marktext:'♣︎️',
str+=storage.diamond?1:0; intro:{
str+='、合计:'; name:'后土',
str+=content; content:'mark',
return str; },
},
diamond:{
marktext:'♦︎',
intro:{
name:'勾陈',
content:'mark',
},
}, },
}, },
forced:true, forced:true,
@ -1946,28 +1931,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){ filter:function (event,player){
if(event.name!='discard') return true; if(event.name!='discard') return true;
for(var i=0;i<event.cards.length;i++){ for(var i=0;i<event.cards.length;i++){
if(!player.storage.xinfu_falu_map[get.suit(event.cards[i])]) return true; if(!player.hasMark('xinfu_falu_'+get.suit(event.cards[i]))) return true;
} }
return false; return false;
}, },
content:function (){ content:function (){
if(trigger.name!='discard'){ if(trigger.name!='discard'){
player.storage[event.name]=4; for(var i=0;i<lib.suit.length;i++){
player.storage[event.name+'_map']={ if(!player.hasMark('xinfu_falu_'+lib.suit[i])) player.addMark('xinfu_falu_'+lib.suit[i]);
spade:true,heart:true,diamond:true,club:true, }
};
player.markSkill('xinfu_falu');
return; return;
} }
for(var i=0;i<trigger.cards.length;i++){ for(var i=0;i<trigger.cards.length;i++){
player.storage.xinfu_falu_map[get.suit(trigger.cards[i])]=true; var suit=get.suit(trigger.cards[i]);
if(!player.hasMark('xinfu_falu_'+suit)) player.addMark('xinfu_falu_'+suit);
} }
var num=0;
for(var i in player.storage.xinfu_falu_map){
if(player.storage.xinfu_falu_map[i]==true) num++;
}
player.storage.xinfu_falu=num;
player.markSkill('xinfu_falu');
}, },
}, },
"xinfu_dianhua":{ "xinfu_dianhua":{
@ -1977,11 +1955,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true, frequent:true,
audio:2, audio:2,
filter:function (event,player){ filter:function (event,player){
return player.storage.xinfu_falu&&player.storage.xinfu_falu>0; for(var i=0;i<lib.suit.length;i++){
if(player.hasMark('xinfu_falu_'+lib.suit[i])) return true;
}
return false;
}, },
content:function (){ content:function (){
'step 0' 'step 0'
var num=player.storage.xinfu_falu; var num=0;
for(var i=0;i<lib.suit.length;i++){
if(player.hasMark('xinfu_falu_'+lib.suit[i])) num++;
}
player.chooseCardButton(num,true,get.cards(num),'【点化】:按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){ player.chooseCardButton(num,true,get.cards(num),'【点化】:按顺将卡牌置于牌堆顶(先选择的在上)').set('ai',function(button){
return get.value(button.link); return get.value(button.link);
}); });
@ -2002,18 +1986,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2, audio:2,
filter:function (event,player){ filter:function (event,player){
if(!event.nature) return false; if(!event.nature) return false;
return player.storage.xinfu_falu_map.diamond; return player.hasMark('xinfu_falu_diamond');
}, },
prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。', prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。',
content:function (){ content:function (){
'step 0' 'step 0'
player.storage.xinfu_falu_map.diamond=false; player.removeMark('xinfu_falu_diamond');
var num=0;
for(var i in player.storage.xinfu_falu_map){
if(player.storage.xinfu_falu_map[i]==true) num++;
}
player.storage.xinfu_falu=num;
player[num?'markSkill':'unmarkSkill']('xinfu_falu');
event.num=0; event.num=0;
event.togain=[]; event.togain=[];
'step 1' 'step 1'
@ -2035,30 +2013,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
"zhenyi_spade":{ "zhenyi_spade":{
subSkill:{
red:{
mod:{
suit:function (card,suit){
return 'heart';
},
},
sub:true,
},
black:{
mod:{
suit:function (card,suit){
return 'spade';
},
},
sub:true,
},
},
trigger:{ trigger:{
global:"judge", global:"judge",
}, },
direct:true, direct:true,
filter:function (event,player){ filter:function (event,player){
return player.storage.xinfu_falu_map.spade==true; return player.hasMark('xinfu_falu_spade');
}, },
content:function (){ content:function (){
"step 0" "step 0"
@ -2092,15 +2052,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('judging',trigger.player.judging[0]); }).set('judging',trigger.player.judging[0]);
"step 1" "step 1"
if(['黑桃5','红桃5'].contains(result.control)){ if(['黑桃5','红桃5'].contains(result.control)){
player.storage.xinfu_falu_map.spade=false; player.removeMark('xinfu_falu_spade');
var num=0;
for(var i in player.storage.xinfu_falu_map){
if(player.storage.xinfu_falu_map[i]==true) num++;
}
player.storage.xinfu_falu=num;
player[num?'markSkill':'unmarkSkill']('xinfu_falu');
player.logSkill('xinfu_zhenyi',trigger.player); player.logSkill('xinfu_zhenyi',trigger.player);
player.line(trigger.player); //player.line(trigger.player);
player.popup(result.control); player.popup(result.control);
game.log(player,'将判定结果改为了','#y'+result.control); game.log(player,'将判定结果改为了','#y'+result.control);
trigger.fixedResult={ trigger.fixedResult={
@ -2125,7 +2079,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"chooseToUse", enable:"chooseToUse",
filter:function (event,player){ filter:function (event,player){
if(!player.isDying()) return false; if(!player.isDying()) return false;
return player.storage.xinfu_falu_map.club; return player.hasMark('xinfu_falu_club');
}, },
filterCard:true, filterCard:true,
position:"h", position:"h",
@ -2135,14 +2089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:"弃置“后土”标记将一张手牌当桃使用", prompt:"弃置“后土”标记将一张手牌当桃使用",
check:function (card){return 15-get.value(card)}, check:function (card){return 15-get.value(card)},
precontent:function (){ precontent:function (){
player.logSkill('xinfu_zhenyi'); player.hasMark('xinfu_falu_club');
player.storage.xinfu_falu_map.club=false;
var num=0;
for(var i in player.storage.xinfu_falu_map){
if(player.storage.xinfu_falu_map[i]==true) num++;
}
player.storage.xinfu_falu=num;
player[num?'markSkill':'unmarkSkill']('xinfu_falu');
}, },
ai:{ ai:{
skillTagFilter:function (player){ skillTagFilter:function (player){
@ -2158,7 +2105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
source:"damageBegin1", source:"damageBegin1",
}, },
filter:function (event,player){ filter:function (event,player){
return event.source&&player.storage.xinfu_falu_map.heart; return player.hasMark('xinfu_falu_heart');
}, },
check:function (event,player){ check:function (event,player){
return false; return false;
@ -2169,13 +2116,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:"player", logTarget:"player",
content:function (){ content:function (){
"step 0" "step 0"
player.storage.xinfu_falu_map.heart=false; player.removeMark('xinfu_falu_heart')
var num=0;
for(var i in player.storage.xinfu_falu_map){
if(player.storage.xinfu_falu_map[i]==true) num++;
}
player.storage.xinfu_falu=num;
player[num?'markSkill':'unmarkSkill']('xinfu_falu');
player.judge(function(card){ player.judge(function(card){
if(get.color(card)=='black') return 4; if(get.color(card)=='black') return 4;
return -1; return -1;

View File

@ -6456,9 +6456,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{global:'useCardToPlayered'}, trigger:{global:'useCardToPlayered'},
filter:function(event,player){ filter:function(event,player){
if(event.getParent().triggeredTargets3.length>1) return false; if(event.getParent().triggeredTargets3.length>1) return false;
return !player.hasSkill('zuoding2')&&get.suit(event.card)=='spade'&& return get.suit(event.card)=='spade'&&
_status.currentPhase==event.player&&event.targets&&event.targets.length&& _status.currentPhase==event.player&&event.targets&&event.targets.length&&
event.player!=player; event.player!=player&&!game.hasPlayer(function(current){
return current.getHistory('damage').length>0;
});
}, },
direct:true, direct:true,
content:function(){ content:function(){
@ -6477,7 +6479,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
expose:0.2 expose:0.2
}, },
group:'zuoding3' //group:'zuoding3'
}, },
zuoding2:{}, zuoding2:{},
zuoding3:{ zuoding3:{
@ -7773,10 +7775,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
xiantu:{ xiantu:{
unique:true, //unique:true,
audio:2, audio:'xiantu1',
gainable:true, group:'xiantu2',
forceunique:true, //gainable:true,
//forceunique:true,
trigger:{global:'phaseUseBegin'}, trigger:{global:'phaseUseBegin'},
filter:function(event,player){ filter:function(event,player){
return event.player!=player; return event.player!=player;
@ -7802,24 +7805,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}); });
"step 2" "step 2"
trigger.player.gain(result.cards,player,'giveAuto'); trigger.player.gain(result.cards,player,'giveAuto');
trigger.player.addSkill('xiantu2'); trigger.player.addSkill('xiantu4');
trigger.player.storage.xiantu=player; trigger.player.storage.xiantu4.push(player);
}, },
ai:{ ai:{
threaten:1.1, threaten:1.1,
expose:0.3 expose:0.3
} }
}, },
xiantu2:{ xiantu1:{audio:true},
xiantu2:{audio:true},
xiantu4:{
trigger:{player:'phaseUseEnd'}, trigger:{player:'phaseUseEnd'},
forced:true, forced:true,
audio:false, audio:false,
onremove:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
charlotte:true,
content:function(){ content:function(){
if(player.storage.xiantu){ while(player.storage.xiantu4.length){
player.storage.xiantu.loseHp(); var current=player.storage.xiantu4.shift();
delete player.storage.xiantu; if(current.isDead()) continue;
current.logSkill('xiantu2');
current.loseHp();
} }
player.removeSkill('xiantu2'); player.removeSkill('xiantu4');
}, },
group:'xiantu3' group:'xiantu3'
}, },
@ -7828,8 +7840,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
audio:false, audio:false,
content:function(){ content:function(){
delete player.storage.xiantu; player.removeSkill('xiantu4');
player.removeSkill('xiantu2');
} }
}, },
qiangzhi:{ qiangzhi:{

View File

@ -1956,7 +1956,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){ filter:function(event,player){
if(event.player==player) return false; if(event.player==player) return false;
if(event.player.sex!='male') return false; if(event.player.sex!='male') return false;
if(event.result.card.parentNode.id!='discardPile') return false; if(get.position(event.result.card)!='o') return false;
return (get.color(event.result.card)=='red'); return (get.color(event.result.card)=='red');
}, },
content:function(){ content:function(){

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'1.9.97.3', '1.9.97.2',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -2488,6 +2488,7 @@ window.noname_asset_list=[
'image/character/xujing.jpg', 'image/character/xujing.jpg',
'image/character/old_fuhuanghou.jpg', 'image/character/old_fuhuanghou.jpg',
'image/character/old_caochong.jpg', 'image/character/old_caochong.jpg',
'image/character/huaman.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',
@ -4128,4 +4129,4 @@ window.noname_skin_list={
shibing1:6, shibing1:6,
shibing2:6, shibing2:6,
}; };

View File

@ -13474,6 +13474,9 @@
next.card=card; next.card=card;
next.cards=cards; next.cards=cards;
next.player=player; next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true; if(event.forceDie) next.forceDie=true;
event.redo(); event.redo();
} }
@ -13489,6 +13492,9 @@
next.card=card; next.card=card;
next.cards=cards; next.cards=cards;
next.player=player; next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true; if(event.forceDie) next.forceDie=true;
event.redo(); event.redo();
} }
@ -13504,6 +13510,9 @@
next.card=card; next.card=card;
next.cards=cards; next.cards=cards;
next.player=player; next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true; if(event.forceDie) next.forceDie=true;
event.redo(); event.redo();
} }
@ -13519,6 +13528,9 @@
next.card=card; next.card=card;
next.cards=cards; next.cards=cards;
next.player=player; next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true; if(event.forceDie) next.forceDie=true;
event.redo(); event.redo();
} }
@ -16114,6 +16126,44 @@
this.updateMarks(); this.updateMarks();
return this; return this;
}, },
removeMark:function(i,num,log){
if(typeof num!='number'||!num) num=1;
if(typeof this.storage[i]!='number'||!this.storage[i]) return;
if(num>this.storage[i]) num=this.storage[i];
this.storage[i]-=num;
if(log!==false){
var str=false;
var info=get.info(i);
if(info&&info.intro&&(info.intro.name||info.intro.name2)) str=info.intro.name2||info.intro.name;
else str=lib.translate[i];
if(str) game.log(this,'移去了',get.cnNumber(num),'个','#g【'+str+'】');
}
this.syncStorage(i);
this[this.storage[i]?'updateMark':'unmarkSkill'](i);
},
addMark:function(i,num,log){
if(typeof num!='number'||!num) num=1;
if(typeof this.storage[i]!='number') this.storage[i]=0;
this.storage[i]+=num;
if(log!==false){
var str=false;
var info=get.info(i);
if(info&&info.intro&&(info.intro.name||info.intro.name2)) str=info.intro.name2||info.intro.name;
else str=lib.translate[i];
if(str) game.log(this,'获得了',get.cnNumber(num),'个','#g【'+str+'】');
}
this.syncStorage(i);
this.updateMark(i);
},
countMark:function(i){
if(this.storage[i]==undefined) return 0;
if(typeof this.storage[i]=='number') return this.storage[i];
if(Array.isArray(this.storage[i])) return this.storage[i].length;
return 0;
},
hasMark:function(i){
return this.countMark(i)>0;
},
updateMark:function(i,storage){ updateMark:function(i,storage){
if(!this.marks[i]){ if(!this.marks[i]){
if(lib.skill[i]&&lib.skill[i].intro&&(this.storage[i]||lib.skill[i].intro.markcount)){ if(lib.skill[i]&&lib.skill[i].intro&&(this.storage[i]||lib.skill[i].intro.markcount)){
@ -26047,7 +26097,7 @@
else if(typeof arguments[i]=='function'){ else if(typeof arguments[i]=='function'){
onerror=arguments[i] onerror=arguments[i]
} }
if(_status.video) break; if(_status.video&&arguments[1]!='video') break;
} }
if(_status.skillaudio.contains(str)) return; if(_status.skillaudio.contains(str)) return;
_status.skillaudio.add(str); _status.skillaudio.add(str);
@ -26704,6 +26754,23 @@
game.loop(); game.loop();
}, },
videoContent:{ videoContent:{
jiuNode:function(player,bool){
//Powered by 升麻
if(bool){
if(!player.node.jiu&&lib.config.jiu_effect){
player.node.jiu=ui.create.div('.playerjiu',player.node.avatar);
player.node.jiu2=ui.create.div('.playerjiu',player.node.avatar2);
}
}
else{
if(player.node.jiu){
player.node.jiu.delete();
player.node.jiu2.delete();
delete player.node.jiu;
delete player.node.jiu2;
}
}
},
init:function(players){ init:function(players){
if(game.chess) return; if(game.chess) return;
if(lib.config.mode=='versus'){ if(lib.config.mode=='versus'){

View File

@ -1,40 +1,41 @@
window.noname_update={ window.noname_update={
version:'1.9.97.2.1', version:'1.9.97.3',
update:'1.9.97.2', update:'1.9.97.2.1',
changeLog:[ changeLog:[
'花鬘解禁',
'BUG修复', 'BUG修复',
], ],
files:[ files:[
//'card/extra.js', 'card/extra.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
'card/sp.js', //'card/sp.js',
//'card/standard.js', //'card/standard.js',
//'card/swd.js', //'card/swd.js',
'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
'character/diy.js', //'character/diy.js',
'character/extra.js', 'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
'character/old.js', //'character/old.js',
'character/refresh.js', 'character/refresh.js',
'character/shenhua.js', 'character/shenhua.js',
'character/sp.js', 'character/sp.js',
//'character/tw.js', //'character/tw.js',
'character/standard.js', //'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', 'character/xinghuoliaoyuan.js',
'character/yijiang.js', 'character/yijiang.js',
//'character/yxs.js', 'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'layout/default/layout.css', //'layout/default/layout.css',
//'mode/identity.js', //'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', //'mode/guozhan.js',
//'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
'mode/brawl.js', 'mode/brawl.js',
@ -43,8 +44,8 @@ window.noname_update={
'game/game.js', 'game/game.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',
'game/package.js', //'game/package.js',
'game/asset.js', //'game/asset.js',
//'game/source.js', //'game/source.js',
] ]
}; };

BIN
image/character/huaman.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@ -611,12 +611,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.changeLingli(-1); player.changeLingli(-1);
player.draw(); player.draw();
}, },
}, ai:{
ai:{ order:10,
order:10, result:{
result:{ player:function(player){
player:function(player){ return (player.storage._lingli-2*(3-player.skillH.length))>0?1:0;
return (player.storage._lingli-2*(3-player.skillH.length))>0?1:0; },
}, },
}, },
}, },
@ -720,7 +720,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
trigger._lastDead.uninit(); trigger._lastDead.uninit();
trigger._lastDead.init(['hhzz_shiona','hhzz_kanade','hhzz_takaramono1','hhzz_takaramono2'].randomGet()); trigger._lastDead.init(['hhzz_shiona','hhzz_kanade','hhzz_takaramono1','hhzz_takaramono2'].randomGet());
trigger._lastDead.skillH=lib.character[trigger._lastDead.name][3].slice(0); trigger._lastDead.skillH=lib.character[trigger._lastDead.name][3].slice(0);
trigger._lastDead.addSkill('hhzz_nocard'); trigger._lastDead.addSkill('hhzz_noCard');
break; break;
} }
} }