v1.10.1.0.1

v1.10.1.0.1
This commit is contained in:
Spmario233 2023-09-18 21:03:28 +08:00 committed by GitHub
commit 4ef8c89f3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 378 additions and 247 deletions

View File

@ -604,6 +604,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
}, },
mark:true, mark:true,
markimage2:'image/card/muniu_small.png',
intro:{ intro:{
content:function(storage,player){ content:function(storage,player){
var muniu=player.getEquip('muniu'); var muniu=player.getEquip('muniu');

View File

@ -1098,7 +1098,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
charlotte:true, charlotte:true,
filter:(event,player)=>{ filter:(event,player)=>{
if(!event.olqifan_discard) return false;
var num=player.getStorage('olqifan').length,pos=('jeh').slice(0,num); var num=player.getStorage('olqifan').length,pos=('jeh').slice(0,num);
return num>0&&player.countCards(pos)>0; return num>0&&player.countCards(pos)>0;
}, },
@ -1122,14 +1121,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else card=get.autoViewAs({name,isCard:true}); else card=get.autoViewAs({name,isCard:true});
event.result.card=card; event.result.card=card;
player.markAuto('olqifan',[get.type2(card,false)]); player.markAuto('olqifan',[get.type2(card,false)]);
event.getParent().set('olqifan_discard',true); var id=get.id();
player.when('chooseToUseAfter') player.when('chooseToUseAfter')
.filter((evt)=>evt==event.getParent())
.filter(lib.skill.olqifan_discard.filter) .filter(lib.skill.olqifan_discard.filter)
.then(()=>{ .then(()=>{
event.maxNum=Math.min(3,player.getStorage('olqifan').length); event.maxNum=Math.min(3,player.getStorage('olqifan').length);
event.num=0; event.num=0;
}) })
.then(lib.skill.olqifan_discard.content) .then(lib.skill.olqifan_discard.content)
.translation('器翻');
}, },
filterCard:function(){return false}, filterCard:function(){return false},
selectCard:-1, selectCard:-1,

View File

@ -2045,7 +2045,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=trigger.target; var target=trigger.target;
event.target=target; event.target=target;
trigger.targets.remove(target); trigger.targets.remove(target);
trigger.triggeredTargets1.remove(target); //trigger.triggeredTargets1.remove(target);
trigger.untrigger(); trigger.untrigger();
game.delayx(); game.delayx();
'step 1' 'step 1'

View File

@ -4715,7 +4715,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
countdown:{ countdown:{
trigger:{player:'useCardAfter'}, trigger:{player:'useCardAfter'},
mark:true, mark:true,
marktext:'💀', marktext:'',
silent:true, silent:true,
forced:true, forced:true,
charlotte:true, charlotte:true,

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.10.1', 'v1.10.1.0.1',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -6199,6 +6199,7 @@ window.noname_asset_list=[
'image/card/mtg_youlin.jpg', 'image/card/mtg_youlin.jpg',
'image/card/mujiaren.png', 'image/card/mujiaren.png',
'image/card/muniu.png', 'image/card/muniu.png',
'image/card/muniu_small.png',
'image/card/mutoumianju.png', 'image/card/mutoumianju.png',
'image/card/nanman.png', 'image/card/nanman.png',
'image/card/numa.png', 'image/card/numa.png',

View File

@ -1,5 +1,5 @@
"use strict"; "use strict";
(()=>{ {
if(!localStorage.getItem('gplv3_noname_alerted')){ if(!localStorage.getItem('gplv3_noname_alerted')){
if(confirm('①无名杀是一款基于GPLv3协议的开源软件\n你可以在遵守GPLv3协议的基础上任意使用修改并转发《无名杀》以及所有基于《无名杀》开发的拓展。\n点击“确定”即代表您认可并接受GPLv3协议↓\nhttps://www.gnu.org/licenses/gpl-3.0.html\n②无名杀官方发布地址仅有GitHub仓库\n其他所有的所谓“无名杀”社群包括但不限于绝大多数“官方”QQ群、QQ频道等均为玩家自发组织与无名杀官方无关')){ if(confirm('①无名杀是一款基于GPLv3协议的开源软件\n你可以在遵守GPLv3协议的基础上任意使用修改并转发《无名杀》以及所有基于《无名杀》开发的拓展。\n点击“确定”即代表您认可并接受GPLv3协议↓\nhttps://www.gnu.org/licenses/gpl-3.0.html\n②无名杀官方发布地址仅有GitHub仓库\n其他所有的所谓“无名杀”社群包括但不限于绝大多数“官方”QQ群、QQ频道等均为玩家自发组织与无名杀官方无关')){
localStorage.setItem('gplv3_noname_alerted',true); localStorage.setItem('gplv3_noname_alerted',true);
@ -3938,17 +3938,17 @@
init:true, init:true,
unfrequent:true, unfrequent:true,
}, },
show_skillnamepinyin:{
name:'显示技能名拼音',
intro:'在武将资料卡显示技能名拼音',
init:true,
unfrequent:true,
},
show_characternamepinyin:{ show_characternamepinyin:{
name:'显示武将名拼音等信息', name:'显示武将名拼音等信息',
intro:'在武将资料卡显示武将名及其拼音、性别、势力、体力等信息', intro:'在武将资料卡显示武将名及其拼音、性别、势力、体力等信息',
init:true, init:true,
unfrequent:true, unfrequent:true,
},
show_skillnamepinyin:{
name:'显示技能名拼音',
intro:'在武将资料卡显示技能名拼音',
init:true,
unfrequent:true,
} }
} }
}, },
@ -7275,31 +7275,31 @@
} }
}, },
comparator:{ comparator:{
e:function(){ equals:function(){
if(arguments.length==0) return false; if(arguments.length==0) return false;
if(arguments.length==1) return true; if(arguments.length==1) return true;
for(let i=1;i<arguments.length;++i) if(arguments[i]!==arguments[0])return false; for(let i=1;i<arguments.length;++i) if(arguments[i]!==arguments[0])return false;
return true; return true;
}, },
ei:function(){ equalAny:function(){
if(arguments.length==0) return false; if(arguments.length==0) return false;
if(arguments.length==1) return true; if(arguments.length==1) return true;
for(let i=1;i<arguments.length;++i) if(arguments[i]===arguments[0])return true; for(let i=1;i<arguments.length;++i) if(arguments[i]===arguments[0])return true;
return false; return false;
}, },
ne:function(){ notEquals:function(){
if(arguments.length==0) return false; if(arguments.length==0) return false;
if(arguments.length==1) return true; if(arguments.length==1) return true;
for(let i=1;i<arguments.length;++i) if(arguments[i]===arguments[0])return false; for(let i=1;i<arguments.length;++i) if(arguments[i]===arguments[0])return false;
return true; return true;
}, },
nei:function(){ notEqualAny:function(){
if(arguments.length==0) return false; if(arguments.length==0) return false;
if(arguments.length==1) return true; if(arguments.length==1) return true;
for(let i=1;i<arguments.length;++i) if(arguments[i]!==arguments[0])return true; for(let i=1;i<arguments.length;++i) if(arguments[i]!==arguments[0])return true;
return false; return false;
}, },
te:function(){ typeEquals:function(){
if(arguments.length==0)return false; if(arguments.length==0)return false;
if(arguments.length==1)return arguments[0]!==null; if(arguments.length==1)return arguments[0]!==null;
const type=typeof arguments[0]; const type=typeof arguments[0];
@ -8323,7 +8323,7 @@
toLoad--; toLoad--;
if(toLoad) return; if(toLoad) return;
if(_status.importing){ if(_status.importing){
let promises=lib.creation.a; let promises=lib.creation.array;
for(const type in _status.importing){ for(const type in _status.importing){
promises.addArray(_status.importing[type]) promises.addArray(_status.importing[type])
} }
@ -8404,22 +8404,22 @@
window.game=game; window.game=game;
game.dynamicStyle.init(); game.dynamicStyle.init();
Object.defineProperty(lib.creation,"a",{ Object.defineProperty(lib.creation,"array",{
enumerable:true, enumerable:true,
get:()=>[], get:()=>[],
set:()=>null set:()=>null
}); });
Object.defineProperty(lib.creation,"o",{ Object.defineProperty(lib.creation,"object",{
enumerable:true, enumerable:true,
get:()=>({}), get:()=>({}),
set:()=>null set:()=>null
}); });
Object.defineProperty(lib.creation,"no",{ Object.defineProperty(lib.creation,"nullObject",{
enumerable:true, enumerable:true,
get:()=>Object.create(null), get:()=>Object.create(null),
set:()=>null set:()=>null
}); });
Object.defineProperty(lib.creation,"s",{ Object.defineProperty(lib.creation,"string",{
enumerable:true, enumerable:true,
get:()=>"", get:()=>"",
set:()=>null set:()=>null
@ -9724,7 +9724,7 @@
_status.extension=lib.extensions[i][0]; _status.extension=lib.extensions[i][0];
_status.evaluatingExtension=lib.extensions[i][3]; _status.evaluatingExtension=lib.extensions[i][3];
if (typeof lib.extensions[i][1]=="function") if (typeof lib.extensions[i][1]=="function")
yield (gnc.is.coroutine(lib.extensions[i][1])?gnc.of(lib.extensions[i][1]):lib.extensions[i][1])(lib.extensions[i][2],lib.extensions[i][4]); yield (gnc.is.coroutine(lib.extensions[i][1])?gnc.of(lib.extensions[i][1]):lib.extensions[i][1]).call(lib.extensions[i],lib.extensions[i][2],lib.extensions[i][4]);
if(lib.extensions[i][4]){ if(lib.extensions[i][4]){
if(lib.extensions[i][4].character){ if(lib.extensions[i][4].character){
for(var j in lib.extensions[i][4].character.character){ for(var j in lib.extensions[i][4].character.character){
@ -10016,8 +10016,7 @@
js:(path,file,onload,onerror)=>{ js:(path,file,onload,onerror)=>{
if(path[path.length-1]=='/') path=path.slice(0,path.length-1); if(path[path.length-1]=='/') path=path.slice(0,path.length-1);
if(path==`${lib.assetURL}mode`&&lib.config.all.stockmode.indexOf(file)==-1){ if(path==`${lib.assetURL}mode`&&lib.config.all.stockmode.indexOf(file)==-1){
lib.init[`setMode_${file}`](); lib.genAwait(lib.init[`setMode_${file}`]()).then(onload);
onload();
return; return;
} }
if(Array.isArray(file)){ if(Array.isArray(file)){
@ -10235,47 +10234,103 @@
localStorage.removeItem(lib.configprefix+'background'); localStorage.removeItem(lib.configprefix+'background');
} }
}, },
//by 诗笺、Tipx-L parsex:function(item){
parsex:function(func){ //by 诗笺、Tipx-L
//Remove all comments function Legacy(func){
//移除所有注释 //Remove all comments
var str=func.toString().replace(/((?:(?:^[ \t]*)?(?:\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\/(?:[ \t]*\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/)))?|\/\/(?:[^\\]|\\(?:\r?\n)?)*?(?:\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/))|(?=\r?\n))))+)|("(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|(?:\r?\n|[\s\S])[^\/"'\\\s]*)/mg,'$2').trim(); //移除所有注释
//获取第一个 { 后的所有字符 var str=func.toString().replace(/((?:(?:^[ \t]*)?(?:\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\/(?:[ \t]*\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/)))?|\/\/(?:[^\\]|\\(?:\r?\n)?)*?(?:\r?\n(?=[ \t]*(?:\r?\n|\/\*|\/\/))|(?=\r?\n))))+)|("(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|(?:\r?\n|[\s\S])[^\/"'\\\s]*)/mg,'$2').trim();
str=str.slice(str.indexOf('{')+1); //获取第一个 { 后的所有字符
//func中要写步骤的话必须要写step 0 str=str.slice(str.indexOf('{')+1);
if(str.indexOf('step 0')==-1){ //func中要写步骤的话必须要写step 0
str='{if(event.step==1) {event.finish();return;}\n'+str; if(str.indexOf('step 0')==-1){
}else{ str='{if(event.step==1) {event.finish();return;}\n'+str;
var skip=0; }else{
//每层最多找99个step var skip=0;
for (var k=0;k<99;k++) { //每层最多找99个step
//正则表达式 for (var k=0;k<99;k++) {
var reg=new RegExp(`['"]step ${k}['"]`); //正则表达式
var result=str.slice(skip).match(reg); var reg=new RegExp(`['"]step ${k}['"]`);
if(result==null) break; var result=str.slice(skip).match(reg);
var insertStr; if(result==null) break;
if(k==0){ var insertStr;
insertStr=`switch(step){case 0:`; if(k==0){
}else{ insertStr=`switch(step){case 0:`;
insertStr=`break;case ${k}:`; }else{
} insertStr=`break;case ${k}:`;
var copy=str; }
copy=copy.slice(0,skip+result.index)+insertStr+copy.slice(skip+result.index+result[0].length); var copy=str;
//测试是否有错误 copy=copy.slice(0,skip+result.index)+insertStr+copy.slice(skip+result.index+result[0].length);
try{ //测试是否有错误
new Function(copy); try{
str=copy; new Function(copy);
skip+=result.index+insertStr.length; str=copy;
}catch(error){ skip+=result.index+insertStr.length;
k--; }catch(error){
skip+=result.index+result[0].length; k--;
skip+=result.index+result[0].length;
}
} }
str=`if(event.step==${k}){event.finish();return;}`+str;
} }
str=`if(event.step==${k}){event.finish();return;}`+str; return (new Function('event','step','source','player','target','targets',
'card','cards','skill','forced','num','trigger','result',
'_status','lib','game','ui','get','ai',str));
}
switch(typeof item){
case "object":
if(Array.isArray(item)){
let lastEvent=null;
return (event,step,source,player,target,targets,card,cards,skill,forced,num,trigger,result,_status,lib,game,ui,get,ai)=>{
if(step>=item.length) return event.finish();
var current=item[step];
lastEvent=current(event,{
event:event,
step:step,
source:source,
player:player,
target:target,
targets:targets,
card:card,
cards:cards,
skill:skill,
forced:forced,
num:num,
trigger:trigger,
result:result
},(lastEvent&&("result" in lastEvent))?lastEvent.result:null);
}
}
else{
// TODO: Parse Common Object
throw new Error("NYI: Parse Common Object");
}
case "function":
if (gnc.is.generatorFunc(item)) {
let gen,lastEvent;
return (event,step,source,player,target,targets,card,cards,skill,forced,num,trigger,result,_status,lib,game,ui,get,ai)=>{
if(!gen)gen=item(event,{
event:event,
step:step,
source:source,
player:player,
target:target,
targets:targets,
card:card,
cards:cards,
skill:skill,
forced:forced,
num:num,
trigger:trigger,
result:result
});
var res=gen.next((lastEvent&&("result" in lastEvent))?lastEvent.result:null);
if(res.done) event.finish();
else lastEvent=res.value;
}
}
else return Legacy(item);
} }
return (new Function('event','step','source','player','target','targets',
'card','cards','skill','forced','num','trigger','result',
'_status','lib','game','ui','get','ai',str));
}, },
eval:function(func){ eval:function(func){
if(typeof func=='function'){ if(typeof func=='function'){
@ -19177,6 +19232,18 @@
* 使用者只需要关注技能的效果而不是技能的本身 * 使用者只需要关注技能的效果而不是技能的本身
*/ */
when:function(){ when:function(){
if(!_status.postReconnect.player_when) _status.postReconnect.player_when=[
function(map){
for(var i in map){
lib.skill[i]={
charlotte:true,
forced:true,
popup:false,
}
if(typeof map[i]=='string') lib.translate[i]=map[i];
}
},{}
];
var triggerNames=Array.from(arguments); var triggerNames=Array.from(arguments);
if(triggerNames.length==0) throw 'player.when的参数数量应大于0'; if(triggerNames.length==0) throw 'player.when的参数数量应大于0';
var skillName='player_when_'+Math.random().toString(36).slice(-8); var skillName='player_when_'+Math.random().toString(36).slice(-8);
@ -19210,7 +19277,20 @@
writable:true, writable:true,
value:skill value:skill
}); });
game.broadcast(function(skillName){
Object.defineProperty(lib.skill,skillName,{
configurable:true,
enumerable:false,
writable:true,
value:{
forced:true,
charlotte:true,
popup:false,
}
});
},skillName);
this.addSkill(skillName); this.addSkill(skillName);
_status.postReconnect.player_when[1][skillName]=true;
return{ return{
filter(fun){ filter(fun){
if(lib.skill[skillName]!=skill) throw `This skill has been destroyed`; if(lib.skill[skillName]!=skill) throw `This skill has been destroyed`;
@ -19251,7 +19331,10 @@
}, },
translation(translation){ translation(translation){
if(lib.skill[skillName]!=skill) throw `This skill has been destroyed`; if(lib.skill[skillName]!=skill) throw `This skill has been destroyed`;
if(typeof translation=='string') lib.translate[skillName]=translation; if(typeof translation=='string'){
_status.postReconnect.player_when[1][skillName]=translation;
game.broadcastAll((skillName,translation)=>lib.translate[skillName]=translation,skillName,translation)
}
return this; return this;
}, },
assgin(obj) { assgin(obj) {
@ -24836,6 +24919,11 @@
node.style['box-shadow']='none'; node.style['box-shadow']='none';
node.style['background-size']='contain'; node.style['background-size']='contain';
} }
else if(lib.skill[name]&&lib.skill[name].markimage2){
let img=ui.create.div('.background.skillmark',node);
img.setBackgroundImage(lib.skill[name].markimage2);
img.style['background-size']='contain';
}
else{ else{
var str=lib.translate[name+'_bg']; var str=lib.translate[name+'_bg'];
if(!str||str[0]=='+'||str[0]=='-'){ if(!str||str[0]=='+'||str[0]=='-'){
@ -28603,16 +28691,19 @@
} }
return this; return this;
}, },
setContent:function(name){ setContent:function(item){
if(typeof name=='function'){ switch(typeof item){
this.content=lib.init.parsex(name); case "object":
} case "function":
else{ this.content=lib.init.parsex(item);
if(!lib.element.content[name]._parsed){ break;
lib.element.content[name]=lib.init.parsex(lib.element.content[name]); default:
lib.element.content[name]._parsed=true; if(!lib.element.content[item]._parsed){
} lib.element.content[item]=lib.init.parsex(lib.element.content[item]);
this.content=lib.element.content[name]; lib.element.content[item]._parsed=true;
}
this.content=lib.element.content[item];
break;
} }
return this; return this;
}, },
@ -32519,8 +32610,7 @@
'妹子,交个朋友吧', '妹子,交个朋友吧',
], ],
other:{ other:{
bool:(item)=>Boolean(item), ignore:()=>void 0
ignore:()=>{}
} }
}; };
const game={ const game={
@ -32560,15 +32650,15 @@
//基于钩子的添加势力方法 //基于钩子的添加势力方法
addGroup:(id,short,name,config)=>{ addGroup:(id,short,name,config)=>{
if(!id) throw new TypeError(); if(!id) throw new TypeError();
if(lib.comparator.te(short,"object")){ if(lib.comparator.typeEquals(short,"object")){
config=short; config=short;
short=null; short=null;
} }
if(lib.comparator.te(name,"object")){ if(lib.comparator.typeEquals(name,"object")){
config=name; config=name;
name=null; name=null;
} }
if(!lib.comparator.te(short,"string")&&short){ if(!lib.comparator.typeEquals(short,"string")&&short){
name=short; name=short;
} }
lib.group.add(id); lib.group.add(id);
@ -33737,23 +33827,23 @@
} }
} }
}, },
import:function(type,content){ import:function(type,content,url){
if(type=='extension'){ if(type=='extension'){
if(typeof _status.extensionLoading=="undefined")_status.extensionLoading=[];
const promise=game.loadExtension(content); const promise=game.loadExtension(content);
if(typeof _status.extensionLoading=="undefined")_status.extensionLoading=[];
_status.extensionLoading.add(promise); _status.extensionLoading.add(promise);
return promise; return promise;
} }
else{ else{
if(!lib.imported[type])lib.imported[type]={}; if(!lib.imported[type])lib.imported[type]={};
if(typeof _status.importing=="undefined")_status.importing={};
if(!_status.importing[type])_status.importing[type]=[];
const promise=Promise.resolve((gnc.is.generator(content)?gnc.of(content):content)(lib,game,ui,get,ai,_status)).then(content2=>{ const promise=Promise.resolve((gnc.is.generator(content)?gnc.of(content):content)(lib,game,ui,get,ai,_status)).then(content2=>{
if(content2.name){ if(content2.name){
lib.imported[type][content2.name]=content2; lib.imported[type][content2.name]=content2;
delete content2.name; delete content2.name;
} }
}); });
if(typeof _status.importing=="undefined")_status.importing={};
if(!_status.importing[type])_status.importing[type]=[];
_status.importing[type].add(promise); _status.importing[type].add(promise);
return promise; return promise;
} }
@ -33879,7 +33969,7 @@
} }
if(obj.precontent){ if(obj.precontent){
_status.extension=obj.name; _status.extension=obj.name;
yield (gnc.is.generatorFunc(obj.precontent)?gnc.of(obj.precontent):obj.precontent)(cfg); yield (gnc.is.generatorFunc(obj.precontent)?gnc.of(obj.precontent):obj.precontent).call(obj,cfg);
delete _status.extension; delete _status.extension;
} }
if(obj.content){ if(obj.content){
@ -36530,12 +36620,12 @@
splash:imgsrc, splash:imgsrc,
fromextension:true fromextension:true
} }
lib.init['setMode_'+name]=function(){ lib.init['setMode_'+name]=gnc.of(function*(){
game.import('mode',function(lib,game,ui,get,ai,_status){ yield game.import('mode',function(lib,game,ui,get,ai,_status){
info.name=name; info.name=name;
return info; return info;
}); });
} });
if(!lib.config.extensionInfo[extname]){ if(!lib.config.extensionInfo[extname]){
lib.config.extensionInfo[extname]={}; lib.config.extensionInfo[extname]={};
} }
@ -38238,7 +38328,8 @@
}, },
loadModeAsync:function(name,callback){ loadModeAsync:function(name,callback){
window.game=game; window.game=game;
var script=lib.init.js(lib.assetURL+'mode',name,function(){ var script=lib.init.js(lib.assetURL+'mode',name,gnc.of(function*(){
yield Promise.allSettled(_status.importing.mode);
if(!lib.config.dev) delete window.game; if(!lib.config.dev) delete window.game;
script.remove(); script.remove();
var content=lib.imported.mode[name]; var content=lib.imported.mode[name];
@ -38247,7 +38338,7 @@
delete lib.imported.mode; delete lib.imported.mode;
} }
callback(content); callback(content);
}); }));
}, },
switchMode:function(name,configx){ switchMode:function(name,configx){
if(!lib.layoutfixed.contains(name)){ if(!lib.layoutfixed.contains(name)){
@ -38261,7 +38352,8 @@
} }
} }
window.game=game; window.game=game;
var script=lib.init.js(lib.assetURL+'mode',name,function(){ var script=lib.init.js(lib.assetURL+'mode',name,gnc.of(function*(){
yield Promise.allSettled(_status.importing.mode);
if(!lib.config.dev) delete window.game; if(!lib.config.dev) delete window.game;
script.remove(); script.remove();
var mode=lib.imported.mode; var mode=lib.imported.mode;
@ -38436,7 +38528,7 @@
game.loop(); game.loop();
}); });
} }
}); }));
}, },
loadMode:function(mode){ loadMode:function(mode){
var next=game.createEvent('loadMode',false); var next=game.createEvent('loadMode',false);
@ -46325,7 +46417,8 @@
} }
} }
else if(updates[i].indexOf('image/card')==0){ else if(updates[i].indexOf('image/card')==0){
if(updates[i].indexOf('qiaosi_card')!=11&&!skipcard.contains(updates[i].slice(11,updates[i].lastIndexOf('.')))){ let cardname=updates[i].slice(11,updates[i].lastIndexOf('.'));
if(lib.card[cardname]&&!skipcard.contains(cardname)){
updates.splice(i--,1); updates.splice(i--,1);
} }
} }
@ -58997,4 +59090,4 @@
get:get get:get
}; };
lib.init.init(); lib.init.init();
})(); }

View File

@ -1,6 +1,6 @@
window.noname_update={ window.noname_update={
version:'1.10.1', version:'1.10.1.0.1',
update:'1.9.126.1', update:'1.10.1',
changeLog:[ changeLog:[
'整合@rintim @mengxinzxz @Tipx-L @chen079 @lieren2023 @universe-st @nonameShijian @copcap的Pull Request', '整合@rintim @mengxinzxz @Tipx-L @chen079 @lieren2023 @universe-st @nonameShijian @copcap的Pull Request',
'增加/更改一系列全新的机制写法', '增加/更改一系列全新的机制写法',
@ -16,54 +16,54 @@ window.noname_update={
//'LICENSE', //'LICENSE',
'card/extra.js', 'card/extra.js',
//'card/gujian.js', //'card/gujian.js',
'card/guozhan.js', //'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
//'card/hearth.js', //'card/hearth.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
'card/mtg.js', //'card/mtg.js',
//'card/sp.js', //'card/sp.js',
//'card/standard.js', //'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/yunchou.js', //'card/yunchou.js',
'card/yingbian.js', //'card/yingbian.js',
'card/yongjian.js', //'card/yongjian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.js',
'character/clan.js', //'character/clan.js',
'character/collab.js', //'character/collab.js',
'character/ddd.js', //'character/ddd.js',
'character/diy.js', //'character/diy.js',
'character/extra.js', //'character/extra.js',
//'character/gujian.js', //'character/gujian.js',
'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
'character/huicui.js', //'character/huicui.js',
'character/jsrg.js', //'character/jsrg.js',
'character/mobile.js', //'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
'character/offline.js', //'character/offline.js',
'character/old.js', //'character/old.js',
//'character/ow.js', //'character/ow.js',
'character/rank.js', //'character/rank.js',
'character/refresh.js', //'character/refresh.js',
'character/sb.js', //'character/sb.js',
'character/shenhua.js', //'character/shenhua.js',
'character/shiji.js', //'character/shiji.js',
'character/sp.js', 'character/sp.js',
'character/sp2.js', 'character/sp2.js',
'character/standard.js', //'character/standard.js',
'character/tw.js', //'character/tw.js',
//'character/swd.js', //'character/swd.js',
//'character/xiake.js', //'character/xiake.js',
'character/xianding.js', 'character/xianding.js',
//'character/xianjian.js', //'character/xianjian.js',
'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
'character/yijiang.js', //'character/yijiang.js',
'character/yingbian.js', //'character/yingbian.js',
'character/yxs.js', //'character/yxs.js',
//'extension/boss/extension.js', //'extension/boss/extension.js',
//'font/suits.woff2', //'font/suits.woff2',
'image/card/cardtempname_bg.png', //'image/card/cardtempname_bg.png',
'layout/default/layout.css', 'layout/default/layout.css',
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/long2/layout.css', //'layout/long2/layout.css',
@ -71,14 +71,14 @@ window.noname_update={
//'layout/mobile/layout.css', //'layout/mobile/layout.css',
//'layout/newlayout/global.css', //'layout/newlayout/global.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
'mode/boss.js', //'mode/boss.js',
'mode/brawl.js', //'mode/brawl.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/connect.js', //'mode/connect.js',
'mode/doudizhu.js', //'mode/doudizhu.js',
'mode/guozhan.js', //'mode/guozhan.js',
'mode/identity.js', 'mode/identity.js',
'mode/single.js', //'mode/single.js',
//'mode/stone.js', //'mode/stone.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/versus.js', //'mode/versus.js',
@ -87,10 +87,10 @@ window.noname_update={
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',
//'game/package.js', //'game/package.js',
'game/path.min.js', //'game/path.min.js',
'game/pinyinjs.js', //'game/pinyinjs.js',
//'game/asset.js', //'game/asset.js',
'game/source.js', //'game/source.js',
//'theme/simple/style.css', //'theme/simple/style.css',
//'theme/style/hp/custom.css', //'theme/style/hp/custom.css',
//'theme/style/hp/emotion.css', //'theme/style/hp/emotion.css',

BIN
image/card/muniu_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -1743,7 +1743,7 @@ div:not(.handcards)>.card>.info>span,
margin-left: 4px; margin-left: 4px;
margin-right: 4px; margin-right: 4px;
position: relative; position: relative;
width: calc(100% - 8px); /* width: calc(100% - 8px); */
} }
.content>.caption + .buttons:not(*:last-child){ .content>.caption + .buttons:not(*:last-child){
margin-top: 0; margin-top: 0;

View File

@ -1,148 +1,183 @@
#bosslist{ #bosslist {
width:100%; width: 100%;
height:260px; height: 260px;
text-align:center; text-align: center;
top:calc(50% - 200px); top: calc(50% - 200px);
top:60px; top: 60px;
white-space:nowrap; white-space: nowrap;
z-index:1; z-index: 1;
overflow-x:scroll; overflow-x: scroll;
} }
#window[data-radius_size='reduce'] #bosslist>.player{
border-radius:4px; #window[data-radius_size='reduce'] #bosslist>.player {
border-radius: 4px;
} }
#window[data-radius_size='off'] #bosslist>.player{
border-radius:0px; #window[data-radius_size='off'] #bosslist>.player {
border-radius: 0px;
} }
#window[data-radius_size='increase'] #bosslist>.player{
border-radius:20px; #window[data-radius_size='increase'] #bosslist>.player {
border-radius: 20px;
} }
#window #bosslist>.player{
border-radius: 10px; #window #bosslist>.player {
border-radius: 10px;
} }
#window[data-player_border='normal'] #bosslist>.player>.avatar{
left: 8px; #window[data-player_border='normal'] #bosslist>.player>.avatar {
top: 8px; left: 8px;
width: 164px; top: 8px;
height: 200px; width: 164px;
height: 200px;
} }
#window[data-player_border='slim'] #bosslist>.player>.avatar{
left: 4px; #window[data-player_border='slim'] #bosslist>.player>.avatar {
top: 4px; left: 4px;
width: 172px; top: 4px;
height: 208px; width: 172px;
height: 208px;
} }
.bosspaused>#bosslist, .bosspaused>#bosslist,
.bosspaused>#control, .bosspaused>#control,
.bosspaused>.dialog.bosscharacter{ .bosspaused>.dialog.bosscharacter {
opacity:0.2 !important; opacity: 0.2 !important;
} }
#bosslist.hidden>.player{
transition:all 0s; #bosslist.hidden>.player {
transition: all 0s;
} }
#bosslist>div:first-child, #bosslist>div:first-child,
#bosslist>div:last-child{ #bosslist>div:last-child {
width:20px; width: 20px;
position:relative; position: relative;
} }
#window:not(.nopointer) #bosslist>.player{
cursor: pointer; #bosslist>.player .identity {
align-items: flex-start;
} }
.dialog.bosscharacter .buttons .button.selectable{
#bosslist>.player .identity>div {
writing-mode: vertical-rl;
-webkit-writing-mode: vertical-rl;
}
#window:not(.nopointer) #bosslist>.player {
cursor: pointer; cursor: pointer;
} }
.dialog.bosscharacter .buttons .button:not(.selectable){
opacity: 0.6 .dialog.bosscharacter .buttons .button.selectable {
cursor: pointer;
} }
.player.bossplayer.bossing{ .dialog.bosscharacter .buttons .button:not(.selectable) {
position:absolute; opacity: 0.6
}
.player.bossing .avatar{
transition:all 0.5s;
}
.player.bossplayer.highlight{
transform:scale(1.1);
opacity:1;
}
#bosslist.removing>.player.bossplayer.highlight{
transition:all 0s;
opacity:0;
}
.player.bossplayer{
position:relative;
margin:10px;
left:0;
top:4px;
width:180px;
height:216px;
transition: all 0.3s;
opacity:0.6;
animation:game_start 0.5s;
-webkit-animation:game_start 0.5s;
}
.player.bossplayer>div:not(.hp):not(.identity):not(.avatar):not(.framebg){
display:none !important;
}
.player.bossplayer>.identity{
left:16px;
top:20px;
line-height:24px;
white-space:normal;
}
.player.bossplayer>.hp{
top:22px;
left:144px;
}
.player.bossplayer>.avatar{
width:160px;
height:196px;
} }
#control.bosslist{ .player.bossplayer.bossing {
top:calc(100% - 50px) !important; position: absolute;
position:fixed;
} }
.dialog.bosscharacter{ .player.bossing .avatar {
top:auto; transition: all 0.5s;
bottom:65px; }
height:calc(100% - 383px);
animation: dialog_start2 0.5s; .player.bossplayer.highlight {
transform: scale(1.1);
opacity: 1;
}
#bosslist.removing>.player.bossplayer.highlight {
transition: all 0s;
opacity: 0;
}
.player.bossplayer {
position: relative;
margin: 10px;
left: 0;
top: 4px;
width: 180px;
height: 216px;
transition: all 0.3s;
opacity: 0.6;
animation: game_start 0.5s;
-webkit-animation: game_start 0.5s;
}
.player.bossplayer>div:not(.hp):not(.identity):not(.avatar):not(.framebg) {
display: none !important;
}
.player.bossplayer>.identity {
left: 16px;
top: 18px;
line-height: 24px;
white-space: normal;
}
.player.bossplayer>.hp {
top: 22px;
left: 144px;
}
.player.bossplayer>.avatar {
width: 160px;
height: 196px;
}
#control.bosslist {
top: calc(100% - 50px) !important;
position: fixed;
}
.dialog.bosscharacter {
top: auto;
bottom: 65px;
height: calc(100% - 383px);
animation: dialog_start2 0.5s;
-webkit-animation: dialog_start2 0.5s; -webkit-animation: dialog_start2 0.5s;
} }
.bosschongzheng{ .bosschongzheng {
width:calc(100% - 20px); width: calc(100% - 20px);
white-space:nowrap; white-space: nowrap;
position:relative; position: relative;
} }
.bosschongzheng div{
position:relative; .bosschongzheng div {
position: relative;
} }
.bosschongzheng>div{
width:100%; .bosschongzheng>div {
display:block; width: 100%;
margin-bottom:5px; display: block;
margin-bottom: 5px;
} }
.bosschongzheng>div>div:first-child{
text-align:left; .bosschongzheng>div>div:first-child {
width:30%; text-align: left;
width: 30%;
} }
.bosschongzheng>div>div:last-child{
text-align:right; .bosschongzheng>div>div:last-child {
width:70%; text-align: right;
width: 70%;
} }
@media screen and (min-height: 800px) { @media screen and (min-height: 800px) {
.dialog.bosscharacter{ .dialog.bosscharacter {
height:417px; height: 417px;
bottom:calc(50% - 335px); bottom: calc(50% - 335px);
} }
#control.bosslist{
top:calc(50% + 350px) !important; #control.bosslist {
} top: calc(50% + 350px) !important;
#bosslist{ }
top:calc(40% - 260px);
} #bosslist {
} top: calc(40% - 260px);
}
}

View File

@ -1392,7 +1392,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
} }
} }
if(!game.zhu) game.zhu=game.me; if(!game.zhu) game.zhu=game.me;
else{ else{
game.zhu.setIdentity(); game.zhu.setIdentity();
game.zhu.identityShown=true; game.zhu.identityShown=true;