v1.9.95.5

This commit is contained in:
Spmario233 2019-11-23 20:41:07 +08:00 committed by GitHub
parent e1f785880f
commit 77435e903e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 356 additions and 38 deletions

View File

@ -1146,7 +1146,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return game.hasPlayer(function(current){
if(current.getEquip(1)){
return game.hasPlayer(function(current2){
return lib.filter.targetInRange({name:'sha'},current,current2);
return lib.filter.filterTarget({name:'sha'},current,current2);
})
}
});
@ -1156,12 +1156,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return (player!=target&&target.getCards('e',{subtype:'equip1'}).length);
}
else{
return lib.filter.targetInRange({name:'sha'},ui.selected.targets[0],target);
return lib.filter.filterTarget({name:'sha'},ui.selected.targets[0],target);
}
},
content:function(){
"step 0"
if(!target.hasSha()){
if(!target.hasSha()&&!_status.connectMode){
event.directfalse=true;
}
else{
@ -1720,6 +1720,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
playerEnabled:function(card,player,target){
if(card.name!='sha') return;
if(get.mode()!='guozhan') return;
var cardx=get.card();
if(!cardx||cardx.name!='sha') return;
if(!ui.selected.targets.length) return;
if(target.identity=='ye'||target.identity=='unknown') return;
var targets=ui.selected.targets.slice(0);

View File

@ -9,7 +9,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_default:["miheng","taoqian","liuzan","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei"],
mobile_fire:["re_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","re_pangtong","xin_yuanshao"],
mobile_forest:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi'],
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun"],
mobile_mountain:['re_dengai','re_jiangwei','re_caiwenji'],
mobile_others:["re_jikang","old_bulianshi","old_yuanshu","re_wangyun","re_baosanniang"],
},
},
character:{
@ -42,6 +43,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_dongzhuo:['male','qun',8,['rejiuchi','roulin','benghuai','baonue'],['zhu']],
re_sunjian:['male','wu',4,['gzyinghun','repolu']],
re_caopi:['male','wei',3,['rexingshang','refangzhu','songwei'],['zhu']],
re_dengai:['male','wei',4,['retuntian','zaoxian']],
re_jiangwei:['male','shu',4,['retiaoxin','zhiji']],
re_caiwenji:['female','qun',3,['rebeige','duanchang']],
re_baosanniang:['female','shu',3,['meiyong','rexushen','rezhennan']],
},
characterIntro:{
shenpei:'审配204年字正南魏郡阴安今河北清丰北人。为人正直 袁绍领冀州,审配被委以腹心之任,并总幕府。河北平定,袁绍以审配、逢纪统军事,审配恃其强盛,力主与曹操决战。曾率领弓弩手大破曹军于官渡。官渡战败,审配二子被俘,反因此受谮见疑,幸得逢纪力保。袁绍病死,审配等矫诏立袁尚为嗣,导致兄弟相争,被曹操各个击破。曹操围邺,审配死守数月,终城破被擒,拒不投降,慷慨受死。',
@ -85,6 +91,268 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterFilter:{},
skill:{
rexushen:{
derivation:['new_rewusheng','xindangxian'],
audio:'xinfu_xushen',
limited:true,
enable:'phaseUse',
filter:function(event,player){
return game.hasPlayer(function(current){
return current.sex=='male';
})
},
skillAnimation:true,
animationColor:'fire',
content:function(){
player.addSkill('rexushen2');
player.awakenSkill('rexushen');
player.loseHp(game.countPlayer(function(current){
return current.sex=='male';
}));
},
},
rexushen2:{
charlotte:true,
subSkill:{
count:{
trigger:{
player:"recoverBegin",
},
forced:true,
silent:true,
popup:false,
filter:function (event,player){
if(!event.source) return false;
if(!player.isDying()) return false;
var evt=event.getParent('dying').getParent(2);
return evt.name=='rexushen'&&evt.player==player;
},
content:function (){
trigger.rexushen=true;
},
sub:true,
},
},
group:["rexushen2_count"],
trigger:{
player:"recoverAfter",
},
filter:function (event,player){
if(player.isDying()) return false;
return event.rexushen==true;
},
direct:true,
silent:true,
popup:false,
content:function (){
'step 0'
player.removeSkill('rexushen2');
player.chooseBool('是否令'+get.translation(trigger.source)+'获得技能〖武圣〗和〖当先〗').ai=function(){
return get.attitude(player,trigger.source)>0;
};
'step 1'
if(result.bool){
player.line(trigger.source,'fire');
trigger.source.addSkillLog('new_rewusheng');
trigger.source.addSkillLog('xindangxian');
}
},
},
rezhennan:{
audio:'xinfu_zhennan',
trigger:{target:'useCardToTargeted'},
filter:function(event,player){
return event.player!=player&&event.targets&&event.targets.length&&event.targets.length>event.player.hp;
},
direct:true,
content:function(){
'step 0'
var next=player.chooseToDiscard(get.prompt('rezhennan',trigger.player),'弃置一张牌并对其造成1点伤害','he');
next.set('logSkill',['rezhennan',trigger.player]);
next.set('ai',function(card){
var player=_status.event.player;
var target=_status.event.getTrigger().player;
if(get.damageEffect(target,player,player)>0) return 7-get.value(card);
return -1;
});
'step 1'
if(result.bool) trigger.player.damage();
},
},
meiyong:{
inherit:'xinfu_wuniang',
audio:'xinfu_wuniang',
content:function (){
'step 0'
player.chooseTarget(get.prompt('meiyong'),'获得一名其他角色的一张牌,然后摸一张牌。',function(card,player,target){
if(player==target) return false;
return target.countGainableCards(player,'he')>0;
}).set('ai',function(target){
return 10-get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
event.target=target;
player.logSkill('xinfu_wuniang',target);
player.gainPlayerCard(target,'he',true);
}
else event.finish();
'step 2'
target.draw();
},
},
retuntian:{
audio:'tuntian',
audioname:['gz_dengai'],
trigger:{player:'loseEnd'},
frequent:true,
filter:function(event,player){
if(player==_status.currentPhase) return false;
for(var i=0;i<event.cards.length;i++){
if(event.cards[i].original&&event.cards[i].original!='j') return true;
}
return false;
},
content:function(){
player.judge(function(card){
return 1;
}).callback=lib.skill.retuntian.callback;
},
callback:function(){
'step 0'
if(event.judgeResult.suit=='heart'){
player.gain(card,'gain2');
event.finish();
}
else if(get.mode()=='guozhan'){
player.chooseBool('是否将'+get.translation(card)+'作为【田】置于武将牌上?').ai=function(){
return true;
};
}
else event.directbool=true;
'step 1'
if(!result.bool&&!event.directbool){
game.cardsDiscard(card);
return;
};
event.node=event.judgeResult.node;
//event.trigger("addCardToStorage");
//event.card.fix();
player.storage.tuntian.push(event.card);
//event.card.goto(ui.special);
game.cardsGotoSpecial(card);
event.node.moveDelete(player);
game.broadcast(function(cardid,player){
var node=lib.cardOL[cardid];
if(node){
node.moveDelete(player);
}
},event.node.cardid,player);
game.addVideo('gain2',player,get.cardsInfo([event.node]));
player.markSkill('tuntian');
game.addVideo('storage',player,['tuntian',get.cardsInfo(player.storage.tuntian),'cards']);
},
init:function(player){
if(!player.storage.tuntian) player.storage.tuntian=[];
},
group:'tuntian_dist',
locked:false,
ai:{
effect:{
target:function(){
return lib.skill.tuntian.ai.effect.target.apply(this,arguments);
}
},
threaten:function(player,target){
if(target.countCards('h')==0) return 2;
return 0.5;
},
nodiscard:true,
nolose:true
}
},
retiaoxin:{
audio:'tiaoxin',
audioname:['sp_jiangwei','xiahouba'],
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countCards('he');
},
content:function(){
"step 0"
target.chooseToUse({name:'sha'},'挑衅:对'+get.translation(player)+'使用一张杀,或令其弃置你的一张牌').set('targetRequired',true).set('complexSelect',true).set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.contains(_status.event.sourcex)) return false;
return lib.filter.filterTarget.apply(this,arguments);
}).set('sourcex',player);
"step 1"
if(result.bool==false&&target.countCards('he')>0){
player.discardPlayerCard(target,'he',true);
}
else{
event.finish();
}
},
ai:{
order:4,
expose:0.2,
result:{
target:-1,
player:function(player,target){
if(!target.canUse('sha',player)) return 0;
if(target.countCards('h')==0) return 0;
if(target.countCards('h')==1) return -0.1;
if(player.hp<=2) return -2;
if(player.countCards('h','shan')==0) return -1;
return -0.5;
}
},
threaten:1.1
}
},
rebeige:{
audio:'beige',
trigger:{global:'damageEnd'},
filter:function(event,player){
return (event.card&&event.card.name=='sha'&&event.source&&
event.player.classList.contains('dead')==false&&player.countCards('he'));
},
direct:true,
checkx:function(event,player){
var att1=get.attitude(player,event.player);
var att2=get.attitude(player,event.source);
return att1>0&&att2<=0;
},
content:function(){
"step 0"
var next=player.chooseToDiscard('he',get.prompt2('rebeige',trigger.player));
var check=lib.skill.beige.checkx(trigger,player);
next.set('ai',function(card){
if(_status.event.goon) return 8-get.value(card);
return 0;
});
next.set('logSkill','beige');
next.set('goon',check);
"step 1"
if(result.bool){
trigger.player.judge();
}
else{
event.finish();
}
"step 2"
switch(get.suit(result.card)){
case 'heart':trigger.player.recover(trigger.num);break;
case 'diamond':trigger.player.draw(3);break;
case 'club':trigger.source.chooseToDiscard('he',2,true);break;
case 'spade':trigger.source.turnOver();break;
}
},
ai:{
expose:0.3
}
},
rexingshang:{
audio:'xingshang',
trigger:{global:'die'},
@ -822,6 +1090,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mobile_default:'常规',
mobile_fire:'界限突破•火',
mobile_forest:'界限突破•林',
mobile_mountain:'界限突破•山',
mobile_others:'其他',
pss:'手势',
@ -854,6 +1123,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinzhanyi_basic_backup:'战意',
xinzhanyi_basic:'战意',
xinzhanyi_equip:'战意',
re_dengai:'界邓艾',
re_jiangwei:'界姜维',
re_caiwenji:'界蔡文姬',
re_baosanniang:'手杀鲍三娘',
retuntian:'屯田',
retiaoxin:'挑衅',
rebeige:'悲歌',
retuntian_info:'当你于回合外失去牌时,你可以进行一次判定。若判定结果不为♥,你获得此牌。否则你将此牌置于你的武将牌上,称之为【田】。锁定技,你计算与其他角色的距离时-XX为你武将牌上【田】的数目',
retiaoxin_info:'出牌阶段限一次,你可以指定一名有牌的其他角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
rebeige_info:'当有角色受到【杀】造成的伤害后你可以弃一张牌并令其进行一次判定若判定结果为♥该角色回复X点体力(X为伤害点数);♦︎该角色摸三张牌;♣伤害来源弃两张牌;♠伤害来源将其武将牌翻面',
meiyong:'妹勇',
meiyong_info:'当你使用或打出【杀】时,你可以获得一名其他角色的一张牌,然后其摸一张牌。',
rexushen:'许身',
rexushen_info:'限定技出牌阶段你可以失去X点体力X为场上男性角色的数量。若你以此法进入了濒死状态则当你因一名角色而脱离此濒死状态后你可以令其获得技能〖武圣〗和〖当先〗。',
rezhennan:'镇南',
rezhennan_info:'当你成为其他角色使用的牌的目标后若此牌的目标数大于该角色的体力值则你可以弃置一张牌并对其造成1点伤害。',
}
};
});

View File

@ -1977,7 +1977,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.getParent().directHit.add(trigger.target);
}
else if(trigger.cards){
trigger.target.gain(trigger.cards,'gain2','log');
var list=[];
for(var i=0;i<trigger.cards.length;i++){
if(get.position(trigger.cards[i])=='d') list.push(trigger.cards[i]);
}
if(list.length) trigger.target.gain(list,'gain2','log');
}
}
}
@ -2575,22 +2579,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
"step 0"
var fang=player.hp>=2&&player.countCards('h')<=player.hp+1;
player.chooseTarget(get.prompt2('fangquan'),function(card,player,target){
return target!=player;
}).set('ai',function(target){
if(!_status.event.fang) return -1;
if(target.hasJudge('lebu')) return -1;
player.chooseBool(get.prompt2('fangquan')).set('ai',function(){
if(!_status.event.fang) return false;
return game.hasPlayer(function(target){
if(target.hasJudge('lebu')) return false;
if(get.attitude(player,target)>4){
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
return (get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1)>0);
}
return 0;
return false;
});
}).set('fang',fang);
"step 1"
if(result.bool){
player.logSkill('fangquan',result.targets);
player.logSkill('fangquan');
trigger.cancel();
player.addSkill('fangquan2');
player.storage.fangquan=result.targets[0];
//player.storage.fangquan=result.targets[0];
}
}
},
@ -2602,14 +2606,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//priority:-50,
content:function(){
"step 0"
player.chooseToDiscard(true);
player.chooseToDiscard('是否弃置一张牌并令一名其他角色进行一个额外回合?').set('logSkill','fangquan').ai=function(card){
return 20-get.value(card);
};
"step 1"
var target=player.storage.fangquan;
if(result.bool){
player.chooseTarget(true,'请选择进行额外回合的目标角色',lib.filter.notMe).ai=function(target){
if(target.hasJudge('lebu')) return -1;
if(get.attitude(player,target)>4){
return get.threaten(target)/Math.sqrt(target.hp+1)/Math.sqrt(target.countCards('h')+1);
}
return -1;
};
}
else event.finish();
"step 2"
var target=result.targets[0];
player.line(target,'fire');
target.markSkillCharacter('fangquan',player,'放权','进行一个额外回合');
target.insertPhase();
target.addSkill('fangquan3');
player.removeSkill('fangquan2');
delete player.storage.fangquan;
//delete player.storage.fangquan;
}
},
fangquan3:{

View File

@ -3303,7 +3303,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return !player.getEquip('ly_piliche');
},
content:function(){
if(trigger.name=='phase'){
if(trigger.name=='phaseZhunbei'){
player.useCard(game.createCard('ly_piliche','diamond',1),player);
}
else{
@ -11568,19 +11568,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huxiao:{
trigger:{source:'damageSource'},
//silent:true,
forced:true,
filter:function(event,player){
if(event._notrigger.contains(event.player)) return false;
return event.nature=='fire';
},
content:function(){
if(!player.storage.huxiao){
player.storage.huxiao=[];
if(!player.storage.huxiao3){
player.storage.huxiao3=[];
}
player.storage.huxiao.add(trigger.player);
player.storage.huxiao3.add(trigger.player);
trigger.player.draw();
player.addTempSkill('huxiao3');
},
group:['huxiao_clear'],
//group:['huxiao_clear'],
subSkill:{
clear:{
trigger:{source:'damageSource'},
@ -11603,7 +11604,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(typeof num=='number') return num+100;
},
playerEnabled:function(card,player,target){
if(!player.storage.huxiao3||!player.storage.huxiao3.contains(target)){
var bool=false;
if(player.storage.huxiao3&&ui.selected.targets.length){
for(var i=0;i<player.storage.huxiao3.length;i++){
if(ui.selected.targets.contains(player.storage.huxiao3[i])){bool=true;break}
}
}
if(!bool&&(!player.storage.huxiao3||!player.storage.huxiao3.contains(target))){
var num=player.getCardUsable(card)-100;
if(num<=0) return false;
}

View File

@ -11372,7 +11372,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ganlu_info:'出牌阶段限一次你可以选择两名装备区内装备数之差不大于X的角色令其交换装备区内的牌X为你已损失的体力值。',
buyi_info:'当有角色进入濒死状态时你可以展示该角色的一张手牌若此牌不为基本牌则该角色弃置此牌并回复1点体力。',
mingce_info:'出牌阶段你可以交给一名其他角色一张装备牌或【杀】然后令该角色选择一项1. 视为对其攻击范围内的另一名由你指定的角色使用一张【杀】。2. 摸一张牌。每回合限一次。',
zhichi_info:'锁定技,当你回合外受到伤害后,所有【杀】或普通锦囊牌对你无效直到回合结束。',
zhichi_info:'锁定技,当你回合外受到伤害后,所有【杀】或普通锦囊牌对你无效直到回合结束。',
zhichi2_info:'智迟已发动',
pojun_info:'当你使用【杀】造成伤害后你可以令受到该伤害的角色摸X张牌X为该角色当前的体力值且最多为5然后该角色将其武将牌翻面。',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'1.9.95.4',
'1.9.95.5',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -2350,6 +2350,10 @@ window.noname_asset_list=[
'image/character/old_fuhuanghou.jpg',
'image/character/old_caochong.jpg',
'image/character/key_kagari.jpg',
'image/character/re_baosanniang.jpg',
'image/character/re_caiwenji.jpg',
'image/character/re_dengai.jpg',
'image/character/re_jiangwei.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -13504,11 +13504,11 @@
event.targetDelay=false;
}
next.target=targets[num];
for(var i in event.customArgs.default) next[i]=event.customArgs.default[i];
if(next.target&&event.customArgs[next.target.playerid]){
var customArgs=event.customArgs[next.target.playerid];
for(var i in customArgs) next[i]=customArgs[i];
}
for(var i in event.customArgs.default) next[i]=event.customArgs.default[i];
if(next.target&&event.directHit.contains(next.target)) next.directHit=true;
if(next.target&&!info.multitarget){
if(num==0&&targets.length>1){
@ -19232,7 +19232,7 @@
addSkillLog:function(skill){
this.addSkill(skill);
this.popup(skill);
game.log(this,'获得了技能','【'+get.translation(skill)+'】');
game.log(this,'获得了技能','#g【'+get.translation(skill)+'】');
},
addSkill:function(skill,checkConflict,nobroadcast){
if(Array.isArray(skill)){

View File

@ -1,30 +1,31 @@
window.noname_update={
version:'1.9.95.4.1',
update:'1.9.95.4',
version:'1.9.95.5',
update:'1.9.95.4.1',
changeLog:[
'界限突破山包',
'修复BUG',
],
files:[
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/guozhan.js',
//'character/diy.js',
//'character/extra.js',
//'character/mobile.js',
'character/mobile.js',
//'character/old.js',
//'character/refresh.js',
//'character/shenhua.js',
//'character/sp.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
//'character/standard.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yijiang.js',
//'mode/identity.js',
//'mode/doudizhu.js',
//'mode/guozhan.js',
'mode/guozhan.js',
//'mode/single.js',
//'mode/versus.js',
//'mode/boss.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -5462,7 +5462,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
global:'niaoxiang_sha'
},
niaoxiang_sha:{
trigger:{player:'useCardToTargeted'},
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
if(event.card.name!='sha') return false;
if(game.countPlayer()<4) return false;