noname/extension/wuxing/extension.js

236 lines
7.6 KiB
JavaScript

'use strict';
game.import('play',function(){
var game=window.game;
var ui=window.ui;
var get=window.get;
var ai=window.ai;
var lib=window.lib;
var _status=window._status;
return {
name:'wuxing',
arenaReady:function(){
if(_status.connectMode) return;
lib.card.list.splice(Math.floor(lib.card.list.length*Math.random()),0,['spade',5,'wuxingpan']);
if(!_status.video){
lib.video.push({
type:'play',
name:'wuxing'
});
}
},
video:function(){
for(var i in this.translate){
lib.translate[i]=this.translate[i];
}
for(var i in this.card){
lib.card[i]=this.card[i];
}
for(var i in this.skill){
lib.skill[i]=this.skill[i];
}
},
element:{
player:{
init:function(player){
if(player.node.wuxing){
player.node.wuxing.remove();
}
if(_status.video||_status.connectMode) return;
var node=ui.create.div('.wunature',player);
var list=['metal','wood','water','fire','soil'];
var nature=list.randomGet();
player.wunature=nature;
node.dataset.nature=nature;
node.innerHTML=get.translation(nature);
player.node.wuxing=node;
}
},
card:{
init:function(card){
if(_status.video||_status.connectMode) return;
if(card.name=='wuxingpan') return;
if(card.wunature) return;
if(Math.random()>(parseFloat(lib.config.wuxing_num_playpackconfig)||0)) return;
var node=ui.create.div('.wunature',card);
var list=['metal','wood','water','fire','soil'];
var nature=list.randomGet();
card.wunature=nature;
node.dataset.nature=nature;
node.innerHTML=get.translation(nature);
card.node.wuxing=node;
if(!card.suit||!card.number){
card.node.wuxing.style.display='none';
}
}
}
},
skill:{
_shengke:{
trigger:{target:'useCardToBegin'},
forced:true,
popup:false,
filter:function(event,player){
if(_status.connectMode) return false;
return event.card.wunature&&player.wunature;
},
content:function(){
switch(trigger.card.wunature){
case 'metal':
switch(player.wunature){
case 'wood':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被金属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('金克木')}return;
case 'water':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('金生水');
return;
}
return;
case 'wood':
switch(player.wunature){
case 'soil':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被木属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('木克土')}return;
case 'fire':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('木生火');
return;
}
return;
case 'water':
switch(player.wunature){
case 'fire':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被水属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('水克火')}return;
case 'wood':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('水生木');
return;
}
return;
case 'fire':
switch(player.wunature){
case 'metal':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被火属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('火克金')}return;
case 'soil':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('火生土');
return;
}
return;
case 'soil':
switch(player.wunature){
case 'water':
if(player.countCards('he')){
game.log(player,'被'+get.translation(trigger.card.wunature)+'属性的卡牌克制');
player.chooseToDiscard('你被土属性卡牌克制,需弃置一张牌',true,'he').ai=get.disvalue;player.popup('土克水')}return;
case 'metal':
game.log(player,'得到'+get.translation(trigger.card.wunature)+'属性卡牌的加成');
player.draw();player.popup('土生金');
return;
}
return;
}
},
ai:{
effect:{
target:function(card,player,target,current){
switch(card.wunature){
case 'metal':
switch(target.wunature){
case 'wood':if(current!=0) return [1,-0.3];return;
case 'water':if(current!=0) return [1,0.3];return;
}
return;
case 'wood':
switch(target.wunature){
case 'soil':if(current!=0) return [1,-0.3];return;
case 'fire':if(current!=0) return [1,0.3];return;
}
return;
case 'water':
switch(target.wunature){
case 'fire':if(current!=0) return [1,-0.3];return;
case 'wood':if(current!=0) return [1,0.3];return;
}
return;
case 'fire':
switch(target.wunature){
case 'metal':if(current!=0) return [1,-0.3];return;
case 'soil':if(current!=0) return [1,0.3];return;
}
return;
case 'soil':
switch(target.wunature){
case 'water':if(current!=0) return [1,-0.3];return;
case 'metal':if(current!=0) return [1,0.3];return;
}
return;
}
}
}
}
},
wuxingpan_skill:{
enable:'phaseUse',
usable:1,
filterCard:true,
lose:false,
prompt:'选择一张手牌永久改变其五行属性',
content:function(){
"step 0"
player.chooseControl('metal','wood','water','fire','soil');
"step 1"
var card=cards[0];
if(!card.node.wuxing){
card.node.wuxing=ui.create.div('.wunature',card);
}
card.wunature=result.control;
card.node.wuxing.dataset.nature=result.control;
card.node.wuxing.innerHTML=get.translation(result.control);
}
}
},
card:{
wuxingpan:{
type:'equip',
subtype:'equip5',
skills:['wuxingpan_skill'],
fullskin:true
}
},
translate:{
metal:'金',
wood:'木',
water:'水',
soil:'土',
goldColor:'rgb(236,236,130)',
woodColor:'rgb(149,202,147)',
waterColor:'rgb(150,88,201)',
fireColor:'rgb(236,132,106)',
soilColor:'rgb(201,159,98)',
goldColor2:'rgba(236,236,57,0.3)',
woodColor2:'rgba(33,155,10,0.3)',
waterColor2:'rgba(29,156,255,0.3)',
fireColor2:'rgba(255,51,0,0.3)',
soilColor2:'rgba(163,98,0,0.3)',
wuxingpan:'五行盘',
wuxingpan_skill:'五行',
wuxingpan_skill_info:'出牌阶段限一次,你可以永久改变一张手牌的五行属性',
wuxingpan_info:'出牌阶段限一次,你可以永久改变一张手牌的五行属性',
},
help:{
'五行生克':'<ul><li>每名角色在游戏开始时随机获得一个属性<li>牌堆中三分之一的牌会随机获得一个属性<li>当一名成为相克属性卡牌的目标时,'+
'须弃置一张牌<li>当一名角色成为相生的卡牌的目标时,须摸一张牌'+
'<li>金克木,金生水;<br>木克土,木生火;<br>水克火,水生木;<br>火克金,火生土;<br>土克水,土生金'
}
};
});