This commit is contained in:
libccy 2017-02-25 10:29:16 +08:00
parent 40ed567a9d
commit 34782b5dd7
7 changed files with 838 additions and 695 deletions

View File

@ -19,7 +19,7 @@ character.ow={
ow_tuobiang:['male','shu',3,['paotai','maoding']], ow_tuobiang:['male','shu',3,['paotai','maoding']],
// ow_baolei:['male','qun',4,[]], // ow_baolei:['male','qun',4,[]],
ow_banzang:['male','qun',4,['fengshi','yinbo']], ow_banzang:['male','qun',4,['bfengshi','yinbo']],
ow_laiyinhate:['male','qun',4,['zhongdun','mengji']], ow_laiyinhate:['male','qun',4,['zhongdun','mengji']],
ow_luba:['male','shu',4,['liangou','xiyang']], ow_luba:['male','shu',4,['liangou','xiyang']],
// ow_wensidun:['male','shu',4,[]], // ow_wensidun:['male','shu',4,[]],
@ -424,7 +424,7 @@ character.ow={
} }
} }
}, },
fengshi:{ bfengshi:{
trigger:{player:'shaBegin'}, trigger:{player:'shaBegin'},
forced:true, forced:true,
alter:true, alter:true,
@ -433,7 +433,7 @@ character.ow={
}, },
filter:function(event,player){ filter:function(event,player){
var num=0.2; var num=0.2;
if(get.is.altered('fengshi')) num=0.15; if(get.is.altered('bfengshi')) num=0.15;
return Math.random()<num*get.cardCount(true,player); return Math.random()<num*get.cardCount(true,player);
}, },
content:function(){ content:function(){
@ -444,9 +444,9 @@ character.ow={
return distance-get.cardCount(true,from); return distance-get.cardCount(true,from);
} }
}, },
group:'fengshi2' group:'bfengshi2'
}, },
fengshi2:{ bfengshi2:{
trigger:{source:'damageBegin'}, trigger:{source:'damageBegin'},
forced:true, forced:true,
check:function(event,player){ check:function(event,player){
@ -454,7 +454,7 @@ character.ow={
}, },
filter:function(event,player){ filter:function(event,player){
var num=0.2; var num=0.2;
if(get.is.altered('fengshi')) num=0.15; if(get.is.altered('bfengshi')) num=0.15;
return event.card&&event.card.name=='sha'&&Math.random()<num*get.cardCount(true,player); return event.card&&event.card.name=='sha'&&Math.random()<num*get.cardCount(true,player);
}, },
content:function(){ content:function(){
@ -2963,10 +2963,10 @@ character.ow={
maoding2:'铆钉', maoding2:'铆钉',
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲', maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
maoding_info_alter:'每当你造成一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲', maoding_info_alter:'每当你造成一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
fengshi:'风矢', bfengshi:'风矢',
fengshi2:'风矢', bfengshi2:'风矢',
fengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1你的杀增加20%的概率强制命中你的杀造成伤害后增加20%的概率令伤害+1', bfengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1你的杀增加20%的概率强制命中你的杀造成伤害后增加20%的概率令伤害+1',
fengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1你的杀增加15%的概率强制命中你的杀造成伤害后增加15%的概率令伤害+1', bfengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1你的杀增加15%的概率强制命中你的杀造成伤害后增加15%的概率令伤害+1',
yinbo:'音波', yinbo:'音波',
yinbo_info:'出牌阶段限一次,你可以弃置一张黑桃牌,然后随机弃置三名敌人各一张牌', yinbo_info:'出牌阶段限一次,你可以弃置一张黑桃牌,然后随机弃置三名敌人各一张牌',
liudan:'榴弹', liudan:'榴弹',

View File

@ -2227,71 +2227,6 @@ character.shenhua={
} }
} }
}, },
yinghun_old:{
audio:2,
audioname:['sunce'],
trigger:{player:'phaseBegin'},
filter:function(event,player){
return player.hp<player.maxHp;
},
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt('yinghun'),function(card,player,target){
return player!=target;
}).set('ai',function(target){
var player=_status.event.player;
if(player.maxHp-player.hp==1&&target.num('he')==0){
return 0;
}
if(ai.get.attitude(_status.event.player,target)>0){
return 10+ai.get.attitude(_status.event.player,target);
}
if(player.maxHp-player.hp==1){
return -1;
}
return 1;
});
"step 1"
if(result.bool){
player.logSkill('yinghun',result.targets);
event.target=result.targets[0];
player.chooseControl('yinghun_true','yinghun_false',function(event,player){
if(ai.get.attitude(player,event.target)>0) return 'yinghun_true';
return 'yinghun_false';
})
}
else{
event.finish();
}
"step 2"
if(result.control=='yinghun_true'){
event.target.draw(player.maxHp-player.hp);
event.target.chooseToDiscard(true,'he');
}
else{
event.target.draw();
event.target.chooseToDiscard(player.maxHp-player.hp,true,'he');
}
},
ai:{
threaten:function(player,target){
if(target.hp==1) return 2;
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];
}
}
}
},
yinghun:{ yinghun:{
audio:2, audio:2,
audioname:['sunce'], audioname:['sunce'],
@ -2353,6 +2288,81 @@ character.shenhua={
ai:{ ai:{
threaten:function(player,target){ threaten:function(player,target){
if(target.hp==1||target.num('e')>=target.hp) return 2; if(target.hp==1||target.num('e')>=target.hp) return 2;
if(target.hp==target.maxHp) return 0.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];
}
}
}
},
gzyinghun:{
audio:'yinghun',
audioname:['sunce'],
trigger:{player:'phaseBegin'},
filter:function(event,player){
return player.hp<player.maxHp;
},
direct:true,
content:function(){
"step 0"
player.chooseTarget(get.prompt('yinghun'),function(card,player,target){
return player!=target;
}).set('ai',function(target){
var player=_status.event.player;
if(player.maxHp-player.hp==1&&target.num('he')==0){
return 0;
}
if(ai.get.attitude(_status.event.player,target)>0){
return 10+ai.get.attitude(_status.event.player,target);
}
if(player.maxHp-player.hp==1){
return -1;
}
return 1;
});
"step 1"
if(result.bool){
event.num=player.maxHp-player.hp;
player.logSkill(event.name,result.targets);
event.target=result.targets[0];
if(event.num==1){
event.directcontrol=true;
}
else{
var str1='摸'+get.cnNumber(event.num,true)+'弃一';
var str2='摸一弃'+get.cnNumber(event.num,true);
player.chooseControl(str1,str2,function(event,player){
return _status.event.choice;
}).set('choice',ai.get.attitude(player,event.target)>0?str1:str2);
event.str=str1;
}
}
else{
event.finish();
}
"step 2"
if(event.directcontrol||result.control==event.str){
event.target.draw(event.num);
event.target.chooseToDiscard(true,'he');
}
else{
event.target.draw();
event.target.chooseToDiscard(event.num,true,'he');
}
},
ai:{
threaten:function(player,target){
if(target.hp==target.maxHp) return 0.5;
if(target.hp==1) return 2;
if(target.hp==2) return 1.5; if(target.hp==2) return 1.5;
return 0.5; return 0.5;
}, },
@ -3536,7 +3546,7 @@ character.shenhua={
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('tianxiang',result.targets); player.logSkill(event.name,result.targets);
trigger.untrigger(); trigger.untrigger();
trigger.player=result.targets[0]; trigger.player=result.targets[0];
trigger.player.addSkill('tianxiang2'); trigger.player.addSkill('tianxiang2');
@ -3628,7 +3638,7 @@ character.shenhua={
}); });
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.logSkill('xintianxiang',result.targets); player.logSkill(event.name,result.targets);
trigger.untrigger(); trigger.untrigger();
trigger.player=result.targets[0]; trigger.player=result.targets[0];
trigger.player.addSkill('xintianxiang2'); trigger.player.addSkill('xintianxiang2');
@ -4149,6 +4159,8 @@ character.shenhua={
xinshensu_info:'你可以选择一至三项1. 跳过判定阶段和摸牌阶段2. 跳过出牌阶段并弃置一张装备牌3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张【杀】', xinshensu_info:'你可以选择一至三项1. 跳过判定阶段和摸牌阶段2. 跳过出牌阶段并弃置一张装备牌3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张【杀】',
yinghun:'英魂', yinghun:'英魂',
yinghun_info:'准备阶段开始时若你已受伤你可令一名其他角色执行一项摸X张牌然后弃置一张牌或摸一张牌然后弃置X张牌X为你已损失的体力值若你装备区里牌的数量不小于你的体力值则X改为你的体力上限', yinghun_info:'准备阶段开始时若你已受伤你可令一名其他角色执行一项摸X张牌然后弃置一张牌或摸一张牌然后弃置X张牌X为你已损失的体力值若你装备区里牌的数量不小于你的体力值则X改为你的体力上限',
gzyinghun:'英魂',
gzyinghun_info:'准备阶段开始时若你已受伤你可令一名其他角色执行一项摸X张牌然后弃置一张牌或摸一张牌然后弃置X张牌X为你已损失的体力值',
tiaoxin:'挑衅', tiaoxin:'挑衅',
zhiji:'志继', zhiji:'志继',
@ -4235,8 +4247,6 @@ character.shenhua={
duanliang1:'断粮', duanliang1:'断粮',
haoshi:'好施', haoshi:'好施',
dimeng:'缔盟', dimeng:'缔盟',
yinghun_true:'摸X弃1',
yinghun_false:'摸1弃X',
jiuchi:'酒池', jiuchi:'酒池',
roulin:'肉林', roulin:'肉林',
benghuai:'崩坏', benghuai:'崩坏',

View File

@ -1292,7 +1292,7 @@ character.standard={
"step 1" "step 1"
if(result.bool){ if(result.bool){
player.discard(result.cards); player.discard(result.cards);
player.logSkill('liuli',result.targets); player.logSkill(event.name,result.targets);
trigger.target=result.targets[0]; trigger.target=result.targets[0];
trigger.targets.remove(player); trigger.targets.remove(player);
trigger.targets.push(result.targets[0]); trigger.targets.push(result.targets[0]);

View File

@ -13,7 +13,7 @@ character.xianjian={
pal_xuejian:['female','shu',3,['xshuangren','shenmu','duci']], pal_xuejian:['female','shu',3,['xshuangren','shenmu','duci']],
pal_longkui:['female','qun',3,['fenxing','diewu','lingyu']], pal_longkui:['female','qun',3,['fenxing','diewu','lingyu']],
pal_zixuan:['female','wei',3,['shuiyun','wangyou','changnian']], pal_zixuan:['female','wei',3,['shuiyun','wangyou','changnian']],
pal_changqing:['male','wei',4,['luanjian','tianfu']], pal_changqing:['male','wei',4,['luanjian','ctianfu']],
pal_nangonghuang:['male','wei',3,['zhaoyao','sheling','zhangmu']], pal_nangonghuang:['male','wei',3,['zhaoyao','sheling','zhangmu']],
pal_wenhui:['female','shu',4,['huxi','longxiang']], pal_wenhui:['female','shu',4,['huxi','longxiang']],
@ -1271,7 +1271,7 @@ character.xianjian={
if(Math.random()<0.5) trigger.num++; if(Math.random()<0.5) trigger.num++;
} }
}, },
tianfu:{ ctianfu:{
enable:'phaseUse', enable:'phaseUse',
filter:function(event,player){ filter:function(event,player){
return player.num('h','shan')>0; return player.num('h','shan')>0;
@ -1281,17 +1281,17 @@ character.xianjian={
discard:false, discard:false,
prepare:'give', prepare:'give',
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&!target.hasSkill('tianfu2'); return target!=player&&!target.hasSkill('ctianfu2');
}, },
check:function(card){ check:function(card){
if(_status.event.player.hp>=3) return 8-ai.get.value(card); if(_status.event.player.hp>=3) return 8-ai.get.value(card);
return 7-ai.get.value(card); return 7-ai.get.value(card);
}, },
content:function(){ content:function(){
target.storage.tianfu2=cards[0]; target.storage.ctianfu2=cards[0];
target.storage.tianfu3=player; target.storage.ctianfu3=player;
game.addVideo('storage',target,['tianfu2',get.cardInfo(cards[0]),'card']); game.addVideo('storage',target,['ctianfu2',get.cardInfo(cards[0]),'card']);
target.addSkill('tianfu2'); target.addSkill('ctianfu2');
}, },
ai:{ ai:{
order:2, order:2,
@ -1305,18 +1305,18 @@ character.xianjian={
expose:0.2 expose:0.2
} }
}, },
tianfu2:{ ctianfu2:{
trigger:{source:'damageAfter'}, trigger:{source:'damageAfter'},
forced:true, forced:true,
mark:'card', mark:'card',
filter:function(event,player){ filter:function(event,player){
return player.storage.tianfu2&&player.storage.tianfu3; return player.storage.ctianfu2&&player.storage.ctianfu3;
}, },
content:function(){ content:function(){
"step 0" "step 0"
if(player.storage.tianfu3&&player.storage.tianfu3.isAlive()){ if(player.storage.ctianfu3&&player.storage.ctianfu3.isAlive()){
player.damage(player.storage.tianfu3); player.damage(player.storage.ctianfu3);
player.storage.tianfu3.line(player,'thunder'); player.storage.ctianfu3.line(player,'thunder');
} }
else{ else{
player.damage('nosource'); player.damage('nosource');
@ -1327,26 +1327,26 @@ character.xianjian={
player.discard(he.randomGet()); player.discard(he.randomGet());
} }
"step 2" "step 2"
player.$throw(player.storage.tianfu2); player.$throw(player.storage.ctianfu2);
ui.discardPile.appendChild(player.storage.tianfu2); ui.discardPile.appendChild(player.storage.ctianfu2);
delete player.storage.tianfu2; delete player.storage.ctianfu2;
delete player.storage.tianfu3; delete player.storage.ctianfu3;
player.removeSkill('tianfu2'); player.removeSkill('ctianfu2');
}, },
group:'tianfu3', group:'ctianfu3',
intro:{ intro:{
content:'card' content:'card'
} }
}, },
tianfu3:{ ctianfu3:{
trigger:{player:'dieBegin'}, trigger:{player:'dieBegin'},
forced:true, forced:true,
popup:false, popup:false,
content:function(){ content:function(){
ui.discardPile.appendChild(player.storage.tianfu2); ui.discardPile.appendChild(player.storage.ctianfu2);
delete player.storage.tianfu2; delete player.storage.ctianfu2;
delete player.storage.tianfu3; delete player.storage.ctianfu3;
player.removeSkill('tianfu2'); player.removeSkill('ctianfu2');
} }
}, },
shuiyun:{ shuiyun:{
@ -2541,10 +2541,10 @@ character.xianjian={
xfenxin_info_alter:'锁定技,每当你的体力值发生改变,你摸一张牌', xfenxin_info_alter:'锁定技,每当你的体力值发生改变,你摸一张牌',
luanjian:'乱剑', luanjian:'乱剑',
luanjian_info:'出牌阶段你可以将两张杀当杀使用此杀无视距离可以指定任意名目标且有50%的机率伤害+1', luanjian_info:'出牌阶段你可以将两张杀当杀使用此杀无视距离可以指定任意名目标且有50%的机率伤害+1',
tianfu:'天符', ctianfu:'天符',
tianfu2:'天符', ctianfu2:'天符',
tianfu3:'天符', ctianfu3:'天符',
tianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的一点雷属性伤害并随机弃置一张牌,然后移去此牌', ctianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的一点雷属性伤害并随机弃置一张牌,然后移去此牌',
shuiyun:'水蕴', shuiyun:'水蕴',
shuiyun_bg:'蕴', shuiyun_bg:'蕴',
shuiyun2:'水蕴', shuiyun2:'水蕴',

View File

@ -7766,6 +7766,7 @@ character.yijiang={
yaowu:'耀武', yaowu:'耀武',
qianxi:'潜袭', qianxi:'潜袭',
qianxi2:'潜袭', qianxi2:'潜袭',
qianxi2_bg:'潜袭',
fuli:'伏枥', fuli:'伏枥',
jiefan:'解烦', jiefan:'解烦',
juece:'绝策', juece:'绝策',

View File

@ -10284,20 +10284,26 @@
reinit:function(from,to,maxHp){ reinit:function(from,to,maxHp){
var info1=lib.character[from]; var info1=lib.character[from];
var info2=lib.character[to]; var info2=lib.character[to];
if(this.name==from&&!this.classList.contains('unseen')){ if(this.name2==from){
this.name=to;
this.sex=info2[0];
this.node.avatar.setBackground(to,'character');
this.node.name.innerHTML=get.slimName(to);
}
else if(this.name2==from){
this.name2=to; this.name2=to;
if(this.classList.contains('unseen')){ if(this.classList.contains('unseen')&&!this.classList.contains('unseen2')){
this.sex=info2[0]; this.sex=info2[0];
this.name=to;
} }
this.node.avatar2.setBackground(to,'character'); this.node.avatar2.setBackground(to,'character');
this.node.name2.innerHTML=get.slimName(to); this.node.name2.innerHTML=get.slimName(to);
} }
else if(this.name==from||this.name1==from){
if(this.name1==from){
this.name1=to;
}
if(!this.classList.contains('unseen2')){
this.name=to;
this.sex=info2[0];
}
this.node.avatar.setBackground(to,'character');
this.node.name.innerHTML=get.slimName(to);
}
else{ else{
return this; return this;
} }
@ -22418,7 +22424,7 @@
players[i].$draw(num2); players[i].$draw(num2);
} }
}, },
finishSkill:function(i){ finishSkill:function(i,sub){
var j; var j;
var mode=get.mode(); var mode=get.mode();
var info=lib.skill[i]; var info=lib.skill[i];
@ -22476,7 +22482,7 @@
var skill=lib.skill[info.inherit]; var skill=lib.skill[info.inherit];
for(j in skill){ for(j in skill){
if(info[j]==undefined){ if(info[j]==undefined){
if(j=='audio'){ if(j=='audio'&&(typeof info[j]=='number'||typeof info[j]=='boolean')){
info[j]=info.inherit; info[j]=info.inherit;
} }
else{ else{
@ -22484,11 +22490,14 @@
} }
} }
} }
if(lib.translate[i]==undefined){
lib.translate[i]=lib.translate[info.inherit];
}
if(lib.translate[i+'_info']==undefined){ if(lib.translate[i+'_info']==undefined){
lib.translate[i+'_info']=lib.translate[info.inherit+'_info']; lib.translate[i+'_info']=lib.translate[info.inherit+'_info'];
} }
} }
if(info.subSkill){ if(info.subSkill&&!sub){
for(var j in info.subSkill){ for(var j in info.subSkill){
lib.skill[i+'_'+j]=info.subSkill[j]; lib.skill[i+'_'+j]=info.subSkill[j];
if(info.subSkill[j].name){ if(info.subSkill[j].name){
@ -22503,6 +22512,7 @@
if(info.subSkill[j].marktext){ if(info.subSkill[j].marktext){
lib.translate[i+'_'+j+'_bg']=info.subSkill[j].marktext; lib.translate[i+'_'+j+'_bg']=info.subSkill[j].marktext;
} }
game.finishSkill(i+'_'+j,true);
} }
} }
if(info.marktext){ if(info.marktext){
@ -22690,9 +22700,23 @@
else if(typeof arguments[i]=='object'){ else if(typeof arguments[i]=='object'){
str+=get.translation(arguments[i]); str+=get.translation(arguments[i]);
} }
else if(typeof arguments[i]=='string'&&arguments[i][0]=='【'&&arguments[i][arguments[i].length-1]=='】'){ else if(typeof arguments[i]=='string'){
if(lib.config.log_highlight){ if(lib.config.log_highlight){
str+='<span class="greentext">'+get.translation(arguments[i])+'</span>'; if(arguments[i][0]=='【'&&arguments[i][arguments[i].length-1]=='】'){
str+='<span class="greentext">'+get.translation(arguments[i])+'</span>';
}
else if(arguments[i][0]=='#'){
var color='';
switch(arguments[i][1]){
case 'b':color='blue';break;
case 'y':color='yellow';break;
case 'g':color='green';break;
}
str+='<span class="'+color+'text">'+arguments[i].slice(2)+'</span>';
}
else{
str+=get.translation(arguments[i]);
}
} }
else{ else{
str+=get.translation(arguments[i]); str+=get.translation(arguments[i]);

File diff suppressed because it is too large Load Diff