都给爷拉去通渠

This commit is contained in:
Spmario233 2020-09-06 14:26:37 +08:00 committed by GitHub
parent 966542c1ab
commit cec25c6be1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 31064 additions and 30588 deletions

View File

@ -276,7 +276,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
value:[8,6.5,5,4],
},
result:{
target:function(player,target){
target:2,
target_use:function(player,target){
// if(player==target&&player.hp<=0) return 2;
if(player.hasSkillTag('nokeep',true,null,true)) return 2;
var nd=player.needsToDiscard();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4684,7 +4684,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
roulin:{
audio:2,
audioname:['re_dongzhuo'],
audioname:['re_dongzhuo','ol_dongzhuo'],
trigger:{player:'useCardToPlayered',target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
@ -4711,14 +4711,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
benghuai:{
audio:2,
audioname:['zhugedan','re_dongzhuo'],
audioname:['zhugedan','re_dongzhuo','ol_dongzhuo'],
trigger:{player:'phaseJieshuBegin'},
forced:true,
check:function(){
return false;
},
filter:function(event,player){
return !player.isMinHp();
return !player.isMinHp()&&!player.hasSkill('rejiuchi_air')&&!player.hasSkill('oljiuchi_air');
},
content:function(){
"step 0"

File diff suppressed because it is too large Load Diff

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
caoxing:['male','qun',4,['cxliushi','zhanwan'],['unseen']],
re_maliang:['male','shu',3,['rexiemu','heli'],['unseen']],
ol_yujin:['male','wei',4,['rezhenjun']],
ol_xinxianying:['female','wei',3,['caishi','zhongjian']],
@ -58,12 +59,69 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
sp_sbfm:["lisu","xinpi","zhangwen"],
sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong'],
sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','liuzan','re_sunluyu','caobuxing','ol_xinxianying','ol_yujin','re_maliang'],
}
},
skill:{
cxliushi:{
enable:'phaseUse',
filter:function(event,player){
return player.countCards('he',{suit:'heart'})>0;
},
filterCard:{suit:'heart'},
position:'he',
filterTarget:function(card,player,target){
return player.canUse('sha',target);
},
discard:false,
prepare:'throw',
content:function(){
"step 0"
cards[0].fix();
ui.cardPile.insertBefore(cards[0],ui.cardPile.firstChild);
game.updateRoundNumber();
player.useCard({name:'sha',isCard:true},false,targets);
"step 1"
if(target.getHistory('damage',function(evt){
var evt2=evt.getParent('useCard');
return evt.card==evt2.card&&evt2.getParent()==event;
}).length){
target.addSkill('cxliushi2');
target.addMark('cxliushi2',1,false);
}
},
},
cxliushi2:{
mod:{
maxHandcard:function(player,num){
return num-player.countMark('cxliushi2');
},
},
onremove:true,
intro:{
content:'手牌上限-#',
},
},
zhanwan:{
trigger:{global:'phaseDiscardEnd'},
forced:true,
filter:function(event,player){
return event.player.hasSkill('cxliushi2')&&event.player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==event) return true;
}).length>0;
},
logTarget:'player',
content:function(){
trigger.player.removeSkill('cxliushi2');
var num=0;
trigger.player.getHistory('lose',function(evt){
if(evt.type=='discard'&&evt.getParent('phaseDiscard')==trigger) num+=evt.cards2.length;
});
player.draw(num);
},
},
rexiemu:{
audio:2,
trigger:{player:'phaseJieshuBegin'},
@ -1474,7 +1532,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}).length>0
});
if(player==target&&bool) player.draw(2);
else if(player!=target&&!bool) player.chooseToDiscard('he',2,true);
else if(player!=target&&!bool) player.chooseToDiscard('h',2,true);
},
ai:{
order:function(){
@ -4500,7 +4558,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(result.bool){
player.logSkill('xinfu_bijing');
player.showCards(result.cards);
//player.showCards(result.cards);
player.storage.xinfu_bijing=result.cards[0];
}
},
@ -5186,7 +5244,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_tunan":"图南",
"xinfu_tunan_info":"出牌阶段限一次,你可以展示牌堆顶的一张牌并选择一名其他角色,然后该角色选择一项:使用此牌(无距离限制);或将此牌当普通【杀】使用。",
"xinfu_bijing":"闭境",
"xinfu_bijing_info":"结束阶段,你可以展示一张手牌并标记为“闭境”。若你于回合外失去“闭境”牌,则当前回合角色的弃牌阶段开始时,其需弃置两张牌。你的准备阶段,弃置手牌中的“闭境”牌。",
"xinfu_bijing_info":"结束阶段,你可以选择一张手牌并标记为“闭境”。若你于回合外失去“闭境”牌,则当前回合角色的弃牌阶段开始时,其需弃置两张牌。你的准备阶段,弃置手牌中的“闭境”牌。",
"xinfu_zhenxing":"镇行",
"xinfu_zhenxing_info":"结束阶段开始时或当你受到伤害后,你可以观看牌堆顶的至多三张牌,然后你获得其中与其余牌花色均不相同的一张牌。",
"xinfu_qianxin":"遣信",
@ -5357,7 +5415,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wlcuorui_info:'出牌阶段开始时你可以弃置你或队友区域里的一张牌。若如此做你选择一项1.弃置对手装备区里至多两张与此牌颜色相同的牌2.展示对手的共计两张手牌,然后获得其中与此牌颜色相同的牌。',
re_panfeng:'潘凤',
xinkuangfu:'狂斧',
xinkuangfu_info:'出牌阶段限一次你可选择1弃置装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】造成伤害你摸两张牌。2弃置一名其他角色装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】未造成伤害你弃置两张牌。',
xinkuangfu_info:'出牌阶段限一次你可选择1弃置装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】造成伤害你摸两张牌。2弃置一名其他角色装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】未造成伤害你弃置两张牌。',
xingdaorong:'邢道荣',
xuxie:'虚猲',
xuxie_info:'出牌阶段开始时你可以减1点体力上限并选择所有与你距离为1的角色弃置这些角色的各一张牌或令这些角色各摸一张牌。出牌阶段结束时若你的体力上限为全场最少则你加1点体力上限。',
@ -5423,7 +5481,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rexiemu_info:'结束阶段,若全场没有“协穆”标记,你可以选择一名角色获得“协穆”标记直到你的下回合开始。你或该角色在各自的回合外使用或打出手牌时,你与其各摸一张牌(每回合限一次)。',
heli:'贺励',
heli_info:'出牌阶段限一次,你可以选择手牌数比你少的一名其他角色。该角色展示所有手牌,然后每缺少一种类型的牌,便从牌堆中随机获得一张此类型的牌。',
caoxing:'曹性',
cxliushi:'流矢',
cxliushi2:'流矢',
cxliushi_info:'出牌阶段,你可以将一张红桃牌置于牌堆顶,视为对一名角色使用一张不计入次数的【杀】。若此【杀】造成伤害,该角色手牌上限永久-1。',
zhanwan:'斩腕',
zhanwan_info:'锁定技,受到【流矢】效果影响的角色若弃牌阶段有弃牌,你摸等量的牌,然后移除【流矢】的效果。',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.103',
'v1.9.103.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -3235,6 +3235,7 @@ window.noname_asset_list=[
'image/character/xin_xusheng.jpg',
'image/character/key_kaori.jpg',
'image/character/key_shiori.jpg',
'image/character/ol_dongzhuo.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -16285,7 +16285,25 @@
game.playerMap[this.playerid]=this;
return this;
},
emotion:function(pack,id){
var str='<img src="##assetURL##image/emotion/'+pack+'/'+id+'.gif" width="50" height="50">';
lib.element.player.say.call(this,str);
game.broadcast(function(id,str){
if(lib.playerOL[id]){
lib.playerOL[id].say(str);
}
else if(game.connectPlayers){
for(var i=0;i<game.connectPlayers.length;i++){
if(game.connectPlayers[i].playerid==id){
lib.element.player.say.call(game.connectPlayers[i],str);
return;
}
}
}
},this.playerid,str);
},
chat:function(str){
if(str&&str.indexOf('http')!=-1) return;
lib.element.player.say.call(this,str);
game.broadcast(function(id,str){
if(lib.playerOL[id]){
@ -25524,6 +25542,29 @@
}
}
},
emotion:function(id,pack,emotion){
var that=this;
if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){
for(var i=0;i<game.connectPlayers.length;i++){
if(game.connectPlayers[i].playerid==that.id){
return true;
}
}
return false;
}()))) return;
var player;
if(lib.playerOL[id]){
player=lib.playerOL[id];
}
else if(game.connectPlayers){
for(var i=0;i<game.connectPlayers.length;i++){
if(game.connectPlayers[i].playerid==id){
player=game.connectPlayers[i];break;
}
}
}
if(player) lib.element.player.emotion.apply(player,[pack,emotion]);
},
chat:function(id,str){
var that=this;
if(!this.id||(!lib.playerOL[this.id]&&(!game.connectPlayers||!function(){
@ -42907,11 +42948,11 @@
}
}
else{
var num=0;
for(var i of game.connectPlayers){
var num=0;
if(!i.nickname&&!i.classList.contains('unselectable2')) i++;
if(!i.nickname&&!i.classList.contains('unselectable2')) num++;
}
if(i>=lib.configOL.number-1){
if(num>=lib.configOL.number-1){
alert('至少要有两名玩家才能开始游戏!');
return;
}
@ -44061,7 +44102,6 @@
for(var j=1;j<=lib.emotionList[this.pack];j++){
var emotionButton=ui.create.div('.card.fullskin','<img src="'+lib.assetURL+'image/emotion/'+this.pack+'/'+j+'.gif" width="50" height="50">',function(){
var player=game.me;
var str='<img src="##assetURL##image/emotion/'+this.pack+'/'+this.emotionID+'.gif" width="50" height="50">';
if(!player){
if(game.connectPlayers){
if(game.online){
@ -44078,10 +44118,10 @@
}
if(!player) return;
if(game.online){
game.send('chat',game.onlineID,str);
game.send('emotion',game.onlineID,this.pack,this.emotionID);
}
else{
lib.element.player.chat.call(player,str);
lib.element.player.emotion.apply(player,[this.pack,this.emotionID]);
}
});
emotionButton.emotionID=j;
@ -50800,7 +50840,153 @@
}
return eff;
}
return get.effect.apply(this,arguments);
var result=get.result(card,eventskill);
var result1=result.player_use||result.player,result2=result.target_use||result.target;
if(typeof result1=='function') result1=result1(player,target,card,isLink);
if(typeof result2=='function') result2=result2(player,target,card,isLink);
if(typeof result1!='number') result1=0;
if(typeof result2!='number') result2=0;
var temp1,temp2,temp3,temp01=0,temp02=0,threaten=1;
var skills1=player.getSkills().concat(lib.skill.global);
game.expandSkills(skills1);
var zerotarget=false,zeroplayer=false;
for(var i=0;i<skills1.length;i++){
temp1=get.info(skills1[i]).ai;
if(temp1&&typeof temp1.effect=='object'&&typeof temp1.effect.player=='function'){
temp1=temp1.effect.player(card,player,target,result1,isLink);
}
else temp1=undefined;
if(typeof temp1=='object'){
if(temp1.length==2||temp1.length==4){
result1*=temp1[0];
temp01+=temp1[1];
}
if(temp1.length==4){
result2*=temp1[2];
temp02+=temp1[3];
}
}
else if(typeof temp1=='number'){
result1*=temp1;
}
else if(temp1=='zeroplayer'){
zeroplayer=true;
}
else if(temp1=='zerotarget'){
zerotarget=true;
}
else if(temp1=='zeroplayertarget'){
zeroplayer=true;
zerotarget=true;
}
}
if(target){
var skills2=target.getSkills().concat(lib.skill.global);
game.expandSkills(skills2);
for(var i=0;i<skills2.length;i++){
temp2=get.info(skills2[i]).ai;
if(temp2&&temp2.threaten) temp3=temp2.threaten;
else temp3=undefined;
if(temp2&&typeof temp2.effect=='function'){
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,
target:target,
skill:skills2[i],
isLink:isLink,
})) temp2=temp2.effect(card,player,target,result2,isLink);
else temp2=undefined;
}
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,
target:target,
skill:skills2[i],
isLink:isLink,
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
else temp2=undefined;
}
else temp2=undefined;
if(typeof temp2=='object'){
if(temp2.length==2||temp2.length==4){
result2*=temp2[0];
temp02+=temp2[1];
}
if(temp2.length==4){
result1*=temp2[2];
temp01+=temp2[3];
}
}
else if(typeof temp2=='number'){
result2*=temp2;
}
else if(temp2=='zeroplayer'){
zeroplayer=true;
}
else if(temp2=='zerotarget'){
zerotarget=true;
}
else if(temp2=='zeroplayertarget'){
zeroplayer=true;
zerotarget=true;
}
if(typeof temp3=='function'&&temp3(player,target)!=undefined){
threaten*=temp3(player,target);
}
else if(typeof temp3=='object'){
if(typeof temp3.target=='number'){
threaten*=temp3;
}
else if(typeof temp3.target=='function'&&temp3(player,target)!=undefined){
threaten*=temp3(player,target);
}
}
else if(typeof temp3=='number'){
threaten*=temp3;
}
}
result2+=temp02;
result1+=temp01;
if(get.attitude(player,target)<0){
result2*=Math.sqrt(threaten);
}
else{
result2*=Math.sqrt(Math.sqrt(threaten));
}
if(target.hp==1) result2*=2.5;
if(target.hp==2) result2*=1.8;
if(target.countCards('h')==0){
if(get.tag(card,'respondSha')||get.tag(card,'respondShan')){
result2*=1.7;
}
else{
result2*=1.5;
}
}
if(target.countCards('h')==1) result2*=1.3;
if(target.countCards('h')==2) result2*=1.1;
if(target.countCards('h')>3) result2*=0.5;
if(target.hp==4) result2*=0.9;
if(target.hp==5) result2*=0.8;
if(target.hp>5) result2*=0.6;
}
else{
result2+=temp02;
result1+=temp01;
}
if(zeroplayer) result1=0;
if(zerotarget) result2=0;
var final=0;
if(player2){
final=(result1*get.attitude(player2,player)+(target?result2*get.attitude(player2,target):0));
}
else final=(result1*get.attitude(player,player)+(target?result2*get.attitude(player,target):0));
if(!isLink&&get.tag(card,'natureDamage')&&target.isLinked()&&!zerotarget){
game.countPlayer(function(current){
if(current!=target&&current.isLinked()) final+=get.effect(current,card,player,player2,true);
})
}
return final;
},
effect:function(target,card,player,player2,isLink){
var event=_status.event;
@ -50865,10 +51051,22 @@
if(temp2&&temp2.threaten) temp3=temp2.threaten;
else temp3=undefined;
if(temp2&&typeof temp2.effect=='function'){
temp2=temp2.effect(card,player,target,result2,isLink);
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,
target:target,
skill:skills2[i],
isLink:isLink,
})) temp2=temp2.effect(card,player,target,result2,isLink);
else temp2=undefined;
}
else if(temp2&&typeof temp2.effect=='object'&&typeof temp2.effect.target=='function'){
temp2=temp2.effect.target(card,player,target,result2,isLink);
if(!player.hasSkillTag('ignoreSkill',true,{
card:card,
target:target,
skill:skills2[i],
isLink:isLink,
})) temp2=temp2.effect.target(card,player,target,result2,isLink);
else temp2=undefined;
}
else temp2=undefined;
if(typeof temp2=='object'){

View File

@ -1,11 +1,8 @@
window.noname_update={
version:'1.9.103.1',
update:'1.9.103',
version:'1.9.103.2',
update:'1.9.103.1',
changeLog:[
'SP仲村由理',
'美坂栞、美坂香里',
'新神关羽',
'武将分包调整',
'界董卓',
'bug修复',
],
@ -13,7 +10,7 @@ window.noname_update={
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
@ -28,15 +25,15 @@ window.noname_update={
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
//'character/refresh.js',
'character/refresh.js',
'character/shenhua.js',
//'character/sp.js',
//'character/sp2.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
@ -45,14 +42,14 @@ window.noname_update={
//'extension/boss/extension.js',
//'layout/default/layout.css',
//'layout/nova/layout.css',
//'mode/identity.js',
'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
//'mode/chess.js',
//'mode/tafang.js',
//'mode/single.js',
//'mode/stone.js',
//'mode/brawl.js',
'mode/stone.js',
'mode/brawl.js',
//'mode/versus.js',
//'mode/boss.js',
'game/game.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -3240,6 +3240,25 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
},
{
name:'Day Game',
place:[false,true,true,false],
character:['key_yuzuru','sp_key_kanade','key_ayato','key_hinata'],
lib:{
character:{
key_yuzuru:['male','key',4,['hinata_qiulve','kurou']],
sp_key_kanade:['female','key',3,['hinata_qiulve','benxi'],[]],
key_ayato:['male','key',3,['hinata_qiulve','retieji']],
key_hinata:['female','key',4,['hinata_qiulve','hinata_ehou']],
},
translate:{
key_yuzuru:'新秀球王',
sp_key_kanade:'学生会长',
key_ayato:'副会长',
key_hinata:'球队领袖',
},
},
},
]
game.liangjunduilei=list;
game.chooseCharacterTwo=function(){

View File

@ -1079,7 +1079,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
list.remove('shen');
if(list.length) player.group=function(){
if(_status.mode!='zhong'&&game.zhu&&game.zhu.group){
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane'].contains(game.zhu.name)) return game.zhu.group;
if(['re_zhangjiao','liubei','re_liubei','caocao','re_caocao','sunquan','re_sunquan','zhangjiao','sp_zhangjiao','caopi','re_caopi','liuchen','caorui','sunliang','sunxiu','sunce','re_sunben','ol_liushan','re_liushan','key_akane','dongzhuo','re_dongzhuo','ol_dongzhuo'].contains(game.zhu.name)) return game.zhu.group;
if(game.zhu.name=='sunhao'&&player.identity=='zhong') return 'wu';
if(game.zhu.name=='yl_yuanshu'){
if(player.identity=='zhong') list.remove('qun');