This commit is contained in:
libccy 2016-01-25 00:07:47 +08:00
parent 881fda8c14
commit ed93d4b0a4
11 changed files with 386 additions and 32 deletions

View File

@ -33,11 +33,11 @@ character.boss={
boss_dongzhuo:['male','qun',20,['jiuchi','boss_qiangzheng','boss_baolin'],['boss','bossallowed'],'shu'],
// boss_shuijing:['male','qun',8,[],['boss','bossallowed'],'wei'],
boss_liedixuande:['male','shu',5,[],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_liedixuande:['male','shu',5,['boss_lingfeng','boss_jizhen'],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_gongshenyueying:['male','shu',4,[],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_tianhoukongming:['male','shu',4,[],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_yuhuoshiyuan:['male','shu',4,[],['jiangeboss','hiddenboss','bossallowed'],'shu'],
boss_qiaokuijunyi:['male','wei',4,[],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_qiaokuijunyi:['male','wei',4,['boss_huodi','boss_jueji'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_jiarenzidan:['male','wei',5,['boss_chiying','boss_jingfan'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_duanyuzhongda:['male','wei',5,['boss_fanshi','boss_xuanlei','boss_skonghun'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
boss_juechenmiaocai:['male','wei',4,['boss_chuanyun','boss_leili','boss_fengxing'],['jiangeboss','hiddenboss','bossallowed'],'wei'],
@ -53,6 +53,194 @@ character.boss={
},
skill:{
boss_jizhen:{
trigger:{player:'phaseEnd'},
forced:true,
filter:function(event,player){
if(player.hp<player.maxHp) return true;
if(typeof player.side=='boolean'){
for(var i=0;i<game.players.length;i++){
if(game.players[i].side==player.side&&game.players[i].hp<game.players[i].maxHp){
return true;
}
}
}
return false;
},
content:function(){
var list=[];
for(var i=0;i<game.players.length;i++){
if(game.players[i].hp<game.players[i].maxHp){
if(game.players[i]==player){
list.push(game.players[i]);
}
else if(typeof player.side=='boolean'&&game.players[i].side==player.side){
list.push(game.players[i]);
}
}
}
if(list.length){
player.line(list,'green');
game.asyncDraw(list);
}
},
ai:{
threaten:1.4
}
},
boss_lingfeng:{
trigger:{player:'phaseDrawBefore'},
content:function(){
"step 0"
trigger.untrigger();
trigger.finish();
event.cards=get.cards(2);
player.showCards(event.cards);
"step 1"
if(get.color(event.cards[0])!=get.color(event.cards[1])){
player.chooseTarget('是否令一名敌方角色失去1点体力',function(card,player,target){
if(typeof player.side=='boolean'){
return player.side!=target.side;
}
return player!=target;
}).ai=function(target){
return -ai.get.attitude(player,target);
}
}
"step 2"
if(result.bool&&result.targets&&result.targets.length){
player.line(result.targets,'green');
result.targets[0].loseHp();
}
"step 3"
player.gain(event.cards);
player.$draw(event.cards);
game.delay();
},
ai:{
threaten:1.4
}
},
boss_jueji:{
trigger:{global:'phaseDrawBegin'},
filter:function(event,player){
if(typeof player.side=='boolean'&&player.side==event.player.side){
return false;
}
return event.num>0&&event.player!=player&&event.player.hp<event.player.maxHp;
},
prompt:function(event,player){
return '是否对'+get.translation(event.player)+'发动【惑敌】?'
},
content:function(){
player.line(trigger.player,'green');
trigger.num--;
},
ai:{
expose:0.2,
threaten:1.4
}
},
boss_huodi:{
trigger:{player:'phaseEnd'},
direct:true,
filter:function(event,player){
if(typeof player.side=='boolean'){
for(var i=0;i<game.players.length;i++){
if(game.players[i].side==player.side&&game.players[i].isTurnedOver()){
return true;
}
}
return false;
}
return player.isTurnedOver();
},
content:function(){
"step 0"
player.chooseTarget('是否发动【惑敌】?',function(card,player,target){
if(typeof player.side=='boolean'){
return player.side!=target.side;
}
return player!=target;
}).ai=function(target){
return -ai.get.attitude(player,target);
};
"step 1"
if(result.bool){
player.logSkill('boss_huodi',result.targets);
result.targets[0].turnOver();
}
},
ai:{
expose:0.2
}
},
boss_chuanyun:{
trigger:{player:'phaseEnd'},
direct:true,
content:function(){
"step 0"
player.chooseTarget('是否发动【穿云】?',function(card,player,target){
return player.hp<target.hp;
}).ai=function(target){
return ai.get.damageEffect(target,player,player);
}
"step 1"
if(result.bool){
player.logSkill('boss_chuanyun',result.targets);
result.targets[0].damage();
}
},
},
boss_leili:{
trigger:{source:'damageEnd'},
direct:true,
filter:function(event){
return event.card&&event.card.name=='sha';
},
content:function(){
"step 0"
player.chooseTarget('是否发动【雷厉】?',function(card,player,target){
if(player==target) return false;
if(target==trigger.player) return false;
if(typeof player.side=='boolean') return player.side!=target.side;
return true;
}).ai=function(target){
return ai.get.damageEffect(target,player,player,'thunder');
}
"step 1"
if(result.bool){
player.logSkill('boss_leili',result.targets);
result.targets[0].damage('thunder');
}
},
ai:{
expose:0.2,
threaten:1.3
}
},
boss_fengxing:{
trigger:{player:'phaseBegin'},
direct:true,
content:function(){
"step 0"
player.chooseTarget('是否发动【风行】?',function(card,player,target){
if(typeof player.side=='boolean'&&player.side==target.side) return false;
return lib.filter.targetEnabled({name:'sha'},player,target);
}).ai=function(target){
return ai.get.effect(target,{name:'sha'},player);
}
"step 1"
if(result.bool){
player.logSkill('boss_fengxing');
player.useCard({name:'sha'},result.targets,false);
}
},
ai:{
expose:0.2,
threaten:1.3
}
},
boss_xuanlei:{
trigger:{player:'phaseBegin'},
forced:true,
@ -79,13 +267,6 @@ character.boss={
event.targets.shift().damage('thunder');
event.redo();
}
},
ai:{
threaten:function(player,target){
if(target.hp==1) return 2;
if(target.hp==2&&game.players.length<8) return 1.5;
return 0.5;
},
}
},
boss_fanshi:{
@ -129,6 +310,13 @@ character.boss={
}
'step 2'
player.recover(event.num);
},
ai:{
threaten:function(player,target){
if(target.hp==1) return 2;
if(target.hp==2&&game.players.length<8) return 1.5;
return 0.5;
},
}
},
boss_chiying:{
@ -1591,6 +1779,20 @@ character.boss={
boss_suannimech:'食火狻猊',
boss_yazimech:'裂石睚眦',
boss_lingfeng:'灵锋',
boss_lingfeng_info:'摸牌阶段你可以放弃摸牌亮出牌堆顶的两张牌然后获得之若这些牌的颜色不同你令一名敌方角色失去1点体力',
boss_jizhen:'激阵',
boss_jizhen_info:'锁定技,结束阶段,你令所有已受伤的己方角色摸一张牌',
boss_huodi:'惑敌',
boss_huodi_info:'结束阶段,若有武将牌背面朝上的己方角色,你可以令一名敌方角色将其身份牌翻面',
boss_jueji:'绝汲',
boss_jueji_info:'敌方角色摸牌阶段,若其已受伤,你可以令其少摸一张牌',
boss_chuanyun:'穿云',
boss_chuanyun_info:'结束阶段你可以对体力比你多的一名其他角色造成1点伤害',
boss_leili:'雷厉',
boss_leili_info:'每当你的[杀]造成伤害后你可以对另一名敌方角色造成1点雷电伤害',
boss_fengxing:'风行',
boss_fengxing_info:'准备阶段,你可以选择一名敌方角色,若如此做,视为对其使用了一张[杀]',
boss_skonghun:'控魂',
boss_skonghun_info:'出牌阶段开始时若你已损失体力值不小于敌方角色数你可以对所有敌方角色各造成1点雷电伤害然后你恢复X点体力X为受到伤害的角色数',
boss_fanshi:'反噬',
@ -1639,17 +1841,17 @@ character.boss={
boss_lianyu_info:'结束阶段对所有其他角色造成1点火焰伤害',
boss_guihuo:'鬼火',
boss_guihuo_info:'结束阶段,对一名其他角色造成1点火焰伤害',
boss_guihuo_info:'结束阶段,你可以对一名其他角色造成1点火焰伤害',
boss_minbao:'冥爆',
boss_minbao_info:'锁定技当你死亡时对场上所有其他角色造成1点火焰伤害',
boss_luolei:'落雷',
boss_luolei_info:'准备阶段,对一名其他角色造成1点雷电伤害',
boss_luolei_info:'准备阶段,你可以对一名其他角色造成1点雷电伤害',
boss_beiming:'悲鸣',
boss_beiming_info:'锁定技,当你死亡时,你令杀死你的角色弃置所有手牌',
boss_guimei:'鬼魅',
boss_guimei_info:'锁定技,你不能成为延时类锦囊的目标',
boss_didong:'地动',
boss_didong_info:'结束阶段,令一名其他角色将其武将牌翻面',
boss_didong_info:'结束阶段,你可以令一名其他角色将其武将牌翻面',
boss_shanbeng:'山崩',
boss_shanbeng_info:'锁定技,当你死亡时,你令所有其他角色弃置其装备区内的所有牌',

View File

@ -294,8 +294,9 @@ character.refresh={
unique:true,
trigger:{player:'gainAfter'},
direct:true,
filter:function(event){
filter:function(event,player){
if(event.parent.parent.name=='phaseDraw') return false;
if(player.storage.qingjian>=4) return false;
return event.cards&&event.cards.length>0
},
content:function(){
@ -322,6 +323,7 @@ character.refresh={
});
"step 2"
if(result.bool){
player.storage.qingjian++;
player.logSkill('qingjian',result.targets);
result.targets[0].gain(result.cards);
player.$give(result.cards.length,result.targets[0]);
@ -333,6 +335,16 @@ character.refresh={
},
ai:{
expose:0.3
},
group:'qingjian2'
},
qingjian2:{
trigger:{global:'phaseBegin'},
forced:true,
popup:false,
silent:true,
content:function(){
player.storage.qingjian=0;
}
},
reyingzi:{
@ -1339,7 +1351,7 @@ character.refresh={
relianying_info:'当你失去最后的手牌时你可以令至多X名角色各摸一张牌X为你此次失去的手牌数。',
reyingzi_info:'锁定技,摸牌阶段摸牌时,你额外摸一张牌;你的手牌上限不会因体力值的减少而减少。',
refanjian_info:'出牌阶段限一次,你可以展示一张手牌并将此牌交给一名其他角色。然后该角色选择一项:展示其手牌并弃置所有与此牌花色相同的牌,或是去一点体力。',
qingjian_info:'每当你于摸牌阶段外获得牌时,你可以将其中任意牌以任意顺序交给其他角色',
qingjian_info:'每当你于摸牌阶段外获得牌时,你可以将其中任意牌以任意顺序交给其他角色,每回合最多发动四次',
qinxue_info:'觉醒技准备阶段开始时若你的手牌数比体力值多3人数不少于7时改为2或更多你须减一点体力上限并获得技能【攻心】',
retuxi_info:'摸牌阶段摸牌时,你可以少摸任意张牌,然后选择等量的手牌数大于或等于你的其他角色,获得这些角色的各一张手牌。',
reluoyi_info:'你可以跳过摸牌阶段,然后展示牌堆顶的三张牌,获得其中的基本牌、武器牌和【决斗】,若如此做,直到你的下回合开始,你为伤害来源的【杀】或【决斗】造成的伤害+1。',

View File

@ -2986,7 +2986,7 @@ character.shenhua={
xinsheng_info:'你每受到1点伤害可获得一张新化身牌。',
jiangwei:'姜维',
liushan:'刘禅',
zhanghe:'张',
zhanghe:'张',
dengai:'邓艾',
sunce:'孙策',
zhangzhang:'张昭张紘',

View File

@ -2257,7 +2257,7 @@ character.sp={
if(_status.currentPhase==player&&card.name=='sha'&&card.number>player.storage.qiangwu) return Infinity;
}
},
group:'qiangwu2'
group:['qiangwu2','qiangwu3']
},
qiangwu2:{
trigger:{player:'phaseUseBegin'},
@ -2267,6 +2267,21 @@ character.sp={
delete player.storage.qiangwu;
}
},
qiangwu3:{
trigger:{player:'useCard'},
filter:function(event,player){
if(_status.currentPhase==player&&event.card.name=='sha'&&
event.card.number>player.storage.qiangwu) return true;
return false;
},
forced:true,
popup:false,
content:function(){
if(player.stat[player.stat.length-1].card.sha>0){
player.stat[player.stat.length-1].card.sha--;
}
},
},
zhendu:{
audio:2,
trigger:{global:'phaseUseBegin'},

View File

@ -4745,9 +4745,6 @@ character.swd={
jikong2:{
trigger:{player:'phaseBegin'},
direct:true,
// filter:function(event,player){
// return player.num('he')>0;
// },
content:function(){
"step 0"
player.chooseTarget('是否发动【亟空】?',function(card,player,target){

View File

@ -1836,8 +1836,10 @@ character.yijiang={
return player.storage.taoxi?true:false;
},
content:function(){
if(get.owner(player.storage.taoxi)==player.storage.taoxi2){
player.loseHp();
if(get.owner(player.storage.taoxi)==player.storage.taoxi2&&player.num('he')){
game.log(player,'发动了','【讨袭】');
player.popup('taoxi');
player.chooseToDiscard('he',true);
}
delete player.storage.taoxi;
delete player.storage.taoxi2;
@ -5647,7 +5649,7 @@ character.yijiang={
taoxi:'讨袭',
taoxi2:'讨袭',
taoxi3:'讨袭',
taoxi_info:'出牌阶段限一次,你使用牌指定一名其他角色为唯一目标后,你可以亮出其一张手牌直到回合结束,并且你可以于此回合内将此牌如手牌般使用。回合结束时,若该角色未失去此手牌,则你失去1点体力',
taoxi_info:'出牌阶段限一次,你使用牌指定一名其他角色为唯一目标后,你可以亮出其一张手牌直到回合结束,并且你可以于此回合内将此牌如手牌般使用。回合结束时,若该角色未失去此手牌,则你须弃置一张牌',
huituo:'恢拓',
huituo_info:'每当你受到伤害后你可以令一名角色进行一次判定若结果为红色该角色回复1点体力若结果为黑色该角色摸X张牌X为此次伤害的伤害数',
mingjian:'明鉴',

View File

@ -258,6 +258,7 @@ window.config={
banned:[],
bannedcards:[],
bannedpile:{},
customcardpile:{},
addedpile:{},
customCharacterPack:{},
customCardPack:{},

View File

@ -2461,7 +2461,7 @@
videoId:0,
},
help:{
'游戏选项':'<ul><li>控制台命令<br>开启后可用浏览器控制台控制游戏<li>自动确认<br>开启后当候选目标仅有1个时点击目标无需再点击确定<li>'+
'游戏选项':'<ul><li>控制台命令<br>开启后可用浏览器控制台控制游戏<li>编辑牌堆<br>在卡牌包中修改牌堆后,将自动创建一个临时牌堆,在所有模式中共用,当保存当前牌堆后,临时牌堆被清除。每个模式可设置不同的已保存牌堆,设置的牌堆优先级大于临时牌堆。<li>自动确认<br>开启后当候选目标仅有1个时点击目标无需再点击确定<li>'+
'触屏模式<br>可消除iOS等设备上300ms的点击延迟但开启后无法使用鼠标<li>滚轮控制手牌<br>开启后滚轮可控制手牌的左右滚动建议Mac等具备横向滚动功能的设备关闭此选项'+
'<li>游戏玩法<br>为游戏增加不同玩法,开启后可在帮助中查看介绍',
'游戏操作':'<ul><li>长按/鼠标悬停/右键单击(需在设置中开启)显示信息<li>触屏模式中,双指点击切换暂停;下划显示菜单,上划切换托管<li>键盘快捷键<br>'+
@ -4069,7 +4069,8 @@
player.logSkill(event.skill);
player.popup(event.card.name);
}
else if(lib.config.show_card_prompt&&get.type(event.card)!='equip'){
else if(lib.config.show_card_prompt){
//&&get.type(event.card)!='equip'
player.popup(event.card.name,'metal');
}
if(event.audio===false){
@ -4906,7 +4907,7 @@
if(player.hp>player.maxHp) player.hp=player.maxHp;
player.update();
if(event.popup!==false){
player.popup(num);
player.$damagepop(num,'water');
}
event.trigger('changeHp');
},
@ -15445,6 +15446,8 @@
var node=start.firstChild.childNodes[i];
if(node.link){
if(node.mode.indexOf('mode_')==0) continue;
if(node.mode=='custom') continue;
if(node.mode=='cardpile') continue;
if(lib.config.cards.contains(node.mode)){
node.classList.remove('off');
node.link.firstChild.classList.add('on');
@ -15691,6 +15694,114 @@
}
rightPane.appendChild(active.link);
(function(){
var page=ui.create.div('.menu-buttons');
var node=ui.create.div('.menubutton.large','牌堆',clickMode);
ui.customCharacter=node;
start.firstChild.insertBefore(node,start.firstChild.querySelector('.lefttext'));
node.link=page;
node.mode='cardpile';
var updatePileConfig=function(){
var current=get.config('cardpilename');
for(var i=0;i<page.childNodes.length;i++){
if(page.childNodes[i].use){
if(page.childNodes[i].link==current){
page.childNodes[i].use.style.display='none';
}
else{
page.childNodes[i].use.style.display='';
}
}
}
};
var pileUse=function(){
game.saveConfig('cardpilename',this.parentNode.link,true);
restart.style.display='';
updatePileConfig();
};
var pileDel=function(){
delete lib.config.customcardpile[this.parentNode.link];
this.parentNode.remove();
game.saveConfig('customcardpile',lib.config.customcardpile);
for(var i in lib.config.mode_config){
if(i=='global') continue;
if(lib.config.mode_config[i].cardpilename==this.parentNode.link){
game.saveConfig('cardpilename',null,i);
}
}
};
var createPileNode=function(name){
var node=ui.create.div('.config.toggle.cardpilecfg.nomarginleft',name);
node.link=name;
var edit=document.createElement('span');
edit.innerHTML='使用';
edit.classList.add('cardpiledelete');
edit.onclick=pileUse;
var del=document.createElement('span');
del.innerHTML='删除';
del.classList.add('cardpiledelete');
del.onclick=pileDel;
node.appendChild(del);
node.appendChild(edit);
node.use=edit;
page.insertBefore(node,page.firstChild);
};
for(var i in lib.config.customcardpile){
createPileNode(i);
}
updatePileConfig();
var restart=ui.create.div('.config.more','重新启动',game.reload,page);
restart.style.display='none';
ui.create.div('.config.more','使用默认牌堆',function(){
this.innerHTML='已使用';
var that=this;
setTimeout(function(){
that.innerHTML='使用默认牌堆';
},1000);
game.saveConfig('cardpilename',null,true);
game.saveConfig('bannedpile');
game.saveConfig('addedpile');
updatePileConfig();
},page);
var exportCardPile;
ui.create.div('.config.more','保存当前牌堆 <div>&gt;</div>',page,function(){
this.classList.toggle('on');
if(this.classList.contains('on')){
exportCardPile.classList.remove('hidden');
}
else{
exportCardPile.classList.add('hidden');
}
});
exportCardPile=ui.create.div('.config.cardpileadd.indent',page);
exportCardPile.classList.add('hidden');
ui.create.div('','名称:<input type="text"><button>确定</button>',exportCardPile);
var input=exportCardPile.firstChild.lastChild.previousSibling;
input.value='自定义牌堆';
input.style.marginRight='3px';
exportCardPile.firstChild.lastChild.onclick=function(){
var name=input.value;
var ok=true;
if(lib.config.customcardpile[name]){
for(var i=1;i<=1000;i++){
if(!lib.config.customcardpile[name+'('+i+')']){
name=name+'('+i+')';
break;
}
}
}
lib.config.customcardpile[name]=[lib.config.bannedpile,lib.config.addedpile];
game.saveConfig('cardpilename',name,true);
game.saveConfig('customcardpile',lib.config.customcardpile);
game.saveConfig('bannedpile');
game.saveConfig('addedpile');
createPileNode(name);
updatePileConfig();
};
}());
var node1=ui.create.div('.lefttext','全部开启',start.firstChild,function(){
game.saveConfig('cards',lib.config.all.cards);
updateNodes();
@ -21738,6 +21849,12 @@
}
}
}
var pilecfg=lib.config.customcardpile[get.config('cardpilename')];
if(pilecfg){
lib.config.bannedpile=pilecfg[0];
lib.config.addedpile=pilecfg[1];
}
for(i in card){
lib.cardPack[i]=[];
if(card[i].card){

View File

@ -63,7 +63,7 @@
.menu-buttons>.toggle.cardpilecfgadd:not(.hidden){
margin-top: 0 !important;
}
.menu-buttons>.toggle.cardpilecfg{
.menu-buttons>.toggle.cardpilecfg:not(.nomarginleft){
margin-left: 20px !important;
width: calc(100% - 35px) !important;
}
@ -243,7 +243,8 @@
.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd.hidden{
margin-top: -50px;
}
.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd:not(.hidden){
.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd:not(.hidden),
.menu.main>.menu-content>div>.right.pane>div>.config.cardpileadd:not(.hidden){
margin-top:0;
}
.menu.main>.menu-content>div>.right.pane>div>.config.banskilladd>select{

View File

@ -67,6 +67,13 @@
border-radius: 0 !important;
pointer-events: none;
}
#arena:not(.chess) .player[data-position='0'].linked>.damage{
transform:scale(0.7) rotate(0);
}
#arena:not(.chess) .player[data-position='0'].linked>.damage.damageadded{
transform:scale(1) rotate(0);
}
#arena:not(.chess) .player[data-position='0']:not(.selected):not(.selectedx):not(.selectable):not(.glow){
box-shadow: none !important;
}

View File

@ -5620,7 +5620,7 @@ mode.chess={
player.chessFocus();
},
},
boss_fengxing:{
boss_bfengxing:{
mod:{
chessMove:function(player,current){
return current+2;
@ -5904,8 +5904,8 @@ mode.chess={
cangming:'颠动沧溟',
cangming_info:'出牌阶段限一次,你可弃置四张花色不同的手牌并将武将牌翻至背面,然后令所有其他角色进入混乱状态直到你的下一回合开始',
boss_fengxing:'风行',
boss_fengxing_info:'锁定技,你摸牌阶段摸牌数+2你的攻击范围+2你回合内的移动距离+2',
boss_bfengxing:'风行',
boss_bfengxing_info:'锁定技,你摸牌阶段摸牌数+2你的攻击范围+2你回合内的移动距离+2',
boss_chiyu:'炽羽',
boss_chiyu_info:'出牌阶段限一次你可以弃置一张红色牌对距离5以内的所有其他角色造成一点火焰伤害',
boss_tenglong:'腾龙八齐',
@ -6240,7 +6240,7 @@ mode.chess={
// chess_zhangjiao:['male','qun',3,['']],
// chess_menghuo:['male','qun',3,['']],
//
chess_jinchidiao:['male','qun',15,['boss_fengxing','boss_chiyu'],['boss','chessboss']],
chess_jinchidiao:['male','qun',15,['boss_bfengxing','boss_chiyu'],['boss','chessboss']],
chess_beimingjukun:['male','qun',25,['boss_wuying','cangming'],['boss','chessboss']],
chess_wuzhaojinlong:['male','qun',30,['boss_tenglong','boss_wushang'],['boss','chessboss']],
chess_dongzhuo:['male','qun',20,['jiuchi','boss_stoneqiangzheng','boss_stonebaolin'],['boss','chessboss']],