Merge branch 'libccy:PR-Branch' into PR-Branch
This commit is contained in:
commit
f9806988e4
|
@ -71,12 +71,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
fullskin:true,
|
fullskin:true,
|
||||||
type:'basic',
|
type:'basic',
|
||||||
enable:false,
|
enable:false,
|
||||||
global:'ying_destory',
|
destroy:'discardPile',
|
||||||
getYing:function(count){
|
getYing:function(count){
|
||||||
var cards=[];
|
var cards=[];
|
||||||
if(typeof count!='number') count=1;
|
if(typeof count!='number') count=1;
|
||||||
while(count--){
|
while(count--){
|
||||||
cards.push(game.createCard('ying','spade',1));
|
let card=game.createCard('ying','spade',1);
|
||||||
|
card.destroyed='discardPile';
|
||||||
|
cards.push(card);
|
||||||
}
|
}
|
||||||
return cards;
|
return cards;
|
||||||
},
|
},
|
||||||
|
@ -95,24 +97,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
//江山如故·转
|
//江山如故·转
|
||||||
//白牌
|
|
||||||
ying_destory:{
|
|
||||||
trigger:{
|
|
||||||
player:'loseAfter',
|
|
||||||
global:['loseAsyncAfter','cardsDiscardAfter','equipAfter'],
|
|
||||||
},
|
|
||||||
cardSkill:true,
|
|
||||||
forced:true,
|
|
||||||
popup:false,
|
|
||||||
filter:function(event,player){
|
|
||||||
return event.getd().some(i=>get.name(i,false)=='ying'&&get.position(i,true)=='d');
|
|
||||||
},
|
|
||||||
content:function(){
|
|
||||||
var cards=trigger.getd().filter(i=>get.name(i,false)=='ying'&&get.position(i,true)=='d');
|
|
||||||
game.cardsGotoSpecial(cards);
|
|
||||||
game.log(cards,'被移出了游戏');
|
|
||||||
},
|
|
||||||
},
|
|
||||||
//404郭嘉
|
//404郭嘉
|
||||||
jsrgqingzi:{
|
jsrgqingzi:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
|
|
@ -11609,7 +11609,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addSkill('pyzhuren_destroy');
|
//player.addSkill('pyzhuren_destroy');
|
||||||
if(!_status.pyzhuren) _status.pyzhuren={};
|
if(!_status.pyzhuren) _status.pyzhuren={};
|
||||||
var rand=0.85;
|
var rand=0.85;
|
||||||
var num=get.number(cards[0]);
|
var num=get.number(cards[0]);
|
||||||
|
@ -11627,7 +11627,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
_status.pyzhuren[name]=true;
|
_status.pyzhuren[name]=true;
|
||||||
player.gain(game.createCard(name,cards[0].name=='shandian'?'spade':cards[0].suit,1),'gain2')
|
var card=game.createCard(name,cards[0].name=='shandian'?'spade':cards[0].suit,1);
|
||||||
|
card.destroyed='discardPile';
|
||||||
|
player.gain(card,'gain2')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
ai:{
|
||||||
|
@ -11637,32 +11639,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
pyzhuren_destroy:{
|
|
||||||
trigger:{global:['loseEnd','cardsDiscardEnd']},
|
|
||||||
forced:true,
|
|
||||||
charlotte:true,
|
|
||||||
filter:function(event,player){
|
|
||||||
var cs=event.cards;
|
|
||||||
for(var i=0;i<cs.length;i++){
|
|
||||||
if(cs[i].name.indexOf('pyzhuren_')==0&&get.position(cs[i],true)=='d') return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
forceDie:true,
|
|
||||||
content:function(){
|
|
||||||
if(!_status.pyzhuren) _status.pyzhuren={};
|
|
||||||
var list=[];
|
|
||||||
var cs=trigger.cards;
|
|
||||||
for(var i=0;i<cs.length;i++){
|
|
||||||
if(cs[i].name.indexOf('pyzhuren_')==0&&get.position(cs[i],true)=='d'){
|
|
||||||
_status.pyzhuren[cs[i].name]=false;
|
|
||||||
list.push(cs[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
game.log(list,'已被移出游戏');
|
|
||||||
game.cardsGotoSpecial(list);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
pyzhuren_heart:{
|
pyzhuren_heart:{
|
||||||
audio:true,
|
audio:true,
|
||||||
trigger:{source:'damageSource'},
|
trigger:{source:'damageSource'},
|
||||||
|
|
373
game/game.js
373
game/game.js
|
@ -12744,15 +12744,10 @@
|
||||||
event.finish();
|
event.finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(card.destroyed){
|
if(card.willBeDestroyed('equip',player,event)){
|
||||||
if(player.hasSkill(card.destroyed)){
|
|
||||||
delete card.destroyed;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.finish();
|
event.finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if(event.owner){
|
else if(event.owner){
|
||||||
if(event.owner.getCards('hejsx').contains(card)){
|
if(event.owner.getCards('hejsx').contains(card)){
|
||||||
event.finish();
|
event.finish();
|
||||||
|
@ -13723,6 +13718,10 @@
|
||||||
game.getGlobalHistory().cardMove.push(event);
|
game.getGlobalHistory().cardMove.push(event);
|
||||||
var withPile=false;
|
var withPile=false;
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
|
if(cards[i].willBeDestroyed('discardPile',null,event)){
|
||||||
|
cards[i].remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(get.position(cards[i],true)=='c') withPile=true;
|
if(get.position(cards[i],true)=='c') withPile=true;
|
||||||
cards[i].discard();
|
cards[i].discard();
|
||||||
}
|
}
|
||||||
|
@ -13739,6 +13738,10 @@
|
||||||
game.getGlobalHistory().cardMove.push(event);
|
game.getGlobalHistory().cardMove.push(event);
|
||||||
var withPile=false;
|
var withPile=false;
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
|
if(cards[i].willBeDestroyed('ordering',null,event)){
|
||||||
|
cards[i].remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(get.position(cards[i],true)=='c') withPile=true;
|
if(get.position(cards[i],true)=='c') withPile=true;
|
||||||
cards[i].fix();
|
cards[i].fix();
|
||||||
ui.ordering.appendChild(cards[i]);
|
ui.ordering.appendChild(cards[i]);
|
||||||
|
@ -13758,6 +13761,10 @@
|
||||||
game.getGlobalHistory().cardMove.push(event);
|
game.getGlobalHistory().cardMove.push(event);
|
||||||
var withPile=false;
|
var withPile=false;
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
|
if(cards[i].willBeDestroyed('special',null,event)){
|
||||||
|
cards[i].remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(get.position(cards[i],true)=='c') withPile=true;
|
if(get.position(cards[i],true)=='c') withPile=true;
|
||||||
cards[i].fix();
|
cards[i].fix();
|
||||||
ui.special.appendChild(cards[i]);
|
ui.special.appendChild(cards[i]);
|
||||||
|
@ -19256,14 +19263,9 @@
|
||||||
}
|
}
|
||||||
"step 1"
|
"step 1"
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
if(cards[i].destroyed){
|
if(cards[i].willBeDestroyed('handcard',player,event)){
|
||||||
if(player.hasSkill(cards[i].destroyed)){
|
|
||||||
delete cards[i].destroyed;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
cards.splice(i--,1);
|
cards.splice(i--,1);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if(event.losing_map){
|
else if(event.losing_map){
|
||||||
for(var id in event.losing_map){
|
for(var id in event.losing_map){
|
||||||
if(event.losing_map[id][0].contains(cards[i])){
|
if(event.losing_map[id][0].contains(cards[i])){
|
||||||
|
@ -19455,14 +19457,9 @@
|
||||||
}
|
}
|
||||||
"step 1"
|
"step 1"
|
||||||
for(var i=0;i<cards.length;i++){
|
for(var i=0;i<cards.length;i++){
|
||||||
if(cards[i].destroyed){
|
if(cards[i].willBeDestroyed('expansion',player,event)){
|
||||||
if(player.hasSkill(cards[i].destroyed)){
|
|
||||||
delete cards[i].destroyed;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
cards.splice(i--,1);
|
cards.splice(i--,1);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if(event.losing_map){
|
else if(event.losing_map){
|
||||||
for(var id in event.losing_map){
|
for(var id in event.losing_map){
|
||||||
if(event.losing_map[id][0].contains(cards[i])){
|
if(event.losing_map[id][0].contains(cards[i])){
|
||||||
|
@ -19674,11 +19671,25 @@
|
||||||
cards[i].recheck();
|
cards[i].recheck();
|
||||||
|
|
||||||
var info=lib.card[cards[i].name];
|
var info=lib.card[cards[i].name];
|
||||||
if(info.destroy||cards[i]._destroy){
|
if(cards[i].hasOwnProperty('_destroy')){
|
||||||
|
if(cards[i]._destroy){
|
||||||
cards[i].delete();
|
cards[i].delete();
|
||||||
cards[i].destroyed=info.destroy||cards[i]._destroy;
|
cards[i].destroyed=card._destroy;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
else if(event.position){
|
}
|
||||||
|
else if(cards[i].hasOwnProperty('destroyed')){
|
||||||
|
if(event.getlx!==false&&event.position&&cards[i].willBeDestroyed(event.position.id,null,event)){
|
||||||
|
cards[i].delete();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(info.destroy){
|
||||||
|
cards[i].delete();
|
||||||
|
cards[i].destroyed=info.destroy;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(event.position){
|
||||||
if(_status.discarded){
|
if(_status.discarded){
|
||||||
if(event.position==ui.discardPile){
|
if(event.position==ui.discardPile){
|
||||||
_status.discarded.add(cards[i]);
|
_status.discarded.add(cards[i]);
|
||||||
|
@ -19801,7 +19812,7 @@
|
||||||
"step 4"
|
"step 4"
|
||||||
if(event.toRenku){
|
if(event.toRenku){
|
||||||
_status.renku.addArray(cards.filter(function(card){
|
_status.renku.addArray(cards.filter(function(card){
|
||||||
return !card.destroyed;
|
return !card.willBeDestroyed('renku',null,event);
|
||||||
}));
|
}));
|
||||||
if(_status.renku.length>6){
|
if(_status.renku.length>6){
|
||||||
var cards=_status.renku.splice(0,_status.renku.length-6);
|
var cards=_status.renku.splice(0,_status.renku.length-6);
|
||||||
|
@ -20336,15 +20347,10 @@
|
||||||
else if(get.position(cards[0])=='c') event.updatePile=true;
|
else if(get.position(cards[0])=='c') event.updatePile=true;
|
||||||
}
|
}
|
||||||
"step 1"
|
"step 1"
|
||||||
if(cards[0].destroyed){
|
if(cards[0].willBeDestroyed('judge',player,event)){
|
||||||
if(player.hasSkill(cards[0].destroyed)){
|
|
||||||
delete cards[0].destroyed;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
event.finish();
|
event.finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if(event.relatedLose){
|
else if(event.relatedLose){
|
||||||
var owner=event.relatedLose.player;
|
var owner=event.relatedLose.player;
|
||||||
if(owner.getCards('hejsx').contains(card)){
|
if(owner.getCards('hejsx').contains(card)){
|
||||||
|
@ -22072,31 +22078,11 @@
|
||||||
}
|
}
|
||||||
var skills=info[3].slice(0);
|
var skills=info[3].slice(0);
|
||||||
this.clearSkills(true);
|
this.clearSkills(true);
|
||||||
this.classList.add('fullskin');
|
|
||||||
if(!game.minskin&&get.is.newLayout()&&!info[4].contains('minskin')){
|
|
||||||
this.classList.remove('minskin');
|
|
||||||
this.node.avatar.setBackground(character,'character');
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.node.avatar.setBackground(character,'character');
|
|
||||||
if(info[4].contains('minskin')){
|
|
||||||
this.classList.add('minskin');
|
|
||||||
}
|
|
||||||
else if(game.minskin){
|
|
||||||
this.classList.add('minskin');
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
this.classList.remove('minskin');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var hp1=get.infoHp(info[2]);
|
var hp1=get.infoHp(info[2]);
|
||||||
var maxHp1=get.infoMaxHp(info[2]);
|
var maxHp1=get.infoMaxHp(info[2]);
|
||||||
var hujia1=get.infoHujia(info[2]);
|
var hujia1=get.infoHujia(info[2]);
|
||||||
|
|
||||||
this.node.avatar.show();
|
|
||||||
this.node.count.show();
|
|
||||||
this.node.equips.show();
|
|
||||||
this.name=character;
|
this.name=character;
|
||||||
this.name1=character;
|
this.name1=character;
|
||||||
this.sex=info[0];
|
this.sex=info[0];
|
||||||
|
@ -22115,14 +22101,8 @@
|
||||||
if(!this.hiddenSkills) this.hiddenSkills=[];
|
if(!this.hiddenSkills) this.hiddenSkills=[];
|
||||||
this.hiddenSkills.addArray(skills);
|
this.hiddenSkills.addArray(skills);
|
||||||
skills=[];
|
skills=[];
|
||||||
this.classList.add(_status.video?'unseen_v':'unseen');
|
|
||||||
this.name='unknown';
|
this.name='unknown';
|
||||||
if(!this.node.name_seat&&!_status.video){
|
|
||||||
this.node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(get.translation(this.name)),this);
|
|
||||||
this.node.name_seat.dataset.nature=get.groupnature(this.group);
|
|
||||||
}
|
|
||||||
this.sex='male';
|
this.sex='male';
|
||||||
//this.group='unknown';
|
|
||||||
this.storage.nohp=true;
|
this.storage.nohp=true;
|
||||||
skills.add('g_hidden_ai');
|
skills.add('g_hidden_ai');
|
||||||
}
|
}
|
||||||
|
@ -22134,10 +22114,7 @@
|
||||||
if(!info2[4]){
|
if(!info2[4]){
|
||||||
info2[4]=[];
|
info2[4]=[];
|
||||||
}
|
}
|
||||||
this.classList.add('fullskin2');
|
|
||||||
this.node.avatar2.setBackground(character2,'character');
|
|
||||||
|
|
||||||
this.node.avatar2.show();
|
|
||||||
this.name2=character2;
|
this.name2=character2;
|
||||||
var hp2=get.infoHp(info2[2]);
|
var hp2=get.infoHp(info2[2]);
|
||||||
var maxHp2=get.infoMaxHp(info2[2]);
|
var maxHp2=get.infoMaxHp(info2[2]);
|
||||||
|
@ -22177,17 +22154,13 @@
|
||||||
this.hp=hp1+hp2-3;
|
this.hp=hp1+hp2-3;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
this.node.count.classList.add('p2');
|
|
||||||
if(info2[4].contains('hiddenSkill')&&!this.noclick){
|
if(info2[4].contains('hiddenSkill')&&!this.noclick){
|
||||||
if(!this.hiddenSkills) this.hiddenSkills=[];
|
if(!this.hiddenSkills) this.hiddenSkills=[];
|
||||||
this.hiddenSkills.addArray(info2[3]);
|
this.hiddenSkills.addArray(info2[3]);
|
||||||
this.classList.add(_status.video?'unseen2_v':'unseen2');
|
|
||||||
this.storage.nohp=true;
|
this.storage.nohp=true;
|
||||||
skills.add('g_hidden_ai');
|
skills.add('g_hidden_ai');
|
||||||
}
|
}
|
||||||
else skills=skills.concat(info2[3]);
|
else skills=skills.concat(info2[3]);
|
||||||
|
|
||||||
this.node.name2.innerHTML=get.slimName(character2);
|
|
||||||
}
|
}
|
||||||
if(this.storage.nohp){
|
if(this.storage.nohp){
|
||||||
this.storage.rawHp=this.hp;
|
this.storage.rawHp=this.hp;
|
||||||
|
@ -22208,6 +22181,9 @@
|
||||||
this.checkConflict();
|
this.checkConflict();
|
||||||
}
|
}
|
||||||
lib.group.add(this.group);
|
lib.group.add(this.group);
|
||||||
|
|
||||||
|
this.$init(character,character2);
|
||||||
|
|
||||||
if(this.inits){
|
if(this.inits){
|
||||||
for(var i=0;i<this.inits.length;i++){
|
for(var i=0;i<this.inits.length;i++){
|
||||||
this.inits[i](this);
|
this.inits[i](this);
|
||||||
|
@ -22221,6 +22197,76 @@
|
||||||
if(update!==false) this.$update();
|
if(update!==false) this.$update();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
$init(character,character2){
|
||||||
|
this.classList.add('fullskin');
|
||||||
|
var info=lib.character[character];
|
||||||
|
if(!info){
|
||||||
|
info=['','',1,[],[]];
|
||||||
|
}
|
||||||
|
if(!info[4]){
|
||||||
|
info[4]=[];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!game.minskin&&get.is.newLayout()&&!info[4].contains('minskin')){
|
||||||
|
this.classList.remove('minskin');
|
||||||
|
this.node.avatar.setBackground(character,'character');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.node.avatar.setBackground(character,'character');
|
||||||
|
if(info[4].contains('minskin')){
|
||||||
|
this.classList.add('minskin');
|
||||||
|
}
|
||||||
|
else if(game.minskin){
|
||||||
|
this.classList.add('minskin');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.classList.remove('minskin');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.node.avatar.show();
|
||||||
|
this.node.count.show();
|
||||||
|
this.node.equips.show();
|
||||||
|
|
||||||
|
this.node.intro.innerHTML=lib.config.intro;
|
||||||
|
this.node.name.dataset.nature=get.groupnature(this.group);
|
||||||
|
lib.setIntro(this);
|
||||||
|
this.node.name.innerHTML=get.slimName(character);
|
||||||
|
if(this.classList.contains('minskin')&&this.node.name.querySelectorAll('br').length>=4){
|
||||||
|
this.node.name.classList.add('long');
|
||||||
|
}
|
||||||
|
if(info[4].contains('hiddenSkill')&&!this.noclick){
|
||||||
|
this.classList.add(_status.video?'unseen_v':'unseen');
|
||||||
|
if(!this.node.name_seat&&!_status.video){
|
||||||
|
this.node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(get.translation(this.name)),this);
|
||||||
|
this.node.name_seat.dataset.nature=get.groupnature(this.group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(character2&&lib.character[character2]){
|
||||||
|
var info2=lib.character[character2];
|
||||||
|
if(!info2){
|
||||||
|
info2=['','',1,[],[]];
|
||||||
|
}
|
||||||
|
if(!info2[4]){
|
||||||
|
info2[4]=[];
|
||||||
|
}
|
||||||
|
this.classList.add('fullskin2');
|
||||||
|
this.node.avatar2.setBackground(character2,'character');
|
||||||
|
this.node.avatar2.show();
|
||||||
|
this.name2=character2;
|
||||||
|
|
||||||
|
this.node.count.classList.add('p2');
|
||||||
|
if(info2[4].contains('hiddenSkill')&&!this.noclick){
|
||||||
|
this.classList.add(_status.video?'unseen2_v':'unseen2');
|
||||||
|
}
|
||||||
|
this.node.name2.innerHTML=get.slimName(character2);
|
||||||
|
}
|
||||||
|
if(this.storage.nohp){
|
||||||
|
this.node.hp.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
initOL(name,character){
|
initOL(name,character){
|
||||||
this.node.avatar.setBackground(character,'character');
|
this.node.avatar.setBackground(character,'character');
|
||||||
this.node.avatar.show();
|
this.node.avatar.show();
|
||||||
|
@ -22311,36 +22357,22 @@
|
||||||
reinit(from,to,maxHp,online){
|
reinit(from,to,maxHp,online){
|
||||||
var info1=lib.character[from];
|
var info1=lib.character[from];
|
||||||
var info2=lib.character[to];
|
var info2=lib.character[to];
|
||||||
var smooth=true;
|
var smooth=true,replaced=null;
|
||||||
if(maxHp=='nosmooth'){
|
if(maxHp=='nosmooth'){
|
||||||
smooth=false;
|
smooth=false;
|
||||||
maxHp=null;
|
maxHp=null;
|
||||||
}
|
}
|
||||||
if(this.name2==from){
|
if(this.name2==from){
|
||||||
this.name2=to;
|
this.name2=to;
|
||||||
if(this.isUnseen(0)&&!this.isUnseen(1)){
|
|
||||||
this.sex=info2[0];
|
|
||||||
this.name=to;
|
|
||||||
}
|
|
||||||
if(smooth) this.smoothAvatar(true);
|
|
||||||
this.node.avatar2.setBackground(to,'character');
|
|
||||||
this.node.name2.innerHTML=get.slimName(to);
|
|
||||||
}
|
}
|
||||||
else if(this.name==from||this.name1==from){
|
else if(this.name==from||this.name1==from){
|
||||||
if(this.name1==from){
|
if(this.name1==from){
|
||||||
this.name1=to;
|
this.name1=to;
|
||||||
}
|
}
|
||||||
if(!this.classList.contains('unseen2')){
|
if(!this.isUnseen(1)){
|
||||||
this.name=to;
|
this.name=to;
|
||||||
this.sex=info2[0];
|
this.sex=info2[0];
|
||||||
}
|
}
|
||||||
if(smooth) this.smoothAvatar(false);
|
|
||||||
this.node.avatar.setBackground(to,'character');
|
|
||||||
this.node.name.innerHTML=get.slimName(to);
|
|
||||||
|
|
||||||
if(this==game.me&&ui.fakeme){
|
|
||||||
ui.fakeme.style.backgroundImage=this.node.avatar.style.backgroundImage;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
return this;
|
return this;
|
||||||
|
@ -22403,11 +22435,75 @@
|
||||||
hp:this.maxHp,
|
hp:this.maxHp,
|
||||||
avatar2:this.name2==to
|
avatar2:this.name2==to
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.$reinit(from,to,maxHp,online);
|
||||||
this.update();
|
this.update();
|
||||||
}
|
}
|
||||||
|
$reinit(from,to,maxHp,online){
|
||||||
|
var smooth=true;
|
||||||
|
if(maxHp=='nosmooth'){
|
||||||
|
smooth=false;
|
||||||
|
maxHp=null;
|
||||||
|
}
|
||||||
|
if(this.name2==to){
|
||||||
|
if(smooth) this.smoothAvatar(true);
|
||||||
|
this.node.avatar2.setBackground(to,'character');
|
||||||
|
this.node.name2.innerHTML=get.slimName(to);
|
||||||
|
}
|
||||||
|
else if(this.name==to||this.name1==to){
|
||||||
|
if(smooth) this.smoothAvatar(false);
|
||||||
|
this.node.avatar.setBackground(to,'character');
|
||||||
|
this.node.name.innerHTML=get.slimName(to);
|
||||||
|
|
||||||
|
if(this==game.me&&ui.fakeme){
|
||||||
|
ui.fakeme.style.backgroundImage=this.node.avatar.style.backgroundImage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
uninit(){
|
uninit(){
|
||||||
this.expandedSlots={};
|
this.expandedSlots={};
|
||||||
this.disabledSlots={};
|
this.disabledSlots={};
|
||||||
|
|
||||||
|
delete this.name;
|
||||||
|
delete this.name1;
|
||||||
|
delete this.sex;
|
||||||
|
delete this.group;
|
||||||
|
delete this.hp;
|
||||||
|
delete this.maxHp;
|
||||||
|
delete this.hujia;
|
||||||
|
this.clearSkills(true);
|
||||||
|
|
||||||
|
if(this.name2){
|
||||||
|
delete this.singleHp;
|
||||||
|
delete this.name2;
|
||||||
|
}
|
||||||
|
for(var mark in this.marks){
|
||||||
|
this.marks[mark].remove();
|
||||||
|
}
|
||||||
|
ui.updatem(this);
|
||||||
|
|
||||||
|
this.skipList=[];
|
||||||
|
this.skills=this.skills.filter(skill=>{
|
||||||
|
return lib.skill[skill]&&lib.skill[skill].superCharlotte;
|
||||||
|
});
|
||||||
|
this.initedSkills=[];
|
||||||
|
this.additionalSkills={};
|
||||||
|
this.disabledSkills={};
|
||||||
|
this.hiddenSkills=[];
|
||||||
|
this.awakenedSkills=[];
|
||||||
|
this.forbiddenSkills={};
|
||||||
|
this.phaseNumber=0;
|
||||||
|
this.stat=[{card:{},skill:{}}];
|
||||||
|
this.tempSkills={};
|
||||||
|
this.storage={};
|
||||||
|
this.marks={};
|
||||||
|
this.ai={friend:[],enemy:[],neutral:[]};
|
||||||
|
|
||||||
|
this.$uninit();
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
$uninit(){
|
||||||
this.$syncDisable();
|
this.$syncDisable();
|
||||||
if(this.isDisabledJudge()){
|
if(this.isDisabledJudge()){
|
||||||
game.broadcastAll(function(player){
|
game.broadcastAll(function(player){
|
||||||
|
@ -22429,51 +22525,25 @@
|
||||||
this.node.name_seat.remove();
|
this.node.name_seat.remove();
|
||||||
delete this.node.name_seat;
|
delete this.node.name_seat;
|
||||||
}
|
}
|
||||||
if(this.storage.nohp) this.node.hp.show();
|
this.node.hp.show();
|
||||||
this.classList.remove('unseen');
|
this.classList.remove('unseen');
|
||||||
this.classList.remove('unseen2');
|
this.classList.remove('unseen2');
|
||||||
delete this.name;
|
|
||||||
delete this.name1;
|
|
||||||
delete this.sex;
|
|
||||||
delete this.group;
|
|
||||||
delete this.hp;
|
|
||||||
delete this.maxHp;
|
|
||||||
delete this.hujia;
|
|
||||||
this.clearSkills(true);
|
|
||||||
this.node.identity.style.backgroundColor='';
|
this.node.identity.style.backgroundColor='';
|
||||||
this.node.intro.innerHTML='';
|
this.node.intro.innerHTML='';
|
||||||
this.node.name.innerHTML='';
|
this.node.name.innerHTML='';
|
||||||
this.node.hp.innerHTML='';
|
this.node.hp.innerHTML='';
|
||||||
this.node.count.innerHTML='0';
|
this.node.count.innerHTML='0';
|
||||||
if(this.name2){
|
|
||||||
delete this.singleHp;
|
|
||||||
this.node.avatar2.hide();
|
this.node.avatar2.hide();
|
||||||
this.node.name2.innerHTML='';
|
this.node.name2.innerHTML='';
|
||||||
this.classList.remove('fullskin2')
|
this.classList.remove('fullskin2');
|
||||||
delete this.name2;
|
|
||||||
this.node.count.classList.remove('p2');
|
this.node.count.classList.remove('p2');
|
||||||
}
|
|
||||||
for(var mark in this.marks){
|
for(var mark in this.marks){
|
||||||
this.marks[mark].remove();
|
this.marks[mark].remove();
|
||||||
}
|
}
|
||||||
ui.updatem(this);
|
ui.updatem(this);
|
||||||
|
|
||||||
this.skipList=[];
|
|
||||||
this.skills=this.skills.contains('cangji_yozuru')?['cangji_yozuru']:[];
|
|
||||||
this.initedSkills=[];
|
|
||||||
this.additionalSkills={};
|
|
||||||
this.disabledSkills={};
|
|
||||||
this.hiddenSkills=[];
|
|
||||||
this.awakenedSkills=[];
|
|
||||||
this.forbiddenSkills={};
|
|
||||||
this.phaseNumber=0;
|
|
||||||
this.stat=[{card:{},skill:{}}];
|
|
||||||
this.tempSkills={};
|
|
||||||
this.storage={};
|
|
||||||
this.marks={};
|
|
||||||
this.ai={friend:[],enemy:[],neutral:[]};
|
|
||||||
|
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
getLeft(){
|
getLeft(){
|
||||||
return this.offsetLeft;
|
return this.offsetLeft;
|
||||||
|
@ -29910,6 +29980,26 @@
|
||||||
buildIntro(noclick){
|
buildIntro(noclick){
|
||||||
if(!noclick) lib.setIntro(this);
|
if(!noclick) lib.setIntro(this);
|
||||||
}
|
}
|
||||||
|
//判断一张牌进入某个区域后是否会被销毁
|
||||||
|
willBeDestroyed(targetPosition,player,event){
|
||||||
|
const destroyed=this.destroyed;
|
||||||
|
if(typeof destroyed=='function'){
|
||||||
|
return destroyed(card,targetPosition,player,event);
|
||||||
|
}
|
||||||
|
else if(lib.skill[destroyed]){
|
||||||
|
if(player){
|
||||||
|
if(player.hasSkill(destroyed)){
|
||||||
|
delete this.destroyed;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if(typeof destroyed=='string'){
|
||||||
|
return (destroyed==targetPosition);
|
||||||
|
}
|
||||||
|
return destroyed;
|
||||||
|
}
|
||||||
hasNature(nature,player){
|
hasNature(nature,player){
|
||||||
return game.hasNature(this,nature,player);
|
return game.hasNature(this,nature,player);
|
||||||
}
|
}
|
||||||
|
@ -30007,14 +30097,6 @@
|
||||||
card[2]='sha';
|
card[2]='sha';
|
||||||
card[3]='thunder';
|
card[3]='thunder';
|
||||||
}
|
}
|
||||||
// else if(card[2]=='kamisha'){
|
|
||||||
// card[2]='sha';
|
|
||||||
// card[3]='kami';
|
|
||||||
// }
|
|
||||||
// else if(card[2]=='icesha'){
|
|
||||||
// card[2]='sha';
|
|
||||||
// card[3]='ice';
|
|
||||||
// }
|
|
||||||
else if(card[2]=='cisha'){
|
else if(card[2]=='cisha'){
|
||||||
card[2]='sha';
|
card[2]='sha';
|
||||||
card[3]='stab';
|
card[3]='stab';
|
||||||
|
@ -30040,9 +30122,7 @@
|
||||||
}
|
}
|
||||||
var cardnum=card[1]||'';
|
var cardnum=card[1]||'';
|
||||||
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
||||||
if(cardnum>0&&cardnum<14){
|
|
||||||
cardnum=['A','2','3','4','5','6','7','8','9','10','J','Q','K'][cardnum-1];
|
|
||||||
}
|
|
||||||
if(!lib.card[card[2]]){
|
if(!lib.card[card[2]]){
|
||||||
lib.card[card[2]]={};
|
lib.card[card[2]]={};
|
||||||
}
|
}
|
||||||
|
@ -30058,6 +30138,39 @@
|
||||||
}
|
}
|
||||||
delete info.global;
|
delete info.global;
|
||||||
}
|
}
|
||||||
|
this.suit=card[0];
|
||||||
|
this.number=parseInt(card[1])||0;
|
||||||
|
this.name=card[2];
|
||||||
|
|
||||||
|
if(_status.connectMode&&!game.online&&lib.cardOL&&!this.cardid){
|
||||||
|
this.cardid=get.id();
|
||||||
|
lib.cardOL[this.cardid]=this;
|
||||||
|
}
|
||||||
|
if(!_status.connectMode&&!_status.video){
|
||||||
|
this.cardid=get.id();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$init(card);
|
||||||
|
|
||||||
|
if(this.inits){
|
||||||
|
for(var i=0;i<this.inits.length;i++){
|
||||||
|
this.inits[i](this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(typeof info.init=='function') info.init();
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param {[string, number, string, string]} card
|
||||||
|
*/
|
||||||
|
$init(card){
|
||||||
|
var info=lib.card[card[2]];
|
||||||
|
var cardnum=card[1]||'';
|
||||||
|
if(parseInt(cardnum)==cardnum) cardnum=parseInt(cardnum);
|
||||||
|
if(cardnum>0&&cardnum<14){
|
||||||
|
cardnum=['A','2','3','4','5','6','7','8','9','10','J','Q','K'][cardnum-1];
|
||||||
|
}
|
||||||
if(this.name){
|
if(this.name){
|
||||||
this.classList.remove('epic');
|
this.classList.remove('epic');
|
||||||
this.classList.remove('legend');
|
this.classList.remove('legend');
|
||||||
|
@ -30296,9 +30409,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.node.name2.innerHTML=get.translation(card[0])+cardnum+' '+name;
|
this.node.name2.innerHTML=get.translation(card[0])+cardnum+' '+name;
|
||||||
this.suit=card[0];
|
|
||||||
this.number=parseInt(card[1])||0;
|
|
||||||
this.name=card[2];
|
|
||||||
this.classList.add('card');
|
this.classList.add('card');
|
||||||
if(card[3]){
|
if(card[3]){
|
||||||
let natures=get.natureList(card[3]);
|
let natures=get.natureList(card[3]);
|
||||||
|
@ -30310,12 +30420,6 @@
|
||||||
delete this.nature;
|
delete this.nature;
|
||||||
}
|
}
|
||||||
if(info.subtype) this.classList.add(info.subtype);
|
if(info.subtype) this.classList.add(info.subtype);
|
||||||
if(this.inits){
|
|
||||||
for(var i=0;i<this.inits.length;i++){
|
|
||||||
this.inits[i](this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(typeof info.init=='function') info.init();
|
|
||||||
this.node.range.innerHTML='';
|
this.node.range.innerHTML='';
|
||||||
switch(get.subtype(this,false)){
|
switch(get.subtype(this,false)){
|
||||||
case 'equip1':
|
case 'equip1':
|
||||||
|
@ -30344,13 +30448,6 @@
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(_status.connectMode&&!game.online&&lib.cardOL&&!this.cardid){
|
|
||||||
this.cardid=get.id();
|
|
||||||
lib.cardOL[this.cardid]=this;
|
|
||||||
}
|
|
||||||
if(!_status.connectMode&&!_status.video){
|
|
||||||
this.cardid=get.id();
|
|
||||||
}
|
|
||||||
var tags=[];
|
var tags=[];
|
||||||
if(Array.isArray(card[4])){
|
if(Array.isArray(card[4])){
|
||||||
tags.addArray(card[4]);
|
tags.addArray(card[4]);
|
||||||
|
@ -30511,7 +30608,7 @@
|
||||||
if(this._uncheck.length==0) this.classList.remove('uncheck');
|
if(this._uncheck.length==0) this.classList.remove('uncheck');
|
||||||
}
|
}
|
||||||
discard(bool){
|
discard(bool){
|
||||||
if(!this.destroyed){
|
if(!this.willBeDestroyed('discardPile',null,event)){
|
||||||
ui.discardPile.appendChild(this);
|
ui.discardPile.appendChild(this);
|
||||||
}
|
}
|
||||||
this.fix();
|
this.fix();
|
||||||
|
@ -36286,6 +36383,10 @@
|
||||||
const cards=event.cards;
|
const cards=event.cards;
|
||||||
const pile=ui.cardPile;
|
const pile=ui.cardPile;
|
||||||
for(let i=0;i<cards.length;i++){
|
for(let i=0;i<cards.length;i++){
|
||||||
|
if(cards[i].willBeDestroyed('cardPile',null,event)){
|
||||||
|
cards[i].remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(event.insert_index){
|
if(event.insert_index){
|
||||||
cards[i].fix();
|
cards[i].fix();
|
||||||
pile.insertBefore(cards[i],event.insert_index(event,cards[i]));
|
pile.insertBefore(cards[i],event.insert_index(event,cards[i]));
|
||||||
|
|
Loading…
Reference in New Issue