This commit is contained in:
libccy 2016-03-23 10:34:26 +08:00
parent eb898736f3
commit 9de71bb6b4
8 changed files with 2028 additions and 2053 deletions

View File

@ -3144,7 +3144,10 @@
}
_status.characterLoaded=true;
if(_status.waitingForCharacters){
game.resume();
game.createEvent('game',false).content=lib.init.start;
delete lib.init.start;
game.loop();
delete _status.waitingForCharacters;
}
if(lib.onCharacterLoad){
lib.onCharacterLoad();
@ -12968,7 +12971,7 @@
},
gameDraw:function(player,num){
var next=game.createEvent('gameDraw');
next.player=player;
next.player=player||game.me;
if(num==undefined) next.num=4;
else next.num=num;
next.content=function(){
@ -13387,6 +13390,24 @@
getExtensionConfig:function(extension,key){
return lib.config['extension_'+extension+'_'+key];
},
clearModeConfig:function(mode){
if(_status.reloading) return;
var config;
try{
config=JSON.parse(localStorage.getItem(lib.configprefix+'config'));
if(!config||typeof config!='object') throw 'err'
}
catch(err){
config={};
}
for(var i in config){
if(i.substr(i.indexOf('_mode_config')+13)==mode){
delete config[i];
}
}
localStorage.setItem(lib.configprefix+'config',JSON.stringify(config));
localStorage.removeItem(lib.configprefix+mode);
},
addPlayer:function(position,character,character2){
if(position<0||position>game.players.length+game.dead.length||position==undefined){
position=Math.ceil(Math.random()*(game.players.length+game.dead.length));
@ -22738,6 +22759,7 @@
for(i in mode[lib.config.mode].get){
get[i]=lib.init.eval(mode[lib.config.mode].get[i]);
}
lib.init.start=mode[lib.config.mode].start;
if(game.onwash){
lib.onwash.push(game.onwash);
delete game.onwash;
@ -22760,6 +22782,7 @@
if(i=='ui') continue;
if(i=='get') continue;
if(i=='config') continue;
if(i=='start') continue;
if(lib[i]==undefined) lib[i]=(get.objtype(mode[lib.config.mode][i])=='array')?[]:{};
for(j in mode[lib.config.mode][i]){
lib[i][j]=lib.init.eval(mode[lib.config.mode][i][j]);
@ -23001,9 +23024,15 @@
}
delete lib.packageReady;
ui.create.arena();
game.start();
if(lib.db&&!_status.characterLoaded){
_status.waitingForCharacters=true;
}
else{
game.createEvent('game',false).content=lib.init.start;
delete lib.init.start;
game.loop();
}
}
if(!mode[lib.config.mode]){
window.inSplash=true;

View File

@ -1,5 +1,6 @@
{
"name": "noname",
"xwalk_version": "1.7.11",
"xwalk_app_version": "1.7.11",
"xwalk_package_id": "com.widget.noname",
"xwalk_android_keep_screen_on":true,

View File

@ -1,81 +1,11 @@
'use strict';
mode.boss={
element:{
player:{
dieAfter:function(){
if(this!=game.boss){
this.storage.boss_chongzheng=0;
}
if(game.bossinfo.checkResult&&game.bossinfo.checkResult(this)===false){
return;
}
if(this==game.boss||game.players.length==1){
game.checkResult();
}
},
}
},
game:{
reserveDead:true,
changeBoss:function(name){
if(game.additionaldead){
game.additionaldead.push(game.boss);
}
else{
game.additionaldead=[game.boss];
}
game.boss.delete();
game.dead.remove(game.boss);
var boss=ui.create.player().init(name);
game.addVideo('bossSwap',game.boss,boss.name);
if(game.me==game.boss){
boss.dataset.position=0;
game.swapControl(boss);
}
else{
boss.dataset.position=7;
}
game.players.push(boss.animate('zoominanim'));
game.arrangePlayers();
game.boss=boss;
ui.arena.appendChild(boss);
boss.directgain(get.cards(4));
boss.setIdentity('zhu');
boss.identity='zhu';
},
checkResult:function(){
if(game.boss==game.me){
game.over(game.boss.isAlive());
}
else{
game.over(!game.boss.isAlive());
}
},
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var str2='挑战';
if(game.me!=game.boss){
str2+=' - '+get.translation(game.boss);
}
var name=[str,str2];
return name;
},
start:function(){
var next=game.createEvent('game',false);
next.content=function(){
"step 0"
if(lib.db&&!_status.characterLoaded){
_status.waitingForCharacters=true;
game.pause();
}
"step 1"
if(lib.config.hiddenCharacterPack.contains('boss')){
game.loadPackage('character/boss');
}
"step 2"
"step 1"
var playback=localStorage.getItem(lib.configprefix+'playback');
if(playback){
ui.create.me();
@ -106,7 +36,7 @@ mode.boss={
}
lib.init.css('layout/mode','boss');
game.delay(0.1);
"step 3"
"step 2"
var bosslist=ui.create.div('#bosslist.hidden');
event.bosslist=bosslist;
bosslist.ontouchmove = ui.click.touchScroll;
@ -237,7 +167,7 @@ mode.boss={
ui.auto.classList.add('glow');
game.save('current',event.current.name);
}
"step 4"
"step 3"
game.bossinfo=lib.boss.global;
for(var i in lib.boss[event.current.name]){
game.bossinfo[i]=lib.boss[event.current.name][i];
@ -408,7 +338,69 @@ mode.boss={
setTimeout(function(){
ui.updatehl();
},200);
},
element:{
player:{
dieAfter:function(){
if(this!=game.boss){
this.storage.boss_chongzheng=0;
}
if(game.bossinfo.checkResult&&game.bossinfo.checkResult(this)===false){
return;
}
if(this==game.boss||game.players.length==1){
game.checkResult();
}
},
}
},
game:{
reserveDead:true,
changeBoss:function(name){
if(game.additionaldead){
game.additionaldead.push(game.boss);
}
else{
game.additionaldead=[game.boss];
}
game.boss.delete();
game.dead.remove(game.boss);
var boss=ui.create.player().init(name);
game.addVideo('bossSwap',game.boss,boss.name);
if(game.me==game.boss){
boss.dataset.position=0;
game.swapControl(boss);
}
else{
boss.dataset.position=7;
}
game.players.push(boss.animate('zoominanim'));
game.arrangePlayers();
game.boss=boss;
ui.arena.appendChild(boss);
boss.directgain(get.cards(4));
boss.setIdentity('zhu');
boss.identity='zhu';
},
checkResult:function(){
if(game.boss==game.me){
game.over(game.boss.isAlive());
}
else{
game.over(!game.boss.isAlive());
}
},
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var str2='挑战';
if(game.me!=game.boss){
str2+=' - '+get.translation(game.boss);
}
var name=[str,str2];
return name;
},
bossPhaseLoop:function(){
var next=game.createEvent('phaseLoop');
@ -794,5 +786,4 @@ mode.boss={
}
}
},
config:['ban_weak','change_choice','free_choose','']
}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,103 @@
'use strict';
mode.guozhan={
start:function(){
"step 0"
var playback=localStorage.getItem(lib.configprefix+'playback');
if(playback){
ui.create.me();
ui.arena.style.display='none';
ui.system.style.display='none';
_status.playback=playback;
localStorage.removeItem(lib.configprefix+'playback');
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
store.get(parseInt(playback)).onsuccess=function(e){
if(e.target.result){
game.playVideoContent(e.target.result.video);
}
else{
alert('播放失败:找不到录像');
game.reload();
}
}
event.finish();
}
else{
game.prepareArena();
game.delay();
game.showChangeLog();
}
"step 1"
if(lib.storage.test){
lib.config.game_speed='vfast';
lib.config.low_performance=true;
_status.auto=true;
ui.auto.classList.add('glow');
}
for(var i=0;i<game.players.length;i++){
game.players[i].node.name.hide();
game.players[i].node.name2.hide();
}
game.chooseCharacter();
"step 2"
if(ui.coin){
_status.coinCoeff=get.coinCoeff([game.me.name1,game.me.name2]);
}
if(lib.storage.test){
var str='';
for(var i=0;i<game.players.length;i++){
str+=get.translation(game.players[i].name1)+' '+get.translation(game.players[i].name2)+'; ';
}
console.log(str);
}
var player;
if(_status.cheat_seat){
var seat=_status.cheat_seat.link;
if(seat==0){
player=game.me;
}
else{
player=game.players[game.players.length-seat];
}
if(!player) player=game.me;
delete _status.cheat_seat;
}
else{
player=game.players[Math.floor(Math.random()*game.players.length)];
}
event.trigger('gameStart');
game.gameDraw(player);
for(var i=0;i<game.players.length;i++){
game.players[i].name='unknown'+get.distance(player,game.players[i],'absolute');
game.players[i].node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(lib.translate[game.players[i].name]),game.players[i]);
if(game.players[i]==game.me){
lib.translate[game.players[i].name]+='(你)';
}
}
var players=get.players(lib.sort.position);
var info=[];
for(var i=0;i<players.length;i++){
info.push({
name:game.players[i].name,
translate:lib.translate[game.players[i].name],
name1:players[i].name1,
name2:players[i].name2,
});
}
_status.videoInited=true,
game.addVideo('init',null,info);
if(get.config('guozhan_mode')=='mingjiang'){
game.showIdentity(true);
}
else{
for(var i=0;i<game.players.length;i++){
game.players[i].ai.shown=0;
}
}
game.phaseLoop(player);
},
game:{
addRecord:function(bool){
if(typeof bool=='boolean'){
@ -69,112 +167,6 @@ mode.guozhan={
var name=[str,str2];
return name;
},
start:function(){
var next=game.createEvent('game',false);
next.content=function(){
"step 0"
if(lib.db&&!_status.characterLoaded){
_status.waitingForCharacters=true;
game.pause();
}
"step 1"
var playback=localStorage.getItem(lib.configprefix+'playback');
if(playback){
ui.create.me();
ui.arena.style.display='none';
ui.system.style.display='none';
_status.playback=playback;
localStorage.removeItem(lib.configprefix+'playback');
var store=lib.db.transaction(['video'],'readwrite').objectStore('video');
store.get(parseInt(playback)).onsuccess=function(e){
if(e.target.result){
game.playVideoContent(e.target.result.video);
}
else{
alert('播放失败:找不到录像');
game.reload();
}
}
event.finish();
}
else{
game.prepareArena();
game.delay();
game.showChangeLog();
}
"step 2"
if(lib.storage.test){
lib.config.game_speed='vfast';
lib.config.low_performance=true;
_status.auto=true;
ui.auto.classList.add('glow');
}
for(var i=0;i<game.players.length;i++){
game.players[i].node.name.hide();
game.players[i].node.name2.hide();
}
game.chooseCharacter();
"step 3"
if(ui.coin){
_status.coinCoeff=get.coinCoeff([game.me.name1,game.me.name2]);
}
if(lib.storage.test){
var str='';
for(var i=0;i<game.players.length;i++){
str+=get.translation(game.players[i].name1)+' '+get.translation(game.players[i].name2)+'; ';
}
console.log(str);
}
var player;
if(_status.cheat_seat){
var seat=_status.cheat_seat.link;
if(seat==0){
player=game.me;
}
else{
player=game.players[game.players.length-seat];
}
if(!player) player=game.me;
delete _status.cheat_seat;
}
else{
player=game.players[Math.floor(Math.random()*game.players.length)];
}
event.trigger('gameStart');
game.gameDraw(player);
for(var i=0;i<game.players.length;i++){
game.players[i].name='unknown'+get.distance(player,game.players[i],'absolute');
game.players[i].node.name_seat=ui.create.div('.name.name_seat',get.verticalStr(lib.translate[game.players[i].name]),game.players[i]);
if(game.players[i]==game.me){
lib.translate[game.players[i].name]+='(你)';
}
}
var players=get.players(lib.sort.position);
var info=[];
for(var i=0;i<players.length;i++){
info.push({
name:game.players[i].name,
translate:lib.translate[game.players[i].name],
name1:players[i].name1,
name2:players[i].name2,
});
}
_status.videoInited=true,
game.addVideo('init',null,info);
if(get.config('guozhan_mode')=='mingjiang'){
game.showIdentity(true);
}
else{
for(var i=0;i<game.players.length;i++){
game.players[i].ai.shown=0;
}
}
game.phaseLoop(player);
}
},
showIdentity:function(started){
if(game.phaseNumber==0&&!started) return;
for(var i=0;i<game.players.length;i++){
@ -950,7 +942,4 @@ mode.guozhan={
},
}
},
config:['player_number','initshow_draw',
'free_choose','change_identity','change_choice','change_card',
'swap','dierestart','revive','double_hp','difficulty']
}

View File

@ -1,84 +1,7 @@
'use strict';
mode.identity={
game:{
getIdentityList:function(player){
if(player.identityShown) return;
if(player==game.me) return;
if(_status.mode=='zhong'){
if(game.zhu&&game.zhu.isZhu){
return {
fan:'反',
zhong:'忠',
nei:'内',
cai:'猜',
}
}
else{
return {
fan:'反',
zhong:'忠',
nei:'内',
zhu:'主',
cai:'猜',
}
}
}
else{
return {
fan:'反',
zhong:'忠',
nei:'内',
cai:'猜',
}
}
},
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var name=[
str,
get.cnNumber(parseInt(get.config('player_number')))+'人'+
get.translation(lib.config.mode)+' - '+lib.translate[game.me.identity+'2']
];
return name;
},
addRecord:function(bool){
if(typeof bool=='boolean'){
var data=lib.config.gameRecord.identity.data;
var identity=game.me.identity;
if(identity=='mingzhong'){
identity='zhong';
}
if(!data[identity]){
data[identity]=[0,0];
}
if(bool){
data[identity][0]++;
}
else{
data[identity][1]++;
}
var list=['zhu','zhong','nei','fan'];
var str='';
for(var i=0;i<list.length;i++){
if(data[list[i]]){
str+=lib.translate[list[i]+'2']+''+data[list[i]][0]+'胜'+' '+data[list[i]][1]+'负<br>';
}
}
lib.config.gameRecord.identity.str=str;
game.saveConfig('gameRecord',lib.config.gameRecord);
}
},
start:function(){
var next=game.createEvent('game',false);
next.content=function(){
"step 0"
if(lib.db&&!_status.characterLoaded){
_status.waitingForCharacters=true;
game.pause();
}
if(!lib.config.new_tutorial){
ui.arena.classList.add('only_dialog');
}
@ -279,6 +202,76 @@ mode.identity={
game.gameDraw(game.zhong||game.zhu);
game.phaseLoop(game.zhong||game.zhu);
},
game:{
getIdentityList:function(player){
if(player.identityShown) return;
if(player==game.me) return;
if(_status.mode=='zhong'){
if(game.zhu&&game.zhu.isZhu){
return {
fan:'反',
zhong:'忠',
nei:'内',
cai:'猜',
}
}
else{
return {
fan:'反',
zhong:'忠',
nei:'内',
zhu:'主',
cai:'猜',
}
}
}
else{
return {
fan:'反',
zhong:'忠',
nei:'内',
cai:'猜',
}
}
},
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var name=[
str,
get.cnNumber(parseInt(get.config('player_number')))+'人'+
get.translation(lib.config.mode)+' - '+lib.translate[game.me.identity+'2']
];
return name;
},
addRecord:function(bool){
if(typeof bool=='boolean'){
var data=lib.config.gameRecord.identity.data;
var identity=game.me.identity;
if(identity=='mingzhong'){
identity='zhong';
}
if(!data[identity]){
data[identity]=[0,0];
}
if(bool){
data[identity][0]++;
}
else{
data[identity][1]++;
}
var list=['zhu','zhong','nei','fan'];
var str='';
for(var i=0;i<list.length;i++){
if(data[list[i]]){
str+=lib.translate[list[i]+'2']+''+data[list[i]][0]+'胜'+' '+data[list[i]][1]+'负<br>';
}
}
lib.config.gameRecord.identity.str=str;
game.saveConfig('gameRecord',lib.config.gameRecord);
}
},
showIdentity:function(me){
@ -1236,8 +1229,4 @@ mode.identity={
}
}
},
config:['player_number','double_character','double_hp',
'ban_weak','enhance_zhu','free_choose','change_identity',
'change_choice','change_card','dierestart','swap','revive',
'auto_identity','ai_strategy','ai_identity','difficulty']
}

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +1,7 @@
'use strict';
mode.versus={
game:{
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var name=[
str,'对决 - '+lib.storage.number+'v'+lib.storage.number
];
return name;
},
addRecord:function(bool){
if(typeof bool=='boolean'){
var data=lib.config.gameRecord.versus.data;
var identity=get.cnNumber(lib.storage.number)+'人';
if(!data[identity]){
data[identity]=[0,0];
}
if(bool){
data[identity][0]++;
}
else{
data[identity][1]++;
}
var list=['一人','两人','三人'];
var str='';
for(var i=0;i<list.length;i++){
if(data[list[i]]){
str+=list[i]+''+data[list[i]][0]+'胜'+' '+data[list[i]][1]+'负<br>';
}
}
lib.config.gameRecord.versus.str=str;
game.saveConfig('gameRecord',lib.config.gameRecord);
}
},
start:function(){
var next=game.createEvent('game',false);
next.content=function(){
"step 0"
if(lib.db&&!_status.characterLoaded){
_status.waitingForCharacters=true;
game.pause();
}
_status.mode=get.config('versus_mode');
"step 1"
var playback=localStorage.getItem(lib.configprefix+'playback');
@ -285,6 +244,40 @@ mode.versus={
game.me.directgain(get.cards(hs.length));
}
game.phaseLoop(_status.firstAct);
},
game:{
getVideoName:function(){
var str=get.translation(game.me.name);
if(game.me.name2){
str+='/'+get.translation(game.me.name2);
}
var name=[
str,'对决 - '+lib.storage.number+'v'+lib.storage.number
];
return name;
},
addRecord:function(bool){
if(typeof bool=='boolean'){
var data=lib.config.gameRecord.versus.data;
var identity=get.cnNumber(lib.storage.number)+'人';
if(!data[identity]){
data[identity]=[0,0];
}
if(bool){
data[identity][0]++;
}
else{
data[identity][1]++;
}
var list=['一人','两人','三人'];
var str='';
for(var i=0;i<list.length;i++){
if(data[list[i]]){
str+=list[i]+''+data[list[i]][0]+'胜'+' '+data[list[i]][1]+'负<br>';
}
}
lib.config.gameRecord.versus.str=str;
game.saveConfig('gameRecord',lib.config.gameRecord);
}
},
chooseCharacterJiange:function(){
@ -1755,5 +1748,4 @@ mode.versus={
},
}
},
config:['change_choice','ban_weak']
}