pref: format @/card.
This commit is contained in:
parent
8ec1ff5f91
commit
5427da93cb
1837
card/extra.js
1837
card/extra.js
File diff suppressed because it is too large
Load Diff
3210
card/gujian.js
3210
card/gujian.js
File diff suppressed because it is too large
Load Diff
3345
card/guozhan.js
3345
card/guozhan.js
File diff suppressed because it is too large
Load Diff
3574
card/gwent.js
3574
card/gwent.js
File diff suppressed because it is too large
Load Diff
1497
card/hearth.js
1497
card/hearth.js
File diff suppressed because it is too large
Load Diff
|
@ -1,290 +1,316 @@
|
|||
import { lib, game, ui, get, ai, _status } from '../noname.js';
|
||||
game.import('card', function () {
|
||||
return {
|
||||
name:'huanlekapai',
|
||||
connect:true,
|
||||
card:{
|
||||
"monkey":{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip5",
|
||||
skills:["monkey"],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:8,
|
||||
import { lib, game, ui, get, ai, _status } from "../noname.js";
|
||||
game.import("card", function () {
|
||||
return {
|
||||
name: "huanlekapai",
|
||||
connect: true,
|
||||
card: {
|
||||
monkey: {
|
||||
audio: true,
|
||||
fullskin: true,
|
||||
type: "equip",
|
||||
subtype: "equip5",
|
||||
skills: ["monkey"],
|
||||
ai: {
|
||||
basic: {
|
||||
equipValue: 8,
|
||||
},
|
||||
},
|
||||
},
|
||||
"mianju":{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip2",
|
||||
skills:["mianju"],
|
||||
ai:{
|
||||
order:9.5,
|
||||
basic:{
|
||||
equipValue:function (card,player){
|
||||
if(!player.isTurnedOver()) return 6;
|
||||
if(player.isTurnedOver()) return -10;
|
||||
mianju: {
|
||||
audio: true,
|
||||
fullskin: true,
|
||||
type: "equip",
|
||||
subtype: "equip2",
|
||||
skills: ["mianju"],
|
||||
ai: {
|
||||
order: 9.5,
|
||||
basic: {
|
||||
equipValue: function (card, player) {
|
||||
if (!player.isTurnedOver()) return 6;
|
||||
if (player.isTurnedOver()) return -10;
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"shoulijian":{
|
||||
audio:true,
|
||||
type:"basic",
|
||||
enable:true,
|
||||
fullskin:true,
|
||||
outrange:{
|
||||
global:2,
|
||||
shoulijian: {
|
||||
audio: true,
|
||||
type: "basic",
|
||||
enable: true,
|
||||
fullskin: true,
|
||||
outrange: {
|
||||
global: 2,
|
||||
},
|
||||
filterTarget:lib.filter.notMe,
|
||||
content:function (){
|
||||
"step 0"
|
||||
if(!target.countCards('he',{type:'equip'})){
|
||||
filterTarget: lib.filter.notMe,
|
||||
content: function () {
|
||||
"step 0";
|
||||
if (!target.countCards("he", { type: "equip" })) {
|
||||
target.damage();
|
||||
event.finish();
|
||||
} else {
|
||||
target.chooseToDiscard("he", { type: "equip" }, "弃置一张装备牌或受到1点伤害").ai =
|
||||
function (card) {
|
||||
var player = _status.event.player;
|
||||
var source = _status.event.getParent().player;
|
||||
if (get.damageEffect(player, source, player) > 0) return -1;
|
||||
return 7 - get.value(card);
|
||||
};
|
||||
}
|
||||
else{
|
||||
target.chooseToDiscard('he',{type:'equip'},'弃置一张装备牌或受到1点伤害').ai=function(card){
|
||||
var player=_status.event.player;
|
||||
var source=_status.event.getParent().player;
|
||||
if(get.damageEffect(player,source,player)>0) return -1;
|
||||
return 7-get.value(card);
|
||||
};
|
||||
}
|
||||
"step 1"
|
||||
if(!result.bool){
|
||||
"step 1";
|
||||
if (!result.bool) {
|
||||
target.damage();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
order:9,
|
||||
value:6,
|
||||
useful:2,
|
||||
ai: {
|
||||
basic: {
|
||||
order: 9,
|
||||
value: 6,
|
||||
useful: 2,
|
||||
},
|
||||
result:{
|
||||
target:-2,
|
||||
result: {
|
||||
target: -2,
|
||||
},
|
||||
tag:{
|
||||
discard:1,
|
||||
damage:1,
|
||||
tag: {
|
||||
discard: 1,
|
||||
damage: 1,
|
||||
},
|
||||
},
|
||||
selectTarget:1,
|
||||
selectTarget: 1,
|
||||
},
|
||||
"kuwu":{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip1",
|
||||
skills:["kuwu"],
|
||||
nomod:true,
|
||||
nopower:true,
|
||||
unique:true,
|
||||
distance:{
|
||||
attackFrom:-1,
|
||||
kuwu: {
|
||||
audio: true,
|
||||
fullskin: true,
|
||||
type: "equip",
|
||||
subtype: "equip1",
|
||||
skills: ["kuwu"],
|
||||
nomod: true,
|
||||
nopower: true,
|
||||
unique: true,
|
||||
distance: {
|
||||
attackFrom: -1,
|
||||
},
|
||||
ai:{
|
||||
equipValue:6,
|
||||
ai: {
|
||||
equipValue: 6,
|
||||
},
|
||||
},
|
||||
"xuelunyang":{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip5",
|
||||
skills:["xuelunyang"],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:8,
|
||||
xuelunyang: {
|
||||
audio: true,
|
||||
fullskin: true,
|
||||
type: "equip",
|
||||
subtype: "equip5",
|
||||
skills: ["xuelunyang"],
|
||||
ai: {
|
||||
basic: {
|
||||
equipValue: 8,
|
||||
},
|
||||
},
|
||||
},
|
||||
"jiuwei":{
|
||||
audio:true,
|
||||
fullskin:true,
|
||||
type:"equip",
|
||||
subtype:"equip5",
|
||||
skills:["jiuwei"],
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:8,
|
||||
jiuwei: {
|
||||
audio: true,
|
||||
fullskin: true,
|
||||
type: "equip",
|
||||
subtype: "equip5",
|
||||
skills: ["jiuwei"],
|
||||
ai: {
|
||||
basic: {
|
||||
equipValue: 8,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
"monkey":{
|
||||
trigger:{
|
||||
global:"useCardToBegin",
|
||||
skill: {
|
||||
monkey: {
|
||||
trigger: {
|
||||
global: "useCardToBegin",
|
||||
},
|
||||
audio:true,
|
||||
filter:function (event,player){
|
||||
var card=player.getEquip(5);
|
||||
if(card){
|
||||
var name=card.name;
|
||||
if(name&&name.indexOf('monkey')!=-1&&event.name=='tao'&&event.player!=player&&event.cards.filterInD().length>0) return true;
|
||||
audio: true,
|
||||
filter: function (event, player) {
|
||||
var card = player.getEquip(5);
|
||||
if (card) {
|
||||
var name = card.name;
|
||||
if (
|
||||
name &&
|
||||
name.indexOf("monkey") != -1 &&
|
||||
event.name == "tao" &&
|
||||
event.player != player &&
|
||||
event.cards.filterInD().length > 0
|
||||
)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
check:function (event,player){
|
||||
return get.attitude(player,event.player)<=0;
|
||||
check: function (event, player) {
|
||||
return get.attitude(player, event.player) <= 0;
|
||||
},
|
||||
content:function (){
|
||||
"step 0"
|
||||
player.$fullscreenpop('猴子偷桃','fire');
|
||||
content: function () {
|
||||
"step 0";
|
||||
player.$fullscreenpop("猴子偷桃", "fire");
|
||||
trigger.untrigger();
|
||||
trigger.finish();
|
||||
"step 1"
|
||||
"step 1";
|
||||
player.discard(player.getEquip(5));
|
||||
"step 2"
|
||||
player.gain(trigger.cards.filterInD(),'gain2','log');
|
||||
"step 2";
|
||||
player.gain(trigger.cards.filterInD(), "gain2", "log");
|
||||
},
|
||||
},
|
||||
"mianju":{
|
||||
audio:true,
|
||||
trigger:{
|
||||
player:"turnOverBefore",
|
||||
mianju: {
|
||||
audio: true,
|
||||
trigger: {
|
||||
player: "turnOverBefore",
|
||||
},
|
||||
forced:true,
|
||||
equipSkill:true,
|
||||
content:function (){
|
||||
forced: true,
|
||||
equipSkill: true,
|
||||
content: function () {
|
||||
trigger.cancel();
|
||||
},
|
||||
ai:{
|
||||
noturnOver:true,
|
||||
effect:{
|
||||
target:function (card,player,target,current){
|
||||
if(get.tag(card,'turnOver')) return [0,0];
|
||||
ai: {
|
||||
noturnOver: true,
|
||||
effect: {
|
||||
target: function (card, player, target, current) {
|
||||
if (get.tag(card, "turnOver")) return [0, 0];
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"kuwu":{
|
||||
audio:true,
|
||||
trigger:{
|
||||
source:"damageSource",
|
||||
kuwu: {
|
||||
audio: true,
|
||||
trigger: {
|
||||
source: "damageSource",
|
||||
},
|
||||
forced:true,
|
||||
equipSkill:true,
|
||||
filter:function (event,player){
|
||||
if(event._notrigger.includes(event.player)) return false;
|
||||
return event.card&&event.card.name=='sha'&&event.notLink()&&event.player.countCards('he')>0;
|
||||
forced: true,
|
||||
equipSkill: true,
|
||||
filter: function (event, player) {
|
||||
if (event._notrigger.includes(event.player)) return false;
|
||||
return (
|
||||
event.card &&
|
||||
event.card.name == "sha" &&
|
||||
event.notLink() &&
|
||||
event.player.countCards("he") > 0
|
||||
);
|
||||
},
|
||||
content:function (){
|
||||
trigger.player.chooseToDiscard(true,'he');
|
||||
content: function () {
|
||||
trigger.player.chooseToDiscard(true, "he");
|
||||
},
|
||||
},
|
||||
"xuelunyang":{
|
||||
audio:true,
|
||||
trigger:{
|
||||
player:"phaseBegin",
|
||||
xuelunyang: {
|
||||
audio: true,
|
||||
trigger: {
|
||||
player: "phaseBegin",
|
||||
},
|
||||
equipSkill:true,
|
||||
direct:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.chooseTarget(get.prompt2('xuelunyang'),function(card,player,target){
|
||||
var names=[];
|
||||
if(target.name&&!target.isUnseen(0)) names.add(target.name);
|
||||
if(target.name1&&!target.isUnseen(0)) names.add(target.name1);
|
||||
if(target.name2&&!target.isUnseen(1)) names.add(target.name2);
|
||||
var pss=player.getSkills();
|
||||
for(var i=0;i<names.length;i++){
|
||||
var info=lib.character[names[i]];
|
||||
if(info){
|
||||
var skills=info[3];
|
||||
for(var j=0;j<skills.length;j++){
|
||||
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
|
||||
!lib.skill[skills[j]].unique&&!pss.includes(skills[j])){
|
||||
return true;
|
||||
equipSkill: true,
|
||||
direct: true,
|
||||
content: function () {
|
||||
"step 0";
|
||||
player
|
||||
.chooseTarget(get.prompt2("xuelunyang"), function (card, player, target) {
|
||||
var names = [];
|
||||
if (target.name && !target.isUnseen(0)) names.add(target.name);
|
||||
if (target.name1 && !target.isUnseen(0)) names.add(target.name1);
|
||||
if (target.name2 && !target.isUnseen(1)) names.add(target.name2);
|
||||
var pss = player.getSkills();
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
var info = lib.character[names[i]];
|
||||
if (info) {
|
||||
var skills = info[3];
|
||||
for (var j = 0; j < skills.length; j++) {
|
||||
if (
|
||||
lib.translate[skills[j] + "_info"] &&
|
||||
lib.skill[skills[j]] &&
|
||||
!lib.skill[skills[j]].unique &&
|
||||
!pss.includes(skills[j])
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}).set('ai',function(target){
|
||||
return Math.random();
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
event.target=result.targets[0];
|
||||
player.logSkill('xuelunyang',event.target);
|
||||
}
|
||||
else{
|
||||
})
|
||||
.set("ai", function (target) {
|
||||
return Math.random();
|
||||
});
|
||||
"step 1";
|
||||
if (result.bool) {
|
||||
event.target = result.targets[0];
|
||||
player.logSkill("xuelunyang", event.target);
|
||||
} else {
|
||||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
var names=[];
|
||||
var list=[];
|
||||
if(target.name&&!target.isUnseen(0)) names.add(target.name);
|
||||
if(target.name1&&!target.isUnseen(0)) names.add(target.name1);
|
||||
if(target.name2&&!target.isUnseen(1)) names.add(target.name2);
|
||||
var pss=player.getSkills();
|
||||
for(var i=0;i<names.length;i++){
|
||||
var info=lib.character[names[i]];
|
||||
if(info){
|
||||
var skills=info[3];
|
||||
for(var j=0;j<skills.length;j++){
|
||||
if(lib.translate[skills[j]+'_info']&&lib.skill[skills[j]]&&
|
||||
!lib.skill[skills[j]].unique&&
|
||||
!pss.includes(skills[j])){
|
||||
"step 2";
|
||||
var names = [];
|
||||
var list = [];
|
||||
if (target.name && !target.isUnseen(0)) names.add(target.name);
|
||||
if (target.name1 && !target.isUnseen(0)) names.add(target.name1);
|
||||
if (target.name2 && !target.isUnseen(1)) names.add(target.name2);
|
||||
var pss = player.getSkills();
|
||||
for (var i = 0; i < names.length; i++) {
|
||||
var info = lib.character[names[i]];
|
||||
if (info) {
|
||||
var skills = info[3];
|
||||
for (var j = 0; j < skills.length; j++) {
|
||||
if (
|
||||
lib.translate[skills[j] + "_info"] &&
|
||||
lib.skill[skills[j]] &&
|
||||
!lib.skill[skills[j]].unique &&
|
||||
!pss.includes(skills[j])
|
||||
) {
|
||||
list.push(skills[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
player.chooseControl(list).set('prompt','选择获得一个技能').set('choice',get.max(list,get.skillRank,'item')).set('ai',function(){return _status.event.choice})
|
||||
'step 3'
|
||||
player
|
||||
.chooseControl(list)
|
||||
.set("prompt", "选择获得一个技能")
|
||||
.set("choice", get.max(list, get.skillRank, "item"))
|
||||
.set("ai", function () {
|
||||
return _status.event.choice;
|
||||
});
|
||||
"step 3";
|
||||
player.addTempSkill(result.control);
|
||||
player.popup(result.control);
|
||||
game.log(player,'获得了','#g【'+get.translation(result.control)+'】');
|
||||
game.log(player, "获得了", "#g【" + get.translation(result.control) + "】");
|
||||
},
|
||||
},
|
||||
"jiuwei":{
|
||||
trigger:{
|
||||
player:"phaseEnd",
|
||||
jiuwei: {
|
||||
trigger: {
|
||||
player: "phaseEnd",
|
||||
},
|
||||
audio:true,
|
||||
frequent:true,
|
||||
equipSkill:true,
|
||||
content:function (){
|
||||
if(player.isDamaged()){
|
||||
audio: true,
|
||||
frequent: true,
|
||||
equipSkill: true,
|
||||
content: function () {
|
||||
if (player.isDamaged()) {
|
||||
player.recover();
|
||||
}
|
||||
else{
|
||||
} else {
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
translate:{
|
||||
"monkey":"猴子",
|
||||
"monkey_info":"猴子偷桃:当场上有其他角色使用【桃】时,你可以弃掉【猴子】,阻止【桃】的结算并将其收为手牌。",
|
||||
"mianju":"漩涡面具",
|
||||
"mianju_info":"<font color=#f00>锁定技</font> 你的武将牌不能被翻面。",
|
||||
"shoulijian":"手里剑",
|
||||
"shoulijian_info":"出牌阶段,对一名距离1以外的角色使用,令其弃置一张装备牌或受到1点伤害。",
|
||||
"kuwu":"苦无",
|
||||
"kuwu_info":"<font color=#f00>锁定技</font> 每当你使用【杀】造成一次伤害,受伤角色须弃置一张牌。",
|
||||
"xuelunyang":"写轮眼",
|
||||
"xuelunyang_info":"回合开始阶段,你可以选择一名角色,然后获得其一项技能,直到回合结束。",
|
||||
"jiuwei":"九尾",
|
||||
"jiuwei_info":"(收集查克拉)回合结束时,若你已受伤,你可回复1点体力,否则摸一张牌。",
|
||||
translate: {
|
||||
monkey: "猴子",
|
||||
monkey_info:
|
||||
"猴子偷桃:当场上有其他角色使用【桃】时,你可以弃掉【猴子】,阻止【桃】的结算并将其收为手牌。",
|
||||
mianju: "漩涡面具",
|
||||
mianju_info: "<font color=#f00>锁定技</font> 你的武将牌不能被翻面。",
|
||||
shoulijian: "手里剑",
|
||||
shoulijian_info: "出牌阶段,对一名距离1以外的角色使用,令其弃置一张装备牌或受到1点伤害。",
|
||||
kuwu: "苦无",
|
||||
kuwu_info: "<font color=#f00>锁定技</font> 每当你使用【杀】造成一次伤害,受伤角色须弃置一张牌。",
|
||||
xuelunyang: "写轮眼",
|
||||
xuelunyang_info: "回合开始阶段,你可以选择一名角色,然后获得其一项技能,直到回合结束。",
|
||||
jiuwei: "九尾",
|
||||
jiuwei_info: "(收集查克拉)回合结束时,若你已受伤,你可回复1点体力,否则摸一张牌。",
|
||||
},
|
||||
list:[
|
||||
["diamond","5","monkey"],
|
||||
["heart","9","jiuwei"],
|
||||
["heart","2","xuelunyang"],
|
||||
["spade","6","kuwu"],
|
||||
["diamond","4","shoulijian"],
|
||||
["spade","4","shoulijian"],
|
||||
["club","3","mianju"],
|
||||
list: [
|
||||
["diamond", "5", "monkey"],
|
||||
["heart", "9", "jiuwei"],
|
||||
["heart", "2", "xuelunyang"],
|
||||
["spade", "6", "kuwu"],
|
||||
["diamond", "4", "shoulijian"],
|
||||
["spade", "4", "shoulijian"],
|
||||
["club", "3", "mianju"],
|
||||
],
|
||||
}
|
||||
};
|
||||
});
|
||||
|
|
1494
card/mtg.js
1494
card/mtg.js
File diff suppressed because it is too large
Load Diff
1107
card/sp.js
1107
card/sp.js
File diff suppressed because it is too large
Load Diff
6497
card/standard.js
6497
card/standard.js
File diff suppressed because it is too large
Load Diff
8841
card/swd.js
8841
card/swd.js
File diff suppressed because it is too large
Load Diff
1613
card/yingbian.js
1613
card/yingbian.js
File diff suppressed because it is too large
Load Diff
1355
card/yongjian.js
1355
card/yongjian.js
File diff suppressed because it is too large
Load Diff
1522
card/yunchou.js
1522
card/yunchou.js
File diff suppressed because it is too large
Load Diff
594
card/zhenfa.js
594
card/zhenfa.js
|
@ -1,396 +1,412 @@
|
|||
import { lib, game, ui, get, ai, _status } from '../noname.js';
|
||||
game.import('card', function () {
|
||||
import { lib, game, ui, get, ai, _status } from "../noname.js";
|
||||
game.import("card", function () {
|
||||
return {
|
||||
name:'zhenfa',
|
||||
card:{
|
||||
pozhenjue:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:true,
|
||||
notarget:true,
|
||||
content:function(){
|
||||
var targets=game.filterPlayer();
|
||||
var n=targets.length;
|
||||
while(n--){
|
||||
game.swapSeat(targets.randomGet(),targets.randomGet());
|
||||
name: "zhenfa",
|
||||
card: {
|
||||
pozhenjue: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: true,
|
||||
notarget: true,
|
||||
content: function () {
|
||||
var targets = game.filterPlayer();
|
||||
var n = targets.length;
|
||||
while (n--) {
|
||||
game.swapSeat(targets.randomGet(), targets.randomGet());
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:8,
|
||||
result:{
|
||||
player:1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 8,
|
||||
result: {
|
||||
player: 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
changshezhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(card,player){
|
||||
if(player.inline()) return true;
|
||||
if(player.identity=='unknown'||player.identity=='ye') return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.isFriendOf(player);
|
||||
changshezhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function (card, player) {
|
||||
if (player.inline()) return true;
|
||||
if (player.identity == "unknown" || player.identity == "ye") return false;
|
||||
return game.hasPlayer(function (current) {
|
||||
return current != player && current.isFriendOf(player);
|
||||
});
|
||||
},
|
||||
notarget:true,
|
||||
content:function(){
|
||||
if(player.inline()){
|
||||
var targets=game.filterPlayer(function(current){
|
||||
notarget: true,
|
||||
content: function () {
|
||||
if (player.inline()) {
|
||||
var targets = game.filterPlayer(function (current) {
|
||||
return player.inline(current);
|
||||
});
|
||||
player.line(targets);
|
||||
game.asyncDraw(targets);
|
||||
}
|
||||
else if(player.getNext()){
|
||||
var list=game.filterPlayer(function(current){
|
||||
return current!=player&¤t.isFriendOf(player);
|
||||
} else if (player.getNext()) {
|
||||
var list = game.filterPlayer(function (current) {
|
||||
return current != player && current.isFriendOf(player);
|
||||
});
|
||||
if(list.length){
|
||||
list.sort(function(a,b){
|
||||
return get.distance(player,a,'absolute')-get.distance(player,b,'absolute');
|
||||
if (list.length) {
|
||||
list.sort(function (a, b) {
|
||||
return (
|
||||
get.distance(player, a, "absolute") - get.distance(player, b, "absolute")
|
||||
);
|
||||
});
|
||||
player.line(list[0]);
|
||||
game.swapSeat(list[0],player.getNext(),true,true);
|
||||
game.swapSeat(list[0], player.getNext(), true, true);
|
||||
}
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:6.5,
|
||||
result:{
|
||||
player:1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 6.5,
|
||||
result: {
|
||||
player: 1,
|
||||
},
|
||||
tag:{
|
||||
draw:1
|
||||
}
|
||||
}
|
||||
tag: {
|
||||
draw: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
tianfuzhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(){
|
||||
return game.hasPlayer(function(current){
|
||||
tianfuzhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function () {
|
||||
return game.hasPlayer(function (current) {
|
||||
return current.isMajor();
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target.isMajor()&&target.countCards('he')>0;
|
||||
filterTarget: function (card, player, target) {
|
||||
return target.isMajor() && target.countCards("he") > 0;
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.chooseToDiscard('he',true).delay=false;
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
target.chooseToDiscard("he", true).delay = false;
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:-1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: -1,
|
||||
},
|
||||
tag:{
|
||||
discard:1
|
||||
}
|
||||
}
|
||||
tag: {
|
||||
discard: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
dizaizhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(){
|
||||
return game.hasPlayer(function(current){
|
||||
dizaizhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function () {
|
||||
return game.hasPlayer(function (current) {
|
||||
return current.isNotMajor();
|
||||
});
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
filterTarget: function (card, player, target) {
|
||||
return target.isNotMajor();
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
target.draw(false);
|
||||
target.$draw();
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: 1,
|
||||
},
|
||||
tag:{
|
||||
draw:1
|
||||
}
|
||||
}
|
||||
tag: {
|
||||
draw: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
fengyangzhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
fengyangzhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: true,
|
||||
filterTarget: function (card, player, target) {
|
||||
return target.sieged();
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.addTempSkill('feiying',{player:'damageAfter'});
|
||||
target.popup('feiying');
|
||||
game.log(target,'获得了技能','【飞影】');
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
target.addTempSkill("feiying", { player: "damageAfter" });
|
||||
target.popup("feiying");
|
||||
game.log(target, "获得了技能", "【飞影】");
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:2,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: 2,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
yunchuizhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
yunchuizhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: true,
|
||||
filterTarget: function (card, player, target) {
|
||||
return target.siege();
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
target.addTempSkill('wushuang',{source:'damageAfter'});
|
||||
target.popup('wushuang');
|
||||
game.log(target,'获得了技能','【无双】');
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
target.addTempSkill("wushuang", { source: "damageAfter" });
|
||||
target.popup("wushuang");
|
||||
game.log(target, "获得了技能", "【无双】");
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:2,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: 2,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
qixingzhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(card,player){
|
||||
return player.siege()||player.sieged();
|
||||
qixingzhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function (card, player) {
|
||||
return player.siege() || player.sieged();
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target==player;
|
||||
filterTarget: function (card, player, target) {
|
||||
return target == player;
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.targets=game.filterPlayer(function(current){
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
"step 0";
|
||||
event.targets = game.filterPlayer(function (current) {
|
||||
return current.siege(player);
|
||||
});
|
||||
'step 1'
|
||||
if(event.targets.length){
|
||||
var current=event.targets.shift();
|
||||
player.line(current,'green');
|
||||
player.discardPlayerCard(current,true);
|
||||
"step 1";
|
||||
if (event.targets.length) {
|
||||
var current = event.targets.shift();
|
||||
player.line(current, "green");
|
||||
player.discardPlayerCard(current, true);
|
||||
event.redo();
|
||||
}
|
||||
'step 2'
|
||||
var card={name:'sha',isCard:true};
|
||||
var list=game.filterPlayer(function(current){
|
||||
return current.siege(player)&&player.canUse(card,current);
|
||||
"step 2";
|
||||
var card = { name: "sha", isCard: true };
|
||||
var list = game.filterPlayer(function (current) {
|
||||
return current.siege(player) && player.canUse(card, current);
|
||||
});
|
||||
if(list.length){
|
||||
player.useCard(card,list,false);
|
||||
if (list.length) {
|
||||
player.useCard(card, list, false);
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
shepanzhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(card,player){
|
||||
if(player.identity=='unknown'||player.identity=='ye') return false;
|
||||
if(get.population(player.identity)<=1) return false;
|
||||
return game.hasPlayer(function(current){
|
||||
return current!=player&¤t.identity==player.identity&&!player.inline(current);
|
||||
shepanzhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function (card, player) {
|
||||
if (player.identity == "unknown" || player.identity == "ye") return false;
|
||||
if (get.population(player.identity) <= 1) return false;
|
||||
return game.hasPlayer(function (current) {
|
||||
return (
|
||||
current != player &&
|
||||
current.identity == player.identity &&
|
||||
!player.inline(current)
|
||||
);
|
||||
});
|
||||
},
|
||||
notarget:true,
|
||||
content:function(){
|
||||
var targets=game.filterPlayer(function(current){
|
||||
return current.identity==player.identity;
|
||||
notarget: true,
|
||||
content: function () {
|
||||
var targets = game.filterPlayer(function (current) {
|
||||
return current.identity == player.identity;
|
||||
});
|
||||
targets.sortBySeat();
|
||||
for(var i=1;i<targets.length;i++){
|
||||
game.swapSeat(targets[i],targets[i-1].next,false);
|
||||
for (var i = 1; i < targets.length; i++) {
|
||||
game.swapSeat(targets[i], targets[i - 1].next, false);
|
||||
}
|
||||
game.log(get.translation(player.identity)+'势力角色摆成了蛇蟠阵')
|
||||
game.log(get.translation(player.identity) + "势力角色摆成了蛇蟠阵");
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
player:1,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
player: 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
longfeizhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(card,player){
|
||||
longfeizhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function (card, player) {
|
||||
return player.next.siege(player);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.getCards('he').length==0) return false;
|
||||
return target==player.next||target==player.previous;
|
||||
filterTarget: function (card, player, target) {
|
||||
if (target.getCards("he").length == 0) return false;
|
||||
return target == player.next || target == player.previous;
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.choosePlayerCard(target,'he',true);
|
||||
"step 1"
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
"step 0";
|
||||
player.choosePlayerCard(target, "he", true);
|
||||
"step 1";
|
||||
target.discard(result.buttons[0].link);
|
||||
"step 2"
|
||||
if(target==targets[targets.length-1]){
|
||||
"step 2";
|
||||
if (target == targets[targets.length - 1]) {
|
||||
player.draw();
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:10,
|
||||
result:{
|
||||
target:-1,
|
||||
player:1
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 10,
|
||||
result: {
|
||||
target: -1,
|
||||
player: 1,
|
||||
},
|
||||
}
|
||||
},
|
||||
huyizhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:function(card,player){
|
||||
return player.siege(player.next)||player.siege(player.previous);
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
},
|
||||
huyizhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: function (card, player) {
|
||||
return player.siege(player.next) || player.siege(player.previous);
|
||||
},
|
||||
filterTarget: function (card, player, target) {
|
||||
return player.siege(target);
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
"step 0"
|
||||
player.chooseCard('将一张非基本牌当作杀对'+get.translation(target)+'使用','he',function(card){
|
||||
return get.type(card)!='basic';
|
||||
}).ai=function(card){
|
||||
if(get.effect(target,{name:'sha'},player,player)>0){
|
||||
return 6-get.value(card);
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
"step 0";
|
||||
player.chooseCard(
|
||||
"将一张非基本牌当作杀对" + get.translation(target) + "使用",
|
||||
"he",
|
||||
function (card) {
|
||||
return get.type(card) != "basic";
|
||||
}
|
||||
).ai = function (card) {
|
||||
if (get.effect(target, { name: "sha" }, player, player) > 0) {
|
||||
return 6 - get.value(card);
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.useCard({name:'sha'},result.cards,target,false);
|
||||
"step 1";
|
||||
if (result.bool) {
|
||||
player.useCard({ name: "sha" }, result.cards, target, false);
|
||||
}
|
||||
"step 2"
|
||||
if(target==player.next) event.player2=player.next.next;
|
||||
else event.player2=player.previous.previous;
|
||||
event.player2.chooseCard('将一张非基本牌当作杀对'+get.translation(target)+'使用','he',function(card){
|
||||
return get.type(card)!='basic';
|
||||
}).ai=function(card){
|
||||
if(get.effect(target,{name:'sha'},event.player2,event.player2)>0){
|
||||
return 6-get.value(card);
|
||||
"step 2";
|
||||
if (target == player.next) event.player2 = player.next.next;
|
||||
else event.player2 = player.previous.previous;
|
||||
event.player2.chooseCard(
|
||||
"将一张非基本牌当作杀对" + get.translation(target) + "使用",
|
||||
"he",
|
||||
function (card) {
|
||||
return get.type(card) != "basic";
|
||||
}
|
||||
).ai = function (card) {
|
||||
if (get.effect(target, { name: "sha" }, event.player2, event.player2) > 0) {
|
||||
return 6 - get.value(card);
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
"step 3"
|
||||
if(result.bool){
|
||||
event.player2.useCard({name:'sha'},result.cards,target,false);
|
||||
"step 3";
|
||||
if (result.bool) {
|
||||
event.player2.useCard({ name: "sha" }, result.cards, target, false);
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
ai:{
|
||||
order:7,
|
||||
result:{
|
||||
target:-2,
|
||||
mode: ["guozhan"],
|
||||
ai: {
|
||||
order: 7,
|
||||
result: {
|
||||
target: -2,
|
||||
},
|
||||
}
|
||||
},
|
||||
niaoxiangzhen:{
|
||||
type:'zhenfa',
|
||||
recastable:true,
|
||||
enable:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(player.identity==target.identity) return false;
|
||||
if(target.identity=='unknown'||target.identity=='ye') return false;
|
||||
return target.identity==target.next.identity||target.identity==target.previous.identity
|
||||
},
|
||||
selectTarget:-1,
|
||||
content:function(){
|
||||
"step 0"
|
||||
var next=target.chooseToRespond({name:'shan'});
|
||||
next.ai=function(card){
|
||||
if(get.damageEffect(target,player,target)>=0) return 0;
|
||||
},
|
||||
niaoxiangzhen: {
|
||||
type: "zhenfa",
|
||||
recastable: true,
|
||||
enable: true,
|
||||
filterTarget: function (card, player, target) {
|
||||
if (player.identity == target.identity) return false;
|
||||
if (target.identity == "unknown" || target.identity == "ye") return false;
|
||||
return (
|
||||
target.identity == target.next.identity || target.identity == target.previous.identity
|
||||
);
|
||||
},
|
||||
selectTarget: -1,
|
||||
content: function () {
|
||||
"step 0";
|
||||
var next = target.chooseToRespond({ name: "shan" });
|
||||
next.ai = function (card) {
|
||||
if (get.damageEffect(target, player, target) >= 0) return 0;
|
||||
return 1;
|
||||
};
|
||||
next.autochoose=lib.filter.autoRespondShan;
|
||||
"step 1"
|
||||
if(result.bool==false){
|
||||
next.autochoose = lib.filter.autoRespondShan;
|
||||
"step 1";
|
||||
if (result.bool == false) {
|
||||
target.damage();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
basic:{
|
||||
order:9,
|
||||
useful:1
|
||||
ai: {
|
||||
basic: {
|
||||
order: 9,
|
||||
useful: 1,
|
||||
},
|
||||
result:{
|
||||
target:-1.5,
|
||||
result: {
|
||||
target: -1.5,
|
||||
},
|
||||
tag: {
|
||||
respond: 1,
|
||||
respondShan: 1,
|
||||
damage: 1,
|
||||
},
|
||||
tag:{
|
||||
respond:1,
|
||||
respondShan:1,
|
||||
damage:1,
|
||||
}
|
||||
},
|
||||
mode:['guozhan'],
|
||||
mode: ["guozhan"],
|
||||
},
|
||||
},
|
||||
skill:{
|
||||
},
|
||||
translate:{
|
||||
zhenfa:'阵法',
|
||||
changshezhen:'长蛇阵',
|
||||
pozhenjue:'破阵决',
|
||||
tianfuzhen:'天覆阵',
|
||||
dizaizhen:'地载阵',
|
||||
fengyangzhen:'风扬阵',
|
||||
yunchuizhen:'云垂阵',
|
||||
qixingzhen:'七星阵',
|
||||
shepanzhen:'蛇蟠阵',
|
||||
shepanzhen_bg:'列',
|
||||
yunchuizhen_bg:'垂',
|
||||
longfeizhen:'龙飞阵',
|
||||
huyizhen:'虎翼阵',
|
||||
niaoxiangzhen:'鸟翔阵',
|
||||
niaoxiangzhen_info:'令所有非你阵营的队列的角色今次打出一张闪,或者受到1点伤害。',
|
||||
qixingzhen_info:'弃置所有围攻你的角色各一张牌,然后视为对所有你围攻的角色使用一张不计入出杀次数的杀。',
|
||||
skill: {},
|
||||
translate: {
|
||||
zhenfa: "阵法",
|
||||
changshezhen: "长蛇阵",
|
||||
pozhenjue: "破阵决",
|
||||
tianfuzhen: "天覆阵",
|
||||
dizaizhen: "地载阵",
|
||||
fengyangzhen: "风扬阵",
|
||||
yunchuizhen: "云垂阵",
|
||||
qixingzhen: "七星阵",
|
||||
shepanzhen: "蛇蟠阵",
|
||||
shepanzhen_bg: "列",
|
||||
yunchuizhen_bg: "垂",
|
||||
longfeizhen: "龙飞阵",
|
||||
huyizhen: "虎翼阵",
|
||||
niaoxiangzhen: "鸟翔阵",
|
||||
niaoxiangzhen_info: "令所有非你阵营的队列的角色今次打出一张闪,或者受到1点伤害。",
|
||||
qixingzhen_info:
|
||||
"弃置所有围攻你的角色各一张牌,然后视为对所有你围攻的角色使用一张不计入出杀次数的杀。",
|
||||
// longfeizhen_info:'弃置围攻你的角色各一张牌,然后摸一张牌。',
|
||||
// qixingzhen_info:'令我方所有角色进入围攻状态。',
|
||||
// shepanzhen_info:'令我方所有角色进入队列状态。',
|
||||
// yunchuizhen_info:'令所有围攻角色获得技能〖无双〗,直到其首次造成伤害。',
|
||||
// fengyangzhen_info:'令所有被围攻角色获得技能〖飞影〗,直到其首次受到伤害。',
|
||||
dizaizhen_info:'所有小势力角色摸一张牌。',
|
||||
changshezhen_info:'若你处于队列中,与你同一队列的所有角色摸一张牌,否则将与你逆时针距离最近的同势力角色移至你下家。',
|
||||
dizaizhen_info: "所有小势力角色摸一张牌。",
|
||||
changshezhen_info:
|
||||
"若你处于队列中,与你同一队列的所有角色摸一张牌,否则将与你逆时针距离最近的同势力角色移至你下家。",
|
||||
// pozhenjue_info:'将所有角色的顺序随机重排。',
|
||||
tianfuzhen_info:'所有大势力角色弃置一张牌。'
|
||||
tianfuzhen_info: "所有大势力角色弃置一张牌。",
|
||||
},
|
||||
list:[
|
||||
["diamond",1,'changshezhen'],
|
||||
["club",1,'changshezhen'],
|
||||
list: [
|
||||
["diamond", 1, "changshezhen"],
|
||||
["club", 1, "changshezhen"],
|
||||
// ["spade",1,'changshezhen'],
|
||||
// ["heart",1,'changshezhen'],
|
||||
|
||||
["diamond",2,'tianfuzhen'],
|
||||
["diamond", 2, "tianfuzhen"],
|
||||
// ["club",2,'tianfuzhen'],
|
||||
["spade",2,'tianfuzhen'],
|
||||
["heart",2,'tianfuzhen'],
|
||||
["spade", 2, "tianfuzhen"],
|
||||
["heart", 2, "tianfuzhen"],
|
||||
|
||||
["diamond",3,'dizaizhen'],
|
||||
["diamond", 3, "dizaizhen"],
|
||||
// ["club",3,'dizaizhen'],
|
||||
["spade",3,'dizaizhen'],
|
||||
["heart",3,'dizaizhen'],
|
||||
["spade", 3, "dizaizhen"],
|
||||
["heart", 3, "dizaizhen"],
|
||||
|
||||
// ["diamond",4,'fengyangzhen'],
|
||||
// ["club",4,'fengyangzhen'],
|
||||
|
@ -407,9 +423,9 @@ game.import('card', function () {
|
|||
// ["spade",6,'huyizhen'],
|
||||
// ["heart",6,'huyizhen'],
|
||||
|
||||
["diamond",7,'qixingzhen'],
|
||||
["club",7,'qixingzhen'],
|
||||
["spade",7,'qixingzhen'],
|
||||
["diamond", 7, "qixingzhen"],
|
||||
["club", 7, "qixingzhen"],
|
||||
["spade", 7, "qixingzhen"],
|
||||
// ["heart",7,'qixingzhen'],
|
||||
|
||||
// ["diamond",8,'shepanzhen'],
|
||||
|
@ -422,10 +438,10 @@ game.import('card', function () {
|
|||
// ["spade",9,'longfeizhen'],
|
||||
// ["heart",9,'longfeizhen'],
|
||||
|
||||
["diamond",11,'niaoxiangzhen'],
|
||||
["diamond", 11, "niaoxiangzhen"],
|
||||
// ["club",11,'niaoxiangzhen'],
|
||||
["spade",11,'niaoxiangzhen'],
|
||||
["heart",11,'niaoxiangzhen'],
|
||||
["spade", 11, "niaoxiangzhen"],
|
||||
["heart", 11, "niaoxiangzhen"],
|
||||
|
||||
// ["diamond",12,'yunchuizhen'],
|
||||
// ["club",12,'yunchuizhen'],
|
||||
|
|
1492
card/zhulu.js
1492
card/zhulu.js
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue