Merge pull request #355 from mengxinzxz/PR-Branch

damage函数优化+配音修正
This commit is contained in:
Spmario233 2023-09-19 20:13:36 +08:00 committed by GitHub
commit f2eeeb27b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 59 additions and 48 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/effect/damage_ice.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -9342,13 +9342,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//乌巢酒仙 //乌巢酒仙
recangchu:{ recangchu:{
audio:2, audio:2,
trigger:{ trigger:{global:'phaseBefore',player:'enterGame'},
global:'gameStart',
player:'enterGame',
},
marktext:'粮', marktext:'粮',
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
if(event.name=='phase'&&game.phaseNumber!=0) return false;
return player.countMark('recangchu')<game.countPlayer(); return player.countMark('recangchu')<game.countPlayer();
}, },
content:function(){ content:function(){

View File

@ -2162,18 +2162,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!event.cards.filterInD('oe').length) return false; if(!event.cards.filterInD('oe').length) return false;
return player.getHistory('useCard',evt=>get.type2(evt.card)==get.type2(event.card)).indexOf(event)==0; return player.getHistory('useCard',evt=>get.type2(evt.card)==get.type2(event.card)).indexOf(event)==0;
}, },
check:function(event,player){
if(get.type(event.card)=='equip'){
if(get.subtype(event.card)=='equip6') return true;
if(get.equipResult(player,event.target,event.card.name)<=0) return true;
var eff1=player.getUseValue(event.card);
var subtype=get.subtype(event.card);
return player.countCards('h',function(card){
return get.subtype(card)==subtype&&player.getUseValue(card)>=eff1;
})>0;
}
return true;
},
prompt:function(event,player){ prompt:function(event,player){
return get.prompt('nzry_shicai')+'(将'+get.translation(event.cards.filterInD('oe'))+'置于牌堆顶)'; return get.prompt('nzry_shicai')+'(将'+get.translation(event.cards.filterInD('oe'))+'置于牌堆顶)';
}, },
@ -2249,7 +2237,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target:function(card,player,target){ target:function(card,player,target){
if(player==target&&get.type(card)=='equip'&&!player.getHistory('useCard',function(evt){ if(player==target&&get.type(card)=='equip'&&!player.getHistory('useCard',function(evt){
return get.type(evt.card)=='equip'; return get.type(evt.card)=='equip';
}).length==0) return [1,3]; }).length) return [1,3];
}, },
}, },
}, },

View File

@ -3265,7 +3265,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
marktext:'姻', marktext:'姻',
intro:{ intro:{
name:'共患', name:'共患',
content:'锁定技。每回合限一次,一名其他角色受到伤害时,若其拥有“姻”标记且其体力值小于你,则你将伤害转移给自己。此伤害结算结束后,若你与其体力值相等,则你与其移去“姻”标记。', content:()=>lib.translate.gonghuan_info,
onunmark:true, onunmark:true,
}, },
ai:{ ai:{

View File

@ -20,8 +20,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
tw_zhanghong:['male','wu',4,['twquanqian','twrouke']], tw_zhanghong:['male','wu',3,['twquanqian','twrouke']],
tw_zhangzhao:['male','wu',4,['twlijian','twchungang']], tw_zhangzhao:['male','wu',3,['twlijian','twchungang']],
tw_ol_sunjian:['male','wu','4/5',['gzyinghun','wulie','twpolu'],['zhu']], tw_ol_sunjian:['male','wu','4/5',['gzyinghun','wulie','twpolu'],['zhu']],
tw_menghuo:['male','qun',4,['huoshou','rezaiqi','twqiushou'],['zhu']], tw_menghuo:['male','qun',4,['huoshou','rezaiqi','twqiushou'],['zhu']],
ol_liuyu:['male','qun',2,['zongzuo','zhige','twchongwang'],['zhu']], ol_liuyu:['male','qun',2,['zongzuo','zhige','twchongwang'],['zhu']],
@ -8377,7 +8377,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
subSkill:{ subSkill:{
mark:{}, mark:{
charlotte:true,
},
effect:{ effect:{
audio:'twchuanshu', audio:'twchuanshu',
trigger:{ trigger:{
@ -8415,54 +8417,61 @@ game.import('character',function(lib,game,ui,get,ai,_status){
group:'twchuanshu_damage', group:'twchuanshu_damage',
}, },
damage:{ damage:{
trigger:{player:['useCard','useCardAfter']},
forced:true,
charlotte:true, charlotte:true,
trigger:{player:['useCard','useCardAfter'],source:'damageBegin1'},
filter:function(event,player,name){ filter:function(event,player,name){
if(name=='useCard') return (event.card.name=='sha'&&player.hasMark('twchuanshu_mark')); if(name=='useCard') return (event.card.name=='sha'&&player.hasMark('twchuanshu_mark'));
return player.getStorage('twchuanshu_effect').some(i=>i!=player)&&event._twchuanshu&&player.hasHistory('sourceDamage',function(evt){ if(name=='damageBegin1') return event.card&&event.card.twchuanshu_mark&&!player.getStorage('twchuanshu_effect').contains(event.player);
return event.card.twchuanshu_mark&&player.hasHistory('sourceDamage',function(evt){
return evt.card==event.card; return evt.card==event.card;
}); })&&player.getStorage('twchuanshu_effect').filter(function(target){
return target.isIn()&&target!=player;
}).length;
}, },
forced:true,
content:function(){ content:function(){
if(event.triggername=='useCard'){ var name=event.triggername;
if(name=='useCard'){
var num=player.countMark('twchuanshu_mark'); var num=player.countMark('twchuanshu_mark');
trigger.baseDamage+=num; trigger.card.twchuanshu_mark=num;
trigger._twchuanshu=num;
player.removeMark('twchuanshu_mark',num,false); player.removeMark('twchuanshu_mark',num,false);
} }
else if(name=='damageBegin1') trigger.num++;
else{ else{
var num1=trigger._twchuanshu; var num1=trigger.card.twchuanshu_mark;
var num2=0; var num2=0;
player.getHistory('sourceDamage',function(evt){ player.getHistory('sourceDamage',function(evt){
if(evt.card==trigger.card) num2+=evt.num; if(evt.card==trigger.card) num2+=evt.num;
}); });
var targets=player.getStorage('twchuanshu_effect').filter(i=>i!=player&&i.isIn()); var targets=player.getStorage('twchuanshu_effect').filter(function(target){
for(var target of targets){ return target.isIn()&&target!=player;
target.draw(num1*num2); });
} if(targets.length==1) targets[0].draw(num1*num2);
else game.asyncDraw(targets,num1*num2);
} }
}, },
}, },
clear:{ clear:{
trigger:{player:'phaseBegin'},
forced:true,
silent:true,
charlotte:true, charlotte:true,
onremove:true,
trigger:{player:'phaseBegin'},
filter:function(event,player){ filter:function(event,player){
return player.getStorage('twchuanshu_clear').length; return player.getStorage('twchuanshu_clear').length;
}, },
forced:true,
silent:true,
content:function(){ content:function(){
'step 0' 'step 0'
var targets=player.getStorage('twchuanshu_clear'); var targets=player.getStorage('twchuanshu_clear');
player.logSkill('twchuanshu_clear',targets.filter(i=>i.isIn()));
for(var target of targets){ for(var target of targets){
target.unmarkAuto('twchuanshu_effect',[player]); target.unmarkAuto('twchuanshu_effect',[player]);
if(target.getStorage('twchuanshu_effect').length==0) target.removeSkill('twchuanshu_effect'); if(!target.getStorage('twchuanshu_effect').length) target.removeSkill('twchuanshu_effect');
} }
} 'step 1'
} player.removeSkill('twchuanshu_clear');
} },
},
},
}, },
//徐庶 //徐庶
twjiange:{ twjiange:{

View File

@ -18488,14 +18488,30 @@
event.trigger('damageBegin4'); event.trigger('damageBegin4');
"step 4" "step 4"
//moved changeHujia to changeHp //moved changeHujia to changeHp
if(lib.config.background_audio){ if(['fire','thunder','ice'].contains(event.nature)){
game.playAudio('effect','damage'+(num>1?'2':'')); if(player.hujia>0&&!player.hasSkillTag('nohujia')&&event.nature!='ice'){
} game.broadcastAll(function(num){
game.broadcast(function(num){ if(lib.config.background_audio) game.playAudio('effect','hujia_damage_'+event.nature+(num>1?'2':''));
if(lib.config.background_audio){ },num);
game.playAudio('effect','damage'+(num>1?'2':''));
} }
},num); else{
game.broadcastAll(function(num){
if(lib.config.background_audio) game.playAudio('effect','damage_'+event.nature+(num>1?'2':''));
},num);
}
}
else{
if(player.hujia>0&&!player.hasSkillTag('nohujia')){
game.broadcastAll(function(num){
if(lib.config.background_audio) game.playAudio('effect','hujia_damage'+(num>1?'2':''));
},num);
}
else{
game.broadcastAll(function(num){
if(lib.config.background_audio) game.playAudio('effect','damage'+(num>1?'2':''));
},num);
}
}
var str=event.unreal?'视为受到了':'受到了'; var str=event.unreal?'视为受到了':'受到了';
if(source) str+='来自<span class="bluetext">'+(source==player?'自己':get.translation(source))+'</span>的'; if(source) str+='来自<span class="bluetext">'+(source==player?'自己':get.translation(source))+'</span>的';
str+=get.cnNumber(num)+'点'; str+=get.cnNumber(num)+'点';