新武将、皮肤
This commit is contained in:
parent
59209fcfad
commit
5057225508
|
@ -124,6 +124,17 @@ card.extra={
|
|||
},
|
||||
target:function(player,target){
|
||||
if(target.skills.contains('huogong2')||target.num('h')==0) return 0;
|
||||
if(target==player){
|
||||
if(_status.event.filterCard({name:'huogong'})){
|
||||
return -1.5;
|
||||
}
|
||||
if(_status.event.skill){
|
||||
var viewAs=get.info(_status.event.skill).viewAs;
|
||||
if(viewAs=='huogong') return -1.5;
|
||||
if(viewAs&&viewAs.name=='huogong') return -1.5;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return -1.5;
|
||||
}
|
||||
},
|
||||
|
|
|
@ -175,6 +175,7 @@ card.shenqi={
|
|||
shouna:{
|
||||
trigger:{global:'discardAfter'},
|
||||
filter:function(event,player){
|
||||
if(player.skills.contains('shouna2')) return false;
|
||||
if(_status.currentPhase==event.player) return false;
|
||||
if(event.player==player) return false;
|
||||
for(var i=0;i<event.cards.length;i++){
|
||||
|
@ -208,6 +209,7 @@ card.shenqi={
|
|||
"step 2"
|
||||
if(result.bool){
|
||||
player.logSkill('shouna');
|
||||
player.addTempSkill('shouna2','phaseAfter');
|
||||
player.$gain2(result.buttons[0].link);
|
||||
event.hu.storage.shouna.push(result.buttons[0].link);
|
||||
ui.special.appendChild(result.buttons[0].link);
|
||||
|
@ -216,6 +218,7 @@ card.shenqi={
|
|||
}
|
||||
},
|
||||
},
|
||||
shouna2:{},
|
||||
donghuangzhong:{
|
||||
mode:['identity','guozhan'],
|
||||
enable:'phaseUse',
|
||||
|
@ -648,7 +651,7 @@ card.shenqi={
|
|||
lianhua:'炼化',
|
||||
lianhua_info:'出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
||||
shouna:'收纳',
|
||||
shouna_info:'当一名其他角色于回合外弃置的卡牌进入弃牌堆后,你可以选择其中的一张放入炼妖壶',
|
||||
shouna_info:'当一名其他角色于回合外弃置的卡牌进入弃牌堆后,你可以选择其中的一张放入炼妖壶,每名角色的回合限一次',
|
||||
// donghuangzhong_info:'出牌阶段,你可以将一名已死亡角色永久移出游戏,然后回复一点体力,或创建一名与你身份相同的新角色,然后流失X点体力,X为新角色的体力上限',
|
||||
// xuanyuanjian_info:'锁定技,你使用的杀无视距离,可以额外指定一个目标,每当你造成一次伤害,有50%的机率使伤害加一并变为雷属性。任何时候,若你体力值不超过2,则立即失去轩辕剑',
|
||||
pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌',
|
||||
|
|
|
@ -196,7 +196,24 @@ card.standard={
|
|||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.num('h')<=target.hp&&target.hp>2) return 0;
|
||||
var nh=target.num('h');
|
||||
var keep=false;
|
||||
if(nh<=target.hp){
|
||||
keep=true;
|
||||
}
|
||||
else if(nh==target.hp+1&&target.hp>=3){
|
||||
keep=true;
|
||||
}
|
||||
if(target.hp>=2&&keep&&target.hasFriend()){
|
||||
if(target.hp>2) return 0;
|
||||
if(target.hp==2){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(target!=game.players[i]&&ai.get.attitude(target,game.players[i])>=3&&game.players[i].hp<=1){
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(target.hp<0&&target!=player&&target.identity!='zhu') return 0;
|
||||
var att=ai.get.attitude(player,target);
|
||||
if(att<3&&att>=0) return 0;
|
||||
|
@ -908,11 +925,15 @@ card.standard={
|
|||
}
|
||||
else{
|
||||
if(!card.expired){
|
||||
var target=player.next;
|
||||
if(target.num('j','shandian')&&!target.next.num('j','shandian')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='shandian'){
|
||||
player.next.addJudge('shandian',card);
|
||||
target.addJudge('shandian',card);
|
||||
}
|
||||
else{
|
||||
player.next.addJudge(card);
|
||||
target.addJudge(card);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -922,7 +943,16 @@ card.standard={
|
|||
},
|
||||
cancel:function(){
|
||||
if(!card.expired){
|
||||
player.next.addJudge(card);
|
||||
var target=player.next;
|
||||
if(target.num('j','shandian')&&!target.next.num('j','shandian')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='shandian'){
|
||||
target.addJudge('shandian',card);
|
||||
}
|
||||
else{
|
||||
target.addJudge(card);
|
||||
}
|
||||
}
|
||||
else{
|
||||
card.expired=false;
|
||||
|
@ -1486,7 +1516,7 @@ card.standard={
|
|||
["spade",6,"qinggang"],
|
||||
["spade",5,"qinglong"],
|
||||
["spade",12,"zhangba"],
|
||||
["spade",5,"guanshi"],
|
||||
["diamond",5,"guanshi"],
|
||||
["diamond",12,"fangtian"],
|
||||
["heart",5,"qilin"],
|
||||
|
||||
|
|
|
@ -34,6 +34,10 @@ card.yibao={
|
|||
}
|
||||
else{
|
||||
if(!card.expired){
|
||||
var target=player.next;
|
||||
if(target.num('j','huoshan')&&!target.next.num('j','huoshan')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='huoshan'){
|
||||
player.next.addJudge('huoshan',card);
|
||||
}
|
||||
|
@ -47,7 +51,21 @@ card.yibao={
|
|||
}
|
||||
},
|
||||
cancel:function(){
|
||||
player.next.addJudge(card);
|
||||
if(!card.expired){
|
||||
var target=player.next;
|
||||
if(target.num('j','huoshan')&&!target.next.num('j','huoshan')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='huoshan'){
|
||||
player.next.addJudge('huoshan',card);
|
||||
}
|
||||
else{
|
||||
player.next.addJudge(card);
|
||||
}
|
||||
}
|
||||
else{
|
||||
card.expired=false;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
|
@ -131,11 +149,15 @@ card.yibao={
|
|||
}
|
||||
else{
|
||||
if(!card.expired){
|
||||
var target=player.next;
|
||||
if(target.num('j','hongshui')&&!target.next.num('j','hongshui')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='hongshui'){
|
||||
player.next.addJudge('hongshui',card);
|
||||
target.addJudge('hongshui',card);
|
||||
}
|
||||
else{
|
||||
player.next.addJudge(card);
|
||||
target.addJudge(card);
|
||||
}
|
||||
}
|
||||
else{
|
||||
|
@ -144,7 +166,21 @@ card.yibao={
|
|||
}
|
||||
},
|
||||
cancel:function(){
|
||||
player.next.addJudge(card);
|
||||
if(!card.expired){
|
||||
var target=player.next;
|
||||
if(target.num('j','hongshui')&&!target.next.num('j','hongshui')){
|
||||
target=target.next;
|
||||
}
|
||||
if(card.name!='hongshui'){
|
||||
target.addJudge('hongshui',card);
|
||||
}
|
||||
else{
|
||||
target.addJudge(card);
|
||||
}
|
||||
}
|
||||
else{
|
||||
card.expired=false;
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
|
|
|
@ -239,6 +239,7 @@ character.diy={
|
|||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
if(player.storage.guihan) return false;
|
||||
if(player.hp>0) return false;
|
||||
},
|
||||
save:true,
|
||||
result:{
|
||||
|
|
|
@ -136,6 +136,7 @@ character.fire={
|
|||
ai:{
|
||||
skillTagFilter:function(player){
|
||||
if(player.storage.niepan) return false;
|
||||
if(player.hp>0) return false;
|
||||
},
|
||||
save:true,
|
||||
result:{
|
||||
|
|
|
@ -533,6 +533,10 @@ character.gujian={
|
|||
},
|
||||
ai:{
|
||||
save:true,
|
||||
skillTagFilter:function(player){
|
||||
if(player.storage.shahun) return false;
|
||||
if(player.hp>0) return false;
|
||||
},
|
||||
result:{
|
||||
player:3
|
||||
}
|
||||
|
|
|
@ -1,51 +1,519 @@
|
|||
'use strict';
|
||||
character.hearth={
|
||||
character:{
|
||||
// hs_jaina:['female','wei',3,[],['fullskin']],
|
||||
// hs_rexxar:['male','qun',4,[],['fullskin']],
|
||||
// hs_uther:['male','qun',4,[],['fullskin']],
|
||||
// hs_garrosh:['male','qun',4,[],['fullskin']],
|
||||
hs_jaina:['female','wei',3,['huopu','bianxing','bingjia'],['fullskin']],
|
||||
hs_rexxar:['male','qun',4,['shoulie','gongji'],['fullskin']],
|
||||
hs_uther:['male','qun',4,['fengxian','jieming'],['fullskin']],
|
||||
hs_garrosh:['male','qun',4,['zhanhou','qiangxi'],['fullskin']],
|
||||
hs_malfurion:['male','wu',4,['jihuo'],['fullskin']],
|
||||
hs_guldan:['male','wei',3,['fenliu','hongxi'],['fullskin']],
|
||||
// hs_anduin:['male','qun',4,[],['fullskin']],
|
||||
hs_thrall:['male','qun',4,['tuteng','tzhenji'],['fullskin']],
|
||||
hs_guldan:['male','qun',3,['fenliu','hongxi'],['fullskin']],
|
||||
hs_anduin:['male','qun',3,['shengguang','shijie','anying'],['fullskin']],
|
||||
hs_thrall:['male','wu',4,['tuteng','tzhenji'],['fullskin']],
|
||||
hs_waleera:['female','qun',3,['jianren','mengun','wlianji'],['fullskin']],
|
||||
|
||||
hs_medivh:['male','wei',3,['jingxiang','moying','xianzhi'],['fullskin']],
|
||||
// hs_alleria:['male','qun',3,[],['fullskin']],
|
||||
// hs_magni:['male','qun',3,['jingxiang'],['fullskin']],
|
||||
hs_medivh:['male','wei',3,['jingxiang','moying','mdzhoufu'],['fullskin']],
|
||||
hs_alleria:['male','wu',3,['fengxing','qiaodong','liegong'],['fullskin']],
|
||||
hs_magni:['male','qun',4,['zhongjia','dunji'],['fullskin']],
|
||||
},
|
||||
skill:{
|
||||
moying:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
zhongjia:{
|
||||
trigger:{player:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
player.changeHujia();
|
||||
},
|
||||
ai:{
|
||||
nohujia:true,
|
||||
skillTagFilter:function(player){
|
||||
return player.hp>1;
|
||||
},
|
||||
threaten:function(player,target){
|
||||
if(!target.hujia) return 0.8;
|
||||
},
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(get.tag(card,'damage')){
|
||||
if(player.skills.contains('jueqing')) return [1,-1];
|
||||
return 0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
dunji:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return !player.getStat('damage');
|
||||
return player.hujia?true:false;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target;
|
||||
},
|
||||
selectTarget:function(){
|
||||
return [1,_status.event.player.hujia];
|
||||
},
|
||||
content:function(){
|
||||
if(target==targets[0]){
|
||||
player.changeHujia(-player.hujia);
|
||||
}
|
||||
target.damage();
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
return ai.get.damageEffect(target,player,target)+0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
fengxing:{
|
||||
trigger:{player:['useCard','respondAfter']},
|
||||
frequent:true,
|
||||
filter:function(event){
|
||||
return event.card&&event.card.name=='sha';
|
||||
},
|
||||
content:function(){
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
fengxian:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filterTarget:function(card,player,target){
|
||||
return target.num('h')>0;
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.chooseToDiscard(true);
|
||||
},
|
||||
ai:{
|
||||
order:8,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
var nh=target.num('h');
|
||||
switch(nh){
|
||||
case 0:return 0;
|
||||
case 1:return -1.5;
|
||||
case 2:return -1.3;
|
||||
case 3:return -1;
|
||||
default:return -0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
qiaodong:{
|
||||
enable:['chooseToRespond'],
|
||||
filterCard:{type:'equip'},
|
||||
viewAs:{name:'shan'},
|
||||
position:'he',
|
||||
prompt:'将一张装备牌当闪使用或打出',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.num('he',{type:'equip'})) return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
zhanhou:{
|
||||
init:function(player){
|
||||
player.forcemin=true;
|
||||
},
|
||||
enable:'phaseUse',
|
||||
filterCard:{type:'equip'},
|
||||
check:function(){
|
||||
return 1;
|
||||
},
|
||||
content:function(){
|
||||
player.changeHujia();
|
||||
},
|
||||
ai:{
|
||||
order:2,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
},
|
||||
mod:{
|
||||
globalFrom:function(from,to,distance){
|
||||
return distance-from.hujia;
|
||||
}
|
||||
},
|
||||
},
|
||||
shijie:{
|
||||
trigger:{player:'phaseEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i]!=player&&game.players[i].num('h')){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget('是否发动【视界】',function(card,player,target){
|
||||
return player!=target&&target.num('h')>0;
|
||||
}).ai=function(target){
|
||||
return 11-ai.get.attitude(player,target);
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('shijie',result.targets);
|
||||
var target=result.targets[0];
|
||||
player.gain(target.get('h').randomGet());
|
||||
event.target=target;
|
||||
target.$give(1,player);
|
||||
game.delay();
|
||||
event.target.draw();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
expose:0.1
|
||||
}
|
||||
},
|
||||
shengguang:{
|
||||
enable:'phaseUse',
|
||||
filterCard:{color:'red'},
|
||||
filter:function(event,player){
|
||||
return player.num('he',{color:'red'})>0;
|
||||
},
|
||||
position:'he',
|
||||
usable:1,
|
||||
check:function(card){
|
||||
return 9-ai.get.value(card)
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(player.storage.anying) return true;
|
||||
if(target.hp>=target.maxHp) return false;
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(player.storage.anying){
|
||||
target.loseHp();
|
||||
event.finish();
|
||||
}
|
||||
else{
|
||||
target.recover();
|
||||
}
|
||||
'step 1'
|
||||
if(target.hp<target.maxHp){
|
||||
target.draw();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(player.storage.anying) return -1;
|
||||
if(target.hp==1) return 5;
|
||||
if(player==target&&player.num('h')>player.hp) return 5;
|
||||
return 2;
|
||||
}
|
||||
},
|
||||
threaten:2,
|
||||
expose:0.2
|
||||
}
|
||||
},
|
||||
xinci:{
|
||||
enable:'phaseUse',
|
||||
filterCard:{color:'black'},
|
||||
filter:function(event,player){
|
||||
return player.num('he',{color:'black'})>0;
|
||||
},
|
||||
position:'he',
|
||||
usable:1,
|
||||
mark:true,
|
||||
intro:{
|
||||
content:'已进入暗影形态'
|
||||
},
|
||||
check:function(card){
|
||||
return 9-ai.get.value(card)
|
||||
},
|
||||
filterTarget:true,
|
||||
content:function(){
|
||||
target.loseHp();
|
||||
},
|
||||
ai:{
|
||||
order:9,
|
||||
result:{
|
||||
target:-1
|
||||
},
|
||||
threaten:2,
|
||||
expose:0.2
|
||||
}
|
||||
},
|
||||
anying:{
|
||||
unique:true,
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return !player.storage.anying&&player.num('he',{color:'black'})>1;
|
||||
},
|
||||
selectCard:2,
|
||||
filterCard:{color:'black'},
|
||||
position:'he',
|
||||
check:function(card){
|
||||
return 5-ai.get.value(card);
|
||||
},
|
||||
content:function(){
|
||||
player.storage.anying=true;
|
||||
player.removeSkill('shengguang');
|
||||
player.addSkill('xinci');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
bianxing:{
|
||||
trigger:{global:'useCard'},
|
||||
filter:function(event,player){
|
||||
if(player.skills.contains('bianxing2')) return false;
|
||||
if(event.player==player) return false;
|
||||
if(_status.currentPhase!=event.player) return false;
|
||||
if(!event.targets) return false;
|
||||
if(event.targets.length!=1) return false;
|
||||
var hs=player.get('h');
|
||||
for(var i=0;i<hs.length;i++){
|
||||
if(hs[i].name!=event.card.name){
|
||||
if(lib.filter.filterTarget(hs[i],event.player,event.targets[0])){
|
||||
var select=get.select(get.info(hs[i]).selectTarget);
|
||||
if(select[0]<=1&&select[1]>=1){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseTarget('是否发动【魔影】?').ai=function(target){
|
||||
if(player.skills.contains('xianzhi')){
|
||||
return -ai.get.attitude(player,target);
|
||||
'step 0'
|
||||
var eff=ai.get.effect(trigger.targets[0],trigger.card,trigger.player,player);
|
||||
var att=ai.get.attitude(player,trigger.player);
|
||||
player.chooseCard('是否发动【变形】?',function(card){
|
||||
if(card.name!=trigger.card.name&&
|
||||
lib.filter.filterTarget(card,trigger.player,trigger.targets[0])){
|
||||
var select=get.select(get.info(card).selectTarget);
|
||||
if(select[0]<=1&&select[1]>=1){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return false;
|
||||
}).ai=function(card){
|
||||
if(att>=0) return 0;
|
||||
return ai.get.effect(trigger.targets[0],card,trigger.player,player)-eff;
|
||||
};
|
||||
"step 1"
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
event.target=result.targets[0];
|
||||
event.target.judge(function(card){
|
||||
return get.color(card)=='red'?1:-1;
|
||||
});
|
||||
player.logSkill('moying',event.target);
|
||||
var card=result.cards[0];
|
||||
player.lose(result.cards);
|
||||
event.cards=result.cards;
|
||||
player.logSkill('bianxing',trigger.player);
|
||||
game.delay(0.5);
|
||||
trigger.untrigger();
|
||||
trigger.card=card;
|
||||
trigger.cards=[card];
|
||||
player.addTempSkill('bianxing2','phaseAfter');
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
event.target.draw();
|
||||
'step 2'
|
||||
player.$throw(event.cards);
|
||||
game.delay();
|
||||
trigger.trigger('useCard');
|
||||
},
|
||||
ai:{
|
||||
expose:0.2,
|
||||
threaten:1.8
|
||||
}
|
||||
},
|
||||
bingjia:{
|
||||
enable:'phaseUse',
|
||||
filter:function(event,player){
|
||||
return !player.skills.contains('bingjia2');
|
||||
},
|
||||
filterCard:{color:'black'},
|
||||
check:function(card){
|
||||
return 6-ai.get.value(card);
|
||||
},
|
||||
discard:false,
|
||||
prepare:function(cards,player){
|
||||
player.$give(1,player);
|
||||
},
|
||||
content:function(){
|
||||
player.storage.bingjia=cards[0];
|
||||
player.addSkill('bingjia2');
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
bingjia2:{
|
||||
mark:true,
|
||||
trigger:{target:'useCardToBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.card.number==player.storage.bingjia.number;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.showCards([player.storage.bingjia],get.translation(player)+'发动了【冰甲】');
|
||||
'step 1'
|
||||
ui.discardPile.appendChild(player.storage.bingjia);
|
||||
delete player.storage.bingjia;
|
||||
player.changeHujia(2);
|
||||
player.removeSkill('bingjia2');
|
||||
},
|
||||
intro:{
|
||||
mark:function(dialog,content,player){
|
||||
if(player==game.me||player.isUnderControl()){
|
||||
dialog.add([player.storage.bingjia]);
|
||||
}
|
||||
else{
|
||||
return '已发动冰甲';
|
||||
}
|
||||
},
|
||||
content:function(content,player){
|
||||
if(player==game.me||player.isUnderControl()){
|
||||
return get.translation(player.storage.bingjia);
|
||||
}
|
||||
return '已发动冰甲';
|
||||
}
|
||||
}
|
||||
},
|
||||
bianxing2:{},
|
||||
moying:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
filter:function(){
|
||||
for(var i=0;i<game.players.length;i++){
|
||||
if(game.players[i].num('j','shandian')){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
forced:true,
|
||||
check:function(){
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var card=null;
|
||||
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
||||
if(ui.cardPile.childNodes[i].name=='shandian'){
|
||||
card=ui.cardPile.childNodes[i];break;
|
||||
}
|
||||
}
|
||||
if(!card){
|
||||
for(var i=0;i<ui.discardPile.childNodes.length;i++){
|
||||
if(ui.discardPile.childNodes[i].name=='shandian'){
|
||||
card=ui.discardPile.childNodes[i];break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(card){
|
||||
player.addJudge(card);
|
||||
}
|
||||
'step 1'
|
||||
game.delay();
|
||||
},
|
||||
ai:{
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
mdzhoufu:{
|
||||
enable:'phaseUse',
|
||||
filterCard:{color:'black'},
|
||||
filter:function(event,player){
|
||||
return player.num('h',{color:'black'})>0;
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target&&!target.skills.contains('mdzhoufu2');
|
||||
},
|
||||
prepare:function(cards,player){
|
||||
player.$throw(cards);
|
||||
},
|
||||
discard:false,
|
||||
content:function(){
|
||||
target.$gain2(cards);
|
||||
target.storage.mdzhoufu2=cards[0];
|
||||
target.addSkill('mdzhoufu2');
|
||||
target.storage.mdzhoufu3=player;
|
||||
ui.special.appendChild(cards[0]);
|
||||
},
|
||||
check:function(card){
|
||||
return 3-ai.get.value(card)
|
||||
},
|
||||
ai:{
|
||||
expose:0.1,
|
||||
order:1,
|
||||
result:{
|
||||
player:1
|
||||
}
|
||||
}
|
||||
},
|
||||
mdzhoufu2:{
|
||||
trigger:{player:'judge'},
|
||||
forced:true,
|
||||
priority:10,
|
||||
mark:'card',
|
||||
content:function(){
|
||||
"step 0"
|
||||
ui.discardPile.appendChild(player.storage.mdzhoufu2);
|
||||
player.$throw(player.storage.mdzhoufu2);
|
||||
if(player.storage.mdzhoufu3.isAlive()){
|
||||
player.storage.mdzhoufu3.draw();
|
||||
}
|
||||
else{
|
||||
game.delay(1.5);
|
||||
}
|
||||
"step 1"
|
||||
player.judging=player.storage.mdzhoufu2;
|
||||
trigger.position.appendChild(player.storage.mdzhoufu2);
|
||||
// trigger.untrigger();
|
||||
game.log(get.translation(player)+'的判定牌改为'+get.translation(player.storage.mdzhoufu2));
|
||||
player.removeSkill('mdzhoufu2');
|
||||
delete player.storage.mdzhoufu2;
|
||||
delete player.storage.mdzhoufu3;
|
||||
},
|
||||
intro:{
|
||||
content:'card'
|
||||
},
|
||||
},
|
||||
moying_old:{
|
||||
trigger:{player:'damageEnd',source:'damageEnd'},
|
||||
check:function(event,player){
|
||||
var target=(player==event.player)?event.source:event.player;
|
||||
return ai.get.attitude(player,target)<0;
|
||||
},
|
||||
filter:function(event,player){
|
||||
var target=(player==event.player)?event.source:event.player;
|
||||
return target.isAlive();
|
||||
},
|
||||
prompt:function(event,player){
|
||||
var target=(player==event.player)?event.source:event.player;
|
||||
return '是否对'+get.translation(target)+'发动【魔影】?';
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
event.target=(player==trigger.player)?trigger.source:trigger.player;
|
||||
event.target.judge(function(card){
|
||||
return get.color(card)=='black'?-1:0;
|
||||
});
|
||||
"step 1"
|
||||
if(result.color=='black'){
|
||||
event.target.loseHp();
|
||||
}
|
||||
},
|
||||
|
@ -56,7 +524,7 @@ character.hearth={
|
|||
},
|
||||
xianzhi:{
|
||||
trigger:{global:'judgeBegin'},
|
||||
frequent:true,
|
||||
direct:true,
|
||||
filter:function(){
|
||||
return ui.cardPile.childNodes.length>1;
|
||||
},
|
||||
|
@ -77,6 +545,7 @@ character.hearth={
|
|||
};
|
||||
'step 1'
|
||||
if(result.control=='调换顺序'){
|
||||
player.logSkill('xianzhi');
|
||||
var card=ui.cardPile.firstChild;
|
||||
ui.cardPile.removeChild(card);
|
||||
ui.cardPile.insertBefore(card,ui.cardPile.firstChild.nextSibling);
|
||||
|
@ -85,7 +554,9 @@ character.hearth={
|
|||
},
|
||||
ai:{
|
||||
expose:0.1,
|
||||
rejudge:0.5
|
||||
tag:{
|
||||
rejudge:0.5
|
||||
}
|
||||
}
|
||||
},
|
||||
jingxiang:{
|
||||
|
@ -579,6 +1050,8 @@ character.hearth={
|
|||
}
|
||||
},
|
||||
translate:{
|
||||
hs_alleria:'奥蕾莉亚',
|
||||
hs_magni:'麦格尼',
|
||||
hs_medivh:'麦迪文',
|
||||
hs_jaina:'吉安娜',
|
||||
hs_rexxar:'雷克萨',
|
||||
|
@ -590,11 +1063,38 @@ character.hearth={
|
|||
hs_thrall:'萨尔',
|
||||
hs_waleera:'瓦莉拉',
|
||||
|
||||
|
||||
fengxing:'风行',
|
||||
fengxing_info:'每当你使用或打出一张杀,你可以摸一张牌',
|
||||
xinci:'心刺',
|
||||
xinci_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名角色流失一点体力',
|
||||
zhongjia:'重甲',
|
||||
zhongjia_info:'锁定技,每当你受到一次伤害,你获得一点护甲值;当你的体力值大于1时,你的护甲不为你抵挡伤害',
|
||||
dunji:'盾击',
|
||||
dunji_info:'出牌阶段限,你可以失去你的所有护甲,并对等量的其他角色各造成一点伤害',
|
||||
qiaodong:'巧动',
|
||||
qiaodong_info:'你可以将一张装备牌当作当使用或打出',
|
||||
fengxian:'奉献',
|
||||
fengxian_info:'出牌阶段限一次,你可以令场上所有角色各弃置一张手牌',
|
||||
zhanhou:'战吼',
|
||||
zhanhou_info:'锁定技,你没有装备区,你可以弃置一张装备牌并获得一点护甲值;每有一点护甲值,你与其他角色的距离-1',
|
||||
anying:'暗影',
|
||||
anying_info:'限定技,出牌阶段,你可以弃置两张黑色牌,失去技能圣光,并获得技能心刺',
|
||||
shijie:'视界',
|
||||
shijie_info:'回合结束阶段,你可以获得一名其他角色的一张手牌,然后该角色摸一张牌',
|
||||
shengguang:'圣光',
|
||||
shengguang_info:'出牌阶段限一次,你可以弃置一张红色牌令一名角色回复一点体力,若其仍处于受伤状态则摸一张牌',
|
||||
bingjia:'冰甲',
|
||||
bingjia2:'冰甲',
|
||||
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张黑色手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌点数相同的牌的目标时,你将此牌置于弃牌堆,并获得两点护甲值',
|
||||
bianxing:'变形',
|
||||
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一目标后,你可以用一张与之不同名的手牌替代此牌(使用者及目标必须合理),每名角色的回合限一次',
|
||||
xianzhi:'先知',
|
||||
xianzhi_info:'任意一名角色进行判定前,你可以观看牌堆顶的两张牌,并可以将其调换顺序',
|
||||
mdzhoufu:'诅咒',
|
||||
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果;当受此技能影响的角色进行判定时,你摸一张牌',
|
||||
moying:'魔影',
|
||||
moying_info:'回合结束阶段,若你本回合内没有造成伤害,可以指定一名角色进行判定,若为黑色,其流失一点体力,若为红色,其摸一张牌',
|
||||
moying_info:'锁定技,回合开始阶段,若场上没有闪电,你将牌堆中的一张闪电置于你的判定区',
|
||||
moying_old_info:'每当你造成或受到一次伤害,你可以令伤害目标或来源进行一次判定,若结果为黑色,其流失一点体力',
|
||||
jingxiang:'镜像',
|
||||
jingxiang_info:'每当你需要打出卡牌时,你可以观看一名随机角色的手牌并将其视为你的手牌打出',
|
||||
tuteng:'图腾',
|
||||
|
|
|
@ -589,6 +589,10 @@ character.mountain={
|
|||
player.removeSkill('hunzi');
|
||||
},
|
||||
ai:{
|
||||
threaten:function(player,target){
|
||||
if(target.hp==1) return 2;
|
||||
return 0.5;
|
||||
},
|
||||
maixie:true,
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
|
|
|
@ -119,6 +119,9 @@ character.sp={
|
|||
chouhai:{
|
||||
trigger:{player:'damageBegin'},
|
||||
forced:true,
|
||||
check:function(){
|
||||
return false;
|
||||
},
|
||||
filter:function(event,player){
|
||||
return player.num('h')==0;
|
||||
},
|
||||
|
@ -565,8 +568,12 @@ character.sp={
|
|||
usable:1,
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return player!=target;
|
||||
return player!=target&&!target.skills.contains('zhoufu2');
|
||||
},
|
||||
prepare:function(cards,player){
|
||||
player.$throw(cards);
|
||||
},
|
||||
discard:false,
|
||||
content:function(){
|
||||
target.$gain2(cards);
|
||||
target.storage.zhoufu2=cards[0];
|
||||
|
@ -578,6 +585,7 @@ character.sp={
|
|||
return 3-ai.get.value(card)
|
||||
},
|
||||
ai:{
|
||||
expose:0.1,
|
||||
order:1,
|
||||
result:{
|
||||
player:1
|
||||
|
@ -596,6 +604,9 @@ character.sp={
|
|||
if(player.storage.zhoufu3.isAlive()&&player.storage.zhoufu3.skills.contains('yingbin')){
|
||||
player.storage.zhoufu3.draw(2);
|
||||
}
|
||||
else{
|
||||
game.delay(1.5);
|
||||
}
|
||||
"step 1"
|
||||
player.judging=player.storage.zhoufu2;
|
||||
trigger.position.appendChild(player.storage.zhoufu2);
|
||||
|
|
|
@ -607,6 +607,9 @@ character.standard={
|
|||
},
|
||||
position:'he',
|
||||
viewAs:{name:'sha'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('h',{color:'red'})) return false;
|
||||
},
|
||||
prompt:'将一张红色牌当杀使用或打出',
|
||||
check:function(card){return 4-ai.get.value(card)},
|
||||
ai:{
|
||||
|
@ -759,6 +762,9 @@ character.standard={
|
|||
enable:['chooseToUse','chooseToRespond'],
|
||||
filterCard:{name:'shan'},
|
||||
viewAs:{name:'sha'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('h','shan')) return false;
|
||||
},
|
||||
prompt:'将一张闪当杀使用或打出',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
|
@ -768,6 +774,9 @@ character.standard={
|
|||
}
|
||||
},
|
||||
respondSha:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.num('h','shan')) return false;
|
||||
},
|
||||
order:4,
|
||||
useful:-1,
|
||||
value:-1
|
||||
|
@ -782,6 +791,9 @@ character.standard={
|
|||
check:function(){return 1},
|
||||
ai:{
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.num('h','sha')) return false;
|
||||
},
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(get.tag(card,'respondShan')&¤t<0) return 0.6
|
||||
|
@ -887,6 +899,9 @@ character.standard={
|
|||
},
|
||||
position:'he',
|
||||
viewAs:{name:'guohe'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('h',{color:'black'})) return false;
|
||||
},
|
||||
prompt:'将一张黑色牌当过河拆桥使用',
|
||||
check:function(card){return 4-ai.get.value(card)}
|
||||
},
|
||||
|
@ -1209,7 +1224,7 @@ character.standard={
|
|||
order:9,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.hp==5) return 5;
|
||||
if(target.hp==1) return 5;
|
||||
if(player==target&&player.num('h')>player.hp) return 5;
|
||||
return 2;
|
||||
}
|
||||
|
|
107
character/swd.js
107
character/swd.js
|
@ -897,43 +897,23 @@ character.swd={
|
|||
},
|
||||
fuyan:{
|
||||
trigger:{player:'damageEnd'},
|
||||
frequent:true,
|
||||
direct:true,
|
||||
filter:function(event){
|
||||
return event.num>0;
|
||||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.draw();
|
||||
player.chooseTarget('是否发动【覆岩】?',function(card,player,target){
|
||||
return !target.hujia;
|
||||
}).ai=function(target){
|
||||
var eff=-ai.get.damageEffect(target,target,player);
|
||||
return eff+(player==target?2:0);
|
||||
};
|
||||
"step 1"
|
||||
if(player.num('he')){
|
||||
player.chooseCardTarget({
|
||||
position:'he',
|
||||
prompt:'选择一张牌作为“岩”',
|
||||
ai1:function(card){
|
||||
return 8-ai.get.value(card);
|
||||
},
|
||||
ai2:function(target){
|
||||
var eff=-ai.get.damageEffect(target,target,player);
|
||||
return eff+(player==target?2:0);
|
||||
},
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return !target.skills.contains('fuyan2');
|
||||
}
|
||||
});
|
||||
}
|
||||
else{
|
||||
event.finish();
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
player.line(result.targets);
|
||||
player.lose(result.cards,ui.special);
|
||||
player.logSkill('fuyan',result.targets);
|
||||
var target=result.targets[0];
|
||||
target.storage.fuyan2=result.cards[0];
|
||||
target.addSkill('fuyan2');
|
||||
player.$give(result.cards,target);
|
||||
game.log(get.translation(player)+'将'+get.translation(result.cards)+'置于'+get.translation(target)+'的武将牌上');
|
||||
target.changeHujia();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -3212,6 +3192,9 @@ character.swd={
|
|||
return get.suit(card)=='heart';
|
||||
},
|
||||
viewAs:{name:'liuxinghuoyu'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('he',{suit:'heart'})) return false;
|
||||
},
|
||||
prompt:'将一张红桃手牌当作流星火羽使用',
|
||||
check:function(card){return 6-ai.get.value(card)},
|
||||
ai:{
|
||||
|
@ -3252,6 +3235,9 @@ character.swd={
|
|||
return get.color(card)=='black';
|
||||
},
|
||||
viewAs:{name:'dujian'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('h',{color:'black'})) return false;
|
||||
},
|
||||
prompt:'将一张黑色手牌当作毒箭使用',
|
||||
check:function(card){return 5-ai.get.value(card)},
|
||||
ai:{
|
||||
|
@ -4236,13 +4222,9 @@ character.swd={
|
|||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('daixing');
|
||||
player.changeHujia(result.cards.length);
|
||||
player.storage.daixing=result.cards.length;
|
||||
player.markSkill('daixing');
|
||||
}
|
||||
else{
|
||||
player.storage.daixing=0;
|
||||
player.unmarkSkill('daixing');
|
||||
player.logSkill('daixing');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -4262,24 +4244,14 @@ character.swd={
|
|||
}
|
||||
},
|
||||
daixing2:{
|
||||
trigger:{player:'damageBegin'},
|
||||
filter:function(event,player){
|
||||
return player.storage.daixing>0;
|
||||
},
|
||||
priority:-20,
|
||||
popup:false,
|
||||
trigger:{player:'phaseBegin'},
|
||||
forced:true,
|
||||
popup:false,
|
||||
content:function(){
|
||||
if(trigger.num>=player.storage.daixing){
|
||||
trigger.num-=player.storage.daixing;
|
||||
if(player.storage.daixing){
|
||||
player.changeHujia(-player.storage.daixing);
|
||||
player.storage.daixing=0;
|
||||
player.unmarkSkill('daixing');
|
||||
}
|
||||
else{
|
||||
player.storage.daixing-=trigger.num;
|
||||
trigger.num=0;
|
||||
}
|
||||
player.popup('daixing');
|
||||
}
|
||||
},
|
||||
swd_wuxie:{
|
||||
|
@ -7328,34 +7300,12 @@ character.swd={
|
|||
trigger:{source:'damageEnd'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return !player.storage.hudun;
|
||||
return !player.hujia&&event.player!=player;
|
||||
},
|
||||
content:function(){
|
||||
player.storage.hudun=true;
|
||||
player.markSkill('hudun');
|
||||
player.changeHujia();
|
||||
player.update();
|
||||
},
|
||||
init:function(player){
|
||||
player.storage.hudun=false;
|
||||
},
|
||||
intro:{
|
||||
content:function(st){
|
||||
if(st) return '已开启';
|
||||
return '未开启';
|
||||
}
|
||||
},
|
||||
group:'hudun2'
|
||||
},
|
||||
hudun2:{
|
||||
trigger:{player:'damageBegin'},
|
||||
forced:true,
|
||||
filter:function(event,player){
|
||||
return event.num>0&&player.storage.hudun;
|
||||
},
|
||||
content:function(){
|
||||
trigger.num--;
|
||||
player.storage.hudun=false;
|
||||
player.unmarkSkill('hudun');
|
||||
}
|
||||
},
|
||||
toudan:{
|
||||
enable:'phaseUse',
|
||||
|
@ -7383,6 +7333,7 @@ character.swd={
|
|||
}
|
||||
lib.tempSortSeat=event.target;
|
||||
event.targets.sort(lib.sort.seat);
|
||||
event.targets.unshift(player);
|
||||
delete lib.tempSortSeat;
|
||||
"step 1"
|
||||
if(event.targets.length){
|
||||
|
@ -7613,7 +7564,7 @@ character.swd={
|
|||
huiqi:'回气',
|
||||
huiqi_info:'每当你受到一次伤害,可令一名角色摸X张牌,X为你已损失的体力值',
|
||||
toudan:'投弹',
|
||||
toudan_info:'出牌阶段限一次,你可以弃置一张黑桃牌对一名其他角色造成一点火焰伤害,然后令距离该角色1以内的所有角色弃置一张牌',
|
||||
toudan_info:'出牌阶段限一次,你可以弃置一张黑桃牌对一名其他角色造成一点火焰伤害,然后你与距离该角色1以内的所有角色各弃置一张牌',
|
||||
shending:'神丁',
|
||||
shending_info:'锁定技,若你没有宝物牌,视为装备了蓝格怪衣',
|
||||
hzhenwei:'镇卫',
|
||||
|
@ -7623,7 +7574,7 @@ character.swd={
|
|||
hudun:'护盾',
|
||||
hudun_bg:'盾',
|
||||
hudun2:'护盾',
|
||||
hudun_info:'锁定技,当你造成一次伤害后,受到的下一次伤害-1',
|
||||
hudun_info:'锁定技,当你对其他角色造成伤害后,若你没有护甲,你获得一点护甲值',
|
||||
mazui:'麻醉',
|
||||
mazui2:'麻醉',
|
||||
mazui_info:'出牌阶段限一次,你可以将一张黑色手牌置于一名角色的武将牌上,该角色造成的下一次伤害-1,然后获得此牌',
|
||||
|
@ -7640,7 +7591,7 @@ character.swd={
|
|||
zhenwei_info:'你可以将攻击范围内其他角色打出的卡牌交给除该角色外的任意一名角色',
|
||||
fuyan:'覆岩',
|
||||
fuyan2:'覆岩',
|
||||
fuyan_info:'每当你受到一次伤害,可以摸一张牌,并将一张牌置于一名角色的武将牌上称为“岩”;当其受到伤害时,须将“岩”置于弃牌堆,然后令伤害-1',
|
||||
fuyan_info:'每当你受到一次伤害,可以令一名没有护甲的角色获得一点护甲值',
|
||||
guaili:'怪力',
|
||||
guaili_info:'锁定技,你的杀造成的伤害+1,造成伤害后需弃置一张牌',
|
||||
pingshen:'凭神',
|
||||
|
@ -7942,7 +7893,7 @@ character.swd={
|
|||
yuhuo_info:'限定技,濒死阶段,你可以重置角色牌,减少一点体力上限,然后将体力回复至体力上限',
|
||||
yishan_info:'每当你受到一次伤害,你可以重新获得最近失去的两张牌',
|
||||
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张红色牌并令其进行一次判定,若结果为红色,其回复一点体力',
|
||||
daixing_info:'回合结束阶段,你可以弃置至多X张牌,并抵挡等量伤害,效果在下一个回合结束阶段失效,X为现存角色数-1',
|
||||
daixing_info:'回合结束阶段,你可以任意张牌并获得等量的护甲,这些护甲将在你的下个回合开始阶段消失',
|
||||
swd_wuxie_info:'锁定技,你不能成为其他角色的延时锦囊的目标',
|
||||
qingcheng_info:'回合开始阶段,你可以进行判定,若为红色则可以继续判定,判定结束后将判定成功的牌收入手牌',
|
||||
xianjiang_info:'出牌阶段,你可以将一张装备牌永久转化为任意一张其它装备牌,一张牌在一个阶段只能转化一次',
|
||||
|
|
|
@ -526,8 +526,7 @@ character.xianjian={
|
|||
}
|
||||
return false;
|
||||
},
|
||||
frequent:true,
|
||||
popup:false,
|
||||
direct:true,
|
||||
content:function(){
|
||||
"step 0"
|
||||
if(trigger.delay==false) game.delay();
|
||||
|
@ -539,9 +538,16 @@ character.xianjian={
|
|||
}
|
||||
}
|
||||
if(cards.length){
|
||||
player.chooseCardButton('聚宝:获得其中的一张非基本牌牌',cards);
|
||||
|
||||
}
|
||||
"step 2"
|
||||
if(result.bool){
|
||||
var cards=result.links;
|
||||
player.logSkill('jubao');
|
||||
player.gain(cards);
|
||||
player.$gain2(cards);
|
||||
game.log(get.translation(player)+'发动聚宝,获得了'+get.translation(cards));
|
||||
game.log(get.translation(player)+'获得了'+get.translation(cards));
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -1169,6 +1175,9 @@ character.xianjian={
|
|||
},
|
||||
position:'he',
|
||||
viewAs:{name:'shunshou'},
|
||||
viewAsFilter:function(player){
|
||||
if(!player.num('he',{suit:'club'})) return false;
|
||||
},
|
||||
prompt:'将一张装备牌当顺手牵羊使用',
|
||||
check:function(card){
|
||||
var player=_status.currentPhase;
|
||||
|
@ -1360,7 +1369,7 @@ character.xianjian={
|
|||
sajin:'洒金',
|
||||
sajin_info:'出牌阶段,你可以弃置一张手牌并指定任意名角色进行判定,若判定花色与你弃置的牌相同,该角色回复一点体力',
|
||||
jubao:'聚宝',
|
||||
jubao_info:'回合外,你可以将其他角色弃置的非基本牌收入手牌',
|
||||
jubao_info:'当其他角色于你的回合外弃置非基本牌时,你可以获得其中的一张',
|
||||
guiyuan:'归元',
|
||||
guiyuan_info:'出牌阶段限一次,你可以弃置一张杀并回复一点体力',
|
||||
shuangren:'双刃',
|
||||
|
|
|
@ -13,7 +13,7 @@ window.config={
|
|||
all:{
|
||||
mode:['identity','guozhan','versus','boss','chess','stone'],
|
||||
layout:['default','newlayout'],
|
||||
theme:['woodden','music'],
|
||||
theme:['woodden','music','simple'],
|
||||
card_font:['xiaozhuan','huangcao','caoshu','xingshu'],
|
||||
double_hp:['hejiansan','pingjun','zuidazhi','zuixiaozhi','zonghe'],
|
||||
|
||||
|
@ -70,6 +70,7 @@ window.config={
|
|||
white:'白色',
|
||||
woodden:'木纹',
|
||||
music:'音乐',
|
||||
simple:'简约',
|
||||
newlayout:'新版',
|
||||
jeans:'牛仔',
|
||||
metro:'极简',
|
||||
|
|
93
game/game.js
93
game/game.js
|
@ -291,6 +291,8 @@
|
|||
diamond:"♦︎",
|
||||
spade:"♠︎",
|
||||
club:"♣︎",
|
||||
ghujia:'护甲',
|
||||
ghujia_bg:'甲',
|
||||
heart2:"红桃",
|
||||
diamond2:"方片",
|
||||
spade2:"黑桃",
|
||||
|
@ -1108,7 +1110,10 @@
|
|||
event.finish();
|
||||
return;
|
||||
}
|
||||
event.dialog=ui.create.dialog(get.translation(player.name)+'展示的牌',cards);
|
||||
if(!event.str){
|
||||
event.str=get.translation(player.name)+'展示的牌';
|
||||
}
|
||||
event.dialog=ui.create.dialog(event.str,cards);
|
||||
var str=get.translation(player)+'展示了'+get.translation(cards[0]);
|
||||
for(var i=1;i<cards.length;i++){
|
||||
str+='、'+get.translation(cards[i]);
|
||||
|
@ -1643,6 +1648,21 @@
|
|||
},
|
||||
damage:function(){
|
||||
"step 0"
|
||||
if(num>0&&player.hujia&&!player.hasSkillTag('nohujia')){
|
||||
if(num>=player.hujia){
|
||||
num-=player.hujia;
|
||||
game.log(get.translation(player)+'的护甲抵挡了'+get.cnNumber(player.hujia)+'点伤害');
|
||||
player.hujia=0;
|
||||
}
|
||||
else{
|
||||
player.hujia-=num;
|
||||
game.log(get.translation(player)+'的护甲抵挡了'+get.cnNumber(num)+'点伤害');
|
||||
num=0;
|
||||
}
|
||||
event.hujia=true;
|
||||
player.update();
|
||||
}
|
||||
event.num=num;
|
||||
if(lib.config.background_audio){
|
||||
game.playAudio('effect','damage'+(num>1?'2':''));
|
||||
}
|
||||
|
@ -1667,25 +1687,30 @@
|
|||
}
|
||||
}
|
||||
player.changeHp(-num,false);
|
||||
if(player._damagetimeout!=source){
|
||||
player.$damage(source);
|
||||
player._damagetimeout=source;
|
||||
setTimeout(function(){
|
||||
delete player._damagetimeout;
|
||||
},500);
|
||||
}
|
||||
if(player._damagepopup){
|
||||
player._damagepopup-=num;
|
||||
player._damagenature=event.nature;
|
||||
if(source){
|
||||
if(player._damagetimeout!=source){
|
||||
player.$damage(source);
|
||||
player._damagetimeout=source;
|
||||
setTimeout(function(){
|
||||
delete player._damagetimeout;
|
||||
},500);
|
||||
}
|
||||
if(player._damagepopup){
|
||||
player._damagepopup-=num;
|
||||
player._damagenature=event.nature;
|
||||
}
|
||||
else{
|
||||
player._damagepopup=-num;
|
||||
player._damagenature=event.nature;
|
||||
setTimeout(function(){
|
||||
player.popup(player._damagepopup,player._damagenature);
|
||||
delete player._damagepopup;
|
||||
delete player._damagenature;
|
||||
},300);
|
||||
}
|
||||
}
|
||||
else{
|
||||
player._damagepopup=-num;
|
||||
player._damagenature=event.nature;
|
||||
setTimeout(function(){
|
||||
player.popup(player._damagepopup,player._damagenature);
|
||||
delete player._damagepopup;
|
||||
delete player._damagenature;
|
||||
},300);
|
||||
player.$damage();
|
||||
}
|
||||
event.trigger('damage');
|
||||
"step 1"
|
||||
|
@ -2031,6 +2056,7 @@
|
|||
this.group=info[1];
|
||||
this.hp=info[2];
|
||||
this.maxHp=info[2];
|
||||
this.hujia=0;
|
||||
this.node.intro.innerHTML=lib.config.intro;
|
||||
if(lib.config.touchscreen){
|
||||
lib.setLongPress(this,ui.click.intro);
|
||||
|
@ -2111,6 +2137,7 @@
|
|||
delete this.group;
|
||||
delete this.hp;
|
||||
delete this.maxHp;
|
||||
delete this.hujia;
|
||||
this.skills.length=0;
|
||||
this.node.identity.style.backgroundColor='';
|
||||
this.node.intro.innerHTML='';
|
||||
|
@ -2146,6 +2173,12 @@
|
|||
if(this.hp>=this.maxHp) this.hp=this.maxHp;
|
||||
var hp=this.node.hp;
|
||||
hp.style.transition='none';
|
||||
if(this.hujia){
|
||||
this.markSkill('ghujia');
|
||||
}
|
||||
else{
|
||||
this.unmarkSkill('ghujia');
|
||||
}
|
||||
if(lib.config.layout=='default'&&this.maxHp>14){
|
||||
hp.innerHTML=this.hp+'/'+this.maxHp;
|
||||
hp.classList.add('text');
|
||||
|
@ -2459,6 +2492,19 @@
|
|||
return cards;
|
||||
}
|
||||
},
|
||||
changeHujia:function(num){
|
||||
if(typeof num!='number'){
|
||||
num=1;
|
||||
}
|
||||
this.hujia+=num;
|
||||
if(num>0){
|
||||
game.log(get.translation(this)+'获得了'+get.cnNumber(num)+'点护甲值');
|
||||
}
|
||||
if(this.hujia<0){
|
||||
this.hujia=0;
|
||||
}
|
||||
this.update();
|
||||
},
|
||||
setIdentity:function(identity){
|
||||
if(!identity) identity=this.identity;
|
||||
this.node.identity.firstChild.innerHTML=get.translation(identity);
|
||||
|
@ -2985,9 +3031,10 @@
|
|||
next.player=this;
|
||||
next.content=lib.element.playerproto.showHandcards;
|
||||
},
|
||||
showCards:function(cards){
|
||||
showCards:function(cards,str){
|
||||
var next=game.createEvent('showCards');
|
||||
next.player=this;
|
||||
next.str=str;
|
||||
if(get.itemtype(cards)=='card') next.cards=[cards];
|
||||
else if(get.itemtype(cards)=='cards') next.cards=cards;
|
||||
else _status.event.next.remove(next);
|
||||
|
@ -4871,6 +4918,13 @@
|
|||
name:'混乱'
|
||||
}
|
||||
},
|
||||
ghujia:{
|
||||
intro:{
|
||||
content:function(content,player){
|
||||
return '已有'+get.cnNumber(player.hujia)+'点护甲值';
|
||||
}
|
||||
}
|
||||
},
|
||||
_recoverCheck:{
|
||||
trigger:{player:'recoverBefore'},
|
||||
forced:true,
|
||||
|
@ -5823,6 +5877,7 @@
|
|||
if(enable){
|
||||
if(info.filter&&info.filter(event,player)==false) enable=false;
|
||||
if(info.viewAs&&event.filterCard&&!event.filterCard(info.viewAs,player)) enable=false;
|
||||
if(info.viewAs&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;
|
||||
if(event.aiexclude.contains(skills2[i])) enable=false;
|
||||
if(info.usable&&get.skillCount(skills2[i])>=info.usable) enable=false;
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 66 KiB |
|
@ -465,6 +465,7 @@ div:hover>.intro{opacity: 1;}
|
|||
}
|
||||
.dialog.scroll1>.bar.top{opacity:1}
|
||||
.dialog.scroll2>.bar.bottom{opacity:1}
|
||||
.dialog.slim{top:300px;bottom:auto;min-height: none}
|
||||
/*.dialog.scroll1{box-shadow:0 -10px 10px -9px rgba(0,0,0,0.1),0 -10px 0 -9px rgba(0,0,0,0.05);}
|
||||
.dialog.scroll2{box-shadow:0 10px 10px -9px rgba(0,0,0,0.1),0 10px 0 -9px rgba(0,0,0,0.05)}
|
||||
.dialog.scroll1.scroll2{box-shadow:0 -10px 10px -9px rgba(0,0,0,0.1),0 -10px 0 -9px rgba(0,0,0,0.05),
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
}
|
||||
.player.fullskin2 .avatar,
|
||||
.player.fullskin2 .avatar2{
|
||||
width:64px;
|
||||
width:63px;
|
||||
background-position:50%;
|
||||
}
|
||||
.player.fullskin2 .avatar{
|
||||
|
@ -439,7 +439,8 @@
|
|||
}
|
||||
.popup{z-index:6}
|
||||
.dialog.scroll1,
|
||||
.dialog.scroll2{
|
||||
.dialog.scroll2,
|
||||
.dialog.withbg{
|
||||
background: rgba(0,0,0,0.2);
|
||||
box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px;
|
||||
border-radius:8px;
|
||||
|
|
|
@ -1341,7 +1341,7 @@ mode.chess={
|
|||
},
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseToMove(1,'是否发动【翩仪】?');
|
||||
player.chooseToMove(2,'是否发动【翩仪】?');
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('pianyi');
|
||||
|
@ -1763,7 +1763,7 @@ mode.chess={
|
|||
// chess_lusu:['male','wu',3,['']],
|
||||
// chess_luxun:['male','wu',3,['']],
|
||||
// chess_ganning:['male','wu',3,['']],
|
||||
chess_taishici:['male','wu',4,['guanchuan','pojun']],
|
||||
chess_taishici:['male','wu',4,['gongji','guanchuan','pojun']],
|
||||
//
|
||||
// chess_lvbu:['male','qun',3,['']],
|
||||
chess_sunshangxiang:['female','wu',3,['lingdong','lianshe','gongji']],
|
||||
|
|
Binary file not shown.
|
@ -22,7 +22,7 @@ html{
|
|||
.card{
|
||||
color:white;
|
||||
}
|
||||
.card.fullskin,#arena>.card:not(*:empty){
|
||||
.card:not(*:empty){
|
||||
color:rgb(77, 60, 51);
|
||||
text-shadow:none;
|
||||
background: url('wood3.png');
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
After Width: | Height: | Size: 250 B |
|
@ -0,0 +1,42 @@
|
|||
html{
|
||||
color: white;
|
||||
text-shadow: black 0 0 2px;
|
||||
background: url('../../image/background/huangtian_bg.jpg');
|
||||
}
|
||||
#system>div>div,#mebg,.control,.player,.card,.avatar,.avatar2,.button,#window>.dialog.popped,
|
||||
.player.unseen .equips:not(*:empty){
|
||||
box-shadow: rgba(0, 0, 0, 0.4) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px;
|
||||
background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4));
|
||||
border-radius: 8px;
|
||||
}
|
||||
#window>.dialog.popped{
|
||||
border-radius: 6px;
|
||||
}
|
||||
.control,#system>div>div,.judges>div,.marks>div,
|
||||
.player.unseen .equips:not(*:empty){
|
||||
border-radius:4px;
|
||||
}
|
||||
.card{
|
||||
color:white;
|
||||
}
|
||||
.card:not(*:empty){
|
||||
color:rgb(77, 60, 51);
|
||||
text-shadow:none;
|
||||
background: url('card.png');
|
||||
background-size:cover;
|
||||
}
|
||||
#me>div>.card,#arena>.card:not(*:empty){
|
||||
box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px;
|
||||
}
|
||||
.fire{
|
||||
color: rgb(255,119,63);
|
||||
}
|
||||
.thunder{
|
||||
color: rgb(117,186,255);
|
||||
}
|
||||
.poison{
|
||||
color: rgb(104,221,127);
|
||||
}
|
||||
.brown{
|
||||
color: rgb(195,161,223);
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
Loading…
Reference in New Issue