给B站站友写的一个技能模板
skill={
group:["技能名_1","技能名_2"],
subSkill:{
"1":{
trigger:{
player:"damageEnd",
},
isObjectValueEqualNew:function (a, b) {
var aProps = Object.getOwnPropertyNames(a);
var bProps = Object.getOwnPropertyNames(b);
if (aProps.length != bProps.length) {
return false;
}
for (var i = 0; i < aProps.length; i++) {
var propName = aProps[i];
var propA = a[propName];
var propB = b[propName];
if ((typeof (propA) === 'object')) {
if (this.isObjectValueEqualNew(propA, propB)) {
return true;
} else {
return false;
}
} else if (propA !== propB) {
return false;
} else {
}
}
return true;
},
initList:function(player){
var list={basic:[],equip:[],trick:[],delay:[]};
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
var info=lib.card[name];
if(info.autoViewAs||name=='yuansuhuimie') continue;
if(lib.filter.cardEnabled({name:name},player)){
if(!list[info.type]){
list[info.type]=[];
}
list[info.type].push([get.translation(lib.card[name].type),'',name]);
}
}
list.trick.sort(lib.sort.name);
return list.trick;
},
direct:true,
content:function(){
'step 0'
if(!_status.list)
{
_status.list= lib.skill.技能名_1.initList(player);
}
var dialog=ui.create.dialog('随便写个名',[_status.list,'vcard']);
// for(var i in list){
// dialog.addText(get.translation(i)+'牌');
// dialog.add([list[i],'vcard']);
// }
var rand1=Math.random()<1/3;
var rand2=Math.random()<0.5;
var rand3=Math.random()<1/3;
var rand4=Math.random()<1/3;
player.chooseButton(dialog).ai=function(button){
var name=button.link[2];
if(player.hp<=1){
switch(name){
case 'zhiliaobo':return 1;
case 'dunpaigedang':return 0.8;
case 'nanman':return 0.5;
default:return 0;
}
}
if(rand4&&player.countCards('h')<=1){
switch(name){
case 'zengbin':return 1;
case 'wuzhong':return 0.8;
default:return 0;
}
}
if(player.hasSkill('qinglonglingzhu')){
if(rand2) return name=='chiyuxi'?0.8:0;
return name=='jingleishan'?0.8:0;
}
if(rand2) return name=='wanjian'?0.8:0;
return name=='nanman'?0.8:0;
}
'step 1'
if(result.bool){
player.chooseUseTarget(result.links[0][2],true,false);
for(var i=0;i<_status.list.length;i++)
{
if(result.links[0][2]==_status.list[i][2])
{
console.log(i);
_status.list=_status.list.filter(function(item) {
return item[2] != result.links[0][2];
});
break;
}
}
console.log(_status.list);
}
},
ai:{
threaten:1.5,
},
sub:true,
},
"2":{
trigger:{
global:"phaseBegin",
},
forced:true,
content:function(){
_status.list=lib.skill.技能名_1.initList(player);
},
sub:true,
},
},
}

