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

View File

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

View File

@ -447,18 +447,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 2'
if(!result.control) result.control='不质疑';
event.guessers[0].chat(result.control);
game.delay();
//event.guessers[0].chat(result.control);
//game.delay();
if(result.control=='不质疑'){
game.log(event.guessers[0],'#g不质疑');
//game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]);
}else{
game.log(event.guessers[0],'#y质疑');
//game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]);
}
event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(1);
'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);
if(event.betray.length){
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();
'step 4'
'step 5'
if(event.fake){
game.delay();
event.finish();
}
'step 5'
'step 6'
var target=event.betray.shift();
event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 6'
if(!result.bool) target.loseHp();
'step 7'
if(!result.bool) target.loseHp();
'step 8'
target.addSkill('rechanyuan');
if(event.betray.length) event.goto(5);
if(event.betray.length) event.goto(6);
},
},
"reguhuo_respond":{
@ -532,18 +536,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 3'
if(!result.control) result.control='不质疑';
event.guessers[0].chat(result.control);
game.delay();
//event.guessers[0].chat(result.control);
//game.delay();
if(result.control=='不质疑'){
game.log(event.guessers[0],'#g不质疑');
//game.log(event.guessers[0],'#g不质疑');
event.ally.push(event.guessers[0]);
}else{
game.log(event.guessers[0],'#y质疑');
//game.log(event.guessers[0],'#y质疑');
event.betray.push(event.guessers[0]);
}
event.guessers.remove(event.guessers[0]);
if(event.guessers.length) event.goto(2);
'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;
player.showCards(event.card);
if(event.betray.length){
@ -564,20 +572,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.responded=true;
trigger.result={bool:true,card:{name:event.name},cards:[event.card]};
}
'step 5'
'step 6'
if(event.fake){
game.delay();
event.finish();
}
'step 6'
'step 7'
var target=event.betray.shift();
event.target=target;
target.chooseToDiscard('弃置一张牌或失去一点体力','he').ai=lib.skill.qiangxi.check;
'step 7'
if(!result.bool) target.loseHp();
'step 8'
if(!result.bool) target.loseHp();
'step 9'
if(target.isAlive()) target.addSkill('rechanyuan');
if(event.betray.length) event.goto(6);
if(event.betray.length) event.goto(7);
},
ai:{
order:4,
@ -2058,13 +2066,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true,
content:function(){
"step 0"
if(!player.storage.reluoshen) player.storage.reluoshen=[];
if(event.cards==undefined) event.cards=[];
var next=player.judge(function(card){
if(get.color(card)=='black') return 1.5;
return -1.5;
});
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(){
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"
if(result.judge>0){
event.cards.push(result.card);
if(lib.config.autoskilllist.contains('luoshen')){
if(lib.config.autoskilllist.contains('reluoshen')){
player.chooseBool('是否再次发动【洛神】?');
}
else{
@ -2086,7 +2098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
player.gain(event.cards,'gain2');
player.storage.reluoshen=event.cards.slice(0);
player.storage.reluoshen.addArray(event.cards);
event.finish();
}
"step 2"
@ -2094,6 +2106,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.goto(0);
}
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){
player.gain(event.cards,'gain2');
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":{
group:["drlt_qianjie_1","drlt_qianjie_2","drlt_qianjie_3"],
locked:true,
ai:{
effect:{
target:function(card){
if(card.name=='tiesuo') return 'zeroplayertarget';
},
},
},
subSkill:{
'1':{
audio:2,
@ -1151,22 +1158,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_binglve":{audio:2},
"nzry_huaiju":{
marktext:"橘",
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
intro:{
name:'怀橘',
name2:'橘',
content:'当前有#个“橘”',
},
mark:true,
//mark:true,
audio:2,
trigger:{
global:'gameDrawAfter'
},
forced:true,
content:function(){
player.storage.nzry_huaiju+=3;
player.syncStorage('nzry_huaiju');
game.log(player,'获得了3个“橘”');
player.addMark('nzry_huaiju',3);
},
group:['tachibana_effect'],
},
@ -1178,20 +1182,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
forced:true,
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(){
trigger.tachibanaed=true;
player.line(trigger.player,'green');
if(trigger.name=='damage'){
trigger.cancel();
trigger.player.storage.nzry_huaiju--;
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个“橘”');
trigger.player.removeMark('nzry_huaiju',1);
}
else trigger.num++;
},
@ -1214,7 +1211,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
event.target=result.targets[0];
if(player.storage.nzry_huaiju>0){
if(player.hasMark('nzry_huaiju')){
player.chooseControl().set('choiceList',['流失一点体力','移去一个“橘”']).set('ai',function(){
if(player.hp>2) return 0;
return 1;
@ -1228,18 +1225,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//player.line(event.target,'green');
player.logSkill('nzry_yili',target);
if(result.index==1){
player.storage.nzry_huaiju--;
player.syncStorage('nzry_huaiju');
if(player.storage.nzry_huaiju<=0) player.unmarkSkill('nzry_huaiju');
game.log(player,'移去了1个“橘”');
player.removeMark('nzry_huaiju',1);
}else{
player.loseHp();
};
if(event.target.storage.nzry_huaiju==undefined) event.target.storage.nzry_huaiju=0;
event.target.markSkill('nzry_huaiju');
event.target.storage.nzry_huaiju++;
event.target.syncStorage('nzry_huaiju');
game.log(event.target,'获得了1个“橘”');
target.addMark('nzry_huaiju',1);
},
},
"nzry_zhenglun":{
@ -1248,18 +1238,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:'phaseDrawBefore'
},
filter:function (event,player){
return player.storage.nzry_huaiju==undefined||player.storage.nzry_huaiju==0;
return !player.hasMark('nzry_huaiju');
},
check:function (event,player){
return player.countCards('h')>=2||player.skipList.contains('phaseUse');
},
content:function(){
trigger.cancel();
if(player.storage.nzry_huaiju==undefined) player.storage.nzry_huaiju=0;
player.storage.nzry_huaiju++;
player.syncStorage('nzry_huaiju');
player.markSkill('nzry_huaiju');
game.log(player,'获得了1个“橘”');
player.addMark('nzry_huaiju',1);
},
},
"nzry_kuizhu":{

View File

@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
huaman:['male','shu',3,['hmmanyi','mansi','souying'],['unseen']],
huaman:['male','shu',3,['hmmanyi','mansi','souying','zhanyuan']],
xujing:['male','shu',3,['yuxu','xjshijian']],
xushao:['male','qun',3,['pingjian'],['unseen']],
puyuan:['male','shu',4,['pytianjiang','pyzhuren']],
@ -503,22 +503,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"wolong_card":{
type:"takaramono",
fullskin:true,
derivation:"pangdegong",
//derivation:"pangdegong",
},
"fengchu_card":{
type:"takaramono",
fullskin:true,
derivation:"pangdegong",
//derivation:"pangdegong",
},
"xuanjian_card":{
fullskin:true,
type:"takaramono",
derivation:"pangdegong",
//derivation:"pangdegong",
},
"shuijing_card":{
fullskin:true,
type:"takaramono",
derivation:"pangdegong",
//derivation:"pangdegong",
},
"rewrite_bagua":{
derivation:"majun",
@ -677,12 +677,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
frequent:true,
content:function(){
player.draw(game.countPlayer(function(current){
var num=game.countPlayer(function(current){
return current.getHistory('damage',function(evt){
return evt.getParent(2)==trigger;
}).length>0;
}));
});
player.draw(num);
player.addMark('mansi',num,false);
},
intro:{content:'已因此技能获得了#张牌'},
},
souying:{
audio:2,
@ -733,6 +736,66 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
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:{
audio:2,
@ -1236,17 +1299,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
forced:true,
trigger:{player:'damageBegin4'},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=0;
},
marktext:'珠',
intro:{
name2:'珠',
content:'共有#个“珠”',
},
content:function(){
trigger.cancel();
player.storage.lslixun+=trigger.num;
player.markSkill('lslixun');
player.addMark('lslixun',trigger.num);
},
group:'lslixun_fate',
},
@ -1255,12 +1315,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseUseBegin'},
forced:true,
filter:function(event,player){
return player.storage.lslixun&&player.storage.lslixun>0;
return player.countMark('lslixun')>0;
},
content:function(){
'step 0'
event.forceDie=true;
_status.lslixun=player.storage.lslixun;
_status.lslixun=player.countMark('lslixun');
player.judge(function(card){
if(get.number(card)<_status.lslixun) return -_status.lslixun;
return 1;
@ -1268,11 +1328,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
delete _status.lslixun;
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();
'step 2'
var num=player.storage.lslixun;
var num=player.countMark('lslixun');
if(result.cards&&result.cards.length) num-=result.cards.length;
if(num) player.loseHp(num);
},
@ -1329,8 +1389,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result.targets[0].damage(target);
}
else{
player.storage.lslixun--;
player[player.storage.lslixun?'markSkill':'unmarkSkill']('lslixun');
player.removeMark('lslixun',1);
}
},
},
@ -3770,8 +3829,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.recover();
var list=game.filterPlayer();
for(var i=0;i<list.length;i++){
if(list[i]!=player&&!list[i].hasSkill('zongkui_mark')){
list[i].addSkill('zongkui_mark');
if(list[i]!=player&&!list[i].hasMark('zongkui_mark')){
list[i].addMark('zongkui_mark',1);
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=='delay') return false;
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);
});
},
@ -3802,7 +3861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
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();
return !trigger.targets.contains(target)&&lib.filter.targetEnabled2(trigger.card,player,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();
event.targets=result.targets.slice(0);
for(var i=0;i<event.targets.length;i++){
event.targets[i].removeSkill('zongkui_mark');
event.targets[i].removeMark('zongkui_mark',1);
}
}
else{
@ -3836,12 +3895,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player',
filter:function(event,player){
if(!event.targets||event.targets.length!=1) return false;
return event.player.hasSkill('zongkui_mark');
return event.player.hasMark('zongkui_mark');
},
content:function(){
trigger.getParent().excluded.add(player);
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'},
forced:true,
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(){
'step 0'
@ -3884,20 +3943,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
zongkui:{
trigger:{player:'phaseZhunbeiBegin',global:'roundStart'},
trigger:{player:'phaseBefore',global:'roundStart'},
direct:true,
audio:2,
filter:function(event,player){
return game.hasPlayer(function(current){
if(event.name=='roundStart'&&!current.isMinHp()) return false;
return current!=player&&!current.hasSkill('zongkui_mark');
return current!=player&&!current.hasMark('zongkui_mark');
});
},
content:function(){
'step 0'
player.chooseTarget(get.prompt2('zongkui'),function(card,player,target){
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){
var num=target.isMinHp()?0.5:(1+Math.random());
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){
var target=result.targets[0];
player.logSkill('zongkui',target);
target.addSkill('zongkui_mark');
target.addMark('zongkui_mark',1);
}
},
subSkill:{
mark:{
charlotte:true,
locked:true,
mark:true,
marktext:'傀',
intro:{
content:'已获得“傀”标记'
name2:'傀',
content:'mark'
}
}
},
@ -7393,9 +7451,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
player.chooseToCompare(targets).callback=lib.skill.gushe.callback;
},
init:function(player){
player.storage.gushe=0;
},
intro:{
name:'饶舌',
content:'mark'
@ -7404,11 +7459,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
callback:function(){
'step 0'
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();
player.storage.gushe++;
player.markSkill('gushe');
if(player.storage.gushe>=7){
player.addMark('gushe',1);
if(player.countMark('gushe')>=7){
player.die();
}
}
@ -7460,11 +7514,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
trigger:{player:'compare'},
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(){
if(trigger.num1<player.storage.gushe){
trigger.num1+=player.storage.gushe;
if(trigger.num1<player.countMark('gushe')){
trigger.num1+=player.countMark('gushe');
}
else{
player.getStat().skill.gushe--;
@ -10092,24 +10146,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
return event.nature=='fire';
},
init:function(player){
player.storage.ranshang=0;
},
forced:true,
check:function(){
return false;
},
content:function(){
if(player.storage.ranshang){
player.storage.ranshang+=trigger.num;
}
else{
player.storage.ranshang=trigger.num;
}
player.markSkill('ranshang');
game.addVideo('storage',player,['ranshang',player.storage.ranshang]);
player.addMark('ranshang',trigger.num);
},
intro:{
name2:'燃',
content:'mark'
},
ai:{
@ -10129,10 +10174,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJieshuBegin'},
forced:true,
filter:function(event,player){
return player.storage.ranshang>0;
return player.countMark('ranshang')>0;
},
content:function(){
player.loseHp(player.storage.ranshang);
player.loseHp(player.countMark('ranshang'));
}
},
hanyong:{
@ -13860,7 +13905,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mansi:'蛮嗣',
mansi_info:'一名角色使用的【南蛮入侵】结算完成后你可以摸X张牌X为受到过此牌伤害的角色数。',
souying:'薮影',
souying_info:'每回合限一次',
souying_info:'每回合限一次,当你对一名男性角色造成伤害(或一名男性角色对你造成伤害时)若此伤害是你对其(或其对你)本回合内造成的第二次伤害,你可以弃置一张手牌令此伤害+1或-1。',
zhanyuan:'战缘',
zhanyuan_info:'觉醒技准备阶段若你已因蛮嗣累计获得超过7张牌你加一点体力上限并可以选择一名男性角色你与其获得技能〖系力〗然后你失去技能〖蛮嗣〗',
hmxili:'系力',
hmxili_info:'你的回合外,当其他拥有〖系力〗技能的角色在其回合内使用【杀】指定目标后,你可以弃置一张手牌,令此【杀】伤害+1。',
yuxu:'誉虚',
yuxu_info:'当你于出牌阶段内使用牌时,你可以摸一张牌。若如此做,当你于出牌阶段内使用下一张牌时,你弃置一张牌。',
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"],
subSkill:{
begin:{
silent:true,
popup:false,
sub:true,
audio:'xinfu_xionghuo',
logTarget:'player',
line:false,
forced:true,
trigger:{
global:"phaseUseBegin",
},
filter:function (event,player){
return event.player.hasSkill('xionghuo')&&event.player!=player;
return event.player.countMark('xionghuo')>0&&event.player!=player;
},
content:function (){
'step 0'
player.logSkill("xinfu_xionghuo");
if(trigger.player.storage.xionghuo>1) trigger.player.storage.xionghuo--;
else{
delete trigger.player.storage.xionghuo;
trigger.player.removeSkill('xionghuo');
}
trigger.player.removeMark('xionghuo',1);
var list=[1,2,3];
var num=list.randomGet();
event.goto(num);
@ -1182,7 +1177,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
source:"damageBegin1",
},
filter:function (event,player){
return event.player.hasSkill('xionghuo');
return event.player.countMark('xionghuo')>0;
},
content:function (){
trigger.num++;
@ -1196,45 +1191,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
locked:false,
content:function(){
player.storage.xinfu_xionghuo+=3;
player.markSkill("xinfu_xionghuo");
player.addMark("xionghuo",3);
},
},
},
audio:2,
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){
return player.storage.xinfu_xionghuo>0;
return player.countMark('xionghuo')>0;
},
filterTarget:function (card,player,target){
if(target.storage.xionghuo!=undefined&&target.storage.xionghuo>0) return false;
return player!=target&&player.storage.xinfu_xionghuo>0;
if(target.hasMark('xionghuo')) return false;
return player!=target>0;
},
content:function (){
if(target.storage.xionghuo==undefined||target.storage.xionghuo==0){
target.addSkill('xionghuo');
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');
player.removeMark('xionghuo',1);
target.addMark('xionghuo',1);
},
ai:{
order:11,
result:{
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,
@ -1244,6 +1224,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:"戾",
mark:true,
intro:{
name:'暴戾',
content:"mark",
},
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'){
player.gain(trigger.parent.cards,"gain2");
}
if(!player.storage.xinfu_xionghuo) player.storage.xinfu_xionghuo=0;
player.storage.xinfu_xionghuo++;
player.markSkill('xinfu_xionghuo');
player.syncStorage('xinfu_xionghuo');
player.addMark('xionghuo',1);
},
},
"xinfu_jianjie":{
@ -1914,27 +1892,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"xinfu_falu":{
init:function (player,skill){
if(player.storage[skill]==undefined) player.storage[skill]=0;
if(player.storage[skill+'_map']==undefined) player.storage[skill+'_map']={
spade:false,heart:false,diamond:false,club:false,
};
},
//mark:true,
intro:{
content:function (content,player){
var storage=player.storage.xinfu_falu_map;
var str='紫薇:';
str+=storage.spade?1:0;
str+='、玉清:';
str+=storage.heart?1:0;
str+='、后土:';
str+=storage.club?1:0;
str+='、勾陈:';
str+=storage.diamond?1:0;
str+='、合计:';
str+=content;
return str;
subSkill:{
spade:{
marktext:'♠︎️',
intro:{
name:'紫薇',
content:'mark',
},
},
heart:{
marktext:'♥︎️',
intro:{
name:'玉清',
content:'mark',
},
},
club:{
marktext:'♣︎️',
intro:{
name:'后土',
content:'mark',
},
},
diamond:{
marktext:'♦︎',
intro:{
name:'勾陈',
content:'mark',
},
},
},
forced:true,
@ -1946,28 +1931,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function (event,player){
if(event.name!='discard') return true;
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;
},
content:function (){
if(trigger.name!='discard'){
player.storage[event.name]=4;
player.storage[event.name+'_map']={
spade:true,heart:true,diamond:true,club:true,
};
player.markSkill('xinfu_falu');
for(var i=0;i<lib.suit.length;i++){
if(!player.hasMark('xinfu_falu_'+lib.suit[i])) player.addMark('xinfu_falu_'+lib.suit[i]);
}
return;
}
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":{
@ -1977,11 +1955,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
frequent:true,
audio:2,
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 (){
'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){
return get.value(button.link);
});
@ -2002,18 +1986,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:2,
filter:function (event,player){
if(!event.nature) return false;
return player.storage.xinfu_falu_map.diamond;
return player.hasMark('xinfu_falu_diamond');
},
prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。',
content:function (){
'step 0'
player.storage.xinfu_falu_map.diamond=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');
player.removeMark('xinfu_falu_diamond');
event.num=0;
event.togain=[];
'step 1'
@ -2035,30 +2013,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"zhenyi_spade":{
subSkill:{
red:{
mod:{
suit:function (card,suit){
return 'heart';
},
},
sub:true,
},
black:{
mod:{
suit:function (card,suit){
return 'spade';
},
},
sub:true,
},
},
trigger:{
global:"judge",
},
direct:true,
filter:function (event,player){
return player.storage.xinfu_falu_map.spade==true;
return player.hasMark('xinfu_falu_spade');
},
content:function (){
"step 0"
@ -2092,15 +2052,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).set('judging',trigger.player.judging[0]);
"step 1"
if(['黑桃5','红桃5'].contains(result.control)){
player.storage.xinfu_falu_map.spade=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');
player.removeMark('xinfu_falu_spade');
player.logSkill('xinfu_zhenyi',trigger.player);
player.line(trigger.player);
//player.line(trigger.player);
player.popup(result.control);
game.log(player,'将判定结果改为了','#y'+result.control);
trigger.fixedResult={
@ -2125,7 +2079,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
enable:"chooseToUse",
filter:function (event,player){
if(!player.isDying()) return false;
return player.storage.xinfu_falu_map.club;
return player.hasMark('xinfu_falu_club');
},
filterCard:true,
position:"h",
@ -2135,14 +2089,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
prompt:"弃置“后土”标记将一张手牌当桃使用",
check:function (card){return 15-get.value(card)},
precontent:function (){
player.logSkill('xinfu_zhenyi');
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');
player.hasMark('xinfu_falu_club');
},
ai:{
skillTagFilter:function (player){
@ -2158,7 +2105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
source:"damageBegin1",
},
filter:function (event,player){
return event.source&&player.storage.xinfu_falu_map.heart;
return player.hasMark('xinfu_falu_heart');
},
check:function (event,player){
return false;
@ -2169,13 +2116,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:"player",
content:function (){
"step 0"
player.storage.xinfu_falu_map.heart=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');
player.removeMark('xinfu_falu_heart')
player.judge(function(card){
if(get.color(card)=='black') return 4;
return -1;

View File

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

View File

@ -1956,7 +1956,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(event.player==player) 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');
},
content:function(){

View File

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

View File

@ -13474,6 +13474,9 @@
next.card=card;
next.cards=cards;
next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true;
event.redo();
}
@ -13489,6 +13492,9 @@
next.card=card;
next.cards=cards;
next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true;
event.redo();
}
@ -13504,6 +13510,9 @@
next.card=card;
next.cards=cards;
next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true;
event.redo();
}
@ -13519,6 +13528,9 @@
next.card=card;
next.cards=cards;
next.player=player;
next.excluded=event.excluded;
next.directHit=event.directHit;
next.customArgs=event.customArgs;
if(event.forceDie) next.forceDie=true;
event.redo();
}
@ -16114,6 +16126,44 @@
this.updateMarks();
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){
if(!this.marks[i]){
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'){
onerror=arguments[i]
}
if(_status.video) break;
if(_status.video&&arguments[1]!='video') break;
}
if(_status.skillaudio.contains(str)) return;
_status.skillaudio.add(str);
@ -26704,6 +26754,23 @@
game.loop();
},
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){
if(game.chess) return;
if(lib.config.mode=='versus'){

View File

@ -1,40 +1,41 @@
window.noname_update={
version:'1.9.97.2.1',
update:'1.9.97.2',
version:'1.9.97.3',
update:'1.9.97.2.1',
changeLog:[
'花鬘解禁',
'BUG修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/huanlekapai.js',
'card/sp.js',
//'card/sp.js',
//'card/standard.js',
//'card/swd.js',
'card/guozhan.js',
//'card/guozhan.js',
//'card/gwent.js',
'character/diy.js',
//'character/diy.js',
'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
'character/old.js',
//'character/old.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
'character/standard.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
'character/yxs.js',
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'mode/identity.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
//'mode/guozhan.js',
//'mode/single.js',
//'mode/stone.js',
'mode/brawl.js',
@ -43,8 +44,8 @@ window.noname_update={
'game/game.js',
//'game/NoSleep.js',
//'game/config.js',
'game/package.js',
'game/asset.js',
//'game/package.js',
//'game/asset.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.draw();
},
},
ai:{
order:10,
result:{
player:function(player){
return (player.storage._lingli-2*(3-player.skillH.length))>0?1:0;
ai:{
order:10,
result:{
player:function(player){
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.init(['hhzz_shiona','hhzz_kanade','hhzz_takaramono1','hhzz_takaramono2'].randomGet());
trigger._lastDead.skillH=lib.character[trigger._lastDead.name][3].slice(0);
trigger._lastDead.addSkill('hhzz_nocard');
trigger._lastDead.addSkill('hhzz_noCard');
break;
}
}