This commit is contained in:
libccy 2016-09-01 18:36:59 +08:00
parent 02e8455f25
commit d2a3d07ed8
7 changed files with 152 additions and 80 deletions

View File

@ -514,6 +514,7 @@ card.extra={
jiu_info:'出牌阶段,对自己使用,令自己的下一张使用的【杀】造成的伤害+1每回合限使用1次 濒死阶段对自己使用回复1点体力',
huogong:'火攻',
tiesuo:'铁锁连环',
tiesuo_info:'出牌阶段使用选择1至2个角色分别横置或重置这些角色',
huogong_bg:'攻',
huogong_info:'目标角色展示一张手牌然后若你能弃掉一张与所展示牌相同花色的手牌则火攻对该角色造成1点火焰伤害。',
tiesuo_bg:'锁',

View File

@ -302,7 +302,7 @@ card.swd={
return hs.length>1||(hs.length==1&&hs[0]!=card);
},
filterTarget:function(card,player,target){
return target!=player;
return target!=player&&!target.hasSkill('jiguanyuan');
},
content:function(){
'step 0'
@ -315,12 +315,15 @@ card.swd={
'step 1'
player.$throw(result.cards);
player.lose(result.cards,ui.special);
ui.special.appendChild(cards[0]);
event.togive=[cards[0],result.cards[0]];
game.delay();
'step 2'
target.gain(event.togive).delay=false;
// target.gain(event.togive).delay=false;
target.$gain2(event.togive);
game.log(target,'从',player,'获得了',event.togive)
target.storage.jiguanyuan=event.togive;
target.addSkill('jiguanyuan');
game.log(target,'从',player,'获得了',event.togive);
player.draw();
},
ai:{
@ -1363,6 +1366,21 @@ card.swd={
},
},
skill:{
jiguanyuan:{
mark:'card',
intro:{
content:'cards'
},
trigger:{player:'phaseEnd'},
forced:true,
temp:true,
popup:false,
content:function(){
player.gain(player.storage.jiguanyuan,'gain2');
player.removeSkill('jiguanyuan');
delete player.storage.jiguanyuan;
}
},
_qinglongzhigui:{
trigger:{player:'phaseBegin'},
forced:true,
@ -3649,7 +3667,7 @@ card.swd={
jiguanfeng:'机关蜂',
jiguanfeng_info:'出牌阶段对一名其他角色使用,目标需打出一张闪,否则受到一点伤害,然后与你各流失一点体力',
jiguanyuan:'机关鸢',
jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌交给该角色,然后摸一张牌',
jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌置于一名其他角色的武将牌上,然后摸一张牌;该角色于下一回合结束时获得武将牌上的牌',
jiguantong:'机关火筒',
jiguantong_ab:'火筒',
jiguantong_info:'出牌阶段对所有其他角色使用,目标弃置一张手牌,或受到一点火焰伤害;若没有人因此受到伤害,使用者摸一张牌',

View File

@ -30,7 +30,7 @@ character.ow={
trigger:{source:'damageBegin'},
forced:true,
filter:function(event,player){
return !player.hujia&&event.card&&event.card.name=='sha'&&event.notLink();
return player.storage.zhongjia&&!player.hujia&&event.card&&event.card.name=='sha'&&event.notLink();
},
content:function(){
trigger.num++;
@ -2571,7 +2571,7 @@ character.ow={
},
translate:{
mengji:'猛击',
mengji_info:'锁定技,当你没有护甲时,你的杀造成的伤害+1',
mengji_info:'锁定技,若你已发动重盾,当你没有护甲时,你的杀造成的伤害+1',
lzhongjia:'重盾',
lzhongjia_info:'游戏开始时你获得8点护甲出牌阶段限一次你可以弃置一张牌并将一点护甲分给一名没有护甲的其他角色',
paotai:'炮台',

View File

@ -4284,6 +4284,7 @@
var splash=ui.create.div('#splash',document.body);
if(lib.config.touchscreen){
splash.classList.add('touch');
lib.setScroll(splash);
}
for(var i=0;i<lib.config.all.mode.length;i++){
var node=ui.create.div('.hidden',splash,clickNode);
@ -5633,7 +5634,7 @@
else if(ai.basic.chooseCard(event.ai1)){
if(ai.basic.chooseTarget(event.ai2)){
ui.click.ok();
_status.event.aiexclude.length=0;
event.aiexcludeclear=true;
}
else{
if(!event.norestore){
@ -5709,19 +5710,15 @@
delete event.buttoned;
}
"step 4"
if(event.aiexcludeclear){
delete event.aiexcludeclear;
event.aiexclude.length=0;
}
delete _status.noclearcountdown;
if(event.skillDialog&&get.objtype(event.skillDialog)=='div'){
event.skillDialog.close();
}
if(event.result&&event.result.bool&&!game.online&&!event.nouse){
// if(event.logSkill){
// if(typeof event.logSkill=='string'){
// player.logSkill(event.logSkill);
// }
// else if(Array.isArray(event.logSkill)){
// player.logSkill.apply(player,event.logSkill);
// }
// }
player.useResult(event.result,event);
}
else if(event._sendskill){
@ -10823,6 +10820,10 @@
get.itemtype(this.storage[skill])=='card'){
this.markSkill(skill,null,this.storage[skill]);
}
else if(info.mark=='card'&&
get.itemtype(this.storage[skill])=='cards'){
this.markSkill(skill,null,this.storage[skill][0]);
}
else if(info.mark=='image'){
this.markSkill(skill,null,ui.create.card(null,'noclick').init([null,null,skill]));
}
@ -11046,6 +11047,7 @@
exclude.push(arguments[i]);
}
for(i=0;i<this.skills.length;i++){
if(lib.skill[this.skills[i]].temp) continue;
if(!exclude.contains(this.skills[i])){
list.push(this.skills[i]);
}
@ -12919,6 +12921,13 @@
}
return this;
},
getLogv:function(){
for(var i=1;i<=3;i++){
var event=this.getParent(i);
if(event&&event.logvid) return event.logvid;
}
return null;
},
send:function(){
this.player.send(function(name,args,set,event,skills){
game.me.applySkills(skills);
@ -13258,6 +13267,15 @@
ui.update();
return item;
},
addText:function(str,center){
if(center!==false){
this.add('<div class="text center">'+str+'</div>');
}
else{
this.add('<div class="text">'+str+'</div>');
}
return this;
},
addSmall:function(item,noclick){
return this.add(item,noclick,true);
},
@ -14087,9 +14105,11 @@
},
forced:true,
popup:false,
logv:false,
content:function(){
"step 0"
player.link();
event.logvid=trigger.getLogv();
"step 1"
var players=game.players.slice(0);
lib.tempSortSeat=player;
@ -19487,19 +19507,7 @@
game.log(str);
},str);
if(!_status.video&&!game.online){
var logvid=_status.event.getParent().logvid;
if(!logvid){
logvid=_status.event.getParent(2);
if(logvid){
logvid=logvid.logvid;
}
}
if(!logvid){
logvid=_status.event.getParent(3);
if(logvid){
logvid=logvid.logvid;
}
}
var logvid=_status.event.getLogv();
if(logvid){
game.logv(logvid,'<div class="text center">'+str+'</div>');
}
@ -19534,6 +19542,7 @@
},
logv:function(player,card,targets,event,forced,logvid){
var node=ui.create.div();
node.node={};
logvid=logvid||get.id();
if(!player){
player=_status.event.getParent().logvid;
@ -19565,6 +19574,7 @@
else{
return;
}
node.node.avatar=avatar;
avatar.style.transform='';
avatar.className='avatar';
if(card=='die'){
@ -19576,7 +19586,8 @@
avatar.style.opacity=0.6;
}
else{
ui.create.div('',get.translation(card,'skill'),avatar).dataset.nature='water';
node.node.text=ui.create.div('',get.translation(card,'skill'),avatar);
node.node.text.dataset.nature='water';
node.skill=card;
}
node.appendChild(avatar);
@ -19598,6 +19609,7 @@
return;
}
avatar.style.transform='';
node.node.avatar2=avatar;
avatar.classList.add('avatar2');
node.appendChild(avatar);
}
@ -19641,6 +19653,7 @@
else{
return;
}
node.node.avatar=avatar;
avatar.style.transform='';
avatar.classList.add('avatar2');
node.appendChild(avatar);
@ -19672,6 +19685,7 @@
event=event||_status.event;
event.logvid=node.logvid;
}
return node;
},
putDB:function(type,id,item,callback){
if(!lib.db) return item;
@ -28936,15 +28950,17 @@
}
if(node._hoverfunc&&!node._nopup){
var dialog=node._hoverfunc.call(node,e);
dialog.classList.add('popped');
ui.window.appendChild(dialog);
lib.placePoppedDialog(dialog,e);
if(node._hoverwidth){
dialog.style.width=node._hoverwidth+'px';
dialog._hovercustomed=true;
}
node._mouseenterdialog=dialog;
node._mouseentercreated=true;
if(dialog){
dialog.classList.add('popped');
ui.window.appendChild(dialog);
lib.placePoppedDialog(dialog,e);
if(node._hoverwidth){
dialog.style.width=node._hoverwidth+'px';
dialog._hovercustomed=true;
}
node._mouseenterdialog=dialog;
node._mouseentercreated=true;
}
}
},hoveration);
}
@ -29178,7 +29194,7 @@
},
hoverplayer:function(e){
var node=get.nodeintro(this,true);
node.style.zIndex=21;
if(node) node.style.zIndex=21;
return node;
},
longpressdown:function(e){
@ -29796,19 +29812,6 @@
}
game.resume();
},
oldintro:function(e){
if(_status.dragged) return;
_status.clicked=true;
if(this.classList.contains('player')&&!this.name){
return;
}
var i,translation,intro,str;
ui.click.intro2.call(this);
game.pause2();
ui.control.hide();
ui.intro=get.nodeintro(this).open();
ui.intro.source=this;
},
intro:function(e){
if(_status.dragged) return;
_status.clicked=true;
@ -31892,7 +31895,7 @@
}
var i,translation,intro,str;
if(typeof node._customintro=='function'){
node._customintro(uiintro);
if(node._customintro(uiintro)===false) return;
}
else if(Array.isArray(node._customintro)){
var caption=node._customintro[0];
@ -31914,8 +31917,11 @@
uiintro.add(capt);
if(node.isUnderControl()){
uiintro.add('<div class="text center">手牌</div>');
uiintro.addSmall(node.get('h'));
var hs=node.get('h');
if(hs.length){
uiintro.add('<div class="text center">手牌</div>');
uiintro.addSmall(node.get('h'));
}
}
var skills=node.get('s',false,false);
@ -31984,7 +31990,7 @@
}
}
}
if(lib.config.show_favourite&&lib.character[node.name]&&get.mode()!='story'){
if(lib.config.show_favourite&&lib.character[node.name]&&get.mode()!='story'&&!node.isMin()&&game.players.contains(node)){
var addFavourite=ui.create.div('.text.center');
addFavourite.link=node.link;
if(lib.config.favouriteCharacter.contains(node.name)){

View File

@ -1206,6 +1206,10 @@ margin-bottom: 5px;
background: rgba(63, 119, 173,1);
border: 1px solid rgba(31, 82, 131, 1);
}
.treasure>.hp>div:not(.lost){
background: rgba(63, 119, 173,1) !important;
border: 1px solid rgba(31, 82, 131, 1) !important;
}
.hp.actcount>div.overflow:not(.lost){
background: rgb(154, 154, 154);
border: 1px solid rgb(109, 109, 109);

View File

@ -39,8 +39,9 @@ mode.brawl={
var showcase=this.nodes[this.nodes.length-1];
showcase.style.height=(dialog.content.offsetHeight-showcase.offsetTop)+'px';
if(typeof showcase.action=='function'){
showcase.action(showcase._showcased?false:true);
showcase._showcased=true;
if(showcase.action(showcase._showcased?false:true)!==false){
showcase._showcased=true;
}
}
if(this._nostart) start.style.display='none';
else start.style.display='';
@ -140,7 +141,10 @@ mode.brawl={
mode:'identity',
};
for(var i in lib.brawl.scene.template){
brawl[i]=lib.brawl.scene.template[i];
brawl[i]=get.copy(lib.brawl.scene.template[i]);
}
if(!scene.gameDraw){
brawl.content.noGameDraw=true;
}
brawl.content.scene=scene;
lib.brawl['scene_'+name]=brawl;
@ -1192,7 +1196,6 @@ mode.brawl={
if(game.me.identity=='zhu') return false;
return 'nozhu';
},
noGameDraw:true,
}
},
showcase:function(init){
@ -1215,7 +1218,7 @@ mode.brawl={
var scenename=ui.create.node('input',ui.create.div(style2,'','场景名称:',this),{width:'120px'});
scenename.type='text';
scenename.style.marginTop='20px';
var sceneintro=ui.create.node('input',ui.create.div(style2,'','场景名称',this),{width:'120px'});
var sceneintro=ui.create.node('input',ui.create.div(style2,'','场景描述',this),{width:'120px'});
sceneintro.type='text';
sceneintro.style.marginBottom='10px';
@ -1308,6 +1311,9 @@ mode.brawl={
if(replacepile.checked){
scene.replacepile=true;
}
if(gameDraw.checked){
scene.gameDraw=true;
}
if(turnsresult.value!='none'){
scene.turns=[parseInt(turns.value),turnsresult.value]
}
@ -1531,11 +1537,16 @@ mode.brawl={
ac_j.style.marginRight='3px';
ac_j.style.width='85px';
var line11=ui.create.div(style2,this,'','替换牌堆');
var line11=ui.create.div(style2,this,'','<span>替换牌堆</span>');
line11.style.display='none';
var replacepile=ui.create.node('input',line11);
replacepile.type='checkbox';
ui.create.node('span',line11,'开局摸牌',{marginLeft:'10px'});
var gameDraw=ui.create.node('input',line11);
gameDraw.type='checkbox';
gameDraw.checked=true;
var capt_t=ui.create.div(style2,'','牌堆顶',this);
var line6_t=ui.create.div(style2,this);
var capt_b=ui.create.div(style2,'','牌堆底',this);
@ -1589,6 +1600,19 @@ mode.brawl={
};
var createCharacter=function(info){
var player=ui.create.player(null,true);
player._customintro=function(uiintro){
if(info.handcards.length){
uiintro.addText('手牌',true);
var hs=ui.create.div('.buttons');
for(var i=0;i<info.handcards.length;i++){
hs.appendChild(fakecard(info.handcards[i]));
}
uiintro.add(hs);
}
else{
return false;
}
}
player.info=info;
var name=info.name,name3=info.name2;
if(name=='random'){
@ -1760,6 +1784,7 @@ mode.brawl={
if(all===true){
replacepile.checked=false;
gameDraw.checked=true;
turns.value='1';
turnsresult.value='none';
washes.value='1';
@ -1788,6 +1813,8 @@ mode.brawl={
_status.currentScene=scene.name;
line7.innerHTML='';
if(scene.replacepile) replacepile.checked=true;
if(scene.gameDraw) gameDraw.checked=true;
else gameDraw.checked=false;
if(scene.turns){
turns.value=scene.turns[0].toString();
turnsresult.value=scene.turns[1];

View File

@ -297,10 +297,22 @@ mode.tafang={
_status.tafangend.push(tafangdes.toString());
}
}
_status.gameStarted=true;
event.trigger('gameStart');
game.phaseLoopTafang();
},
element:{
content:{
chessMechRemove:function(){
game.treasures.remove(player);
setTimeout(function(){
player.delete();
},500);
delete lib.posmap[player.dataset.position];
game.addVideo('deleteChessPlayer',player);
game.addObstacle(player.dataset.position);
game.log(get.translation(player)+'使用期限已到');
}
},
player:{
dieAfter:function(source){
var player=this;
@ -386,7 +398,7 @@ mode.tafang={
var difficulty=parseInt(get.config('tafang_difficulty'));
for(var i=0;i<map.bufang.length;i++){
var button=map.bufang[i];
button.node.name.style.top='8px';
// button.node.name.style.top='8px';
button.node.intro.classList.add('showintro');
button.node.intro.classList.add('tafang');
if(button.link=='chess_mech_nengliangqiu'||
@ -612,7 +624,7 @@ mode.tafang={
}
if(event.chooseObstacle){
game.removeObstacle(event.obstacle.dataset.position);
game.addChessPlayer(event.currentBufang,'treasure',0,event.obstacle.dataset.position).life=3;
var mech=game.addChessPlayer(event.currentBufang,'treasure',0,event.obstacle.dataset.position);
event.chooseObstacle=false;
event.goto(2);
}
@ -791,15 +803,13 @@ mode.tafang={
}
game.delay();
}
if(mech.life--<=0){
game.treasures.remove(mech);
setTimeout(function(){
mech.delete();
},500);
delete lib.posmap[mech.dataset.position];
game.addVideo('deleteChessPlayer',mech);
game.addObstacle(mech.dataset.position);
game.log(get.translation(mech)+'使用期限已到');
if(--mech.hp<=0){
var next=game.createEvent('chessMechRemove');
next.player=mech;
next.setContent('chessMechRemove');
}
else{
mech.update();
}
event.redo();
}
@ -983,6 +993,7 @@ mode.tafang={
game.log('小型陷阱发动');
var target=list.randomGet();
target.turnOver();
game.logv(player,'chess_mech_weixingxianjing_skill',[target]).node.text.style.display='none';
player.line(target,'green');
}
}
@ -1019,6 +1030,7 @@ mode.tafang={
}
if(list1.length||list2.length){
game.log('能量球发动');
game.logv(player,'chess_mech_nengliangqiu_skill',list1.concat(list2)).node.text.style.display='none';
}
}
},
@ -1041,6 +1053,7 @@ mode.tafang={
if(list.length){
game.log('木桶发动');
var targets=list.randomGets(1);
game.logv(player,'chess_mech_mutong_skill',targets).node.text.style.display='none';
player.line(targets,'green');
for(var i=0;i<targets.length;i++){
targets[i].damage('nosource');
@ -1069,6 +1082,7 @@ mode.tafang={
if(list.length){
game.log('光明泉发动');
player.line(list,'green');
game.logv(player,'chess_mech_guangmingquan_skill',list.slice(0)).node.text.style.display='none';
while(list.length){
list.shift().recover();
}
@ -1095,6 +1109,7 @@ mode.tafang={
if(list.length){
game.log('机关人发动');
player.line(list,'green');
game.logv(player,'chess_mech_jiguanren_skill',list.slice(0)).node.text.style.display='none';
event.list=list;
}
else{
@ -1136,6 +1151,7 @@ mode.tafang={
if(he.length){
target.discard(he.randomGet());
}
game.logv(player,'chess_mech_gongchengche_skill',[target]).node.text.style.display='none';
}
}
},
@ -1172,12 +1188,12 @@ mode.tafang={
},
characterPack:{
mode_tafang:{
chess_mech_guangmingquan:['','',0,['chess_mech_guangmingquan_skill'],['boss']],
chess_mech_nengliangqiu:['','',0,['chess_mech_nengliangqiu_skill'],['boss']],
chess_mech_jiguanren:['','',0,['chess_mech_jiguanren_skill'],['boss']],
chess_mech_weixingxianjing:['','',0,['chess_mech_weixingxianjing_skill'],['boss']],
chess_mech_mutong:['','',0,['chess_mech_mutong_skill'],['boss']],
chess_mech_gongchengche:['','',0,['chess_mech_gongchengche_skill'],['boss']],
chess_mech_guangmingquan:['','',3,['chess_mech_guangmingquan_skill'],['boss']],
chess_mech_nengliangqiu:['','',3,['chess_mech_nengliangqiu_skill'],['boss']],
chess_mech_jiguanren:['','',3,['chess_mech_jiguanren_skill'],['boss']],
chess_mech_weixingxianjing:['','',3,['chess_mech_weixingxianjing_skill'],['boss']],
chess_mech_mutong:['','',3,['chess_mech_mutong_skill'],['boss']],
chess_mech_gongchengche:['','',3,['chess_mech_gongchengche_skill'],['boss']],
}
},
cardPack:{