This commit is contained in:
libccy 2015-12-27 16:09:12 +08:00
parent ed4e6c191c
commit 2aabbff7b5
43 changed files with 813 additions and 48 deletions

Binary file not shown.

BIN
audio/skill/tianming1.mp3 Executable file

Binary file not shown.

BIN
audio/skill/tianming2.mp3 Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -183,7 +183,7 @@ character.diy={
return 7-ai.get.value(card); return 7-ai.get.value(card);
}, },
content:function(){ content:function(){
target.addJudge('bingliang',cards); player.useCard({name:'bingliang'},target,cards).animate=false;
player.draw(); player.draw();
}, },
ai:{ ai:{

View File

@ -572,7 +572,11 @@ character.mountain={
player.unmarkSkill('tuntian'); player.unmarkSkill('tuntian');
} }
player.logSkill('jixi',result.targets); player.logSkill('jixi',result.targets);
player.useCard({name:'shunshou'},[event.card],result.targets[0]); player.useCard({name:'shunshou'},[event.card],result.targets[0]).audio=false;
}
else{
player.addTempSkill('jixi2','phaseAfter');
event.finish();
} }
}, },
ai:{ ai:{

View File

@ -774,6 +774,16 @@ character.refresh={
ai:{ ai:{
result:{ result:{
target:function(player,target){ target:function(player,target){
var hs=player.get('h');
if(hs.length<3) return 0;
var bool=false;
for(var i=0;i<hs.length;i++){
if(hs[i].number>=9&&ai.get.value(hs[i])<7){
bool=true;
break;
}
}
if(!bool) return 0;
if(target.num('h')>target.hp+1&&ai.get.recoverEffect(target)>0){ if(target.num('h')>target.hp+1&&ai.get.recoverEffect(target)>0){
return 1; return 1;
} }
@ -1088,7 +1098,7 @@ character.refresh={
target.discard(target.getJudge('lebu')); target.discard(target.getJudge('lebu'));
} }
else{ else{
target.addJudge('lebu',cards); player.useCard({name:'lebu'},target,cards).animate=false;
} }
player.draw(); player.draw();
}, },

View File

@ -3402,7 +3402,7 @@ character.sp={
} }
}, },
tianming:{ tianming:{
audio:true, audio:2,
trigger:{target:'shaBegin'}, trigger:{target:'shaBegin'},
check:function(event,player){ check:function(event,player){
var cards=player.get('h'); var cards=player.get('h');

View File

@ -313,10 +313,10 @@ character.standard={
}, },
content:function(){ content:function(){
"step 0" "step 0"
event.cards=get.cards(2*trigger.num); player.draw(2*trigger.num);
player.gain(event.cards);
player.$draw(event.cards.length);
"step 1" "step 1"
event.cards=result;
"step 2"
player.chooseCardTarget({ player.chooseCardTarget({
filterCard:function(card){ filterCard:function(card){
return _status.event.parent.cards.contains(card); return _status.event.parent.cards.contains(card);
@ -334,14 +334,14 @@ character.standard={
}, },
prompt:'请选择要送人的卡牌' prompt:'请选择要送人的卡牌'
}); });
"step 2" "step 3"
if(result.bool){ if(result.bool){
result.targets[0].gain(result.cards); result.targets[0].gain(result.cards);
player.$give(result.cards.length,result.targets[0]); player.$give(result.cards.length,result.targets[0]);
for(var i=0;i<result.cards.length;i++){ for(var i=0;i<result.cards.length;i++){
event.cards.remove(result.cards[i]); event.cards.remove(result.cards[i]);
} }
if(event.cards.length) event.goto(1); if(event.cards.length) event.goto(2);
} }
}, },
ai:{ ai:{
@ -644,7 +644,7 @@ character.standard={
}, },
jijiang3:{}, jijiang3:{},
wusheng:{ wusheng:{
audio:6, audio:3,
enable:['chooseToRespond','chooseToUse'], enable:['chooseToRespond','chooseToUse'],
filterCard:function(card){ filterCard:function(card){
return get.color(card)=='red'; return get.color(card)=='red';
@ -1029,21 +1029,6 @@ character.standard={
content:function(){ content:function(){
"step 0" "step 0"
target.chooseControl('heart2','diamond2','club2','spade2').ai=function(event){ target.chooseControl('heart2','diamond2','club2','spade2').ai=function(event){
//var player=event.parent.player;
//var list=[player.get('h',{suit:'heart'}),
//player.get('h',{suit:'diamond'}),
//player.get('h',{suit:'club'}),
//player.get('h',{suit:'spade'})];
//for(var i=0;i<list.length;i++){
// list[i]+=Math.random()*player.num('h')*2;
//}
//var max=list[0],result=0;
//for(var i=1;i<4;i++){
// if(list[i]>max){
// result=i;
// max=list[i];
// }
//}
switch(Math.floor(Math.random()*6)){ switch(Math.floor(Math.random()*6)){
case 0:return 'heart2'; case 0:return 'heart2';
case 1:case 4:case 5:return 'diamond2'; case 1:case 4:case 5:return 'diamond2';
@ -1052,6 +1037,7 @@ character.standard={
} }
}; };
"step 1" "step 1"
game.log(target,'选择了'+get.translation(result.control));
event.choice=result.control; event.choice=result.control;
target.popup(event.choice); target.popup(event.choice);
event.card=player.get('h').randomGet(); event.card=player.get('h').randomGet();
@ -1336,6 +1322,9 @@ character.standard={
audio:2, audio:2,
trigger:{player:'shaBegin'}, trigger:{player:'shaBegin'},
forced:true, forced:true,
filter:function(event,player){
return !event.directHit;
},
content:function(){ content:function(){
"step 0" "step 0"
var next=trigger.target.chooseToRespond({name:'shan'}); var next=trigger.target.chooseToRespond({name:'shan'});

View File

@ -540,6 +540,7 @@ character.woods={
trigger:{player:'shaBegin',target:'shaBegin'}, trigger:{player:'shaBegin',target:'shaBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(event.directHit) return false;
if(player==event.player){ if(player==event.player){
return event.target.sex=='female'; return event.target.sex=='female';
} }
@ -638,12 +639,21 @@ character.woods={
intro:{ intro:{
content:'limited' content:'limited'
}, },
prepare:function(cards,player){
player.line(game.players);
for(var i=0;i<game.players.length;i++){
if(game.players[i]!=player){
game.players[i].animate('target');
}
}
},
content:function(){ content:function(){
"step 0" "step 0"
player.unmarkSkill('luanwu') player.unmarkSkill('luanwu')
player.storage.luanwu=true; player.storage.luanwu=true;
event.current=player.next; event.current=player.next;
"step 1" "step 1"
event.current.animate('target');
event.current.chooseToUse({name:'sha'},function(card,player,target){ event.current.chooseToUse({name:'sha'},function(card,player,target){
if(player==target) return false; if(player==target) return false;
if(get.distance(player,target)<=1) return true; if(get.distance(player,target)<=1) return true;

View File

@ -463,12 +463,12 @@ character.xianjian={
if(result.bool){ if(result.bool){
var cards=player.get('hej'); var cards=player.get('hej');
var target=result.targets[0]; var target=result.targets[0];
if(player.storage.shuiyun&&player.storage.shuiyun.length){ // if(player.storage.shuiyun&&player.storage.shuiyun.length){
target.gainMaxHp(); // target.gainMaxHp();
target.recover(player.storage.shuiyun.length); // target.recover(player.storage.shuiyun.length);
cards=cards.concat(player.storage.shuiyun); // cards=cards.concat(player.storage.shuiyun);
player.storage.shuiyun.length=0; // player.storage.shuiyun.length=0;
} // }
player.$give(cards,target); player.$give(cards,target);
target.gain(cards); target.gain(cards);
target.addSkill('changnian2'); target.addSkill('changnian2');
@ -1385,7 +1385,7 @@ character.xianjian={
wangyou_info:'其他角色的回合结束阶段,你可以弃置一张牌,令此回合内受过伤害的所有角色各摸一张牌', wangyou_info:'其他角色的回合结束阶段,你可以弃置一张牌,令此回合内受过伤害的所有角色各摸一张牌',
changnian:'长念', changnian:'长念',
changnian2:'追思', changnian2:'追思',
changnian_info:'你死亡时,可以将所有牌交给一名其他角色,令其获得技能【追思】若你有至少1张“蕴”该角色增加1点体力上限回复X点体力X为“蕴”的个数', changnian_info:'你死亡时,可以将所有牌交给一名其他角色,令其获得技能【追思】',
sajin:'洒金', sajin:'洒金',
sajin_info:'出牌阶段限一次,你可以弃置一张手牌并指定任意名角色进行判定,若判定颜色与你弃置的牌相同,该角色回复一点体力', sajin_info:'出牌阶段限一次,你可以弃置一张手牌并指定任意名角色进行判定,若判定颜色与你弃置的牌相同,该角色回复一点体力',
jubao:'聚宝', jubao:'聚宝',

View File

@ -1795,6 +1795,47 @@ character.yijiang={
} }
}, },
mingjian:{ mingjian:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player!=target;
},
filterCard:true,
selectCard:-1,
discard:false,
lose:true,
content:function(){
player.$give(cards.length,target);
target.gain(cards);
target.addTempSkill('mingjian2',{player:'phaseAfter'});
},
ai:{
order:1,
result:{
target:function(player,target){
if(player.hp<=2&&player.num('h','shan')) return 0;
if(target.num('h')+player.num('h')>target.hp+2) return 0;
if(ai.get.attitude(player,target)>3) return 1;
return 0;
}
}
}
},
mingjian2:{
mark:true,
intro:{
content:'手牌上限+1出杀次数+1'
},
mod:{
maxHandcard:function(player,num){
return num+1;
},
cardUsable:function(card,player,num){
if(card.name=='sha') return num+1;
}
},
},
mingjian_old:{
audio:2, audio:2,
trigger:{player:'phaseUseBefore'}, trigger:{player:'phaseUseBefore'},
direct:true, direct:true,
@ -1827,7 +1868,7 @@ character.yijiang={
} }
} }
}, },
mingjian2:{ mingjian2_old:{
audio:false, audio:false,
trigger:{global:'phaseAfter'}, trigger:{global:'phaseAfter'},
forced:true, forced:true,
@ -4303,6 +4344,7 @@ character.yijiang={
qice2:{ qice2:{
filterCard:true, filterCard:true,
selectCard:-1, selectCard:-1,
audio:2
}, },
qice3:{ qice3:{
trigger:{player:'useCardBefore'}, trigger:{player:'useCardBefore'},
@ -4616,7 +4658,7 @@ character.yijiang={
"step 2" "step 2"
var source=target; var source=target;
event.card=result.buttons[0].link; event.card=result.buttons[0].link;
player.chooseTarget(function(card,player,target){ player.chooseTarget('选择一个目标送出'+get.translation(event.card),function(card,player,target){
return target!=source&&target!=player; return target!=source&&target!=player;
}).ai=function(target){ }).ai=function(target){
return ai.get.attitude(player,target); return ai.get.attitude(player,target);
@ -5472,7 +5514,8 @@ character.yijiang={
huituo:'恢拓', huituo:'恢拓',
huituo_info:'每当你受到伤害后你可以令一名角色进行一次判定若结果为红色该角色回复1点体力若结果为黑色该角色摸X张牌X为此次伤害的伤害数', huituo_info:'每当你受到伤害后你可以令一名角色进行一次判定若结果为红色该角色回复1点体力若结果为黑色该角色摸X张牌X为此次伤害的伤害数',
mingjian:'明鉴', mingjian:'明鉴',
mingjian_info:'你可以跳过出牌阶段并将所有手牌交给一名其他角色。若如此做,你结束此回合,然后该角色进行一个额外的出牌阶段', mingjian2:'明鉴',
mingjian_info:'出牌阶段限一次,你可以将所有手牌交给一名其他角色,若如此做,该角色于其下个回合的手牌上限+1且出杀的次数上限+1',
xingshuai:'兴衰', xingshuai:'兴衰',
xingshuai_info:'主公技限定技当你进入濒死状态时其他魏势力角色可依次令你回复1点体力然后这些角色依次受到1点伤害', xingshuai_info:'主公技限定技当你进入濒死状态时其他魏势力角色可依次令你回复1点体力然后这些角色依次受到1点伤害',
duodao:'夺刀', duodao:'夺刀',

View File

@ -20,8 +20,588 @@ character.yxs={
yxs_lishimin:['male','qun',4,['kongju']], yxs_lishimin:['male','qun',4,['kongju']],
yxs_huamulan:['female','shu',3,['xiaoji','yizhuang']], yxs_huamulan:['female','shu',3,['xiaoji','yizhuang']],
yxs_luobinhan:['male','wu',4,['xiadao','lzhangyi']], yxs_luobinhan:['male','wu',4,['xiadao','lzhangyi']],
yxs_chengjisihan:['male','qun',4,['mashu','qianglue']],
yxs_mingchenghuanghou:['female','shu',3,['tiewan','chajue']],
yxs_wangzhaojun:['female','qun',3,['heqin','luoyan']],
yxs_luocheng:['male','wu',4,['hanqiang','biaoqi']],
yxs_direnjie:['male','wei',3,['shentan','kanpo']],
yxs_sunwu:['male','wu',3,['bingsheng','taolue']],
yxs_chengyaojin:['male','qun',4,['sanbanfu']],
yxs_yuji:['female','qun',3,['sheshen','changnian']],
yxs_xiangyu:['male','qun',4,['wushuang','ciqiu']],
yxs_yingzheng:['male','qun',4,['jianxiong','batu']],
yxs_yuefei:['male','qun',4,['longdan','wumu']],
yxs_fuermosi:['male','qun',3,['yanyi','jiean']],
yxs_guiguzi:['male','qun',3,['baihe','yinyang','xiushen']],
yxs_xiaoqiao:['female','wu',3,['chujia','zhijie']],
yxs_luzhishen:['male','qun',4,['dili','kuangchan']],
}, },
skill:{ skill:{
dili:{
trigger:{player:'phaseDrawBegin'},
forced:true,
filter:function(event,player){
return player.hp<player.maxHp;
},
content:function(){
trigger.num+=player.maxHp-player.hp;
},
ai:{
threaten:function(player,target){
if(target.hp==1) return 2.5;
if(target.hp==2) return 1.5;
return 0.5;
},
maixie:true,
effect:{
target:function(card,player,target){
if(target.maxHp<=3) return;
if(get.tag(card,'damage')){
if(target.hp==target.maxHp) return [0,1];
}
if(get.tag(card,'recover')&&player.hp>=player.maxHp-1) return [0,0];
}
}
}
},
kuangchan:{
init:function(player){
if(lib.config.mode=='identity'&&player.isZhu){
player.maxHp--;
player.update();
}
}
},
chujia:{
enable:'phaseUse',
filterCard:function(card){
if(ui.selected.cards.length){
return get.color(card)==get.color(ui.selected.cards[0]);
}
return true;
},
usable:1,
selectCard:2,
check:function(card){
return 6-ai.get.value(card);
},
filterTarget:function(card,player,target){
return target.hp<target.maxHp;
},
content:function(){
if(target.maxHp>target.hp){
target.draw(target.maxHp-target.hp);
}
},
ai:{
order:2,
result:{
target:function(player,target){
var num=target.maxHp-target.hp;
if(num>2) return num;
return 0;
}
}
}
},
baihe:{
enable:'phaseUse',
usable:1,
filterCard:true,
position:'he',
filterTarget:true,
content:function(){
'step 0'
if(target.isLinked()){
target.link();
}
else{
target.link();
target.draw();
event.finish();
}
'step 1'
if(target.num('h')){
target.chooseToDiscard('h',true);
}
},
check:function(card){
return 8-ai.get.value(card);
},
ai:{
order:1,
result:{
player:function(player,target){
if(!player.skills.contains('xiushen')) return 0;
if(target.isLinked()) return 0;
for(var i=0;i<game.players.length;i++){
if(game.players[i].isLinked()) return 0;
}
return 1;
}
}
}
},
yinyang:{
enable:'phaseUse',
usable:1,
filterCard:true,
selectCard:2,
filterTarget:true,
selectTarget:3,
content:function(){
target.link();
},
check:function(card){
return 6-ai.get.value(card);
},
ai:{
order:7.5,
result:{
target:function(player,target){
if(target.isLinked()) return 1;
return -1;
}
}
}
},
xiushen:{
trigger:{player:'phaseEnd'},
forced:true,
filter:function(event,player){
for(var i=0;i<game.players.length;i++){
if(game.players[i].isLinked()) return true;
}
return false;
},
content:function(){
player.draw(2);
},
ai:{
threaten:1.4
}
},
jiean:{
trigger:{source:'damageEnd'},
frequent:true,
filter:function(event){
return event.player.isAlive()&&event.parent.name=='yanyi'&&event.player.hp<event.player.maxHp;
},
content:function(){
"step 0"
player.draw(trigger.player.maxHp-trigger.player.hp);
"step 1"
event.cards=result;
"step 2"
player.chooseCardTarget({
filterCard:function(card){
return _status.event.parent.cards.contains(card);
},
selectCard:[1,event.cards.length],
filterTarget:function(card,player,target){
return player!=target;
},
ai1:function(card){
if(ui.selected.cards.length>0) return -1;
return (_status.event.player.num('h')-_status.event.player.hp);
},
ai2:function(target){
return ai.get.attitude(_status.event.player,target)-4;
},
prompt:'请选择要送人的卡牌'
});
"step 3"
if(result.bool){
result.targets[0].gain(result.cards);
player.$give(result.cards.length,result.targets[0]);
for(var i=0;i<result.cards.length;i++){
event.cards.remove(result.cards[i]);
}
if(event.cards.length) event.goto(2);
}
},
ai:{
maixie:true,
effect:{
target:function(card,player,target){
if(get.tag(card,'damage')){
if(player.skills.contains('jueqing')) return [1,-2];
if(!target.hasFriend()) return;
if(target.hp>=4) return [1,get.tag(card,'damage')*2];
if(target.hp==3) return [1,get.tag(card,'damage')*1.5];
if(target.hp==2) return [1,get.tag(card,'damage')*0.5];
}
}
}
}
},
yanyi:{
enable:'phaseUse',
usable:1,
filterCard:{color:'black'},
position:'he',
filterTarget:function(card,player,target){
return target!=player&&target.num('h')>0;
},
content:function(){
"step 0"
player.chooseControl('heart2','diamond2','club2','spade2').ai=function(event){
switch(Math.floor(Math.random()*5)){
case 0:return 'heart2';
case 1:case 4:return 'diamond2';
case 2:return 'club2';
case 3:return 'spade2';
}
};
"step 1"
game.log(player,'选择了'+get.translation(result.control));
event.choice=result.control.slice(0,result.control.length-1);
target.popup(result.control);
target.showHandcards();
"step 2"
if(target.num('h',{suit:event.choice})){
target.damage();
}
},
ai:{
result:{
target:function(player,target){
return ai.get.damageEffect(target,player,target);
}
}
}
},
wumu:{
mod:{
targetInRange:function(card,player){
if(card.name=='sha'&&get.color(card)=='black') return true;
},
cardUsable:function(card){
if(card.name=='sha'&&get.color(card)=='red') return Infinity;
}
},
trigger:{player:'useCard'},
filter:function(event,player){
return event.card.name=='sha'&&get.color(event.card)=='red';
},
forced:true,
content:function(){
if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--;
}
},
},
sheshen:{
inherit:'yiji'
},
sanbanfu:{
trigger:{player:'shaBegin'},
filter:function(event,player){
return !event.directHit;
},
check:function(event,player){
if(ai.get.attitude(player,event.target)>=0) return false;
if(event.target.num('e','bagua')) return false;
if(event.target.hasSkillTag('respondShan')&&event.target.num('h')>=3) return false;
return true;
},
content:function(){
"step 0"
var next=trigger.target.chooseToRespond({name:'shan'});
next.autochoose=lib.filter.autoRespondShan;
next.ai=function(card){
return ai.get.unuseful2(card);
};
player.storage.sanbanfu=false;
player.storage.sanbanfu2=false;
"step 1"
if(result.bool==false){
trigger.untrigger();
trigger.directHit=true;
player.storage.sanbanfu2=true;
}
else{
player.storage.sanbanfu=true;
}
},
group:['sanbanfu2','sanbanfu3']
},
sanbanfu2:{
trigger:{player:'shaAfter'},
forced:true,
popup:false,
filter:function(event,player){
return player.storage.sanbanfu;
},
content:function(){
player.damage(trigger.target);
}
},
sanbanfu3:{
trigger:{source:'damageBegin'},
forced:true,
popup:false,
filter:function(event,player){
return event.card&&event.card.name=='sha'&&player.storage.sanbanfu2;
},
content:function(){
trigger.num++;
}
},
bingsheng:{
enable:'phaseUse',
usable:1,
filterCard:function(card){
if(ui.selected.cards.length){
return get.suit(card)!=get.suit(ui.selected.cards[0]);
}
return true;
},
selectCard:2,
check:function(card){
return 8-ai.get.value(card);
},
filterTarget:function(card,player,target){
if(target.hp>player.hp) return true;
if(target.hp<player.hp&&target.hp<target.maxHp) return true;
return false;
},
content:function(){
var num=target.hp-player.hp;
if(num>0){
target.damage(num);
}
else if(num<0&&target.hp<target.maxHp){
target.recover(-num);
}
},
ai:{
order:8.5,
result:{
target:function(player,target){
var num;
if(player.hp>target.maxHp){
num=player.hp-target.maxHp;
}
else{
num=player.hp-target.hp;
}
if(target.hp==1&&num){
return num+1;
}
return num;
}
}
}
},
taolue:{
mod:{
maxHandcard:function(player,num){
return num+1;
}
},
},
shentan:{
enable:'phaseUse',
usable:1,
filterCard:true,
filterTarget:function(card,player,target){
return target.num('h')>0&&get.distance(player,target)<=2;
},
check:function(card){
return 7-ai.get.value(card);
},
content:function(){
"step 0"
var hs=target.get('h');
if(hs.length){
event.card=hs.randomGet();
player.gain(event.card);
target.$give(1,player);
}
else{
event.finish();
}
"step 1"
var source=target;
player.chooseTarget('选择一个目标送出'+get.translation(event.card),function(card,player,target){
return target!=player;
}).ai=function(target){
var att=ai.get.attitude(player,target);
if(att>3&&player.num('h')>target.num('h')){
return att;
}
return 0;
}
"step 2"
if(result.bool){
result.targets[0].gain(card);
player.$give(1,result.targets[0]);
game.delay();
}
},
ai:{
order:9,
result:{
target:-1,
player:function(player,target){
if(ai.get.attitude(player,target)>0){
return 0;
}
return 1;
}
},
},
},
hanqiang:{
mod:{
attackFrom:function(from,to,distance){
if(!from.get('e','1')) return distance-1
}
}
},
biaoqi:{
trigger:{player:'shaBegin'},
forced:true,
content:function(){
var range=get.attackRange(player);
if(range>trigger.target.hp){
trigger.directHit=true;
}
else if(range<trigger.target.hp){
player.draw();
}
}
},
luoyan:{
trigger:{player:'damageBegin'},
forced:true,
priority:-5,
filter:function(event){
return event.nature?true:false;
},
content:function(){
delete trigger.nature;
}
},
heqin:{
enable:'phaseUse',
filter:function(event,player){
return !player.storage.heqin;
},
filterTarget:function(card,player,target){
return target.sex=='male';
},
content:function(){
player.addSkill('heqin2');
target.addSkill('heqin2');
target.marks.heqin=target.markCharacter(player,{
name:'和亲',
content:'摸牌阶段摸牌数+1'
});
game.addVideo('markCharacter',target,{
name:'放权',
content:'摸牌阶段摸牌数+1',
id:'heqin',
target:player.dataset.position
});
player.storage.heqin=target;
target.storage.heqin=player;
player.marks.heqin=player.markCharacter(target,{
name:'和亲',
content:'摸牌阶段摸牌数+1'
});
game.addVideo('markCharacter',player,{
name:'放权',
content:'摸牌阶段摸牌数+1',
id:'heqin',
target:target.dataset.position
});
},
ai:{
order:1,
result:{
target:1
}
}
},
heqin2:{
trigger:{player:'phaseDrawBegin'},
forced:true,
content:function(){
trigger.num++;
},
group:'heqin3'
},
heqin3:{
trigger:{player:'dieBegin'},
forced:true,
popup:false,
content:function(){
player.removeSkill('heqin2');
player.unmarkSkill('heqin');
if(player.storage.heqin){
player.storage.heqin.removeSkill('heqin2');
player.storage.heqin.unmarkSkill('heqin');
}
}
},
chajue:{
inherit:'zhichi'
},
tiewan:{
trigger:{global:'useCardAfter'},
filter:function(event,player){
return (event.card.viewAs||event.card.name)=='lebu'&&event.player!=player;
},
direct:true,
content:function(){
'step 0'
player.chooseCardTarget({
prompt:'是否发动【铁腕】?',
filterCard:{color:'red'},
position:'he',
filterTarget:function(card,player,target){
return player.canUse({name:'lebu'},target);
},
ai1:function(card){
return 7-ai.get.value(card);
},
ai2:function(target){
return ai.get.effect(target,{name:'lebu'},player,player);
}
});
'step 1'
if(result.bool){
player.logSkill('tiewan');
player.useCard({name:'lebu'},result.cards,result.targets);
}
}
},
qianglue:{
trigger:{player:'shaMiss'},
priority:-1,
filter:function(event){
return event.target.num('he')>0;
},
check:function(event,player){
return ai.get.attitude(player,event.target)<0;
},
content:function(){
'step 0'
player.judge(function(card){
return get.color(card)=='black'?1:-1;
});
'step 1'
if(result.bool){
player.gainPlayerCard('he',trigger.target);
}
}
},
xiadao:{ xiadao:{
enable:['chooseToRespond'], enable:['chooseToRespond'],
filterCard:true, filterCard:true,
@ -1470,7 +2050,68 @@ character.yxs={
yxs_lishimin:'李世民', yxs_lishimin:'李世民',
yxs_huamulan:'花木兰', yxs_huamulan:'花木兰',
yxs_luobinhan:'罗宾汉', yxs_luobinhan:'罗宾汉',
yxs_chengjisihan:'成吉思汗',
yxs_mingchenghuanghou:'明成皇后',
yxs_wangzhaojun:'王昭君',
yxs_luocheng:'罗成',
yxs_direnjie:'狄人杰',
yxs_sunwu:'孙武',
yxs_chengyaojin:'程咬金',
yxs_yuji:'虞姬',
yxs_xiangyu:'项羽',
yxs_yingzheng:'嬴政',
yxs_yuefei:'岳飞',
yxs_fuermosi:'福尔摩斯',
yxs_guiguzi:'鬼谷子',
yxs_xiaoqiao:'小乔',
yxs_luzhishen:'鲁智深',
kuangchan:'狂禅',
kuangchan_info:'锁定技,你做主公时,不增加体力上限',
dili:'底力',
dili_info:'锁定技摸牌阶段你额外摸X张牌X为你已损失的体力值',
chujia:'初嫁',
chujia_info:'出牌阶段限一次你可以弃置两张相同颜色的手牌指定任意一名角色摸X张牌。(X为该角色已损失的体力值) ',
zhijie:'知节',
zhijie_info:'出牌阶段限一次,你的红桃手牌可以当做无中生有使用',
baihe:'捭阖',
baihe_info:'出牌阶段限一次你可以弃置一张牌选择以下1项执行(1)横置1名未横置角色该角色摸一张牌(2)重置一名已横置角色,该角色弃置一张手牌',
yinyang:'阴阳',
yinyang_info:'出牌阶段限一次你可以弃置两张手牌并选择3名角色分别横置或重置这些角色',
xiushen:'修身',
xiushen_info:'锁定技,回合结束阶段,若场上有横置角色,你摸两张牌',
yanyi:'演绎',
yanyi_info:'出牌阶段限一次你可以弃置一张黑色牌指定1名角色和1种花色若被指定角色的手牌中含有此花色则受到1点伤害',
jiean:'结案',
jiean_info:'每当【演绎】造成伤害时你可以摸X张牌并以任意数量分配给任意角色X为被【演绎】造成伤害角色的已损失体力值。',
wumu:'武穆',
wumu_info:'锁定技,你的黑杀无视距离,红色不计入回合内的出杀限制',
sheshen:'舍身',
sheshen_info:'每当你受到一点伤害可以观看牌堆顶的两张牌并将其交给任意1~名角色',
sanbanfu:'三板斧',
sanbanfu_info:'当你对其他角色使用杀时你可以使此杀有如下效果若对方没有出闪其受到2点伤害若对方打出了一张闪你与其各受到1点伤害若对方打出了两张闪你受到一点伤害',
bingsheng:'兵圣',
bingsheng_info:'出牌阶段限一次,你可以弃置两张花色不同的手牌,指定一名其他角色使其体力值与你相同',
taolue:'韬略',
taolue_info:'锁定技,你的手牌上限+1',
shentan:'神探',
shentan_info:'出牌阶段限一次你可以弃置一张牌获得距离2以内的一名角色的手牌并可以将其交给任意一名角色',
hanqiang:'寒枪',
hanqiang_info:'锁定技,当你没装备武器时,攻击范围+1',
biaoqi:'骠骑',
biaoqi_info:'锁定技,当你出杀指定目标后,若你的攻击范围大于目标体力值,则此杀不可闪避;若你的攻击范围小于目标体力值,你摸一张牌',
luoyan:'落雁',
luoyan_info:'锁定技,你即将受到的属性伤害均改为无属性',
heqin:'和亲',
heqin2:'和亲',
heqin3:'和亲',
heqin_info:'限定技,你可以与场上一名男性角色形成【和亲】状态,你与该男性角色于摸牌阶段摸牌数+1。你或者男性角色阵亡【和亲】状态消失',
chajue:'察觉',
chajue_info:'锁定技,你的回合外,你每受到一次伤害,任何【杀】或非延时类锦囊均对你无效,直到该回合结束。',
tiewan:'铁腕',
tiewan_info:'每当其他角色使用乐不思蜀时,你可以立即将一张红色牌当作乐不思蜀使用',
qianglue:'强掠',
qianglue_info:'每当你的杀被闪避时,你可以进行一次判定,若结果为黑色,你可以获得对方的一张牌',
xiadao:'侠盗', xiadao:'侠盗',
xiadao_info:'当你的装备区内没有牌时,你可以将一张手牌当作闪使用或打出', xiadao_info:'当你的装备区内没有牌时,你可以将一张手牌当作闪使用或打出',
lzhangyi:'仗义', lzhangyi:'仗义',
@ -1517,7 +2158,7 @@ character.yxs={
nvquan:'女权', nvquan:'女权',
nvquan1:'女权', nvquan1:'女权',
nvquan2:'女权', nvquan2:'女权',
nvquan_info:'你对男性角色使用【杀】或【决斗】时,对方需连续打出两张【杀】当做一张【杀】;你不能成为男性角色的决斗目标', nvquan_info:'你对男性角色使用【杀】或【决斗】时,对方需连续打出两张【闪】或【杀】响应;你不能成为男性角色的决斗目标',
qiandu:'迁都', qiandu:'迁都',
qiandu_info:'出牌阶段,你可以弃一张黑色手牌,和一名存活的玩家与其交换位置。每回合限一次。', qiandu_info:'出牌阶段,你可以弃一张黑色手牌,和一名存活的玩家与其交换位置。每回合限一次。',
budao:'补刀', budao:'补刀',
@ -1536,8 +2177,6 @@ character.yxs={
sheshi_info:'每受到1次伤害可以指定1种花色依次展示牌堆顶的牌直到出现指定花色的牌为止你获得与指定花色不同花色的所有牌最多展示4张牌。', sheshi_info:'每受到1次伤害可以指定1种花色依次展示牌堆顶的牌直到出现指定花色的牌为止你获得与指定花色不同花色的所有牌最多展示4张牌。',
sanbanfu:'三板斧',
sanbanfu_info:'出牌阶段你使用对目标角色使用【杀】时若目标角色不出闪则目标受到2点伤害你弃掉1张手牌若目标角色出1张闪则目标角色受到1点伤害你自减1点血量若目标角色出2张闪则目标角色不掉血你自减1点血量。每回合限一次。',
fengyi:'凤仪', fengyi:'凤仪',
fengyi_info:'出牌阶段,你可以弃一张手牌,指定任意目标摸两张牌。(每回合限用一次)', fengyi_info:'出牌阶段,你可以弃一张手牌,指定任意目标摸两张牌。(每回合限用一次)',
wange:'婉歌', wange:'婉歌',
@ -1547,8 +2186,6 @@ character.yxs={
nichang_info:'摸牌时,你可以选择不摸牌,回合结束时展示手牌,每少一种花色摸一张牌', nichang_info:'摸牌时,你可以选择不摸牌,回合结束时展示手牌,每少一种花色摸一张牌',
fengyan:'丰艳', fengyan:'丰艳',
fengyan_info:'你可以获得其他男性角色的红色判定牌', fengyan_info:'你可以获得其他男性角色的红色判定牌',
chujia:'出嫁',
chujia_info:'出牌阶段可以弃掉两张相同颜色的手牌指定任意角色摸X张牌。X为该角色已损失的血量',
zhulu:'逐鹿', zhulu:'逐鹿',
zhulu_info:'回合外,当有非延时锦囊结算完毕后,你可以立即弃掉一张相同花色手牌或装备区的牌,获得这张锦囊牌。', zhulu_info:'回合外,当有非延时锦囊结算完毕后,你可以立即弃掉一张相同花色手牌或装备区的牌,获得这张锦囊牌。',
jieyong:'节用', jieyong:'节用',

View File

@ -16,8 +16,11 @@
dieClose:[] dieClose:[]
}; };
var lib={ var lib={
version:1.72, version:1.73,
changeLog:[], changeLog:[
'bug修复',
'新武将'
],
configprefix:'noname_0.9_', configprefix:'noname_0.9_',
updates:[], updates:[],
canvasUpdates:[], canvasUpdates:[],
@ -3905,6 +3908,9 @@
player.logSkill(event.skill); player.logSkill(event.skill);
player.popup(event.card.name); player.popup(event.card.name);
} }
if(event.audio===false){
cardaudio=false;
}
if(cardaudio&&lib.config.background_audio){ if(cardaudio&&lib.config.background_audio){
var sex=player.sex=='female'?'female':'male'; var sex=player.sex=='female'?'female':'male';
if(lib.card[card.name].audio||lib.config.background_ogg){ if(lib.card[card.name].audio||lib.config.background_ogg){
@ -4078,7 +4084,7 @@
"step 0" "step 0"
var info=get.info(event.skill); var info=get.info(event.skill);
event._skill=event.skill; event._skill=event.skill;
if(lib.config.background_speak&& if(!info.direct&&lib.config.background_speak&&
(!lib.skill.global.contains(event.skill)||lib.skill[event.skill].forceaudio)){ (!lib.skill.global.contains(event.skill)||lib.skill[event.skill].forceaudio)){
var audioname=event.skill; var audioname=event.skill;
var audioinfo=info.audio; var audioinfo=info.audio;
@ -4103,6 +4109,9 @@
} }
if(info.discard!=false&&info.lose!=false&&!info.viewAs){ if(info.discard!=false&&info.lose!=false&&!info.viewAs){
player.discard(cards).delay=false; player.discard(cards).delay=false;
if(info.prepare){
info.prepare(cards,player,targets);
}
} }
else{ else{
if(info.lose!=false){ if(info.lose!=false){
@ -10343,8 +10352,8 @@
if(temp<0) temp+=num; if(temp<0) temp+=num;
players[i].dataset.position=temp; players[i].dataset.position=temp;
} }
game.me.node.handcards1.delete(); game.me.node.handcards1.remove();
game.me.node.handcards2.delete(); game.me.node.handcards2.remove();
game.me=player; game.me=player;
ui.handcards1=player.node.handcards1.animate('start').fix(); ui.handcards1=player.node.handcards1.animate('start').fix();
ui.handcards2=player.node.handcards2.animate('start').fix(); ui.handcards2=player.node.handcards2.animate('start').fix();
@ -11749,8 +11758,8 @@
if(temp<0) temp+=num; if(temp<0) temp+=num;
players[i].dataset.position=temp; players[i].dataset.position=temp;
} }
game.me.node.handcards1.delete(); game.me.node.handcards1.remove();
game.me.node.handcards2.delete(); game.me.node.handcards2.remove();
game.me=player; game.me=player;
ui.handcards1=player.node.handcards1.animate('start').fix(); ui.handcards1=player.node.handcards1.animate('start').fix();
ui.handcards2=player.node.handcards2.animate('start').fix(); ui.handcards2=player.node.handcards2.animate('start').fix();
@ -11872,6 +11881,9 @@
game.pause(); game.pause();
"step 3" "step 3"
if(event.bool){ if(event.bool){
if(game.changeCoin){
game.changeCoin(-10);
}
game.me.lose(game.me.get('h'))._triggered=null; game.me.lose(game.me.get('h'))._triggered=null;
} }
else{ else{
@ -15261,6 +15273,9 @@
var currentrow3=null; var currentrow3=null;
var clickrow3=function(){ var clickrow3=function(){
if(game.changeCoin){
game.changeCoin(-20);
}
game.swapPlayer(this.link); game.swapPlayer(this.link);
}; };
menuUpdates.push(function(){ menuUpdates.push(function(){
@ -17520,6 +17535,7 @@
} }
} }
if(this.parentNode.classList.contains('hidden')) return; if(this.parentNode.classList.contains('hidden')) return;
if(this.parentNode.classList.contains('removing')) return;
if(ui.intro){ if(ui.intro){
ui.intro.close(); ui.intro.close();
delete ui.intro; delete ui.intro;

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -458,6 +458,9 @@ mode.boss={
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return; return;
} }
if(game.changeCoin){
game.changeCoin(-10);
}
list.randomSort(); list.randomSort();
_status.event.dialog.close(); _status.event.dialog.close();
_status.event.dialog=ui.create.dialog('选择参战角色','hidden'); _status.event.dialog=ui.create.dialog('选择参战角色','hidden');
@ -481,6 +484,9 @@ mode.boss={
_status.createControl=event.asboss; _status.createControl=event.asboss;
ui.cheat2=ui.create.control('自由选将',function(){ ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){ if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close(); this.dialog.close();
_status.event.dialog=this.backup; _status.event.dialog=this.backup;
ui.window.appendChild(this.backup); ui.window.appendChild(this.backup);
@ -496,6 +502,9 @@ mode.boss={
} }
} }
else{ else{
if(game.changeCoin){
game.changeCoin(-50);
}
ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx);
this.backup=_status.event.dialog; this.backup=_status.event.dialog;
_status.event.dialog.close(); _status.event.dialog.close();

View File

@ -3601,6 +3601,9 @@ mode.chess={
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return; return;
} }
if(game.changeCoin){
game.changeCoin(-10);
}
list.randomSort(); list.randomSort();
_status.event.dialog.close(); _status.event.dialog.close();
var dialog=ui.create.dialog('选择出场角色','hidden'); var dialog=ui.create.dialog('选择出场角色','hidden');
@ -3630,6 +3633,9 @@ mode.chess={
ui.create.cheat2=function(){ ui.create.cheat2=function(){
ui.cheat2=ui.create.control('自由选将',function(){ ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){ if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close(); this.dialog.close();
_status.event.dialog=this.backup; _status.event.dialog=this.backup;
this.backup.open(); this.backup.open();
@ -3645,6 +3651,9 @@ mode.chess={
} }
} }
else{ else{
if(game.changeCoin){
game.changeCoin(-50);
}
ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx);
this.backup=_status.event.dialog; this.backup=_status.event.dialog;
_status.event.dialog.close(); _status.event.dialog.close();

View File

@ -321,6 +321,9 @@ mode.guozhan={
ui.create.cheat2=function(){ ui.create.cheat2=function(){
ui.cheat2=ui.create.control('自由选将',function(){ ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){ if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close(); this.dialog.close();
_status.event.dialog=this.backup; _status.event.dialog=this.backup;
this.backup.open(); this.backup.open();
@ -336,6 +339,9 @@ mode.guozhan={
} }
} }
else{ else{
if(game.changeCoin){
game.changeCoin(-50);
}
ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx);
this.backup=_status.event.dialog; this.backup=_status.event.dialog;
_status.event.dialog.close(); _status.event.dialog.close();
@ -356,6 +362,9 @@ mode.guozhan={
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return; return;
} }
if(game.changeCoin){
game.changeCoin(-10);
}
event.list=event.list.concat(list); event.list=event.list.concat(list);
event.list.randomSort(); event.list.randomSort();
list=event.list.splice(0,parseInt(get.config('choice_num'))); list=event.list.splice(0,parseInt(get.config('choice_num')));

View File

@ -618,6 +618,9 @@ mode.identity={
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return; return;
} }
if(game.changeCoin){
game.changeCoin(-10);
}
if(game.zhu!=game.me){ if(game.zhu!=game.me){
event.list=event.list.concat(list); event.list=event.list.concat(list);
event.list.randomSort(); event.list.randomSort();
@ -641,6 +644,9 @@ mode.identity={
ui.create.cheat2=function(){ ui.create.cheat2=function(){
ui.cheat2=ui.create.control('自由选将',function(){ ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){ if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close(); this.dialog.close();
_status.event.dialog=this.backup; _status.event.dialog=this.backup;
this.backup.open(); this.backup.open();
@ -656,6 +662,9 @@ mode.identity={
} }
} }
else{ else{
if(game.changeCoin){
game.changeCoin(-50);
}
ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx);
this.backup=_status.event.dialog; this.backup=_status.event.dialog;
_status.event.dialog.close(); _status.event.dialog.close();

View File

@ -902,6 +902,9 @@ mode.stone={
if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){ if(ui.cheat2&&ui.cheat2.dialog==_status.event.dialog){
return; return;
} }
if(game.changeCoin){
game.changeCoin(-10);
}
list.randomSort(); list.randomSort();
_status.event.dialog.close(); _status.event.dialog.close();
_status.event.dialog=ui.create.dialog('按顺序选择出场角色'+(get.config('double_character')?'(双将)':'')); _status.event.dialog=ui.create.dialog('按顺序选择出场角色'+(get.config('double_character')?'(双将)':''));
@ -919,6 +922,9 @@ mode.stone={
ui.create.cheat2=function(){ ui.create.cheat2=function(){
ui.cheat2=ui.create.control('自由选将',function(){ ui.cheat2=ui.create.control('自由选将',function(){
if(this.dialog==_status.event.dialog){ if(this.dialog==_status.event.dialog){
if(game.changeCoin){
game.changeCoin(50);
}
this.dialog.close(); this.dialog.close();
_status.event.dialog=this.backup; _status.event.dialog=this.backup;
this.backup.open(); this.backup.open();
@ -934,6 +940,9 @@ mode.stone={
} }
} }
else{ else{
if(game.changeCoin){
game.changeCoin(-50);
}
ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx); ui.cheat2x=ui.create.groupControl(_status.event.parent.dialogxx);
this.backup=_status.event.dialog; this.backup=_status.event.dialog;
_status.event.dialog.close(); _status.event.dialog.close();

View File

@ -16,6 +16,16 @@ play.coin={
str='<span style="position:absolute">㉤</span><span style="margin-left:18px;font-family:xinwei;line-height:10px">'+lib.config.coin+'</span>'; str='<span style="position:absolute">㉤</span><span style="margin-left:18px;font-family:xinwei;line-height:10px">'+lib.config.coin+'</span>';
} }
ui.coin=ui.create.system(str,null,true); ui.coin=ui.create.system(str,null,true);
// lib.setPopped(ui.coin,function(){
// var uiintro=ui.create.dialog('hidden');
// uiintro.add('商店');
// uiintro.listen(function(e){
// e.stopPropagation();
// });
// uiintro.add('<div class="text center">本局比赛能否获得胜利?</div>');
// uiintro.classList.add('noleave');
// return uiintro;
// },220,400);
} }
}, },
game:{ game:{
@ -37,7 +47,8 @@ play.coin={
'富甲天下':'<ul><li>每完成一次对局,可获得一定数量的金币'+ '富甲天下':'<ul><li>每完成一次对局,可获得一定数量的金币'+
'<li>战斗胜利可额外获得20金币每杀死一个敌人可获得10金币托管无效'+ '<li>战斗胜利可额外获得20金币每杀死一个敌人可获得10金币托管无效'+
'<li>使用的武将越强,获得的金币数越少'+ '<li>使用的武将越强,获得的金币数越少'+
'<li>每进行一次作弊扣除20金币'+ '<li>执行以下操作时,将扣除金币:<ul><li>作弊20金币<li>换将卡10金币<li>'+
'自由选将50金币<li>手气卡10金币<li>换人20金币</ul>'+
'<li>金币暂时还没什么用〜' '<li>金币暂时还没什么用〜'
} }
} }