This commit is contained in:
parent
0d78aed514
commit
53460780c0
251
card/gwent.js
251
card/gwent.js
|
@ -638,6 +638,249 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
gw_ganhan:{
|
||||||
|
fullborder:'gold',
|
||||||
|
type:'spell',
|
||||||
|
subtype:'spell_gold',
|
||||||
|
vanish:true,
|
||||||
|
enable:true,
|
||||||
|
notarget:true,
|
||||||
|
contentBefore:function(){
|
||||||
|
player.line(game.filterPlayer());
|
||||||
|
player.$skill('干旱','legend','metal');
|
||||||
|
game.delay(2);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.num=0;
|
||||||
|
event.targets=game.filterPlayer().sortBySeat();
|
||||||
|
'step 1'
|
||||||
|
if(event.num<targets.length){
|
||||||
|
ui.clear();
|
||||||
|
var target=targets[event.num];
|
||||||
|
target.loseMaxHp(true);
|
||||||
|
event.num++;
|
||||||
|
event.redo();
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
ui.clear();
|
||||||
|
},
|
||||||
|
contentAfter:function(){
|
||||||
|
var evt=_status.event.getParent('phaseUse');
|
||||||
|
if(evt&&evt.name=='phaseUse'){
|
||||||
|
evt.skipped=true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
value:7,
|
||||||
|
useful:[5,1],
|
||||||
|
result:{
|
||||||
|
player:function(player,target){
|
||||||
|
if(player.hasUnknown()) return 0;
|
||||||
|
return game.countPlayer(function(current){
|
||||||
|
var att=-get.sgn(get.attitude(player,current));
|
||||||
|
if(current.isHealthy()){
|
||||||
|
switch(current.hp){
|
||||||
|
case 1:return att*3;
|
||||||
|
case 2:return att*2;
|
||||||
|
case 3:return att*1.5;
|
||||||
|
case 4:return att;
|
||||||
|
default:return att*0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(current.maxHp-current.hp==1){
|
||||||
|
switch(current.hp){
|
||||||
|
case 1:return att*0.5;
|
||||||
|
case 2:return att*0.3;
|
||||||
|
case 3:return att*0.2;
|
||||||
|
default:return att*0.15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return att*0.1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
order:0.5,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gw_huangjiashenpan:{
|
||||||
|
fullborder:'gold',
|
||||||
|
type:'spell',
|
||||||
|
subtype:'spell_gold',
|
||||||
|
vanish:true,
|
||||||
|
enable:true,
|
||||||
|
notarget:true,
|
||||||
|
contentBefore:function(){
|
||||||
|
player.$skill('皇家审判','legend','metal');
|
||||||
|
game.delay(2);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var list=get.libCard(function(info){
|
||||||
|
return info.subtype=='spell_gold';
|
||||||
|
});
|
||||||
|
list.remove('gw_huangjiashenpan');
|
||||||
|
if(list.length){
|
||||||
|
player.chooseVCardButton(list,true,'notype').ai=function(){
|
||||||
|
return Math.random();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.gain(game.createCard(result.links[0][2]),'draw');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
contentAfter:function(){
|
||||||
|
var evt=_status.event.getParent('phaseUse');
|
||||||
|
if(evt&&evt.name=='phaseUse'){
|
||||||
|
evt.skipped=true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
value:8,
|
||||||
|
useful:[6,1],
|
||||||
|
result:{
|
||||||
|
player:1
|
||||||
|
},
|
||||||
|
order:0.1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gw_tunshi:{
|
||||||
|
fullborder:'gold',
|
||||||
|
type:'spell',
|
||||||
|
subtype:'spell_gold',
|
||||||
|
vanish:true,
|
||||||
|
enable:function(event,player){
|
||||||
|
if(player.maxHp==1) return false;
|
||||||
|
var list=player.getEnemies();
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
if(list[i].getStockSkills().length) return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
notarget:true,
|
||||||
|
contentBefore:function(){
|
||||||
|
player.$skill('吞噬','legend','metal');
|
||||||
|
game.delay(2);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
var list=player.getEnemies();
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
if(!list[i].getStockSkills().length){
|
||||||
|
list.splice(i--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(list.length){
|
||||||
|
var target=list.randomGet();
|
||||||
|
target.addExpose(0.1);
|
||||||
|
player.line(target);
|
||||||
|
var skill=target.getStockSkills().randomGet();
|
||||||
|
target.popup(skill);
|
||||||
|
player.addSkill(skill);
|
||||||
|
target.removeSkill(skill);
|
||||||
|
player.loseMaxHp(true);
|
||||||
|
target.gainMaxHp(true);
|
||||||
|
target.recover();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
contentAfter:function(){
|
||||||
|
var evt=_status.event.getParent('phaseUse');
|
||||||
|
if(evt&&evt.name=='phaseUse'){
|
||||||
|
evt.skipped=true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
value:8,
|
||||||
|
useful:[6,1],
|
||||||
|
result:{
|
||||||
|
player:1
|
||||||
|
},
|
||||||
|
order:0.4,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
gw_chongci:{
|
||||||
|
fullborder:'gold',
|
||||||
|
type:'spell',
|
||||||
|
subtype:'spell_gold',
|
||||||
|
vanish:true,
|
||||||
|
enable:function(event,player){
|
||||||
|
if(player.maxHp==1) return false;
|
||||||
|
var list=player.getEnemies();
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
if(list[i].getStockSkills().length) return true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
notarget:true,
|
||||||
|
contentBefore:function(){
|
||||||
|
player.$skill('冲刺','legend','metal');
|
||||||
|
game.delay(2);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.hs=player.getCards('h');
|
||||||
|
event.es=player.getCards('e');
|
||||||
|
player.discard(event.hs.concat(event.es));
|
||||||
|
'step 1'
|
||||||
|
var hs2=[];
|
||||||
|
for(var i=0;i<event.hs.length;i++){
|
||||||
|
var type=get.type(event.hs[i],'trick');
|
||||||
|
var cardname=event.hs[i].name;
|
||||||
|
var list=game.findCards(function(name){
|
||||||
|
if(cardname==name) return;
|
||||||
|
if(get.type({name:name},'trick')==type){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(!list.length){
|
||||||
|
list=[cardname];
|
||||||
|
}
|
||||||
|
hs2.push(game.createCard(list.randomGet()));
|
||||||
|
}
|
||||||
|
if(hs2.length){
|
||||||
|
player.gain(hs2,'draw');
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
var es2=[];
|
||||||
|
for(var i=0;i<event.es.length;i++){
|
||||||
|
var subtype=get.subtype(event.es[i]);
|
||||||
|
var cardname=event.es[i].name;
|
||||||
|
var list=game.findCards(function(name){
|
||||||
|
if(cardname==name) return;
|
||||||
|
if(get.subtype({name:name})==subtype){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(!list.length){
|
||||||
|
list=[cardname];
|
||||||
|
}
|
||||||
|
es2.push(game.createCard(list.randomGet()));
|
||||||
|
}
|
||||||
|
if(es2.length){
|
||||||
|
player.$draw(es2);
|
||||||
|
for(var i=0;i<es2.length;i++){
|
||||||
|
player.equip(es2[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'step 3'
|
||||||
|
player.addTempSkill('qianxing',{player:'phaseBegin'});
|
||||||
|
},
|
||||||
|
contentAfter:function(){
|
||||||
|
var evt=_status.event.getParent('phaseUse');
|
||||||
|
if(evt&&evt.name=='phaseUse'){
|
||||||
|
evt.skipped=true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
value:8,
|
||||||
|
useful:[6,1],
|
||||||
|
result:{
|
||||||
|
player:1
|
||||||
|
},
|
||||||
|
order:0.2,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
gw_youer:{
|
gw_youer:{
|
||||||
fullborder:'silver',
|
fullborder:'silver',
|
||||||
type:'spell',
|
type:'spell',
|
||||||
|
@ -1581,14 +1824,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
||||||
spell_silver:'银卡法术',
|
spell_silver:'银卡法术',
|
||||||
spell_bronze:'铜卡法术',
|
spell_bronze:'铜卡法术',
|
||||||
|
|
||||||
|
gw_nuhaifengbao:'怒海风暴',
|
||||||
|
gw_nuhaifengbao_info:'',
|
||||||
gw_ganhan:'干旱',
|
gw_ganhan:'干旱',
|
||||||
gw_ganhan_info:'所有角色减少一点体力上限,然后结束出牌阶段',
|
gw_ganhan_info:'所有角色减少一点体力上限(不触发技能),然后结束出牌阶段',
|
||||||
gw_huangjiashenpan:'皇家审判',
|
gw_huangjiashenpan:'皇家审判',
|
||||||
gw_huangjiashenpan_info:'获得任意一张金卡法术(皇家审判除外),然后结束出牌阶段',
|
gw_huangjiashenpan_info:'获得任意一张金卡法术(皇家审判除外),然后结束出牌阶段',
|
||||||
gw_chongci:'冲刺',
|
gw_chongci:'冲刺',
|
||||||
gw_chongci_info:'弃置所有牌,每弃置一张牌,便随机获得一张类别相同且价值更高的牌(若为装备牌则立即装备之),获得潜行直到下一回合开始,然后结束出牌阶段',
|
gw_chongci_info:'弃置所有牌,每弃置一张手牌,便随机获得一张类别相同的牌;每弃置一张装备区内的牌,随机装备一件类别相同的装备;获得潜行直到下一回合开始,然后结束出牌阶段',
|
||||||
gw_tunshi:'吞噬',
|
gw_tunshi:'吞噬',
|
||||||
gw_tunshi_info:'随机移除一名敌方角色的一个随机技能,并获得此技能,被移除技能的角色增加一点体力和体力上限,然后结束出牌阶段',
|
gw_tunshi_info:'随机移除一名敌方角色的一个随机技能,你获得此技能并减少一点体力限,被移除技能的角色增加一点体力和体力上限,然后结束出牌阶段',
|
||||||
gw_dieyi:'蝶翼',
|
gw_dieyi:'蝶翼',
|
||||||
gw_dieyi_equip1:'蝶翼·器',
|
gw_dieyi_equip1:'蝶翼·器',
|
||||||
gw_dieyi_equip2:'蝶翼·衣',
|
gw_dieyi_equip2:'蝶翼·衣',
|
||||||
|
|
17
game/game.js
17
game/game.js
|
@ -13602,6 +13602,23 @@
|
||||||
if(num==undefined) return 0;
|
if(num==undefined) return 0;
|
||||||
return num;
|
return num;
|
||||||
},
|
},
|
||||||
|
getStockSkills:function(unowned){
|
||||||
|
var list=[];
|
||||||
|
if(lib.character[this.name]&&!this.isUnseen(0)){
|
||||||
|
list.addArray(lib.character[this.name][3]);
|
||||||
|
}
|
||||||
|
if(lib.character[this.name2]&&!this.isUnseen(1)){
|
||||||
|
list.addArray(lib.character[this.name2][3]);
|
||||||
|
}
|
||||||
|
if(!unowned){
|
||||||
|
for(var i=0;i<list.length;i++){
|
||||||
|
if(!this.hasSkill(list[i])){
|
||||||
|
list.splice(i--,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
},
|
||||||
getCards:function(arg1,arg2){
|
getCards:function(arg1,arg2){
|
||||||
if(typeof arg1!='string'){
|
if(typeof arg1!='string'){
|
||||||
arg1='h';
|
arg1='h';
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 52 KiB |
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
Binary file not shown.
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
Loading…
Reference in New Issue