K-a-n-a-d-e-!

This commit is contained in:
Spmario233 2020-09-19 14:16:32 +08:00 committed by GitHub
parent a9343aa8ff
commit 0bbe7bb9db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 12665 additions and 12532 deletions

View File

@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
connect:true,
character:{
re_liubiao:['male','qun',3,['rezishou','zongshi'],['unseen']],
//re_liubiao:['male','qun',3,['rezishou','zongshi'],['unseen']],
xin_fazheng:['male','shu',3,['xinenyuan','xinxuanhuo'],['die_audio']],
wangyi:['female','wei',3,['zhenlie','miji']],
old_madai:['male','shu',4,['mashu','qianxi']],
@ -26,7 +26,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xin_xusheng:['male','wu',4,['decadepojun']],
re_taishici:['male','wu',4,['tianyi','hanzhan']],
re_masu:['male','shu',3,['resanyao','rezhiman']],
re_sunluban:['female','wu',3,['rechanhui','rejiaojin']],re_zhonghui:['male','wei',4,['requanji','zili']],
re_sunluban:['female','wu',3,['rechanhui','rejiaojin']],
re_zhonghui:['male','wei',4,['requanji','zili']],
re_handang:['male','wu',4,['regongji','jiefan']],
re_lingtong:['male','wu',4,['rexuanfeng']],
yujin_yujin:['male','wei',4,['rejieyue']],
@ -157,7 +158,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'zishou',
trigger:{player:'phaseDrawBegin2'},
check:function(event,player){
return player.countCards('h')<=(player.hasSkill('zongshi')?player.maxHp:(player.hp-2))||player.skipList.contains('phaseUse');
return player.countCards('h')<=(player.hasSkill('zongshi')?player.maxHp:(player.hp-2))||player.skipList.contains('phaseUse')||!player.countCards('h',function(card){
return get.tag(card,'damage')&&player.hasUseTarget(card);
});
},
filter:function(event,player){
return !event.numFixed;
@ -206,7 +209,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
if(game.hasPlayer(function(current){
return filterTarget(null,player,current)
})) player.chooseTarget(filterTarget,'是否将一名其他角色装备区内的一张牌移动到自己的装备区?');
})) player.chooseTarget(filterTarget,'是否将一名其他角色装备区内的一张牌移动到自己的装备区?').set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(att>0&&!target.hasSkillTag('noe')) return 0;
var num=0;
target.countCards('e',function(card){
if(player.isEmpty(get.subtype(card))){
var eff=get.effect(player,card,player,player);
if(eff>num) num=eff;
}
});
if(num<=0) return 0;
if(att<0) return num*-att;
return 1/num;
});
else event.finish();
}
'step 1'
@ -6535,7 +6552,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(_status.event.goon) return 8-get.value(card);
return 0;
});
next.set('logSkill','beige');
next.set('logSkill','rebeige');
next.set('goon',check);
"step 1"
if(result.bool){
@ -7212,7 +7229,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_liubiao:'界刘表',
rezishou:'自守',
rezishou2:'自守',
rezishou_info:'摸牌阶段你可以多摸X张牌然后本回合你对其他角色造成伤害时,防止此伤害结束阶段若你本回合没有使用牌指定其他角色为目标你可以将场上一张装备牌移动到自己的装备区。X为场上势力数',
rezishou_info:'摸牌阶段你可以多摸X张牌。若如此做,本回合你对其他角色造成伤害时,防止此伤害,且结束阶段,若你本回合没有使用牌指定其他角色为目标,你可以将场上一张装备牌移动到自己的装备区。X为场上势力数',
ol_dongzhuo:'界董卓',
olbaonue:'暴虐',
olbaonue_info:'主公技其他群雄角色造成1点伤害后其可进行判定若为♠你回复1点体力并获得判定牌。',

View File

@ -206,9 +206,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var cards=[];
for(var i of lib.inpile) list.add(get.type2(i));
for(var i of list){
if(!target.countCards('h',{type:i})){
if(!target.countCards('h',function(card){
return get.type2(card,target)==i;
})){
var card=get.cardPile2(function(card){
return get.type(card,false)==i;
return get.type2(card,false)==i;
});
if(card) cards.push(card);
}

View File

@ -21,7 +21,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_wangyi:['female','wei',3,['oldzhenlie','oldmiji']],
caozhang:['male','wei',4,['jiangchi']],
guohuai:['male','wei',4,['jingce']],
zhangchunhua:['female','wei',3,['jueqing','shangshi']],
zhangchunhua:['female','wei',3,['rejueqing','reshangshi']],
caozhi:['male','wei',3,['luoying','jiushi']],
caochong:['male','wei',3,['chengxiang','renxin']],
xunyou:['male','wei',3,['qice','zhiyu']],
@ -31,7 +31,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xusheng:['male','wu',4,['xinpojun']],
wuguotai:['female','wu',3,['ganlu','buyi']],
lingtong:['male','wu',4,['xuanfeng']],
liubiao:['male','qun',3,['zishou','zongshi']],
liubiao:['male','qun',3,['rezishou','zongshi']],
yufan:['male','wu',3,['zhiyan','zongxuan']],
chengong:['male','qun',3,['mingce','zhichi']],
bulianshi:['female','wu',3,['old_anxu','zhuiyi']],
@ -193,6 +193,88 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fazheng:['liubei'],
},
skill:{
rejueqing:{
audio:'jueqing',
trigger:{source:'damageBegin2'},
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
return player!=event.player&&!player.hasSkill('rejueqing_1st');
},
prompt2:function(event,player){
var num=get.cnNumber(2*event.num);
return '防止即将令其造成的伤害,改为令其失去'+num+'点体力并对自己造成'+num+'点伤害';
},
check:function(event,player){
return player.hp>event.num*2&&event.player.hp>event.num&&event.player.hp<=2*event.num&&get.attitude(player,event.player)<0;
},
logTarget:'player',
content:function(){
'step 0'
trigger.cancel();
trigger.player.loseHp(2*trigger.num);
player.damage(2*trigger.num);
'step 1'
player.addSkill('rejueqing_1st');
},
derivation:'rejueqing_rewrite',
},
rejueqing_1st:{
trigger:{source:'damageBefore'},
forced:true,
charlotte:true,
audio:'jueqing',
filter:function(event,player){
return player.hasSkill('rejueqing');
},
check:function(){return false;},
content:function(){
trigger.cancel();
trigger.player.loseHp(trigger.num);
},
ai:{
jueqing:true
}
},
reshangshi:{
audio:'shangshi',
trigger:{player:['loseAfter','changeHp']},
frequent:true,
prompt:function(event,player){
return '是否发动【伤逝】将手牌摸至'+get.cnNumber(player.getDamagedHp())+'张?'
},
prompt2:false,
filter:function(event,player){
return player.countCards('h')<player.getDamagedHp();
},
content:function(){
player.draw(player.getDamagedHp()-player.countCards('h'));
},
ai:{
noh:true,
skillTagFilter:function(player,tag){
if(tag=='noh'&&player.maxHp-player.hp<player.countCards('h')){
return false;
}
}
},
group:'reshangshi_2nd',
},
reshangshi_2nd:{
trigger:{player:'damageBegin3'},
direct:true,
filter:function(event,player){
return player.countCards('he')>0;
},
content:function(){
player.chooseToDiscard('是否发动【伤逝】弃置一张牌?').set('logSkill','reshangshi').set('ai',function(card){
var player=_status.event.player;
if(player.countCards('h')>player.getDamagedHp()+_status.event.getTrigger().num) return 1;
if(player.isPhaseUsing()) return 0.1-player.getUseValue(card,null,true)/Math.max(0.1,get.value(card));
return (get.position(card)=='h'?5:0.1)-get.value(card);
});
},
},
oldzhenlie:{
audio:2,
trigger:{player:'judge'},
@ -4848,16 +4930,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'qingxi',
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return event.card.name=='sha';
return event.card.name=='sha'||event.card.name=='juedou';
},
check:function(event,player){
return get.attitude(player,event.target)<0;
},
logTarget:'player',
content:function(){
'step 0'
var num=game.countPlayer(function(current){
var num=Math.min(game.countPlayer(function(current){
return player.inRange(current);
});
}),player.getEquip(1)?4:2);
if(trigger.target.countCards('h')<num){
event.directfalse=true;
}
@ -4903,8 +4986,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reqingxi2:{
mod:{
cardEnabled:function(card,player){
if(card.name=='shan'&&player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.suit(cd)!=get.suit(card);
if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.color(cd)!=get.color(card);
}).length) return false;
},
cardRespondable:function(card,player){
if(player.storage.reqingxi2&&player.storage.reqingxi2.filter(function(cd){
return get.color(cd)!=get.color(card);
}).length) return false;
},
},
@ -6313,27 +6401,42 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audio:'yanzhu',
usable:1,
filterTarget:lib.filter.notMe,
derivation:['reyanzhu_rewrite','rexingxue_rewrite'],
prompt:function(){
return lib.translate[(_status.event.player.storage.reyanzhu?'reyanzhu_rewrite':'reyanzhu')+'_info'];
},
content:function(){
'step 0'
if(!target.countCards('e')) event._result={bool:false};
else target.chooseCard('e','将一张装备区的牌交给'+get.translation(target)+',或令下一次受到的伤害+1。');
if(player.storage.reyanzhu||!target.countCards('e')) event._result={index:1};
else target.chooseControl().set('prompt',get.translation(player)+'发动了【宴诛】,请选择一项').set('choiceList',[
'将装备区内的所有牌交给'+get.translation(player)+'并令其修改技能',
'弃置一张牌,并令下次受到的伤害+1直到下回合开始',
]).set('ai',function(){
if(_status.event.player.countCards('e')>=3) return 1;
return 0;
});
'step 1'
if(result.bool) player.gain(result.cards,'giveAuto',target);
if(result.index==0){
player.gain(target.getCards('e'),'giveAuto',target);
player.storage.reyanzhu=true;
}
else{
target.addSkill('reyanzhu2');
target.addTempSkill('reyanzhu2',{player:'phaseBegin'});
target.addMark('reyanzhu2',1,false);
if(!player.storage.reyanzhu&&target.countCards('he')>0) target.chooseToDiscard('he',true);
}
},
ai:{
order:10,
order:6,
result:{
target:function(player,target){
if(target.countCards('e',function(card){
return card.name!='tengjia'&&get.value(card)<=0
})) return -0.5;
return -1.5;
},
},
if(player.storage.reyanzhu) return -1;
var ne=target.countCards('e');
if(!ne) return -2;
if(ne>=2) return -ne;
return 0;
}
}
},
},
reyanzhu2:{
@ -6346,7 +6449,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.removeSkill('reyanzhu2');
},
intro:{
content:'下次受到的伤害+#',
content:'下次受到的伤害+#直到下回合开始',
},
},
rexingxue:{
@ -6354,11 +6457,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
direct:true,
audio:'xingxue',
filter:function(event,player){
return player.maxHp>0;
return (player.storage.reyanzhu?player.hp:player.maxHp)>0;
},
content:function(){
'step 0'
player.chooseTarget([1,player.maxHp],get.prompt2('rexingxue')).set('ai',function(target){
player.chooseTarget([1,(player.storage.reyanzhu?player.hp:player.maxHp)],get.prompt('rexingxue'),'令所有目标角色依次摸一张牌,然后所有手牌数不等于体力值的目标角色依次将一张牌置于牌堆顶').set('ai',function(target){
var att=get.attitude(player,target);
if(target.countCards('h')==target.hp-1) att*=2;
return att;
@ -6385,7 +6488,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result&&result.cards){
event.card=result.cards[0];
target.lose(result.cards,ui.special);
game.log(target,'将',(get.position(event.card)=='h'?'一张牌':get.translation(event.card)),'置于牌堆顶');
game.log(target,'将',(get.position(event.card)=='h'?'一张牌':event.card),'置于牌堆顶');
game.broadcastAll(function(player){
var cardx=ui.create.card();
cardx.classList.add('infohidden');
@ -12149,7 +12252,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reqianju:'千驹',
reqianju_info:'锁定技,若你已受伤,你计算与其他角色的距离时-XX为你已损失的体力值且至少为1。',
reqingxi:'倾袭',
reqingxi_info:'当你使用【杀】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数若如此做其弃置你的此武器牌2、令此【杀】伤害值+1且其不能使用与此牌花色不同的【闪】或转化的【闪】直到此【杀】结算完成。',
reqingxi_info:'当你使用【杀】或【决斗】指定目标后你可以令其选择一项1、弃置X张手牌X为你攻击范围内的角色数,且当你装备区内有武器牌/没有武器牌时至多为4/2若如此做其弃置你的此武器牌2、令此牌的伤害值+1且其不能使用或打出与此牌颜色不同的牌或转化的牌直到此牌结算完成。',
jieyue:'节钺',
jieyue1:'节钺',
jieyue2:'节钺',
@ -12217,9 +12320,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhaofu_info:'主公技锁定技你距离为1的角色视为在其他吴势力角色的攻击范围内。',
reyanzhu:'宴诛',
reyanzhu2:'宴诛',
reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:交给你装备区里的一张牌,或令下一次受到的伤害+1。',
reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。',
reyanzhu_rewrite:'宴诛·改',
reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1',
rexingxue:'兴学',
rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。',
rexingxue_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力值。',
rexingxue_rewrite:'兴学·改',
rexingxue_rewrite_info:'结束阶段开始时你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色则这些角色各将一张牌置于牌堆顶。X为你的体力上限。',
rezhaofu:'诏缚',
rezhaofu_info:'主公技,锁定技,你攻击范围内的角色视为在其他吴势力角色的攻击范围内。',
wurong:'怃戎',
@ -12490,6 +12597,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
oldmiji_info:'准备/结束阶段开始时若你已受伤你可以判定若判定结果为黑色你观看牌堆顶的X张牌X为你已损失的体力值然后将这些牌交给一名角色',
old_fuhun:'父魂',
old_fuhun_info:'摸牌阶段开始时,你可以放弃摸牌,改为从牌堆顶亮出两张牌并获得之,若亮出的牌颜色不同,你获得技能“武圣”、“咆哮”,直到回合结束。',
rejueqing:'绝情',
rejueqing_info:'当你对其他角色造成伤害时你可以防止此伤害。若如此做你令其失去2X点体力修改〖绝情〗并对自己造成2X点伤害。',
rejueqing_1st:'绝情',
rejueqing_rewrite:'绝情·改',
rejueqing_rewrite_info:'锁定技,你即将造成的伤害均视为失去体力。',
reshangshi:'伤逝',
reshangshi_2nd:'伤逝',
reshangshi_info:'当你受到伤害时你可以弃置一张牌。当你的手牌数小于X时你可以将手牌摸至X张。X为你已损失的体力值',
yijiang_2011:'一将成名2011',
yijiang_2012:'一将成名2012',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.103.3',
'v1.9.103.4',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -5078,5 +5078,6 @@ window.noname_skin_list={
key_yui:2,
key_yuri:3,
key_yuzuru:2,
sp_key_kanade:6,
sp_key_kanade:1,
key_kamome:1,
};

View File

@ -6309,9 +6309,9 @@
else{
dialog.style.left=(e.clientX/game.documentZoom-dialog.offsetWidth-10)+'px';
}
var idealtop=e.clientY/game.documentZoom-dialog.offsetHeight/2;
if(idealtop<10){
idealtop=10;
var idealtop=(e.clientY||0)/game.documentZoom-dialog.offsetHeight/2;
if(typeof idealtop!='number'||isNaN(idealtop)||idealtop<=5){
idealtop=5;
}
else if(idealtop+dialog.offsetHeight+10>ui.window.offsetHeight){
idealtop=ui.window.offsetHeight-10-dialog.offsetHeight;
@ -9888,7 +9888,7 @@
game.checkMod(card,player,range,'selectTarget',player);
}
if(info.notarget||range[1]==-1){
if(range[1]==-1){
if(!info.notarget&&range[1]==-1){
for(var i=0;i<targets.length;i++){
if(!player.canUse(card,targets[i],event.nodistance?false:null)){
targets.splice(i--,1);
@ -16865,7 +16865,7 @@
if(!unique){
for(var i=0;i<list.length;i++){
var info=lib.skill[list[i]];
if(!info||info.unique||info.temp||info.sub){
if(!info||info.unique||info.temp||info.sub||info.charlotte){
list.splice(i--,1);
}
}
@ -25195,7 +25195,7 @@
}
return 1;
},
ai2:get.effect,
ai2:get.effect_use,
type:'dying',
targetRequired:true,
dying:event.dying

View File

@ -1,10 +1,8 @@
window.noname_update={
version:'1.9.103.3',
update:'1.9.103.2',
version:'1.9.103.4',
update:'1.9.103.3',
changeLog:[
'水濑秋子',
'曹不兴、新服马良',
'新诸葛诞',
'新孙休、曹休、刘表、张春华',
'bug修复',
],
@ -12,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',
@ -21,30 +19,30 @@ window.noname_update={
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
//'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'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/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yijiang.js',
'character/yijiang.js',
//'character/yxs.js',
//'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',
@ -54,7 +52,7 @@ window.noname_update={
//'mode/brawl.js',
//'mode/versus.js',
//'mode/boss.js',
//'game/game.js',
'game/game.js',
//'game/NoSleep.js',
//'game/config.js',
//'game/package.js',

BIN
image/skin/key_kamome/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB