This commit is contained in:
parent
40ed567a9d
commit
34782b5dd7
|
@ -19,7 +19,7 @@ character.ow={
|
|||
|
||||
ow_tuobiang:['male','shu',3,['paotai','maoding']],
|
||||
// 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_luba:['male','shu',4,['liangou','xiyang']],
|
||||
// ow_wensidun:['male','shu',4,[]],
|
||||
|
@ -424,7 +424,7 @@ character.ow={
|
|||
}
|
||||
}
|
||||
},
|
||||
fengshi:{
|
||||
bfengshi:{
|
||||
trigger:{player:'shaBegin'},
|
||||
forced:true,
|
||||
alter:true,
|
||||
|
@ -433,7 +433,7 @@ character.ow={
|
|||
},
|
||||
filter:function(event,player){
|
||||
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);
|
||||
},
|
||||
content:function(){
|
||||
|
@ -444,9 +444,9 @@ character.ow={
|
|||
return distance-get.cardCount(true,from);
|
||||
}
|
||||
},
|
||||
group:'fengshi2'
|
||||
group:'bfengshi2'
|
||||
},
|
||||
fengshi2:{
|
||||
bfengshi2:{
|
||||
trigger:{source:'damageBegin'},
|
||||
forced:true,
|
||||
check:function(event,player){
|
||||
|
@ -454,7 +454,7 @@ character.ow={
|
|||
},
|
||||
filter:function(event,player){
|
||||
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);
|
||||
},
|
||||
content:function(){
|
||||
|
@ -2963,10 +2963,10 @@ character.ow={
|
|||
maoding2:'铆钉',
|
||||
maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
|
||||
maoding_info_alter:'每当你造成一次伤害,你可以获得一个零件;出牌阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲',
|
||||
fengshi:'风矢',
|
||||
fengshi2:'风矢',
|
||||
fengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的杀增加20%的概率强制命中;你的杀造成伤害后增加20%的概率令伤害+1',
|
||||
fengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的杀增加15%的概率强制命中;你的杀造成伤害后增加15%的概率令伤害+1',
|
||||
bfengshi:'风矢',
|
||||
bfengshi2:'风矢',
|
||||
bfengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的杀增加20%的概率强制命中;你的杀造成伤害后增加20%的概率令伤害+1',
|
||||
bfengshi_info_alter:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的杀增加15%的概率强制命中;你的杀造成伤害后增加15%的概率令伤害+1',
|
||||
yinbo:'音波',
|
||||
yinbo_info:'出牌阶段限一次,你可以弃置一张黑桃牌,然后随机弃置三名敌人各一张牌',
|
||||
liudan:'榴弹',
|
||||
|
|
|
@ -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:{
|
||||
audio:2,
|
||||
audioname:['sunce'],
|
||||
|
@ -2353,6 +2288,81 @@ character.shenhua={
|
|||
ai:{
|
||||
threaten:function(player,target){
|
||||
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;
|
||||
return 0.5;
|
||||
},
|
||||
|
@ -3536,7 +3546,7 @@ character.shenhua={
|
|||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('tianxiang',result.targets);
|
||||
player.logSkill(event.name,result.targets);
|
||||
trigger.untrigger();
|
||||
trigger.player=result.targets[0];
|
||||
trigger.player.addSkill('tianxiang2');
|
||||
|
@ -3628,7 +3638,7 @@ character.shenhua={
|
|||
});
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xintianxiang',result.targets);
|
||||
player.logSkill(event.name,result.targets);
|
||||
trigger.untrigger();
|
||||
trigger.player=result.targets[0];
|
||||
trigger.player.addSkill('xintianxiang2');
|
||||
|
@ -4149,6 +4159,8 @@ character.shenhua={
|
|||
xinshensu_info:'你可以选择一至三项:1. 跳过判定阶段和摸牌阶段;2. 跳过出牌阶段并弃置一张装备牌;3. 跳过弃牌阶段并将你的武将牌翻面。你每选择一项,视为你对一名其他角色使用一张【杀】',
|
||||
yinghun:'英魂',
|
||||
yinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值,若你装备区里牌的数量不小于你的体力值,则X改为你的体力上限)',
|
||||
gzyinghun:'英魂',
|
||||
gzyinghun_info:'准备阶段开始时,若你已受伤,你可令一名其他角色执行一项:摸X张牌,然后弃置一张牌;或摸一张牌,然后弃置X张牌(X为你已损失的体力值)',
|
||||
|
||||
tiaoxin:'挑衅',
|
||||
zhiji:'志继',
|
||||
|
@ -4235,8 +4247,6 @@ character.shenhua={
|
|||
duanliang1:'断粮',
|
||||
haoshi:'好施',
|
||||
dimeng:'缔盟',
|
||||
yinghun_true:'摸X弃1',
|
||||
yinghun_false:'摸1弃X',
|
||||
jiuchi:'酒池',
|
||||
roulin:'肉林',
|
||||
benghuai:'崩坏',
|
||||
|
|
|
@ -1292,7 +1292,7 @@ character.standard={
|
|||
"step 1"
|
||||
if(result.bool){
|
||||
player.discard(result.cards);
|
||||
player.logSkill('liuli',result.targets);
|
||||
player.logSkill(event.name,result.targets);
|
||||
trigger.target=result.targets[0];
|
||||
trigger.targets.remove(player);
|
||||
trigger.targets.push(result.targets[0]);
|
||||
|
|
|
@ -13,7 +13,7 @@ character.xianjian={
|
|||
pal_xuejian:['female','shu',3,['xshuangren','shenmu','duci']],
|
||||
pal_longkui:['female','qun',3,['fenxing','diewu','lingyu']],
|
||||
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_wenhui:['female','shu',4,['huxi','longxiang']],
|
||||
|
@ -1271,7 +1271,7 @@ character.xianjian={
|
|||
if(Math.random()<0.5) trigger.num++;
|
||||
}
|
||||
},
|
||||
tianfu:{
|
||||
ctianfu:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return player.num('h','shan')>0;
|
||||
|
@ -1281,17 +1281,17 @@ character.xianjian={
|
|||
discard:false,
|
||||
prepare:'give',
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&!target.hasSkill('tianfu2');
|
||||
return target!=player&&!target.hasSkill('ctianfu2');
|
||||
},
|
||||
check:function(card){
|
||||
if(_status.event.player.hp>=3) return 8-ai.get.value(card);
|
||||
return 7-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
target.storage.tianfu2=cards[0];
|
||||
target.storage.tianfu3=player;
|
||||
game.addVideo('storage',target,['tianfu2',get.cardInfo(cards[0]),'card']);
|
||||
target.addSkill('tianfu2');
|
||||
target.storage.ctianfu2=cards[0];
|
||||
target.storage.ctianfu3=player;
|
||||
game.addVideo('storage',target,['ctianfu2',get.cardInfo(cards[0]),'card']);
|
||||
target.addSkill('ctianfu2');
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
|
@ -1305,18 +1305,18 @@ character.xianjian={
|
|||
expose:0.2
|
||||
}
|
||||
},
|
||||
tianfu2:{
|
||||
ctianfu2:{
|
||||
trigger:{source:'damageAfter'},
|
||||
forced:true,
|
||||
mark:'card',
|
||||
filter:function(event,player){
|
||||
return player.storage.tianfu2&&player.storage.tianfu3;
|
||||
return player.storage.ctianfu2&&player.storage.ctianfu3;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(player.storage.tianfu3&&player.storage.tianfu3.isAlive()){
|
||||
player.damage(player.storage.tianfu3);
|
||||
player.storage.tianfu3.line(player,'thunder');
|
||||
if(player.storage.ctianfu3&&player.storage.ctianfu3.isAlive()){
|
||||
player.damage(player.storage.ctianfu3);
|
||||
player.storage.ctianfu3.line(player,'thunder');
|
||||
}
|
||||
else{
|
||||
player.damage('nosource');
|
||||
|
@ -1327,26 +1327,26 @@ character.xianjian={
|
|||
player.discard(he.randomGet());
|
||||
}
|
||||
"step 2"
|
||||
player.$throw(player.storage.tianfu2);
|
||||
ui.discardPile.appendChild(player.storage.tianfu2);
|
||||
delete player.storage.tianfu2;
|
||||
delete player.storage.tianfu3;
|
||||
player.removeSkill('tianfu2');
|
||||
player.$throw(player.storage.ctianfu2);
|
||||
ui.discardPile.appendChild(player.storage.ctianfu2);
|
||||
delete player.storage.ctianfu2;
|
||||
delete player.storage.ctianfu3;
|
||||
player.removeSkill('ctianfu2');
|
||||
},
|
||||
group:'tianfu3',
|
||||
group:'ctianfu3',
|
||||
intro:{
|
||||
content:'card'
|
||||
}
|
||||
},
|
||||
tianfu3:{
|
||||
ctianfu3:{
|
||||
trigger:{player:'dieBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
ui.discardPile.appendChild(player.storage.tianfu2);
|
||||
delete player.storage.tianfu2;
|
||||
delete player.storage.tianfu3;
|
||||
player.removeSkill('tianfu2');
|
||||
ui.discardPile.appendChild(player.storage.ctianfu2);
|
||||
delete player.storage.ctianfu2;
|
||||
delete player.storage.ctianfu3;
|
||||
player.removeSkill('ctianfu2');
|
||||
}
|
||||
},
|
||||
shuiyun:{
|
||||
|
@ -2541,10 +2541,10 @@ character.xianjian={
|
|||
xfenxin_info_alter:'锁定技,每当你的体力值发生改变,你摸一张牌',
|
||||
luanjian:'乱剑',
|
||||
luanjian_info:'出牌阶段,你可以将两张杀当杀使用,此杀无视距离,可以指定任意名目标且有50%的机率伤害+1',
|
||||
tianfu:'天符',
|
||||
tianfu2:'天符',
|
||||
tianfu3:'天符',
|
||||
tianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的一点雷属性伤害并随机弃置一张牌,然后移去此牌',
|
||||
ctianfu:'天符',
|
||||
ctianfu2:'天符',
|
||||
ctianfu3:'天符',
|
||||
ctianfu_info:'出牌阶段,你可以将一张闪置于一名其他角色的武将牌上,该角色在下一次造成伤害时受到来自你的一点雷属性伤害并随机弃置一张牌,然后移去此牌',
|
||||
shuiyun:'水蕴',
|
||||
shuiyun_bg:'蕴',
|
||||
shuiyun2:'水蕴',
|
||||
|
|
|
@ -7766,6 +7766,7 @@ character.yijiang={
|
|||
yaowu:'耀武',
|
||||
qianxi:'潜袭',
|
||||
qianxi2:'潜袭',
|
||||
qianxi2_bg:'潜袭',
|
||||
fuli:'伏枥',
|
||||
jiefan:'解烦',
|
||||
juece:'绝策',
|
||||
|
|
50
game/game.js
50
game/game.js
|
@ -10284,20 +10284,26 @@
|
|||
reinit:function(from,to,maxHp){
|
||||
var info1=lib.character[from];
|
||||
var info2=lib.character[to];
|
||||
if(this.name==from&&!this.classList.contains('unseen')){
|
||||
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){
|
||||
if(this.name2==from){
|
||||
this.name2=to;
|
||||
if(this.classList.contains('unseen')){
|
||||
if(this.classList.contains('unseen')&&!this.classList.contains('unseen2')){
|
||||
this.sex=info2[0];
|
||||
this.name=to;
|
||||
}
|
||||
this.node.avatar2.setBackground(to,'character');
|
||||
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{
|
||||
return this;
|
||||
}
|
||||
|
@ -22418,7 +22424,7 @@
|
|||
players[i].$draw(num2);
|
||||
}
|
||||
},
|
||||
finishSkill:function(i){
|
||||
finishSkill:function(i,sub){
|
||||
var j;
|
||||
var mode=get.mode();
|
||||
var info=lib.skill[i];
|
||||
|
@ -22476,7 +22482,7 @@
|
|||
var skill=lib.skill[info.inherit];
|
||||
for(j in skill){
|
||||
if(info[j]==undefined){
|
||||
if(j=='audio'){
|
||||
if(j=='audio'&&(typeof info[j]=='number'||typeof info[j]=='boolean')){
|
||||
info[j]=info.inherit;
|
||||
}
|
||||
else{
|
||||
|
@ -22484,11 +22490,14 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
if(lib.translate[i]==undefined){
|
||||
lib.translate[i]=lib.translate[info.inherit];
|
||||
}
|
||||
if(lib.translate[i+'_info']==undefined){
|
||||
lib.translate[i+'_info']=lib.translate[info.inherit+'_info'];
|
||||
}
|
||||
}
|
||||
if(info.subSkill){
|
||||
if(info.subSkill&&!sub){
|
||||
for(var j in info.subSkill){
|
||||
lib.skill[i+'_'+j]=info.subSkill[j];
|
||||
if(info.subSkill[j].name){
|
||||
|
@ -22503,6 +22512,7 @@
|
|||
if(info.subSkill[j].marktext){
|
||||
lib.translate[i+'_'+j+'_bg']=info.subSkill[j].marktext;
|
||||
}
|
||||
game.finishSkill(i+'_'+j,true);
|
||||
}
|
||||
}
|
||||
if(info.marktext){
|
||||
|
@ -22690,9 +22700,23 @@
|
|||
else if(typeof arguments[i]=='object'){
|
||||
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){
|
||||
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{
|
||||
str+=get.translation(arguments[i]);
|
||||
|
|
1258
mode/guozhan.js
1258
mode/guozhan.js
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue